
SigCorr는 SS7/MAP, Diameter S6a 및 GTPv2-C를 아우르는 통합 가입자 식별자 상관 분석을 통해 크로스 프로토콜 공격 체인을 탐지하는 최초의 오픈소스 도구입니다.
모바일 코어 네트워크를 위한 수동형 크로스 프로토콜 공격 탐지
SigCorr는 SS7/MAP, Diameter S6a, GTPv2-C에 걸친 크로스 프로토콜 공격 체인을 통합 가입자 식별 상관관계를 통해 탐지하는 최초의 오픈소스 도구입니다.
git clone https://github.com/sage-s11/sigcorr.git
cd sigcorr
mvn clean package -DskipTests
java -jar target/sigcorr-0.1.0.jar analyze capture.pcap
./test.sh
┌─────────────────────────────────────────────────────────────────┐
│ SigCorr │
├─────────────────────────────────────────────────────────────────┤
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ SS7/MAP │ │ Diameter │ │ GTPv2-C │ │
│ │ Parser │ │ Parser │ │ Parser │ │
│ └──────┬──────┘ └──────┬──────┘ └──────┬──────┘ │
│ │ │ │ │
│ └────────────┬────┴────────────────┘ │
│ ▼ │
│ ┌─────────────────────┐ │
│ │ Identity Resolver │ IMSI ↔ MSISDN correlation │
│ └──────────┬──────────┘ │
│ ▼ │
│ ┌─────────────────────┐ │
│ │ Correlation Engine │ Temporal windowing │
│ └──────────┬──────────┘ │
│ ▼ │
│ ┌─────────────────────┐ │
│ │ Pattern Matcher │ 22 attack signatures │
│ └──────────┬──────────┘ │
│ ▼ │
│ ALERTS │
└─────────────────────────────────────────────────────────────────┘
════════════════════════════════════════════════════════════════
SigCorr v0.1.0 - Cross-Protocol Signaling Security Correlator
════════════════════════════════════════════════════════════════
Analyzing: full_multi_protocol_attack.pcap
Events decoded:
SS7/MAP: 2
Diameter: 2
GTPv2-C: 1
Total: 5
Alerts:
ALERT[CRITICAL] ATK-001 | Silent Location Tracking
subscriber=IMSI:234101234567890
confidence=95%
events=2
ALERT[CRITICAL] ATK-003 | Multi-Protocol Reconnaissance
subscriber=IMSI:234101234567890
confidence=90%
cross-protocol=true
events=5
Summary: 2 alerts generated
sigcorr-config.yaml 편집:
sigcorr:
tshark:
path: /usr/bin/tshark
timeout: 30s
correlation:
temporal_window: 30s
inference_window: 10s
detection:
min_confidence: 70
enabled_patterns:
- ATK-001
- ATK-002
- ATK-003
# ... or 'all'
output:
evidence_dir: ./evidence
extract_pcap: true
./test.sh
생성된 pcap을 대상으로 9가지 공격 패턴을 검증합니다.
# 공개 샘플을 먼저 다운로드하세요 (test-pcaps/public-samples/DOWNLOAD_GUIDE.md 참조)
bash ./test-pcaps/test_public_samples.sh
20개 이상의 실제 pcap 샘플에 대해 다음을 테스트합니다:
sigcorr/
├── src/main/java/io/sigcorr/
│ ├── core/ # Core models (SignalingEvent, SubscriberIdentity)
│ ├── ingest/ # Protocol parsers (TsharkBridge)
│ ├── correlation/ # Identity resolution, temporal windowing
│ └── detection/ # Attack patterns, alerting
├── test-pcaps/
│ ├── attack-samples/ # Generated attack pcaps
│ ├── public-samples/ # Real-world validation samples
│ └── generate_*.py # Pcap generators
├── evidence/ # Extracted evidence pcaps (runtime)
├── pom.xml
├── sigcorr-config.yaml
└── test.sh
기여를 환영합니다! 버그 리포트, 새로운 공격 패턴 아이디어, 프로토콜 지원, 문서 개선 등 어떤 도움이라도 감사히 받겠습니다.
git checkout -b feature/new-attack-pattern)git commit -m 'Add ATK-022: new pattern')git push origin feature/new-attack-pattern)제출 전에 ./test.sh가 통과하는지 확인하세요.
SigCorr는 **GNU Affero General Public License v3.0 (AGPL-3.0)**에 따라 배포됩니다.
즉, 상업적 환경을 포함하여 SigCorr를 자유롭게 사용, 수정, 배포할 수 있습니다. SigCorr를 수정하고 네트워크를 통해 제공하는 경우(예: 호스팅 서비스), 동일한 라이선스로 수정 사항을 공개해야 합니다.
전문은 LICENSE를 참조하세요.
AGPL이 사용 사례에 맞지 않는 경우(예: 독점 제품에 SigCorr를 내장하거나 AGPL의 소스 공개 요건 없이 상업 서비스의 일부로 제공하려는 경우) 상업용 라이선스를 이용할 수 있습니다.
문의는 Shreyas S ([email protected]) 또는 licensing 태그가 달린 GitHub Issue를 통해 주시기 바랍니다.
학술 연구에서 SigCorr를 사용하신다면 다음을 인용해 주세요:
@software{sigcorr2025,
author = {Shreyas S},
title = {SigCorr: Passive Cross-Protocol Attack Detection for Mobile Core Networks},
year = {2025},
url = {https://github.com/sage-s11/sigcorr},
doi = {10.5281/zenodo.19439509}
}
Shreyas S (GitHub: @sage-s11)
| ID | 공격 | 설명 |
|---|
| ATK-001 | 무음 위치 추적 | SRI 후 PSI를 통한 가입자 추적 |
| ATK-002 | 감청 설정 | SRI 후 ISD를 통한 호출 리디렉션 |
| ATK-006 | 가입자 DoS | CancelLocation + DeleteSubscriberData |
| ATK-011 | SMS 감청 | SRI-SM 후 MT-ForwardSM |
| ATK-014 | 인증 벡터 수집 | SRI 후 SendAuthInfo |
| ATK-021 | IMSI 캐처 탐지 | Rogue UpdateLocation + SendAuthInfo |
| ID | 공격 | 설명 |
|---|
| ATK-003 | 다중 프로토콜 정찰 | MAP + Diameter + GTP 연계 공격 |
| ATK-005 | Diameter-to-SS7 다운그레이드 | Diameter AIR 실패 후 MAP 폴백 |
| ATK-009 | Diameter 정찰 + GTP 하이재킹 | AIR 후 CreateSession |
| ATK-010 | Diameter 위치 하이재킹 | AIR 후 스푸핑된 ULR |