Хочешь SDLC? Научись программировать!

Краткая версия доклада:

Как убедилась наша компания при покупке сканера, ни один инструмент обеспечения безопасности не работает при установке из коробки. Чтобы приложения заработали как надо, над ними нужно достаточно серьезно поработать установщикам. Купленный сканер пришлось чинить и адаптировать под специфические потребности компании. Кроме того, нам пришлось написать CI-адаптер, так как не всегда встроенные интеграции могут заработать именно для вашей системы.

После начала работы в полуручном режиме проведены многочисленные доработки, и в течение года был получен адаптированный Qiwi-SDL. Он работал по схеме: «проектирование задания – привлечение security-команды для его реализации – разработка и тестирование – регрессионное тестирование и релиз». Однако при покупке сервиса банковского процессинга для выпуска собственных карт у Qiwi и запуска микросервисов количество проектов, подлежащих тестированию, резко выросло, равно как увеличился объем информации в рассылках. Кроме того, пентесты показали в этих условиях низкую эффективность.

В связи с этим возникла идея разработать систему, которая сама бы показывала все сервера, привязанные к домену, и сама бы делала security-тесты и информировала о проблемах и уязвимостях.

Итогом реализации данной идеи стала разработка Scan Center – мультитула для SDLC. В ее основе – интеграция сканеров различного назначения и разработок, open source и проприетарных, в единый веб-сервис для выявления уязвимостей. В целом можно выделить в нем три основные сущности, каждая из которых сканируется по-отдельности, – домен (с определенным IP, end-point, состояние открытых портов и заголовков), проект (ссылка на git-репозиторий, общее состояние кода) и хост (FQDN, сервер с IP). Они объединяются в общую модель с однотипными интерфейсами сканеров/заданий, дополненные адаптерами источников данных. Нам хотелось сделать простые адаптеры для имеющегося множества сканеров. Для любого сканера можно написать небольшую реализацию на python или react, и она сможет отображаться в интерфейсе.

Через сервис Bug Bounty у нам поступает информация об уязвимостях – от необновлённых заголовков до X-frame options. В этих условиях было сделано так, что любой новый появившийся эксплойт можно «прикрутить» и прогнать по всем сервисам. Кроме основного сервиса мы разработали программу-миньон, который проверяет уязвимости выпущенных приложений.

Платформа позволяет легко интегрировать понравившиеся сканеры, в будущем она может стать open source ресурсом и ее можно будет дистрибутировать для широкого распространения.