mirror of
https://github.com/prowler-cloud/prowler.git
synced 2026-07-24 13:01:56 +00:00
feat(sqlserver): extract SQL Server resource metadata automated (#6562)
This commit is contained in:
committed by
Pepe Fagoaga
parent
074b7c1ff5
commit
23b584f4bf
+3
-4
@@ -7,13 +7,12 @@ class sqlserver_auditing_enabled(Check):
|
||||
findings = []
|
||||
for subscription, sql_servers in sqlserver_client.sql_servers.items():
|
||||
for sql_server in sql_servers:
|
||||
report = Check_Report_Azure(self.metadata())
|
||||
report = Check_Report_Azure(
|
||||
metadata=self.metadata(), resource_metadata=sql_server
|
||||
)
|
||||
report.subscription = subscription
|
||||
report.status = "PASS"
|
||||
report.status_extended = f"SQL Server {sql_server.name} from subscription {subscription} has a auditing policy configured."
|
||||
report.resource_name = sql_server.name
|
||||
report.resource_id = sql_server.id
|
||||
report.location = sql_server.location
|
||||
for auditing_policy in sql_server.auditing_policies:
|
||||
if auditing_policy.state == "Disabled":
|
||||
report.status = "FAIL"
|
||||
|
||||
+3
-4
@@ -7,11 +7,10 @@ class sqlserver_auditing_retention_90_days(Check):
|
||||
findings = []
|
||||
for subscription, sql_servers in sqlserver_client.sql_servers.items():
|
||||
for sql_server in sql_servers:
|
||||
report = Check_Report_Azure(self.metadata())
|
||||
report = Check_Report_Azure(
|
||||
metadata=self.metadata(), resource_metadata=sql_server
|
||||
)
|
||||
report.subscription = subscription
|
||||
report.resource_name = sql_server.name
|
||||
report.resource_id = sql_server.id
|
||||
report.location = sql_server.location
|
||||
has_failed = False
|
||||
has_policy = False
|
||||
for policy in sql_server.auditing_policies:
|
||||
|
||||
+3
-4
@@ -7,13 +7,12 @@ class sqlserver_azuread_administrator_enabled(Check):
|
||||
findings = []
|
||||
for subscription, sql_servers in sqlserver_client.sql_servers.items():
|
||||
for sql_server in sql_servers:
|
||||
report = Check_Report_Azure(self.metadata())
|
||||
report = Check_Report_Azure(
|
||||
metadata=self.metadata(), resource_metadata=sql_server
|
||||
)
|
||||
report.subscription = subscription
|
||||
report.status = "PASS"
|
||||
report.location = sql_server.location
|
||||
report.status_extended = f"SQL Server {sql_server.name} from subscription {subscription} has an Active Directory administrator."
|
||||
report.resource_name = sql_server.name
|
||||
report.resource_id = sql_server.id
|
||||
|
||||
if (
|
||||
sql_server.administrators is None
|
||||
|
||||
+3
-4
@@ -8,12 +8,11 @@ class sqlserver_microsoft_defender_enabled(Check):
|
||||
for subscription, sql_servers in sqlserver_client.sql_servers.items():
|
||||
for sql_server in sql_servers:
|
||||
if sql_server.security_alert_policies:
|
||||
report = Check_Report_Azure(self.metadata())
|
||||
report = Check_Report_Azure(
|
||||
metadata=self.metadata(), resource_metadata=sql_server
|
||||
)
|
||||
report.subscription = subscription
|
||||
report.resource_name = sql_server.name
|
||||
report.resource_id = sql_server.id
|
||||
report.status = "FAIL"
|
||||
report.location = sql_server.location
|
||||
report.status_extended = f"SQL Server {sql_server.name} from subscription {subscription} has microsoft defender disabled."
|
||||
if sql_server.security_alert_policies.state == "Enabled":
|
||||
report.status = "PASS"
|
||||
|
||||
+3
-4
@@ -12,12 +12,11 @@ class sqlserver_recommended_minimal_tls_version(Check):
|
||||
)
|
||||
for subscription, sql_servers in sqlserver_client.sql_servers.items():
|
||||
for sql_server in sql_servers:
|
||||
report = Check_Report_Azure(self.metadata())
|
||||
report = Check_Report_Azure(
|
||||
metadata=self.metadata(), resource_metadata=sql_server
|
||||
)
|
||||
report.subscription = subscription
|
||||
report.resource_name = sql_server.name
|
||||
report.resource_id = sql_server.id
|
||||
report.status = "FAIL"
|
||||
report.location = sql_server.location
|
||||
report.status_extended = f"SQL Server {sql_server.name} from subscription {subscription} is using TLS version {sql_server.minimal_tls_version} as minimal accepted which is not recommended. Please use one of the recommended versions: {', '.join(recommended_minimal_tls_versions)}."
|
||||
if sql_server.minimal_tls_version in recommended_minimal_tls_versions:
|
||||
report.status_extended = f"SQL Server {sql_server.name} from subscription {subscription} is using version {sql_server.minimal_tls_version} as minimal accepted which is recommended."
|
||||
|
||||
@@ -16,7 +16,6 @@ from prowler.providers.azure.azure_provider import AzureProvider
|
||||
from prowler.providers.azure.lib.service.service import AzureService
|
||||
|
||||
|
||||
########################## SQLServer
|
||||
class SQLServer(AzureService):
|
||||
def __init__(self, provider: AzureProvider):
|
||||
super().__init__(SqlManagementClient, provider)
|
||||
|
||||
+3
-4
@@ -11,11 +11,10 @@ class sqlserver_tde_encrypted_with_cmk(Check):
|
||||
sql_server.databases if sql_server.databases is not None else []
|
||||
)
|
||||
if len(databases) > 0:
|
||||
report = Check_Report_Azure(self.metadata())
|
||||
report = Check_Report_Azure(
|
||||
metadata=self.metadata(), resource_metadata=sql_server
|
||||
)
|
||||
report.subscription = subscription
|
||||
report.resource_name = sql_server.name
|
||||
report.resource_id = sql_server.id
|
||||
report.location = sql_server.location
|
||||
found_disabled = False
|
||||
if (
|
||||
sql_server.encryption_protector.server_key_type
|
||||
|
||||
+3
-4
@@ -14,11 +14,10 @@ class sqlserver_tde_encryption_enabled(Check):
|
||||
for database in databases:
|
||||
if database.name.lower() == "master":
|
||||
continue
|
||||
report = Check_Report_Azure(self.metadata())
|
||||
report = Check_Report_Azure(
|
||||
metadata=self.metadata(), resource_metadata=database
|
||||
)
|
||||
report.subscription = subscription
|
||||
report.resource_name = database.name
|
||||
report.resource_id = database.id
|
||||
report.location = sql_server.location
|
||||
if database.tde_encryption.status == "Enabled":
|
||||
report.status = "PASS"
|
||||
report.status_extended = f"Database {database.name} from SQL Server {sql_server.name} from subscription {subscription} has TDE enabled"
|
||||
|
||||
+3
-4
@@ -7,13 +7,12 @@ class sqlserver_unrestricted_inbound_access(Check):
|
||||
findings = []
|
||||
for subscription, sql_servers in sqlserver_client.sql_servers.items():
|
||||
for sql_server in sql_servers:
|
||||
report = Check_Report_Azure(self.metadata())
|
||||
report = Check_Report_Azure(
|
||||
metadata=self.metadata(), resource_metadata=sql_server
|
||||
)
|
||||
report.subscription = subscription
|
||||
report.status = "PASS"
|
||||
report.status_extended = f"SQL Server {sql_server.name} from subscription {subscription} does not have firewall rules allowing 0.0.0.0-255.255.255.255."
|
||||
report.resource_name = sql_server.name
|
||||
report.resource_id = sql_server.id
|
||||
report.location = sql_server.location
|
||||
for firewall_rule in sql_server.firewall_rules:
|
||||
if (
|
||||
firewall_rule.start_ip_address == "0.0.0.0"
|
||||
|
||||
+3
-4
@@ -7,12 +7,11 @@ class sqlserver_va_emails_notifications_admins_enabled(Check):
|
||||
findings = []
|
||||
for subscription, sql_servers in sqlserver_client.sql_servers.items():
|
||||
for sql_server in sql_servers:
|
||||
report = Check_Report_Azure(self.metadata())
|
||||
report = Check_Report_Azure(
|
||||
metadata=self.metadata(), resource_metadata=sql_server
|
||||
)
|
||||
report.subscription = subscription
|
||||
report.resource_name = sql_server.name
|
||||
report.resource_id = sql_server.id
|
||||
report.status = "FAIL"
|
||||
report.location = sql_server.location
|
||||
report.status_extended = f"SQL Server {sql_server.name} from subscription {subscription} has vulnerability assessment disabled."
|
||||
if (
|
||||
sql_server.vulnerability_assessment
|
||||
|
||||
+3
-4
@@ -7,12 +7,11 @@ class sqlserver_va_periodic_recurring_scans_enabled(Check):
|
||||
findings = []
|
||||
for subscription, sql_servers in sqlserver_client.sql_servers.items():
|
||||
for sql_server in sql_servers:
|
||||
report = Check_Report_Azure(self.metadata())
|
||||
report = Check_Report_Azure(
|
||||
metadata=self.metadata(), resource_metadata=sql_server
|
||||
)
|
||||
report.subscription = subscription
|
||||
report.resource_name = sql_server.name
|
||||
report.resource_id = sql_server.id
|
||||
report.status = "FAIL"
|
||||
report.location = sql_server.location
|
||||
report.status_extended = f"SQL Server {sql_server.name} from subscription {subscription} has vulnerability assessment disabled."
|
||||
if (
|
||||
sql_server.vulnerability_assessment
|
||||
|
||||
+3
-4
@@ -7,12 +7,11 @@ class sqlserver_va_scan_reports_configured(Check):
|
||||
findings = []
|
||||
for subscription, sql_servers in sqlserver_client.sql_servers.items():
|
||||
for sql_server in sql_servers:
|
||||
report = Check_Report_Azure(self.metadata())
|
||||
report = Check_Report_Azure(
|
||||
metadata=self.metadata(), resource_metadata=sql_server
|
||||
)
|
||||
report.subscription = subscription
|
||||
report.resource_name = sql_server.name
|
||||
report.resource_id = sql_server.id
|
||||
report.status = "FAIL"
|
||||
report.location = sql_server.location
|
||||
report.status_extended = f"SQL Server {sql_server.name} from subscription {subscription} has vulnerability assessment disabled."
|
||||
if (
|
||||
sql_server.vulnerability_assessment
|
||||
|
||||
+3
-4
@@ -7,12 +7,11 @@ class sqlserver_vulnerability_assessment_enabled(Check):
|
||||
findings = []
|
||||
for subscription, sql_servers in sqlserver_client.sql_servers.items():
|
||||
for sql_server in sql_servers:
|
||||
report = Check_Report_Azure(self.metadata())
|
||||
report = Check_Report_Azure(
|
||||
metadata=self.metadata(), resource_metadata=sql_server
|
||||
)
|
||||
report.subscription = subscription
|
||||
report.resource_name = sql_server.name
|
||||
report.resource_id = sql_server.id
|
||||
report.status = "FAIL"
|
||||
report.location = sql_server.location
|
||||
report.status_extended = f"SQL Server {sql_server.name} from subscription {subscription} has vulnerability assessment disabled."
|
||||
if (
|
||||
sql_server.vulnerability_assessment
|
||||
|
||||
Reference in New Issue
Block a user