DllSpy

Analizza gli assembly .NET compilati per scoprire superfici di input (endpoint HTTP, hub SignalR, servizi WCF, servizi gRPC, pagine Razor, componenti Blazor, Funzioni di Azure, endpoint OData), verificare la configurazione dell'autorizzazione e segnalare problemi di sicurezza — il tutto senza eseguire l'applicazione.
Disponibile come strumento CLI e modulo PowerShell.

Installazione
CLI
dotnet tool install -g DllSpy
PowerShell
Install-Module -Name DllSpy
Utilizzo
CLI
# Elenca tutte le superfici
dllspy ./MyApi.dll
# Scansiona per vulnerabilità di sicurezza
dllspy ./MyApi.dll -s
# Filtra per tipo di superficie (HttpEndpoint, SignalRMethod, WcfOperation, GrpcOperation, RazorPage, BlazorComponent, AzureFunction, ODataEndpoint)
dllspy ./MyApi.dll -t HttpEndpoint
# Filtra per metodo HTTP e nome classe
dllspy ./MyApi.dll -m DELETE -c User*
# Solo superfici autenticate / anonime
dllspy ./MyApi.dll --auth
dllspy ./MyApi.dll --anon
# Scansiona solo assembly eseguibili (host), salta le librerie di classi
dllspy ./MyApi.dll --host-only
# Scansiona con gravità minima
dllspy ./MyApi.dll -s --min-severity High
# Formato output: table (predefinito), tsv, json
dllspy ./MyApi.dll -o json
dllspy ./MyApi.dll -o tsv
JSON + jq
# Elenca tutte le route non protette
dllspy ./MyApi.dll -o json | jq '[.[] | select(.requiresAuthorization == false) | .displayRoute]'
# Conta le superfici per tipo
dllspy ./MyApi.dll -o json | jq 'group_by(.surfaceType) | map({type: .[0].surfaceType, count: length})'
# Problemi di sicurezza come tabella compatta
dllspy ./MyApi.dll -s -o json | jq -r '.[] | [.severity, .surfaceRoute, .title] | @tsv'
PowerShell
# Tutte le superfici
Search-DllSpy -Path .\MyApi.dll
# Filtra per tipo di superficie
Search-DllSpy -Path .\MyApi.dll -Type HttpEndpoint
Search-DllSpy -Path .\MyApi.dll -Type SignalRMethod
Search-DllSpy -Path .\MyApi.dll -Type WcfOperation
Search-DllSpy -Path .\MyApi.dll -Type GrpcOperation
Search-DllSpy -Path .\MyApi.dll -Type RazorPage
Search-DllSpy -Path .\MyApi.dll -Type BlazorComponent
Search-DllSpy -Path .\MyApi.dll -Type AzureFunction
Search-DllSpy -Path .\MyApi.dll -Type ODataEndpoint
# Filtra per metodo HTTP
Search-DllSpy -Path .\MyApi.dll -HttpMethod DELETE
# Filtra per nome classe (supporta wildcard)
Search-DllSpy -Path .\MyApi.dll -Class User*
# Solo superfici autenticate / anonime
Search-DllSpy -Path .\MyApi.dll -RequiresAuth
Search-DllSpy -Path .\MyApi.dll -AllowAnonymous
# Scansiona solo assembly eseguibili (host), salta le librerie di classi
Search-DllSpy -Path .\bin\*.dll -HostOnly
# Trova problemi di sicurezza
Test-DllSpy -Path .\MyApi.dll
# Solo problemi ad alta gravità
Test-DllSpy -Path .\MyApi.dll -MinimumSeverity High
# Scansiona solo assembly host per problemi di sicurezza
Test-DllSpy -Path .\bin\*.dll -HostOnly
# Vista dettagliata
Test-DllSpy -Path .\MyApi.dll | Format-List
Framework supportati
Regole di sicurezza
Endpoint HTTP
Metodi Hub SignalR
Operazioni WCF
Operazioni gRPC
Gestori Pagine Razor
Componenti Blazor instradabili
Funzioni di Azure
Endpoint OData
Licenza
Vedi LICENSE.