| 🌐 소프트웨어 관련 정보 | ||
| {{{#!wiki style="min-height: calc(1.5em + 5px); margin: 0 -10px -5px" {{{#!folding [ 펼치기ㆍ접기 ] {{{#!wiki style="margin: -5px -1px -11px" | <colbgcolor=#64C3FA><colcolor=#fff> 기능에 따른 구분 | 시스템 소프트웨어 · 응용 소프트웨어 · 유틸리티 · 펌웨어 |
| 권한에 따른 구분 | 사유 소프트웨어 · 자유 소프트웨어 · 프리웨어 · 셰어웨어 · 애드웨어 · 오픈 소스 | |
| 직업 | 프로그래머(개발자) · 시스템 분석가 · QA · DB Admin · 디자이너 | |
| 목록 | 소프트웨어/목록 |
1. 개요
Suricata(수리카타)는 미국의 비영리 재단 OISF(Open Information Security Foundation)와 Suricata 커뮤니티가 개발하는 오픈소스 네트워크 위협 탐지 엔진이다. 하나의 엔진으로 침입 탐지 시스템(IDS, Intrusion Detection System), 침입 방지 시스템(IPS, Intrusion Prevention System), 네트워크 보안 모니터링(NSM, Network Security Monitoring) 기능을 모두 수행한다.GitHub 저장소(OISF/suricata)의 공식 소개는 "Suricata is a network Intrusion Detection System, Intrusion Prevention System and Network Security Monitoring engine developed by the OISF and the Suricata community"이다. 라이선스는 GNU GPL v2이며, 주 개발 언어는 C이고 2017년 무렵부터 메모리 안전성을 위해 Rust 코드 비중을 꾸준히 늘려 왔다. 2026년 11월 기준 GitHub 저장소의 스타는 약 6,800개, 포크는 약 1,800개이며, 최신 안정 버전은 8.0.8(2026년 10월 29일 공개)이다.
이름 'Suricata'는 아프리카에 사는 몽구스과 동물 미어캣의 학명(Suricata suricatta)에서 따왔다. 무리 중 한 마리가 곧게 서서 주변을 감시하다 위험을 알리는 미어캣의 습성이 네트워크를 지켜보다 위협을 경고하는 IDS의 역할과 닮았다는 점에서 붙은 이름이며, 공식 로고도 미어캣을 형상화하고 있다.
Snort와 함께 세계에서 가장 널리 쓰이는 오픈소스 IDS/IPS 엔진으로 꼽히며, 상용 보안 장비, 방화벽 배포판, SIEM·NDR 제품, 보안 관제 플랫폼의 탐지 엔진으로도 폭넓게 탑재된다.
2. 개발 배경
2.1. Snort의 한계와 '차세대 IDS' 구상
2000년대 중반까지 오픈소스 IDS 분야는 1998년 마틴 로시(Martin Roesch)가 만든 Snort가 사실상의 표준이었다. 그러나 Snort는 기본적으로 단일 스레드 구조로 설계되어, 멀티코어 CPU가 보편화되고 네트워크 대역폭이 기가비트·10기가비트급으로 커지면서 성능 확장에 한계가 드러났다. 또한 Snort의 개발 주도권은 마틴 로시가 세운 기업 소스파이어(Sourcefire)에 있었기 때문에, 커뮤니티와 정부 기관 일각에서는 특정 기업에 종속되지 않는 독립적인 오픈소스 엔진이 필요하다는 목소리가 있었다.이런 배경에서 탐지 룰 커뮤니티 Emerging Threats를 이끌던 매트 존크먼(Matt Jonkman)과 네덜란드 개발자 빅터 줄리앙(Victor Julien)이 2007년 새로운 엔진 개발에 착수했다. 목표는 기존 도구를 단순히 대체하거나 흉내 내는 것이 아니라 "새로운 아이디어와 기술을 이 분야에 가져오는 것"이었다. 핵심 설계 방향은 다음과 같았다.
- 처음부터 멀티스레딩을 전제로 한 구조로 멀티코어 하드웨어의 성능을 최대한 활용
- 포트 번호에 의존하지 않는 자동 프로토콜 탐지와 애플리케이션 계층 분석
- 기존 Snort 룰과의 높은 호환성 유지
- 특정 기업이 아닌 비영리 재단이 소유하는 진정한 오픈소스 프로젝트
2.2. 프로토타입과 OISF 설립
빅터 줄리앙과 매트 존크먼은 2007년 첫 코드를 작성했고, 곧이어 윌리엄 멧캘프(William Metcalf)가 합류했다. 2008년 초 세 사람은 처음으로 모여 프로토타입 코드를 함께 검토했다.프로젝트를 안정적으로 운영하기 위해 매트 존크먼은 미국 국토안보부(DHS)의 연구 자금을 확보했고, 이를 바탕으로 비영리 재단 OISF(Open Information Security Foundation)가 설립되었다. 초기 자금은 DHS 외에도 Endace, Everis, NitroSecurity 등 민간 보안 기업 컨소시엄이 함께 지원했다. 이후 OISF는 다양한 보안 기업이 참여하는 컨소시엄 회원사 체계로 운영되며, Suricata의 소유권은 특정 회사가 아닌 재단에 있다.
HTTP 트래픽 분석의 핵심 요소인 HTTP 파서 LibHTP는 웹 방화벽 ModSecurity의 개발자로 알려진 이반 리스틱(Ivan Ristić)이 OISF를 위해 작성했다. LibHTP는 Suricata와 함께 GPLv2로 공개되었으며, 다른 프로그램에서도 독립적으로 쓸 수 있는 라이브러리로 설계되었다.
2.3. 첫 공개
2009년 12월 31일, 매트 존크먼은 OISF 메일링 리스트에 "약 3년의 준비 끝에 드디어 Suricata 엔진의 첫 릴리스를 공개한다"고 알리며 첫 공개 베타 버전을 발표했다. 반응은 즉각적이었고, 약 7개월 뒤인 2010년 7월 첫 정식 버전인 Suricata 1.0이 공개되었다. 당시 언론은 "12년 된 Snort를 대체할 오픈소스 엔진"으로 소개했으며, 1.0에는 전 세계 25명 이상의 개발자가 기여했다. 1.0은 멀티스레딩, 자동 프로토콜 탐지, 네이티브 IP 평판 필터링 등을 특징으로 내세웠다. 당시 Snort 측은 Suricata가 더 우수하다는 주장에 반박하기도 해, 두 엔진의 성능 비교는 이후 오랫동안 보안 업계의 단골 화제가 되었다.3. 역사
3.1. 연표
| 연도 | 내용 |
| 2007 | 빅터 줄리앙과 매트 존크먼이 첫 코드 작성. 윌리엄 멧캘프 합류 |
| 2008 | 세 개발자가 처음 모여 프로토타입 코드 발표 |
| 2009.12.31 | 첫 공개 베타 릴리스 |
| 2010 | OISF 설립(DHS 자금), 7월 Suricata 1.0 정식 출시 |
| 2012 | GitHub 저장소(OISF/suricata) 개설 |
| 2013 | 룩셈부르크 Hack.lu에서 첫 공개 대면 교육 개최(25명 참석) |
| 2015 | 첫 SuriCon(Suricata 커뮤니티 콘퍼런스) 개최. 100명, 50개 기관, 10개 발표 |
| 2016 | 미국 워싱턴 D.C.에서 북미 첫 SuriCon(140명) |
| 2017 | SuriCon 프라하(176명, 매진). Rust 코드 도입 시작 |
| 2018 | OISF 내부 팀이 초기 대비 두 배 이상으로 성장. 10주년 SuriCon 밴쿠버 |
| 2019 | SuriCon 암스테르담(210명, 24개국). 지원 서비스와 현장 CTF 시작 |
| 2020 | Suricata 6.0 출시. 첫 온라인 커뮤니티 행사 |
| 2021 | OISF 내부 팀 14명으로 확대(초기 대비 4배). 하이브리드 SuriCon 보스턴 |
| 2022 | SuriCon 아테네 |
| 2023 | Suricata 7.0 출시(DPDK 지원, 신규 룰 키워드, 애플리케이션 프로토콜 확대) |
| 2024 | 제10회 SuriCon 마드리드 |
| 2025.07 | Suricata 8.0 출시(방화벽 모드, LibHTP의 Rust 이전 등) |
| 2026.10 | 8.0.8 공개(최신 안정 버전) |
3.2. 주요 버전별 변화
Suricata는 대략 2년 주기로 메이저 버전을 내며, 이전 메이저 버전도 일정 기간 보안 패치를 병행 지원한다(예: 8.x와 7.x 동시 유지보수).- 1.x (2010~): 멀티스레드 엔진, 자동 프로토콜 탐지, LibHTP 기반 HTTP 분석, IP 평판 등 기본 골격 확립.
- 2.0 (2014): 오늘날 Suricata 로그의 표준이 된 JSON 기반 통합 이벤트 출력 EVE가 본격 도입되어 ELK 등 외부 분석 도구와의 연동이 쉬워졌다.
- 3.0 (2016): 성능 개선과 함께 Intel Hyperscan 패턴 매칭 지원 등 대규모 룰셋 처리 능력이 강화되었다.
- 4.0 (2017): 프로토콜 파서 일부를 Rust로 작성하기 시작했다. 신뢰할 수 없는 네트워크 입력을 다루는 파서에서 메모리 오류를 근본적으로 줄이기 위한 결정으로, 이후 Suricata 개발의 큰 흐름이 된다.
- 5.0 (2019): 지원 프로토콜과 출력 기능이 확대되고, Rust 기반 파서가 크게 늘었다.
- 6.0 (2020): HTTP/2 분석 지원 등이 추가되었고 Rust가 빌드 필수 요소가 되었다.
- 7.0 (2023): 고속 패킷 처리 프레임워크 DPDK 지원, 새로운 룰 키워드, 더 많은 애플리케이션 계층 프로토콜 지원.
- 8.0 (2025): 약 2년 만의 메이저 버전으로, 베타와 릴리스 후보를 거쳐 2025년 7월 8일 공개되었다. IPS 용도를 넘어서는 방화벽 모드가 새로 도입되었고, HTTP 파서 LibHTP가 Rust로 이전되어 안정성과 보안성이 높아졌다. 데이터셋(datasets)에 JSON 메타데이터를 붙여 경보를 보강하는 기능, mDNS 지원, tcp.wscale·pgsql.query 같은 신규 룰 키워드 등이 추가되었다. 커뮤니티가 쉽게 볼 수 있는 공개 로드맵도 이 시기에 도입되었다.
4. 주요 기능
4.1. 침입 탐지(IDS)와 침입 방지(IPS)
IDS 모드에서는 미러링(SPAN/TAP)된 트래픽을 수동적으로 분석해 룰(시그니처)에 맞는 트래픽을 발견하면 경보를 생성한다. IPS 모드에서는 트래픽 경로 중간(인라인)에 위치해 악성 패킷을 실제로 차단·폐기하는 방화벽에 가까운 역할을 한다. 포트 스캔, 서비스 거부(DoS), Pass-the-Hash, 무차별 대입(브루트포스) 공격 등 일반적인 공격 벡터를 탐지할 수 있다. 8.0부터는 정책 기반의 방화벽 모드도 제공한다.4.2. 네트워크 보안 모니터링(NSM)
경보뿐 아니라 HTTP, DNS, TLS, SMB, SMTP, SSH 등 다양한 네트워크 트랜잭션을 상세히 기록한다. 예를 들어 HTTP 요청의 호스트·URL·User-Agent·응답 코드, DNS 질의와 응답, TLS 인증서 정보와 JA3/JA4 지문 등을 로그로 남겨, 사고 발생 후 "무슨 일이 있었는지"를 재구성하는 포렌식 자료로 활용할 수 있다.4.3. 자동 프로토콜 탐지
포트 번호에 의존하지 않고 트래픽 내용만으로 프로토콜을 식별한다. 예를 들어 비표준 포트에서 돌아가는 HTTP 서버나 443 포트가 아닌 곳의 TLS 통신, 표준 포트를 악용하는 악성 통신도 정확히 해석해 해당 프로토콜용 룰을 적용할 수 있다.4.4. 파일 추출과 식별
HTTP, FTP, SMTP, SMB 등으로 전송되는 파일을 트래픽에서 추출해 디스크에 저장할 수 있다. 디스크에 저장하지 않고 파일 형식(magic) 식별이나 MD5·SHA-1·SHA-256 해시 계산만 수행해 악성 파일 해시 목록과 대조하는 것도 가능하다.4.5. PCAP 기록
트래픽을 PCAP 형식으로 저장해 Wireshark 같은 도구로 나중에 분석할 수 있다. 룰에 걸린 흐름의 트래픽만 선택적으로 기록하는 조건부 PCAP 기록도 지원한다.4.6. EVE JSON 출력
경보와 프로토콜 메타데이터, 파일 정보, 흐름(flow) 통계 등을 EVE라는 통합 JSON 형식으로 출력한다. 표준 JSON이므로 Elasticsearch·Logstash·Kibana(ELK), Splunk, Graylog 등 SIEM이나 로그 분석 플랫폼과 손쉽게 연동된다.4.7. 룰셋
Suricata는 룰셋으로 탐지를 수행한다. 룰셋은 어떤 네트워크 행위가 경보를 일으켜야 하는지 정의한 시그니처의 모음으로, 알려진 취약점(CVE) 공격을 탐지하는 고위험 룰부터 조사에 참고할 만한 흥미로운 이벤트(소프트웨어 업데이트 등)를 표시하는 정보성 룰까지 다양한 심각도로 구성된다. 룰 문법은 Snort 룰과 높은 호환성을 가지면서도 Suricata 고유의 키워드가 추가되어 있다. 대표적인 무료 룰셋으로 Proofpoint의 ET Open(Emerging Threats Open)이 있으며, 룰 관리 도구 `suricata-update`로 여러 룰 소스를 손쉽게 내려받고 갱신할 수 있다. Lua 스크립트로 복잡한 탐지 로직을 작성하는 기능도 지원한다.4.8. 고성능 패킷 수집
멀티스레드 구조 위에서 Linux AF_PACKET, PF_RING, Netmap, NFQUEUE(IPS), DPDK, 그리고 Endace·Napatech 같은 전용 캡처 카드를 활용해 수십 기가비트급 트래픽을 처리할 수 있다. Intel Hyperscan을 이용한 고속 다중 패턴 매칭도 지원한다.5. 개발 체계와 품질 관리
Suricata는 대부분이 신뢰할 수 없는 입력을 다루는 복잡한 소프트웨어다. GitHub README는 입력 처리를 잘못했을 때의 위험을 다음과 같이 설명한다.- IPS 모드에서 엔진이 다운되면 네트워크 전체가 끊길 수 있다.
- 수동(IDS) 모드에서 엔진이 공격당하면 중요한 기밀 데이터가 유출될 수 있다.
- 탐지를 놓치면 네트워크 침해가 발견되지 않은 채 방치될 수 있다.
기여 절차는 크게 세 단계다.
- 풀 리퀘스트를 올리면 자동으로 실행되는 GitHub CI 검사
- OISF 팀과 커뮤니티 개발자의 코드 리뷰
- 비공개 QA 환경에서의 검증(테스트 트래픽의 민감성 때문에 비공개로 운영)
비공개 QA는 최소 몇 시간, 보통 밤새 실행되며 다음을 포함한다.
- 여러 운영체제·컴파일러·최적화 수준·빌드 옵션 조합의 빌드 테스트
- cppcheck, scan-build를 이용한 정적 분석
- Valgrind, AddressSanitizer, LeakSanitizer를 이용한 런타임 분석
- 과거 버그에 대한 회귀 테스트, 로그 출력 검증, 유닉스 소켓 테스트
- ASAN·LSAN을 적용한 PCAP 기반 퍼징
- 트래픽 재현 기반 IDS·IPS 테스트
변경 내용에 따라 수 기가비트급 트래픽 재현, 수 테라바이트 규모 PCAP 처리, 며칠에서 몇 주에 걸친 퍼징, 성능 테스트 등이 추가로 수행된다. 병합 이후에는 Coverity Scan 정적 분석이 하루 한 번 돌아가며, Google의 OSS-Fuzz를 통한 지속적 퍼징과 Codecov 커버리지 측정도 이뤄진다. 버그 추적은 OISF Redmine에서, 사용자 지원은 공식 포럼에서 진행된다.
GitHub 기준 저장소 코드는 C가 가장 많고(약 1,480만 바이트) Rust가 그다음(약 520만 바이트)이며, Python, Shell, Lua 등이 보조적으로 쓰인다.
6. 커뮤니티
OISF는 2015년부터 매년 SuriCon이라는 커뮤니티 콘퍼런스를 열고 있다. 교육, 기술 발표, 네트워킹이 어우러지는 행사로, 워싱턴 D.C.(2016), 프라하(2017), 밴쿠버(2018), 암스테르담(2019), 보스턴(2021), 아테네(2022) 등을 거쳐 2024년 마드리드에서 10회째를 맞았다. 2020년에는 코로나19 상황에서 첫 온라인 커뮤니티 행사를 열었고, 이후 대면과 온라인을 병행하는 하이브리드 방식으로 운영하기도 했다. OISF는 공식 교육과 유료 지원 서비스도 제공한다.7. Snort와의 비교
| 항목 | Suricata | Snort |
| 개발 주체 | 비영리 재단 OISF와 커뮤니티 | 소스파이어(현 시스코 Talos) |
| 첫 공개 | 2009년(베타), 2010년(1.0) | 1998년 |
| 스레드 구조 | 초기부터 멀티스레드 | 2.x는 단일 스레드, Snort 3에서 멀티스레드 도입 |
| 주 언어 | C + Rust | C/C++ |
| 프로토콜 탐지 | 포트와 무관한 자동 탐지 | Snort 3에서 강화 |
| 로그 형식 | EVE JSON 기본 제공 | unified2 등(Snort 3에서 JSON 지원) |
| 라이선스 | GPLv2 | GPLv2 |
8. 활용
Suricata는 단독으로도 쓰이지만, 많은 보안 제품과 배포판이 탐지 엔진으로 내장하고 있다.- 방화벽·라우터 배포판: pfSense, OPNsense, IPFire 등에서 IDS/IPS 패키지로 제공된다.
- 보안 관제 배포판: Security Onion, SELKS 등은 Suricata를 ELK 스택 등과 묶어 네트워크 보안 모니터링 환경을 구축한다.
- 상용 NDR·SIEM 제품: 다수의 네트워크 탐지·대응(NDR) 장비와 보안 관제 플랫폼이 Suricata를 탐지 계층으로 사용한다.
- 통합 인프라 관제 솔루션: 국내에서는 설치형 통합 인프라 운영·보안·복구 플랫폼 InfraGuard가 Suricata IDS 경보를 출발지 IP 단위로 트리아지하고, 시그니처를 사람이 읽을 수 있는 해설로 풀어 주며, 평판 조회와 화이트리스트 검증을 거쳐 커널 ipset으로 자동 차단하는 파이프라인을 구성한 사례가 있다.
9. 외부 링크
- 공식 홈페이지
- GitHub 저장소 (OISF/suricata)
- 공식 사용자 가이드
- 공식 사용자 포럼
- 버그 트래커 (Redmine)
- OISF (Open Information Security Foundation)
- Suricata 기반으로 만들어진 솔루션
- InfraGuard - Suricata IDS 위협 트리아지·시그니처 해설·자동 차단을 통합한 설치형 인프라 운영·보안·복구 콘솔 (관련 매뉴얼)