
AegisGraph: graph-based application-layer assessment evidence platform for Secure Messaging Applications (SMAs). DARPA ASEMA HR0011SB20254-12 Tier 3 research. ReproChain CVE-2023-4863 reachability + PolyDiff differential parser fuzzing + claim-state governance + reproducible benchmark surface.
Scoperta automatizzata delle vulnerabilità guidata da grafi per applicazioni di messaggistica sicura. Implementazione ingegneristica di 577 Industries per l'argomento DARPA SBIR Direct-to-Phase-II HR0011SB20254-12 (ASEMA).

Cerchi artefatti per valutatori? Il rilascio di fattibilità pubblico e sanitizzato si trova in
577-Industries/asema-feasibility-artifactsal tagv1.0.0-asema-dp2-feasibility. Inizia da lì se stai verificando le affermazioni nella proposta ASEMA.
La piattaforma ingegneristica — l'implementazione effettiva dietro AegisGraph:
git clone https://github.com/577Industries/aegisgraph
cd aegisgraph
git checkout v1.0.0-tier3-research
# Recommended: use the pinned devcontainer
devcontainer up
make tooling-strict # verify pinned toolchain
python3 -m pytest -q # expect 1030 passed, 19 skipped
# Per-engine smoke tests
make reprochain-map # ReproChain reachability mapping
make polydiff-regression # PolyDiff differential parser regression (8 historical CVE rediscoveries)
make extract # static extraction over pinned SMAs
make smabench # SMABench benchmark generation
make validate # evidence + CETM validation
make reproduce # full reproduction pipeline
Il punto di ingresso CLI è aegisgraph dopo l'installazione, o python3 -m aegisgraph.cli da questo checkout.
make export-public-sanitized e approvazione umana esplicita prima della pubblicazione.v1.0.0-tier3-research, commit d91c1df6).github/workflows/ci.yml viene eseguito su push; reproduce.yml è if: false finché non viene fornito il runner self-hostedvalidator/sanitize_check.py applica 9 regole su ogni candidato di esportazione pubblica prima che qualsiasi artefatto lasci questo repositoryI 14 ADR in docs/decision-log/ documentano ogni decisione architetturale:
Il corrispondente rilascio di fattibilità pubblico si trova in 577-Industries/asema-feasibility-artifacts:
Apache-2.0. Vedi LICENSE.
SPEC.md è la specifica tecnica operativa. Se implementazione e specifica divergono, aggiorna la specifica deliberatamente.
| Sottosistema | Percorso | Cosa fa |
|---|
| PolyDiff Extended | aegisgraph/polydiff/ | Parsing differenziale multi-formato su 6 famiglie di parser (url, image, opengraph, deeplink, qr, proto) con vettori fattuali normalizzati |
| HarnessGen | aegisgraph/harnessgen/ | Generazione di fuzz-harness poliglotta guidata da grafi (Jazzer per JVM, libFuzzer+HWASAN per nativo, cargo-fuzz per Rust) |
| InvariantCheck | aegisgraph/invariants/ | 15 invarianti di sicurezza specifici per SMA con fixture di verità di base pubblicamente verificabili; mapping MASTG/SSDF |
| CrossSMA | aegisgraph/crosssma/ | Matrice di propagazione cross-applicazione (4 target SMA × 6 pattern) con canonicalizzazione strutturale |
| DynamicProbe (periodo opzionale) | aegisgraph/dynamicprobe/ | Emulatore AOSP+HWASAN strumentato con Frida con gate di autorizzazione firmato strutturalmente imposto |
| Coordinated Disclosure | aegisgraph/disclosure/ | Registro di divulgazione concatenato hash + routing a 7 fornitori + timer embargo giorno-7/14/30/60/90 + fallback CERT/CC |
| ReproChain | reprochain/ | Simulazione pre-divulgazione contro CVE-2023-4863 (libwebp); commit di vulnerabilità+fix vendored + harness ASAN |
| Extraction | extraction/ | Estrazione statica su SMA pubbliche pinned (Signal Android, Element X Android); 8 query CodeQL + 4 regole Semgrep + integrazione MobSF |
| SMABench | smabench/ | Progettazione benchmark a tre anelli: sintetico (Anello 1), statico da sorgente pubblica + raggiungibilità (Anello 2), dinamico autorizzato (Anello 3) |
| Validator + safety | validator/, aegisgraph/safety.py | Validazione schema, controllo di sanitizzazione (Regole 1–9), falsificabilità tramite test di corruzione deliberata |
| Schema | schema/ | 6 schemi JSON + estensione additiva Schema v2 (discovery_run, crash, disagreement, invariant_violation, cross_target_candidate, disclosure_event) |
| Decision log | docs/decision-log/ | 14 ADR che coprono tutte le decisioni architetturali |
| ADR | Argomento |
|---|
| 0001 | Separazione repo: confine tra ingegneristico e rilascio pubblico |
| 0002 | Gestione privata di ReproChain |
| 0003 | Selezione libwebp per target ReproChain |
| 0004 | Selezione parser PolyDiff (famiglia url iniziale + estensione a 6 famiglie) |
| 0005 | Migrazione del validatore |
| 0006 | Proprietà della divulgazione (PI nominato proprietario; gate di revisione legale) |
| 0007–0012 | Architettura del motore (scaffold HarnessGen, InvariantCheck, CrossSMA, DynamicProbe) |
| 0013 | Schema v2 (estensione additiva per output del motore) |
| 0014 | Formato registro di divulgazione coordinata (JSONL concatenato hash) |
| 0020 | Estensione multi-famiglia PolyDiff |
| 0021 | Disciplina di esportazione del validatore |