DllSpy

Сканирует скомпилированные .NET сборки для обнаружения входных поверхностей (HTTP-конечные точки, хабы SignalR, службы WCF, службы gRPC, страницы Razor, компоненты Blazor, функции Azure, конечные точки OData), проверяет конфигурацию авторизации и отмечает проблемы безопасности — все без запуска приложения.
Доступен как CLI-инструмент и модуль PowerShell.

Установка
CLI
dotnet tool install -g DllSpy
PowerShell
Install-Module -Name DllSpy
Использование
CLI
# List all surfaces
dllspy ./MyApi.dll
# Scan for security vulnerabilities
dllspy ./MyApi.dll -s
# Filter by surface type (HttpEndpoint, SignalRMethod, WcfOperation, GrpcOperation, RazorPage, BlazorComponent, AzureFunction, ODataEndpoint)
dllspy ./MyApi.dll -t HttpEndpoint
# Filter by HTTP method and class name
dllspy ./MyApi.dll -m DELETE -c User*
# Only authenticated / anonymous surfaces
dllspy ./MyApi.dll --auth
dllspy ./MyApi.dll --anon
# Only scan host (runnable) assemblies, skip class libraries
dllspy ./MyApi.dll --host-only
# Scan with minimum severity
dllspy ./MyApi.dll -s --min-severity High
# Output format: table (default), tsv, json
dllspy ./MyApi.dll -o json
dllspy ./MyApi.dll -o tsv
JSON + jq
# List all unprotected routes
dllspy ./MyApi.dll -o json | jq '[.[] | select(.requiresAuthorization == false) | .displayRoute]'
# Count surfaces by type
dllspy ./MyApi.dll -o json | jq 'group_by(.surfaceType) | map({type: .[0].surfaceType, count: length})'
# Security issues as compact table
dllspy ./MyApi.dll -s -o json | jq -r '.[] | [.severity, .surfaceRoute, .title] | @tsv'
PowerShell
# All surfaces
Search-DllSpy -Path .\MyApi.dll
# Filter by surface type
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
# Filter by HTTP method
Search-DllSpy -Path .\MyApi.dll -HttpMethod DELETE
# Filter by class name (supports wildcards)
Search-DllSpy -Path .\MyApi.dll -Class User*
# Only authenticated / anonymous surfaces
Search-DllSpy -Path .\MyApi.dll -RequiresAuth
Search-DllSpy -Path .\MyApi.dll -AllowAnonymous
# Only scan host (runnable) assemblies, skip class libraries
Search-DllSpy -Path .\bin\*.dll -HostOnly
# Find security issues
Test-DllSpy -Path .\MyApi.dll
# Only high-severity issues
Test-DllSpy -Path .\MyApi.dll -MinimumSeverity High
# Only scan host assemblies for security issues
Test-DllSpy -Path .\bin\*.dll -HostOnly
# Detailed view
Test-DllSpy -Path .\MyApi.dll | Format-List
Поддерживаемые фреймворки
Правила безопасности
HTTP-конечные точки
Методы хаба SignalR
Операции WCF
| Серьёзность | Правило | Описание |
|---|
Операции gRPC
| Серьёзность | Правило | Описание |
|---|
Обработчики Razor Pages
Маршрутизируемые компоненты Blazor
Функции Azure
Конечные точки OData
Лицензия
См. LICENSE.