
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.
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 des artefacts destinés aux évaluateurs ? La version de faisabilité publique sanitisée se trouve sur
577-Industries/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 :
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, commit d91c1df6).github/workflows/ci.yml runs on push; reproduce.yml is if: false until self-hosted runner is provisionedvalidator/sanitize_check.py applique 9 règles sur chaque candidat à l'export public avant que tout artefact ne quitte ce dépôtLes 14 ADR dans docs/decision-log/ documentent chaque décision architecturale :
La version de faisabilité publique correspondante se trouve sur 577-Industries/asema-feasibility-artifacts :
Apache-2.0. Voir LICENSE.
SPEC.md est la spécification technique de travail. Si l'implémentation et la spécification divergent, mettez à jour la spécification délibérément.
| Sous-système | Chemin | Fonction |
|---|
| PolyDiff Extended | aegisgraph/polydiff/ | Analyse différentielle multi-format sur 6 familles de parseurs (url, image, opengraph, deeplink, qr, proto) avec des 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 des fixtures de vérité terrain auditable publiquement ; mappage 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 structurellement renforcée |
| Coordinated Disclosure | aegisgraph/disclosure/ | Registre de divulgation chaîné par hachage + routage 7 fournisseurs + minuteur d'embargo jour-7/14/30/60/90 + repli CERT/CC |
| ReproChain | reprochain/ | Simulation pré-divulgation contre CVE-2023-4863 (libwebp) ; commits vuln+fix fournis + 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), source publique statique + accessibilité (Anneau 2), dynamique autorisé (Anneau 3) |
| Validator + safety | validator/, aegisgraph/safety.py | Validation de schéma, vérification de sanitisation (Règles 1–9), falsifiabilité via test de corruption délibérée |
| Schema | schema/ | 6 schémas JSON + extension additive Schéma v2 (discovery_run, crash, disagreement, invariant_violation, cross_target_candidate, disclosure_event) |
| Journal des décisions | docs/decision-log/ | 14 ADR couvrant toutes les décisions architecturales |
| ADR | Sujet |
|---|
| 0001 | Séparation du dépôt : frontière entre ingénierie et version 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 | Propriété de la divulgation (PI nommé propriétaire ; porte de révision juridique) |
| 0007–0012 | Architecture des moteurs (é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-famille PolyDiff |
| 0021 | Discipline d'export du validateur |