AppSec.Hub CLI
Для упрощения работы с AppSec.Hub в системе реализована автоматизация ряда рутинных задач. Для этого предлагаются специальные средства инструментальной поддержки — модули, работающие через CLI (Command Line Interface):
- scan_codebase
- scan_artifact
- scan_instance
- import_results
- import_report
По существу, такой подход реализует упрощенный способ взаимодействия через REST API системы (чтобы открыть ссылку, необходимо предварительно авторизоваться в AppSec.Hub). Рассмотрим работу с этими модулями подробнее.
Сканирование кодовых баз, артефактов и экземпляров приложений
Для сканирования кодовых баз, артефактов и экземпляров приложений используются соответственно три модуля: scan_codebase, scan_artifact и scan_instance. Модули написаны на Python и взаимодействуют с бэкендом AppSec.Hub через HTTP. Описание параметров скриптов и примеры их использования для сканирования кодовых баз, различных типов артефактов, а также экземпляров приложений приведены в Приложениях 5 и 6 соответственно.
Общий принцип работы данных модулей можно проиллюстрировать с помощью следующего примера. На рисунке ниже показан пример инженерного пайплайна для приложения с добавленными в него с помощью скриптов AppSec.Hub сканированиями безопасности SAST, SCA и DAST. Они выделены на рисунке синим цветом. В результате этой модификации инженерный пайплайн превращается в security pipeline.
Для подключения к инструментам оркестрации, таким как Jenkins или TeamCity, и встраивания проверок безопасности в инженерный пайплайн, AppSec.Hub использует фрагменты кода (code snippets) размером около 10 строк, которые можно скопировать в уже существующий инженерный пайплайн. Пример фрагмента кода, добавленного AppSec.Hub, выделен синим цветом на следующем рисунке.
Такие фрагменты кода вызывают модули scan_codebase, и/или scan_artifact, и/или scan_instance, которые подбирают и задают необходимые конфигурации security pipelines. С помощью встроенного фрагмента кода инструмент оркестрации может автоматически запустить security pipeline, настроенный в AppSec.Hub. Инструмент оркестрации запускает все инструменты разработки ПО и инструменты AST, заданные в security pipeline, и затем отправляет результаты в AppSec.Hub. В качестве практического примера использования скриптов поэтапно рассмотрим типовой процесс сканирования кодовой базы.
python3 -m src.scan_codebase \
--url http://hub.your.company.com/ \
--token ***** \
--appcode 0902202-1 \
--codebase http://git.your.company.com/test/java-web-project.git;master;;/
- AppSec.Hub находит приложение, код которого передан с помощью параметра
––appcode
, в противном случае создает новое. Более подробная информация о параметрах приведена в «Приложении 5. Параметры скриптов AppSec.Hub CLI». Общий процесс создания приложений, относящихся к приложениям кодовых баз, артефактов, экземпляров приложений и security pipelines описан в разделе «Onboarding». - AppSec.Hub находит кодовую базу, определенную параметром
--codebase
, в противном случае создает новую. - AppSec.Hub находит security pipeline для анализа кодовой базы. Если security pipeline обнаружен, AppSec.Hub запускает его, в противном случае на основе подходящего шаблона (см. раздел «Security Pipelines») создается новый security pipeline и запускается сканирование. Если подходящий шаблон не найден, генерируется сообщение об ошибке, см. раздел «Приложение 7. Результаты сканирования AppSec.Hub CLI». В таком случае следует создать соответствующий шаблон security pipeline, с использованием графического пользовательского интерфейса AppSec.Hub, см. раздел «Security Pipelines».
- После завершения сканирования осуществляется возврат результатов с учетом Quality Gates, установленных в security pipeline (см. раздел «Security Pipelines»), и в CLI отображается ссылка на результаты сканирования. После перехода по ссылке (требуется предварительная авторизация в AppSec.Hub) можно просмотреть перечень обнаруженных в ходе сканирования security issues. Эта функциональность позволяет быстро ознакомиться с проблемами безопасности, выявленными в ходе соответствующего сканирования. Кроме этого, результаты сканирования могут быть сохранены в текстовый файл, который содержит информацию о статусе сканирования и причине его присвоения, использовавшихся при этом практиках и т. д.
Импорт результатов сканирования
Также реализован механизм взаимодействия, позволяющий через REST API выполнить импорт результатов сканирования из AST инструментов, с которыми выстроена интеграция через AppSec.Hub. Такой подход удобен, когда в компании уже выстроен процесс разработки с использованием инструментов, которые поддерживает AppSec.Hub, и стоит задача передачи результатов в AppSec.Hub. При этом нет необходимости запускать сканирование, как в приведенном выше примере. В результате на стороне AppSec.Hub создаются все необходимые объекты и связи: приложения, кодовые базы, security pipelines, а также запускается импорт обнаруженных уязвимостей, проверяется соответствие QG и выполняется тегирование (если оно активировано).
Для импорта результатов используется модуль import_results. Описание параметров скрипта и примеры его использования приведены в Приложениях 5 и 6 соответственно. Описание результатов запуска модуля приведено в разделе «Приложение 7. Результаты сканирования AppSec.Hub CLI».
Импорт отчетов
Для импорта информации о проблемах безопасности в формате AppSec.Hub из инструментов, не имеющих интеграции с AppSec.Hub, предусмотрена возможность загрузки отчетов.
Отчеты могут загружаться как через пользовательский интерфейс, так и с использованием CLI с помощью модуля import_report, см. детали в разделе «Импорт отчетов о проблемах безопасности».
Прежде чем приступить к импорту отчетов, в AppSecHub следует указать имена инструментов, отчеты которых будут импортироваться, см. детали в разделе «Добавление имен инструментов».
Описание параметров скрипта import_report и примеры его использования приведены в Приложениях 5 и 6 соответственно.