AegisGraph: plataforma de evidência de avaliação de camada de aplicação baseada em gráficos para Secure Messaging Applications (SMAs). Pesquisa DARPA ASEMA HR0011SB20254-12 Tier 3. ReproChain CVE-2023-4863 reachability + fuzzing de parser diferencial PolyDiff + governança de estado de reivindicação + superfície de benchmark reproduzível.
Descoberta automatizada de vulnerabilidades orientada por grafos para aplicações de mensagens seguras. Implementação de engenharia da 577 Industries para o tópico HR0011SB20254-12 (ASEMA) do programa DARPA SBIR Direct-to-Phase-II.

Procurando artefatos voltados ao avaliador? A versão pública sanitizada de viabilidade está em
577Industries/asema-feasibility-artifactsna tagv1.0.0-asema-dp2-feasibility. Comece por lá se estiver verificando as afirmações da proposta ASEMA.
A plataforma de engenharia — a implementação real por trás do AegisGraph:
| Subsistema | Caminho | O que faz |
|---|---|---|
| PolyDiff Extended | aegisgraph/polydiff/ | Análise diferencial multiformato em 6 famílias de parsers (url, image, opengraph, deeplink, qr, proto) com vetores de fatos normalizados |
| HarnessGen | aegisgraph/harnessgen/ | Geração de harness de fuzzing poliglota orientada por grafos (Jazzer para JVM, libFuzzer+HWASAN para nativo, cargo-fuzz para Rust) |
| InvariantCheck | aegisgraph/invariants/ | 15 invariantes de segurança específicos de SMA com fixtures de referência publicamente auditáveis; mapeamento MASTG/SSDF |
| CrossSMA | aegisgraph/crosssma/ | Matriz de propagação entre aplicações (4 alvos SMA × 6 padrões) com canonicalização estrutural |
| DynamicProbe (período de opção) | aegisgraph/dynamicprobe/ | Emulador AOSP+HWASAN instrumentado com Frida com gate de autorização assinada imposto estruturalmente |
| Divulgação Coordenada | aegisgraph/disclosure/ | Livro-razão de divulgação encadeado por hash + roteamento para 7 fornecedores + temporizador de embargo nos dias 7/14/30/60/90 + fallback CERT/CC |
| ReproChain | reprochain/ | Simulação de pré-divulgação contra CVE-2023-4863 (libwebp); commits de vulnerabilidade+correção vendorizados + harness ASAN |
| Extração | extraction/ | Extração estática sobre SMAs públicos fixados (Signal Android, Element X Android); 8 consultas CodeQL + 4 regras Semgrep + integração MobSF |
| SMABench | smabench/ | Design de benchmark de três anéis: sintético (Anel 1), estático de fonte pública + alcançabilidade (Anel 2), dinâmico autorizado (Anel 3) |
| Validador + segurança | validator/, aegisgraph/safety.py | Validação de schema, verificação de sanitização (Regras 1–9), falseabilidade via teste de corrupção deliberada |
| Schema | schema/ | 6 schemas JSON + extensão aditiva do Schema v2 (discovery_run, crash, disagreement, invariant_violation, cross_target_candidate, disclosure_event) |
| Registro de decisões | docs/decision-log/ | 14 ADRs cobrindo todas as decisões arquiteturais |
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
O ponto de entrada da CLI é aegisgraph após a instalação, ou python3 -m aegisgraph.cli a partir deste checkout.
make export-public-sanitized e aprovação humana explícita antes da publicação.v1.0.0-tier3-research, commit d91c1df6).github/workflows/ci.yml é executado a cada push; reproduce.yml está com if: false até que o runner auto-hospedado seja provisionadovalidator/sanitize_check.py aplica 9 regras a cada candidato a exportação pública antes que qualquer artefato saia deste repositórioOs 14 ADRs em docs/decision-log/ documentam cada decisão arquitetural:
| ADR | Tópico |
|---|---|
| 0001 | Separação do repositório: fronteira entre engenharia e lançamento público |
| 0002 | Tratamento privado do ReproChain |
| 0003 | Seleção do libwebp para o alvo do ReproChain |
| 0004 | Seleção do parser PolyDiff (família url inicial + extensão para 6 famílias) |
| 0005 | Migração do validador |
| 0006 | Propriedade da divulgação (PI como responsável nomeado; revisão jurídica como condição) |
| 0007–0012 | Arquitetura do motor (estruturas HarnessGen, InvariantCheck, CrossSMA, DynamicProbe) |
| 0013 | Schema v2 (extensão aditiva para a saída do motor) |
| 0014 | Formato do registo de divulgação coordenada (JSONL encadeado por hash) |
| 0020 | Extensão multifamília do PolyDiff |
| 0021 | Disciplina de exportação do validador |