В декабре мне было достаточно повезло посещать Devenccon 2019 в Лондоне через работу и имел взрыв. Это была моя первая неязычная/рамочная конференция, и это было действительно интересно, увидев разнообразие тем, которые были в повестке дня.
Мой любимый сеанс, хотя был Обеспечение сахара из Azure DevOps Удан Колин Домни Веракоде. Меня не использовали лазурные трубопроводы, прежде чем многие из них были, чтобы я просто привык к системе ACL, и получать базовый трубопровод вместе, и слышать Colin говорить о некоторых возможностях, которые они исследовали в отношении различных практик безопасности в CI/CD трубопроводы. Я взял заметки и подумал, что поделюсь на некоторые из них здесь.
Наши две цели должны сдвигаться влево, насколько это возможно (плохие новости не стареют хорошо) и автоматизируют абсолютно все, что мы можем (ничего не делать вручную).
Проверка секретов
Public GitHUB REPOS постоянно сканируется на учетные данные, и я лично совершил несколько самих, только чтобы иметь свой счет мой (друг, извините Крис) для некоторого обслуживания заблокирован из-за этого. Мы можем использовать инструмент, похожий на Trufflhog В нашем предварительно совершающем крючок, чтобы убедиться, что мы не совершили ничего личного. Конечно, наши. Гитигниты должны быть проверены и могут пройти через ручное одобрение для изменений.
Гитоппсы: толкать все вещи
Кратко коснулись в этой сессии, но что-то, что я поднял на другом встрече DEVSEC, был концепция гитапса или инфраструктуры — как-код, взятый в крайность. Чем больше мы определили как код в наших репозиториях, тем больше мы можем мгновенно и легко проверять и проверять ранее в процессе. То же самое касается использования услуг, которые имеют хорошие API — если мы можем вытащить конфигурацию VPC из AWS CLI и проверяйте, что только эти порты открыты, отлично!
На тему секретов, один инструмент, с которым я не играл, но получил почетное упоминание было AGWA/GIT-Crypt которые используют файл .git-crypt, настраивают, какие файлы должны быть прозрачно зашифрованы на коммитах, и расшифровываются на оформлении заказа. Действительно крутая концепция, означающая, что наши Devs могут разрабатывать и толкать секреты приложений, как другие файлы, и они будут зашифрованы в нашем репозитории, оставаясь таким образом, если у вас нет ключа!
Сканирование с открытым исходным кодом
Сделано до смерти, но необходимо. Это инструменты, которые проверяют версии любых компонентов с открытым исходным кодом, которые мы используем, и если обнаружена подпись, содержащая уязвимостей, мы останавливаем сборку. Они широко попадают в категории сканеров изображений, таких как Docker/Docker-Stone-Security и проверки зависимости, такие как OwaPP Checker Checker Отказ
Клянусь, есть еще один поглощение аккаунтов NPM/Github/X или артикул злой впрыскивания Hackernews каждую неделю. Мы хотим максимально использовать интеллект по источникам сообщества, и это отличный источник этого.
Тестирование безопасности приложений (SAST)
Я был недавно спросил, как бы проделал в среду, где ваша компания не может просто бросать деньги в эту проблему, и я не был потерян. Мне не пришло не было, что бюджет был заботой о некоторых киберфартах, и я смогут вместе, отвечаю на альтернативы с открытым исходным кодом, чтобы укрепить и CheckMarx, делая записку, чтобы посмотреть на эту сцену. Сильно в зависимости от языка, некоторые Соперники было бы:
- Иди: Securego/Gosec.
- Java: Find-Sec-Bugs
- Python: бандит
- PHP: Разрывает
- JS: ??
Он не говорит, но мы должны сильно сосредоточиться на философии на основе модулей в нашем разработке программного обеспечения по многим причинам, и ваш стек SAST находится там, чтобы поймать влево-овер.
Динамическое тестирование безопасности приложений (отличие)
У моей компании у нас есть удивительная вспомогательная команда, время которой забронировано за каждое значительное освобождение проекта, если только член команды SEC предварительно не одобряет изменение. Эти инструменты, как правило, будут включать в себя спинтующую контейнер с версией приложения и автоматизации атак на нее, незвательный ввод или поиск изменений в ответах маршрута от предыдущих сканов.
Функциональные тесты могут быть подготовлены разработчиками и интегрированы в их CI/CD — они знают свой код наилучшим образом и могут защитить от обычных атак рано. Конечно, мы не хотим предполагать, что они добавили чек на то, что они могут не иметь, поэтому возвращаясь к проблеме ресурсов, мы можем пойти на некоторые способы с такими решениями, как:
Коммерческий или открытый источник, мы широко у нас три стратегии для добавления SAST/DAST в CI/CD:
- Синхронный — На построении мы запустим наш инструмент и просто жду его закончить. Это здорово, потому что мы можем потерпеть неудачу или преуспевать нашу сборку на задней части результатов, но не отлично, если наш инструмент занимает час и мы хотим выпустить несколько раз в день
- Асинхронный — На построении мы выбиваем наш инструмент в другом процессе и продолжаю постройку. В случае неудачи мы отступим сборку (в зависимости от инструмента CI/CD), как не удалось, и отката от выхода до последней стабильной сборки.
- Смешанный — Мы выбираем немного баланса двух, потенциально запущенных файлов анализа или более быстрых инструментов внутриполосных и более медленных инструментов вне полосы.
Управление секретами
Работав вокруг защиты данных и прикладной криптографии за последние 2 года, я люблю разговаривать с тем, кто будет слушать приложения Hashicorp Vault или AWS KMS или Azure Key Vault Отказ Эти решения позволяют нам обернуть все наши тайны приложений в центральном сервисе, облачно или самостоятельно, что мы можем максимально безопасны и контролировать доступ к. Мы можем обеспечить обеспечение минимальной ключевой длины и требовать TLS, поддержав фактическую ACL для наших секретов, а также статистики записи на запись. Есть много причин, по которым мы должны использовать, по крайней мере, некоторые двигатели хранилища Hashicorp, лично моему любимым случаем использования я слышал, имеет ультрадовые сертификаты TLS, снижая условия действия до нескольких минут. Если услуга все еще соответствует критериям, он делает новый запрос на хранилище, где подписан новый сертификат и возвращается, и приложение начинает служить его. Удивительный!
Также есть плагины секретов для большинства самостоятельных решений CI/CD, включая Дженкинс учетные данные , GOCD-файловые секреты и Concourseci Управление учетными данными Отказ
Спасибо снова в Колин, а для организаторов — это было отличное событие И я бы хотел присутствовать снова в 2020 году.
Оригинал: «https://dev.to/psedge/devseccon-2019-ci-cd-write-up-k51»