'sguil'에 해당되는 글 1건

  1. 2012.10.16 Security Onion 설치가이드: Snort를 가장 쉽게 설치하는 법 4
보안vs해킹2012. 10. 16. 06:04

 

Security Onion 설치가이드: Snort를 가장 쉽게 설치하는 법

 

개요

 

Security Onion은 Doug Burks라는 네트워크 보안쪽에 종사하는 사람이 만든 리눅스 배포판(Linux Distro.)이다. 백트랙 (Back Track)과 같이 여러가지 툴들을 모아놓은 라이브 씨디로 Security Onion 하나의 설치만으로 여러개의 네트워크 모니터 센서를 관리할 수 있다. Mandiant라는 네트워크 보안회사에 일하는 걸로 보이는데 Security Onion과 관계가 있는것 처럼 보이지는 않는 걸로 보인다.

 

특징

 

Security Onion 이 다른 네트워크 시스템과 다른점은 설치하는데 있어 엄청나게 편리하다는 점이다. 내 기억에 Snort를 알게 된 것이 2005년이었지만 Snort를 설치하고 사용하기까지는 몇개월의 시간이 걸렸던걸로 기억할만큼 dependency문제때문에라도 Snort는 작업하기 힘든 툴로 인식되어 있었다. 하지만 Security Onion을 통해서는 Snort뿐만 아니라 Suricata와 같은 네트워크 모니터링 센서를 사용할 수 있고 Snorby, Sguil, Squert와 같은 모니터링 툴을 이용해 룰을 관리할 수 있다. 이처럼 여러개의 툴들을 설치하는데 걸리는 시간을 Security Onion을 통해 혁신적으로 단축시킬 수 있다는 점이 Security Onion의 특징이다. 개인적으로 Security Onion에 대한 지나치리만치 찬사를 보내지만 이 또한 충분하지 않다고 생각될 정도로 네트워크 시큐리티 모니터 분야에서 필수적인 툴임에 분명하다.

 

사양

 

메모리는 1GB로 충분하지만 16GB가 추천사양이다. 데이타 공간은 90%가 되면 자동으로 삭제되지만 일반적으로 50Mb/s 의 전송속도라면 하루에 540GB의 패킷이 생성되게 된다. 물론 모든 패킷을 다 저장하지는 않지만 (팬타곤은 한다고 하던데) 그만큼 패킷을 저장하는데 큰 용량이 필요하므로 저장공간을 넉넉히 준비하는게 좋다. 아직 64bit 는 배포되지 않고 있다. 자세한 스펙은 아래의 링크를 참조 바란다. http://code.google.com/p/security-onion/wiki/Hardware

 

설치

 

현 최신버전은 12.04 BETA이고 http://sourceforge.net/projects/security-onion/files/에서 라이브 씨디를 받을 수 있다.

 

한번 간단히 맛을 보려는 사용자나 설치하면 안되는 시스템에서는 live로 부팅하고 아니면 세번째 칸에 있는 install을 통해 설치를 시작한다.

 

우분투 버전의 Xfce 데스크탑 환경의 xubuntu

 

21세기인 만큼 설치는 영어로. 물론 한글도 지원하지만 한글을 이해하는 것도 쉽지는 않을 것이다.

 

시간세팅은 본인의 GMT에 맞추면 되지만 Snort가 저장하는 시간은 GMT이다. 가끔 시스템 시간이 안맞다고 포럼에 올라오는 사람들이 있는데 Snort 혹은 Security Onion은 GMT를 따른다는 점을 명시하자.

 

기본 키보드는 영어로.

 

리눅스 파티션에 특별한 설정이 필요하지 않다면 'Erase and use the entire disk'를 설정한다.

 

이름과 패스워드를 등록한다. 시스템에 필요한 정보이고 Snort에는 차후에 다시 생성해야 한다.

 

클릭 Install!

 

자 이제 Security Onion이 설치되었다. 바탕화면에 보면 친절하게도 'Setup'이라는 아이콘이 있는데 이걸 클릭하면 Snort(또는 Suricata), Sguil, Snorby 그리고 Squert가 설치되게 된다.

 

당연히 Yes

 

여기서는 'No, use Advanced Setup'으로 간다. Quick Setup보다 본인이 원하는 세팅을 조정해주려면 Advanced Setup으로 가자.

 

Snort에서 센서라고 하면 네트워크 패킷을 받는 서버를 말하고 큰 네트워크에서는 여러개의 센서를 동시에 관리하기도 하는데 해당 서버가 센서인지 아님은 관리모드 서버인지를 물어보는 것이다. 여기서는 Both를 선택한다.

 

Suricata를 원한다면 No를 선택한다. 하지만 Snort를 선택하는 것을 추천한다.

 

네트워크 인터페이스가 여러개일 경우에 모니터할 것을 선택하는 것으로 여기서는 하나밖에 없으므로 eth0을 선택한다.

 

Snort에 쓰일 룰을 선택하는 창이다. Snort는 매달 30불정도 내면 최신 룰을 다운 받게 해주고 가입만하면 1달지난 룰을 무료로 받게 해준다. 또한 Emerging Threats GPL은 무료 룰로써 개인적으로 사용하기에는 문제가 없다. 물론 설치후에 계속적인 룰의 업데이트는 꼭 필요하다. 우선은 첫번째의 Emerging Threats GPL을 선택한다.

 

이메일로 아이디 역할을 하게 되므로 스팸걱정은 안해도 된다.

 

패스워드

 

패스워드 확인

 

자, 설치가 시작되니 고칠거 있으면 No로 가서 고치세요.

 

몇분만에 모든 센서와 모니터링 툴이 완성 되었다. 기본적인 룰은 /etc/nsm/rules/downloaded.rules에 들어가 있는데 16,000개가 넘는 룰이므로 본인이 확인후 쓸모없는것들은 지워줘야 한다.

 

바탕화면에 Squert 아이콘이 있을 것이다. Security Onion의 모든 웹서버는 https이므로 Certificate질문에 Yes라고 하면 다음과 같이 결과값이 나타나게 된다.

 

또한 바탕화면에 Snorby가 있는데 차세대 각광받는 Snort 모니터링 툴이다. 클라우드 버젼도 있어서 한달에 $10만 내면 웹브라우저를 통해 관리 할 수 있다.

 

자 이제 모든 설치가 끝났으니 아래의 사이트에 가서 본인의 센서가 작동하는지 확인해보자.

 

웹브라우저에서 http://testmyids.com 을 쳐보자.

 

위의 결과값은 Wireshark를 통해서 패킷을 캡춰한 사진이다. 위에서 볼 수 있듯이 외부이용자가 루트 권한으로 접근을 시도한 것을 볼 수 있다. 이제 이 시도한 것이 Squert와 Snorby에 감지되었는지 확인해보자.

 

Squert화면에 보면 마지막에 ET POLICY curl User-Agent Outbound라는 메세지가 보일것이다. 이로써 센서가 정확히 작동하고 있음을 알 수 있다. Snorby로 좀 더 자세히 알아보자.

 

Snorby를 통해 ASCII값을 볼 수 있는데 다음과 같이 센서에 잘 모니터되고 있음이 나타났다. Snorby의 강점은 이렇게 ASCII값으로 결과값을 보여줄 뿐만 아니라 Snorby관리툴을 통해서 룰을 고칠 수 있다. Squert나 BASE를 이용한다면 해당 룰로가서 룰을 비확성화 시켜줘야 하지만 Snorby는 클릭만으로 손쉽게 룰을 관리 할 수가 있다. 또한 트위터와 같은 Ruby on Rails를 이용해서 사용자의 눈에 편하다는 점이 있다.

 

안타깝지만 BASE는 1년여간 업데이트가 없어서 (현 1.4.5) Doug Burks나 Joel Esler (Snort Senior Engineer)같은 사람들은 BASE를 권장하지 않는다.

 

Security Onion을 설치하면 Sguil이라는 모니터링 툴도 함께 설치가 되는데 Sguil은 웹으로 관리가 되지 않는 단점이 있다. 하지만 Sguil은 큰 데이터분석에 강점을 가지고 있고 속도면에서도 상당히 빠르다. Security Onion의 데이타베이스를 보면 Snorby와 Sguil를 각각 다른 디비에 저장하고 있다. 비슷한 결과값들을 왜 다른 디비에 저장하는가 생각할 수도 있지만 Snorby만의 강점이 있고 Sguil만의 강점이 있으므로 두개를 번갈아가면서 사용하는 것이 일반적인 시큐리티 관리자가 사용하는 가장 무난한 방법이라고 생각한 듯 하다. 참고로 많은 전문가들은 이러한 툴을 사용하지 않고 tcpdump만 사용한다고 들었다. 아마도 실제모니터링 보다는 케이스스터디에 좀더 집중해서 그런 듯 하다.

 

애필로그

 

1. 프록시 설정

/etc/environment에 아래와 같이 설정한다.

export http_proxy=https://server:port
export https_proxy=https://server:port
export ftp_proxy=https://server:port

2. 만약 메모리가 4GB가 넘는다면 아래의 링크를 참조해서 PAE를 설정해 준다.

https://help.ubuntu.com/community/EnablingPAE

 

3. 커널 네트워크 버퍼 늘리기

echo "net.core.netdev_max_backlog = 10000
net.core.rmem_default = 50000000
net.core.rmem_max = 50000000
net.ipv4.tcp_mem = 194688 259584 389376
net.ipv4.tcp_rmem = 1048576 4194304 33554432"
| sudo tee /etc/sysctl.d/30-securityonion.conf
sudo sysctl
-p /etc/sysctl.d/30-securityonion.conf

4. 우분투 업데이트 하기

sudo apt-get update && sudo apt-get dist-upgrade

5. 센서 리스타트 하기

sudo nsm_sensor_ps-restart
Posted by 구텐모르겐