시그니처 기반 분석

이번에는 시그니처를 기반으로 공격을 찾아내는 방법에 대해서 살펴보자. 사실 시그니처가 있는 공격은 좀더 찾기가 쉽다. 앞서 비정상 상황을 구분하는 방식은 제로데이 공격과 같이 시그니처가 없거나 어떤 공격으로 들어 왔는지 모르는 경우에 접근하는 방법이다.

상대적으로 탐지 솔루션에서 패턴 매칭을 통해 정의된 시그니처명으로 이벤트가 탐지 되기 때문에 탐지된 이벤트만 확인하면 된다. 주로 해킹과 연관된 특징으로 검색 한다. 백도어와 연관된 경우 파일 명으로 접근이 가능하고, 명령을 실행할 경우에는 공격자가 자주 사용하는 명령어를 위주로 접근 한다.

그림 시그니처 기반

다음은 침해사고가 발생한 과정을 기술한 내용이다.

톰캣 서버에 접속하여 톰캣 서버의 관리자 페이지에 ‘job.war’라는 백도어 프로그램을 올렸다.올린 백도어 프로그램에 접속한 다음 1) ‘ipconfig’, ‘arp’, ‘netview’라는 명령어를 실행하여 IP 주소 등 시스템 정보를 획득하고, 2) ‘FX.EXE’라는 명령어를 실행하여 3389 포트(port)의 터미널 서비스를 기동하고, 3)’LCX.EXE’라는 명령어를 실행하여….……생략…..

공격자가 어떻게 접근했고, 어떤 명령을 실행했는지 기술되어 있다. 실제 침해가 발생 했을 때 앞서 언급된 ‘LCX.EXE’, ‘arp’ 등이 우리가 시그니처 기반으로 침해 흔적을 분석할 때 사용되는 키워드가 된다. 해당 키워드로 수집된 정보에서 일치하는 로그를 찾아낸다.

시그니처를 기반으로 탐지된 로그를 보면서 같이 분석해 보자. 다음은 시스템 명령 실행과 관련된 침입탐지시스템 로그다.

탐지시간2015-11-05 11:27:28 KST
시그니처명Microsoft_Windows_Shell_Banner
탐지건수1
출발지IP10.10.10.1
출발지포트14072
도착지IP172.16.20.114
도착지포트53
프로토콜Domain
배너Microsoft Windows [Version 5.2.3790]..(C) Copyright 1985-2003 Microsoft Corp…..C:\WINDOWS\ime>
표 침입탐지시스템 로그 1
탐지시간2015-11-05 11:27:47 KST
시그니처명Microsoft_Windows_Shell_Banner
탐지건수1
출발지IP10.10.10.1
출발지포트14073
도착지IP172.16.20.114
도착지포트80
프로토콜http
배너Microsoft Windows [Version 5.2.3790]..(C) Copyright 1985-2003 Microsoft Corp…..C:\WINDOWS\ime>
표 침입탐지시스템 로그 2

윈도우 환경에서 텔넷과 같은 서비스에 접속하게 되면 다음 그림과 같은 명령창이 생긴다.

그림 윈도우 쉘

탐지된 시그니처는 네트워크 통신 패킷에 윈도우 명령창이 발생하면 탐지된다.

탐지된 로그에 어떤 숨은 의미가 있을지 생각해보자. 탐지 로그를 분석하기 위해서는 먼저 로그 분석에 앞서 탐지된 시그니처에 대한 이해가 필요하다.

예제로 사용한 침입탐지로그는 공격자가 백도어 통신을 할 때 탐지되기도 하지만 텔넷과 같은 정상 통신 과정에서도 탐지된다. 그렇다면 예제로 설명한 탐지 로그에 차이점이 무엇인지 생각해보다.

탐지 로그를 자세히 살펴 보자. 탐지된 로그의 도착지 통신 포트가 80번 포트와 53번 포트다. 일반적으로 80번 포트는 웹 서비스에 사용되는 포트이고, 53번 포트는 도메인 네임 서비스(DNS)에 사용된다. 만약 정상 통신이라고 한다면 23번 텔넷 표준 포트를 이용했을 것이다. 공격자는 방화벽과 같은 접근 제어 시스템을 우회하기 위해 통신이 자유로운 80번과 53번 포트를 이용했을 가능성이 높다.

침해사고분석에 증거가 되는 확실한 정황을 찾았다면 실마리를 푸는 열쇠가 되기도 한다. 사례를 하나 더 살펴보자.

그림 SMB실행접근

탐지된 로그는 넷바이오스 통신을 통해 시스템 명령이 실행 되면 탐지 된다. 일반적으로 윈도우 서버를 서비스 목적으로 사용하는 기업에서 배치 작업을 실행하거나 일괄 명령 실행을 수행하는 경우 탐지될 수 있다.

이벤트 탐지 내역을 살펴보자. 접근한 통신 포트는 넷바이오스 통신에 사용되는 TCP 포트이고, 사용자 administrator도 특별한 이상한 점을 발견하지 못했다. 그렇다면 어떻게 위협을 구분할 수 있을까?

이번에는 실행된 파일명을 살펴보자. psexe.exe 파일이 실행되었다. 앞서 2장에서도 소개 했던 윈도우용 명령 실행 프로그램 이다. 넷바이오스 연결을 통해 배치 파일을 실행 시키거나 예약작업에 사용할 파일에 접근하는 경우는 있어도 명령을 실행 시키는 일은 드물다.

일반적인 사용 형태가 아니라면 상세하게 확인해 볼 필요가 있다.

그림 넷바이오스명령실행

해킹을 시도하는 공격자는 한번에 자기가 필요한 정보를 피해 시스템에서 훔쳐가지 않는다. 많은 과정과 여러 명령어를 실행하면서 정보 수집을 하고, 필요한 정보를 훔쳐간다.

이 과정에서 많은 명령이 실행되고 파일들이 생성되거나 실행된다. 여러분이 분석하는 로그에 공격자의 흔적이 분명히 남게 된다.

앞서 소개했던 방법들을 잘 이용해서 그 흔적을 찾아내는데 성공하길 바란다.