
libpcap을 사용하여 실시간 트래픽을 캡처하는 경량 네트워크 침입 탐지 엔진입니다. SYN/ICMP 플러드, 포트 스캔 및 시그니처 기반 웹 공격(SQLi, XSS, 명령 삽입)을 실시간으로 탐지합니다.
version: 0.001
경량 '네트워크 침입 탐지 엔진'으로 실시간 트래픽을 캡처하고 실제 공격을 실시간으로 탐지합니다. (Zig 0.15.2).
- libpcap을 이용한 실시간 패킷 캡처
- 사용자 정의 패킷 파싱:
- Ethernet
- IPv4
- TCP / UDP / ICMP
- 공격 탐지:
- SYN Flood 탐지
- ICMP Flood 탐지
- TCP/UDP 포트 스캔 탐지
- Ping of Death
- 시그니처 기반 탐지:
- SQL Injection (UNION, DROP, 1=1)
- Cross-Site Scripting (XSS)
- Command Injection
- Path Traversal
- 실시간 경보 시스템
- 탐지 통계 추적
<!-- 인터페이스 -->
```ip link```
bash```sudo zig build run -- -i wlan0
bash```sudo zig build run -- -i <인터페이스>
1. 포트 스캔: nping/nmap 사용
2. SYN Flood: hping3 사용
3. 정상 트래픽 생성: curl/wget 사용
4. 네트워크 트래픽: iperf 사용
5. 사용자 정의 패킷 제작: Python의 scapy 사용
6. ICMP: ping 사용
```테스트 트래픽을 생성하는 몇 가지 방법```
1. 포트 스캔 (탐지 테스트):
# TCP SYN 스캔 ("TCP SYN 스캔" 경보를 트리거해야 함)
bash```sudo nmap -sS <PRIVATE_IP_ADDR>
bash```sudo nmap -sS <PRIVATE_IP_ADDR>
# UDP 스캔
bash```sudo nmap -sU PRIVATE_IP_ADDR
2. SYN Flood (SYN Flood 탐지 테스트):
bash```sudo hping3 -S --flood -V PRIVATE_IP_ADDR
3. ICMP Flood (ICMP 탐지 테스트):
bash```sudo hping3 --icmp --flood PRIVATE_IP_ADDR
4. 정상 트래픽 (패킷 출력 확인):
# HTTP 트래픽 생성
bash```curl http://example.com
# 또는 ping
bash```ping PRIVATE_IP_ADDR```
5. 사용자 정의 페이로드용 Python 스크립트 (시그니처 탐지 테스트):
from scapy.all import *
# SQL Injection 패턴이 포함된 패킷 전송
```send(IP(dst="PRIVATE_IP_ADDR")/TCP()/b"GET /?id=1 UNION SELECT * FROM users")```
면책 조항:
먼저 탐지기를 실행한 후, 다른 터미널에서 트래픽을 생성하세요. 다음을 확인할 수 있습니다:
- 모든 트래픽에 대한 패킷 세부 정보 출력
- 공격이 탐지될 때 경보 출력 (임계값: 스캔 약 10+ 포트, SYN Flood 200+ 건)