NetFlow 데이터 분석 with Netflow
사용 시점
- NetFlow 데이터를 분석하여 보안 인시던트를 조사해야 할 때
- 이 도메인에 대한 탐지 규칙 또는 위협 헌팅 쿼리를 구축할 때
- SOC 분석가가 이 분석 유형에 대한 체계적인 절차를 필요로 할 때
- 관련 공격 기법에 대한 보안 모니터링 범위를 검증할 때
사전 요구 사항
- 네트워크 보안 개념과 도구에 대한 이해
- 안전한 실행을 위한 테스트 또는 실습 환경 접근 권한
- Python 3.8+ 및 필수 종속성 설치
- 모든 테스트 활동에 대한 적절한 권한
지침
- 종속성 설치:
pip install netflow
- 라우터에서 NetFlow/IPFIX 데이터를 수집하거나 내장 수집기 사용:
python -m netflow.collector -p 9995
netflow.parse_packet()을 사용하여 캡처된 흐름 데이터를 파싱합니다.
- 흐름 분석:
- 포트 스캐닝: 단일 소스에서 동일한 포트로 여러 대상으로 연결
- 데이터 유출: 비정상적인 대상으로의 높은 바이트 수 아웃바운드 흐름
- C2 비콘닝: 일정한 간격으로 주기적인 연결
- 볼륨 이상 징후: 기준 임계값을 초과하는 트래픽 급증
- 우선순위가 매겨진 결과 보고서 생성
python scripts/agent.py --flow-file captured_flows.json --output netflow_report.json
예제
NetFlow v9 패킷 파싱
import netflow
data, _ = netflow.parse_packet(raw_bytes, templates={})
for flow in data.flows:
print(flow.IPV4_SRC_ADDR, flow.IPV4_DST_ADDR, flow.IN_BYTES)