How wl-1001/knowledge-graph-driven-network-scenario-construction works
The repository builds a CVE knowledge graph in Neo4j, then uses that graph to generate network scenarios for penetration-testing simulation. The documented workflow selects operating systems and vulnerabilities, assigns services and exploit outcomes, accounts for network topology and leaked credentials, and assembles node configurations into an environment. The graph distinguishes CSV ingestion from scenario-time graph lookup and generation. The imported simulation model is not present in the supplied tree, so its internal behavior is not mapped.
Main entry points: generate_scenario.py Node design · cve_knowledgegraph.py Graph ingestion · cve_for_neo4j.csv CVE dataset
Components 12
Knowledge graph
- CVE dataset
cve_for_neo4j.csv - Graph ingestion
cve_knowledgegraph.py
Scenario construction
- Graph lookup
generate_scenario.py - OS and vulnerabilities
generate_scenario.py - Node design
generate_scenario.py - Network topology
generate_scenario.py - Exploit outcomes
generate_scenario.py - Node configuration
generate_scenario.py - Simulation environment
generate_scenario.py
External systems
- Neo4j graph
- Simulation model
Other components
- Operator
Connections 12
- Operator → Graph ingestion: runs ingestion
- CVE dataset → Graph ingestion: provides records
cve_knowledgegraph.py - Graph ingestion → Neo4j graph: writes graph
cve_knowledgegraph.py - Operator → Graph lookup: runs generation
- Graph lookup → Neo4j graph: queries graph
generate_scenario.py - Graph lookup → OS and vulnerabilities: selects OS and CVEs
generate_scenario.py - Node design → Graph lookup: gets node properties
generate_scenario.py - Node design → Network topology: creates topology
generate_scenario.py - Node design → Exploit outcomes: assigns outcomes
generate_scenario.py - Node design → Node configuration: assembles node data
generate_scenario.py - Node design → Simulation environment: builds environment
generate_scenario.py - Simulation environment → Simulation model: uses model types
generate_scenario.py