Skip to content

Releases: SentryPeer/SentryPeer

v3.0.2

17 Nov 11:16
909b5c8
Compare
Choose a tag to compare

Stable release

Fixes

  • Check user_agent_header->hvalue is not NULL as you can get a blank user-agent value in malformed SIP packets

v3.0.1

19 Jul 19:37
bd91f96
Compare
Choose a tag to compare

Stable release

  • Add a check for a response code of 403 to trigger a new access token request for WebHooks in addition to a 401

Changes

  • -pedantic-errors is now enabled by default in Makefile.am

Fixes

  • Switch to getsockname() to correctly get destination IP address for SIP TCP mode
  • Check for a blank User-agent SIP header and add a test case. Only a missing one was catered for before.

v3.0.0

26 Apr 18:06
957a696
Compare
Choose a tag to compare

Stable release

  • OAuth2 support for sending events to the SentryPeerHQ RESTful API (client_credentials grant type) with
    a Bearer token in the Authorization header

Fixes

  • Clean up memory leaks in libcurl code when sending events to a WebHook url
  • Fix segfault on parsing part of a 'To' SIP header that could be NULL
  • Fix failing sqlite test on macOS

v2.0.1

16 Feb 09:54
Compare
Choose a tag to compare

Stable release

  • Re-work dht memory usage
  • cppcheck work in tests
  • Clearly state that Peer to Peer mode is off by default in the docs and that setting an environment variable to
    anything, e.g. 0 will enable that particular mode. We don't care what you set it to, just that it's set.

Fixes

  • Fix config trying to free an OpenDHT member that isn't present if not built with OpenDHT

v2.0.0

01 Sep 17:57
Compare
Choose a tag to compare

Stable release

  • Added optional -w https://my_sentrypeerhq_onprem_or_cloud_url/events WebHook cli/env var to set URL for bad actor
    JSON to be sent to SentryPeerHQ for the dashboard and other services
  • Removed local incomplete web gui. This will be replaced by a new FL/OSS project called SentryPeerHQ

Breaking Changes

  • -w now requires a URL to be set as it is used for the WebHook to SentryPeerHQ.
    Before it enabled the local Web UI which has been removed.

Tests

  • Added tests for new WebHook feature

v1.4.1

08 May 19:12
Compare
Choose a tag to compare

Stable release

Changes

  • New SIP TCP mode
  • New -b flag to set your own DHT bootstrap node (default: bootstrap.sentrypeer.org:4222)
  • Error handing for -p flag if OpenDHT support is not compiled in
  • Debug mode now shows what OpenDHT-C library version we're using
  • Debug mode for p2p now shows the correct event_uuid when checking for duplicate events
  • Coverity scan fixes

Tests

  • New tests for sip_message_event type and related functions

v1.4.0

29 Mar 18:30
Compare
Choose a tag to compare

Stable release

Changes

  • Peer to Peer mode with CLI (-p) and ENV options to enable, added for DHT node using the OpenDHT library
  • Added -R flag to completely disable SIP mode. You can then run SentryPeer in API mode or DHT mode only etc. i.e.
    not as a honeypot, but to serve local data
  • Added Peer to Peer bad_actor sharing (data replication), e.g. it gets saved on the DHT and consumed by other peers
  • RESTful API numbers resource (/numbers) now only returns numbers like +441234567890 or 441234567890
  • RESTful API number resource (/numbers/{number}) now only accepts +441234567890 or 441234567890 formats
  • Generate a SentryPeer node ID at startup to be used in all bad_actor events
  • Stop the SIP daemon thread correctly on shutdown
  • If OpenDHT-C is detected, check it is at least version 2.3.5. If Peer to Peer mode is not needed, you can
    use --disable-opendht
  • Remove the Zyre library dependency as it is not needed anymore

Breaking changes

  • --disable-zyre option has now been removed, so ./configure will now fail if you try to build with that option

Tests

  • More configuration CLI options tested
  • Bad Actor to JSON conversion tests - used to save on the DHT
  • Memory cleanups on tests
  • UUID parsing tests
  • JSON parsing tests
  • Additional SQLite3 database select tests
  • bad_actor_exists tests

What can you do at the moment?

  • Process and chose to reply 200 OK to SIP probes (set via cli or env variable)
  • Disable SIP mode completely so you can just operate a p2p node for receiving bad_actors and API use
  • Output JSON logs
  • List collected IP addresses via the RESTful API
  • Query a specific IP address via the RESTful API
  • List collected phone numbers via the RESTful API
  • Query a specific phone number via the RESTful API
  • Operate in Peer to Peer mode to share and receive bad_actors
  • See the README for examples

v1.2.0

25 Feb 19:18
Compare
Choose a tag to compare

Stable release

Changes

  • Add signal handlers to gracefully shut down the SIP, P2P and HTTP daemons
  • Move SIP daemon into its own thread
  • Integrate the Zyre library for proximity-based Peer to Peer support with tests
  • Integrate the OpenDHT library for a
    Kademlia like distributed key-value storage with tests. We will store the
    public IP addresses of the nodes in the DHT so peers can find each other and share collected data
  • Zyre and OpenDHT are optional and detected at build time
  • Add destination_ip to bad_actor data structure
  • Add JSON logging to log bad actor events to a json file via -j flag and SENTRYPEER_JSON_LOG environment variable,
    plus custom log file location via -l flag and SENTRYPEER_JSON_LOG_FILE environment variable
  • Add --disable-opendht/zyre flags to disable OpenDHT and Zyre build requirements. This allows a user to run
    SentryPeer as a full standalone node done at build time

Tests

  • Clean up all valgrind warnings
  • Use the new http_daemon_stop() which calls MHD_stop_daemon() to clear up memory leaks, sockets etc. in tests
  • Add tests for the sip_daemon_XXXX() functions
  • Add tests for the peer_to_peer_lan_XXXX() functions
  • Add tests for the peer_to_peer_dht_XXXX() functions
  • Switch to cmocka XML output format to show time taken for each test
  • Update tests for new JSON log format and new destination_ip field in bad_actor data structure

What can you do at the moment?

  • Process and chose to reply 200 OK to SIP probes (set via cli or env variable)
  • Output JSON logs
  • List collected IP addresses via the RESTful API
  • Query a specific IP address via the RESTful API
  • List collected phone numbers via the RESTful API
  • Query a specific phone number via the RESTful API
  • See the README for examples

v1.0.0

24 Jan 21:18
Compare
Choose a tag to compare

Stable release

Changes

  • Called Number RESTful API resource live at (http://x.x.x.x:8082/numbers/{number})
  • Called Numbers RESTful API resource live at (http://x.x.x.x:8082/numbers)

What can you do at the moment?

  • Process and chose to reply 200 OK to SIP probes (set via cli or env variable)
  • List collected IP addresses via the RESTful API
  • Query a specific IP address via the RESTful API
  • List collected phone numbers via the RESTful API
  • Query a specific phone number via the RESTful API
  • See the README for examples

v0.0.6

21 Jan 16:54
Compare
Choose a tag to compare

Beta release

Changes

  • Fix rpm build on Fedora due to wrongly defined libcurl callback definition issue causing make check to fail

What can you do at the moment?

The same as in v0.0.5