
Ein Quellcode-Analysewerkzeug, das entwickelt wurde, um interessante Merkmale und andere Eigenschaften sichtbar zu machen und die Frage 'Was ist im Code?' schnell mithilfe von statischer Analyse mit einer JSON-basierten Regelengine zu beantworten. Ideal zum Scannen von Komponenten vor der Verwendung oder zum Erkennen von Änderungen auf Feature-Ebene.
Microsoft Application Inspector ist ein Tool zur Charakterisierung von Software-Quellcode, das hilft, Codierungsmerkmale von Erst- oder Drittanbieter-Softwarekomponenten zu identifizieren, basierend auf bekannten Bibliotheks-/API-Aufrufen, und ist nützlich für Sicherheits- und Nicht-Sicherheitsanwendungsfälle. Es verwendet hunderte von Regeln und Regex-Mustern, um interessante Eigenschaften des Quellcodes aufzudecken und dabei zu helfen, was die Software ist oder was sie tut anhand der verwendeten Dateioperationen, Verschlüsselung, Shell-Operationen, Cloud-APIs, Frameworks und mehr zu bestimmen. Das Tool hat branchenweite Aufmerksamkeit als neuer und wertvoller Beitrag zu OSS auf ZDNet, SecurityWeek, CSOOnline, Linux.com/news, HelpNetSecurity, Twitter und mehr erhalten und wurde erstmals auf vorgestellt.
Application Inspector unterscheidet sich von herkömmlichen statischen Analysetools dadurch, dass es nicht versucht, "gute" oder "schlechte" Muster zu identifizieren; es berichtet einfach, was es anhand eines Satzes von über 400 Regelmustern zur Merkmalserkennung findet, einschließlich Merkmalen, die die Sicherheit beeinflussen, wie die Verwendung von Kryptographie und mehr. Dies kann äußerst hilfreich sein, um die Zeit zu reduzieren, die benötigt wird, um zu bestimmen, was Open-Source- oder andere Komponenten tun, indem man den Quellcode direkt untersucht, anstatt sich auf begrenzte Dokumentation oder Empfehlungen zu verlassen.
Das Tool unterstützt das Scannen verschiedener Programmiersprachen, darunter C, C++, C#, Java, JavaScript, HTML, Python, Objective-C, Go, Ruby, PowerShell und weitere und kann Projekte mit Dateien gemischter Sprache scannen. Es unterstützt die Generierung von Ergebnissen in HTML-, JSON- und Textausgabeformaten, wobei die Standardeinstellung ein HTML-Bericht ist, ähnlich dem hier gezeigten.

Schauen Sie sich unbedingt unsere vollständige Projekt-Wiki-Seite https://Github.com/Microsoft/ApplicationInspector/wiki für zusätzliche Informationen und Hilfe an.
dotnet tool install --global Microsoft.CST.ApplicationInspector.CLI ausWeitere Informationen im Wiki
appinspector analyze -s path/to/src.applicationinspector.cli.exe analyze -s path/to/srcMicrosoft Application Inspector hilft Ihnen, Ihre Anwendungen vom Start bis zur Bereitstellung zu sichern.
Designentscheidungen – Ermöglicht Ihnen, Komponenten auszuwählen, die Ihren Anforderungen entsprechen, mit einem kleineren Fußabdruck unnötiger oder unbekannter Funktionen, um die Angriffsfläche Ihrer Anwendung zu verkleinern, und hilft, erwartete Funktionen zu überprüfen, z. B. nur branchenübliche Kryptografie.
Erkennung von Funktionsänderungen – Erkennt Änderungen zwischen Komponentenversionen, die für die Erkennung von Backdoor-Infiltrationen entscheidend sein können.
Automatisierung von Sicherheits-Compliance-Prüfungen – Verwenden Sie es, um Komponenten mit Funktionen zu identifizieren, die zusätzliche Sicherheitsprüfungen, Genehmigungen oder SDL-Compliance erfordern, als Teil Ihrer Build-Pipeline, oder erstellen Sie ein Repository mit Metadaten zu allen Ihren Unternehmensanwendungen.
Wir haben eine solide Standardbasis von Regeln für die Erkennung von Funktionen. Aber es gibt noch viele Muster zur Identifizierung von Funktionen, die noch definiert werden müssen, und wir laden Sie ein, Ideen einzureichen, was Sie sehen möchten, oder sich selbst daran zu versuchen, einige zu definieren. Dies ist eine Chance, das Open-Source-Ökosystem buchstäblich zu beeinflussen, indem Sie ein Tool bereitstellen, das jeder nutzen kann. Weitere Informationen finden Sie im Abschnitt Regeln des Wikis.
Application Inspector befindet sich im Status der ALLGEMEINEN VERFÜGBARKEIT. Ihr Feedback ist uns wichtig. Wenn Sie Interesse an einer Mitarbeit haben, lesen Sie bitte die CONTRIBUTING.md.
Application Inspector ist als Befehlszeilentool oder NuGet-Paket verfügbar und wird unter Windows, Linux oder macOS unterstützt.
Plattformspezifische Binärdateien der ApplicationInspector CLI sind auf unserer GitHub-Releases-Seite verfügbar.
Die C#-Bibliothek ist auf NuGet als Microsoft.CST.ApplicationInspector.Commands verfügbar.
Das .NET Global Tool ist auf NuGet als Microsoft.CST.ApplicationInspector.CLI verfügbar.
Wenn Sie die .NET Core-Version verwenden, müssen Sie .NET 6.0 oder höher installiert haben. Weitere Informationen finden Sie in den Dateien JustRunIt.md oder 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.
Um Hilfe für einen bestimmten Befehl zu erhalten, führen Sie appinspector <command> --help aus.
Der Analyze-Befehl ist das Arbeitspferd von Application Inspector.
Dies erzeugt eine output.html der Analyse im aktuellen Verzeichnis unter Verwendung von Standardargumenten und -regeln.
appinspector analyze -s path/to/files
appinspector analyze -s path/to/files -f sarif -o output.sarif
Dies erzeugt eine Markdown-Ausgabe, die für CI-Umgebungen geeignet ist, mit einer Zusammenfassung der wichtigsten Funktionen.
appinspector analyze -s path/to/files -f markdown -o report.md
Dies erzeugt eine JSON-Ausgabe namens data.json der Analyse im aktuellen Verzeichnis, wobei alle Dateien in den Ordnern test und .git unter Verwendung der angegebenen Glob-Muster ausgeschlossen werden.
appinspector analyze -s path/to/files -o data.json -f json -g **/tests/**,**/.git/**
Weitere Hilfe zur Verwendung der Konsolenschnittstelle finden Sie unter CLI-Verwendung.
Hilfe zur Verwendung des NuGet-Pakets finden Sie unter NuGet-Support
Siehe build.md
Die Nutzung dieser Anwendung unterliegt der Microsoft-Datenschutzerklärung.