보안정보

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

SIEM을 활용한 악성코드 탐지 설정

2016.11.02

11,101

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


이글루시큐리티 SIEM은 이벤트 선별 기능, 통합 실시간 모니터링 기능, 보고서 생성 기능 등을 통해 보안담당자의 모니터링 및 보고서 업무를 상당 부분 감소시키고 보안담당자 본연의 업무인 보안기획 및 보안정책 수립에 집중하도록 지원한다.


1. 개요

이번 달 SIEM Guide에서는 SIEM을 활용하여 영역별로 악성코드 탐지를 할 수 있는 설정 방법을 제시하고, 관제 상황에서 악성코드 감염 시 신속하게 탐지하고 대응 할 수 있는 방안에 대해 알아보도록 한다.


2. 악성코드 감염 

사용자 PC가 악성코드에 감염 될 수 있는 시나리오는 악성코드 유포지 사이트에 방문, 메일 첨부파일 실행, P2P 악성파일 실행, 내부 네트워크 전파 등 매우 다양하다. 감염이 이루어지면 악성코드 제작자에 의도에 따라 행위의 차이는 존재하나 악성코드가 활동하기 위한 영역이 존재하기 때문에 이 영역들을 지속적으로 감시한다면 악성코드가 감염되었을 때 신속히 탐지를 할 수 있을 것이다.


[그림 1] 의심스러운 외부 Port 로 연결


3. SIEM 활용기법

1) 네트워크 영역

악성코드 감염 뿐 아니라 침해사고 발생 때에도 네트워크에 이상징후가 존재하는지 확인하는 것은 매우 중요한 과정이다. 어떤 악의적인 목적은 궁극적으로 외부로의 통신을 필요로 하기 때문이다. 물론 시스템 파괴 만을 목적으로 하는 예외적인 경우도 존재한다. 하지만 공격자 명령수행, 정보 유출, 특정 사이트로의 유도를 목적으로 하는 악성코드가 더욱 많은 것이 사실이다.
악성코드에 감염되면 향후 재 접근을 위해 특정 서비스 포트가 오픈 되고, DDoS 공격을 위해 특정 패킷을 지속적으로 전송하거나, 내부 네트워크 전파를 위한 스캐닝 등의 네트워크 이상 징후를 SIEM의 포트 무결성 기능과 연관성 분석 기능을 통해 탐지 할 수 있다.

<탐지 설정>
① 악성코드 감염 탐지
악성코드에 감염이 되면 C&C 서버와의 통신, Backdoor로의 기능을 위한 연결에 Port를 오픈 하게 되는 점을 이용한다.


[그림 2] Port 무결성 기능 설정


② 내부자료 유출 탐지
다수의 내부 PC에서 하나의 목적지 포트로 접근이 발생 하는 경우 내부자료 유출이 이루어지고 있는지 확인해 볼 필요가 있다.


[그림 3] 내부 대역의 다수 IP 이벤트 발생 조건 설정

앞서 연관성 분석 공통 항목에서 내부 IP 대역을 설정하고 민감도를 지정했다면, 이벤트 설정 탭에서 보안장비에서 탐지 횟수 기준을 설정하여 이벤트 발생 조건을 지정한다.


[그림 4] 방화벽에서 다수 이벤트 발생 조건 설정


2) 프로세스 영역

악성코드 또한 프로그램이기 때문에 프로세스에 나타나는 것이 정상이지만 악성코드 제작자는 정상 프로세스에 기생시키거나 눈으로는 보이지 않도록 숨겨 생존성을 향상 시킨다. 따라서 [그림 3-5] 처럼 쉽게 사용자의 눈에 보이지는 않는다. 설령 볼 수 있더라도 사람의 눈으로 정상 프로세스와 비정상 프로세스를 일일이 기억하고 확인하기는 불가능하기 때문에 SIEM의 프로세스 무결성 기능을 활용하여 이상 징후 탐지에 도움을 줄 수 있다.


[그림 5] 의심스러운 프로세스 발견


<탐지 설정>
① 새로운 프로세스 시작
② 프로세스 중복 실행

새로운 프로세스가 시작되거나, 기존의 프로세스가 중복 실행되는 모든 경우를 악성코드 감염으로 단정 지을 수는 없지만 적절한 예외처리가 바탕이 된다면, 기본적인 악성코드의 경우 탐지하는데 도움이 될 수 있다.


[그림 6] 프로세스 무결성 기능 설정


[그림 2-7] 실시간 이벤트 확인


3) 레지스트리 영역

악성코드는 감염 된 후 네트워크와 프로세스 영역에서 활동을 하지만 일회성에 그치지 않고 시스템에 지속적으로 영향을 미치기 위해 시스템이 재 부팅 하더라도 실행 될 수 있도록 레지스트리에 자신을 등록하는 경우가 많다. 흔히 인터넷 익스플로러의 추가 기능을 제공하는 BHO(Browser Helper Object)에 악성 DLL을 등록하여 브라우저가 실행될 때 같이 실행 되도록 한다. 최근에는 악성코드를 암•복호화하여 보안시스템을 무력화하는데 레지스트리 공간을 이용하기도 한다.

<탐지 설정>
① 일반적으로 악성코드가 많이 사용하는 레지스트리 확인
- HKLMSOFTWAREMicrosoftWindowsCurrentVersionRun
- HKLMSOFTWAREMicrosoftWindowsCurrentVersionRunOnce
- HKLMSOFTWAREMicrosoftWindows NTCurrentVersionWinlogon
- HKLMSOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Options
- HKMLSYSTEMCurrentControlSetServices

② 레지스트리 파일 무결성 검사
레지스트리 파일을 직접적으로 검사 할 수는 없지만 쿼리를 통해 주기적으로 레지스트리 값을 TXT 파일로 저장한다면 “수집조건 -> System -> Text” 설정을 통해 레지스트리 값의 변화를 탐지 할 수 있다.


[그림 2-8] 특정 파일의 TEXT 확인 설정

Reg query 를 이용하면 특정 경로의 레지스트리 하위 값들을 모두 TXT 파일로 저장이 가능하다.


[그림 9] 배치 파일을 통해 레지스트리 값 저장

예약 작업을 통해 일정 시간마다 배치 파일을 실행할 경우 레지스트리 값을 변경할 경우 텍스트 파일에 기록되는 값이 달라져 실시간 이벤트가 발생하게 된다.


[그림 10] 실시간 이벤트 발생


4. 결론

앞서 악성코드를 탐지하기 위해 영역별 탐지 설정  방법에 대해 알아보았다. 이는 감염되는 시점에서 신속히 탐지하여 대응하기 위한 방법을 제안한 것이다. 

하지만 각 사이트 별로 보유하고 있는 보안장비를 활용하여 사전에 악성코드를 차단을 할 수 있다면 가장 좋은 방법이 될 것이다. 이것이 불가능하다면 사용자와 솔루션 등이 필수적으로 외부와의 통신을 위해 사용하는 서비스 Port 를 점진적으로 조사하고 리스트 업 하여 그 외에 서비스 Port 를 방화벽에서 차단하는 등의 방법과 접근이 필요하지 않는 해외 IP에 대한 양방향 차단 등의 방법을 고려하고 실정에 맞게 최적화하여 적용한다면 훌륭한 차선책이 될 것으로 생각된다.