Snort 사용법

 

Snort 실행 상태 중 ping 테스트  -

ping 테스트 란 ?

ping 을 보내는 상태로 네트워크 상에서 각 호스트 간 통신이 살아있는지를 확인하는 명령어

 

아래와 같이 naver에 ping 테스트를 하여  naver가 탐지되는 것을 확인 가능

 

 

 

 

 Snort를 중단하여 패킷 데이터의 통계 확인  -

Snort 실행 상태 중, Ctrl + C 를 누른다.

 

Snort 가 중단되고 자동으로 패킷 데이터의 통계를 확인 가능

 

 

Snort 란 ?

Snort는 실시간으로 트래픽 분석과 패킷을 기록하는 침입 방지 시스템이다.

 

 

▶ Snort 기능

  • 패킷 스니퍼 모드

 tcpdump 와 같은  네트워크의 TCP/IP 패킷을 읽어  보여주는 기능을 제공

  • 패킷 로거 모드

    모니터링 한 패킷을 저장하고 로그를 기록하는 등 트래픽 디버깅에 유용하게 사용

    • Network IDS 모드

    침입탐지시스템(IDS) / 네트워크 트래픽 분석 및 공격 탐지 기능 제공

    • Snort Inline

      침입방지시스템(IDS) / 패킷 분석, 공격 차단 기능 제공 

       

       

        Snort 구조

        • Sniffer

         Snort IDS를 통과한 모든 패킷을 수집

        • Preprocessor

          공격 탐지를 위해 plug-in 을 먼저 거치며 매칭되는지 확인 ( ex) PRC plug-in)

          • Detection Engine

          Rule 기반 탐지 엔진으로, 사전 정의된 탐지룰과 매칭되는지 확인

          • Alert Logging

          정책에 따른 로그 기록을 함

           

           

          Kali에 Snort 설치

          1. Terminal을 켜고 root@Kali

          apt-get update

          apt-get install snort를 차례대로 입력

           

          2. Y/N ? 창이 뜨면 Y를 클릭 -> 설치 진행

           

          3. 완료되면 snort 정책 및 룰을 활성화하자.  

          vi /etc/snort/rules/local.rules

          snort -v -c/etc/snort/rules/local.rules 를 차례대로 입력

           

          4. 설치가 최종 완료되면 Initialization Complete와 함께 Snort 돼지 모양이 나타난다 !

           

           

           

           

          방학 중 4번의 만남이 있었고, 3번 참석하였다.

           

          정보보안 프로젝트와 마찬가지로, 결과 보고서를 포함한 공모전 참가신청서를 작성 후 제출하였다.

           

          여기에는 야구 사이트의 웹 개발만 포함된 것이 아니고, 내 분야의 웹 사이트 보안 문제를 최소화한 코드 작성 및 팀원의 텐서플로우를 활용한 플로우 그래프 구현도 포함하였다.

          (※ 텐서플로우 란 ?  딥러닝을 일반인들도 사용하기 쉽도록 다양한 기능을 제공하는 라이브러리.

          Python/C++을 지원하며 데이터 플로우 그래프를 통한 풍부한 표현력을 자랑한다. 계산 구조, 목표함수 등을 정의하면 자동으로 미분 계산을 처리한다. )

           

           

          우리 팀에서 만든 웹의 특장점은 내 구단에게 최적화된 맞춤형 사이트를 제작했다는 점에 있다. 또한 일정 시간 간격으로  승부 예측을 통해 재미있는 야구 관람 문화를 마련하는 것도 염두에 두었다. 내가 만든 개인정보보호 동의서와 이용약관도 회원가입 시 적용되었다.

           

           

          아래에 S/W 주요 기능 중 내가 구현한 부분만 따로 올려본다.

           

           

           

           

           

          java로 쓰인 시큐어코딩 가이드를 방학 중에 완벽 숙지하는 것이 지난 목표였고, 개학을 맞은 지금,

          '내 임의대로' ppt로 시큐어코딩 가이드를 모두 정리하였다.

           

           

          내가 정리한 것을 순서대로 써 보자면,

          (1) 시큐어코딩 가이드  - 보안 기능 -  

          (2) 시큐어코딩 가이드  - 시간 및 상태 -

          (3) 시큐어코딩 가이드  - 에러 처리 -

          (4) 시큐어코딩 가이드  - 코드 오류 -

          이다.

           

           

           

          (1) 시큐어코딩 가이드  - 보안 기능 -  

          인증, 접근제어, 기밀성, 암호화, 권한 관리 등에 대한 가이드가 요약되어있다.

          주요 부분만 간추려 보았다.

           

           

           

           

          (2) 시큐어코딩 가이드  - 시간 및 상태 -

          데드락(dead lock), 자원 경쟁 조건, 세션 고착 등을 포함하고 있다.

           

          ※ 데드락(dead lock) 이란?

              교착 상태라고도 하며 한정된 자원을 여러 곳에서 사용하려고 할 때 발생할 수 있다.

           

           

           

           

          (3) 시큐어코딩 가이드  - 에러 처리 -

          오류 상황 대응 유형, 패스워드 요구 조건을 설명한다.

           

           

           

           

          (4) 시큐어코딩 가이드  - 코드 오류 -

          프로그램 코드 간소화를 설명한다.

           

           

          방학동안 총 세 번의 미팅이 있었고, 나는 한국전력공사에서 진행하는 해외 봉사에 다녀오는 덕분에 미팅을 한 번 빠졌다.

           

          webgoat을 이용한 burpsuite Tool 사용으로 어느 정도 웹 해킹 스터디를 진행하였고, 우리가 처음 네트워크 구성도를 그릴 때 배웠던 방화벽과 IDS를 직접 사용해보기 위하여 ModesecuritySnort를 설치하고, 그 기능을 알아보는 시간을 가졌다.

          (내가 알아본 Snort에 대해서는 다음 편에 설명하도록 하겠다.)

           

           

          또한 한이음의 1차 결과 보고서 제출 기간인 9.5까지 공모전 참가신청서(중간 개발 보고서)를 작성하였다.

          참가신청서... 라고 하면 별 것 없어보이지만 사실은 20장이 넘는 요약본 & 본문(작품 개요 및 특장점/주요 기능/프로젝트 문제점 등등)을 모두 작성하는 '참' 노가다를 맛보았다 ...

          우리가 지금까지 해온 스터디를 되돌아보는 시간은 무의미할 것 같았지만 생각보다 되게 소중한 시간이였다. 나 스스로도 우리 스터디의 처음 목적과 현재 상태를 비교하면서 최종적으로 도달해야할 목적지를 다시 한 번 되뇌이게 되었다.

           

          아래는 우리 팀의 요약본과 수행일정이다.

           

           

           

          현재 또 다른 목표가 생겨 웹 제작으로 고생해주신 팀원이 있어 나도 부족하지만 도움이 되야겠다는 생각을 했다.

          + Recent posts