AI assisted vulnerability governance
Авторская схема Virusologia: facts, policy, validators, QA и signed report.
Коротко: Полезный AI-паттерн - не автономия без тормозов. Это более быстрый reasoning внутри системы, где policy, validators, quality evidence и QA остаются отдельными gates.

Проблема

Security-команды хотят AI, потому что vulnerability queue слишком велика, а темп атак растет. Но privileged agent внутри code, CI/CD или infrastructure становится новой attack surface, если его permissions, memory и tools не ограничены.

Самая слабая реализация дает модели raw secrets, позволяет следовать недоверенным repository instructions, выполнять широкие команды и писать authoritative findings. Это не AI-assisted security, а неконтролируемая граница automation.

Решение

Сначала собирайте redacted fact-pack: scope, assets, signals, hashes, coverage, tool state и прошлые QA decisions. Модель видит facts, а не secrets. На выходе только schema-valid JSON с hypotheses, gaps и recommended allowed techniques.

Execution остается за trusted adapters. Finding появляется только после deterministic validation, evidence digest, affected asset, reproduction notes и quality review.

Что проверить руками

  • Удаляются ли raw cookies, tokens, PII и secrets до model call.
  • Может ли модель запросить только cataloged techniques с объявленными side effects.
  • Может ли prompt injection внутри repository, web page или report изменить policy.
  • Ведет ли AI outage к deterministic degraded mode, а не к небезопасным shortcuts.

Безопасный пример

Небольшой schema gate, который блокирует model output, если он пытается создать finding без evidence.

def validate_ai_review(review: dict) -> None:
    allowed = {"hypotheses", "coverage_gaps", "recommendations"}
    unexpected = set(review) - allowed
    if unexpected:
        raise ValueError(f"unexpected fields: {sorted(unexpected)}")

    for hypothesis in review.get("hypotheses", []):
        if "technique_id" not in hypothesis:
            raise ValueError("hypothesis missing technique_id")
        if hypothesis.get("creates_finding"):
            raise ValueError("AI may not create findings directly")

    for item in review.get("recommendations", []):
        if item.get("requires_secret_access"):
            raise ValueError("model recommendation requests secret access")

Критерий ретеста

  • Prompt-injection fixtures не могут изменить policy, scope или allowed technique catalog.
  • Invalid model JSON отклоняется и создает видимое degraded-mode event.
  • Каждый confirmed finding имеет validator proof и evidence ID независимо от текста модели.
Первичные материалы

Материал написан Virusologia с нуля как авторская инженерная интерпретация. Факты сверены по первичным публикациям; формулировки и практические выводы не копируют источники.

Этическая рамка

Материал предназначен для defensive engineering, vulnerability management и разрешенной security-работы. Он не содержит bypass-инструкций или техник несанкционированного доступа.