
ИИ-шлюз управления и сбора доказательств для мультипровайдерных LLM-приложений. FastAPI + опциональное ядро на Rust для политик, WAF, исходящего трафика, ограничения скорости, сессий, подписанных долговременных доказательств и путей ошибок с закрытием по умолчанию. Самостоятельное размещение; без заявлений о сертификации или SLO.
Шлюз управления ИИ и фиксации доказательств для мультипровайдерных LLM-приложений.
Aegis Latent Core — это совместимый с OpenAI шлюз, который применяет политику запросов, WAF, исходящий трафик, ограничение скорости и контроль сессий перед передачей трафика вышестоящему провайдеру моделей. Для управляемого трафика он формирует каноническую запись доказательств, подписывает её, фиксирует в долговечном журнале упреждающей записи и предоставляет вызывающей стороне статус доказательств. Дополнительное обогащение ответов выполняется за ограниченной очередью и никогда не заменяет авторитетную фиксацию доказательств.
Границы продукта: Aegis — это шлюз управления ИИ и фиксации доказательств. Он не является LLM, универсальным WAF, сертификацией соответствия, решением о юридической допустимости, производственным SLO или заменой средств контроля сети, идентификации, конфиденциальности, хранения или реагирования на инциденты.
Последняя проверка: 2026-08-25 UTC
Базовый релиз: опубликованный v3.1.0
Базовая версия объединённого исходного кода: 2050a310ec295afc61d033ff842c9a535a4f3105 (PR #112; четырнадцать якорей версий синхронизированы на 4.0.0)
Неизменяемый публичный базовый релиз — v3.1.0. Коммит 2050a310ec295afc61d033ff842c9a535a4f3105 — это базовая версия объединённого исходного кода v4; его контракт исходного релиза сообщает о синхронизации всех четырнадцати якорей версий на 4.0.0. Потоковая передача SSE с ограниченными доказательствами pending-terminal, нативный Anthropic POST /v1/messages, Python и TypeScript SDK, переносимые MMR-доказательства, криминалистическая панель и ZIP-экспорт, вспомогательный сегмент потока RustWal и бенчмарк SSE — это возможности объединённого исходного кода; они не относятся к тегу v3.1.0.
Объединённый исходный код остаётся невыпущенным и неопубликованным. На момент аудита 2026-08-25 не существовало тега v4.0.0, GitHub Release, публикации на PyPI или npm. Доказательства релиза и доказательства реализации исходного кода должны оцениваться отдельно. Проверка готовности к релизу оценивает только контракты исходного кода: она не подтверждает тег, одобрение среды GitHub, доверенный путь подписанта, политику реестра, аттестацию артефактов, многоплатформенную среду выполнения или внешнее принятие.
Aegis предназначен для платформенных команд, команд безопасности приложений и AI-инженерии, работающих более чем с одним провайдером моделей или требующих независимых от провайдера доказательств для управляемого ИИ-трафика. Первоначальный коммерческий фокус — B2B SaaS, финтех и регулируемые корпоративные платформенные команды, которым нужны частное развёртывание и проверяемые доказательства, но которые не просят этот репозиторий стать универсальным продуктом авторизации или сертификации.
Соответствующий комитет покупателей обычно включает CISO или владельца AppSec, платформенную инженерию, AI/ML-инженерию, комплаенс или юристов, закупки и исполнительного спонсора. Рекомендуемая последовательность доказательств: локальная оценка → воспроизведение доказательств → контролируемый пилот → проверка безопасности → пакет закупок → производственное развёртывание.
Стандартные журналы доступа могут показать, что вызов API произошёл. Сами по себе они не устанавливают точные хэши управляемого запроса и ответа, путь политики, границу фиксации доказательств, схему подписания, предшественника цепочки или то, был ли запрос отклонён до или после границы доказательств. Aegis делает эти переходы явными и проверяемыми при объявленных средствах контроля развёртывания.
sequenceDiagram participant C as Client participant A as Aegis Gateway participant W as Policy/WAF/Egress participant U as Upstream Model participant L as Signed WAL participant Q as Bounded Enrichment
C->>A: Authenticated OpenAI-compatible or Anthropic request
A->>W: Size, canonicalization, WAF, session, rate-limit
W-->>C: Fail-closed response + durable error evidence when rejected
W->>U: Forward only after admission
U-->>A: Complete response or bounded SSE events
A->>L: Non-stream: hash, sign, append, flush, fsync
L-->>A: Non-stream durable evidence status
A->>Q: Optional bounded response analysis
A-->>C: Non-stream response + portable MMR proof headers
A-->>C: Stream events through bounded queue
A->>L: Stream terminal summary, sign, append, flush, fsync
L-->>A: Terminal commit complete
A-->>C: Protocol terminal marker
Строгий жизненный цикл:
1. Аутентифицировать вызывающего и назначить идентификатор запроса.
2. Применить ограничения размера запроса и канонизировать представление запроса.
3. Применить WAF, контроль поведения сеанса, исходящего трафика и ограничения скорости.
4. Отклонить при сбое обязательного контроля вместо молчаливого ослабления пути безопасности.
5. Переслать настроенному вышестоящему провайдеру.
6. Для не-потоковых вызовов захватить ответ, вычислить канонические хэши, подписать доказательство, добавить в WAL, сбросить и выполнить `fsync` перед возвратом.
7. Для SSE-вызовов ретранслировать санитизированные логические события через ограниченную очередь с учётом байтов. Инкрементально хэшировать точные отправленные байты; при завершении зафиксировать одну подписанную итоговую сводку перед отправкой протокольного терминального маркера. Поэтому начальный потоковый заголовок — `X-Aegis-Evidence-Status: pending-terminal`, а не `durable`.
8. Выполнять необязательное обогащение ответа через ограниченный рабочий путь после создания авторитетной записи.
## Основной контракт
| Контроль | Реализованное поведение | Доказательство и граница |
|---|---|---|
| Долговечность доказательств | Для не-потоковых управляемых вызовов основной прокси фиксирует доказательства запроса/ответа перед возвратом и отправляет `X-Aegis-Evidence-Status: durable`. Потоковый SSE начинается с `pending-terminal`; одна подписанная итоговая сводка фиксируется перед протокольным терминальным маркером, а доказательство извлекается после завершения. | `tests/test_p0_release_gates.py`, `tests/test_proxy_streaming.py`, тесты путей отказа прокси и тесты целостности WAL. Целевая файловая система и провайдер хранилища всё ещё требуют проверки развёртывания. |
| Долговечные терминальные ошибки | Ответы вышестоящего сервера с кодом не-2xx, пути разомкнутой цепи и сетевые сбои используют путь долговечных доказательств ошибок, когда граница доказательств доступна. | `tests/test_enterprise_durable_evidence.py` и доказательства релиза v3.1.0. Сбой хранилища после приёма — это операционный инцидент с закрытием при отказе, а не успешный ответ. |
| Целостность цепочки | Аудит-узлы связывают предшественника, хэш запроса, хэш ответа, корень Меркла, подпись и метаданные схемы. | `aegis/core/crypto_audit.py` и `verify_integrity()`. Обнаружение подделки — это не то же самое, что неизменяемое внешнее хранилище. |
| Строгая подпись | Строгие реестры отклоняют эфемерный запасной вариант Ed25519. HMAC-SHA256, настроенный PKCS#11 или настроенная нативная подпись должны удовлетворять выбранной политике; устаревший интерфейс HSM теперь закрывается при отказе вместо вывода программного ключа. | Тесты подписей и строгие стартовые шлюзы. Мокированные тесты PKCS#11 — это только доказательство адаптера, HMAC симметричен, и не установлены совместимость HSM, неэкспортируемость ключей, валидация FIPS или сторонняя неотказуемость. |
| Ротация ключей | Корпоративный подписант поддерживает атомарное версионированное кольцо ключей HMAC с одним активным ключом, историческими ключами проверки, явным сроком действия и несекретными метаданными `key_id`. | `aegis_server/crypto/keyring.py`, `tests/test_keyring_rotation.py`. Доказательство развёртывания с тремя репликами остаётся обязательным для производственного заявления. |
| Ограничение скорости | Распределённое ограничение на базе Redis закрывается при отказе, когда бэкенд недоступен; разработческое ограничение в памяти не является производственной заменой. | Тесты ограничителя скорости и конфигурация развёртывания. Поведение Redis/TLS/HA зависит от развёртывания. |
| Корпоративная идентичность и привязка тенанта | Нерелизный кандидат выводит неизменяемые принципалы из настроенных сопоставлений API-ключей, строгих утверждений OIDC или явно закреплённых сертификатов mTLS. Заголовки тенанта/сеанса не выбирают тенанта доказательств или ключ квоты. | `aegis/auth/`, `aegis/proxy/dependencies.py` и интеграционные тесты аутентификации. IdP, терминатор TLS, жизненный цикл сертификатов и приёмка Redis остаются зависимыми от развёртывания; текущий источник mTLS — режим закрепления листа, а не универсальная валидация PKI. |
| Архивация финализированных сегментов | Ротированные сегменты JSONL WAL получают версионированные манифесты и могут загружаться через опциональный адаптер S3 Object Lock с проверкой SHA-256, версии, режима блокировки и срока хранения. Опциональная приёмка RFC 3161 требует проверки OpenSSL против явного файла CA. | `aegis/storage/`, `aegis/anchoring/` и целевые тесты. Это не регуляторный WORM, гарантия юридической допустимости или внешнего времени без целевой приёмки. |
| Приватная телеметрия | События безопасности закрытой схемы исключают текст промптов/ответов/токенов, эмбеддинги, сырые идентификаторы тенантов/сеансов, имена подписантов и строки исключений; опциональный ограниченный спул SQLite экспортирует в поддерживаемые кодировки SIEM. | `aegis/telemetry/` и тесты приватности-стражей. Доставка нижестоящим системам, хранение, контроль доступа и операционные SLO являются внешними. |
| Отчёт о возможностях | `aegis.crypto` предоставляет машиночитаемый инвентарь, различающий состояния «реализовано», «опционально-рантайм», «заглушка» и «требуется внешняя валидация». | `aegis/crypto/capabilities.py` и целевые тесты. Текущий ZK API — нереальная тестовая заглушка, переносимые доказательства MMR растут как O(log n), и не заявляется валидация FIPS. |
| Граница аттестации TEE | Узлы устройств TEE сообщаются только как обнаружение. Авторские устаревшие отчёты вызывающего отклоняются; инжектированный верификатор может предоставить аутентифицированные нормализованные утверждения для точной оценки политики измерения, подписанта, nonce, свежести, отладки, TCB и данных отчёта. | `aegis/core/tee_manager.py` и тесты аппаратных модулей. Репозиторий не реализует загрузчик анклавов, разбор квот вендора, валидацию сертификатов/обеспечения, конфиденциальность корня хоста или целевую приёмку аттестации. |
| Граница дифференциальной приватности | Внутренний примитив счёта Лапласа использует чувствительность один и системный CSPRNG для одного выпуска при смежности добавления/удаления одной записи. | `aegis/core/dp_analytics.py` и детерминированные тесты. Не публикуется HTTP-эндпоинт DP; повторные выпуски требуют долговечного учётчика, стабильной идентичности набора данных/запроса, мемоизации и проверенных границ вклада, которые здесь не реализованы. |
| Граница возможностей фаззинга | Фаззинг доступен только при наличии `cargo`, `cargo-fuzz`, приватного рабочего пространства, ограниченного разбираемого манифеста и всех точных ограниченных целевых файлов; состояние запуска различает чистый, артефакт сбоя, ошибку инструмента, таймаут и недоступность. | `aegis/core/fuzzing_harness.py` и целевые тесты. Текущее дерево не имеет рабочего пространства cargo-fuzz или харнесса Kani, измеренное покрытие остаётся недоступным, а ограниченные тесты не являются исчерпывающим доказательством. |
| Консультативный ИИ-контекст | `AGENTS.md`, `llms.txt` и `.aegis_ai_context/` предоставляют навигацию по репозиторию и границы заявлений для помощников по кодированию. | Эти файлы являются консультативными данными: они не могут переопределять авторизацию, устанавливать поведение рантайма или превращать объединённый исходный код в релиз. |
| Ограничения запроса | Чрезмерно большие тела отклоняются до обычной обработки приложением. | Тесты релиза P0/P1. Лимиты должны быть подобраны под развёрнутый провайдер и политику потоковой передачи. |
| WAF | Нормализация NFKC, удаление нулевой ширины, блокировка критических паттернов, защита структурной глубины и взвешенный локальный анализ выполняются на границе приложения. | `tests/data/waf_corpus_v1.json` и `tools/security/run_waf_corpus.py`. Разбор входящего HTTP/2 находится вне границы приложения. |
| Исходящий трафик | Канонические списки разрешений отклоняют схемы, userinfo, некорректные порты, неподдерживаемые формы и неодобренные эндпоинты. | `aegis/proxy/egress_guard.py` и тесты. Это не заменяет межсетевой экран, пространство имён, NetworkPolicy или облачные средства контроля исходящего трафика. |
| Контроль ядра | Строгий запуск может требовать возможности Seccomp и LSM/AppArmor/SELinux и отклоняет отсутствие принудительного применения вне явного режима песочницы. | `aegis/core/seccomp_guard.py`, `aegis/core/lsm_guard.py`, тесты развёртывания. Целевое ядро всё ещё требует приёмочного тестирования. |
| Обогащение ответа | Анализ ограничен, наблюдаем и сериализован по сеансу, где требуется. Он опционален и не может ослабить контракт долговечных доказательств. | Тесты анализатора и очереди. Поведение очереди при реальном насыщении I/O описано в runbook по противодавлению. |
| Переносимое доказательство включения | Каждая новая запись реестра хранит самодостаточное доказательство `aegis-mmr-inclusion-v1`, дайджест листа, упорядоченные пики и корень. Не-потоковые ответы возвращают их как заголовки `X-Aegis-MMR-*`; потоковые вызовы предоставляют аутентифицированную ссылку на доказательство после завершения. | Кросс-языковые золотые векторы и тесты воспроизведения WAL/подделки. Действительное доказательство устанавливает включение в объявленный корень MMR; само по себе оно не устанавливает внешнюю отметку времени, хранение или юридическую допустимость. |
## Быстрый старт для локальной оценки
Локальный путь предназначен для разработки, тестов и воспроизведения доказательств. Это не профиль производственного развёртывания.```bash
git clone https://github.com/JuanLunaIA/aegis-latent-core.git
cd aegis-latent-core
python3 -m venv .venv
. .venv/bin/activate
python -m pip install --require-hashes -r requirements.lock
python -m pip install --no-deps -e .
python -m compileall -q aegis aegis_server
pytest -q
Для минимального шлюза с проверкой исходного кода используйте объявленную консольную точку входа aegis с локальным или имитированным вышестоящим сервером:```bash
export AEGIS_SECURITY_ENFORCEMENT_MODE=development
export AEGIS_DEBUG_MODE=true
export AEGIS_AUTH_DISABLED=true
export AEGIS_BACKEND_URL='http://127.0.0.1:9001/v1'
export AEGIS_WAL_PATH='/tmp/aegis-evaluation.wal.jsonl'
aegis
`development` — единственный принимаемый нестрогий режим в текущей модели настроек; более старое значение `permissive` и команда `uvicorn aegis.main:app` устарели. Никогда не помещайте ключи провайдеров, bearer-токены, секреты подписи, записи WAL или полезные данные клиентов в систему контроля версий.
## SDK с объединённым исходным кодом
Python-дистрибутив с объединённым исходным кодом в [`sdk/python`](https://github.com/juanlunaia/aegis-latent-core/blob/HEAD/sdk/python) — это интеграция «под ключ», которая наследует официальные клиенты OpenAI и Anthropic. Существующие типы моделей запросов/ответов и синхронные/асинхронные API ресурсов сохраняются, при этом заголовки Aegis для тенанта, сессии и bearer-аутентификации внедряются при создании экземпляра. Нативный вход Anthropic `/v1/messages` требует `AEGIS_PROVIDER=anthropic`; он сохраняет форму ответа Anthropic Messages вместо преобразования её в объекты OpenAI.
Edge-совместимый TypeScript-пакет с объединённым исходным кодом в [`sdk/typescript`](https://github.com/juanlunaia/aegis-latent-core/blob/HEAD/sdk/typescript) проверяет доказательства `aegis-mmr-inclusion-v1` с помощью Web Crypto и предоставляет нативные обёртки провайдера и параметры конструктора, а не переобъявляет полезные данные провайдера. Официальные пакеты OpenAI и Anthropic являются peer-зависимостями, поэтому их нативные ресурсы, параметры запросов, модели ответов, потоковые итераторы, повторы и типы ошибок остаются авторитетными. Оба SDK используют одни и те же замороженные векторы доказательств из `sdk/shared/`.
Кандидат невыпущенного Python SDK также включает адаптеры обратных вызовов LangChain и LlamaIndex с минимизацией конфиденциальности. Публикационные рабочие процессы отключены, если не настроены внешние предварительные условия: доверенный издатель, окружение, подписанные теги и переменные репозитория. См. [`docs/DEVELOPER_INTEGRATIONS_GUIDE.md`](https://github.com/juanlunaia/aegis-latent-core/blob/HEAD/docs/DEVELOPER_INTEGRATIONS_GUIDE.md).```python
from aegis_sdk.openai import OpenAI
client = OpenAI(
aegis_api_key="gateway-token",
gateway_url="https://aegis.internal",
tenant_id="tenant-42",
)
response = client.chat.completions.create(
model="gpt-4.1-mini",
messages=[{"role": "user", "content": "hello"}],
)
Проверка доказательств выполняется по желанию, поскольку вызывающие стороны должны получить доверенный корень MMR через независимо одобренный канал. Включение проверки при доверии корню из того же непроверенного ответа позволит обнаружить повреждение, но не обеспечит независимый источник доверия.
Объединённая панель — это интерфейс только для чтения на Next.js 16 и React 19. Она отображает только аутентифицированные данные шлюза: общее состояние здоровья, фильтруемый реестр удерживаемых окон, канонические проекции узлов JCS и DAG-CBOR с идентификаторами CIDv1, интерактивный верификатор MMR с локальной песочницей Web Crypto, живые метрики на основе Prometheus и ограниченный рабочий процесс судебного экспорта. Она не содержит резервных демонстрационных данных.```bash
cd sdk/typescript && npm ci && npm run build
cd ../../dashboard && npm ci
export AEGIS_PRIMARY_BASE_URL='https://aegis.internal'
export AEGIS_DASHBOARD_API_KEY='retrieve-from-your-secret-manager'
npm run dev
`AEGIS_DASHBOARD_API_KEY` доступен только на сервере и никогда не сериализуется в браузерные бандлы. Конечная точка экспорта требует область `audit:export`, когда настроены области для отдельных ключей. Каждый ограниченный ZIP-архив содержит RFC 8785 JCS `manifest.json`, канонический DAG-CBOR `ledger_slice.cbor`, идентифицируемый CIDv1, `merkle_proof.json`, `audit_certificate.pdf` и `VERIFY.sh`. Сертификат представляет собой технический отчёт о целостности, а не сертификацию или заключение о юридической допустимости.
## Строгий путь развёртывания
Строгий режим — это целевая производственная конфигурация. Он требует аутентификации, долговечных доказательств, надёжной подписи, ограниченных тел запросов, распределённого бэкенда ограничения частоты запросов, долговечного хранилища и настроенных средств контроля ядра. Используйте менеджер секретов и монтируйте WAL на долговечный путь, доступный для чтения владельцем.```bash
export AEGIS_SECURITY_ENFORCEMENT_MODE=strict
export AEGIS_API_KEYS='replace-with-a-secret-manager-reference'
export AEGIS_SIGNING_KEY='at-least-32-bytes-of-secret-material'
export AEGIS_RATE_LIMIT_BACKEND=redis
export AEGIS_REDIS_URL='rediss://redis.internal:6380/0'
export AEGIS_REQUIRE_DISTRIBUTED_LIMITER=true
export AEGIS_REQUIRE_DURABLE_EVIDENCE=true
export AEGIS_REQUIRE_LSM=true
export AEGIS_REQUIRE_SECCOMP=true
export AEGIS_MAX_REQUEST_BODY_BYTES=1048576
export AEGIS_BACKEND_URL='https://llm.internal.example/v1'
export AEGIS_WAL_PATH='/var/lib/aegis/aegis.wal.jsonl'
Для ротации HMAC без перезапуска настройте путь к хранилищу ключей, доступному только владельцу, вместо того чтобы полагаться на единый секрет, задаваемый при запуске процесса:```bash export AEGIS_SIGNER_PROVIDER=hmac export AEGIS_HMAC_KEYRING_PATH='/var/lib/aegis/secrets/hmac-keyring.json' export AEGIS_HMAC_KEYRING_RELOAD_INTERVAL_S=1
Протокол связки ключей, окно перекрытия, срок действия, откат и критерии приёмки с тремя репликами описаны в [`docs/operations/KEY_ROTATION_RUNBOOK.md`](https://github.com/juanlunaia/aegis-latent-core/blob/HEAD/docs/operations/KEY_ROTATION_RUNBOOK.md). Путь связки ключей не является менеджером секретов; развёртывание всё равно должно обеспечивать хранение, контроль доступа, атомарную доставку, резервное копирование, уничтожение и аудируемость.
## Модель доказательств и подписи
Локальный журнал — это append-only JSONL WAL с ограниченной цепочкой в памяти и необязательными архивными сегментами. Каждая запись содержит хэши запроса и ответа, связность цепочки, корень Меркла, метаданные подписи и идентификатор запроса. WAL сбрасывается и синхронизируется до завершения пути долговременного ответа.
Поддерживаемые варианты подписи зависят от развёртывания:
| Подписант | Подходящая граница | Важное ограничение |
|---|---|---|
| HMAC-SHA256 | Однoузловые развёртывания или самохостинг с общим секретом | Симметричный ключ; каждый проверяющий, владеющий ключом, также может подписывать. HMAC — классический, не квантово-устойчивый. |
| Подписант на базе HSM/Vault | Корпоративные развёртывания, требующие изоляции ключей или удалённого хранения | Доступность, политика, TLS/mTLS, ротация и офлайн-проверка требуют собственных доказательств целевого развёртывания. |
| Нативный подписант ML-DSA-65 | Среды, которые собирают и загружают реальный Rust-бэкенд | Сохранённый кандидатный артефакт с 1 млн выборок не выявил значимой разницы во времени для `sign` (`p=0.8521504207157158`), но не достиг порога для `verify` (`p=0.0`); утверждение о константном времени не одобрено. См. [`docs/security/PQC_CONSTANT_TIME.md`](https://github.com/juanlunaia/aegis-latent-core/blob/HEAD/docs/security/PQC_CONSTANT_TIME.md). |
Aegis не создаёт поддельные подписи ML-DSA, когда нативный бэкенд недоступен. Он сообщает о недоступности бэкенда и требует явной реальной политики отката. Результат замера времени с `p > 0.05` означал бы лишь, что статистически значимая утечка не была обнаружена в рамках названного эксперимента; это не доказывало бы выполнение за константное время.
## Семантика обратного давления и сбоев
Долговременные доказательства — это инвариант горячего пути. При остановке хранилища или `fsync` путь запроса может блокироваться или отклоняться в соответствии с настроенными пределами; он не должен молча терять авторитетные доказательства. Очередь обогащения может отклонять необязательную работу, но политика очереди не может превратить управляемый принятый ответ в незаписанный ответ.
Детерминированный каркас внедрения сбоев:```bash
PYTHONPATH=. .venv/bin/python tools/benchmarks/run_backpressure_stall.py \
--duration-s 0.25 --offered-rps 10000 --fsync-delay-ms 2 --max-workers 64 \
--output evidence/backpressure_stall_report.json
Сохранённый прогон v3.1.0 выполнил 10 000 запросов при 10 000 RPS с внедрённой задержкой fsync в 2 мс. Он зафиксировал 10 000 долговечных коммитов, ноль сбоев, ноль пропущенных ID, ноль дублирующихся ID и корректную целостность цепочки. Наблюдаемая задержка коммита на уровне p99 составила 1 189,89 мс. Это ограниченный результат отказоустойчивого тестирования со значительным накоплением в очереди. Это не заявление о производственной ёмкости или SLO. См. docs/operations/BACKPRESSURE_RUNBOOK.md.
Локальный корпус в настоящее время охватывает 15 исполняемых вредоносных случаев и 8 безвредных случаев. Кандидатный прогон v3.1.0 зафиксировал ноль наблюдаемых обходов и ноль ложных срабатываний для безвредных случаев в этом закреплённом корпусе. Поскольку корпус мал, его доверительный интервал широк; результат является сигналом регрессии, а не универсальным покрытием обнаружения.
Тестовый стенд приложения не выполняет фрагментацию HTTP/2, упорядочивание псевдозаголовков, дифференциалы на границах продолжения, различия парсеров сжатых тел или специфичную для входящего трафика нормализацию. nuclei-templates/waf-bypass не считается выполненным, если закреплённая ревизия не запускается против авторизованной одноразовой локальной цели и не создаёт сохранённый артефакт. См. docs/security/WAF_TESTING.md.
Управляемые ответы раскрывают X-Aegis-Request-ID, X-Aegis-Session-ID, X-Aegis-Evidence-Status, X-Aegis-Analysis-Status, а после не потокового долговечного коммита — заголовки доказательств X-Aegis-MMR-Format, X-Aegis-MMR-Leaf, X-Aegis-MMR-Proof и X-Aegis-MMR-Root. Потоковые ответы раскрывают Link на /v1/audit/proofs/{request_id} и остаются в состоянии pending-terminal до успешного аутентифицированного терминального поиска. Авторитетные записи хранятся в хранилище доказательств.
Операторам следует создавать оповещения о сбоях фиксации доказательств, сбоях синхронизации WAL, сбоях бэкенда ограничения скорости, насыщении очереди, размыкании цепи, всплесках ошибок вышестоящих систем, сбоях перезагрузки связки ключей, отсутствии перекрытия ключей, недоступности подписанта, отклонении при запуске Seccomp/LSM и сбоях проверки целостности. Сохраняйте сегменты WAL и отчёты доступными только для чтения при обработке инцидентов. Откатывайтесь к предыдущему подписанному релизу с указанием образа/дайджеста при выполнении критерия остановки.
В объединённом исходном базисе, когда доступно расширение PyO3, каждая терминальная потоковая запись также один раз добавляется во вспомогательный сегмент RustWal с CRC32-кадрированием и отображением в память по пути <AEGIS_WAL_PATH>.stream.rwal в том же вызове исполнителя, который выполняет авторитетную фиксацию журнала JSONL. Нативный сегмент ограничен 256 МиБ. Если его добавление завершается сбоем после фиксации JSONL, Aegis увеличивает счётчик aegis_native_stream_wal_errors_total, регистрирует деградацию, отключает вспомогательный сегмент для процесса и сохраняет видимый клиенту терминальный маркер, поскольку цепочка JSONL остаётся авторитетом для воспроизведения. Потоковая телеметрия также раскрывает гистограммы длительности, счётчики токенов и счётчики редактирования в ограниченных категориях без меток полезной нагрузки.
Глобальное упорядочивание аудита между репликами и многорегиональная высокая доступность не заявляются текущим релизом. Используйте руководство по масштабированию и дорожную карту как авторитетную границу.
Репозиторий разделяет микробенчмарки диспетчеризации, видимые клиенту накладные расходы прокси, задержку с учётом вышестоящих систем, пропускную способность долговечности WAL, метрики корпуса WAF и тайминги нативной криптографии. Каждое измерение должно идентифицировать рабочую нагрузку, оборудование, прогрев, количество выборок, метод процентилей, исходный артефакт и границу.
Ранее опубликованный результат 2,70 мкс является микробенчмарком фоновой диспетчеризации, а не сквозной задержкой шлюза. Пропускная способность на воркера ограничена интерпретатором, планированием цикла событий, поведением вышестоящих систем, хранилищем и топологией развёртывания. Ни одно заявление в README о «нулевой задержке», «нулевых накладных расходах», «ёмкости 10k RPS» или «1B RPM» не разрешено без нового артефакта, удовлетворяющего матрице заявлений.
Встроенный стенд потоковой передачи Phase 2 в объединённом исходном коде — benchmarks/bench_streaming_sse.py. Его сохранённое измерение рабочего дерева — evidence/commercial_phase2_streaming_benchmark.json. Он выполняет 1 000 детерминированных событий SSE за раунд и сообщает задержку первого байта, пропускную способность преобразования, максимальные отметки очереди и пиковую память tracemalloc. Он исключает задержку сети и долговечного WAL и поэтому не является результатом сквозной ёмкости.
См. docs/benchmarks/README.md, docs/BENCHMARKS.md и docs/performance/SCALING_GUIDE.md.
Процесс релиза создаёт lockfile, SBOM, результаты по зависимостям/рекомендациям, конверт происхождения, запись о прохождении релизных ворот, манифест репозитория, хеши артефактов и инструкции по откату. Политика безопасности находится в SECURITY.md; публичные средства контроля заявлений — в docs/CLAIMS_MATRIX.md. Отчёты об уязвимостях следует отправлять через приватный путь, описанный в SECURITY.md, а не через публичные комментарии к проблемам.
Репозиторий сам по себе не заявляет SOC 2, HIPAA, FedRAMP, соответствие EU AI Act, GDPR, валидацию FIPS 140 или судебную допустимость. Он предоставляет код и пути доказательств, которые организация может оценить как часть более широкой системы контроля и независимой оценки. Ссылки на фреймворки являются сопоставлениями вклада, а не сертификациями или юридическими заключениями.
Коммерческая модель намеренно поэтапная:
Гипотезы ценообразования, предположения о стоимости обслуживания, блокеры закупок и вопросы покупателей находятся в docs/COMMERCIAL_STRATEGY_US.md и docs/BUYER_GUIDE_US.md. Репозиторий не фабрикует логотипы клиентов, отзывы, цифры внедрения, покрытие поддержки или гарантии ROI.
Контроль на уровне приложения не заменяет сегментацию сети, политику межсетевого экрана, Kubernetes NetworkPolicy, облачный IAM, секрет-менеджер, неизменяемые резервные копии, тестирование аварийного восстановления или программу реагирования на инциденты. Строгие проверки при запуске доказывают настроенные предварительные условия при инициализации; они не доказывают, что внешний провайдер, файловая система, ядро, подписант или сеть остаются работоспособными бесконечно. HMAC-SHA256 является классическим и симметричным; долгоживущие или чувствительные к квантовым вычислениям доказательства требуют проверенной миграции или гибридной архитектуры. Доступность ML-DSA не эквивалентна доказательству постоянного времени, валидации FIPS 140 или сертификации.
Релиз блокируется, когда управляемый принятый ответ не имеет долговечных доказательств в объявленной тестовой области, цепочка не проходит проверку, критический случай корпуса WAF обходится, допустимая ротация ключей теряет или делает недействительной запись, эксперимент с таймингами раскрывает утечку, ворота цепочки поставок не проходят или публичная документация преувеличивает доказательства. См. docs/SECURITY_ASSURANCE_ROADMAP.md для пути внешних гарантий.
Репозиторий лицензирован на условиях, указанных в LICENSE и COMMERCIAL.md. Коммерческие варианты использования, обязательства AGPL, исключения, права на будущие версии и договорные условия требуют применимого текста лицензии и юридической проверки; этот README не является юридической консультацией.
Последний опубликованный релиз — v3.1.0. Коммит 2050a310ec295afc61d033ff842c9a535a4f3105 является объединённым исходным базисом v4.0.0 с четырнадцатью синхронизированными якорями версии 4.0.0, но остаётся неопубликованным исходным кодом: не заявляется ни тег v4, ни GitHub Release, ни пакет PyPI, ни пакет npm. Не делается заявлений о публикации OCI, статусе WORM, уровне SLSA, юридической допустимости или готовности к производству. Заявление о таймингах verify ML-DSA остаётся заблокированным, поскольку сохранённый эксперимент вернул p=0.0; слияние исходного кода или опубликованный релиз не являются доказательством того, что каждое предварительное условие развёртывания или требование внешних гарантий выполнено.
Документация использует NIST AI RMF, NIST CSF, NIST FIPS 204, W3C WCAG 2.2, CISA Secure by Design, IETF HTTP/2 и другие первоисточники в качестве справочных фреймворков. Эти источники определяют терминологию или обзорные линзы. Они не сертифицируют Aegis и не заменяют юридическую, охранную, конфиденциальную или доступностную проверку, специфичную для клиента.
| Топология | Использование | Граница доказательств | Открытый риск |
|---|
| Один процесс / один долговечный WAL | Локальная оценка и небольшие самостоятельные развёртывания | Один процесс владеет цепочкой и путём хранения | Процесс, том и хранение ключей являются едиными доменами отказа. |
| Один воркер на под | Горизонтальное масштабирование приложения с независимыми локальными пакетами | Каждый под создаёт независимо проверяемый пакет | Глобальное упорядочивание между репликами не подразумевается. |
| Три реплики с общим контролем ключей | Упражнение по ротации и отработке отказов | Каждый узел включает ID ключа и может проверить материал перекрытия | Распространение секрет-менеджера, часы, хранилище и оркестрация реплик требуют подтверждающих доказательств. |
| Централизованный писатель | Упорядоченные доказательства в рамках без сохранения состояния шлюзовых реплик | Один писатель или одобренная служба упорядочивания владеет долговечной последовательностью | Доступность писателя, поведение очереди и режимы отказов между регионами остаются архитектурной работой. |
| Пакет | Объём | Граница обещаний |
|---|
| Community / OSS | Самостоятельная оценка AGPL и использование с открытым исходным кодом | Без обещания поддержки или SLA. |
| Team / Pilot | Ограниченная по времени оценка, приближенная к производственной, с определённым объёмом | Фиксированный объём, воспроизведение доказательств, чек-лист развёртывания и явные часы поддержки. |
| Production | Коммерческое самостоятельное развёртывание, обновления и руководство по развёртыванию | Ежегодные коммерческие условия, определяемые уровнем развёртывания и запросов; без обещания неподтверждённой сертификации. |
| Enterprise | Закупки, архитектурная помощь, проверка безопасности и согласованные целевые показатели реагирования | Требуется ответственная служба поддержки, юридические условия, заявление о хранении данных и явные исключения. |
| Sovereign / OEM | Автономная работа, перераспределение, встраивание, эскроу или выделенные гарантии | Будущее предложение только после наличия ёмкости, юридической проверки и независимых гарантий. |
| Путь | Назначение |
|---|
docs/DEVELOPER_QUICKSTART.md | Клонирование, установка, запуск, тестирование и расширение репозитория без ослабления ворот доказательств. |
docs/PLATFORM_OPERATOR_GUIDE.md | Топология развёртывания, хранилище, Redis, позиция ядра, телеметрия и границы отката. |
docs/FAQ_TECHNICAL.md | Технические вопросы о жизненном цикле, семантике сбоев, WAF, таймингах и топологии. |
docs/FAQ_PROCUREMENT.md | Вопросы закупок о поддержке, лицензировании, гипотезах ценообразования и границах гарантий. |
docs/FAQ_SECURITY.md | Вопросы безопасности о FIPS, PQC, HTTP/2, WAF и цепочке поставок. |
docs/compliance/COMPLIANCE_MAPPING.md | Карта вклада фреймворков с границами оценки клиента. |
docs/privacy/DATA_RETENTION.md | Сохраняемые данные, решения о хранении, риски конфиденциальности и средства контроля оператора. |
docs/architecture/ARCHITECTURE.md | Граница системы, конечный автомат запросов и поведение топологии. |
docs/benchmarks/BENCHMARK_RESULTS.md | Канонические результаты бенчмарков v3.1.0 и команды воспроизведения. |
docs/operations/ROLLBACK_RUNBOOK.md | Процедура отката и восстановления с сохранением доказательств. |
docs/institutional/README.md | Шеститомный набор институциональной архитектуры, безопасности, эксплуатации, регулирования и обзора закупок с контролем заявлений. |
aegis/proxy/app.py | Основной жизненный цикл прокси FastAPI, контроль запросов, ворота доказательств, политика потоковой передачи, заголовки и ограниченное обогащение. |
aegis/proxy/waf.py | Прикладной WAF и конвейер нормализации. |
aegis/proxy/egress_guard.py | Канонический список разрешённых исходящих адресов и проверка конечных точек. |
aegis/core/crypto_audit.py | Канонический судебный журнал, подписи, сохранение WAL, ротация и проверка целостности. |
aegis/core/forensic_bundle.py | Ограниченный пакет доказательств JCS/DAG-CBOR, манифест CIDv1, PDF-сертификат и офлайн-верификатор. |
dashboard/ | Доступная только для чтения судебная панель Next.js и аутентифицированный BFF на стороне сервера. |
sdk/python/ и sdk/typescript/ | Подклассы официального клиента Python drop-in; обёртки TypeScript, нативные для провайдера, с одноранговыми зависимостями SDK провайдера; переносимая проверка доказательств MMR. |
benchmarks/bench_streaming_sse.py | Воспроизводимый внутрипроцессный бенчмарк преобразования SSE на 1 000+ событий. |
aegis/core/ratelimiter.py | Ограничитель разработки в памяти и ограничитель Redis с отказом при закрытии. |
aegis/core/seccomp_guard.py | Охранник возможностей и принуждения Seccomp. |
aegis/core/lsm_guard.py | Обнаружение AppArmor/SELinux и строгое утверждение. |
aegis_server/crypto/keyring.py | Версионированная связка ключей HMAC с атомарной перезагрузкой и проверкой перекрытия. |
aegis_server/ | Жизненный цикл корпоративного хранения и API соответствия. |
tests/test_p0_release_gates.py | Блокирующие регрессионные тесты P0/P1 для линии релиза v3.1.0. |
tests/test_market_hardening_gates.py | Новые ворота регрессии WAF и отказоустойчивого тестирования fsync. |
tools/benchmarks/run_backpressure_stall.py | Воспроизводимый локальный бенчмарк остановки WAL. |
tools/security/run_waf_corpus.py | Воспроизводимый локальный стенд корпуса WAF. |
tools/benchmarks/run_key_rotation.py | Локальное упражнение по атомарной ротации ключей на нескольких экземплярах. |
tools/benchmarks/run_pqc_timing.py | Нативный стенд таймингов ML-DSA с сохранением исходных выборок. |
docs/CLAIMS_MATRIX.md | Публичный статус заявлений, локатор доказательств и граница фальсификации. |
docs/architecture/ | Индекс архитектуры и записи решений. |
docs/operations/ | Руководства по обратному давлению, ротации, откату и эксплуатации. |
docs/security/ | Модель угроз, тестирование WAF, оценка PQC и дорожная карта гарантий. |
docs/benchmarks/ | Контракт измерений и правила интерпретации. |
requirements.lock | Разрешение зависимостей с проверкой хешей. |
| Аудитория | Начните здесь |
|---|
| Разработчик | docs/DEVELOPER_QUICKSTART.md, docs/REPOSITORY_MAP.md и CONTRIBUTING.md. |
| Оператор платформы | docs/PLATFORM_OPERATOR_GUIDE.md, DEPLOYMENT_GUIDE.md и эксплуатационные руководства. |
| Проверяющий безопасность | SECURITY.md, docs/security/THREAT_MODEL.md, docs/FAQ_SECURITY.md и docs/CLAIMS_MATRIX.md. |
| Покупатель и закупки | docs/PRODUCT_BRIEF_US.md, docs/BUYER_GUIDE_US.md, docs/FAQ_PROCUREMENT.md и docs/COMMERCIAL_STRATEGY_US.md. |
| Соответствие и конфиденциальность | docs/compliance/COMPLIANCE_MAPPING.md и docs/privacy/DATA_RETENTION.md. |
| Институциональный проверяющий | docs/institutional/README.md, его граф заявлений и доказательств, отчёт о неподтверждённых заявлениях и запись контроля документов. |
| Владелец релиза | CHANGELOG.md, docs/benchmarks/BENCHMARK_RESULTS.md, артефакты релиза и запись ворот. |