Безопасность цепочки поставок в ВКР: троянизация Trivy, Checkmarx и LiteLLM как кейс для диплома

Поддомен: Cybersecurity / DevSecOps
Роль эксперта: Специалист по информационной безопасности
Ключевые сущности: OWASP CI/CD Top 10, SLSA, ISO/IEC 27001, C4-диаграммы, OpenTelemetry, NIST SSDF

Введение: почему атака TeamPCP — идеальный материал для диплома по ИБ

19 марта 2026 года группировка TeamPCP провернула то, чего десятилетиями опасались архитекторы безопасных конвейеров: они внедрили вредоносный код прямо в подписанные релизы Trivy и GitHub Actions. Каждый запуск сканера в CI/CD превращался в кражу SSH-ключей, облачных токенов и криптокошельков. Через несколько дней аналогичная участь постигла Checkmarx KICS и LiteLLM AI Gateway на PyPI — под видом версий 1.82.7 и 1.82.8.

Для выпускника ИТ-направления это не просто новость из мира ИБ. Это готовый полигон для ВКР: живой инцидент с идентификатором CVE-2026-33634, публичной хронологией, доменами эксфильтрации (scan.aquasecurtiy[.]org, checkmarx[.]zone, models.litellm[.]cloud) и понятными мерами противодействия. Если вы ищете тему, где теория мгновенно превращается в практику, — вы по адресу.

FAQ: что чаще всего спрашивают студенты перед защитой

Можно ли взять одну статью и растянуть её на всю ВКР?

Нет, и это первая ошибка. Инцидент TeamPCP — это кейс, а не источник теории. Он отлично ложится в главу 1 как «Анализ актуальных угроз» и в главу 3 как «Валидация предложенных мер на реальном сценарии». Но каркас работы должен строиться на OWASP CI/CD Top 10, SLSA-уровнях и требованиях ГОСТ 34.601-90 к стадиям разработки.

Где брать статистику и первоисточники, кроме блога Касперского?

Ориентируйтесь на три типа источников: (1) официальные advisory — NVD, GitHub Security Advisories, Aqua Security discussion 10425; (2) отчёты вендоров — Sysdig, Aikido, StepSecurity (по червю CanisterWorm); (3) нормативные документы — NIST SP 800-218 (SSDF), OWASP Top 10 CI/CD Security Risks. Минимум 25 источников, из них 8+ — peer-reviewed или нормативные.

Как считать эффективность предлагаемых мер защиты?

Через измеримые метрики, а не «стало безопаснее». Классический набор: MTTR (mean time to remediate), доля зависимостей с pinning по SHA-хешу, процент workflow с OIDC вместо PAT, количество сработавших зизморов на 100 репозиториев, покрытие SBOM. В главе 3 покажите замеры «до/после» внедрения — с таблицами и графиками.

Нужно ли писать собственный сканер или достатчно конфигурации?

Достаточно конфигурации + обёртки. Тема ВКР по DevSecOps не требует изобретения нового сканера — она требует архитектуры безопасного пайплайна. C4-диаграмма, threat-модель по STRIDE, набор policy-as-code (например, на OPA/Conftest) и демонстрация отказа пайплайна при нарушении политики — этого хватит с запасом.

Три темы ВКР, которые защитить проще всего

Как встроить материал статьи в главы ВКР

Глава 1: теоретическая база через призму инцидента

Не пересказывайте статью — используйте её как иллюстрацию каждой теоретической модели. Например, разбирая OWASP CI/CD Top 10 (риск CICD-SEC-3: Dependency Chain Abuse), сразу покажите кейс LiteLLM 1.82.7/1.82.8. Разбирая NIST SSDF практику PS.1 «Protect All Forms of Code», приведите пример перезаписи тегов trivy-action. Такой подход демонстрирует комиссии умение связывать теорию с реальностью.

Схемы для первой главы: диаграмма последовательности UML — путь от коммита в upstream до эксфильтрации учётных данных; таблица соответствия «тактика ATT&CK → артефакт инцидента → контроль из ISO/IEC 27001».

Глава 2: проектирование защитной архитектуры

Здесь основной вес — на C4-диаграммы (контекст, контейнеры, компоненты) и BPMN-схему реагирования. Опишите пилотный контур: GitHub Enterprise → workflow validator → policy engine (OPA/Conftest) → SIEM с приёмом событий через OpenTelemetry. Отдельно опишите архитектуру threat-hunting на домены эксфильтрации — без этого статьи не хватит.

# Пример policy-as-code: запрет workflow без pinning по SHA
package github.workflow

deny[msg] {
    step := input.steps[_]
    uses := step.uses
    not re_match(`^[^@]+@[0-9a-f]{40}$`, uses)
    msg := sprintf("Шаг %s не закреплён по SHA-хешу", [uses])
}

deny[msg] {
    input.permissions.contents == "write"
    msg := "contents: write без обоснования — нарушение принципа наименьших привилегий"
}

Обязательно покажите, как этот policy встраивается в pre-commit hook и в required check на GitHub branch protection.

Глава 3: реализация и измерение эффективности

Разделите эксперимент на три сценария: (1) baseline без защит — воспроизведение атаки через подменённый tag; (2) с pinning по SHA — фиксируем блокировку; (3) с полным стеком (pinning + OIDC + policy engine + egress filter) — фиксируем блокировку на трёх уровнях. Для каждого — таблица метрик.

МетрикаBaselinePinning by SHAПолный стек
Обнаружение вредоносного шагаНетДа (на этапе CI)Да (pre-commit)
MTTD (ч)>240.50.1
Доля workflow с OIDC0%0%100%
Кол-во выявленных анти-паттернов01234
Ложноположительные срабатывания—32

Кодирование — на Python (для парсеров workflow и статистики) или Go (для CLI-обёртки). Не забудьте про unit-тесты — их наличие добавляет баллов на защите.

Чему вы научитесь, пока будете это писать

Что проверить перед сдачей

  • Все ссылки в списке литературы ведут на реальные документы (NVD, NIST, OWASP, GitHub Advisory).
  • Задачи во введении дословно совпадают с подзаголовками глав и с выводами в заключении.
  • Каждая схема подписана, пронумерована и упомянута в тексте до её размещения.
  • Метрики в главе 3 имеют единицы измерения и методику расчёта.
  • Оформление соответствует ГОСТ: поля, шрифт, интервалы, автособираемое оглавление.
  • Проверка на заимствования — не более 15% по внутреннему стандарту вуза, с корректными цитатами.
  • Приложения содержат листинги кода, скриншоты policy-срабатываний, экспорт отчётов сканера.
  • Пароли, токены и внутренние домены в приложениях замаскированы.

Типичные ошибки студентов на темах DevSecOps

1. Пересказ инцидента вместо анализа. Когда студент копирует хронологию из блога Касперского и называет это «главой 1», комиссия видит только компиляцию. Что делать: завершайте каждый подраздел глав 1 выводом «какой контроль из OWASP/NIST покрывает эту тактику».

2. Метрики «на глаз». Фразы вроде «безопасность выросла в разы» не принимаются. Опирайтесь на количественные данные: сколько workflow проверено, сколько секретов ротировано, какой MTTR зафиксирован. Ссылайтесь на инцидент TeamPCP как на контрольный сценарий — если бы у жертв был pinning по SHA, теги trivy-action не удалось бы подменить.

3. Игнорирование ложноположительных срабатываний. Policy engine без оценки FP — это демонстрация, а не система. Добавьте раздел «Оценка качества детектирования» с precision/recall.

Если тема кажется объёмной — это нормально: 120 академических часов на качественную ВКР с экспериментальной частью. Можно начать с бесплатной консультации: обсудим, какую из трёх тем лучше раскрыть под вашу кафедру, какие метрики взять за основные и как оформить нормативную базу. Помогаем с любыми темами — от DevSecOps до анализа защищённости контейнерных сред.

Материал подготовлен экспертами компании «Диплом-Эксперт». Мы помогаем студентам с 2010 года. Если вам нужна помощь в разработке темы или оформлении работы, наши специалисты готовы подсказать — от формулировки цели до финального нормоконтроля.

Последнее обновление: 2026-09-21

Источник: Троянизация решений Trivy, Checkmarx и LiteLLM | Блог Касперского (опубликовано 2026-03-25)