Статический анализ кода с помощью IBM AppScan Source в облаке IBM
|Наконец большая часть рабочих вопросов закрыта, одна из сертификаций пройдена и опять появилось время. Пока оно есть — кратенько опишу опыт работы с IBM Application Security on Cloud — облачный сервис от IBM для анализа кода, так же известен как тула IBM AppScan Source, только работает на мощностях IBM и испоьзует вроде как искуственный интелект ну и по описанию самообучается.
Цена одного прогона архива с исходниками (объемы любые, а вот количество прогонов = 1) всего 204$ в самом минимальном пакете.
Для этого требуется зарегистрироваться на портале IBM, купить лицензию, дождаться письма с активацией ну и далее пошагово выполнить определенный набор действий.
Честно говоря, по сравнению с продуктом от Checkmarx — впечатления остались не очень. Для загрузки кода его необходимо «скомпилировать» с помощью костылей от IBM для которых такие себе доки и в комплекте нету доки в которой бы упоминалось про требование к наличию файла конфигурации в формате XML и его структура (google поможет!) в котором непосредственно и указывается путь к проекту для проверки.
После выполнения всех операций с регистрацией, мы успешно попадаем в кабинет пользователя IBM Application Security on Cloud и далее уже выбираем, что хотим анализировать.
В нашем случае, это будет веб приложение. Поддерживается кстати, достаточное количество языков: PHP, Java и т.д.
На следующем этапе указываем, что собираемся выполнять именно статический анализ кода:
И уже на следующем шаге система нам сообщит, что требуется скачать некое приложение. Честно говоря, когда первый раз это всё делал — даже не представлял, что нужно будет что-то качать и компилировать архив с исходниками, при планировании времени проекта это считайте очень важный момент.
Тут вот и проявляется то самое отличие продуктов, с Checkmarx проще потому, что нужно просто запаковать в ZIP архив исходники и загрузить для анализа, а тут надо что-то скачать, собрать файл конфигурации, далее запустить тулу для обработки исходников и подготовки (тоже может занять много времени, если проект очень объемный).
В моем случае версия продукта была под операционную систему Windows, обращайте на это внимание. Качается архив относительно долго, хотя весит всего около 200мб, ближе к концу заказчки скорость конкретно может упаться (у меня архив сливался где-то минут 15).
Что лежит внутри:
Нас интересует папочка «bin» — в ней лежит все нужное для старта ну и еще потребуется добавить файл конфигурации в формате XML, он должен иметь следующий вид:
<Configuration> <Targets> <Target outputs-only="true" path="D:\Projects\test\new\files\project"> </Target> </Targets> </Configuration>
Файл сохраняем в каталоге SAClientUtil (с нашей тулой вобщем) под названием appscan-config.xml (предварительно проверьте, есть ли там такой файл уже).
Параметр <Target> отвечает за указание цели, в «path» указываете путь к проекту.
Атрибут outputs-only элемента Target используется, только когда требуется сканировать каталог и настроить Client Utility для поиска только выходных файлов компоновки, таких как .jar, .war и .class. По умолчанию этому атрибуту присвоено значение false.
Это означает, что Client Utility будет вести поиск в каталоге, чтобы определить, является ли он целевым объектом, таким как сервер приложений или рабочая область Eclipse, содержит ли каталог такие объекты, как сценарии компоновки, файлы Maven .pom и файлы make.
Если нужно, чтобы целевой объект сканирования воспринимался как простой каталог и чтобы искались только файлы вывода; укажите outputs-only=»true» в элементе Target.
Далее мы идем к нашему батнику в каталоге bin под названием appscan.bat, открываем консоль и выполняем команду:
C:\SAClientUtil\bin\appscan.bat prepare -d C:\SAClientUtil -l C:\SAClientUtil -n project -c appscan-config.xml
Какой ключ в данной команде для чего нужен — можно посмотреть на скриншоте выше, либо воспользоваться командой appscan.bat help prepare и получить те же подсказки.
После этого сразу запускается процесс валидации всего, что мы выполнили и последующая компиляция архива с нашим исходным кодом, который мы далее будем загружать в облако IBM AppScan.
Файлик с исходниками загружается быстро и далее на следующем этапе вы будем запускать сканирование:
Оставляем галочку об оповещении по email т.к. это удобно и не нужно сидеть, и мониторить — когда же оно закончится.
Теперь остается только ждать. По скорости сканирования говорить сложно, всё будет зависеть от объемов проекта.
На фиональной стадии, когда сканирование закончится мы тут же получим уведомление на наш email и далее уже сможем наблюдать картину со статистикой:
Для детального изучения отчета, нужно в правом нижнем углу нажать на кнопочку загрузки и выбрать подходящий формат: либо обработанный PDF, либо в черновом виде XML, что вам больше по вкусу.
В детальном отчете в формате PDF вы уже найдете подробную информацию о всех найденых проблемах и детальное их описание с выводами трейса, а так же рекомендации и описание типов уязвимостей с примерами.
Может быть интересно: