
Un analizzatore di codice sorgente progettato per evidenziare caratteristiche di interesse e altre proprietà per rispondere rapidamente alla domanda 'Cosa c'è nel codice?' utilizzando l'analisi statica con un motore di regole basato su JSON. Ideale per scansionare componenti prima dell'uso o per rilevare cambiamenti a livello di funzionalità.
Microsoft Application Inspector è uno strumento di caratterizzazione del codice sorgente software che aiuta a identificare le caratteristiche di codifica di componenti software di prima o terze parti basate su chiamate API/librerie ben note ed è utile in casi d'uso di sicurezza e non. Utilizza centinaia di regole e pattern regex per far emergere caratteristiche interessanti del codice sorgente, aiutando a determinare cosa è il software o cosa fa in base alle operazioni sui file che utilizza, crittografia, operazioni shell, API cloud, framework e altro. Ha ricevuto l'attenzione del settore come un contributo nuovo e prezioso per l'OSS su ZDNet, SecurityWeek, CSOOnline, Linux.com/news, HelpNetSecurity, Twitter e altro, ed è stato presentato per la prima volta su Microsoft.com.
Application Inspector è diverso dai tradizionali strumenti di analisi statica in quanto non tenta di identificare pattern "buoni" o "cattivi"; si limita a riportare ciò che trova rispetto a un insieme di oltre 400 pattern di regole per il rilevamento delle funzionalità, comprese funzionalità che influiscono sulla sicurezza come l'uso della crittografia e altro. Questo può essere estremamente utile per ridurre il tempo necessario a determinare cosa fanno i componenti Open Source o altri, esaminando direttamente il codice sorgente anziché fare affidamento su documentazione o raccomandazioni limitate.
Lo strumento supporta la scansione di vari linguaggi di programmazione tra cui C, C++, C#, Java, JavaScript, HTML, Python, Objective-C, Go, Ruby, PowerShell e altro e può scansionare progetti con file in linguaggi misti. Supporta la generazione di risultati in formato HTML, JSON e testo, con il default che è un report HTML simile a quello mostrato qui.

Assicurati di vedere la pagina wiki completa del progetto https://Github.com/Microsoft/ApplicationInspector/wiki per ulteriori informazioni e aiuto.
dotnet tool install --global Microsoft.CST.ApplicationInspector.CLIVedi maggiori informazioni nella wiki
appinspector analyze -s path/to/src.applicationinspector.cli.exe analyze -s path/to/srcMicrosoft Application Inspector ti aiuta a proteggere le tue applicazioni dall'inizio alla distribuzione.
Scelte di Progettazione - Ti permette di scegliere quali componenti soddisfano le tue esigenze con una minore presenza di funzionalità non necessarie o sconosciute per mantenere più piccola la superficie di attacco della tua applicazione e aiutare a verificare quelle attese, ad esempio solo crittografia standard di settore.
Identificare i Delta di Funzionalità - Rileva le modifiche tra le versioni dei componenti, che possono essere critiche per individuare l'iniezione di backdoor.
Automatizzare i Controlli di Conformità della Sicurezza - Utilizzalo per identificare componenti con funzionalità che richiedono ulteriore controllo di sicurezza, approvazione o conformità SDL come parte della pipeline di build, oppure crea un repository di metadati riguardanti tutte le tue applicazioni aziendali.
Abbiamo una solida base predefinita di Regole per il rilevamento delle funzionalità. Ma ci sono molti pattern di identificazione delle funzionalità ancora da definire e ti invitiamo a inviare idee su ciò che vorresti vedere o a cimentarti nel definirne qualcuno. Questa è un'opportunità per avere un impatto concreto sull'ecosistema open source, contribuendo a fornire uno strumento che tutti possano usare. Consulta la sezione Regole della wiki per ulteriori informazioni.
Application Inspector è in stato di rilascio PER IL PUBBLICO GENERALE. Il tuo feedback è importante per noi. Se sei interessato a contribuire, consulta il file CONTRIBUTING.md.
Application Inspector è disponibile come strumento a riga di comando o pacchetto NuGet ed è supportato su Windows, Linux o MacOS.
I binari specifici per piattaforma dell'interfaccia a riga di comando di ApplicationInspector sono disponibili sulla nostra pagina releases di GitHub.
La libreria C# è disponibile su NuGet come Microsoft.CST.ApplicationInspector.Commands.
Lo strumento globale .NET è disponibile su NuGet come Microsoft.CST.ApplicationInspector.CLI.
Se utilizzi la versione .NET Core, dovrai avere .NET 6.0 o successivo installato. Vedi i file JustRunIt.md o Build.md per maggiori informazioni.
> 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.
Per ottenere aiuto su un comando specifico esegui appinspector <comando> --help.
Il Comando Analyze è il cavallo di battaglia di Application Inspector.
Questo produrrà un output.html dell'analisi nella directory corrente utilizzando argomenti e regole predefiniti.
appinspector analyze -s path/to/files
appinspector analyze -s path/to/files -f sarif -o output.sarif
Questo creerà un output markdown adatto per ambienti CI con un riepilogo delle caratteristiche principali.
appinspector analyze -s path/to/files -f markdown -o report.md
Questo creerà un output json denominato data.json dell'analisi nella directory corrente, escludendo tutti i file nelle cartelle test e .git utilizzando i pattern glob forniti.
appinspector analyze -s path/to/files -o data.json -f json -g **/tests/**,**/.git/**
Per ulteriore aiuto sull'uso dell'interfaccia console vedi Uso della CLI.
Per aiuto sull'uso del pacchetto NuGet vedi Supporto NuGet
Vedi build.md
L'uso di questa applicazione è regolato dall'Informativa sulla privacy Microsoft.