Sguil – Network Security Monitoring 구축하기

네트워크 감시는 IPS 혹은 방화벽을 통해 진행할 수 있지만, 우리는 손쉽게 구할 수 있는 오픈 소스 프로그램 스노트(Snort)를 이용한 공개 IDS를 이용하는 방식을 진행해보고자 한다.

대부분의 공개형 IDS의 경우, 오픈 소스로 개발된 스노트(Snort) 엔진을 사용하고 있다. 일부 상용 보안 모듈에서도 이 스노트 엔진을 이용할 정도로 IDS 분야에서는 유명한 엔진이라 할 수 있다.

 

[그림] 오픈소스로 제공되는 IDS 엔진 스노트

 

이 스노트 엔진은 엔진 자체만을 제공할 뿐, 이벤트를 관리/운영하는 NSM(Network Security Monitoring)은 별로도 구성해야 한다. 이를 위해 다양한 NSM이 스노트 엔진을 지원하며, 나아가 LiveCD(설치가 필요없는 운영체제) 형태로도 많이 제공되어 배포되고 있다. 그 중에서 이 책에서는 Security Onion(http://securityonion.blogspot.com)이라는 스노트 기반에 스구일(Sguil)을 설치하여 배포하는 커스텀 마이징된 패키지를 가지고 얘기해보고자 한다.

스구일은 http://nsmwiki.org에서 정보를 확인할 수 있으며, 이벤트 발생시 조치와 관리가 편리한 도구로 많은 업체에서 IDS용도로 사용하고 있다.

스구일의 가장 큰 장점이라면, 이벤트가 발생하였을 때 사전에 정의된 유형으로 구분되지 않고, 이벤트를 직접 구분하여 처리할 수 있다는 것이다.

Security Onion는 설치가 어렵지 않고, 마법사로 제공되므로 책에서는 설치와 관련된 내용은 생략하도록 하겠다.

 

[그림] 마법사를 이용하여 2번 클릭만으로 설치할 수 있다

 

설치와 관련되어 어려운 부분이나, 센서와 서버를 분리 설치하는 부분은 http://securityonion.blogspot.com에서 가이드하고 있으므로 해당 홈페이지를 참고 하기 바란다.

설치를 완료 하였다면, 바탕화면의 Sguil 아이콘을 더블 클릭하여 설치시 생성한 계정으로 접속하면 아래와 같은 화면을 만날 수 있다.

 

[그림] 스구일 클라이언트의 메인화면, 이를 통해 IDS를 효과적으로 운영할 수 있다

 

설치 완료 후 정상적으로 IDS가 동작하는지 확인을 위해 테스트 사이트인 http://testmyids.com 사이트에 접속해 보도록 하자.

그럼 아래와 같이 메시지와 함께 이벤트가 하나 생성되면서 정상적으로 IDS 모드가 동작하고 있음을 확인할 수 있다.

[그림] IDS 동작 유무 확인

 

더욱이 Realtime Event 창을 통해 실시간으로 이벤트를 확인하고 처리할 수 있는 기능이 타 IDS에 비해 우수하여 분석가들의 수고를 덜 수 있다. 그럼 스구일의 관리 도구의 기능들에 대해 하나씩 알아 보도록 하자.

아래 그림은 IDS의 메인이라 할 수 있는 Realtime Event 창으로 이외 화면은 관련 내용을 보여주는 보조 창으로 생각하면 된다.

 

[그림] 스구일 IDS 실시간 이벤트 창

 

스구일에서는 이벤트 처리를 메인 화면인 Realtime Event 창에서 이벤트 발생시 실시간으로 업데이트 된다. 이후 분석을 진행할 때 이용할 수 있는 명령이, Realtime Event 창의 각 컬럼별 사용 가능한 메뉴가 나누어지는데, 마우스 오른쪽 버튼을 통해 각 컬럼당 조정할 수 있는 명령을 확인할 수 있다. 컬럼별 동작하는 명령에 대해 알아보도록 하자.

 

ST: 해당 이벤트를 정의된 구분으로 표시한다. 이벤트 정의에 대해서는 다음 페이지에서 정리하겠다.

CNT: 동일 이벤트의 발생 횟수를 표시한다. 마우스 오른쪽 클릭시 선택한 이벤트가 여러 개인 경우 펼쳐서 보여준다.

Alert ID: 이벤트를 처리한 히스토리를 보거나, 기존 처리 내용을 확인 할 수 있다. 그리고 와이어샤크를 이용한 데이터 분석도 가능하다.

Src IP: 출발지 IP와 관련하여 검색할 수 있다.

Dst IP: 도착지 IP와 관련하여 검색할 수 있다.

Event Message: 이벤트 메시지 내용에 관련하여 검색할 수 있다.

 

주요하게 사용할 기능으로는 STAlert ID으로, 그 중 ST는 State 약자이다. 즉 현재 발생한 이벤트 유형을 구분하여 엔지니어가 직접 확인 후, 위험한 이벤트와 무시해도 되는 이벤트를 IDS를 보고 식별하도록 되어 있다.

 

[그림] ST 탭에서 이벤트 구분하거나 분류를 확인할 수 있다

 

더욱이 스구일에서는 빠른 구분을 위해 단축키를 제공하며 F1~F8까지 사용 가능하고, F9의 경우 상위 엔지니어에게 전달하는 개념으로 사용된다. 즉 본인이 판단하기 어려운 이벤트인 경우 상위 엔지니어에게 넘기는 것을 의미한다. 만약 F9를 통해 에스컬레이트하게 되면, Escalated Events 탭에서 자신이 올린 이벤트에 대해 상위 엔지니어가 처리한 내용을 확인할 수 있다.

 

Cat I(F1): 허용하지 않은 관리자 접근

Cat II(F2): 허용하지 않은 사용자 접근

Cat III(F3): 허용하지 않은 접근 시도

Cat IV(F4): 성공한 서비스 거부 공격

Cat V(F5): 보안 취약점을 이용한 공격 혹은 정책 위반

Cat VI(F6): 스캔/조사/염탐

Cat VII(F7): 바이러스 간염

Cat VIII(F8): 불필요한 이벤트로 N/A 처리

 

그리고 이벤트 확인에 도움을 주는 기능은, Alert ID에서 확인할 수 있다.

 

[그림] 이벤트 처리 히스토리 확인이 가능하다

 

이미 C1으로 지정한 이벤트를 C7으로 변경할 수 있다. 만약 여러 엔지니어가 IDS를 확인한다면 변경시 코멘트를 달아, 변경사유 혹은 지정 이유 등을 적어 놓을 수 있다.

 

[그림] 여러 분석가들이 입력한 의견 내용을 한번에 확인할 수 있다

 

그리고 Alert ID에서 와이어샤크와 연동하여, 의심 패킷에 대한 전체 내용을 확인하거나 패킷의 세부 내용을 추가 분석할 수 있다.

 

[그림] 특정 이벤트의 전체 연결 패킷을 Trascripts 기능으로 확인할 수 있다

 

아래는 Alert ID를 이용 가능한 메뉴 중 Wireshark 메뉴를 이용해 아래와 같이 전체 공격 트래픽 내용을 확인할 수 있다.

 

[그림] 스구일을 통해 관련 패킷을 와이어샤크로 바로 분석할 수 있도록 메뉴를 제공

 

이러한 관리 능력은 여타 스노트 기반 공개 NSM에서는 제공하지 않는 기능들로, 각 업체에 맞는 관리 설정이 가능하게 하고, 잘못된 탐지(오탐)를 최소화 해준다. 상용 NSM 솔루션에 버금 가는 기능들과 해당 이벤트의 분석 능력까지 갖추고 있으므로, 아직 IDS를 도입하지 않았다면, 스구일 기반의 IDS 도입을 추천하는 바이다.

 

 

포트 미러링

IDS를 운영하기 위해서는 네트워크 트래픽을 감시해야 하는데, 이를 위해 물리적인 TAP(Test Access Port) 장비를 이용하여 트래픽을 미러링하거나, 네트워크 장비를 이용하여 네트워크 트래픽을 IDS와 같은 분석 장비로 보내야 한다. TAP 장비를 이용할 경우 추가적인 비용이 소모되므로, 중요한 데이터가 흐르는 곳이라면 당연히 TAP 장비를 이용하여 구축해야겠지만, 모든 영역에 TAP 장비를 도입하는 것은 큰 비용이 부담이 될 수밖에 없다.

 

[그림] SPAN(Switched Port Analyzer)/Mirror port 기능을 사용할 수 있는 장비, TAP

 

위 TAP 장비를 이용한 방법은 장비 구축만으로 바로 트래픽 모니터링을 할 수 있다. 여기에서는 네트워크 장비(Cisco 기준)에서 트래픽을 모니터링 할 수 있는 미러링 방법에 대해 확인해 보자.

 

// 미러링 설정

monitor session <세션번호> source interface 인터페이스

monitor session <새션번호> destination interface 인터페이스

// 미러링 상황 확인

show monitor session _

[실습] Cisco 미러링 구성 내용

 

그럼 위 미러링 명령을 이용하여 네트워크 장비에서 실제 미러링 구성을 진행해 보자. 아래 명령은, 관리자모드(Enable모드, #프롬프트를 의미한다. 유저모드는 프롬프트가 >로 표시됨)에서 사용 가능하다.

 

// 기가인터페이스 0/6 의 트래픽을 기가인터페이스 0/24으로 복제

#monitor session 1 source interface Gi0/6

#monitor session 1 destination interface Gi0/24

// 기가인터페이스 0/4~0/5의 트래픽을 기가인터페이스 0/23으로 복제

#monitor session 2 source interface Gi0/4 – 5

#monitor session 2 destination interface Gi0/23

[실습] Cisco 미러링 사용 예제

 

 

Windows에서 스구일 클라이언트 실행하기

대다수 사용자들이 자신의 운영체제로 윈도우를 사용하는데, IDS 관리를 위해 리눅스를 별도로 사용한다는 것은 매우 불편한 일이 아닐 수 없다. 이를 위해 스구일 클라이언트를 윈도우에서 실행할 수 있는 방법을 알아보도록 하자.

윈도우에서 스구일 클라이언트를 실행하기 위해서는 먼저 ActiveTcl을 설치해야 한다. 이를 설치하면 .tk 확장자를 가진 Wish로 제작된 유닉스용 프로그램을 실행할 수 있게 된다. 단 스구일은 현재 Tcl 8.4.19.5버전을 지원하며, 이보다 상위 버전을 설치하면 정상적으로 실행되지 않으므로, http://www.activestate.com에 방문하여, ActiveTcl를 다운로드할 때 주의하기 바란다.

 

[그림] ActiveTcl 8.4.19 버전 설치

 

해당 파일을 설치하고 스구일 홈페이지를 방문하여 스구일 패키지를 다운로드하자. 다운로드한 파일을 열어 Client를 적당한 디렉토리에 압축을 풀도록 하자(필자는 C:\tcl 하위에 압축을 풀었다).

 

[그림] 스구일 패키지에서 클라이언트 압축 해제

 

그리고 Client 디렉토리를 열어보면 Sguil.conf 파일이 존재하는데, UNIX 환경에 맞도록 구성되어 있다. 이를 윈도우에서 실행할 수 있는 구조로 변경해 주도록 하자(각 주석문을 통해 윈도우 설치시 변경 내용에 대해 친절히 알려준다). 아래 수정한 환경설정 부분이니 참고하기 바란다.

 

 

#set SERVERHOST “demo.sguil.net localhost 10.0.0.2”

set SERVERHOST 10.0.2.17 ß 클라이언트 실행시 최초나타나는 서버IP

 

# PATH to tls lib if needed (tcl can usually find this by default)

set TLS_PATH c:/tcltls16.dll ß TLS 라이브러리 경로를 지정한다.

 

# Path to wireshark (ethereal)

set WIRESHARK_PATH c:/progra~1/wireshark/wireshark.exe ß 내용 확인시 사용할 패킷분석기

 

# Where to save the temporary raw data files on the client system

# You need to remember to delete these yourself.

set WIRESHARK_STORE_DIR c:/tmp ß 클라이언트가 사용할 임시파일 디렉토리

 

# Favorite browser for looking at sig info on snort.org

set BROWSER_PATH c:/progra~1/intern~1/iexplore.exe ß 내용확인시 사용할 기본브라우저

 

# Path to gpg

set GPG_PATH c:/gnup ß GPG 저장 디렉토리

 

이렇게 구성하였다면, sguil.tk 파일을 더블 클릭하여, 연결 프로그램을 조금 전에 설치한 ActiveTcl의 Wish84.exe로 선택하자.

 

[그림] wish84를 이용하여 윈도우에서 구동이 가능하다

 

만약 정상적으로 구성하였다면, 아래와 같이 Sguil 클라이언트 화면이 구동된 것을 확인할 수 있을 것이다. 이를 통해, IDS 서버에 접근하, 모니터링을 하면 된다.

 

[그림] 윈도우에서 스구일 클라이언트를 구동한 모습

Facebook Comments

Leave A Reply

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.