
SigCorr is the first open-source tool to detect cross-protocol attack chains spanning SS7/MAP, Diameter S6a, and GTPv2-C through unified subscriber identity correlation.
Détection passive d'attaques inter-protocoles pour les réseaux mobiles de cœur
SigCorr est le premier outil open-source à détecter les chaînes d'attaques inter-protocoles couvrant SS7/MAP, Diameter S6a et GTPv2-C via une corrélation unifiée de l'identité des abonnés.
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
Modifiez 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
Valide 9 modèles d'attaques sur des captures générées.
# Téléchargez d'abord les échantillons publics (voir test-pcaps/public-samples/DOWNLOAD_GUIDE.md)
bash ./test-pcaps/test_public_samples.sh
Tests sur plus de 20 échantillons réels pour :
sigcorr/
├── src/main/java/io/sigcorr/
│ ├── core/ # Modèles principaux (SignalingEvent, SubscriberIdentity)
│ ├── ingest/ # Analyseurs de protocole (TsharkBridge)
│ ├── correlation/ # Résolution d'identité, fenêtrage temporel
│ └── detection/ # Modèles d'attaques, alertes
├── test-pcaps/
│ ├── attack-samples/ # Captures d'attaques générées
│ ├── public-samples/ # Échantillons de validation réels
│ └── generate_*.py # Générateurs de captures
├── evidence/ # Captures de preuves extraites (exécution)
├── pom.xml
├── sigcorr-config.yaml
└── test.sh
Les contributions sont les bienvenues ! Qu'il s'agisse de rapports de bugs, de nouvelles idées de modèles d'attaques, de support de protocoles ou d'améliorations de la documentation — toute aide est appréciée.
git checkout -b feature/nouveau-modele-attaque)git commit -m 'Ajout ATK-022 : nouveau modèle')git push origin feature/nouveau-modele-attaque)Assurez-vous que ./test.sh s'exécute avec succès avant de soumettre.
SigCorr est publié sous la GNU Affero General Public License v3.0 (AGPL-3.0).
Cela signifie que vous êtes libre d'utiliser, modifier et distribuer SigCorr, y compris dans des environnements commerciaux. Si vous modifiez SigCorr et le mettez à disposition sur un réseau (par exemple, en tant que service hébergé), vous devez publier vos modifications sous la même licence.
Voir LICENSE pour le texte intégral.
Si l'AGPL ne convient pas à votre cas d'utilisation — par exemple, si vous souhaitez intégrer SigCorr dans un produit propriétaire ou le proposer dans le cadre d'un service commercial sans les exigences de partage de code source de l'AGPL — une licence commerciale est disponible.
Contactez Shreyas S à [email protected] ou ouvrez un GitHub Issue avec le tag licensing pour en discuter.
Si vous utilisez SigCorr dans une recherche académique, veuillez citer :
@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 | Attaque | Description |
|---|
| ATK-001 | Localisation silencieuse | SRI suivi de PSI pour localiser l'abonné |
| ATK-002 | Mise en place d'interception | SRI suivi de ISD pour rediriger les appels |
| ATK-006 | Déni de service abonné | CancelLocation + DeleteSubscriberData |
| ATK-011 | Interception SMS | SRI-SM suivi de MT-ForwardSM |
| ATK-014 | Récolte de vecteurs d'authentification | SRI suivi de SendAuthInfo |
| ATK-021 | Détection d'IMSI Catcher | Rogue UpdateLocation + SendAuthInfo |
| ID | Attaque | Description |
|---|
| ATK-003 | Reconnaissance multi-protocole | Attaque coordonnée MAP + Diameter + GTP |
| ATK-005 | Rétrogradation Diameter vers SS7 | Échec AIR Diameter puis repli MAP |
| ATK-009 | Reconnaissance Diameter + Détournement GTP | AIR suivi de CreateSession |
| ATK-010 | Détournement de localisation Diameter | AIR suivi de ULR usurpé |