Sql Vulnerability Assessment Scan Results - List
Pobiera listę wyników skanowania dla pojedynczego rekordu skanowania.
GET https://management.azure.com/{resourceId}/providers/Microsoft.Security/sqlVulnerabilityAssessments/default/scans/{scanId}/scanResults?workspaceId={workspaceId}&api-version=2023-02-01-preview
Parametry identyfikatora URI
Nazwa | W | Wymagane | Typ | Opis |
---|---|---|---|---|
resource
|
path | True |
string |
Identyfikator zasobu. |
scan
|
path | True |
string |
Identyfikator skanowania. Wpisz ciąg "latest", aby uzyskać wyniki skanowania dla najnowszego skanowania. |
api-version
|
query | True |
string |
Wersja interfejsu API. |
workspace
|
query | True |
string |
Identyfikator obszaru roboczego. |
Odpowiedzi
Nazwa | Typ | Opis |
---|---|---|
200 OK |
Zwraca listę wyników skanowania. |
|
Other Status Codes |
Odpowiedź na błąd opisująca, dlaczego operacja nie powiodła się. |
Zabezpieczenia
azure_auth
Przepływ protokołu OAuth2 usługi Azure Active Directory
Typ:
oauth2
Flow:
implicit
Adres URL autoryzacji:
https://login.microsoftonline.com/common/oauth2/authorize
Zakresy
Nazwa | Opis |
---|---|
user_impersonation | personifikacja konta użytkownika |
Przykłady
List scan results |
List scan results of the latest scan |
List scan results
Przykładowe żądanie
GET https://management.azure.com/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Rg/providers/Microsoft.HybridCompute/machines/MyMachine/sqlServers/server1/databases/master/providers/Microsoft.Security/sqlVulnerabilityAssessments/default/scans/Scheduled-20200623/scanResults?workspaceId=55555555-6666-7777-8888-999999999999&api-version=2023-02-01-preview
Przykładowa odpowiedź
{
"value": [
{
"id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Rg/providers/Microsoft.HybridCompute/machines/MyMachine/sqlServers/server1/databases/master/providers/Microsoft.Security/sqlVulnerabilityAssessments/default/scans/Scheduled-20200623/scanResults/VA2062",
"name": "VA2062",
"type": "Microsoft.Security/sqlVulnerabilityAssessments/scans/scanResults",
"properties": {
"ruleId": "VA2062",
"status": "NonFinding",
"isTrimmed": false,
"queryResults": [],
"remediation": {
"description": "Remove database firewall rules that grant excessive access",
"scripts": [],
"automated": false,
"portalLink": ""
},
"baselineAdjustedResult": null,
"ruleMetadata": {
"ruleId": "VA2062",
"severity": "High",
"category": "SurfaceAreaReduction",
"ruleType": "NegativeList",
"title": "Database-level firewall rules should not grant excessive access",
"description": "The Azure SQL Database-level firewall helps protect your data by preventing all access to your database until you specify which IP addresses have permission. Database-level firewall rules grant access to the specific database based on the originating IP address of each request.\n\nDatabase-level firewall rules for master and user databases can only be created and managed through Transact-SQL (unlike server-level firewall rules which can also be created and managed using the Azure portal or PowerShell). For more details please see: https://docs.microsoft.com/en-us/azure/sql-database/sql-database-firewall-configure\n\nThis check verifies that database-level firewall rules do not grant excessive access.",
"rationale": "Often, administrators add rules that grant excessive access as part of a troubleshooting process - to eliminate the firewall as the source of a problem, they simply create a rule that allows all traffic to pass to the affected database.\n\nGranting excessive access using database firewall rules is a clear security concern, as it violates the principle of least privilege by allowing unnecessary access to your database. In fact, it's the equivalent of placing the database outside of the firewall.",
"queryCheck": {
"query": "SELECT name\n ,start_ip_address\n ,end_ip_address\nFROM sys.database_firewall_rules\nWHERE ( \n (CONVERT(bigint, parsename(end_ip_address, 1)) +\n CONVERT(bigint, parsename(end_ip_address, 2)) * 256 + \n CONVERT(bigint, parsename(end_ip_address, 3)) * 65536 + \n CONVERT(bigint, parsename(end_ip_address, 4)) * 16777216 ) \n - \n (CONVERT(bigint, parsename(start_ip_address, 1)) +\n CONVERT(bigint, parsename(start_ip_address, 2)) * 256 + \n CONVERT(bigint, parsename(start_ip_address, 3)) * 65536 + \n CONVERT(bigint, parsename(start_ip_address, 4)) * 16777216 )\n ) > 255;",
"expectedResult": [],
"columnNames": [
"Firewall Rule Name",
"Start Address",
"End Address"
]
},
"benchmarkReferences": []
}
}
},
{
"id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Rg/providers/Microsoft.HybridCompute/machines/MyMachine/sqlServers/server1/databases/master/providers/Microsoft.Security/sqlVulnerabilityAssessments/default/scans/Scheduled-20200623/scanResults/VA2063",
"name": "VA2063",
"type": "Microsoft.Security/sqlVulnerabilityAssessments/scans/scanResults",
"properties": {
"ruleId": "VA2063",
"status": "Finding",
"isTrimmed": false,
"queryResults": [
[
"Test",
"0.0.0.0",
"125.125.125.125"
]
],
"remediation": {
"description": "Remove server firewall rules that grant excessive access",
"scripts": [
"EXECUTE sp_delete_firewall_rule N'Test';"
],
"automated": false,
"portalLink": "ReviewServerFirewallRules"
},
"baselineAdjustedResult": {
"baseline": {
"expectedResults": [
[
"Test",
"0.0.0.0",
"125.125.125.125"
]
],
"updatedTime": "2020-02-04T12:49:41.027771+00:00"
},
"status": "NonFinding",
"resultsNotInBaseline": [],
"resultsOnlyInBaseline": []
},
"ruleMetadata": {
"ruleId": "VA2063",
"severity": "High",
"category": "SurfaceAreaReduction",
"ruleType": "NegativeList",
"title": "Server-level firewall rules should not grant excessive access",
"description": "The Azure SQL server-level firewall helps protect your server by preventing all access to your databases until you specify which IP addresses have permission. Server-level firewall rules grant access to all databases that belong to the server based on the originating IP address of each request.\n\nServer-level firewall rules can only be created and managed through Transact-SQL as well as through the Azure portal or PowerShell. For more details please see: https://docs.microsoft.com/en-us/azure/sql-database/sql-database-firewall-configure\n\nThis check verifies that server-level firewall rules do not grant excessive access.",
"rationale": "Often, administrators add rules that grant excessive access as part of a troubleshooting process � to eliminate the firewall as the source of a problem, they simply create a rule that allows all traffic to pass to the affected server.\n\nGranting excessive access using server firewall rules is a clear security concern, as it violates the principle of least privilege by allowing unnecessary access to your databases. In fact, it's the equivalent of placing the server outside of the firewall.",
"queryCheck": {
"query": "SELECT name\n ,start_ip_address\n ,end_ip_address\nFROM sys.firewall_rules\nWHERE ( \n (CONVERT(bigint, parsename(end_ip_address, 1)) +\n CONVERT(bigint, parsename(end_ip_address, 2)) * 256 + \n CONVERT(bigint, parsename(end_ip_address, 3)) * 65536 + \n CONVERT(bigint, parsename(end_ip_address, 4)) * 16777216 ) \n - \n (CONVERT(bigint, parsename(start_ip_address, 1)) +\n CONVERT(bigint, parsename(start_ip_address, 2)) * 256 + \n CONVERT(bigint, parsename(start_ip_address, 3)) * 65536 + \n CONVERT(bigint, parsename(start_ip_address, 4)) * 16777216 )\n ) > 255;",
"expectedResult": [],
"columnNames": [
"Firewall Rule Name",
"Start Address",
"End Address"
]
},
"benchmarkReferences": []
}
}
}
]
}
List scan results of the latest scan
Przykładowe żądanie
GET https://management.azure.com/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Rg/providers/Microsoft.HybridCompute/machines/MyMachine/sqlServers/server1/databases/master/providers/Microsoft.Security/sqlVulnerabilityAssessments/default/scans/latest/scanResults?workspaceId=55555555-6666-7777-8888-999999999999&api-version=2023-02-01-preview
Przykładowa odpowiedź
{
"value": [
{
"id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Rg/providers/Microsoft.HybridCompute/machines/MyMachine/sqlServers/server1/databases/master/providers/Microsoft.Security/sqlVulnerabilityAssessments/default/scans/Scheduled-20200623/scanResults/VA2062",
"name": "VA2062",
"type": "Microsoft.Security/sqlVulnerabilityAssessments/scans/scanResults",
"properties": {
"ruleId": "VA2062",
"status": "NonFinding",
"isTrimmed": false,
"queryResults": [],
"remediation": {
"description": "Remove database firewall rules that grant excessive access",
"scripts": [],
"automated": false,
"portalLink": ""
},
"baselineAdjustedResult": null,
"ruleMetadata": {
"ruleId": "VA2062",
"severity": "High",
"category": "SurfaceAreaReduction",
"ruleType": "NegativeList",
"title": "Database-level firewall rules should not grant excessive access",
"description": "The Azure SQL Database-level firewall helps protect your data by preventing all access to your database until you specify which IP addresses have permission. Database-level firewall rules grant access to the specific database based on the originating IP address of each request.\n\nDatabase-level firewall rules for master and user databases can only be created and managed through Transact-SQL (unlike server-level firewall rules which can also be created and managed using the Azure portal or PowerShell). For more details please see: https://docs.microsoft.com/en-us/azure/sql-database/sql-database-firewall-configure\n\nThis check verifies that database-level firewall rules do not grant excessive access.",
"rationale": "Often, administrators add rules that grant excessive access as part of a troubleshooting process - to eliminate the firewall as the source of a problem, they simply create a rule that allows all traffic to pass to the affected database.\n\nGranting excessive access using database firewall rules is a clear security concern, as it violates the principle of least privilege by allowing unnecessary access to your database. In fact, it's the equivalent of placing the database outside of the firewall.",
"queryCheck": {
"query": "SELECT name\n ,start_ip_address\n ,end_ip_address\nFROM sys.database_firewall_rules\nWHERE ( \n (CONVERT(bigint, parsename(end_ip_address, 1)) +\n CONVERT(bigint, parsename(end_ip_address, 2)) * 256 + \n CONVERT(bigint, parsename(end_ip_address, 3)) * 65536 + \n CONVERT(bigint, parsename(end_ip_address, 4)) * 16777216 ) \n - \n (CONVERT(bigint, parsename(start_ip_address, 1)) +\n CONVERT(bigint, parsename(start_ip_address, 2)) * 256 + \n CONVERT(bigint, parsename(start_ip_address, 3)) * 65536 + \n CONVERT(bigint, parsename(start_ip_address, 4)) * 16777216 )\n ) > 255;",
"expectedResult": [],
"columnNames": [
"Firewall Rule Name",
"Start Address",
"End Address"
]
},
"benchmarkReferences": []
}
}
},
{
"id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Rg/providers/Microsoft.HybridCompute/machines/MyMachine/sqlServers/server1/databases/master/providers/Microsoft.Security/sqlVulnerabilityAssessments/default/scans/Scheduled-20200623/scanResults/VA2063",
"name": "VA2063",
"type": "Microsoft.Security/sqlVulnerabilityAssessments/scans/scanResults",
"properties": {
"ruleId": "VA2063",
"status": "Finding",
"isTrimmed": false,
"queryResults": [
[
"Test",
"0.0.0.0",
"125.125.125.125"
]
],
"remediation": {
"description": "Remove server firewall rules that grant excessive access",
"scripts": [
"EXECUTE sp_delete_firewall_rule N'Test';"
],
"automated": false,
"portalLink": "ReviewServerFirewallRules"
},
"baselineAdjustedResult": {
"baseline": {
"expectedResults": [
[
"Test",
"0.0.0.0",
"125.125.125.125"
]
],
"updatedTime": "2020-02-04T12:49:41.027771+00:00"
},
"status": "NonFinding",
"resultsNotInBaseline": [],
"resultsOnlyInBaseline": []
},
"ruleMetadata": {
"ruleId": "VA2063",
"severity": "High",
"category": "SurfaceAreaReduction",
"ruleType": "NegativeList",
"title": "Server-level firewall rules should not grant excessive access",
"description": "The Azure SQL server-level firewall helps protect your server by preventing all access to your databases until you specify which IP addresses have permission. Server-level firewall rules grant access to all databases that belong to the server based on the originating IP address of each request.\n\nServer-level firewall rules can only be created and managed through Transact-SQL as well as through the Azure portal or PowerShell. For more details please see: https://docs.microsoft.com/en-us/azure/sql-database/sql-database-firewall-configure\n\nThis check verifies that server-level firewall rules do not grant excessive access.",
"rationale": "Often, administrators add rules that grant excessive access as part of a troubleshooting process � to eliminate the firewall as the source of a problem, they simply create a rule that allows all traffic to pass to the affected server.\n\nGranting excessive access using server firewall rules is a clear security concern, as it violates the principle of least privilege by allowing unnecessary access to your databases. In fact, it's the equivalent of placing the server outside of the firewall.",
"queryCheck": {
"query": "SELECT name\n ,start_ip_address\n ,end_ip_address\nFROM sys.firewall_rules\nWHERE ( \n (CONVERT(bigint, parsename(end_ip_address, 1)) +\n CONVERT(bigint, parsename(end_ip_address, 2)) * 256 + \n CONVERT(bigint, parsename(end_ip_address, 3)) * 65536 + \n CONVERT(bigint, parsename(end_ip_address, 4)) * 16777216 ) \n - \n (CONVERT(bigint, parsename(start_ip_address, 1)) +\n CONVERT(bigint, parsename(start_ip_address, 2)) * 256 + \n CONVERT(bigint, parsename(start_ip_address, 3)) * 65536 + \n CONVERT(bigint, parsename(start_ip_address, 4)) * 16777216 )\n ) > 255;",
"expectedResult": [],
"columnNames": [
"Firewall Rule Name",
"Start Address",
"End Address"
]
},
"benchmarkReferences": []
}
}
}
]
}
Definicje
Nazwa | Opis |
---|---|
Baseline |
Szczegóły punktu odniesienia. |
Baseline |
Wynik reguły został skorygowany przy użyciu planu bazowego. |
Benchmark |
Odwołania do testów porównawczych. |
Cloud |
Typowa odpowiedź na błędy dla wszystkich interfejsów API usługi Azure Resource Manager w celu zwrócenia szczegółów błędu dla operacji, które zakończyły się niepowodzeniem. (Jest to również zgodne z formatem odpowiedzi na błąd OData). |
Cloud |
Szczegóły błędu. |
Error |
Dodatkowe informacje o błędzie zarządzania zasobami. |
Query |
Szczegóły zapytania reguły. |
Remediation |
Szczegóły korygowania. |
Rule |
Ważność reguły. |
Rule |
Stan wyniku reguły. |
Rule |
Typ reguły. |
Scan |
Wynik skanowania oceny luk w zabezpieczeniach dla pojedynczej reguły. |
Scan |
Właściwości wyniku skanowania oceny luk w zabezpieczeniach dla pojedynczej reguły. |
Scan |
Lista wyników skanowania oceny luk w zabezpieczeniach. |
Va |
szczegóły metadanych reguły oceny luk w zabezpieczeniach. |
Baseline
Szczegóły punktu odniesienia.
Nazwa | Typ | Opis |
---|---|---|
expectedResults |
string[] |
Oczekiwane wyniki. |
updatedTime |
string |
Czas aktualizacji wg planu bazowego (UTC). |
BaselineAdjustedResult
Wynik reguły został skorygowany przy użyciu planu bazowego.
Nazwa | Typ | Opis |
---|---|---|
baseline |
Szczegóły punktu odniesienia. |
|
resultsNotInBaseline |
string[] |
Wyniki nie znajdują się w punkcie odniesienia. |
resultsOnlyInBaseline |
string[] |
Wyniki znajdują się w punkcie odniesienia. |
status |
Stan wyniku reguły. |
BenchmarkReference
Odwołania do testów porównawczych.
Nazwa | Typ | Opis |
---|---|---|
benchmark |
string |
Nazwa testu porównawczego. |
reference |
string |
Dokumentacja referencyjna. |
CloudError
Typowa odpowiedź na błędy dla wszystkich interfejsów API usługi Azure Resource Manager w celu zwrócenia szczegółów błędu dla operacji, które zakończyły się niepowodzeniem. (Jest to również zgodne z formatem odpowiedzi na błąd OData).
Nazwa | Typ | Opis |
---|---|---|
error.additionalInfo |
Dodatkowe informacje o błędzie. |
|
error.code |
string |
Kod błędu. |
error.details |
Szczegóły błędu. |
|
error.message |
string |
Komunikat o błędzie. |
error.target |
string |
Element docelowy błędu. |
CloudErrorBody
Szczegóły błędu.
Nazwa | Typ | Opis |
---|---|---|
additionalInfo |
Dodatkowe informacje o błędzie. |
|
code |
string |
Kod błędu. |
details |
Szczegóły błędu. |
|
message |
string |
Komunikat o błędzie. |
target |
string |
Element docelowy błędu. |
ErrorAdditionalInfo
Dodatkowe informacje o błędzie zarządzania zasobami.
Nazwa | Typ | Opis |
---|---|---|
info |
object |
Dodatkowe informacje. |
type |
string |
Dodatkowy typ informacji. |
QueryCheck
Szczegóły zapytania reguły.
Nazwa | Typ | Opis |
---|---|---|
columnNames |
string[] |
Nazwy kolumn oczekiwanego wyniku. |
expectedResult |
string[] |
Oczekiwany wynik. |
query |
string |
Zapytanie reguły. |
Remediation
Szczegóły korygowania.
Nazwa | Typ | Opis |
---|---|---|
automated |
boolean |
Jest zautomatyzowane korygowanie. |
description |
string |
Opis korygowania. |
portalLink |
string |
Opcjonalny link do korygowania w witrynie Azure Portal. |
scripts |
string[] |
Skrypt korygowania. |
RuleSeverity
Ważność reguły.
Nazwa | Typ | Opis |
---|---|---|
High |
string |
Wysoki |
Informational |
string |
Informacyjne |
Low |
string |
Niski |
Medium |
string |
Średni |
Obsolete |
string |
Przestarzały |
RuleStatus
Stan wyniku reguły.
Nazwa | Typ | Opis |
---|---|---|
Finding |
string |
Znalezienie |
InternalError |
string |
InternalError |
NonFinding |
string |
Niezdefiniowanie |
RuleType
Typ reguły.
Nazwa | Typ | Opis |
---|---|---|
BaselineExpected |
string |
BaselineExpected |
Binary |
string |
Dwójkowy |
NegativeList |
string |
Lista ujemna |
PositiveList |
string |
Lista dodatnia |
ScanResult
Wynik skanowania oceny luk w zabezpieczeniach dla pojedynczej reguły.
Nazwa | Typ | Opis |
---|---|---|
id |
string |
Identyfikator zasobu |
name |
string |
Nazwa zasobu |
properties |
Właściwości wyniku skanowania oceny luk w zabezpieczeniach dla pojedynczej reguły. |
|
type |
string |
Typ zasobu |
ScanResultProperties
Właściwości wyniku skanowania oceny luk w zabezpieczeniach dla pojedynczej reguły.
Nazwa | Typ | Opis |
---|---|---|
baselineAdjustedResult |
Wynik reguły został skorygowany przy użyciu planu bazowego. |
|
isTrimmed |
boolean |
Wskazuje, czy określone w tym miejscu wyniki są przycinane. |
queryResults |
string[] |
Wyniki zapytania, które zostało uruchomione. |
remediation |
Szczegóły korygowania. |
|
ruleId |
string |
Identyfikator reguły. |
ruleMetadata |
szczegóły metadanych reguły oceny luk w zabezpieczeniach. |
|
status |
Stan wyniku reguły. |
ScanResults
Lista wyników skanowania oceny luk w zabezpieczeniach.
Nazwa | Typ | Opis |
---|---|---|
value |
Lista wyników skanowania oceny luk w zabezpieczeniach. |
VaRule
szczegóły metadanych reguły oceny luk w zabezpieczeniach.
Nazwa | Typ | Opis |
---|---|---|
benchmarkReferences |
Odwołania do testów porównawczych. |
|
category |
string |
Kategoria reguły. |
description |
string |
Opis reguły. |
queryCheck |
Szczegóły zapytania reguły. |
|
rationale |
string |
Uzasadnienie reguły. |
ruleId |
string |
Identyfikator reguły. |
ruleType |
Typ reguły. |
|
severity |
Ważność reguły. |
|
title |
string |
Tytuł reguły. |