AI-powered intelligence layer for the sys-scan-graph security scanner.
Project description
sys-scan-graph
System Security Scanner & Intelligence Graph
Sys-Scan-Graph is a high-speed security analysis tool that transforms raw data from multiple security surfaces into a unified, actionable report.
This directory contains the optional Python intelligence layer, published as the sys-scan-agent package. It consumes JSON produced by the C++ core scanner and enriches/summarizes results locally.
Key Features
- Local-first analysis of
sys-scanJSON reports - CLI entry points provided by the package (
sys-scan-graph,sys-scan-intelligence) - Deterministic outputs via canonicalization and stable ordering
- Optional artifacts such as HTML reports (configured via
config.yaml) and metrics export (--metrics-out)
Quick Start
Installation
The intelligence layer is installed separately from the C++ core.
python3 -m venv .venv
source .venv/bin/activate
pip install -U pip
pip install sys-scan-agent
Optional local-LLM dependencies:
pip install \
langgraph langchain-core \
torch transformers peft accelerate safetensors huggingface_hub
Optional external inference dependencies (LangChain API provider):
# IMPORTANT: You must provide your own provider credentials (not bundled with this project).
pip install langchain langchain-openai langchain-anthropic
Basic Usage
# Run the C++ core scanner (from the repo root)
./build/sys-scan --canonical --output report.json
# Analyze/enrich with the Python layer
source .venv/bin/activate
sys-scan-graph analyze --report report.json --out enriched_report.json
Generate HTML Report
# Enable HTML generation in ./config.yaml, then run:
sys-scan-graph analyze --report report.json --out enriched_report.json
Documentation
For detailed documentation, see our comprehensive wiki:
- Architecture Overview - High-level system architecture, core vs intelligence layer responsibilities
- Core Scanners - Scanner implementations, signals, output formats, and schemas
- Intelligence Layer - Pipeline stages, LangGraph orchestration, LLM providers, data governance
Additional Resources
- Rules Engine - Rule file formats, MITRE aggregation, severity overrides, validation
- CLI Guide - Complete command reference
- Extensibility - Adding custom scanners and rules
Repository Structure
This repository contains:
- Core Scanner (
src/,CMakeLists.txt) - High-performance C++ scanning engine - Intelligence Layer (
agent/) - Python package (sys-scan-agent) for analysis and enrichment - Rules (
rules/) - Security rules and MITRE ATT&CK mappings - Documentation (
docs/wiki/) - Comprehensive project documentation - Tests (
tests/,agent/tests/) - Test suites for both components
Key Design Principles
- Type-safe architecture with a C++23 toolchain using C++20 modules and dependency injection via ScanContext
- Deterministic, reproducible results with stable ordering and canonicalization in the Python layer
- Local-first security posture: no outbound LLM API calls by default; optional external inference is explicit opt-in
- Thread-safe parallelization with mutex-protected report aggregation
- Extensible plugin system supporting custom scanners, rules, and LLM providers
- Comprehensive testing via CTest (C++) and pytest (Python)
Licensing
This project is licensed under the Apache License 2.0. See LICENSE for complete licensing details.
Support & Community
- Documentation: Wiki
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Security: See
SECURITY.mdfor vulnerability disclosure
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sys_scan_agent-7.0.0.tar.gz.
File metadata
- Download URL: sys_scan_agent-7.0.0.tar.gz
- Upload date:
- Size: 281.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0422fb4ca92f2d0a70bb0157a18c32c7330c903f93c79d556b7549659dbc6443
|
|
| MD5 |
362bde5d8ed1ae1ff4d2fe744686711f
|
|
| BLAKE2b-256 |
ae568c0d04463d8c12ff7a9b266957bde7801fb772d8309f3cffcbdb6329240f
|
Provenance
The following attestation bundles were made for sys_scan_agent-7.0.0.tar.gz:
Publisher:
publish-pypi.yml on J-mazz/sys-scan-graph
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sys_scan_agent-7.0.0.tar.gz -
Subject digest:
0422fb4ca92f2d0a70bb0157a18c32c7330c903f93c79d556b7549659dbc6443 - Sigstore transparency entry: 779603017
- Sigstore integration time:
-
Permalink:
J-mazz/sys-scan-graph@501264fe1eb3622d62fabbf72392388bc34d0a0c -
Branch / Tag:
refs/heads/main - Owner: https://github.com/J-mazz
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@501264fe1eb3622d62fabbf72392388bc34d0a0c -
Trigger Event:
push
-
Statement type:
File details
Details for the file sys_scan_agent-7.0.0-py3-none-any.whl.
File metadata
- Download URL: sys_scan_agent-7.0.0-py3-none-any.whl
- Upload date:
- Size: 188.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
92a2200d1e76998237754154c5da0c9a4875e3bfce45fd151f04082ea0d726cd
|
|
| MD5 |
97a3818e9cf48e51c8146d29b5513fe0
|
|
| BLAKE2b-256 |
be8728a833f00b58c4ed7abe57cc0c0f18e8b824234c60f90b6f54b81b1c8a10
|
Provenance
The following attestation bundles were made for sys_scan_agent-7.0.0-py3-none-any.whl:
Publisher:
publish-pypi.yml on J-mazz/sys-scan-graph
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sys_scan_agent-7.0.0-py3-none-any.whl -
Subject digest:
92a2200d1e76998237754154c5da0c9a4875e3bfce45fd151f04082ea0d726cd - Sigstore transparency entry: 779603018
- Sigstore integration time:
-
Permalink:
J-mazz/sys-scan-graph@501264fe1eb3622d62fabbf72392388bc34d0a0c -
Branch / Tag:
refs/heads/main - Owner: https://github.com/J-mazz
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@501264fe1eb3622d62fabbf72392388bc34d0a0c -
Trigger Event:
push
-
Statement type: