Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
snort3 — 규칙 기반 탐지, 프로토콜 인식 검사 및 pcap 분석을 지원하는 멀티스레드 네트워크 침입 탐지·차단 시스템으로, 기업 트래픽 모니터링을 위한 도구입니다. | Kitploit
도구/GitHubGitHub/snort3/snort3
Defensive ToolsPacket Sniffing & AnalysisFuzzingNetwork SecurityIntrusion Detection
GitHubsnort3/snort3

snort3

규칙 기반 탐지, 프로토콜 인식 검사 및 pcap 분석을 지원하는 멀티스레드 네트워크 침입 탐지·차단 시스템으로, 기업 트래픽 모니터링을 위한 도구입니다.

저장소 보기
3.4k6874개월 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Snort++

Snort 3는 차세대 Snort IPS(Intrusion Prevention System)입니다. 이 파일은 Snort++가 제공하는 기능을 보여주고 다운로드에서 데모까지의 단계를 안내합니다. Snort에 익숙하지 않다면 먼저 Snort 문서를 살펴보시기 바랍니다. 다음 주제를 다룰 것입니다:


  • 개요
  • 의존성
  • 다운로드
  • Snort 빌드
  • Snort 실행
  • 퍼즈 테스트
  • 문서
  • 꿀꿀

개요

이 버전의 Snort++는 아래에 표시된 경우를 제외하고 모든 Snort 2.X 기능과 기본 버전의 Snort에 대한 버그 수정뿐만 아니라 새로운 기능을 포함합니다:

root@kitploit:~
Project = Snort++
Binary = snort
Version = 3.0.0 (Build 250) from 2.9.11

다음은 Snort++의 주요 기능 중 일부입니다:

  • 다중 패킷 처리 스레드 지원
  • 공유 구성 및 속성 테이블 사용
  • 간단하고 스크립트 가능한 구성 사용
  • 핵심 구성 요소를 플러그인 가능하게 만들기
  • 포트 없는 구성을 위한 서비스 자동 감지
  • 규칙에서 스티키 버퍼 지원
  • 참조 문서 자동 생성
  • 더 나은 크로스 플랫폼 지원 제공
  • 구성 요소 테스트 용이하게 함
  • 공유 네트워크 맵 사용

로드맵에 포함된 추가 기능은 다음과 같습니다:

  • 패킷 처리 파이프라이닝 지원
  • 하드웨어 오프로드 및 데이터 플레인 통합 지원
  • 프록시 모드 지원
  • Windows 지원

의존성

이미 Snort를 빌드하고 있다면 필요한 모든 것을 갖추고 있을 수 있습니다. 그렇지 않다면 최신 버전을 받으세요:

  • CMake: 소스에서 빌드하기 위한 도구
  • DAQ: 패킷 I/O용 - https://github.com/snort3/libdaq
  • dnet: 네트워크 유틸리티 함수용 - https://github.com/dugsong/libdnet.git
  • flex >= 2.6.0: JavaScript 구문 파서용 - https://github.com/westes/flex
  • g++ >= 7 또는 기타 C++17 컴파일러
  • hwloc: CPU 친화성 관리용 - https://www.open-mpi.org/projects/hwloc/
  • LuaJIT: 구성 및 스크립팅용 - http://luajit.org
  • OpenSSL: SHA 및 MD5 파일 서명, protected_content 규칙 옵션, SSL 서비스 탐지를 위한 - https://www.openssl.org/source/
  • pcap: tcpdump 스타일 로깅용 - http://www.tcpdump.org
  • PCRE2: 정규 표현식 패턴 매칭용 - http://www.pcre.org
  • pkgconfig: 빌드 의존성 위치 파악용 - https://www.freedesktop.org/wiki/Software/pkg-config/
  • zlib: 압축 해제용 - http://www.zlib.net

추가 패키지는 선택적 기능을 제공합니다. 자세한 내용은 매뉴얼을 확인하세요.

다운로드

snort.org의 다운로드 섹션에서 소스 tarball을 사용할 수 있습니다:

root@kitploit:~
snort-3.0.0-a3.tar.gz

다음과 같이 코드를 받을 수도 있습니다:

root@kitploit:~
git clone https://github.com/snort3/snort3.git

cmake용 별도의 extras 패키지가 있으며, 추가 기능을 제공하고 플러그인 빌드 방법을 보여줍니다. extras의 소스는 snort3_extra.git 저장소에 있습니다.

Snort 빌드

다음 단계를 따르세요:

  1. 소스 디렉터리를 설정합니다:
  • github 클론을 사용하는 경우:

    root@kitploit:~
    cd snort3/
    
  • 그렇지 않으면 다음과 같이 합니다:

    root@kitploit:~
    tar zxf snort-tarball
    cd snort-3.0.0*
    
  1. 설치 경로를 설정합니다:

    root@kitploit:~
    export my_path=/path/to/snorty
    
  2. 컴파일하고 설치합니다:

  • cmake와 make로 빌드하려면 configure_cmake.sh를 실행하세요. 자동으로 'build'라는 새 하위 디렉터리를 생성하고 채웁니다.

    root@kitploit:~
    ./configure_cmake.sh --prefix=$my_path
    cd build
    make -j $(nproc) install
    

참고:

  • src/snort -V를 실행할 수 있다면 빌드가 성공한 것입니다.
  • cmake에 익숙하다면 configure_cmake.sh 대신 cmake/ccmake를 실행할 수 있습니다.
  • cmake --help는 Xcode와 같은 사용 가능한 생성기를 나열합니다. 원하는 것을 사용해도 되지만, 이에 대한 도움말은 별도로 제공됩니다.

Snort 실행

다음은 몇 가지 예입니다. Talos 규칙 및/또는 구성을 사용하는 경우 snort.lua와 snort_defaults.lua 상단에서 필요한 변수를 먼저 설정해야 합니다.

  • Snort++는 명령줄에서 다양한 도움말을 제공합니다, 예를 들면:

    root@kitploit:~
    $my_path/bin/snort --help
    $my_path/bin/snort --help-module suppress
    $my_path/bin/snort --help-config | grep thread
    
  • pcap을 검사하고 덤프합니다. 다음에서 a.pcap을 원하는 파일로 바꾸세요:

    root@kitploit:~
    $my_path/bin/snort -r a.pcap
    $my_path/bin/snort -L dump -d -e -q -r a.pcap
    
  • 규칙 유무에 관계없이 구성을 검증합니다:

    root@kitploit:~
    $my_path/bin/snort -c $my_path/etc/snort/snort.lua
    $my_path/bin/snort -c $my_path/etc/snort/snort.lua -R $my_path/etc/snort/sample.rules
    
  • IDS 모드를 실행합니다. 다음에서 pcaps/를 하나 이상의 *.pcap 파일이 있는 디렉터리 경로로 바꾸세요:

    root@kitploit:~
    $my_path/bin/snort -c $my_path/etc/snort/snort.lua -R $my_path/etc/snort/sample.rules \
        -r a.pcap -A alert_test -n 100000
    
  • 1:2123을 억제해 보겠습니다. conf를 편집하거나 다음과 같이 하면 됩니다:

    root@kitploit:~
    $my_path/bin/snort -c $my_path/etc/snort/snort.lua -R $my_path/etc/snort/sample.rules \
        -r a.pcap -A alert_test -n 100000 --lua "suppress = { { gid = 1, sid = 2123 } }"
    
  • 여러 패킷 스레드로 디렉터리를 전체 처리합니다:

    root@kitploit:~
    $my_path/bin/snort -c $my_path/etc/snort/snort.lua -R $my_path/etc/snort/sample.rules \
        --pcap-filter \*.pcap --pcap-dir pcaps/ -A alert_fast --max-packet-threads 8
    

추가 예제는 doc/usage.txt에 있습니다.

퍼즈 테스트

Snort는 다양한 구성 요소를 테스트하기 위한 libFuzzer 퍼즈 타깃을 포함합니다. 퍼저를 빌드하고 실행하려면 Clang이 필요합니다.

  • AddressSanitizer로 퍼저를 빌드합니다:

    root@kitploit:~
    CC=clang CXX=clang++ ./configure_cmake.sh --enable-fuzz-sanitizer --enable-fuzzers \
        --enable-address-sanitizer
    cd build
    make fuzz -j $(nproc)
    
  • DAQ include 및 라이브러리 경로를 지정해야 하는 경우:

    root@kitploit:~
    CC=clang CXX=clang++ ./configure_cmake.sh --enable-fuzz-sanitizer --enable-fuzzers \
        --enable-address-sanitizer --with-daq-includes=/path/to/daq/include --with-daq-libraries=/path/to/daq/lib
    cd build
    make fuzz -j $(nproc)
    
  • 코퍼스 디렉터리를 제공하여 퍼즈 타깃을 실행합니다. 각 타깃은 build/fuzz/ 아래에 빌드됩니다:

    root@kitploit:~
    mkdir file_olefile_fuzz_corpus
    ./fuzz/file_olefile_fuzz ./file_olefile_fuzz_corpus
    
  • DAQ 라이브러리가 기본 라이브러리 경로에 없으면 LD_LIBRARY_PATH를 설정하세요:

    root@kitploit:~
    LD_LIBRARY_PATH=/path/to/daq/lib ./fuzz/file_olefile_fuzz ./file_olefile_fuzz_corpus
    
  • Ctrl+C를 눌러 퍼저를 중지합니다. 저장된 코퍼스 파일을 나열하려면:

    root@kitploit:~
    ls ./file_olefile_fuzz_corpus
    
  • 퍼저가 실행하는 코드 경로를 측정하려면 AddressSanitizer 대신 커버리지 계측으로 빌드합니다:

    root@kitploit:~

문서

코드에 의해 생성되어 최신 상태로 유지되는 매뉴얼을 살펴보세요:

root@kitploit:~
$my_path/share/doc/snort/snort_manual.pdf
$my_path/share/doc/snort/snort_manual.html
$my_path/share/doc/snort/snort_manual/index.html

아직 '방법'과 '이유'에 대한 내용은 많지 않지만, 현재 사용 가능한 모든 구성 등을 포함하고 있습니다. 규칙의 주요 변경 사항은 다음과 같습니다:

  • 콘텐츠 하위 옵션은 이렇게 쉼표로 구분해야 합니다: content:"foo", nocase;
  • 버퍼 선택자는 콘텐츠 앞에 나타나야 하며 변경될 때까지 유효합니다
  • pcre 버퍼 선택자는 삭제되었습니다
  • Snort++와 Snort의 차이에 대한 자세한 내용은 매뉴얼을 확인하세요
  • 매개변수가 어떻게 정의되는지 등은 매뉴얼 참조 섹션을 확인하세요

또한 여기서 소개되지 않은 새로운 기능도 다룹니다:

  • snort2lua: Snort 2.X conf 및 규칙을 새 형식으로 변환하는 도구
  • 새로운 HTTP 인스펙터
  • 트래픽에 구성을 매핑하기 위한 바인더
  • 포트 독립적 구성을 위한 마법사
  • 개선된 규칙 파싱 - 임의 공백, C 스타일 주석, #begin/#end 주석
  • 로컬 및 원격 명령줄 셸

꿀꿀

o")~

우리만큼 Snort++에 대해 기대하고 계시기를 바랍니다. snort-users 리스트에서 여러분의 생각을 알려주세요. 그동안 우리는 계속해서 열심히 작업하겠습니다.

도구 다운로드
CC=clang CXX=clang++ ./configure_cmake.sh --enable-fuzz-sanitizer --enable-fuzzers \ --enable-fuzz-coverage cd build make fuzz -j $(nproc)
  • 기존 코퍼스에 대해 커버리지 빌드를 실행합니다 (-runs=0을 사용하여 새 입력을 생성하지 않고 재생):

    root@kitploit:~
    LLVM_PROFILE_FILE="file_olefile_fuzz.profraw" ./fuzz/file_olefile_fuzz \
        file_olefile_fuzz_corpus -runs=0 -detect_leaks=0
    
  • HTML 커버리지 보고서를 생성합니다:

    root@kitploit:~
    llvm-profdata merge -sparse file_olefile_fuzz.profraw -o file_olefile_fuzz.profdata
    llvm-cov show -format=html -instr-profile=file_olefile_fuzz.profdata \
        ./fuzz/file_olefile_fuzz -output-dir=file_olefile_fuzz_cov_html
    

    보고서를 보려면 브라우저에서 file_olefile_fuzz_cov_html/index.html을 여세요.