
ApplicationInspector v1.10.1
Инструмент анализа исходного кода, предназначенный для выявления интересующих функций и других характеристик, чтобы быстро ответить на вопрос «Что в коде?» с помощью статического анализа на основе механизма правил, работающего с JSON. Идеально подходит для сканирования компонентов перед использованием или обнаружения изменений на уровне функций.
Введение
Microsoft Application Inspector — это инструмент для характеризации исходного кода программного обеспечения, который помогает определить особенности кода компонентов, созданных вами или сторонними разработчиками, на основе известных вызовов библиотек/API. Он полезен в сценариях, связанных с безопасностью и не только. Инструмент использует сотни правил и регулярных выражений для выявления интересных характеристик исходного кода, помогая определить что это за ПО или что оно делает на основе используемых файловых операций, шифрования, оболочек, облачных API, фреймворков и многого другого. Он привлёк внимание индустрии как новый и ценный вклад в мир OSS на ZDNet, SecurityWeek , CSOOnline , Linux.com/news , HelpNetSecurity, Twitter и других, и впервые был представлен на Microsoft.com.
Application Inspector отличается от традиционных инструментов статического анализа тем, что не пытается определить «хорошие» или «плохие» практики; он просто сообщает о том, что находит, используя набор из более чем 400 правил для обнаружения функций, включая функции, влияющие на безопасность, такие как использование криптографии и другое. Это может значительно сократить время, необходимое для определения того, что делает открытый исходный код или другие компоненты, путём непосредственного изучения исходного кода, а не полагаясь на ограниченную документацию или рекомендации.
Инструмент поддерживает сканирование различных языков программирования, включая C, C++, C#, Java, JavaScript, HTML, Python, Objective-C, Go, Ruby, PowerShell и другие, и может сканировать проекты с файлами на смешанных языках. Он поддерживает формирование результатов в форматах HTML, JSON и текстовом, при этом по умолчанию создаётся HTML-отчёт, похожий на показанный ниже.

Обязательно посетите нашу полную страницу вики проекта по адресу https://Github.com/Microsoft/ApplicationInspector/wiki для получения дополнительной информации и помощи.
Быстрый старт
Получить Application Inspector
.NET Tool (рекомендуется)
- Загрузите и установите .NET 6 SDK
- Выполните
dotnet tool install --global Microsoft.CST.ApplicationInspector.CLI
Подробнее в вики
Платформозависимый двоичный файл
- Загрузите Application Inspector, выбрав предварительно собранный пакет для нужной операционной системы из раздела Assets на странице релизов.
Запускать Application Inspector
- Nuget Tool:
appinspector analyze -s path/to/src. - Platform Specific:
applicationinspector.cli.exe analyze -s path/to/src
Цели
Microsoft Application Inspector помогает вам защищать ваши приложения от начала разработки до развёртывания.
Проектные решения — Позволяет выбирать компоненты, соответствующие вашим потребностям, с меньшим количеством ненужных или неизвестных функций, что уменьшает поверхность атаки вашего приложения, а также помогает проверить ожидаемые функции, например, использование только отраслевых стандартов криптографии.
Выявление различий в функциях — Обнаруживает изменения между версиями компонентов, что может быть критически важным для выявления внедрения бэкдоров.
Автоматизация проверок соответствия требованиям безопасности — Используйте для идентификации компонентов с функциями, требующими дополнительного контроля безопасности, одобрения или соблюдения SDL в рамках вашего конвейера сборки, или создайте репозиторий метаданных обо всех ваших корпоративных приложениях.
Участие
У нас есть надёжная база правил для обнаружения функций. Но многие шаблоны идентификации функций ещё не определены, и мы приглашаем вас предлагать идеи о том, что вы хотели бы видеть, или попробовать определить некоторые из них. Это возможность буквально повлиять на экосистему открытого исходного кода, предоставив инструмент, которым сможет пользоваться каждый. Смотрите раздел Правила вики для получения дополнительной информации.
Официальные релизы
Application Inspector находится в статусе GENERAL AUDIENCE. Ваши отзывы важны для нас. Если вы заинтересованы в участии, ознакомьтесь с CONTRIBUTING.md.
Application Inspector доступен в виде инструмента командной строки или пакета NuGet и поддерживается на Windows, Linux или MacOS.
Платформозависимые бинарные файлы CLI ApplicationInspector доступны на нашей странице релизов GitHub.
Библиотека C# доступна на NuGet как Microsoft.CST.ApplicationInspector.Commands .
Глобальный инструмент .NET доступен на NuGet как Microsoft.CST.ApplicationInspector.CLI.
Если вы используете версию .NET Core, вам потребуется установить .NET 6.0 или новее. Смотрите файлы JustRunIt.md или Build.md для получения дополнительной информации.
Информация об использовании CLI
> appinspector --help
ApplicationInspector.CLI 1.8.4-beta+976ee3cdd1
c Microsoft Corporation. All rights reserved.
analyze Inspect source directory/file/compressed file (.tgz|zip)
against defined characteristics
tagdiff Compares unique tag values between two source paths
exporttags Export the list of tags associated with the specified rules.
Does not scan source code.
verifyrules Verify custom rules syntax is valid
packrules Combine multiple rule files into one file for ease in
distribution
help Display more information on a specific command.
version Display version information.
Примеры:
Справка по командам
Чтобы получить справку по конкретной команде, выполните appinspector <command> --help.
Команда Analyze
Команда Analyze — это основная рабочая лошадка Application Inspector.
Простой анализ по умолчанию
Это создаст файл output.html с результатами анализа в текущем каталоге, используя аргументы и правила по умолчанию.
appinspector analyze -s path/to/files
Вывод в Sarif
appinspector analyze -s path/to/files -f sarif -o output.sarif
Вывод в Markdown
Это создаст вывод в формате markdown, подходящий для сред CI, с кратким обзором ключевых функций.
appinspector analyze -s path/to/files -f markdown -o report.md
Исключение файлов с помощью glob-шаблонов
Это создаст вывод в формате json с именем data.json в текущем каталоге, исключая все файлы в папках test
и .git с помощью указанных glob-шаблонов.
appinspector analyze -s path/to/files -o data.json -f json -g **/tests/**,**/.git/**
Дополнительная информация об использовании
Для дополнительной помощи по использованию консольного интерфейса см. Использование CLI.
Для помощи по использованию пакета NuGet см. Поддержка NuGet
Инструкции по сборке
См. build.md
Конфиденциальность
Использование данного приложения регулируется Заявлением о конфиденциальности Microsoft.