AegisGraph : plateforme d'évaluation des preuves au niveau applicatif basée sur des graphes pour les applications de messagerie sécurisée (SMA). Recherche de niveau 3 DARPA ASEMA HR0011SB20254-12. ReproChain CVE-2023-4863 atteignabilité + fuzzing différentiel de parseur PolyDiff + gouvernance des états de revendication + surface de référence reproductible.
Découverte automatisée de vulnérabilités pilotée par graphe pour les applications de messagerie sécurisée. Implémentation d'ingénierie de 577 Industries pour le sujet DARPA SBIR Direct-to-Phase-II HR0011SB20254-12 (ASEMA).

Vous cherchez les artefacts destinés aux évaluateurs ? La version publique assainie de faisabilité se trouve dans
577Industries/asema-feasibility-artifactsau tagv1.0.0-asema-dp2-feasibility. Commencez par là si vous vérifiez les affirmations de la proposition ASEMA.
La plateforme d'ingénierie — l'implémentation réelle derrière AegisGraph :
| Sous-système | Chemin | Rôle |
|---|---|---|
| PolyDiff Extended | aegisgraph/polydiff/ | Analyse différentielle multi-format sur 6 familles d'analyseurs (url, image, opengraph, deeplink, qr, proto) avec vecteurs de faits normalisés |
| HarnessGen | aegisgraph/harnessgen/ | Génération de harnais de fuzzing polyglotte pilotée par graphe (Jazzer pour JVM, libFuzzer+HWASAN pour natif, cargo-fuzz pour Rust) |
| InvariantCheck | aegisgraph/invariants/ | 15 invariants de sécurité spécifiques aux SMA avec fixtures de vérité terrain auditables publiquement ; mapping MASTG/SSDF |
| CrossSMA | aegisgraph/crosssma/ | Matrice de propagation inter-applications (4 cibles SMA × 6 motifs) avec canonicalisation structurelle |
| DynamicProbe (période d'option) | aegisgraph/dynamicprobe/ | Émulateur AOSP+HWASAN instrumenté par Frida avec porte d'autorisation signée appliquée structurellement |
| Divulgation coordonnée | aegisgraph/disclosure/ | Registre de divulgation chaîné par hachage + routage vers 7 fournisseurs + minuteur d'embargo jour-7/14/30/60/90 + repli CERT/CC |
| ReproChain | reprochain/ | Simulation de pré-divulgation contre CVE-2023-4863 (libwebp) ; commits vuln+correctif vendus + harnais ASAN |
| Extraction | extraction/ | Extraction statique sur des SMA publics épinglés (Signal Android, Element X Android) ; 8 requêtes CodeQL + 4 règles Semgrep + intégration MobSF |
| SMABench | smabench/ | Conception de benchmark à trois anneaux : synthétique (Anneau 1), statique source publique + atteignabilité (Anneau 2), dynamique autorisé (Anneau 3) |
| Validateur + sûreté | validator/, aegisgraph/safety.py | Validation de schéma, vérification d'assainissement (Règles 1–9), falsifiabilité via test de corruption délibérée |
| Schéma | schema/ | 6 schémas JSON + extension additive Schema v2 (discovery_run, crash, disagreement, invariant_violation, cross_target_candidate, disclosure_event) |
| Journal de décisions | docs/decision-log/ | 14 ADR couvrant toutes les décisions architecturales |
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
Le point d'entrée CLI est aegisgraph après installation, ou python3 -m aegisgraph.cli depuis ce checkout.
make export-public-sanitized et approbation humaine explicite avant publication.v1.0.0-tier3-research tag, commit d91c1df6).github/workflows/ci.yml s'exécute à chaque push ; reproduce.yml est en if: false jusqu'au provisionnement du runner auto-hébergévalidator/sanitize_check.py applique 9 règles à chaque candidat d'export public avant qu'un artefact ne quitte ce dépôtLes 14 ADR dans docs/decision-log/ documentent chaque décision architecturale :
| ADR | Sujet |
|---|---|
| 0001 | Séparation du dépôt : frontière ingénierie vs publication publique |
| 0002 | Gestion privée de ReproChain |
| 0003 | Sélection de libwebp pour la cible ReproChain |
| 0004 | Sélection du parseur PolyDiff (famille url initiale + extension à 6 familles) |
| 0005 | Migration du validateur |
| 0006 | Responsabilité de divulgation (propriétaire nommé PI ; porte de revue juridique) |
| 0007–0012 | Architecture du moteur (échafaudages HarnessGen, InvariantCheck, CrossSMA, DynamicProbe) |
| 0013 | Schéma v2 (extension additive pour la sortie du moteur) |
| 0014 | Format du registre de divulgation coordonnée (JSONL chaîné par hachage) |
| 0020 | Extension multi-familles de PolyDiff |
| 0021 | Discipline d'export du validateur |