Invoke-SqlVulnerabilityAssessmentScan

Вызывает новую проверку оценки уязвимостей.

Синтаксис

Invoke-SqlVulnerabilityAssessmentScan
      [-ScanId <String>]
      [-Baseline <SecurityCheckBaselineSet>]
      [-OmitMetadata]
      [<CommonParameters>]
Invoke-SqlVulnerabilityAssessmentScan
      -ConnectionString <String>
      [-ScanId <String>]
      [-Baseline <SecurityCheckBaselineSet>]
      [-OmitMetadata]
      [<CommonParameters>]
Invoke-SqlVulnerabilityAssessmentScan
      -ServerInstance <PSObject>
      -DatabaseName <String>
      [-Credential <PSCredential>]
      [-ScanId <String>]
      [-Baseline <SecurityCheckBaselineSet>]
      [-OmitMetadata]
      [<CommonParameters>]
Invoke-SqlVulnerabilityAssessmentScan
      -Path <String>
      [-ScanId <String>]
      [-Baseline <SecurityCheckBaselineSet>]
      [-OmitMetadata]
      [<CommonParameters>]
Invoke-SqlVulnerabilityAssessmentScan
      -InputObject <Database>
      [-ScanId <String>]
      [-Baseline <SecurityCheckBaselineSet>]
      [-OmitMetadata]
      [<CommonParameters>]

Описание

Командлет Invoke-SqlVulnerabilityAssessmentScan выполняет проверку в базе данных. Командлет использует база знаний проверок безопасности, которые помечают уязвимости системы безопасности и выделяют отклонения от рекомендаций, таких как неправильные настройки, чрезмерные разрешения и незащищенные конфиденциальные данные. Проверки безопасности основаны на рекомендациях корпорации Майкрософт и сосредоточены на проблемах безопасности, которые представляют наибольшие риски для базы данных и ее ценных данных. Эти проверки безопасности также представляют многие требования различных нормативных органов в соответствии со своими стандартами соответствия.

Результаты проверки включают в себя практические действия по устранению каждой проблемы, а также настроенные скрипты исправления, если их можно применить. Отчет об оценке можно настроить для вашей среды, задав приемлемый базовый план для конфигураций разрешений, конфигураций компонентов и параметров базы данных.

Module requirements: version 21+ on PowerShell 5.1; version 22+ on PowerShell 7.x.

Примеры

Пример 1. Вызов проверки оценки уязвимостей с помощью проверка подлинности Windows в базе данных master

PS C:\> Invoke-SqlVulnerabilityAssessmentScan -ServerInstance "MyComputer\MainInstance" -Database "master" -ScanId "MyScan"

Id              : MyScan
ScanType        : BoxDatabase
ScanTriggerType : OnDemand
Server          : MyComputer\MainInstance
Database        : master
Platform        : SqlServer2017
SqlVersion      : 14.0.3015
StartTimeUtc    : 3/17/2018 8:58:02 PM
EndTimeUtc      : 3/17/2018 8:58:41 PM
ToolName        : PowerShell
ToolVersion     : 1.0
Results         : {VA1017, VA1019, VA1020, VA1021...}
SecurityChecks  : {[VA1017, Microsoft.SQL.VulnerabilityAssessment.SecurityCheck], [VA1019, Microsoft.SQL.VulnerabilityAssessment.SecurityCheck], [VA1020,
                  Microsoft.SQL.VulnerabilityAssessment.SecurityCheck], [VA1021, Microsoft.SQL.VulnerabilityAssessment.SecurityCheck]...}

В этом примере мы вызываем проверку оценки уязвимостей в базе данных master с помощью проверка подлинности Windows.

Пример 2. Вызов проверки оценки уязвимостей с помощью текущего контекста пути

PS C:\> Set-Location "SQLSERVER:\SQL\MyComputer\MainInstance\Databases\MyDatabase"
PS SQLSERVER:\SQL\MyComputer\MainInstance> Invoke-SqlVulnerabilityAssessmentScan
WARNING: Using provider context. Server = MyComputer\MainInstance, Database = MyDatabase.

Id              : 2018-03-17T22-58-02
ScanType        : BoxDatabase
ScanTriggerType : OnDemand
Server          : MyComputer\MainInstance
Database        : MyDatabase
Platform        : SqlServer2017
SqlVersion      : 14.0.3015
StartTimeUtc    : 3/17/2018 8:58:02 PM
EndTimeUtc      : 3/17/2018 8:58:41 PM
ToolName        : PowerShell
ToolVersion     : 1.0
Results         : {VA1017, VA1019, VA1020, VA1021...}
SecurityChecks  : {[VA1017, Microsoft.SQL.VulnerabilityAssessment.SecurityCheck], [VA1019, Microsoft.SQL.VulnerabilityAssessment.SecurityCheck], [VA1020,
                  Microsoft.SQL.VulnerabilityAssessment.SecurityCheck], [VA1021, Microsoft.SQL.VulnerabilityAssessment.SecurityCheck]...}

В этом примере показано, как Invoke-SqlVulnerabilityAssessmentScan использует текущий путь для задания контекста базы данных MyDatabase.

Пример 3. Вызов проверки оценки уязвимостей с помощью учетных данных и пропуск метаданных проверок безопасности

PS C:\> $cred = Get-Credential
PS C:\> Invoke-SqlVulnerabilityAssessmentScan -ServerInstance "MyComputer\MainInstance" -Database "master" -Credential $cred

Id              : 2018-03-17T22-58-02
ScanType        : BoxDatabase
ScanTriggerType : OnDemand
Server          : MyComputer\MainInstance
Database        : MyDatabase
Platform        : SqlServer2017
SqlVersion      : 14.0.3015
StartTimeUtc    : 3/17/2018 8:58:02 PM
EndTimeUtc      : 3/17/2018 8:58:41 PM
ToolName        : PowerShell
ToolVersion     : 1.0
Results         : {VA1017, VA1019, VA1020, VA1021...}
SecurityChecks  :

В этом примере показано, как вызвать сканирование с помощью PSCredential. Он также демонстрирует использование флага -OmitMetadata (обратите внимание, что результат не содержит словарь проверок безопасности — это метаданные проверок, такие как заголовок, описание и т. д.).

Пример 4. Вызов проверки оценки уязвимостей с помощью базового плана

PS C:\> [string[][]]$expectedResults = ,("guest", "db_datareader", "SQLUSER", "NONE")
PS C:\> $baseline = New-SqlVulnerabilityAssessmentBaseline -SecurityCheckId "VA2109" -ExpectedResult $expectedResults
PS C:\> $baselineSet = New-SqlVulnerabilityAssessmentBaselineSet -Baselines $baseline
PS C:\> $scanResult = Invoke-SqlVulnerabilityAssessmentScan -ServerInstance "MyComputer\MainInstance" -Database "master" -Baseline $baselineSet
PS C:\> $result2109 = $scanResult.Results.GetEnumerator() | where {$_.Value.SecurityCheckId -eq "VA2109"
}

В этом примере показано, как создать базовый набор и вызвать проверку с ним. Свойство BaselineAdjustedSecurityCheckResult в результате va2109 содержит скорректированный базовый результат. Обратите внимание, что исходное состояние этого результата завершилось сбоем, но измененное базовое состояние результата передано.

Параметры

-Baseline

Набор базовых показателей проверки безопасности для оценки уязвимостей

Type:SecurityCheckBaselineSet
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ConnectionString

Указывает строку подключения для подключения к базе данных. Если этот параметр присутствует, другие параметры подключения будут игнорироваться.

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Credential

Указывает учетные данные, используемые для подключения к базе данных.

Type:PSCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DatabaseName

Указывает имя базы данных. Этот командлет подключается к этой базе данных в экземпляре, указанном в параметре ServerInstance.

Если параметр базы данных не указан, используемая база данных зависит от того, указывает ли текущий путь как папку SQLSERVER:\SQL, так и имя базы данных. Если путь указывает папку SQL и имя базы данных, этот командлет подключается к базе данных, указанной в пути.

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

Указывает входной объект для операции сканирования.

Type:Database
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-OmitMetadata

Указывает, следует ли пропускать метаданные проверки безопасности (например, заголовок, описание и т. д.) Обратите внимание, что Export-VulnerabilityAssessmentScan требует проверки безопасности метаданных для правильного выполнения.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Path

Указывает путь к экземпляру SQL Server для выполнения проверки.

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-ScanId

Идентификатор проверки оценки уязвимостей

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ServerInstance

Задает символьную строку или объект SQL Server объектов SMO, указывающий имя экземпляра ядра СУБД. Для экземпляров по умолчанию укажите только имя компьютера: MyComputer. Для именованных экземпляров используйте формат ComputerName\InstanceName.

Type:PSObject
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

Входные данные

None

Выходные данные

System.Object