
Security Onion 3.0용 PEAK Baseline Threat Hunt 대시보드 — DNS, HTTP, TLS, SMB, Kerberos, SSH, RDP, DCE/RPC, LDAP, Modbus, DNP3, Suricata 등을 포함
Splunk PEAK Baseline Threat Hunt 방법론을 구현한 가져오기 가능한 Kibana 저장 객체 대시보드로, 사이버 위협 헌트(CTH) 및 사고 대응(IR) 운영을 위해 설계되었습니다. Security Onion 3.0.0에서 Zeek NSM 및 Suricata 데이터와 Elasticsearch를 기반으로 구축 및 검증되었습니다.
각 대시보드는 일관된 2단계 설계를 따릅니다:
모든 대시보드에는 다음이 포함됩니다:
대시보드는 프로토콜에 능숙한 숙련된 헌터와 이를 학습하는 분석가 모두를 위해 설계되었습니다. 마크다운 패널은 정상 동작을 문서화하여 대시보드가 헌트 도구일 뿐만 아니라 교육 보조 자료로도 기능하도록 합니다.
PEAK 프레임워크(Prepare, Execute, Act with Knowledge — 준비, 실행, 지식을 통한 행동)는 Splunk에서 개발한 구조화된 위협 헌팅 방법론입니다. 이 대시보드는 PEAK 프레임워크의 Baseline Hunt 모델을 구현합니다:``` Prepare → Define hypothesis; identify data sources; understand normal behavior Execute → Baseline the data; surface statistical deviations; investigate anomalies Act → Document findings; create detections; update the baseline Knowledge → Feed results back into future hunt planning
PEAK Baseline Hunts의 핵심 통찰은 **정상이 무엇인지 알기 전에는 악성 행위를 찾을 수 없다**는 것입니다. 이 대시보드의 모든 패널은 그 원칙을 염두에 두고 설계되었습니다. 상위 빈도 테이블은 정상을 정의하고, 최하위 빈도 테이블은 일치하지 않는 것을 드러냅니다.
PEAK 프레임워크에 대한 자세한 내용은 [Splunk PEAK 위협 헌팅 프레임워크](https://www.splunk.com/en_us/blog/security/peak-threat-hunting-framework.html)를 참조하세요.
---
## 가져오기 지침
1. Kibana에서 **Stack Management → Saved Objects**로 이동합니다.
2. **Import**를 클릭합니다.
3. 가져올 대시보드의 `.ndjson` 파일을 선택합니다.
4. **Request for action on conflict**를 선택합니다(또는 재가져오는 경우 Overwrite).
5. **Import**를 클릭합니다.
각 파일은 완전히 독립적입니다. 대시보드, 모든 시각화, 저장된 검색을 포함합니다. 외부 저장 객체에 대한 종속성이 없습니다.
> **인덱스 패턴 요구 사항:** 대시보드는 Security Onion 3.0 가져오기의 기본값인 `logs-*` 인덱스 패턴을 사용합니다. 가져오기 전에 이 인덱스 패턴이 Kibana 인스턴스에 존재하는지 확인하세요.
---
## 대시보드 참조
### 표준 네트워크 프로토콜 (Zeek + Suricata)
---
#### `PEAK-Baseline-Conn.ndjson`
**프로토콜:** 네트워크 연결 (Zeek `conn.log`) | **필터:** `tags:conn`
모든 네트워크 베이스라인의 기초입니다. 프로토콜에 관계없이 모든 TCP/UDP/ICMP 연결 레코드를 다룹니다. 헌팅 표면: 드문 IP 쌍 및 포트 조합, 장기 연결(비콘닝), 비정상적인 목적지로의 높은 바이트 카운트 흐름, 거의 보이지 않는 대상 포트.
**주요 필드:** `source.ip`, `destination.ip`, `destination.port`, `network.transport`, `network.protocol`, `network.bytes`, `event.duration`, `connection.state`, `hash.ja4t`
**MITRE:** T1071 (C2), T1048 (Exfil), T1571 (비표준 포트), T1572 (프로토콜 터널링)
---
#### `PEAK-Baseline-DNS.ndjson`
**프로토콜:** DNS (Zeek `dns.log`) | **필터:** `tags:dns`
DNS는 환경에서 가장 쿼리 가능한 데이터 소스이며 공격자에 의해 가장 많이 악용되는 소스 중 하나입니다. 헌팅 표면: 드물게 쿼리되는 도메인(DGA, 새로운 C2 인프라), 높은 엔트로피 도메인 이름, 비정상적인 쿼리 유형(TXT, ANY, NULL — 터널링 지표), 드문 리졸버, NX-도메인 폭풍.
**주요 필드:** `dns.question.name`, `dns.question.type`, `dns.response_code`, `source.ip`, `destination.ip`
**MITRE:** T1071.004 (DNS C2), T1568 (동적 해석), T1048.003 (DNS Exfil), T1583 (인프라 확보)
---
#### `PEAK-Baseline-HTTP.ndjson`
**프로토콜:** HTTP/HTTPS (Zeek `http.log`) | **필터:** `tags:http or tags:http2`
사용자 에이전트, URI 패턴, 상태 코드 및 호스트 분포를 다루는 웹 트래픽 베이스라인입니다. 헌팅 표면: 드물거나 잘못 구성된 사용자 에이전트(도구 지문), 비정상적인 HTTP 메서드, POST 데이터를 수신하는 드문 외부 호스트, 알려진 프레임워크(Cobalt Strike, Metasploit)와 관련된 URI 경로, JA4H 지문.
**주요 필드:** `url.domain`, `url.path`, `http.request.method`, `http.response.status_code`, `user_agent.original`, `source.ip`, `destination.ip`, `hash.ja4h`
**MITRE:** T1071.001 (HTTP C2), T1566 (피싱), T1105 (도구 전송), T1059 (웹을 통한 스크립트 실행)
---
#### `PEAK-Baseline-TLS.ndjson`
**프로토콜:** TLS/SSL (Zeek `ssl.log`) | **필터:** `tags:ssl`
TLS 세션 메타데이터 — 버전, 암호 스위트, 인증서 주체 및 JA3/JA4 지문입니다. 헌팅 표면: 오래되거나 취약한 TLS 버전(1.0/1.1), 자체 서명되거나 비정상적인 인증서 주체, 드문 JA3/JA4 클라이언트 지문(악성코드 도구 서명), 만료된 인증서, 비표준 포트로의 TLS.
**주요 필드:** `tls.version`, `tls.cipher`, `tls.client.server_name`, `tls.server.subject`, `tls.server.issuer`, `hash.ja3`, `hash.ja3s`, `hash.ja4`, `hash.ja4s`
**MITRE:** T1573 (암호화된 채널), T1071 (C2), T1587.003 (자체 서명 인증서)
---
#### `PEAK-Baseline-SMB.ndjson`
**프로토콜:** SMB (Zeek `smb_mapping.log` + `smb_files.log`) | **필터:** `tags:smb_mapping or tags:smb_files`
SMB 공유 매핑과 파일 작업을 모두 다루는 통합 대시보드입니다. 헌팅 표면: 관리 공유(ADMIN$, C$, IPC$)에 대한 액세스, 드문 공유 경로, 비정상적인 파일 액세스 패턴, 이전에 접근한 적 없는 공유에 액세스하는 클라이언트, 측면 이동 파일 스테이징.
**주요 필드:** `smb.path`, `smb.share_type`, `file.action`, `file.name`, `file.path`, `source.ip`, `destination.ip`
**MITRE:** T1021.002 (SMB/Windows 관리 공유), T1570 (측면 도구 전송), T1039 (네트워크 공유 드라이브의 데이터)
---
#### `PEAK-Baseline-Kerberos.ndjson`
**프로토콜:** Kerberos (Zeek `kerberos.log`) | **필터:** `tags:kerberos`
Active Directory 인증 베이스라인입니다. 헌팅 표면: Kerberoasting (특히 RC4 암호를 사용하는 서비스 계정에 대한 TGS 요청), AS-REP Roasting (사전 인증 없는 요청), 패스-더-티켓 지표, 비정상적인 암호화 유형, 드문 클라이언트/서비스 이름 쌍, 인증 실패.
**주요 필드:** `kerberos.request_type`, `kerberos.client`, `kerberos.service`, `kerberos.success`, `kerberos.error_code`, `kerberos.cipher`, `kerberos.forwardable`, `source.ip`, `destination.ip`
**MITRE:** T1558.003 (Kerberoasting), T1558.004 (AS-REP Roasting), T1550.003 (패스-더-티켓)
---
#### `PEAK-Baseline-FTP.ndjson`
**프로토콜:** FTP (Zeek `ftp.log`) | **필터:** `tags:ftp`
FTP 명령 및 응답 베이스라인입니다. 헌팅 표면: 익명 인증(`ftp`/`anonymous` 사용자 이름), 드문 FTP 명령(특히 SITE, CHMOD, DELE), 비정상적인 응답 코드, 비표준 포트로의 FTP, 데이터를 수신하는 드문 외부 FTP 서버.
**주요 필드:** `ftp.command`, `ftp.user`, `ftp.argument`, `server.reply_code`, `server.reply_message`, `source.ip`, `destination.ip`
**MITRE:** T1048 (대체 프로토콜을 통한 유출), T1071 (C2), T1105 (도구 전송)
---
#### `PEAK-Baseline-SSH.ndjson`
**프로토콜:** SSH (Zeek `ssh.log`) | **필터:** `tags:ssh`
클라이언트/서버 버전 문자열 및 HASSH 지문을 포함한 SSH 세션 베이스라인입니다. 헌팅 표면: 드문 SSH 클라이언트 또는 서버 배너(도구 지문), 비정상적인 암호/MAC 알고리즘 선택, 알려진 공격 도구(Paramiko, Metasploit)와 일치하는 HASSH 지문, 비표준 포트로의 SSH, 드문 소스 → 대상 쌍.
**주요 필드:** `ssh.client`, `ssh.server`, `ssh.version`, `ssh.cipher_algorithm`, `ssh.kex_algorithm`, `ssh.authentication.success`, `hash.hassh`, `ssh.hassh_server`
**MITRE:** T1021.004 (SSH 측면 이동), T1071 (C2), T1110 (무차별 대입)
---
#### `PEAK-Baseline-RDP.ndjson`
**프로토콜:** RDP (Zeek `rdp.log`) | **필터:** `tags:rdp`
원격 데스크톱 베이스라인입니다. 헌팅 표면: 외부/지리적으로 비정상적인 소스 IP의 RDP, 낮은 인증서 수(자체 서명), 비정상적인 보안 프로토콜, NLA(네트워크 수준 인증) 없는 RDP, 관리자 액세스를 위한 드문 소스 → 대상 쌍.
**주요 필드:** `rdp.result`, `rdp.cookie`, `rdp.security_protocol`, `rdp.certificate_count`, `source.ip`, `destination.ip`, `source.geo.*`
**MITRE:** T1021.001 (원격 데스크톱 프로토콜), T1133 (외부 원격 서비스), T1563.002 (RDP 하이재킹)
---
#### `PEAK-Baseline-SMTP.ndjson`
**프로토콜:** SMTP (Zeek `smtp.log`) | **필터:** `tags:smtp`
이메일 트래픽 베이스라인입니다. 헌팅 표면: `smtp.helo`의 드문 발신자 도메인, 비정상적인 `mail_from` 주소, 외부 대상에 대한 대량 발신자, TLS 없는 SMTP(`smtp.tls:false`), 트랜잭션 깊이 이상값, 비표준 메일 서버에 대한 웹메일 클라이언트.
**주요 필드:** `smtp.helo`, `smtp.mail_from`, `smtp.recipient_to`, `smtp.last_reply`, `smtp.tls`, `smtp.is_webmail`, `source.ip`, `destination.ip`
**MITRE:** T1566 (피싱), T1048 (이메일을 통한 유출), T1071 (메일 프로토콜을 통한 C2)
---
#### `PEAK-Baseline-NTLM.ndjson`
**프로토콜:** NTLM (Zeek `ntlm.log`) | **필터:** `tags:ntlm`
자격 증명 공격 탐지를 위한 NTLM 인증 베이스라인입니다. 헌팅 표면: Kerberos를 사용해야 하는 NTLM 인증(레거시 인증 또는 강제 다운그레이드), 비정상적인 워크스테이션 → 서버 인증 쌍, 드문 도메인 이름, 높은 NTLM 실패율(스프레이/무차별), SMB 릴레이 지표.
**주요 필드:** `user.name`, `host.domain`, `ntlm.server.nb.name`, `ntlm.server.dns.name`, `source.ip`, `destination.ip`
**MITRE:** T1110 (무차별 대입), T1557.001 (NTLM 릴레이), T1550.002 (패스-더-해시), T1187 (강제 인증)
---
#### `PEAK-Baseline-DCE-RPC.ndjson`
**프로토콜:** DCE/RPC (Zeek `dce_rpc.log`) | **필터:** `tags:dce_rpc`
측면 이동 및 자격 증명 공격 탐지를 위한 Windows RPC 호출 베이스라인입니다. 헌팅 표면: `drsuapi` 엔드포인트(DCSync — T1003.006), `svcctl` 엔드포인트(원격 서비스 생성), `atsvc` / `ITaskSchedulerService` (원격 예약 작업), 비-DC 호스트의 `samr`/`lsarpc` (자격 증명 덤프), 워크스테이션의 드문 작업.
`drsuapi` 및 `svcctl` 엔드포인트에 대한 사전 필터링된 패널은 환경에서 DCSync 탐지에 가장 빠른 경로를 제공합니다.