Обзор PT Application Inspector 4.0, инструмента для поиска уязвимостей в софте


Обзор PT Application Inspector 4.0, инструмента для поиска уязвимостей в софте

Безопасная разработка невозможна без анализа исходного кода. PT Application Inspector позволяет обнаруживать уязвимости и признаки недекларированных возможностей в приложениях. PT Application Inspector анализирует исходный код или готовое приложение, комбинируя статические (SAST), динамические (DAST) и интерактивные (IAST) методы.

Сертификат AM Test Lab

Номер сертификата: 390

Дата выдачи: 30.07.2022

Срок действия: 30.07.2027

Реестр сертифицированных продуктов »

  1. Введение
  2. Функциональные возможности PT Application Inspector
  3. Архитектура PT Application Inspector
  4. Системные требования и развёртывание PT Application Inspector
    1. 4.1. Лицензирование
  5. Применение PT Application Inspector
    1. 5.1. Основные функции интерфейса PT Application Inspector
    2. 5.2. Работа с проектом сканирования
    3. 5.3. Работа с обнаруженными уязвимостями
  6. Выводы

Введение

В любой компании есть приложения, эксплуатация уязвимостей в которых является недопустимым с точки зрения бизнеса событием. Согласно исследованию компании Positive Technologies «Уязвимости и угрозы веб-приложений в 2020-2021 гг.», 17 % от общего числа атак пришлось на эксплуатацию брешей и недостатков защиты веб-приложений. Хакеры могут эксплуатировать уязвимости на разных этапах атаки. В этом случае безопасность кода является очевидным приоритетом для бизнеса. Кроме того, даже если взломанное приложение не представляет прямого интереса для хакера, оно вполне может стать платформой для последующих атак на смежные системы.

Ручной анализ кода на наличие в нём уязвимостей применим на небольших фрагментах, но невозможен в условиях современной промышленной разработки. Многих проблем с безопасностью кода можно избежать ещё на стадии его написания, если уделять этому внимание — например, использовать сканеры уязвимостей кода SAST, интегрированные в конвейер разработки продуктов, или так называемые blackbox-сканеры DAST.

Многие эксперты по ИБ отмечают, что внедрение инструментов SAST сопряжено с рядом сложностей, которые затрудняют широкое применение средств этого класса. К примеру, статический сканер даёт большое количество ложноположительных срабатываний. Разработчикам приходится тратить огромное количество времени на сортировку результатов и вручную проверять фрагменты кода, которые сканер ошибочно, как впоследствии может выясниться, посчитал уязвимыми. Снизить трудозатраты на обработку результатов анализа кода, сократить время на устранение уязвимостей и, следовательно, повысить реальную безопасность приложений позволит тот SAST, который с наибольшей точностью обнаруживает по-настоящему уязвимые места.

Ранее мы уже касались этой темы, например, в обзорах «Разработка безопасных приложений. Часть 1. Обзор рынка SAST 2021» и «Разработка безопасных приложений. Часть 2. Обзор рынка DAST 2021». Сегодня мы сфокусируем внимание на новой версии универсального инструмента для поиска уязвимостей в приложениях PT Application Inspector 4.0.

Функциональные возможности PT Application Inspector

PT Application Inspector позволяет автоматизировать поиск уязвимостей и признаков недокументированных возможностей (НДВ) в рамках жизненного цикла безопасной разработки. В основе функций продукта лежат методы, которые объединяют достоинства статического, динамического и интерактивного подходов к анализу:

  • Статический анализ (SAST), называемый также «тестирование белого ящика», находит уязвимости в исходном коде без его фактического выполнения.
  • Динамический анализ (DAST) проверяет готовую программу, обнаруживает уязвимости и слабые места в работающем приложении. Также известен как «тестирование чёрного ящика».
  • Интерактивный анализ (IAST) реализуется в виде комбинации SAST и DAST.
  • Анализ сторонних компонентов (SCA) выявляет уязвимости в чужом коде, например опенсорс-библиотеках.

Среди ключевых возможностей продукта можно выделить анализ кода на ранних стадиях разработки, повышение качества анализа за счёт частичного исполнения кода (позволяет проверять возможность эксплуатации вектора атаки для конкретного потенциально опасного кода), автоматическую генерацию HTTP-запроса (эксплойта). Эксплойт позволяет проверить найденную уязвимость на развёрнутом приложении. 

Отметим также гибкую интеграцию с межсетевым экраном прикладного уровня через формирование правил, препятствующих эксплуатации обнаруженных уязвимостей (виртуальный патчинг), сканирование запущенного веб-приложения методом «чёрного ящика» на тестовом стенде. Сканер анализирует динамические скрипты, формы, параметры, заголовки и прочие входные точки, через которые данные попадают внутрь системы и оказывают негативное воздействие на неё.

Продукт поддерживает пользовательские правила и шаблоны поиска, предназначенные для выявления конструкций со специфичной бизнес-логикой или с признаками НДВ, определяет оптимальное место для исправления уязвимости в коде, собирает статистические данные о результатах сканирования и найденных уязвимостях. Возможны создание задач в Atlassian Jira на исправление обнаруженных при сканировании брешей и интеграция в CI/CD.

PT Application Inspector 4.0 поддерживает языки Java, PHP, C#, VB.NET, JavaScript, Python, Kotlin, Go, C / C++, Objective C, Swift, SQL (T SQL, PL/SQL, MySQL), TypeScript.

Продукт обеспечивает классификацию выявленных уязвимостей в соответствии с категориями, определёнными в следующих документах и классификаторах:

  • OWASP Top 10 2017 / Mobile Top 10 2016.
  • PCI DSS 3.2.
  • SANS Top 25.
  • NIST 800-53 (ревизия 4).
  • Common Vulnerabilities and Exposures (CVE).
  • Common Weakness Enumeration (CWE).

Архитектура PT Application Inspector

PT Application Inspector состоит из трёх отдельно устанавливаемых модулей:

  • PT Application Inspector Server — предоставляет другим модулям и веб-интерфейсу доступ к данным в PT Application Inspector 4.0, управляет этими данными.
  • PT Application Inspector Agent — проверяет исходный код на наличие уязвимостей и передаёт результаты сканирования модулю PT Application Inspector Enterprise Server.
  • PT Application Inspector Shell Agent — выполняет функции настройки проектов, добавления задач анализа в очередь и получения отчётов по завершении сканирования.

Рисунок 1. Архитектура PT Application Inspector

Архитектура PT Application Inspector

 

PT Application Inspector может быть встроен в процесс непрерывной интеграции, реализованный на базе CI/CD-решений Jenkins, TeamCity, TFS, GitLab CI, Azure, что позволяет проверять код на наличие уязвимостей в процессе сборки приложения начиная с самых ранних стадий разработки.

Новая версия продукта поддерживает интеграцию с IDE JetBrains, Visual Studio Code, системами контроля версий на базе ПО Git, TFS, Subversion, Mercurial, GitHub, Bitbucket, Rational Clearcase, а также с системами отслеживания дефектов Jira.

В PT Application Inspector реализована ролевая модель доступа (администратор, аудитор, менеджер безопасности). Каждый пользователь имеет соответствующий его роли уровень доступа к данным и взаимодействует с продуктом с учётом специфики этой роли.

Системные требования и развёртывание PT Application Inspector

PT Application Inspector Enterprise Server должен быть установлен на отдельном физическом или виртуальном сервере. PT Application Inspector Enterprise Agent также рекомендуется разворачивать на отдельных компьютерах, чтобы ресурсоёмкий анализ кода, выполняемый агентом, не снижал скорость работы с пользовательским интерфейсом.

Серверная часть поддерживает многопользовательский режим и работу нескольких агентов сканирования. Увеличение числа установленных модулей Enterprise Agent позволяет одновременно сканировать несколько проектов.

У PT Application Inspector есть REST API, пригодный для интеграции со внешними системами. Примерами такой интеграции могут служить плагины. Например, AI.Shell может быть развёрнут на CI-агенте и использоваться для передачи исходного кода на сервер, запуска сканирования и обработки полученных результатов.

Лицензирование

Сканирование в PT Application Inspector осуществляется только при наличии действующей лицензии. Стандартный срок её действия — один год. По завершении срока действия лицензии активное сканирование останавливается, создание нового проекта и перезапуск завершённого сканирования становятся недоступными. При этом можно полноценно работать с полученными ранее результатами сканирований.

Лицензии PT Application Inspector различаются количеством агентов и набором включённых языков программирования для сканирования проектов. Если язык приложения не поддерживается лицензией, в интерфейсе отображается соответствующее сообщение.

При этом в продукте нет ограничений по количеству проектов или строк кода.

Применение PT Application Inspector

Основные функции интерфейса PT Application Inspector

Работа с продуктом начинается с авторизации. В веб-браузере необходимо набрать URL сервера PT Application Inspector для перехода на стартовую страницу. Для доступа в систему понадобится ввести логин и пароль.

 

Рисунок 2. Авторизация в PT Application Inspector

Авторизация в PT Application Inspector

 

По умолчанию после входа в веб-интерфейс пользователь попадает в раздел «Проекты». В рабочей области раздела «Проекты» отображается перечень доступных пользователю проектов. Можно запустить не только полное сканирование, но и инкрементальное, когда агент учитывает результаты предыдущих проверок, что сокращает время. Кроме того, есть возможность сформировать отчёт о проведённом сканировании. Доступны функциональные возможности виртуального патчинга: можно получить XML-файл отчёта об обнаруженных уязвимостях для импорта в PT Application Firewall.

 

Рисунок 3. Раздел «Проекты» в PT Application Inspector

Раздел «Проекты» в PT Application Inspector

 

Раздел «Статистика» представляет собой панель мониторинга (дашборд). Здесь можно увидеть текущий уровень угрозы и общее количество уязвимостей в проектах с распределением по уровням опасности, общее количество проектов с распределением по статусам, а также график динамики числа уязвимостей в проектах за указанный период с фильтрацией по уровням опасности.

 

Рисунок 4. Раздел «Статистика» в PT Application Inspector

Раздел «Статистика» в PT Application Inspector

 

При наличии нужных полномочий доступен раздел «Администрирование». Его функциональность позволяет задать необходимые системные настройки в PT Application Inspector, а также назначить пользователей с глобальными и проектными ролями, просмотреть очереди сканирования и настроить агенты.

 

Рисунок 5. Раздел «Администрирование» в PT Application Inspector

Раздел «Администрирование» в PT Application Inspector

 

В разделе «О программе» можно узнать номер версии PT Application Inspector, дату последнего обновления, срок действия лицензии и набор включённых в неё языков программирования.

 

Рисунок 6. Раздел «О программе» в PT Application Inspector

Раздел «О программе» в PT Application Inspector

 

Работа с проектом сканирования

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

 

Рисунок 7. Настройки параметров проекта в PT Application Inspector

Настройки параметров проекта в PT Application Inspector

 

Кроме того, можно запускать сканирование на агенте сборки вручную.

 

Рисунок 8. Примеры обнаруженных уязвимостей

Примеры обнаруженных уязвимостей

 

Каждый элемент списка уязвимостей содержит тип бреши, строку с уязвимым кодом, относительный путь к файлу и идентификатор уязвимости. Последний уникален в рамках одного проекта и позволяет быстро находить в результатах сканирования и в отчётах упоминания о выявленных изъянах.

 

Рисунок 9. Примеры обнаруженных уязвимостей

Примеры обнаруженных уязвимостей

 

Результаты сканирования отображаются на странице проекта. При этом в левой части выводятся статистика сканирования и список найденных уязвимостей, а в в правой — детальная информация об уязвимости, которая выбрана в списке слева.

Работа с обнаруженными уязвимостями

В продукте реализован набор инструментов для работы с обнаруженными уязвимостями. Можно изменять их статус, фильтровать, группировать, сортировать и выполнять поиск. Допустим, после сканирования обнаружено около 500 уязвимостей, исправление которых займёт более двух недель. Фильтры позволят выделить наиболее опасные уязвимости — например, те, которые имеют статус «Высокий» и «Средний».

Если в параметрах проекта настроена интеграция с Jira, то по завершении сканирования проекта можно также создавать задачи на исправление уязвимостей.

В PT Application Inspector 4.0 также есть возможность исключать найденные или известные уязвимости из результатов сканирования, добавляя комментарий «ptai:suppress» в исходный код приложения.

 

Рисунок 10. Исключение обнаруженных уязвимостей из результатов сканирования в PT Application Inspector

Исключение обнаруженных уязвимостей из результатов сканирования в PT Application Inspector

 

Продукт умеет создавать различные типы отчётов:

  • Отчёт по результатам сканирования. Отображает уязвимости по уровням опасности и типам, а также показывает бреши из списка десяти самых опасных уязвимостей в веб-приложениях по версии OWASP.
  • Отчёт по результатам автоматической проверки.
  • Отчёт OWASP Top 10 2017. Отображает бреши из списка десяти самых опасных уязвимостей в веб-приложениях по версии OWASP.
  • Отчёт PCI DSS 3.2. Отображает оценку выполнения требований предписываемых стандартом безопасности данных индустрии платёжных карт (PCI DSS) в организации.
  • Отчёт NIST 800-53 Rev. 4. Представляет оценку выполнения мер по обеспечению безопасности и приватности для федеральных информационных систем и организаций США.
  • Отчёт SANS Top 25. Отображает бреши из списка двадцати пяти самых опасных уязвимостей в приложениях по версии SANS.
  • Отчёт OWASP Mobile Top 10 2016. Отображает уязвимости из списка десяти самых опасных брешей в мобильных приложениях по версии OWASP.
  • Отчёт ОУД4 (ГОСТ 15408-3). Отображает результаты анализа уязвимостей в соответствии с оценочным уровнем доверия 4 (ОУД4) из ГОСТ 15408-3. В состав мер доверия по ОУД4 входит компонент AVA_VAN.3, определяющий набор действий по анализу уязвимостей в проекте. PT Application Inspector Enterprise Edition позволяет автоматизировать процесс такого анализа. Затем можно сформировать соответствующий отчёт.

Выводы

Наличие ошибок, уязвимостей и закладок в разрабатываемом приложении несёт в себе серьёзные риски для информационной безопасности. Использование PT Application Inspector позволяет существенно снизить эти риски и контролировать качество разработки без привлечения внешних экспертов. Продукт гибко встраивается в процессы DevSecOps: разработчики могут писать безопасный код, своевременно устраняя уязвимости в нём, а ИБ-менеджеры — контролировать этот процесс.

PT Application Inspector имеет всю необходимую функциональность для выявления уязвимостей и ошибок в приложениях любого масштаба и специфики с помощью ключевых методов анализа, включая статический. При этом в отличие от других представленных на рынке статических сканеров продукт Positive Technologies обладает дополнительным инструментом для автоматического подтверждения уязвимостей, которые тысячами выявляются при сканировании. Используя технологию статического анализа кода — абстрактную интерпретацию, — PT Application Inspector создаёт безопасные эксплойты, позволяющие проверить возможность эксплуатации каждой уязвимости. Это решает главную проблему с точностью обнаружения уязвимых фрагментов кода, свойственную всем без исключения инструментам SAST, и позволяет специалистам по ИБ и разработчикам сосредоточиться на исправлении уязвимостей представляющих реальную опасность, а не тратить силы и время на работу с ложными срабатываниями.

PT Application Inspector является отечественным продуктом. Новая версия поддерживает установку серверной части на Linux и в контейнеры Docker, что снижает стоимость владения системой, т. к. нет потребности в закупке Windows.

Удобный и полностью русскоязычный веб-интерфейс в новой версии продукта позволяет работать с проектом без установки дополнительных консолей на рабочее место.

Достоинства:

  • Поддержка анализа веб-приложений.
  • Широкий набор поддерживаемых государственных стандартов.
  • Использование базы уязвимостей веб-приложений WASC и классификатора CWE; возможность поиска программных закладок, виртуальный патчинг.
  • Применение технологии «тонкий клиент» (используется веб-интерфейс) позволяет проводить совместный аудит кода силами нескольких экспертов.
  • Поддерживает установку серверной части на Linux и в контейнеры Docker.
  • Единственный отечественный продукт с функциями DAST (сканирование методом «чёрного ящика»).
  • Полностью русскоязычный интерфейс, описания уязвимостей и документация на русском языке, наличие сертификата ФСТЭК России.
  • Прозрачная и простая система лицензирования (по количеству языков и агентов).

Недостатки:

  • Когда исходный код недоступен, отсутствует возможность восстанавливать исходный код приложений из рабочего файла с использованием технологии декомпиляции (обратной инженерии).

Реестр сертифицированных продуктов »

Записаться на демонстрацию

Нажимая "Запросить", вы соглашаетесь с Политикой конфиденциальности и обработки персональных данных нашей компании

Запросить пробную версию

Нажимая "Получить", вы соглашаетесь с Политикой конфиденциальности и обработки персональных данных нашей компании

Запросить цены

Нажимая "Отправить", вы соглашаетесь с Политикой конфиденциальности и обработки персональных данных нашей компании

Задать вопрос

Нажимая "Задать", вы соглашаетесь с Политикой конфиденциальности и обработки персональных данных нашей компании

Anti-Malware Яндекс ДзенПодписывайтесь на канал "Anti-Malware" в Telegram, чтобы первыми узнавать о новостях и наших эксклюзивных материалах по информационной безопасности.
Лаборатория AM Test Lab готова провести независимую экспертизу и добровольную сертификацию любого продукта или сервиса по информационной безопасности и подготовить его профессиональный обзор. Для получения дополнительной информации необходимо оформить запрос.