gossan-graph 0.3.0

Graph persistence for Gossan — stores targets and findings in a local SQLite database
Documentation

gossan-graph

Graph-based Attack Surface Management (ASM) store for Gossan.

Persists discovered targets and findings as a typed graph (nodes: endpoints, hosts, services, repos, packages; edges: hosted-on, serves, depends-on, owned-by, discovered-via). Backends:

  • SQLite (default) — single-file local store, good for single-node scans and ad-hoc queries.
  • JSON — human-inspectable export.
  • GraphML — interop with Gephi / yEd / Cytoscape.

Usage

use gossan_graph::SqliteBackend;
let backend = SqliteBackend::open("scan.gossan.db")?;
backend.persist_scan(&targets, &findings)?;
# Ok::<_, Box<dyn std::error::Error>>(())

Temporal diff

The store records a scan_id per persistence, so subsequent scans can be diff'd against a baseline to surface new / changed / removed findings.

License

MIT