업데이트로 돌아가기
New releaseJul 27, 2026

SentryPeer v4.0.5

VoIP 공격에 대한 사기 데이터를 탐지하고 공유하는 분산형 SIP 허니팟입니다. P2P 네트워크를 통해 악성 행위자의 IP와 전화번호를 수집하며, REST API 및 WebHook 통합을 통해 실시간 위협 인텔리전스를 제공합니다.

공유

SIP 서버를 악의적인 행위자로부터 보호하세요

SentryPeer Logo

Stability: Active GitHub release (latest SemVer) Docker Hub Coverity Scan Build Status Build and Test CodeQL Clang Static Analysis Coverity Scan Build Status CII Best Practices gitleaks

2024년에 후원해 주신 Deutsche Telekom Security GmbH에 특별히 감사드립니다.

저희에게 별을 눌러주시고 Twitter에서 팔로우해 주시면 어떨까요!

목차

소개

SentryPeer®는 사기 탐지 도구입니다. 악의적인 행위자가 전화를 시도하도록 놔두고, 그들이 사용한 IP 주소와 통화를 시도한 번호를 저장합니다. 이 정보는 서비스 제공업체 네트워크에서 알림을 발생시키는 데 사용할 수 있으며, 사용자/고객이 수집된 번호로 전화를 시도할 때 원하는 방식으로 대응할 수 있습니다.

예를 들어:

현장에서 자체 VoIP PBX를 운영하고 있다고 가정해 봅시다. 이 상황에서 SentryPeer가 가능하게 해 주는 것은, 사용자가 발신 통화를 할 때 (RESTful API를 사용하여) 전화번호 목록을 조회하는 것입니다. 적중하면, 네트워크 내의 장치가 다음과 같은 알려진 프로빙 전화번호로 전화를 시도하고 있을 가능성이 있다는 경고를 받게 됩니다:

  1. 직접 운영 중인 SentryPeer 노드가 수집한 번호
  2. 피어 투 피어 네트워크를 통해 귀하의 노드로 복제된, 다른 SentryPeer 노드가 확인한 번호

이를 통해 값비싼 통화 요금이 청구되거나 더 심각한 상황이 발생하기 전에 모니터링 시스템에서 알림을 생성할 수 있습니다.

어떤 상황이 이런 시나리오로 이어질까요?

  1. 잠재적인 음성사서함 사기. 인바운드 번호(귀하의 DID/DDI)로 걸려온 전화가 음성사서함 시스템에 연결되고, 그다음 PIN을 입력하라는 안내가 나오는 경우 발생할 수 있습니다. 이 PIN이 취약하고 음성사서함 시스템에서 '*'를 눌러 음성 메시지를 남긴 발신자 ID로 다시 전화를 걸 수 있다면 문제가 됩니다. 공격자가 음성 메시지를 남긴 뒤 귀하의 PIN을 추측하여 다시 전화를 겁니다. 이 CLI는 SentryPeer가 이미 확인한 번호입니다. 이에 대해 경보를 설정할 수 있습니다.
  2. 기기가 탈취되었거나, 소프트폰 등이 전화기 GUI에서 탈취한 자격 증명을 사용하여 귀하의 시스템에 등록을 시도하고 SentryPeer가 확인한 번호로 전화를 걸려는 경우.
  3. 일반 사용자가 SentryPeer가 이전에 확인한 피싱 번호나 알려진 고액 과금 번호 등으로 전화를 거는 경우.

전통적으로 이러한 데이터는 중앙 집중식 장소로 전송되므로, 귀하는 자신이 수집한 데이터를 소유하지 못합니다. 이 프로젝트는 바로 그 데이터를 피어 투 피어로 공유하는 것에 관한 것입니다. 데이터를 소유한 사용자와 다양한 서비스 제공업체/네트워크 제공업체 관련 데이터 피드가 제게는 핵심입니다. 데이터를 보관하고 판매하는 세상의 모든 서비스에 지쳤습니다. 데이터를 수집했다면, 그것을 보관할 권리와 p2p 방식을 통해 다른 SentryPeer 커뮤니티 구성원과 공유하는 데 동의할 선택권이 있어야 합니다.

개요

SentryPeer 노드

여기서는 Mermaid 시퀀스 다이어그램을 사용하여 SentryPeer 노드에서 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@

SentryPeer Node에서 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@

SentryPeer Node와 SentryPeerHQ API 사용하기

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

자체 시스템과 통합하기

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

🚧 기능

카테고리