보안정보

전문화된 보안 관련 자료, 보안 트렌드를 엿볼 수 있는
차세대 통합보안관리 기업 이글루코퍼레이션 보안정보입니다.

정규표현식을 활용한 개인정보유출 탐지

2016.09.07

18,186

보안관제사업본부 보안분석팀  장태용 


1. 개 요

 

이번 달 SIEM Guide에서는 SIEM 연관성 분석에서 가장 중요한 보안 장비의 탐지 정책을 정규표현식을 활용하여 세분화된 탐지 정책을 적용하고 이를 통해 개인정보유출 탐지를 하기 위한 활용 방안에 대해 알아보도록 한다.

 


2. 정규표현식


정규표현식(REGEX)은 특정한 규칙을 가진 문자열의 집합을 표현하는데 사용하는 형식 언어이다. 정규표현식의 문법은 다양하게 존재하나 이 중 표준화된 것으로 POSIX 가 있으며 이것을 확장한 Perl 방식의 PCRE가 가장 많이 사용되는 정규표현식이라고 할 수 있다. 쉬운 예로 우리가 흔히 사용하는 리눅스 시스템의 ‘egrep’, ‘awk‘ 등의 명령어에서 사용하는 형식이 바로 정규표현식의 문법이라고 생각하면 된다.


1) 활용

이러한 정규식은 UTM, IPS, TMS 등의 다양한 보안 장비에서 지원을 하고 있다. 몇몇 보안 장비의 경우 해당 기능을 지원하지 않기도 하지만 기능이 존재할 경우 활용 방안이 매우 다양하기 때문에 운영하고 있는 보안 장비의 정규식 지원 여부에 대해 알아볼 필요가 있다.

 

 

[그림 1] 정규표현식 지원 예


2) 문법

정규식을 지원하는 장비가 존재한다면 이를 적용하여 패턴을 만들기 위해 기본적인 문법에 대해 알아볼 필요가 있다. 장비에 따라 적용 과정에 약간의 차이는 있을 수 있으나 문법은 동일하게 사용되기 때문에 기본 문법을 알고 있다면 어떤 장비에서도 적용이 가능할 것이다.

 

① 기본 표현


② 위치 지정


③ 수량자


④특수한 문자


3) 활용

앞서 소개한 문법 외에도 많은 문법이 존재하고 있지만, 기본 표현, 위치 지정, 수량자, 특수한 문자를 응용한다면 다양하게 보안 장비 패턴을 제작할 수 있다. 정규식 테스트와 탐지 결과를 시뮬레이션 할 수 있는 아래의 사이트들을 활용한다면 다양한 응용 패턴을 제작하고 보안 장비에 적용할 수 있을 것이다.

 

 

[그림 2] regexper.com

 

[그림 2]의 사이트는 정규표현식을 도식화해주는 서비스를 제공하고 있다. 앞서 살펴본 여러 문법의 표에 수록된 도식 표현들이 바로 이 사이트에서 제공하고 있는 서비스이다. 복잡한 정규식을 보기 쉽게 표현하여 이해도를 돕는 데 도움을 준다.

 

아래의 사이트는 자신이 설계한 정규표현식이 실제로 어떤 문자와 일치하는지 테스트해볼 수 있는 사이트이다. 이를 활용하여 실제 장비에 적용하기 전에 공격 로그와 대조하여 설계한 목적과 부합하는지에 대해 미리 테스트하고 정확도를 개선하는 데 도움을 준다.

 


[그림 3] regexr.com

 

 

[그림 4] 웹 공격 로그  탐지 테스트

 


3. 개인정보유출 탐지


1) 개인 정보

 「정보통신망 이용촉진 및 정보보호 등에 관한 법률」 제2조에서는 개인정보를 “생존하는 개인에 관한 정보로서 성명,주민등록번호 등에 의하여 당해 개인을 알아볼 수 있는 부호, 문자, 음성, 음향 및 영상 등의 정보를 말한다” 라고 규정하고 있다. 이 범위에 해당하는 유형을 정리하면 아래와 같다.

  

 

구분

유형

일반정보 

이름, 주민등록번호, 운전면허번호, 주소, 전화번호, 생년월일, 출생지, 본적지, 성별, 국적

가족정보

가족구성원들의 이름, 출생지, 생년월일, 주민등록번호, 직업, 전화번호

교육 및 훈련정보

학교출석사항, 최종학력, 학교성적, 기술 자격증 및 전문 면허증, 이수한 훈련 프로그램, 동아리활동, 상벌사항

병역정보

군번 및 계급, 제대유형, 주특기, 근무부대

부동산정보

소유주택, 토지, 자동차, 기타소유차량, 상점 및 건물 등

소득정보

현재 봉급액, 봉급경력, 보너스 및 수수료, 기타소득의 원천, 이자소득, 사업소득

기타 수익정보

보험(건강, 생명 등) 가입현황, 회사의 판공비, 투자프로그램, 퇴직프로그램, 휴가, 병가

신용정보

대부잔액 및 지불상황, 저당, 신용카드, 지불연기 및 미납의 수,임금압류 통보에 대한 기록

고용정보 

현재의 고용주, 회사주소, 상급자의 이름, 직무수행평가기록, 훈련기록, 출석기록, 상벌기록, 성격 테스트결과, 직무태도

법적정보

전과기록, 자동차교통위반기록, 파산 및 담보기록, 구속기록, 이혼기록, 납세기록

의료정보

가족병력기록, 과거의 의료기록, 정신질환기록, 신체장애, 혈액형, IQ, 약물테스트 등 각종 신체테스트 정보

조직정보

노조가입, 종교단체가입, 정당가입, 클럽회원

통신정보

전자우편(e-mail), 전화통화내용, 로그파일(log file), 쿠키(cookies)

위치정보

GPS나 휴대폰에의한 개인의 위치정보

신체정보

지문, 홍채, DNA, 신장, 가슴둘레등

습관 및 취미정보

흡연, 음주량, 선호하는 스포츠 및 오락, 여가활동, 비디오 대여기록, 도박성향 

 
[표 1] 개인정보의 유형

 

2) 공격과 탐지 예

[표 1]에서 개인정보의 종류가 매우 다양한 것을 알 수 있다. 이 외에도 결합 정보까지 고려하게 되면 개인정보의 범위는 더욱 넓어진다. 따라서 이번 사례에서는 개인정보보호법 제19조에서 정의하는 고유식별번호(주민등록번호, 여권번호, 면허번호, 외국인등록번호) 중 주민등록번호 유출의 예를 들어 개인정보유출 및 탐지에 대해 생각해 보도록 한다.


① 웹 페이지 SQL 인젝션 공격

우선 공격자는 DB 데이터를 열람하기 위해 SQL 인젝션 공격이 가능한 취약 지점을 찾게 된다. 취약한 지점에 대해 DB 정보를 확인하는 공격을 시도한 결과 아래와 같이 공격이 성공하였음을 알 수 있다.

 

 

[그림 5] SQL 인젝션 공격 시도

 

② DB 개인정보 유출

테이블 이름, 컬럼 이름 순서로 DB 데이터를 열람하던 공격자는 주민등록번호를 나타내는 컬럼을 찾아 컬럼 데이터를 추출하였다.

 

 

[그림 6] 주민등록번호 유출

 

③ 보안장비 탐지


유출되는 주민등록번호를 IPS 에서 탐지하였으며 그 RAW 데이터를 확인하면 [그림 2-7]에 붉은 테두리 표시가 된 ‘871124-1234567’ 이라는 주민등록번호를 확인 할 수 있다.

 

 

[그림 7] 탐지 RAW 데이터


3) 탐지 패턴 분석

수많은 개인정보 중 주민등록번호 유출에 관한 간략한 시나리오를 살펴보았다. 그렇다면 [그림 2-7] 처럼 보안장비에서 주민등록번호 유출에 대해 탐지를 하려면 어떠한 패턴을 등록해야 할까? 이 의문은 앞서 소개한 정규표현식을 활용하면 비교적 간단히 해결할 수 있다. 우리나라에서 사용하는 주민등록번호라는 고유한 번호는 일정한 형식이 존재한다.

 

 [생년월일 6자리] – [숫자 7자리]

 

 

이 처럼 단순한 구조를 가지고 있기 때문에 복잡한 문법이 필요 없이 기본 표현의 ‘[0-9]’ 와 수량자 ‘x{n}’ 을 결합하여 패턴을 만들 수 있다. 주민등록번호를 탐지할 수 있는 정규식 패턴은 ‘[0-9]{6}-[0-9]{7}’ 로 이를 도식화하면 아래 그림과 같이 나타낼 수 있다.

 

[그림 8] 주민등록번호 정규식 문법 도식 표현


하지만 패턴 매칭 여부를 ‘regexr.com’ 사이트에서 확인하면 주민등록번호가 매칭은 되고 있으나 빨간 테두리 표시에서 확인 할 수 있듯이 해당 구문으로는 주민등록번호가 아닌 숫자에 대해서도 오탐이 발생할 수 있다.

 

 

[그림 9] 패턴 매칭 테스트


따라서 주민등록번호의 기본 규칙을 적용하여 다시 구문을 만들도록 한다. 앞 6자리의 시작하는 두 자리는 ‘[0-9]{2}’ 다음 두 자리는 12월까지를 고려하여 ‘(0[1-9]|1[0-2]}’ 로 다음 두 자리 또한 01일부터 31일까지를 고려하여 ‘(0[1-9]|[1,2][0-9]|3[0,1])’ 로 나타내며 ‘-’ 다음 첫 숫자는 성별을 구분하여 ‘[1-4]’ 로 마지막 다음 6자리는 ‘[0-9]{6}’ 으로  나타내면 주민등록번호에 대한 오류를 최소화 할 수 있다. 이 패턴을 적용하여 테스트하면 아래와 같다.

 



[그림 10] 개선된 주민등록번호 패턴 테스트

 


4. 결론

 

이번 달 SIEM 가이드에서는 SIEM 이 직접적으로 나오진 않았지만, 연관성 분석의 탐지 능력과 직접적인 관계가 있는 보안 장비들의 탐지 성능을 높이기 위한 정규표현식에 대해 설명하였으며, 실 예를 들기 쉬운 주민등록번호 유출과 비교하여 정규표현식 탐지 패턴을 만드는 과정에 대해서 알아보았다.

 이러한 과정을 통해 사용자가 생각하고 응용하여 생성할 수 있는 패턴은 무궁무진하며 Snort 방식에서 제공하는 각종 옵션과 더불어 정규표현식을 보안 장비에서 활용할 수 있다면 오탐을 최소화하여 이벤트 발생량이 적어지게 되고 결국 공격 대응을 하는 사용자의 피로도를 낮추고 여유 시간을 확보하여 선택과 집중을 통해 양질의 서비스가 가능할 것으로 생각된다.