Skip to content

[Task] Комплексное тестирование и аудит безопасности CLI-утилиты и CI/CD Workflow #11

@soorq

Description

@soorq

Контекст

После разработки CLI для управления конфигурациями и настройки GitHub Actions необходимо провести этап "Chaos & Security Testing". Инструменты инициализации часто становятся слабым звеном: они могут допускать утечку секретов в логи, некорректно обрабатывать прерывания или создавать уязвимые конфигурации. Цель задачи — найти «дыры» в логике заполнения .env и слабые места в пайплайне сборки до того, как они попадут в продакшн-среду.


Технические требования

  • Локация логики: scripts/env-setup.ts, .github/workflows/ci.yml, tests/security/
  • Инструменты: jest, trivy (сканер образов), gitleaks (поиск секретов), shellcheck.
  • Логика работы:
    1. Тестирование CLI (Negative Testing):
      • Проверить поведение при Ctrl+C в середине процесса (не должен оставаться "битый" .env).
      • Попытка инъекции спецсимволов и bash-команд в значения переменных.
      • Проверка переполнения буфера или падения при вводе пустых строк в обязательные поля.
    2. Аудит Workflow:
      • Проверка на использование pull_request_target (риск выполнения кода из форков).
      • Поиск "Hardcoded" секретов в логах выполнения (Step Debugging).
      • Проверка прав доступа GITHUB_TOKEN (принцип минимальных привилегий).
    3. Аудит Docker:
      • Сканирование итоговых образов на наличие уязвимостей (CVE) и запуск от root.

Цель и критерии приемки (Definition of Done)

  • Функционал: CLI успешно обрабатывает некорректный ввод, не падая с unhandled exception.
  • Безопасность: Интегрирован gitleaks или trufflehog в workflow для предотвращения коммита секретов.
  • Безопасность: Внедрена проверка Docker-образов через trivy или snyk в CI.
  • Интеграция: Workflow настроен так, что он блокирует билд при обнаружении критических уязвимостей (High/Critical CVE).
  • База: Написан чек-лист/отчет по найденным пограничным случаям (Edge cases).

Важные указания

  • Производительность: Тесты безопасности не должны увеличивать время CI более чем на 2 минуты. Использовать легковесные бинарные сканеры.
  • Ошибки: CLI должен предлагать исправить некорректный формат ( например, невалидный URL базы данных) сразу, а не в конце сессии.
  • Безопасность: Проверить, что .env файлы создаются с правами доступа 600 (чтение/запись только для владельца), чтобы другие пользователи системы не могли их прочитать.

Metadata

Metadata

Assignees

Labels

devopsЗадачи, связанные с автоматизацией жизненного цикла ПОenhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions