
Un analyseur de code source conçu pour mettre en évidence des fonctionnalités intéressantes et d'autres caractéristiques afin de répondre rapidement à la question 'Qu'y a-t-il dans le code ?' en utilisant l'analyse statique avec un moteur de règles basé sur JSON. Idéal pour analyser les composants avant utilisation ou détecter les changements au niveau des fonctionnalités.
Microsoft Application Inspector est un outil de caractérisation de code source logiciel qui aide à identifier les fonctionnalités de codage de composants logiciels de première ou de tierce partie sur la base d’appels de bibliothèques/API bien connus et est utile dans des cas d’utilisation de sécurité et non liés à la sécurité. Il utilise des centaines de règles et de motifs regex pour mettre en évidence les caractéristiques intéressantes du code source afin de déterminer ce qu’est le logiciel ou ce qu’il fait à partir des opérations sur les fichiers qu’il utilise, du chiffrement, des opérations shell, des API cloud, des frameworks et plus encore. Il a reçu l’attention de l’industrie en tant que nouvelle contribution précieuse à l’OSS sur ZDNet, SecurityWeek, CSOOnline, Linux.com/news, HelpNetSecurity, Twitter et plus encore, et a été présenté pour la première fois sur Microsoft.com.
Application Inspector diffère des outils d’analyse statique traditionnels en ce qu’il ne tente pas d’identifier les motifs « bons » ou « mauvais » ; il se contente de rapporter ce qu’il trouve par rapport à un ensemble de plus de 400 motifs de règles pour la détection de fonctionnalités, y compris les fonctionnalités ayant un impact sur la sécurité telles que l’utilisation de la cryptographie et autres. Cela peut être extrêmement utile pour réduire le temps nécessaire à déterminer ce que font les composants Open Source ou autres en examinant directement le code source plutôt qu’en se fiant à une documentation limitée ou à des recommandations.
L’outil prend en charge l’analyse de divers langages de programmation, notamment C, C++, C#, Java, JavaScript, HTML, Python, Objective-C, Go, Ruby, PowerShell et plus, et peut analyser des projets avec des fichiers de langages mixtes. Il prend en charge la génération de résultats aux formats HTML, JSON et texte, le format par défaut étant un rapport HTML similaire à celui montré ici.

Consultez notre page wiki complète du projet https://Github.com/Microsoft/ApplicationInspector/wiki pour des informations supplémentaires et de l’aide.
dotnet tool install --global Microsoft.CST.ApplicationInspector.CLIVoir plus dans le wiki
appinspector analyze -s chemin/vers/src.applicationinspector.cli.exe analyze -s chemin/vers/srcMicrosoft Application Inspector vous aide à sécuriser vos applications du début au déploiement.
Choix de conception - Vous permet de choisir les composants qui répondent à vos besoins avec une empreinte plus réduite de fonctionnalités inutiles ou inconnues, afin de réduire la surface d’attaque de votre application et de vérifier les fonctionnalités attendues, par exemple uniquement de la crypto standard de l’industrie.
Identification des écarts de fonctionnalités - Détecte les changements entre les versions de composants, ce qui peut être critique pour détecter l’injection de portes dérobées.
Automatisation des contrôles de conformité de sécurité - Utilisez-le pour identifier les composants dont les fonctionnalités nécessitent un examen de sécurité supplémentaire, une approbation ou une conformité SDL dans le cadre de votre pipeline de build, ou créez un référentiel de métadonnées concernant toutes vos applications d’entreprise.
Nous disposons d’une base de règles par défaut solide pour la détection des fonctionnalités. Mais de nombreux motifs d’identification de fonctionnalités restent à définir et nous vous invitons à soumettre des idées sur ce que vous souhaitez voir ou à tenter d’en définir quelques-uns. C’est l’occasion d’avoir un impact concret sur l’écosystème open source en aidant à fournir un outil que tout le monde peut utiliser. Consultez la section Rules du wiki pour plus d’informations.
Application Inspector est en statut de diffusion GRAND PUBLIC. Vos commentaires sont importants pour nous. Si vous souhaitez contribuer, veuillez consulter le fichier CONTRIBUTING.md.
Application Inspector est disponible en tant qu’outil en ligne de commande ou package NuGet et est pris en charge sur Windows, Linux ou MacOS.
Les binaires spécifiques à la plateforme de l’interface en ligne de commande ApplicationInspector sont disponibles sur notre page de versions GitHub.
La bibliothèque C# est disponible sur NuGet sous le nom Microsoft.CST.ApplicationInspector.Commands.
L’outil global .NET est disponible sur NuGet sous le nom Microsoft.CST.ApplicationInspector.CLI.
Si vous utilisez la version .NET Core, vous devez avoir .NET 6.0 ou une version ultérieure installée. Consultez les fichiers JustRunIt.md ou Build.md pour plus d’informations.
> 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.
Pour obtenir de l’aide sur une commande spécifique, exécutez appinspector <commande> --help.
La commande d’analyse est le cheval de bataille d’Application Inspector.
Cela produira un fichier output.html de l’analyse dans le répertoire courant en utilisant les arguments et règles par défaut.
appinspector analyze -s chemin/vers/fichiers
appinspector analyze -s chemin/vers/fichiers -f sarif -o output.sarif
Cela créera une sortie Markdown adaptée aux environnements CI avec un résumé des principales fonctionnalités.
appinspector analyze -s chemin/vers/fichiers -f markdown -o report.md
Cela créera une sortie JSON nommée data.json de l’analyse dans le répertoire courant, en excluant tous les fichiers dans les dossiers test et .git à l’aide des motifs glob fournis.
appinspector analyze -s chemin/vers/fichiers -o data.json -f json -g **/tests/**,**/.git/**
Pour obtenir de l’aide supplémentaire sur l’utilisation de l’interface console, voir CLI Usage.
Pour obtenir de l’aide sur l’utilisation du package NuGet, voir NuGet Support
Voir build.md
L’utilisation de cette application est régie par la Déclaration de confidentialité de Microsoft.