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

Обязательно посетите нашу полную страницу вики проекта по адресу https://Github.com/Microsoft/ApplicationInspector/wiki для получения дополнительной информации и помощи.
dotnet tool install --global Microsoft.CST.ApplicationInspector.CLIПодробнее в вики
appinspector analyze -s path/to/src.applicationinspector.cli.exe analyze -s path/to/srcMicrosoft 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 для получения дополнительной информации.
> 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 — это основная рабочая лошадка Application Inspector.
Это создаст файл output.html с результатами анализа в текущем каталоге, используя аргументы и правила по умолчанию.
appinspector analyze -s path/to/files
appinspector analyze -s path/to/files -f sarif -o output.sarif
Это создаст вывод в формате markdown, подходящий для сред CI, с кратким обзором ключевых функций.
appinspector analyze -s path/to/files -f markdown -o report.md
Это создаст вывод в формате 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.