BloodHound icon indicating copy to clipboard operation
BloodHound copied to clipboard

Support for TLS Neo4j URI Schemes

Open McBartok opened this issue 1 year ago • 0 comments

Feature Description:

Support for TLS on Neo4j/Bolt Connections.

Current Behavior:

Currently Bloodhound only supports the unsecured Neo4j/Bolt URI schemes (neo4j://). As a result its not possible to connect to a Neo4j database that has TLS enabled.

If a scheme of neo4j+ssc:// or neo4j+s:// is specified, the application currently errors out. "Failed starting the server: failed to connect to databases: expected connection URL scheme neo4j for Neo4J but got neo4j+ssc"

Desired Behavior:

Using the .env file, or the docker-compose config, the option to set alternate URI schemes on the variable "bhe_neo4j_connection" would be nice. For example, as neo4j+s:// or neo4j+ssc://

Use Case:

While the general use case is for the Bloodhound, PostgreSQL and Neo4j to be bundled together with Docker, in the event that a separate Neo4j database is used, that has TLS enabled, there is no option to have it configured for this different URI schemes.

Implementation Suggestions:

The driver used does seem to support these URI schemes https://github.com/neo4j/neo4j-go-driver/ So likely that the issue is how "bhe_neo4j_connection" get passed to the driver.

Additional Information:

  • Configuring TLS on Neo4j: https://neo4j.com/docs/operations-manual/current/security/ssl-framework/
  • Neo4j URI Schemes: https://neo4j.com/docs/upgrade-migration-guide/current/version-4/migration/drivers/new-uri-schemes/

McBartok avatar May 15 '24 17:05 McBartok