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 种攻击模式。
# Download public samples first (see 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 通用公共许可证 v3.0(AGPL-3.0) 发布。
这意味着您可以自由使用、修改和分发 SigCorr,包括在商业环境中使用。如果您修改了 SigCorr 并通过网络提供(例如作为托管服务),则必须在同一许可证下发布您的修改。
完整文本请参阅 LICENSE。
如果 AGPL 不适用于您的使用场景——例如,您希望在不承担 AGPL 源代码共享义务的情况下将 SigCorr 嵌入专有产品,或将其作为商业服务的一部分提供——我们提供商业许可证。
请联系 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 | 短信拦截 | SRI-SM 后接 MT-ForwardSM |
| ATK-014 | 认证向量窃取 | SRI 后接 SendAuthInfo |
| ATK-021 | IMSI 捕获器检测 | 恶意 UpdateLocation + SendAuthInfo |
| ID | 攻击 | 描述 |
|---|
| ATK-003 | 多协议侦察 | MAP + Diameter + GTP 协同攻击 |
| ATK-005 | Diameter 到 SS7 降级 | Diameter AIR 失败后回退至 MAP |
| ATK-009 | Diameter 侦察 + GTP 劫持 | AIR 后接 CreateSession |
| ATK-010 | Diameter 位置劫持 | AIR 后接伪造的 ULR |