У Microsoft есть Application Inspector с открытым исходным кодом, инструмент, который вы можете использовать для проверки компонентов с открытым исходным кодом, прежде чем использовать их, чтобы увидеть, что они на самом деле делают и есть ли в коде какие-либо необычные или тревожные функции.
Microsoft заявляет, что Application Inspector отличается от других статических анализаторов кода, потому что вместо того, чтобы искать «плохие» (или «хорошие») шаблоны кода, он ищет «интересные» функции и метаданные, такие как криптография, подключение к удаленному объекту и платформы, на которых работает компонент.
Application Inspector изначально создавался для использования в Microsoft, когда программисты используют программное обеспечение с открытым исходным кодом. Цель состоит в том, чтобы найти в коде вещи, которые было бы трудоемко или сложно идентифицировать с помощью ручной проверки.
Разработчики Application Inspector говорят, что он предназначен для индивидуального или масштабного использования и может анализировать миллионы строк исходного кода из компонентов, созданных с использованием множества различных языков программирования. Microsoft использует Application Inspector для выявления ключевых изменений набора функций компонента с течением времени (от версии к версии), поскольку они могут указывать на что угодно — от увеличения поверхности атаки до вредоносного бэкдора. Они также используют этот инструмент для выявления компонентов с высоким риском и компонентов с неожиданными функциями, требующими дополнительной проверки. К компонентам с высоким риском относятся те, которые задействованы в таких областях, как криптография, аутентификация или десериализация, где уязвимость, вероятно, вызовет больше проблем.
Application Inspector является кроссплатформенным и может производить вывод в нескольких форматах, включая JSON и интерактивный HTML. Он поставляется с сотнями шаблонов обнаружения функций, охватывающих ряд языков программирования. Характеристики, которые хорошо поддерживаются для тестирования, включают инфраструктуры приложений, облачные и сервисные API, включая Microsoft Azure, Amazon AWS и Google Cloud. Как и следовало ожидать, платформа и криптография хорошо защищены, с поддержкой симметричного, асимметричного, хеширования и TLS. Типы данных могут быть проверены на наличие рисков, включая конфиденциальную и личную информацию. Другие проверки включают функции операционной системы, такие как идентификация платформы, файловая система, реестр и учетные записи пользователей, а также функции безопасности, такие как аутентификация и авторизация.
Инспектор приложений доступен на GitHub.