
SentryPeer v4.0.5
Pot de miel SIP distribué qui détecte et partage les données de fraude sur les attaques VoIP. Collecte les IP des acteurs malveillants et les numéros de téléphone via un réseau peer-to-peer, avec intégration REST API et WebHook pour une intelligence des menaces en temps réel.
Protégez vos serveurs SIP contre les acteurs malveillants
Un grand merci à Deutsche Telekom Security GmbH pour son parrainage en 2024.
Pourquoi ne pas nous donner une étoile et nous suivre sur Twitter !
Table des matières
- Introduction
- Aperçu
- Fonctionnalités
- Présentations
- Adoption
- Conception
- Docker
- Installation
- Exécuter SentryPeer
- WebHook
- API RESTful
- Syslog et Fail2ban
- Format de journal JSON
- Options de ligne de commande
- Adresse multicast IPv6
- Licence
- Contribution
- Site web du projet
- Marque déposée
- Questions, rapports de bugs, demandes de fonctionnalités
- Remerciements particuliers
- Parrainage
Introduction
SentryPeer® est un outil de détection de fraude. Il laisse les acteurs malveillants tenter de passer des appels téléphoniques et enregistre l'adresse IP d'origine ainsi que le numéro qu'ils ont tenté d'appeler. Ces détails peuvent ensuite être utilisés pour déclencher des notifications sur le réseau des fournisseurs de services et, la prochaine fois qu'un utilisateur/client tente d'appeler un numéro collecté, vous pouvez agir comme bon vous semble.
Par exemple :
Supposons que vous exploitiez votre propre PBX VoIP sur site. Ce que SentryPeer vous permettra de faire dans ce contexte, c'est de puiser dans la liste des numéros de téléphone (via l'API RESTful) lorsque vos utilisateurs passent des appels sortants. Si vous obtenez une correspondance, vous serez averti qu'un appareil au sein de votre réseau tente potentiellement d'appeler des numéros de téléphone connus pour être utilisés à des fins de sondage, qui ont soit été :
- Numéros collectés par les nœuds SentryPeer que vous exécutez vous-même
- Numéros vus par d'autres nœuds SentryPeer qui ont été répliqués sur votre nœud via le réseau pair à pair
Cela vous permettrait de générer une notification depuis vos systèmes de surveillance avant d'accumuler des appels coûteux ou que quelque chose de pire ne se produise.
Qu'est-ce qui pourrait mener à ce scénario ?
- Fraude potentielle à la messagerie vocale. Cela peut se produire si vous autorisez l'appel vers un numéro entrant (votre DID/DDI) pour atteindre votre système de messagerie vocale, puis demandez un code PIN. Ce code PIN est faible et le système de messagerie vocale vous permet d'appuyer sur '*' pour rappeler l'identifiant d'appelant qui a laissé un message vocal. L'attaquant a laissé un message vocal, puis devine votre code PIN et le rappelle. Le CLI est un numéro connu que SentryPeer a vu. Vous pouvez déclencher une alerte dessus.
- Un appareil a été détourné et/ou un softphone ou similaire utilise les identifiants qu'il a volés via l'interface graphique du téléphone et tente de s'enregistrer sur votre système et de passer des appels vers un numéro vu par SentryPeer.
- Un utilisateur innocent appelle un numéro de phishing ou un numéro coûteux connu etc. que SentryPeer a déjà vu auparavant.
Traditionnellement, ces données sont envoyées vers un emplacement central, de sorte que vous ne possédez pas les données que vous avez collectées. Ce projet repose entièrement sur le partage pair à pair de ces données. L'utilisateur qui possède les données et les différents flux de données liés aux fournisseurs de services / fournisseurs de réseau est l'élément clé pour moi. J'en ai assez de tous ces services qui les conservent et les vendent. Si vous les avez collectées, vous devriez avoir le choix de les conserver et/ou de choisir de les partager avec d'autres membres de la communauté SentryPeer via des méthodes p2p.
Vue d'ensemble
Nœud SentryPeer
Ici, nous utilisons les diagrammes de séquence Mermaid pour montrer le flux de données d'un nœud SentryPeer vers SentryPeerHQ.
sequenceDiagram
actor A as Attacker
participant S as SentryPeer Node
participant DS as Data Store
participant W as WebHook <br/>Endpoint
Note over DS: sqlite/json log/syslog <br/>(if enabled)
Note over W: if enabled
A->>S: SIP probe OPTIONS/REGISTER/etc
S->>DS: Save event
S->>W: Send event
W->>S: 200 OK
S->>A: 200 OK
A->>S: INVITE sip:00046500729221@
Nœud SentryPeer vers SentryPeerHQ
sequenceDiagram
actor A as Attacker
participant S as SentryPeer Node
participant DS as Data Store
participant HQ as SentryPeerHQ
Note over DS: sqlite/json log/syslog (if enabled)
Note over HQ: OAuth2 creds required.<br/> if using https://sentrypeer.com
A->>S: SIP probe OPTIONS/REGISTER/etc
S->>DS: Save event
S->>HQ: Send event
HQ->>S: 201 Created
S->>A: 200 OK
A->>S: INVITE sip:00046500729221@
Utilisation du nœud SentryPeer et de l'API SentryPeerHQ
sequenceDiagram
Actor U as User
participant S as SentryPeer Node/HQ API
Note over S: if enabled
U->>S: GET /numbers
S->>U: 200 OK Return all Phone numbers seen in database