AegisGraph: piattaforma di valutazione delle prove a livello applicativo basata su grafi per applicazioni di messaggistica sicura (SMA). Ricerca DARPA ASEMA HR0011SB20254-12 Tier 3. ReproChain CVE-2023-4863 raggiungibilità + fuzzing del parser differenziale PolyDiff + governance dello stato delle rivendicazioni + superficie di benchmark riproducibile.
Scoperta automatizzata di vulnerabilità guidata da grafo per applicazioni di messaggistica sicura. Implementazione ingegneristica di 577 Industries per il bando DARPA SBIR Direct-to-Phase-II HR0011SB20254-12 (ASEMA).

Cerchi gli artefatti destinati ai valutatori? La release pubblica di fattibilità sanificata si trova su
577Industries/asema-feasibility-artifactsal tagv1.0.0-asema-dp2-feasibility. Parti da lì se stai verificando le affermazioni nella proposta ASEMA.
La piattaforma di ingegneria — l'implementazione effettiva dietro AegisGraph:
| 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 di fatti normalizzati |
| HarnessGen | aegisgraph/harnessgen/ | Generazione di fuzz-harness poliglotta guidata da grafo (Jazzer per JVM, libFuzzer+HWASAN per native, cargo-fuzz per Rust) |
| InvariantCheck | aegisgraph/invariants/ | 15 invarianti di sicurezza specifici per SMA con fixture di ground-truth verificabili pubblicamente; mappatura 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 firmata applicato strutturalmente |
| Coordinated Disclosure | aegisgraph/disclosure/ | Registro di divulgazione con catena di hash + instradamento a 7 vendor + timer di 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 pubblici fissati (Signal Android, Element X Android); 8 query CodeQL + 4 regole Semgrep + integrazione MobSF |
| SMABench | smabench/ | Progettazione di benchmark a tre anelli: sintetico (Anello 1), statico da fonte pubblica + raggiungibilità (Anello 2), dinamico autorizzato (Anello 3) |
| Validator + safety | validator/, aegisgraph/safety.py | Validazione dello schema, controllo di sanificazione (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 |
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, oppure python3 -m aegisgraph.cli da questo checkout.
make export-public-sanitized e da approvazione umana esplicita prima della pubblicazione.v1.0.0-tier3-research, commit d91c1df6).github/workflows/ci.yml viene eseguito al push; reproduce.yml è impostato a if: false finché il runner self-hosted non è provisionatovalidator/sanitize_check.py applica 9 regole a ogni candidato all'esportazione pubblica prima che qualsiasi artefatto lasci questo repoI 14 ADR in docs/decision-log/ documentano ogni decisione architetturale:
| ADR | Argomento |
|---|---|
| 0001 | Separazione del repo: confine tra ingegneria e rilascio pubblico |
| 0002 | Gestione privata di ReproChain |
| 0003 | Selezione di libwebp per il target ReproChain |
| 0004 | Selezione del parser PolyDiff (famiglia url iniziale + estensione a 6 famiglie) |
| 0005 | Migrazione del validator |
| 0006 | Titolarità della disclosure (owner nominato PI; gate di revisione legale) |
| 0007–0012 | Architettura del motore (scaffold HarnessGen, InvariantCheck, CrossSMA, DynamicProbe) |
| 0013 | Schema v2 (estensione additiva per l'output del motore) |
| 0014 | Formato del registro di disclosure coordinata (JSONL con catena di hash) |
| 0020 | Estensione multi-famiglia di PolyDiff |
| 0021 | Disciplina di esportazione del validator |