Задача
Ваша задача — создать безопасный пайплайн для open-source проекта. Он должен включать в себя статический анализатор, динамический анализатор, чекеры безопасности, Security Gateway и документацию процесса.
Вы должны сами выбрать проект, для которого будет выстроен пайплайн. Платформа для организации CI/CD тоже на ваш выбор. Рекомендуем взять за основу GitLab CI/CD, GitHub Actions, CircleCI. Сервер для разворачивания даёт дипломный руководитель или методист в виде VPS.
Исходные данные
- Требования к проекту. Проект должен быть с открытым исходным кодом, представлять из себя веб-сервис или сайт с функционалом, использованием баз данных или кеша. Например, можно взять за основу Defect Dojo или CMS, Netlify-CMS.
- Требования к покрытию проекта тестами безопасности. Проект должен проверяться на наличие уязвимостей в коде. Ни один язык программирования или фреймворк не должны быть пропущены для конкретного проекта. Весь процесс должен быть задокументирован и описан с аналитикой выбора инструментов и зон роста.
Этапы проектирования
Этап 1. CI/CD
Критерии достижения:
- Настроенный пайплайн по сборке и доставке программного обеспечения.
- Использование облачных сервисов для раскатки.
- Хорошо задокументированный процесс.
Этап 2. SAST
Критерии достижения:
- Покрытие кода проверками.
- Успешные проверки во время сборки.
- Выгрузка результатов в CI или систему менеджмента уязвимостей.
Этап 3. DAST
Критерии достижения:
- Покрытие сервиса проверками.
- Успешные сканы по всем имеющимся методам.
- Выгрузка результатов в CI или систему менеджмента уязвимостей.
Этап 4. Security Checks
Критерии достижения:
- Проверка репозиториев на секреты.
- Проверка конфигурации или образов.
Этап 5. Security Gateway *
Критерии достижения:
- Имеется триггер на остановку релиза при наличии уязвимостей.
- Сделаны дополнительные триггеры - оставление комментариев в MR, выгрузка рекомендаций по исправлению уязвимостей.
Полезные материалы
- Что такое CI/CD.
- Облачные сервисы для CI/CD.
- DevSecOps.