MeshGraph is a graph convolutional node classifier for detecting compromised assets
inside a simulated enterprise network. Nodes carry host telemetry, while edges encode
observed communication. Compromise begins at sparse seeds and propagates stochastically
through the network.
The GCN is compared with a logistic-regression baseline that sees identical host
features but cannot use graph structure.
This is a transductive benchmark: the graph and all node features are visible during
training, while validation and test labels remain hidden.
1uv run python projects/meshgraph-gcn/generate_data.py
2uv run python projects/meshgraph-gcn/train.py
The generated graph contains 600 nodes, 1,689 undirected communication edges, six
subnets, and a 23.33% compromise rate. The final test contains 120 nodes:
Both thresholds were selected independently on the same 120-node validation split.
The GCN improved F1 by 3.96 points and average precision by 7.02 points.