Skip to content

Latest commit

 

History

History
150 lines (92 loc) · 15.2 KB

File metadata and controls

150 lines (92 loc) · 15.2 KB

English | Русский

Обзор

Плагин PT Application Inspector находит уязвимости и недокументированные функции в исходном коде приложения. Он помогает разработчикам выявлять проблемы безопасности уже на ранних этапах разработки. Плагин поддерживает следующие языки: C#, Go, Java, JavaScript, Kotlin, PHP, Python, Ruby, Scala, SQL, Solidity, TypeScript, C/C++, Objective-C и Swift.

Примечание. Это альфа-версия (Preview). На данный момент реализованы основные возможности: локальное сканирование кода, визуализация найденных уязвимостей и управление их статусами (триаж). Более продвинутые функции, включая интеграцию с сервером, появятся в будущих обновлениях.

Ключевые возможности

Ключевыми возможностями плагина являются:

  • Статический анализ. Сканирование файлов решения (.sln) прямо в интерфейсе IDE Visual Studio.
  • Поиск уязвимостей. Обнаружение потенциальных угроз безопасности в коде.
  • Управление уязвимостями (триаж). Подтверждение, отклонение или исключение найденных уязвимостей.
  • Анализ зависимостей. Проверка конфигурационных файлов и сторонних компонентов на известные уязвимости.
  • Фильтрация результатов сканирования. Фильтрация найденных уязвимостей по уровню опасности, статусу и исключению из результатов сканирования.

Как это работает

Включение плагина

Вы можете включить плагин в открытом решении (Solution). Если решение открыто не в первый раз, плагин включится автоматически (история сканирования и действий сохраняется).

Чтобы включить плагин:

  1. Откройте решение или проект в Visual Studio.

    Плагин определит, что он еще не активирован для этого решения, и отобразит уведомление о возможности включения.

  2. Нажмите Включить.

    Плагин инициализируется и создаст скрытую папку .ai в корне вашего решения. В папке будут храниться локальная база данных, журналы и файл конфигурации.

Включение плагина

Установка анализатора кода

Для корректной работы плагина необходим анализатор кода PT Application Inspector. Установить его можно двумя способами:

  • Автоматически — рекомендуется, если есть доступ к интернету.
  • Вручную — используется, когда компьютер находится в закрытом контуре или имеет ограниченный доступ к интернету.

Автоматическая установка

Чтобы установить анализатор:

  1. Во всплывающем уведомлении в правом нижнем углу окна нажмите Скачать анализатор.

  2. Если вы пропустили уведомление, запустите загрузку через меню РасширенияPT Application InspectorСкачать анализатор.

  3. Дождитесь завершения загрузки и установки.

Загрузка анализатора

Ручная установка

Чтобы установить анализатор:

  1. На компьютере, имеющем доступ в интернет, скачайте архив с анализатором.

  2. На целевом компьютере откройте проводник и перейдите по пути:

    %LOCALAPPDATA%\Application Inspector Analyzer

    (обычно это: C:\Users\<Имя_Пользователя>\AppData\Local\Application Inspector Analyzer). Если папка не существует, создайте ее.

  3. Распакуйте содержимое скачанного архива в эту папку.

    Примечание. После распаковки файл AI.PluginsBackend.exe должен находиться по пути %LOCALAPPDATA%\Application Inspector Analyzer\AI.PluginsBackend.exe, а не во вложенной папке.

  4. Перезапустите Visual Studio.

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

Сканирование проекта

После включения плагина и установки анализатора окно инструментов PT Application Inspector открывается автоматически.

Запуск сканирования проекта осуществляется по кнопкам pic и pic.

Отслеживать прогресс сканирования можно на вкладке Вывод. Первое сканирование обычно занимает больше времени из-за первоначальной нагрузки на базу данных уязвимых компонентов.

Сканирование выполняется с использованием параметров, заданных по умолчанию. Эти параметры можно изменить в конфигурационном файле .aiproj.json. Чтобы открыть файл .aiproj.json, нажмите кнопку с шестеренкой.

Запуск сканирования

Анализ результатов сканирования

Список найденных уязвимостей отображается в окне Список ошибок. При двойном щелчке по нужной уязвимости в этом списке в редакторе кода подсвечивается строка с ее точкой выхода.

По нажатию на выделенный фрагмент кода в редакторе открывается окно Детали уязвимости с подробной информацией об уязвимости.

Вкладка Описание содержит описание уязвимости, примеры сценариев атаки, рекомендации по устранению уязвимости и ссылки с дополнительной справочной информацией.

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

  • Точка входа — начальная точка потока управления.
  • Точка входа данных — файл и строка кода с координатами входа данных.
  • Изменение данных — описание одной или нескольких функций, изменяющих потенциально опасные входные данные. Раздел может отсутствовать на диаграмме, если входные данные не изменяются.
  • Точка выхода — строка выполнения потенциально уязвимой функции. Это точка выхода, связанная с уязвимостью в исходном коде.
  • Лучшее место для исправления — строка кода, наиболее подходящая для исправления уязвимости. Раздел отображается перед потоком данных.

Из любого раздела диаграммы потока данных вы можете перейти в соответствующее место в редакторе кода.

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

Некоторые уязвимости имеют дополнительные условия эксплуатации, с которыми можно ознакомиться на вкладке Дополнительные условия.

Просмотр результатов и DataFlow

Работа с найденными уязвимостями

Плагин PT Application Inspector содержит набор инструментов для работы с найденными уязвимостями. С помощью этих инструментов вы можете:

  • Подтверждать и опровергать уязвимости:
    • По кнопкам Подтвердить (галочка) и Опровергнуть (крестик) в окне Детали уязвимости.
    • В контекстном меню уязвимости в окне Список ошибок.
    • В контекстном меню Быстрые действия (Alt+Enter или Ctrl+.), которое отображается рядом с выделенной уязвимостью в редакторе кода.
  • Фильтровать уязвимости по уровню опасности, статусу и исключению из результатов сканирования по кнопке Фильтр в окне инструментов PT Application Inspector.
  • Исключать уязвимости из результатов сканирования. Исключенные уязвимости по умолчанию скрыты в результатах сканирования, но их можно просмотреть с помощью фильтров.

Управление уязвимостями

Параметры плагина

Вы можете настроить параметры плагина в меню СредстваПараметрыPT Application Inspector.

Страница настройки плагина содержит следующие параметры:

  • Уровень журналирования анализатора — уровень важности, начиная с которого будут журналироваться события анализатора кода. По умолчанию — ошибка.
  • Автоматически включать расширение — автоматическая активация плагина при открытии проекта. По умолчанию параметр выключен.
  • Использовать все доступные ресурсы — использование всех доступных ресурсов оперативной памяти и процессора для увеличения скорости сканирования. По умолчанию параметр включен.
  • Максимальное количество файлов журнала — количество хранимых на жестком диске файлов журнала. По умолчанию — 100.
  • Срок хранения файлов журнала (в днях) — количество дней, по истечении которых файлы журнала автоматически удалятся. По умолчанию — 30.
  • Количество хранимых результатов сканирования — максимальное количество результатов сканирования, сохраненных в истории. По умолчанию — не ограничено. Если лимит превышен, каждый новый результат сканирования удаляет самый старый результат.

Требования

Для корректной работы плагина PT Application Inspector необходимо соблюдение следующих технических требований:

  • Microsoft Visual Studio 2022 и выше;
  • 64-разрядная версия Windows 10 или Windows 11;
  • 8 ГБ оперативной памяти;
  • 5 ГБ на жестком диске.

Заявление о конфиденциальности

По умолчанию плагин PT Application Inspector собирает анонимные данные об использовании и отправляет их нашим специалистам, чтобы они понимали, как улучшить продукт. Мы не передаем собранную информацию третьим лицам. Мы не собираем исходный код и IP-адреса.