Компания Microsoft выпустила «Microsoft Application Inspector», кросс-платформенный опенсорсный (!) инструмент для анализа исходного кода.
Application Inspector отличается от традиционных инструментов статического анализа тем, что он не пытается определить «хорошие» или «плохие» паттерны; он сообщит о том, что обнаружит, по исходному набору из более чем 500 шаблонов правил для обнаружения функций, включая функции, влияющие на безопасность, такие как использование криптографии и т.д.
Основной целью Application Inspector является систематическая и масштабируемая идентификация функций исходного кода, которых нет в других типичных статических анализаторах. Это позволяет разработчикам и специалистам по безопасности проверять предполагаемые цели компонентов, например, что используемая библиотека делает только то, что в ней декларировано.
Современные приложения в значительной степени зависят от программного обеспечения, написанного за пределами вашей компании, что сопряжено с рисками. Application Inspector может помочь определить интересные характеристики приложения, изучив исходный код, сэкономив значительное время по сравнению с "ручным" анализом.
Приложение представляет собой клиентский инструмент на основе .NET Core, поэтому оно будет работать в Windows, Linux или macOS и не требует повышенных привилегий, а также локальной базы данных, сетевых коммуникаций или телеметрии. Чтобы запустить его, просто используйте стандартную командную строку dotnet для вызова, например, dotnet ApplicationInspector.dll, если вы работаете в системе Linux или macOS или в Windows AppInspector.exe.
> dotnet AppInspector.dll or on *Windows* simply AppInspector.exe <command> <options>
Microsoft Application Inspector 1.0.17
ApplicationInspector 1.0.17
(c) Microsoft Corporation. All rights reserved
ERROR(S):
No verb selected.
analyze Inspect source directory/file/compressed file (.tgz|zip) against defined characteristics
tagdiff Compares unique tag values between two source paths
tagtest Test presence of smaller set or custom tags in source (compare or verify modes)
exporttags Export default unique rule tags to view what features may be detected
verifyrules Verify rules syntax is valid
help Display more information on a specific command
version Display version information
Вы можете добавлять/редактировать/удалять стандартные правила или шаблоны по мере необходимости. Также существует возможность добавить свои собственные правила в отдельный путь к набору по умолчанию и сохранить набор по умолчанию или исключить их с помощью параметров командной строки.
Области тестирования и применение:
- Control Flow: Dynamic Code Execution, Process Management.
- Cryptography: Encryption, Hashing, Secrets, Randomization.
- OS Operations: File System ,Environment Variables, Network Operations, User Accounts, Windows Registry.
- Data: JSON/XML, Secrets/Access Keys, Sensitive Personal Data, SQL/ORM.
- Data Handling: Object Serialization (XML/JSON), Flash, PDF, Silverlight, Audio/Video Media Use or Parsing, Bluetooth, Cellular, RPC.
- Frameworks: Development, Testing, Dependencies.
По умолчанию Application Inspector создает отчет на основе html для иллюстрации функций, сводки проекта и обнаруженных метаданных. Также поддерживаются параметры формата вывода JSON и TEXT.
Автор: Лука Сафонов