본문 바로가기
AI 스쿨 리팩토링 보안직무 과정

21주차 과제 - 보안관제 프로젝트 (2), Snort 설치

by IT스터디큐브 2023. 5. 22.

서론

 보안관제 프로젝트를 진행합니다. 프로젝트의 목적은 악성코드의 행동을 분석하고, Snort를 이용하여 악성코드의 악성행위를 탐지하는 것 입니다.

 프로젝트는 다음과 같은 단계로 이루어집니다.


- 악성코드 샘플 선정 (완료)
- Snort를 설치하고 분석 환경을 구축 <-진행중
- 악성코드를 분석하여 악성코드의 독특한 행위 파악.
- 해당 행위를 기반으로 룰 시그니처 작성
- 룰 시그니처를 적용하고 Snort가 정상적으로 악성 행위를 감지했는지 확인.
- 위의 내용을 기반으로 보고서 작성.

 이번 시간에는 Snort(이하 스노트)를 설치하고 작동하는 지 확인하는 시간이 될 것 입니다.

21주차 과제 - 리팩토링 프로젝트.pptx
0.86MB

 과제 발표에 사용한 PPT 파일을 첨부하겠습니다. 현재 진행하고 있는 과제는 AI 스쿨의 리팩토링 보안직무 과정의 일부입니다. 만약 해당 과정에 더 관심이 있으시다면 AI스쿨의 공식 카페에 방문하여 더많은 정보를 확인해 주시기 바랍니다.

https://cafe.naver.com/itscholar

 

정보보안전문가 취업카페 스칼라 : 네이버 카페

비전공자 전문IT교육, 정보보안전문가, 보안을 아는 개발자, AI 양성교육, IT기술리더, 창업가 양성

cafe.naver.com

본문

 스노트는 IDS 및 IPS기능을 하는 소프트웨어입니다. 지난번 스노트 발표 시간에 스노트가 무엇인지 어떻게 작동하는지 주요 개능은 무엇인지 알아보았습니다. 이번 시간에는 스노트를 사용할 수 있도록 스노트 환경을 구성할 것 입니다.

 스노트 환경을 구축하는데 앞서 몇가지 사항을 짚고 넘어가고자 합니다. 윈도우 버전 스노트는 2.9.20이 최신 버전으로, 리눅스의 Snort3에 비해 구버전입니다. 가장 큰 차이점은 윈도우 스노트에서는 IPS기능을 지원하지 않는다는 점이 있겠습니다.


 또한 스노트 홈페이지에서 구할 수 있는 2.9.20 버전에 여러 오류가 존재하여 이보다 구버전인 2.9.2.3 버전을 사용해야 합니다. 해당 버전의 설치파일을 첨부하니 참고하시기 바랍니다.

 

Snort_2_9_2_3_Installer.exe
3.50MB

  스노트 설치는 위의 설치 파일을 이용하여 진행하시면 됩니다. 초기 설치 세팅대로 진행하면 되기에 다른 사항을 건드릴 필요 없이 Next만 누르시면 됩니다.

 

 참고로 스노트가 작동하려면 Winpcap이라는 프로그램을 추가로 설치해야 합니다. 본 실습 환경에는 이미 Winpcap이 설치되어 있었기에 Winpcap의 설치를 추가적으로 진행하지는 않았습니다.

 

 스노트 설치가 완료되었습니다. 하지만 스노트는 당장 작동시킬 수 있는 상태가 아닙니다. 왜냐하면 스노트의 초기 설정은 리눅스 운영체제에 맞게 설정되어 있기 때문입니다. 예를 들어 윈도우 운영 체제에서는 파일 경로에서 \, 역슬래시를 사용하지만, 리눅스에서는 /, 슬래시를 사용합니다. 또한, 윈도우 스노트 기본 설치 경로와 리눅스의 스노트 기본 설치 경로가 상이합니다.

 

 그렇기에 윈도우 운영체제를 사용하는 상태에서는 설정 파일을 수정하여 윈도우 운영체제에서도 작동하도록 설정을 바로잡을 필요성이 있습니다.

 

 가장 먼저 스노트의 설정 파일로 이동하겠습니다. 별다른 설정을 하지 않고 설치를 진행하였으니 스노트는 기본 설치 경로에 설치되게 됩니다. 따라서 설정 파일의 위치는 다음과 같습니다.

 

c:\snort\etc\snort.conf

 

 참고로 메모장에서 해당 파일을 바로 열게 된다면, 문자열이 깨지는 등의 문제가 발생합니다. 이는 차후 설정 파일이 정상적으로 작동하지 않는 결과를 낳게 됩니다. 따라서 관련 프로그램을 설치한 뒤, 해당 프로그램으로 수정하시기 바랍니다. 관련 프로그램으로는 Notepad++, AcroEdit 등의 프로그램이 존재합니다. 이번 실습에서는 Notepad++를 사용하여 파일을 수정하도록 하겠습니다.

 

 설정 파일을 열어서 수정해야 할 목록입니다.

1.ipvar -> var 일괄 변경 (IPv6, IPv4)
2.# Path to your rules files (this can be a relative path) 부분 절대 경로로 변경

   1.var RULE_PATH ../rules
   
-> var RULE_PATH c:\snort\rules

   2.var SO_RULE_PATH ../so_rules
   
-> var RULE_PATH c:\snort\so_rules

   3.var PREPROC_RULE_PATH ../preproc_rules
   
-> var RULE_PATH c:\snort\preproc_rules

   4.var WHITE_LIST_PATH ../rules
   
-> var WHITE_LIST_PATH c:\snort\rules

   5.var BLACK_LIST_PATH ../rules
   
-> var BLACK_LIST_PATH c:\snort\rules

3.[dynamicpreprocessor], [dynamicengine], [dynamicdetection] 부분

   1.dynamicpreprocessor directory /usr/local/lib/snort_dynamicpreprocessor/
   
-> dynamicpreprocessor directory C:\Snort\lib\snort_dynamicpreprocessor

   2.dynamicengine /usr/local/lib/snort_dynamicengine/libsf_engine.so
    ->
dynamicengine C:\Snort\lib\snort_dynamicengine\sf_engine.dll

   3.dynamicdetection directory /usr/local/lib/snort_dynamicrules
   
-> dynamicdetection directory c:\snort\lib\snort_dynamicrules (해당 이름의 폴더 추가)

4.# site specific rules

   1.include $RULE_PATH/local.rules 이하 모든 항목 # 처리

   2.include $RULE_PATH\user_defind.rules 추가 (해당 이름의 빈 파일도 추가)

5.# Inline packet normalization. For more information, see README.normalize 부분

1.IPS기능을 사용할 수 없으니 해당 4 항목 # 처리

6.# Reputation preprocessor. For more information see README.reputation 부분

1.whitelist $WHITE_LIST_PATH/white_list.rules
 -> whitelist $WHITE_LIST_PATH\white_list.rules (해당 이름의 빈 파일 생성)

2.blacklist $BLACK_LIST_PATH/black_list.rules
 -> blacklist $
BLACK_LIST_PATH\black_list.rules (해당 이름의 빈 파일 생성)

 

스노트는 설정 파일이 가리키는 경로에 파일이 없을 경우 에러가 발생합니다. 따라서 스노트 폴더 안에 설정 파일이 가리키는 빈 폴더, 빈 파일을 반드시 추가해야합니다.

 

설정이 완료되었다면, 스노트가 작동하는지 테스트할 시간입니다. 명령 프롬프트를 실행하고 다음 명령어를 순서대로 입력한다면 테스트가 진행됩니다.

2번 네트워크 인터페이스를 호출한 모습

  1. cd c:\snort\bin
    ## snort.exe의 기본 경로로 이동하기
  2. snort.exe –W
    ## 네트워크 인터페이스 호출하기
  3. snort.exe -T -c C:\Snort\etc\snort.conf -l C:\Snort\log -i 1
    ##테스트 진행하기
    -T : 테스트
    -c : 스노트 설정 파일
    -l : 로그 파일 경로
    -i : 모니터링할 네트워크 카드 번호

3번 테스트가 오류없이 완료된 모습

만약 테스트가 정상적으로 완료되었다면 "-T"부분을 제외한 명령어를 입력한다면 스노트가 작동하기 시작합니다. 다음과 같습니다

 

snort.exe -c C:\Snort\etc\snort.conf -l C:\Snort\log -i 1

 

 이제 스노트가 정상적으로 작동하기 시작했습니다. 스노트는 네트워크 패킷을 감시하면서 log 폴더에 룰 시그니처에 따른 감시 내역을 저장할 것 입니다. 하지만 지금의 스노트는 아직 완전히 작동하는 것이 아닙니다.

 

 스노트의 기본 로그 파일은 2진수로 저장됩니다. 효율적인 로그 파일 관리를 위해서 데이터베이스에 스노트를 연동할 필요성이 존재합니다.

 

 다음 시간에는 데이터베이스 프로그램들을 설치하고, 데이터베이스를 구축하고, 스노트에 연동한 뒤, 테스트용 VMWare 클라이언트를 생성한 수 테스트를 진행하도록 하겠습니다.

댓글