Перейти к основному содержимому

Сценарий 14: расследование инцидента ИБ

Сценарий 14 ищет вызывающие функции, точки входа, уязвимые использования и доступные потоки данных для конкретного вопроса об инциденте.

Руководства

Сценарий 14 ищет вызывающие функции, точки входа, уязвимые использования и доступные потоки данных для конкретного вопроса об инциденте. Он помогает расследованию, но не выполняет оперативное реагирование и не закрывает инцидент.

Начните с ограниченного вопроса

Укажите CVE, уязвимую функцию, открытый endpoint или наблюдаемый путь эксплуатации. Привяжите вопрос к карточке инцидента, ревизии исходников, затронутой среде и времени наблюдения. Не передавайте секреты, учётные данные, клиентские payload или неограниченные журналы.

Для проактивной гипотезы, не связанной с активным инцидентом, используйте отдельный процесс проверки гипотез безопасности. Это не точка входа сценария 14.

Запуск отдельной CLI-команды

Воспроизводимый локальный запуск требует явного пути к CPG:

python -m src.cli security incident "<query>" --db PATH --format json

Параметр --max-depth ограничивает глубину графа вызовов. Сохраняйте вместе команду, ревизию CPG, запрос и вывод. Без --db команда завершается закрыто с сообщением security incident requires explicit --db for CPG access.

Запуск типизированного сценария AppSec

Используйте ролевой маршрут при наличии управляемой задачи AppSec и runtime-контекста:

from src.digital_employees.runtime.scenarios import (
    RoleBoundScenarioInvocationRequest,
    invoke_role_bound_scenario_request,
)

request = RoleBoundScenarioInvocationRequest(
    query="Проследи вызывающие функции и точки входа до уязвимого парсера.",
    employee_id="codegraph_appsec",
    scenario_id="scenario_14",
    event_type="appsec_start",
    context={
        "project_key": "codegraph",
        "namespace": "default",
        "task_id": "<task-id>",
        "source_refs": ["<incident-ref>", "<revision-ref>"],
        "file_paths": ["<bounded-source-path>"],
    },
)
result = invoke_role_bound_scenario_request(request)

CLI и ролевой маршрут — разные носители свидетельств. Для каждой находки фиксируйте, какой маршрут её создал.

Как читать результат

Результат помогает расставить приоритеты ручной проверки прямых и транзитивных вызовов, точек входа, уязвимых использований, путей атаки и наблюдений taint flow. Критические пути проверьте в привязанных исходниках и затронутой среде.

Рекомендации LLM или fallback — гипотезы. Пустой путь может означать неполный CPG, несовпадающий символ, малую глубину обхода или зависимость только времени выполнения, а не безопасность.

Операционные границы и полномочия

Разделяйте следующие элементы контроля:

Операционные границы и полномочия
Контроль Что доказывает сценарий 14
containment ничего; изоляция выполняется по утверждённой процедуре инцидента
remediation только рекомендации; исправление реализуется и тестируется отдельно
postmortem ничего; нужен ответственный разбор инцидента
governed closure ничего; закрытие требует всех обязательных свидетельств и полномочий

Анализ также не меняет секреты, не блокирует трафик, не развёртывает hotfix, не уведомляет участников и не разрешает раскрытие информации.

Ошибки и восстановление

  • Явная база отклонена или недоступна: остановитесь и восстановите CPG нужной ревизии.
  • Функция не найдена: проверьте точный символ, покрытие языка, точку входа и глубину обхода.
  • Результат частичный или резервный: пометьте его как предварительный и получите исходные или runtime-свидетельства.
  • Идёт активная эксплуатация или среда небезопасна: следуйте процессу командования инцидентом заказчика, не ожидая завершения анализа CodeGraph.

Контракт с исходным кодом

Статья привязана к следующим источникам:

  • src/cli/security_suite/security_commands.py — отдельная CLI-команда и обязательный путь к базе;
  • src/workflow/scenarios/security/incident.py — evidence сценария и fallback;
  • src/workflow/scenarios/security/incident_query_helpers.py — ограниченные запросы CPG;
  • src/digital_employees/runtime/scenarios/role_bound_scenario_invoker.py — типизированная маршрутизация;
  • src/digital_employees/runtime/scenarios/employee_scenario_invocation.py — владелец AppSec и политика события.

Связанные материалы