
SentryPeer v4.0.5
Распределенный SIP-хонейпот, который обнаруживает и обменивается данными о мошеннических VoIP-атаках. Собирает IP-адреса злоумышленников и телефонные номера через пиринговую сеть, с интеграцией REST API и WebHook для аналитики угроз в реальном времени.
Защитите свои SIP-серверы от злоумышленников
Особая благодарность Deutsche Telekom Security GmbH за спонсорство! Очень любезно!
Почему бы не поставить нам звезду и не подписаться на нас в Twitter!
Содержание
- Введение
- Обзор
- Особенности
- Доклады
- Внедрение
- Дизайн
- Docker
- Установка
- Запуск SentryPeer
- WebHook
- RESTful API
- Syslog и Fail2ban
- Формат JSON логов
- Параметры командной строки
- Многоадресный адрес IPv6
- Лицензия
- Участие
- Веб-сайт проекта
- Товарный знак
- Вопросы, отчеты об ошибках, запросы функций
- Особая благодарность
- Спонсорство
Введение
SentryPeer® — это инструмент для обнаружения мошенничества. Он позволяет злоумышленникам пытаться совершать телефонные звонки и сохраняет IP-адрес, с которого они звонили, и номер, на который они пытались позвонить. Эти данные затем можно использовать для отправки уведомлений в сеть поставщика услуг, и в следующий раз, когда пользователь/клиент попытается позвонить на собранный номер, вы можете действовать по своему усмотрению.
Например:
Допустим, вы запускаете собственную VoIP АТС на месте. Что SentryPeer позволит вам сделать в этом контексте — это заглянуть в список телефонных номеров (используя RESTful API), когда ваши пользователи совершают исходящие звонки. Если найдется совпадение, вы получите предупреждение о том, что потенциально устройство в вашей сети пытается вызвать известные проверочные телефонные номера, которые либо:
- Номера, собранные узлами SentryPeer, которые вы запускаете сами
- Номера, замеченные другими узлами SentryPeer, которые были реплицированы на ваш узел через одноранговую сеть
Это позволит вам сгенерировать уведомление из ваших систем мониторинга до того, как вы накопите дорогостоящие звонки или произойдет что-то более серьезное.
Что может привести к такому сценарию?
- Возможное мошенничество с голосовой почтой. Это может произойти, если вы разрешаете звонок на входящий номер (ваш DID/DDI) для доступа к системе голосовой почты, а затем запрашиваете PIN-код. Этот PIN-код слабый, и система голосовой почты позволяет нажать '*', чтобы перезвонить на номер вызывающего абонента, оставившего голосовое сообщение. Злоумышленник оставил голосовое сообщение, а затем угадывает ваш PIN-код и перезванивает на него. CLI — это известный номер, который SentryPeer уже видел. Вы можете установить оповещение по нему.
- Устройство было взломано и/или программный телефон или подобное использует учетные данные, украденные из GUI телефона, и пытается зарегистрироваться в вашей системе и совершить звонки на номер, замеченный SentryPeer.
- Невинный пользователь звонит на фишинговый номер или известный дорогостоящий номер и т.п., который SentryPeer уже видел ранее.
Традиционно эти данные отправляются в центральное место, поэтому вы не являетесь владельцем собранных данных. Этот проект полностью посвящен одноранговому обмену этими данными. Пользователь, владеющий данными и различными каналами данных, связанными с провайдерами услуг и сетей, — это ключевой момент для меня. Меня тошнит от всех этих сервисов, которые хранят и продают данные. Если вы их собрали, у вас должен быть выбор: оставить их себе и/или согласиться поделиться ими с другими членами сообщества SentryPeer через p2p-методы.
Обзор
Узел SentryPeer
Здесь мы используем Mermaid Sequence diagrams для отображения потока данных от узла SentryPeer к SentryPeerHQ.```mermaid
sequenceDiagram
actor A as Attacker
participant S as SentryPeer Node
participant DS as Data Store
participant W as WebHook
Endpoint
Note over DS: sqlite/json log/syslog
(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@
#### SentryPeer Node to SentryPeerHQ```mermaid
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@
Использование SentryPeer Node и SentryPeerHQ API```mermaid
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
#### Интеграция с вашими собственными системами```mermaid
sequenceDiagram
participant D as Device
participant P as PBX/ITSP/Carrier
participant HQ as SentryPeer Node/HQ API
participant N as NOC
Note over P: Integration with <br/>SentryPeer needed
Note over N: Consumes alerts
Note over HQ: OAuth2 creds required<br/> if using SentryPeerHQ
Note over P,HQ: API rate limiting if using SentryPeerHQ
D->>P: SIP INVITE
P->>HQ: Have you seen attackers call this number?
HQ->>P: Yes, this has been seen on SentryPeer Nodes
HQ->>N: WebHook/Email/Slack
Note over HQ,N: Only if using SentryPeerHQ
P->>D: I'm blocking this call. Sorry