Warning: Invalid argument supplied for foreach() in /somansa/www/html/wp-content/themes/somansa/content-news_event.php on line 5

뉴스/이벤트

[DB방화벽 for Dummies ③]내부인에 의한 정보유출 방지하는 ‘쿼리툴 접근통제기능’

[] | 2013-08-14

소만사 최일훈 연구소장의 DB방화벽 바로알기 칼럼을 총 8회에 걸쳐 연재할 예정이다. 짧고 쉬운 문체로 설명한 만큼, DB방화벽에 대한 이해도를 높이고 개인정보유출방지를 목적으로 DB방화벽 도입을 고려하고 있는 기업들에게 작은 도움이 되길 바란다. <편집자 주>

DBMS에 접근하는 3대방식 ‘쿼리툴? Telnet/FTP? WAS’
‘DB방화벽’은 ‘개인정보유출방지’가 주목적이라고 했지? ‘DB방화벽’은 DB에 접근하는 경로를 감시?통제하는 역할을 하고 있어. DB접근방법은 크게 3가지가 있어.
1) 쿼리툴 접근방식
2) Telnet/ FTP와 같은 터미널서비스 접근방식
3) WAS와 같은 어플리케이션 접근방식
위 세가지 방식에 대해서 알아보자!

첫번째는 ‘쿼리툴’을 통해서 DB에 접근하는 방식이야. ‘쿼리툴’은 DB내 개인정보를 원하는 대로 가져올 수 있게 해주는 프로그램이야. ‘쿼리툴’을 통해서 쿼리(query, 개인정보 요청문장)를 날리면 DB에서 쿼리에 대한 결과값으로 개인정보를 보내주는 거야. (은행으로 비유하자면 쿼리는 출금요청서이고 결과값은 돈인 것이지) ‘쿼리툴’에는 SQL Plus, TOAD등등 여러 종류가 있어. 주로DB엔지니어들이 사용하지만 회사에 따라서는 마케터들도 사용해. ‘쿼리툴’만 있으면 DB내 VIP Table에서 예쁜 여자고객정보1만건을 가져와서 고르고 골라 여신급 10명 번호 따는 게 가능하지(물론 회원사진이 DB에 있는 경우에만).

‘DB방화벽’은 조회내역에 관한 ‘쿼리문’ 뿐만 아니라 ‘쿼리결과값’도 모두 기록해야 해. ‘1번 Table, 3번째 Column에 위치한 주민번호 1만개를 보내주세요’라는 쿼리문만 기록하고 정작 쿼리의 결과값이자 개인정보인 주민번호 1만개가 어떤 것인지 기록하지 않으면 어떤 개인정보가 얼마나 유출되었는지 알 수 없게 되겠지. 쿼리툴통제의 핵심은 쿼리문이 아니라 개인정보! 즉 쿼리문에 대한 결과값기록, 통제라는걸 잊지 마.

‘DB방화벽’, 이상징후분석기술의 필요성
‘DB방화벽’은 1)권한없는 사용자가 DB에 접근하는 것을 막고(인증을 받지 못한 사람들을 튕겨내고), 2)권한없는 사용자가 DB내 개인정보를 조회하는 것을 막고(중요Table과 Column에 접근할 경우에는 튕겨내고), 3) DB형상변경(Create, Drop, In sert, Update, Delete등의 명령어로 DB개인정보내용변경)을 막고 4)평상시패턴과 다르게 개인정보를 과다조회할 경우, 차단하고 기록해야 해.

보안업계 최고의 ‘불편한 진실’을 알려줄까? 보안사고는 내부권한자 계정으로 발생한다는 거야. 특히 특정인의 정보를 파악한 후 표적공격하는 ‘APT공격¹(Advanced Persistent Threat)’은 권한자가 자기 계정으로 접근한 것인지, 해커가 권한자 계정을 탈취하여 접근한 것인지 알 수 없어. 그래서 규정을 어긴 것은 아니지만 무언가 평상시 업무패턴과 다른 이상한 접근, 바로 이상징후를 분석하는 기술이 중요해. 권한자계정으로 접근해서 주민번호를 한번에 한두건씩 하루에 천번씩 한달에 총 10만건을 조회했다면? 이 경우 진짜 권한자가 접근한 것일까? 해커가 권한자를 사칭해서 접근한 것일까? ‘DB방화벽’은 ‘이상징후분석’으로 이 질문에 대답해줄 수 있어.

참고:
APT(Advanced Persistent Threat) : 정부 또는 특정 회사의 중요 정보 획득, 정치적 목적, 사이버 테러 등을 목적으로 하는 공격. 이메일, 웹하드, SNS를 이용하여 내부에 침입, 외부서버와 통신을 하면서 중요자료를 외부로 전송한다.

글. 소만사 최일훈 소장 acechoi@somansa.com

<저작권자 © 데일리시큐, 무단 전재 및 재배포 금지>

목록