zagari/argus-threat-modeling
0
๐ก๏ธ ARGUS & Cรญclope โ STRIDE Threat Modeling from Architecture Diagrams
Upload an architecture diagram (AWS / Azure / GCP) and get a STRIDE threat model โ threats, vulnerabilities and countermeasures. Two systems share the same output:
- Cรญclope โ an LLM-only baseline: the image goes straight to a vision model.
- ARGUS โ a six-stage expert pipeline: supervised detector (YOLO11) โ OCR + topology โ DFD โ STRIDE-per-element โ grounded knowledge (
CWE โ CAPEC โ ATT&CK โ D3FEND,STRIDE โ ASVS/NIST, real CVEs from the NVD) โ DREAD scoring.
This is the companion demo for the FIAP IADT โ Phase 5 ("FIAP Software Security") project.
๐ Bring your own key (no cost to the demo owner)
Pick an LLM provider and paste your own API key:
Your key is used only for that single request, is never stored and never logged (see app/config.py: the key is kept in memory and is excluded from GET /settings and logs). Requests are processed one at a time so keys never mix between visitors.
โ ๏ธ On the free CPU Space, ARGUS is slow (it downloads and runs the detector, does OCR and several model calls). Try Cรญclope first for a quick result. The object detector (E1) runs locally and is free โ only the LLM calls use your key.
๐ฅ๏ธ Run locally
python app.py # from the Space repo root
# or, from the monorepo:
python deploy/hf_space/app.py๐ How to publish this Space (step by step)
- Create a Space: go to <https://huggingface.co/new-space>, choose SDK = Gradio, CPU basic.
- Add the files to the Space repo:
app.pyandrequirements.txt(this folder), and thisREADME.md.- The backend package: copy
backend/app/into the Space asbackend/app/(the pipeline code, knowledge catalogs included).app.pyfinds it automatically. - The taxonomy (improves E2 label matching): copy
training/taxonomy/mapeamento.yamlto the same relative path, or set theARGUS_MAPEAMENTOvariable to its location. - Detector: nothing to do โ it is pulled anonymously from the public Hub repo
zagari/argus-detector(override with theARGUS_DETECTOR_HFvariable if needed). - No secrets required: keys are provided by visitors at runtime (bring-your-own-key).
- Push and wait for the build. First ARGUS run also downloads the detector weights (one-off).
- (Optional) embed a short demo video in this
README.md.
๐ฆ What runs where
- Local / embedded (no key): detector (YOLO11), OCR, and the portable knowledge graph (LocalKG).
- External (your key): the LLM/vision calls (Cรญclope, and ARGUS stages E2/E4/E5).
- Not on the free Space: Neo4j (Graph-RAG) and Chroma (semantic RAG) โ optional extras used in the full local/Docker deployment; the Space uses LocalKG, which returns the same base results.
๐ Links
- Model (detector): <https://huggingface.co/zagari/argus-detector>
- Source code: <https://github.com/Zagari/argus-threat-modeling>
