보안정보

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

빅데이터 기반 침입탐지·분석을 위해 적합한 로그 수집의 중요성

2017.02.28

14,032


서비스사업본부 보안분석팀 이동은

 

 

1. 개요

 

수배차량검색시스템은 차량방범용 카메라와 연계하여 수집한 차량정보를 수배차량 자동검색·전파와 사후범죄 추적·검거에 이용한다. 차량사진을 일일이 검색하는 종전 방식을 실시간 처리하도록 개선하여, 수사시간 단축과 활용률 향상에 이점이 있다.

 

이 시스템 구현에 가장 중요한 데이터는 차량사진에서 문자로 인식한 차량번호이다. 차량번호정보는 차량사진과 다르게 데이터 처리에 용이한 문자열 형식이고, 검색에 필요한 차량번호, 위치정보, 통행시간 등 정보를 가지며, 모든 통과차량을 기록하여 사전 등록한 수배차량뿐만 아니라 범죄 발생 후 검색이 가능하기 때문이다.

 

위의 수배차량검색시스템을 빅데이터 기반 보안분석시스템으로 변경하면, 차량번호정보에 해당하는 데이터는 동일정책으로 분석에 필요한 네트워크·엔드포인트 정보를 문자열 형식으로 추출한 로그 데이터이다.

 

빅데이터 기반 침입탐지·분석에 적합한 네트워크·엔드포인트의 로그에 대해 살펴보고자 한다.

 

 

2. 네트워크 데이터 수집 및 분석

 

네트워크 데이터 유형은 전체 패킷 데이터, 세션 데이터, 트랜잭션 데이터, 추출데이터, 통계데이터, 경고데이터 등으로 분류한다.  

 

전체 패킷 데이터는 설치구간에 모든 전송 패킷을 수집하여 가장 상세한 정보를 제공한다. 방대한 데이터 양 때문에 비교적 단기간만 보관하고, 분석이 필요한 기간의 패킷 데이터를 추출하는 방식으로 사용한다.

 

세션 데이터는 통신 내용을 요약한 데이터이며, 출발지·목적지 IP 주소와 포트, 프로토콜, 전송 시작과 종료 시각, 전송 패킷·바이트수 등으로 구성한다. 데이터 보관과 처리가 용이하여, 통계 산출과 이상징후 탐지에 많이 이용한다.

 

트랜잭션 데이터는 애플리케이션 계층의 페이로드에서 선별한 데이터를 문자열 형식으로 기록한다. 전체 패킷 데이터보다 데이터 보관과 처리가 용이하고, 세션 데이터에 없는 패킷 문자열 데이터를 침입탐지와 사후분석에 활용할 수 있어 유용하다. 

 

추출데이터는 네트워크로 전송하는 파일의 추출을 의미한다. 윈도우 운영체제 실행파일 형식인 PE파일 등을 추출하여 블랙·화이트리스트와 파일 해시값 비교, 가상머신 동적분석을 통해 악성코드를 탐지하는데 활용한다.

 

 

 

[표 1] 네트워크 데이터 유형 예시

 

 

다음은 오픈소스 네트워크 분석 플랫폼인 브로(Bro)의 네트워크 프로토콜 로그를 이용하여 공격을 탐지하는 예시이다. 브로는 네트워크 트래픽에서 지정한 애플리케이션 프로토콜을 동적으로 탐지하여, 트랜잭션의 상세 정보를 기록한다.

 

 구분

 로그유형

 Network Protocols

 conn, dce_rpc, dhcp, dnp3, dns, ftp, http, irc, kerberos, modbus, modbus_register_change, mysql, ntlm, radius, rdp, rfb, sip, smb_cmd, smb_files, smb_mapping, smtp, snmp, socks, ssh, ssl, syslog, tunnel

 Files

 files, pe, x509

 NetControl

 netcontrol, netcontrol_drop, netcontrol_shunt, netcontrol_catch_release, openflow

 Detection

 intel, notice, notice_alarm, signatures, traceroute

 Network Observations

 known_certs, known_devices, known_hosts, known_modbus, known_services, software

 Miscellaneous

 barnyard2, dpd, unified2, weird

Bro Diagnostics

 capture_loss, cluster, communication, loaded_scripts, packet_filter, prof, reporter, stats, stderr, stdout

 

[표 2] 브로(Bro) 로그 유형

 

 

1) 토르 네트워크를 이용하는 악성코드 탐지

 

토르(Tor)는 수천 개의 중계서버(어니언 라우터)로 구성한 일종의 가상 네트워크로, 추적과 검열로부터 익명성을 보장한다. 주기적으로 가상의 회선(사용자↔중계서버↔중계서버↔중계서버↔목적지)을 만들고, 암호화 전송하기 때문에 각각의 중계서버는 최초 출발지와 최종 목적지 모두를 알 수는 없다.

 

또 토르 네트워크에 서버를 연결하여 익명서비스를 개설할 수 있으며 .onion 최상위 도메인(TLD)을 사용한다. 6.25 DDoS 사이버테러 등 일부 악성코드는 추적과 차단을 피하기 위해 토르 네트워크의 익명서비스로 명령제어 서버를 구성한다.

 

내부망에 토르 네트워크를 이용하는 악성코드 감염을 탐지하는 방법은 중계서버에서 받은 SSL 인증서의 특징을 이용한다. 토르 네트워크는 사용자가 접속하는 중계서버를 지속 변경하기 때문에 다수의 SSL 통신이 발생하고, [표 3]과 같이 중계서버의 SSL 인증서 정보는 일반사이트와 다른 일정한 패턴을 갖는다. 따라서 SSL 로그에서 발급대상, 발급자가 도메인명(CN)만 존재하는 인증서를 사용하는 SSL 통신이 임계치 이상 발생하면 탐지한다.

 

 

 

[표 3] 토르와 일반 웹사이트의 SSL 인증서 발급대상 및 발급자 정보 비교(SSL 로그)

 

 

2) 서버 침입 이후 공격행위 탐지

 

공격자는 최초 침입 이후 관리자 권한 획득, 백도어·루트킷 설치를 진행하여 서버를 장악한다. [표 4]는 공격자가 피해서버의 wget 명령을 이용하여 외부 웹사이트의 공격도구를 받는 과정을 기록한 HTTP 로그다. 내부서버의 외부 접속은 일정한 패턴을 가지므로 과거 기록과 비교하여 탐지한다.

  

[표 4] 피해서버에서 외부 웹사이트의 공격도구 다운로드(HTTP 로그)

 

[표 5]는 공격자가 피해서버 내 자료를 압축한 후 웹서비스의 그림파일로 위장하여 중간 경유지로 유출하는 HTTP 로그다. 일정 크기 이상의 파일 전송, 파일 확장자와 파일 형식이 다른 파일을 검색하는 방식으로 탐지한다.

 

 

[표 5] 중간 경유지에서 피해서버 내 주요 자료를 압축한 파일 다운로드(HTTP 로그)

 

 

3. 엔드포인트 데이터 수집 및 분석

 

엔드포인트 데이터는 운영체제, 애플리케이션, 보안솔루션의 로그 그리고 사후 수집하는 휘발성·비휘발성 데이터를 포함한다. 휘발성 데이터는 활성 시스템에서만 수집 가능한 시스템 시간, 현재 로그온 계정, 실행 중인 프로세스, 네트워크 연결 상태, 열린 네트워크 포트, 물리메모리 덤프 등이고, 비휘발성 데이터는 보조기억장치의 저장 데이터를 의미한다.

 

데이터 수집 방식은 초기 조사 자료를 검토하여 결정한다. 특히 비휘발성 데이터를 수집하는 디스크 이미징 작업은 시간이 많이 소요하기 때문에 사고대응이 시급한 경우 분석에 필요한 데이터를 먼저 수집하여 분석한다.

 

사후분석 과정에서 발생 가능한 문제는 침해기간, 피해규모, 훼손 정도가 심하면 사고원인 파악이 어렵고 분석시간이 증가한다는 것이다. 이를 대비하여 침해사고에 필요한 데이터를 수집·분석하기 위한 계획, 절차, 자원에 대해 사전에 조직적 준비가 필요하다. 

 

침해사고 준비도 향상을 위해 수집이 필요한 데이터 중의 하나는 엔드포인트의 프로세스 행위에 대한 감사로그다. 프로세스 생성, 네트워크 연결, 실행파일 생성, 자동시작 등록 등 분석에 필요한 로그를 감사정책에 따라 사전에 수집함으로써, 사후분석뿐 아니라 이상징후 탐지에도 유용하다. 해당 로그는 보안솔루션이나 운영체제에서 지원하는 감사(Audit) 기능을 이용하여 생성·수집한다. 

 

 

[표 6] 엔드포인트의 프로세스 행위 로그 수집 방식

 

다음은 리눅스 감사(Audit) 시스템을 이용하여 웹서버 대상 공격을 탐지하는 예시이다. 우분투에서 웹서버 실행 계정인 www-data(uid 33)에 대해 execve 시스템 호출과  etc/passwd 파일 접근을 감사 로그로 기록하도록 설정한다.

 

 

 [표 7] 리눅스 감사 룰 설정 (/etc/audit/audit.rules)

 

1) 웹서버 공격을 통한 운영체체 명령 실행 탐지

[표 8]은 공격자가 웹서버 취약점 및 웹쉘을 악용하여 운영체제 명령 실행이 가능한 공격 상황을 가정한 PHP 코드다. 해당 코드는 웹서버 실행 계정인 www-data 권한으로 netstat 명령을 실행한다.


[표 8] 운영체제 명령 실행 PHP 코드 (/var/www/html/shell.php)

리눅스 감사 데몬은 www-data 사용자에 의해 발생한 두 번의 execve 시스템 호출(httpd→sh→netstat)을 감사로그에 기록한다. 감사로그에서 실행 명령과 인자, 현재 디렉터리, 프로세스, 사용자 등을 식별할 수 있다.

 
[표 9] www-data(uid 33) 계정의 execve 시스템 호출 감사로그 (/var/log/audit/audit.log)
 

2) 웹서버 공격을 통한 etc/passwd 파일 접근

[표 10]는 파일 다운로드 공격 또는 웹서버 침입 이후 공격자가 etc/passwd 파일에 접근하는 상황을 가정한 PHP 코드다. 해당 코드를 이용하여 웹서버 실행 계정인 www-data 권한으로 etc/passwd 파일 읽기가 가능하다.


[표 10] etc/passwd 접근 PHP 코드 (/var/www/html/file.php)


감사로그를 보면 아파치 프로세스에서 etc/passwd 파일에 접근한 사실을 인지할 수 있다.


[표 11] www-data(uid 33) 계정의 etc/passwd 접근 감사로그 (/var/log/audit/audit.log)
 

4. 결론

데이터 분석의 시작은 문제해결에 적합한 데이터 수집에서 출발한다. 데이터수집은 이후 분석과 결과에 미치는 영향이 크기 때문에 불충분하다면 직접 생성할 필요가 있다. 그렇지 않으면 수집한 데이터에 한정된 이상징후 탐지와 분석만 가능하기 때문이다.

네트워크와 엔드포인트에 대한 가시성 확보는 예상치 못한 공격과 예측은 가능하지만 적절한 탐지수단이 없는 공격에 방어체계를 강화할 수 있는 방안이라고 생각한다.


5. 참고자료

[1] 크리스 샌더스·제이슨 , 『실전 네트워크 보안 모니터링』, 김창규(역), 위키북스(2016)
[2] 기술평론사 편집부, 『인프라 엔지니어의 교과서 - 시스템 구축과 관리편』, 진명조(역), 길벗(2016)
[3] Detecting Tor traffic with Bro network traffic analyzer - https://www.rsreese.com/detecting-tor-traffic-with-bro-network-traffic-analyzer/