AegisGraph: графовая платформа для оценки доказательств на уровне приложений для защищенных приложений обмена сообщениями (SMA). Исследование DARPA ASEMA HR0011SB20254-12 Tier 3. ReproChain CVE-2023-4863 достижимость + дифференциальный фаззинг парсера PolyDiff + управление состоянием утверждений + воспроизводимая поверхность бенчмарка.
Автоматизированный поиск уязвимостей на основе графов для приложений защищённой связи. Инженерная реализация 577 Industries для темы DARPA SBIR Direct-to-Phase-II HR0011SB20254-12 (ASEMA).

Ищете артефакты для проверяющих? Очищенный публичный релиз технико-экономического обоснования находится в
577Industries/asema-feasibility-artifactsпод тегомv1.0.0-asema-dp2-feasibility. Начните оттуда, если проверяете утверждения из предложения ASEMA.
Инженерная платформа — фактическая реализация, лежащая в основе AegisGraph:
| Подсистема | Путь | Что делает |
|---|---|---|
| PolyDiff Extended | aegisgraph/polydiff/ | Мультиформатный дифференциальный разбор по 6 семействам парсеров (url, image, opengraph, deeplink, qr, proto) с нормализованными векторами фактов |
| HarnessGen | aegisgraph/harnessgen/ | Генерация полиглотных фазз-харнессов на основе графов (Jazzer для JVM, libFuzzer+HWASAN для нативного кода, cargo-fuzz для Rust) |
| InvariantCheck | aegisgraph/invariants/ | 15 специфичных для SMA инвариантов безопасности с публично проверяемыми эталонными фикстурами; сопоставление с MASTG/SSDF |
| CrossSMA | aegisgraph/crosssma/ | Матрица межприложенческого распространения (4 цели SMA × 6 паттернов) со структурной канонизацией |
| DynamicProbe (опционный период) | aegisgraph/dynamicprobe/ | Эмулятор AOSP+HWASAN с инструментированием Frida и структурно принудительным шлюзом подписанной авторизации |
| Coordinated Disclosure | aegisgraph/disclosure/ | Реестр раскрытия с хеш-цепочкой + маршрутизация к 7 вендорам + таймер эмбарго на 7/14/30/60/90 день + резервный канал CERT/CC |
| ReproChain | reprochain/ | Симуляция до раскрытия против CVE-2023-4863 (libwebp); вендоренные коммиты уязвимости и исправления + харнесс ASAN |
| Extraction | extraction/ | Статическое извлечение по закреплённым публичным SMA (Signal Android, Element X Android); 8 запросов CodeQL + 4 правила Semgrep + интеграция с MobSF |
| SMABench | smabench/ | Дизайн бенчмарка из трёх колец: синтетическое (кольцо 1), статическое по публичным исходникам + достижимость (кольцо 2), авторизованное динамическое (кольцо 3) |
| Validator + safety | validator/, aegisgraph/safety.py | Валидация схемы, проверка очистки (правила 1–9), опровержимость через тест с намеренным повреждением |
| Schema | schema/ | 6 JSON-схем + аддитивное расширение Schema v2 (discovery_run, crash, disagreement, invariant_violation, cross_target_candidate, disclosure_event) |
| Decision log | docs/decision-log/ | 14 ADR, охватывающих все архитектурные решения |
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
Точкой входа CLI является aegisgraph после установки или python3 -m aegisgraph.cli из этого репозитория.
make export-public-sanitized и явное одобрение человеком перед публикацией.v1.0.0-tier3-research, коммит d91c1df6).github/workflows/ci.yml запускается при push; reproduce.yml имеет if: false до подготовки self-hosted runnervalidator/sanitize_check.py обеспечивает соблюдение 9 правил для каждого кандидата на публичный экспорт, прежде чем какой-либо артефакт покинет этот репозиторий14 ADR в docs/decision-log/ документируют каждое архитектурное решение:
| ADR | Тема |
|---|---|
| 0001 | Разделение репозитория: граница между инженерной и публичной версией |
| 0002 | Обработка приватного ReproChain |
| 0003 | Выбор libwebp в качестве цели ReproChain |
| 0004 | Выбор парсера PolyDiff (изначально семейство url + расширение до 6 семейств) |
| 0005 | Миграция валидатора |
| 0006 | Ответственность за раскрытие (PI назначен владельцем; контрольная точка юридической проверки) |
| 0007–0012 | Архитектура движка (каркасы HarnessGen, InvariantCheck, CrossSMA, DynamicProbe) |
| 0013 | Схема v2 (аддитивное расширение для вывода движка) |
| 0014 | Формат журнала скоординированного раскрытия (JSONL с хеш-цепочкой) |
| 0020 | Мультисемейное расширение PolyDiff |
| 0021 | Дисциплина экспорта валидатора |