mirror of
https://github.com/ghndrx/prowler.git
synced 2026-02-10 06:45:08 +00:00
refactor(azure): Change class names from azure services and fix typing error (#3350)
This commit is contained in:
@@ -27,7 +27,7 @@ class Defender(AzureService):
|
|||||||
for pricing in pricings_list.value:
|
for pricing in pricings_list.value:
|
||||||
pricings[subscription_name].update(
|
pricings[subscription_name].update(
|
||||||
{
|
{
|
||||||
pricing.name: Defender_Pricing(
|
pricing.name: Pricing(
|
||||||
resource_id=pricing.id,
|
resource_id=pricing.id,
|
||||||
pricing_tier=pricing.pricing_tier,
|
pricing_tier=pricing.pricing_tier,
|
||||||
free_trial_remaining_time=pricing.free_trial_remaining_time,
|
free_trial_remaining_time=pricing.free_trial_remaining_time,
|
||||||
@@ -77,7 +77,7 @@ class Defender(AzureService):
|
|||||||
for assessment in assessments_list:
|
for assessment in assessments_list:
|
||||||
assessments[subscription_name].update(
|
assessments[subscription_name].update(
|
||||||
{
|
{
|
||||||
assessment.display_name: Defender_Assessments(
|
assessment.display_name: Assesment(
|
||||||
resource_id=assessment.id,
|
resource_id=assessment.id,
|
||||||
resource_name=assessment.name,
|
resource_name=assessment.name,
|
||||||
status=assessment.status.code,
|
status=assessment.status.code,
|
||||||
@@ -100,7 +100,7 @@ class Defender(AzureService):
|
|||||||
security_contacts.update({subscription_name: {}})
|
security_contacts.update({subscription_name: {}})
|
||||||
security_contacts[subscription_name].update(
|
security_contacts[subscription_name].update(
|
||||||
{
|
{
|
||||||
security_contact_default.name: Defender_Security_Contacts(
|
security_contact_default.name: SecurityContacts(
|
||||||
resource_id=security_contact_default.id,
|
resource_id=security_contact_default.id,
|
||||||
emails=security_contact_default.emails,
|
emails=security_contact_default.emails,
|
||||||
phone=security_contact_default.phone,
|
phone=security_contact_default.phone,
|
||||||
@@ -118,7 +118,7 @@ class Defender(AzureService):
|
|||||||
return security_contacts
|
return security_contacts
|
||||||
|
|
||||||
|
|
||||||
class Defender_Pricing(BaseModel):
|
class Pricing(BaseModel):
|
||||||
resource_id: str
|
resource_id: str
|
||||||
pricing_tier: str
|
pricing_tier: str
|
||||||
free_trial_remaining_time: timedelta
|
free_trial_remaining_time: timedelta
|
||||||
@@ -131,13 +131,13 @@ class AutoProvisioningSetting(BaseModel):
|
|||||||
auto_provision: str
|
auto_provision: str
|
||||||
|
|
||||||
|
|
||||||
class Defender_Assessments(BaseModel):
|
class Assesment(BaseModel):
|
||||||
resource_id: str
|
resource_id: str
|
||||||
resource_name: str
|
resource_name: str
|
||||||
status: str
|
status: str
|
||||||
|
|
||||||
|
|
||||||
class Defender_Security_Contacts(BaseModel):
|
class SecurityContacts(BaseModel):
|
||||||
resource_id: str
|
resource_id: str
|
||||||
emails: str
|
emails: str
|
||||||
phone: str
|
phone: str
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ class SQLServer(AzureService):
|
|||||||
subscription, resource_group, sql_server.name
|
subscription, resource_group, sql_server.name
|
||||||
)
|
)
|
||||||
sql_servers[subscription].append(
|
sql_servers[subscription].append(
|
||||||
SQL_Server(
|
Server(
|
||||||
id=sql_server.id,
|
id=sql_server.id,
|
||||||
name=sql_server.name,
|
name=sql_server.name,
|
||||||
public_network_access=sql_server.public_network_access,
|
public_network_access=sql_server.public_network_access,
|
||||||
@@ -105,7 +105,7 @@ class SQLServer(AzureService):
|
|||||||
subscription, resource_group, server_name, database.name
|
subscription, resource_group, server_name, database.name
|
||||||
)
|
)
|
||||||
databases.append(
|
databases.append(
|
||||||
DatabaseServer(
|
Database(
|
||||||
id=database.id,
|
id=database.id,
|
||||||
name=database.name,
|
name=database.name,
|
||||||
type=database.type,
|
type=database.type,
|
||||||
@@ -133,7 +133,7 @@ class SQLServer(AzureService):
|
|||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class DatabaseServer:
|
class Database:
|
||||||
id: str
|
id: str
|
||||||
name: str
|
name: str
|
||||||
type: str
|
type: str
|
||||||
@@ -143,7 +143,7 @@ class DatabaseServer:
|
|||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class SQL_Server:
|
class Server:
|
||||||
id: str
|
id: str
|
||||||
name: str
|
name: str
|
||||||
public_network_access: str
|
public_network_access: str
|
||||||
@@ -152,5 +152,5 @@ class SQL_Server:
|
|||||||
auditing_policies: ServerBlobAuditingPolicy
|
auditing_policies: ServerBlobAuditingPolicy
|
||||||
firewall_rules: FirewallRule
|
firewall_rules: FirewallRule
|
||||||
encryption_protector: EncryptionProtector = None
|
encryption_protector: EncryptionProtector = None
|
||||||
databases: list[DatabaseServer] = None
|
databases: list[Database] = None
|
||||||
vulnerability_assessment: ServerVulnerabilityAssessment = None
|
vulnerability_assessment: ServerVulnerabilityAssessment = None
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ class Storage(AzureService):
|
|||||||
storage_account.key_policy.key_expiration_period_in_days
|
storage_account.key_policy.key_expiration_period_in_days
|
||||||
)
|
)
|
||||||
storage_accounts[subscription].append(
|
storage_accounts[subscription].append(
|
||||||
Storage_Account(
|
Account(
|
||||||
id=storage_account.id,
|
id=storage_account.id,
|
||||||
name=storage_account.name,
|
name=storage_account.name,
|
||||||
resouce_group_name=resouce_group_name,
|
resouce_group_name=resouce_group_name,
|
||||||
@@ -67,7 +67,7 @@ class Storage(AzureService):
|
|||||||
properties = client.blob_services.get_service_properties(
|
properties = client.blob_services.get_service_properties(
|
||||||
account.resouce_group_name, account.name
|
account.resouce_group_name, account.name
|
||||||
)
|
)
|
||||||
account.blob_properties = Blob_Properties(
|
account.blob_properties = BlobProperties(
|
||||||
id=properties.id,
|
id=properties.id,
|
||||||
name=properties.name,
|
name=properties.name,
|
||||||
type=properties.type,
|
type=properties.type,
|
||||||
@@ -81,7 +81,7 @@ class Storage(AzureService):
|
|||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class Blob_Properties:
|
class BlobProperties:
|
||||||
id: str
|
id: str
|
||||||
name: str
|
name: str
|
||||||
type: str
|
type: str
|
||||||
@@ -90,7 +90,7 @@ class Blob_Properties:
|
|||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class Storage_Account:
|
class Account:
|
||||||
id: str
|
id: str
|
||||||
name: str
|
name: str
|
||||||
resouce_group_name: str
|
resouce_group_name: str
|
||||||
@@ -102,4 +102,4 @@ class Storage_Account:
|
|||||||
minimum_tls_version: str
|
minimum_tls_version: str
|
||||||
private_endpoint_connections: PrivateEndpointConnection
|
private_endpoint_connections: PrivateEndpointConnection
|
||||||
key_expiration_period_in_days: str
|
key_expiration_period_in_days: str
|
||||||
blob_properties: Blob_Properties = None
|
blob_properties: BlobProperties = None
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ from prowler.providers.azure.lib.audit_info.models import (
|
|||||||
Azure_Region_Config,
|
Azure_Region_Config,
|
||||||
)
|
)
|
||||||
|
|
||||||
AZURE_SUSCRIPTION = str(uuid4())
|
AZURE_SUBSCRIPTION = str(uuid4())
|
||||||
|
|
||||||
# Azure Identity
|
# Azure Identity
|
||||||
IDENTITY_ID = "00000000-0000-0000-0000-000000000000"
|
IDENTITY_ID = "00000000-0000-0000-0000-000000000000"
|
||||||
@@ -25,7 +25,7 @@ def set_mocked_azure_audit_info(
|
|||||||
identity_type=IDENTITY_TYPE,
|
identity_type=IDENTITY_TYPE,
|
||||||
tenant_ids=TENANT_IDS,
|
tenant_ids=TENANT_IDS,
|
||||||
domain=DOMAIN,
|
domain=DOMAIN,
|
||||||
subscriptions={AZURE_SUSCRIPTION: "id_subscription"},
|
subscriptions={AZURE_SUBSCRIPTION: "id_subscription"},
|
||||||
),
|
),
|
||||||
audit_config: dict = None,
|
audit_config: dict = None,
|
||||||
azure_region_config: Azure_Region_Config = Azure_Region_Config(),
|
azure_region_config: Azure_Region_Config = Azure_Region_Config(),
|
||||||
|
|||||||
@@ -1,10 +1,8 @@
|
|||||||
from unittest import mock
|
from unittest import mock
|
||||||
from uuid import uuid4
|
from uuid import uuid4
|
||||||
|
|
||||||
from prowler.providers.azure.services.defender.defender_service import (
|
from prowler.providers.azure.services.defender.defender_service import SecurityContacts
|
||||||
Defender_Security_Contacts,
|
from tests.providers.azure.azure_fixtures import AZURE_SUBSCRIPTION
|
||||||
)
|
|
||||||
from tests.providers.azure.azure_fixtures import AZURE_SUSCRIPTION
|
|
||||||
|
|
||||||
|
|
||||||
class Test_defender_additional_email_configured_with_a_security_contact:
|
class Test_defender_additional_email_configured_with_a_security_contact:
|
||||||
@@ -28,8 +26,8 @@ class Test_defender_additional_email_configured_with_a_security_contact:
|
|||||||
resource_id = str(uuid4())
|
resource_id = str(uuid4())
|
||||||
defender_client = mock.MagicMock
|
defender_client = mock.MagicMock
|
||||||
defender_client.security_contacts = {
|
defender_client.security_contacts = {
|
||||||
AZURE_SUSCRIPTION: {
|
AZURE_SUBSCRIPTION: {
|
||||||
"default": Defender_Security_Contacts(
|
"default": SecurityContacts(
|
||||||
resource_id=resource_id,
|
resource_id=resource_id,
|
||||||
emails="",
|
emails="",
|
||||||
phone="",
|
phone="",
|
||||||
@@ -55,9 +53,9 @@ class Test_defender_additional_email_configured_with_a_security_contact:
|
|||||||
assert result[0].status == "FAIL"
|
assert result[0].status == "FAIL"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"There is not another correct email configured for susbscription {AZURE_SUSCRIPTION}."
|
== f"There is not another correct email configured for susbscription {AZURE_SUBSCRIPTION}."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == "default"
|
assert result[0].resource_name == "default"
|
||||||
assert result[0].resource_id == resource_id
|
assert result[0].resource_id == resource_id
|
||||||
|
|
||||||
@@ -65,8 +63,8 @@ class Test_defender_additional_email_configured_with_a_security_contact:
|
|||||||
resource_id = str(uuid4())
|
resource_id = str(uuid4())
|
||||||
defender_client = mock.MagicMock
|
defender_client = mock.MagicMock
|
||||||
defender_client.security_contacts = {
|
defender_client.security_contacts = {
|
||||||
AZURE_SUSCRIPTION: {
|
AZURE_SUBSCRIPTION: {
|
||||||
"default": Defender_Security_Contacts(
|
"default": SecurityContacts(
|
||||||
resource_id=resource_id,
|
resource_id=resource_id,
|
||||||
emails="bad_email",
|
emails="bad_email",
|
||||||
phone="",
|
phone="",
|
||||||
@@ -92,9 +90,9 @@ class Test_defender_additional_email_configured_with_a_security_contact:
|
|||||||
assert result[0].status == "FAIL"
|
assert result[0].status == "FAIL"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"There is not another correct email configured for susbscription {AZURE_SUSCRIPTION}."
|
== f"There is not another correct email configured for susbscription {AZURE_SUBSCRIPTION}."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == "default"
|
assert result[0].resource_name == "default"
|
||||||
assert result[0].resource_id == resource_id
|
assert result[0].resource_id == resource_id
|
||||||
|
|
||||||
@@ -102,8 +100,8 @@ class Test_defender_additional_email_configured_with_a_security_contact:
|
|||||||
resource_id = str(uuid4())
|
resource_id = str(uuid4())
|
||||||
defender_client = mock.MagicMock
|
defender_client = mock.MagicMock
|
||||||
defender_client.security_contacts = {
|
defender_client.security_contacts = {
|
||||||
AZURE_SUSCRIPTION: {
|
AZURE_SUBSCRIPTION: {
|
||||||
"default": Defender_Security_Contacts(
|
"default": SecurityContacts(
|
||||||
resource_id=resource_id,
|
resource_id=resource_id,
|
||||||
emails="test@test.es, test@test.email.com",
|
emails="test@test.es, test@test.email.com",
|
||||||
phone="",
|
phone="",
|
||||||
@@ -129,9 +127,9 @@ class Test_defender_additional_email_configured_with_a_security_contact:
|
|||||||
assert result[0].status == "FAIL"
|
assert result[0].status == "FAIL"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"There is not another correct email configured for susbscription {AZURE_SUSCRIPTION}."
|
== f"There is not another correct email configured for susbscription {AZURE_SUBSCRIPTION}."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == "default"
|
assert result[0].resource_name == "default"
|
||||||
assert result[0].resource_id == resource_id
|
assert result[0].resource_id == resource_id
|
||||||
|
|
||||||
@@ -139,8 +137,8 @@ class Test_defender_additional_email_configured_with_a_security_contact:
|
|||||||
resource_id = str(uuid4())
|
resource_id = str(uuid4())
|
||||||
defender_client = mock.MagicMock
|
defender_client = mock.MagicMock
|
||||||
defender_client.security_contacts = {
|
defender_client.security_contacts = {
|
||||||
AZURE_SUSCRIPTION: {
|
AZURE_SUBSCRIPTION: {
|
||||||
"default": Defender_Security_Contacts(
|
"default": SecurityContacts(
|
||||||
resource_id=resource_id,
|
resource_id=resource_id,
|
||||||
emails="test@test.com",
|
emails="test@test.com",
|
||||||
phone="",
|
phone="",
|
||||||
@@ -166,9 +164,9 @@ class Test_defender_additional_email_configured_with_a_security_contact:
|
|||||||
assert result[0].status == "PASS"
|
assert result[0].status == "PASS"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"There is another correct email configured for susbscription {AZURE_SUSCRIPTION}."
|
== f"There is another correct email configured for susbscription {AZURE_SUBSCRIPTION}."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == "default"
|
assert result[0].resource_name == "default"
|
||||||
assert result[0].resource_id == resource_id
|
assert result[0].resource_id == resource_id
|
||||||
|
|
||||||
@@ -176,8 +174,8 @@ class Test_defender_additional_email_configured_with_a_security_contact:
|
|||||||
resource_id = str(uuid4())
|
resource_id = str(uuid4())
|
||||||
defender_client = mock.MagicMock
|
defender_client = mock.MagicMock
|
||||||
defender_client.security_contacts = {
|
defender_client.security_contacts = {
|
||||||
AZURE_SUSCRIPTION: {
|
AZURE_SUBSCRIPTION: {
|
||||||
"default": Defender_Security_Contacts(
|
"default": SecurityContacts(
|
||||||
resource_id=resource_id,
|
resource_id=resource_id,
|
||||||
emails="test@test.mail.es; bad_mail",
|
emails="test@test.mail.es; bad_mail",
|
||||||
phone="",
|
phone="",
|
||||||
@@ -203,8 +201,8 @@ class Test_defender_additional_email_configured_with_a_security_contact:
|
|||||||
assert result[0].status == "PASS"
|
assert result[0].status == "PASS"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"There is another correct email configured for susbscription {AZURE_SUSCRIPTION}."
|
== f"There is another correct email configured for susbscription {AZURE_SUBSCRIPTION}."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == "default"
|
assert result[0].resource_name == "default"
|
||||||
assert result[0].resource_id == resource_id
|
assert result[0].resource_id == resource_id
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ from uuid import uuid4
|
|||||||
from prowler.providers.azure.services.defender.defender_service import (
|
from prowler.providers.azure.services.defender.defender_service import (
|
||||||
AutoProvisioningSetting,
|
AutoProvisioningSetting,
|
||||||
)
|
)
|
||||||
from tests.providers.azure.azure_fixtures import AZURE_SUSCRIPTION
|
from tests.providers.azure.azure_fixtures import AZURE_SUBSCRIPTION
|
||||||
|
|
||||||
|
|
||||||
class Test_defender_auto_provisioning_log_analytics_agent_vms_on:
|
class Test_defender_auto_provisioning_log_analytics_agent_vms_on:
|
||||||
@@ -28,7 +28,7 @@ class Test_defender_auto_provisioning_log_analytics_agent_vms_on:
|
|||||||
resource_id = str(uuid4())
|
resource_id = str(uuid4())
|
||||||
defender_client = mock.MagicMock
|
defender_client = mock.MagicMock
|
||||||
defender_client.auto_provisioning_settings = {
|
defender_client.auto_provisioning_settings = {
|
||||||
AZURE_SUSCRIPTION: {
|
AZURE_SUBSCRIPTION: {
|
||||||
"default": AutoProvisioningSetting(
|
"default": AutoProvisioningSetting(
|
||||||
resource_id=resource_id,
|
resource_id=resource_id,
|
||||||
resource_name="default",
|
resource_name="default",
|
||||||
@@ -52,9 +52,9 @@ class Test_defender_auto_provisioning_log_analytics_agent_vms_on:
|
|||||||
assert result[0].status == "FAIL"
|
assert result[0].status == "FAIL"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"Defender Auto Provisioning Log Analytics Agents from subscription {AZURE_SUSCRIPTION} is set to OFF."
|
== f"Defender Auto Provisioning Log Analytics Agents from subscription {AZURE_SUBSCRIPTION} is set to OFF."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == "default"
|
assert result[0].resource_name == "default"
|
||||||
assert result[0].resource_id == resource_id
|
assert result[0].resource_id == resource_id
|
||||||
|
|
||||||
@@ -62,7 +62,7 @@ class Test_defender_auto_provisioning_log_analytics_agent_vms_on:
|
|||||||
resource_id = str(uuid4())
|
resource_id = str(uuid4())
|
||||||
defender_client = mock.MagicMock
|
defender_client = mock.MagicMock
|
||||||
defender_client.auto_provisioning_settings = {
|
defender_client.auto_provisioning_settings = {
|
||||||
AZURE_SUSCRIPTION: {
|
AZURE_SUBSCRIPTION: {
|
||||||
"default": AutoProvisioningSetting(
|
"default": AutoProvisioningSetting(
|
||||||
resource_id=resource_id,
|
resource_id=resource_id,
|
||||||
resource_name="default",
|
resource_name="default",
|
||||||
@@ -86,9 +86,9 @@ class Test_defender_auto_provisioning_log_analytics_agent_vms_on:
|
|||||||
assert result[0].status == "PASS"
|
assert result[0].status == "PASS"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"Defender Auto Provisioning Log Analytics Agents from subscription {AZURE_SUSCRIPTION} is set to ON."
|
== f"Defender Auto Provisioning Log Analytics Agents from subscription {AZURE_SUBSCRIPTION} is set to ON."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == "default"
|
assert result[0].resource_name == "default"
|
||||||
assert result[0].resource_id == resource_id
|
assert result[0].resource_id == resource_id
|
||||||
|
|
||||||
@@ -96,7 +96,7 @@ class Test_defender_auto_provisioning_log_analytics_agent_vms_on:
|
|||||||
resource_id = str(uuid4())
|
resource_id = str(uuid4())
|
||||||
defender_client = mock.MagicMock
|
defender_client = mock.MagicMock
|
||||||
defender_client.auto_provisioning_settings = {
|
defender_client.auto_provisioning_settings = {
|
||||||
AZURE_SUSCRIPTION: {
|
AZURE_SUBSCRIPTION: {
|
||||||
"default": AutoProvisioningSetting(
|
"default": AutoProvisioningSetting(
|
||||||
resource_id=resource_id,
|
resource_id=resource_id,
|
||||||
resource_name="default",
|
resource_name="default",
|
||||||
@@ -126,17 +126,17 @@ class Test_defender_auto_provisioning_log_analytics_agent_vms_on:
|
|||||||
assert result[0].status == "PASS"
|
assert result[0].status == "PASS"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"Defender Auto Provisioning Log Analytics Agents from subscription {AZURE_SUSCRIPTION} is set to ON."
|
== f"Defender Auto Provisioning Log Analytics Agents from subscription {AZURE_SUBSCRIPTION} is set to ON."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == "default"
|
assert result[0].resource_name == "default"
|
||||||
assert result[0].resource_id == resource_id
|
assert result[0].resource_id == resource_id
|
||||||
|
|
||||||
assert result[1].status == "FAIL"
|
assert result[1].status == "FAIL"
|
||||||
assert (
|
assert (
|
||||||
result[1].status_extended
|
result[1].status_extended
|
||||||
== f"Defender Auto Provisioning Log Analytics Agents from subscription {AZURE_SUSCRIPTION} is set to OFF."
|
== f"Defender Auto Provisioning Log Analytics Agents from subscription {AZURE_SUBSCRIPTION} is set to OFF."
|
||||||
)
|
)
|
||||||
assert result[1].subscription == AZURE_SUSCRIPTION
|
assert result[1].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[1].resource_name == "default2"
|
assert result[1].resource_name == "default2"
|
||||||
assert result[1].resource_id == resource_id
|
assert result[1].resource_id == resource_id
|
||||||
|
|||||||
@@ -1,10 +1,8 @@
|
|||||||
from unittest import mock
|
from unittest import mock
|
||||||
from uuid import uuid4
|
from uuid import uuid4
|
||||||
|
|
||||||
from prowler.providers.azure.services.defender.defender_service import (
|
from prowler.providers.azure.services.defender.defender_service import Assesment
|
||||||
Defender_Assessments,
|
from tests.providers.azure.azure_fixtures import AZURE_SUBSCRIPTION
|
||||||
)
|
|
||||||
from tests.providers.azure.azure_fixtures import AZURE_SUSCRIPTION
|
|
||||||
|
|
||||||
|
|
||||||
class Test_defender_auto_provisioning_vulnerabilty_assessments_machines_on:
|
class Test_defender_auto_provisioning_vulnerabilty_assessments_machines_on:
|
||||||
@@ -28,8 +26,8 @@ class Test_defender_auto_provisioning_vulnerabilty_assessments_machines_on:
|
|||||||
resource_id = str(uuid4())
|
resource_id = str(uuid4())
|
||||||
defender_client = mock.MagicMock
|
defender_client = mock.MagicMock
|
||||||
defender_client.assessments = {
|
defender_client.assessments = {
|
||||||
AZURE_SUSCRIPTION: {
|
AZURE_SUBSCRIPTION: {
|
||||||
"Machines should have a vulnerability assessment solution": Defender_Assessments(
|
"Machines should have a vulnerability assessment solution": Assesment(
|
||||||
resource_id=resource_id,
|
resource_id=resource_id,
|
||||||
resource_name="vm1",
|
resource_name="vm1",
|
||||||
status="Unhealthy",
|
status="Unhealthy",
|
||||||
@@ -51,9 +49,9 @@ class Test_defender_auto_provisioning_vulnerabilty_assessments_machines_on:
|
|||||||
assert result[0].status == "FAIL"
|
assert result[0].status == "FAIL"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"Vulnerability assessment is not set up in all VMs in subscription {AZURE_SUSCRIPTION}."
|
== f"Vulnerability assessment is not set up in all VMs in subscription {AZURE_SUBSCRIPTION}."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == "vm1"
|
assert result[0].resource_name == "vm1"
|
||||||
assert result[0].resource_id == resource_id
|
assert result[0].resource_id == resource_id
|
||||||
|
|
||||||
@@ -61,8 +59,8 @@ class Test_defender_auto_provisioning_vulnerabilty_assessments_machines_on:
|
|||||||
resource_id = str(uuid4())
|
resource_id = str(uuid4())
|
||||||
defender_client = mock.MagicMock
|
defender_client = mock.MagicMock
|
||||||
defender_client.assessments = {
|
defender_client.assessments = {
|
||||||
AZURE_SUSCRIPTION: {
|
AZURE_SUBSCRIPTION: {
|
||||||
"Machines should have a vulnerability assessment solution": Defender_Assessments(
|
"Machines should have a vulnerability assessment solution": Assesment(
|
||||||
resource_id=resource_id,
|
resource_id=resource_id,
|
||||||
resource_name="vm1",
|
resource_name="vm1",
|
||||||
status="Healthy",
|
status="Healthy",
|
||||||
@@ -84,8 +82,8 @@ class Test_defender_auto_provisioning_vulnerabilty_assessments_machines_on:
|
|||||||
assert result[0].status == "PASS"
|
assert result[0].status == "PASS"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"Vulnerability assessment is set up in all VMs in subscription {AZURE_SUSCRIPTION}."
|
== f"Vulnerability assessment is set up in all VMs in subscription {AZURE_SUBSCRIPTION}."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == "vm1"
|
assert result[0].resource_name == "vm1"
|
||||||
assert result[0].resource_id == resource_id
|
assert result[0].resource_id == resource_id
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
from unittest import mock
|
from unittest import mock
|
||||||
from uuid import uuid4
|
from uuid import uuid4
|
||||||
|
|
||||||
from prowler.providers.azure.services.defender.defender_service import Defender_Pricing
|
from prowler.providers.azure.services.defender.defender_service import Pricing
|
||||||
|
|
||||||
AZURE_SUSCRIPTION = str(uuid4())
|
AZURE_SUBSCRIPTION = str(uuid4())
|
||||||
|
|
||||||
|
|
||||||
class Test_defender_ensure_defender_for_app_services_is_on:
|
class Test_defender_ensure_defender_for_app_services_is_on:
|
||||||
@@ -27,8 +27,8 @@ class Test_defender_ensure_defender_for_app_services_is_on:
|
|||||||
resource_id = str(uuid4())
|
resource_id = str(uuid4())
|
||||||
defender_client = mock.MagicMock
|
defender_client = mock.MagicMock
|
||||||
defender_client.pricings = {
|
defender_client.pricings = {
|
||||||
AZURE_SUSCRIPTION: {
|
AZURE_SUBSCRIPTION: {
|
||||||
"AppServices": Defender_Pricing(
|
"AppServices": Pricing(
|
||||||
resource_id=resource_id,
|
resource_id=resource_id,
|
||||||
pricing_tier="Not Standard",
|
pricing_tier="Not Standard",
|
||||||
free_trial_remaining_time=0,
|
free_trial_remaining_time=0,
|
||||||
@@ -50,9 +50,9 @@ class Test_defender_ensure_defender_for_app_services_is_on:
|
|||||||
assert result[0].status == "FAIL"
|
assert result[0].status == "FAIL"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"Defender plan Defender for App Services from subscription {AZURE_SUSCRIPTION} is set to OFF (pricing tier not standard)."
|
== f"Defender plan Defender for App Services from subscription {AZURE_SUBSCRIPTION} is set to OFF (pricing tier not standard)."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == "Defender plan App Services"
|
assert result[0].resource_name == "Defender plan App Services"
|
||||||
assert result[0].resource_id == resource_id
|
assert result[0].resource_id == resource_id
|
||||||
|
|
||||||
@@ -60,8 +60,8 @@ class Test_defender_ensure_defender_for_app_services_is_on:
|
|||||||
resource_id = str(uuid4())
|
resource_id = str(uuid4())
|
||||||
defender_client = mock.MagicMock
|
defender_client = mock.MagicMock
|
||||||
defender_client.pricings = {
|
defender_client.pricings = {
|
||||||
AZURE_SUSCRIPTION: {
|
AZURE_SUBSCRIPTION: {
|
||||||
"AppServices": Defender_Pricing(
|
"AppServices": Pricing(
|
||||||
resource_id=resource_id,
|
resource_id=resource_id,
|
||||||
pricing_tier="Standard",
|
pricing_tier="Standard",
|
||||||
free_trial_remaining_time=0,
|
free_trial_remaining_time=0,
|
||||||
@@ -83,8 +83,8 @@ class Test_defender_ensure_defender_for_app_services_is_on:
|
|||||||
assert result[0].status == "PASS"
|
assert result[0].status == "PASS"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"Defender plan Defender for App Services from subscription {AZURE_SUSCRIPTION} is set to ON (pricing tier standard)."
|
== f"Defender plan Defender for App Services from subscription {AZURE_SUBSCRIPTION} is set to ON (pricing tier standard)."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == "Defender plan App Services"
|
assert result[0].resource_name == "Defender plan App Services"
|
||||||
assert result[0].resource_id == resource_id
|
assert result[0].resource_id == resource_id
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
from unittest import mock
|
from unittest import mock
|
||||||
from uuid import uuid4
|
from uuid import uuid4
|
||||||
|
|
||||||
from prowler.providers.azure.services.defender.defender_service import Defender_Pricing
|
from prowler.providers.azure.services.defender.defender_service import Pricing
|
||||||
|
|
||||||
AZURE_SUSCRIPTION = str(uuid4())
|
AZURE_SUBSCRIPTION = str(uuid4())
|
||||||
|
|
||||||
|
|
||||||
class Test_defender_ensure_defender_for_arm_is_on:
|
class Test_defender_ensure_defender_for_arm_is_on:
|
||||||
@@ -27,8 +27,8 @@ class Test_defender_ensure_defender_for_arm_is_on:
|
|||||||
resource_id = str(uuid4())
|
resource_id = str(uuid4())
|
||||||
defender_client = mock.MagicMock
|
defender_client = mock.MagicMock
|
||||||
defender_client.pricings = {
|
defender_client.pricings = {
|
||||||
AZURE_SUSCRIPTION: {
|
AZURE_SUBSCRIPTION: {
|
||||||
"Arm": Defender_Pricing(
|
"Arm": Pricing(
|
||||||
resource_id=resource_id,
|
resource_id=resource_id,
|
||||||
pricing_tier="Not Standard",
|
pricing_tier="Not Standard",
|
||||||
free_trial_remaining_time=0,
|
free_trial_remaining_time=0,
|
||||||
@@ -50,9 +50,9 @@ class Test_defender_ensure_defender_for_arm_is_on:
|
|||||||
assert result[0].status == "FAIL"
|
assert result[0].status == "FAIL"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"Defender plan Defender for ARM from subscription {AZURE_SUSCRIPTION} is set to OFF (pricing tier not standard)."
|
== f"Defender plan Defender for ARM from subscription {AZURE_SUBSCRIPTION} is set to OFF (pricing tier not standard)."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == "Defender plan ARM"
|
assert result[0].resource_name == "Defender plan ARM"
|
||||||
assert result[0].resource_id == resource_id
|
assert result[0].resource_id == resource_id
|
||||||
|
|
||||||
@@ -60,8 +60,8 @@ class Test_defender_ensure_defender_for_arm_is_on:
|
|||||||
resource_id = str(uuid4())
|
resource_id = str(uuid4())
|
||||||
defender_client = mock.MagicMock
|
defender_client = mock.MagicMock
|
||||||
defender_client.pricings = {
|
defender_client.pricings = {
|
||||||
AZURE_SUSCRIPTION: {
|
AZURE_SUBSCRIPTION: {
|
||||||
"Arm": Defender_Pricing(
|
"Arm": Pricing(
|
||||||
resource_id=resource_id,
|
resource_id=resource_id,
|
||||||
pricing_tier="Standard",
|
pricing_tier="Standard",
|
||||||
free_trial_remaining_time=0,
|
free_trial_remaining_time=0,
|
||||||
@@ -83,8 +83,8 @@ class Test_defender_ensure_defender_for_arm_is_on:
|
|||||||
assert result[0].status == "PASS"
|
assert result[0].status == "PASS"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"Defender plan Defender for ARM from subscription {AZURE_SUSCRIPTION} is set to ON (pricing tier standard)."
|
== f"Defender plan Defender for ARM from subscription {AZURE_SUBSCRIPTION} is set to ON (pricing tier standard)."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == "Defender plan ARM"
|
assert result[0].resource_name == "Defender plan ARM"
|
||||||
assert result[0].resource_id == resource_id
|
assert result[0].resource_id == resource_id
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
from unittest import mock
|
from unittest import mock
|
||||||
from uuid import uuid4
|
from uuid import uuid4
|
||||||
|
|
||||||
from prowler.providers.azure.services.defender.defender_service import Defender_Pricing
|
from prowler.providers.azure.services.defender.defender_service import Pricing
|
||||||
|
|
||||||
AZURE_SUSCRIPTION = str(uuid4())
|
AZURE_SUBSCRIPTION = str(uuid4())
|
||||||
|
|
||||||
|
|
||||||
class Test_defender_ensure_defender_for_azure_sql_databases_is_on:
|
class Test_defender_ensure_defender_for_azure_sql_databases_is_on:
|
||||||
@@ -27,8 +27,8 @@ class Test_defender_ensure_defender_for_azure_sql_databases_is_on:
|
|||||||
resource_id = str(uuid4())
|
resource_id = str(uuid4())
|
||||||
defender_client = mock.MagicMock
|
defender_client = mock.MagicMock
|
||||||
defender_client.pricings = {
|
defender_client.pricings = {
|
||||||
AZURE_SUSCRIPTION: {
|
AZURE_SUBSCRIPTION: {
|
||||||
"SqlServers": Defender_Pricing(
|
"SqlServers": Pricing(
|
||||||
resource_id=resource_id,
|
resource_id=resource_id,
|
||||||
pricing_tier="Not Standard",
|
pricing_tier="Not Standard",
|
||||||
free_trial_remaining_time=0,
|
free_trial_remaining_time=0,
|
||||||
@@ -50,9 +50,9 @@ class Test_defender_ensure_defender_for_azure_sql_databases_is_on:
|
|||||||
assert result[0].status == "FAIL"
|
assert result[0].status == "FAIL"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"Defender plan Defender for Azure SQL DB Servers from subscription {AZURE_SUSCRIPTION} is set to OFF (pricing tier not standard)."
|
== f"Defender plan Defender for Azure SQL DB Servers from subscription {AZURE_SUBSCRIPTION} is set to OFF (pricing tier not standard)."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == "Defender plan Azure SQL DB Servers"
|
assert result[0].resource_name == "Defender plan Azure SQL DB Servers"
|
||||||
assert result[0].resource_id == resource_id
|
assert result[0].resource_id == resource_id
|
||||||
|
|
||||||
@@ -60,8 +60,8 @@ class Test_defender_ensure_defender_for_azure_sql_databases_is_on:
|
|||||||
resource_id = str(uuid4())
|
resource_id = str(uuid4())
|
||||||
defender_client = mock.MagicMock
|
defender_client = mock.MagicMock
|
||||||
defender_client.pricings = {
|
defender_client.pricings = {
|
||||||
AZURE_SUSCRIPTION: {
|
AZURE_SUBSCRIPTION: {
|
||||||
"SqlServers": Defender_Pricing(
|
"SqlServers": Pricing(
|
||||||
resource_id=resource_id,
|
resource_id=resource_id,
|
||||||
pricing_tier="Standard",
|
pricing_tier="Standard",
|
||||||
free_trial_remaining_time=0,
|
free_trial_remaining_time=0,
|
||||||
@@ -83,8 +83,8 @@ class Test_defender_ensure_defender_for_azure_sql_databases_is_on:
|
|||||||
assert result[0].status == "PASS"
|
assert result[0].status == "PASS"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"Defender plan Defender for Azure SQL DB Servers from subscription {AZURE_SUSCRIPTION} is set to ON (pricing tier standard)."
|
== f"Defender plan Defender for Azure SQL DB Servers from subscription {AZURE_SUBSCRIPTION} is set to ON (pricing tier standard)."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == "Defender plan Azure SQL DB Servers"
|
assert result[0].resource_name == "Defender plan Azure SQL DB Servers"
|
||||||
assert result[0].resource_id == resource_id
|
assert result[0].resource_id == resource_id
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
from unittest import mock
|
from unittest import mock
|
||||||
from uuid import uuid4
|
from uuid import uuid4
|
||||||
|
|
||||||
from prowler.providers.azure.services.defender.defender_service import Defender_Pricing
|
from prowler.providers.azure.services.defender.defender_service import Pricing
|
||||||
|
|
||||||
AZURE_SUSCRIPTION = str(uuid4())
|
AZURE_SUBSCRIPTION = str(uuid4())
|
||||||
|
|
||||||
|
|
||||||
class Test_defender_ensure_defender_for_containers_is_on:
|
class Test_defender_ensure_defender_for_containers_is_on:
|
||||||
@@ -27,8 +27,8 @@ class Test_defender_ensure_defender_for_containers_is_on:
|
|||||||
resource_id = str(uuid4())
|
resource_id = str(uuid4())
|
||||||
defender_client = mock.MagicMock
|
defender_client = mock.MagicMock
|
||||||
defender_client.pricings = {
|
defender_client.pricings = {
|
||||||
AZURE_SUSCRIPTION: {
|
AZURE_SUBSCRIPTION: {
|
||||||
"Containers": Defender_Pricing(
|
"Containers": Pricing(
|
||||||
resource_id=resource_id,
|
resource_id=resource_id,
|
||||||
pricing_tier="Not Standard",
|
pricing_tier="Not Standard",
|
||||||
free_trial_remaining_time=0,
|
free_trial_remaining_time=0,
|
||||||
@@ -50,9 +50,9 @@ class Test_defender_ensure_defender_for_containers_is_on:
|
|||||||
assert result[0].status == "FAIL"
|
assert result[0].status == "FAIL"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"Defender plan Defender for Containers from subscription {AZURE_SUSCRIPTION} is set to OFF (pricing tier not standard)."
|
== f"Defender plan Defender for Containers from subscription {AZURE_SUBSCRIPTION} is set to OFF (pricing tier not standard)."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == "Defender plan Container Registries"
|
assert result[0].resource_name == "Defender plan Container Registries"
|
||||||
assert result[0].resource_id == resource_id
|
assert result[0].resource_id == resource_id
|
||||||
|
|
||||||
@@ -60,8 +60,8 @@ class Test_defender_ensure_defender_for_containers_is_on:
|
|||||||
resource_id = str(uuid4())
|
resource_id = str(uuid4())
|
||||||
defender_client = mock.MagicMock
|
defender_client = mock.MagicMock
|
||||||
defender_client.pricings = {
|
defender_client.pricings = {
|
||||||
AZURE_SUSCRIPTION: {
|
AZURE_SUBSCRIPTION: {
|
||||||
"Containers": Defender_Pricing(
|
"Containers": Pricing(
|
||||||
resource_id=resource_id,
|
resource_id=resource_id,
|
||||||
pricing_tier="Standard",
|
pricing_tier="Standard",
|
||||||
free_trial_remaining_time=0,
|
free_trial_remaining_time=0,
|
||||||
@@ -83,8 +83,8 @@ class Test_defender_ensure_defender_for_containers_is_on:
|
|||||||
assert result[0].status == "PASS"
|
assert result[0].status == "PASS"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"Defender plan Defender for Containers from subscription {AZURE_SUSCRIPTION} is set to ON (pricing tier standard)."
|
== f"Defender plan Defender for Containers from subscription {AZURE_SUBSCRIPTION} is set to ON (pricing tier standard)."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == "Defender plan Container Registries"
|
assert result[0].resource_name == "Defender plan Container Registries"
|
||||||
assert result[0].resource_id == resource_id
|
assert result[0].resource_id == resource_id
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
from unittest import mock
|
from unittest import mock
|
||||||
from uuid import uuid4
|
from uuid import uuid4
|
||||||
|
|
||||||
from prowler.providers.azure.services.defender.defender_service import Defender_Pricing
|
from prowler.providers.azure.services.defender.defender_service import Pricing
|
||||||
|
|
||||||
AZURE_SUSCRIPTION = str(uuid4())
|
AZURE_SUBSCRIPTION = str(uuid4())
|
||||||
|
|
||||||
|
|
||||||
class Test_defender_ensure_defender_for_cosmosdb_is_on:
|
class Test_defender_ensure_defender_for_cosmosdb_is_on:
|
||||||
@@ -27,8 +27,8 @@ class Test_defender_ensure_defender_for_cosmosdb_is_on:
|
|||||||
resource_id = str(uuid4())
|
resource_id = str(uuid4())
|
||||||
defender_client = mock.MagicMock
|
defender_client = mock.MagicMock
|
||||||
defender_client.pricings = {
|
defender_client.pricings = {
|
||||||
AZURE_SUSCRIPTION: {
|
AZURE_SUBSCRIPTION: {
|
||||||
"CosmosDbs": Defender_Pricing(
|
"CosmosDbs": Pricing(
|
||||||
resource_id=resource_id,
|
resource_id=resource_id,
|
||||||
pricing_tier="Not Standard",
|
pricing_tier="Not Standard",
|
||||||
free_trial_remaining_time=0,
|
free_trial_remaining_time=0,
|
||||||
@@ -50,9 +50,9 @@ class Test_defender_ensure_defender_for_cosmosdb_is_on:
|
|||||||
assert result[0].status == "FAIL"
|
assert result[0].status == "FAIL"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"Defender plan Defender for Cosmos DB from subscription {AZURE_SUSCRIPTION} is set to OFF (pricing tier not standard)."
|
== f"Defender plan Defender for Cosmos DB from subscription {AZURE_SUBSCRIPTION} is set to OFF (pricing tier not standard)."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == "Defender plan Cosmos DB"
|
assert result[0].resource_name == "Defender plan Cosmos DB"
|
||||||
assert result[0].resource_id == resource_id
|
assert result[0].resource_id == resource_id
|
||||||
|
|
||||||
@@ -60,8 +60,8 @@ class Test_defender_ensure_defender_for_cosmosdb_is_on:
|
|||||||
resource_id = str(uuid4())
|
resource_id = str(uuid4())
|
||||||
defender_client = mock.MagicMock
|
defender_client = mock.MagicMock
|
||||||
defender_client.pricings = {
|
defender_client.pricings = {
|
||||||
AZURE_SUSCRIPTION: {
|
AZURE_SUBSCRIPTION: {
|
||||||
"CosmosDbs": Defender_Pricing(
|
"CosmosDbs": Pricing(
|
||||||
resource_id=resource_id,
|
resource_id=resource_id,
|
||||||
pricing_tier="Standard",
|
pricing_tier="Standard",
|
||||||
free_trial_remaining_time=0,
|
free_trial_remaining_time=0,
|
||||||
@@ -83,8 +83,8 @@ class Test_defender_ensure_defender_for_cosmosdb_is_on:
|
|||||||
assert result[0].status == "PASS"
|
assert result[0].status == "PASS"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"Defender plan Defender for Cosmos DB from subscription {AZURE_SUSCRIPTION} is set to ON (pricing tier standard)."
|
== f"Defender plan Defender for Cosmos DB from subscription {AZURE_SUBSCRIPTION} is set to ON (pricing tier standard)."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == "Defender plan Cosmos DB"
|
assert result[0].resource_name == "Defender plan Cosmos DB"
|
||||||
assert result[0].resource_id == resource_id
|
assert result[0].resource_id == resource_id
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
from unittest import mock
|
from unittest import mock
|
||||||
from uuid import uuid4
|
from uuid import uuid4
|
||||||
|
|
||||||
from prowler.providers.azure.services.defender.defender_service import Defender_Pricing
|
from prowler.providers.azure.services.defender.defender_service import Pricing
|
||||||
|
|
||||||
AZURE_SUSCRIPTION = str(uuid4())
|
AZURE_SUBSCRIPTION = str(uuid4())
|
||||||
|
|
||||||
|
|
||||||
class Test_defender_ensure_defender_for_databases_is_on:
|
class Test_defender_ensure_defender_for_databases_is_on:
|
||||||
@@ -27,8 +27,8 @@ class Test_defender_ensure_defender_for_databases_is_on:
|
|||||||
resource_id = str(uuid4())
|
resource_id = str(uuid4())
|
||||||
defender_client = mock.MagicMock
|
defender_client = mock.MagicMock
|
||||||
defender_client.pricings = {
|
defender_client.pricings = {
|
||||||
AZURE_SUSCRIPTION: {
|
AZURE_SUBSCRIPTION: {
|
||||||
"SqlServers": Defender_Pricing(
|
"SqlServers": Pricing(
|
||||||
resource_id=resource_id,
|
resource_id=resource_id,
|
||||||
pricing_tier="Standard",
|
pricing_tier="Standard",
|
||||||
free_trial_remaining_time=0,
|
free_trial_remaining_time=0,
|
||||||
@@ -52,8 +52,8 @@ class Test_defender_ensure_defender_for_databases_is_on:
|
|||||||
resource_id = str(uuid4())
|
resource_id = str(uuid4())
|
||||||
defender_client = mock.MagicMock
|
defender_client = mock.MagicMock
|
||||||
defender_client.pricings = {
|
defender_client.pricings = {
|
||||||
AZURE_SUSCRIPTION: {
|
AZURE_SUBSCRIPTION: {
|
||||||
"SqlServerVirtualMachines": Defender_Pricing(
|
"SqlServerVirtualMachines": Pricing(
|
||||||
resource_id=resource_id,
|
resource_id=resource_id,
|
||||||
pricing_tier="Standard",
|
pricing_tier="Standard",
|
||||||
free_trial_remaining_time=0,
|
free_trial_remaining_time=0,
|
||||||
@@ -77,8 +77,8 @@ class Test_defender_ensure_defender_for_databases_is_on:
|
|||||||
resource_id = str(uuid4())
|
resource_id = str(uuid4())
|
||||||
defender_client = mock.MagicMock
|
defender_client = mock.MagicMock
|
||||||
defender_client.pricings = {
|
defender_client.pricings = {
|
||||||
AZURE_SUSCRIPTION: {
|
AZURE_SUBSCRIPTION: {
|
||||||
"OpenSourceRelationalDatabases": Defender_Pricing(
|
"OpenSourceRelationalDatabases": Pricing(
|
||||||
resource_id=resource_id,
|
resource_id=resource_id,
|
||||||
pricing_tier="Standard",
|
pricing_tier="Standard",
|
||||||
free_trial_remaining_time=0,
|
free_trial_remaining_time=0,
|
||||||
@@ -102,8 +102,8 @@ class Test_defender_ensure_defender_for_databases_is_on:
|
|||||||
resource_id = str(uuid4())
|
resource_id = str(uuid4())
|
||||||
defender_client = mock.MagicMock
|
defender_client = mock.MagicMock
|
||||||
defender_client.pricings = {
|
defender_client.pricings = {
|
||||||
AZURE_SUSCRIPTION: {
|
AZURE_SUBSCRIPTION: {
|
||||||
"CosmosDbs": Defender_Pricing(
|
"CosmosDbs": Pricing(
|
||||||
resource_id=resource_id,
|
resource_id=resource_id,
|
||||||
pricing_tier="Standard",
|
pricing_tier="Standard",
|
||||||
free_trial_remaining_time=0,
|
free_trial_remaining_time=0,
|
||||||
@@ -127,23 +127,23 @@ class Test_defender_ensure_defender_for_databases_is_on:
|
|||||||
resource_id = str(uuid4())
|
resource_id = str(uuid4())
|
||||||
defender_client = mock.MagicMock
|
defender_client = mock.MagicMock
|
||||||
defender_client.pricings = {
|
defender_client.pricings = {
|
||||||
AZURE_SUSCRIPTION: {
|
AZURE_SUBSCRIPTION: {
|
||||||
"SqlServers": Defender_Pricing(
|
"SqlServers": Pricing(
|
||||||
resource_id=resource_id,
|
resource_id=resource_id,
|
||||||
pricing_tier="Standard",
|
pricing_tier="Standard",
|
||||||
free_trial_remaining_time=0,
|
free_trial_remaining_time=0,
|
||||||
),
|
),
|
||||||
"SqlServerVirtualMachines": Defender_Pricing(
|
"SqlServerVirtualMachines": Pricing(
|
||||||
resource_id=resource_id,
|
resource_id=resource_id,
|
||||||
pricing_tier="Standard",
|
pricing_tier="Standard",
|
||||||
free_trial_remaining_time=0,
|
free_trial_remaining_time=0,
|
||||||
),
|
),
|
||||||
"OpenSourceRelationalDatabases": Defender_Pricing(
|
"OpenSourceRelationalDatabases": Pricing(
|
||||||
resource_id=resource_id,
|
resource_id=resource_id,
|
||||||
pricing_tier="Standard",
|
pricing_tier="Standard",
|
||||||
free_trial_remaining_time=0,
|
free_trial_remaining_time=0,
|
||||||
),
|
),
|
||||||
"CosmosDbs": Defender_Pricing(
|
"CosmosDbs": Pricing(
|
||||||
resource_id=resource_id,
|
resource_id=resource_id,
|
||||||
pricing_tier="Standard",
|
pricing_tier="Standard",
|
||||||
free_trial_remaining_time=0,
|
free_trial_remaining_time=0,
|
||||||
@@ -165,9 +165,9 @@ class Test_defender_ensure_defender_for_databases_is_on:
|
|||||||
assert result[0].status == "PASS"
|
assert result[0].status == "PASS"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"Defender plan Defender for Databases from subscription {AZURE_SUSCRIPTION} is set to ON (pricing tier standard)."
|
== f"Defender plan Defender for Databases from subscription {AZURE_SUBSCRIPTION} is set to ON (pricing tier standard)."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == "Defender plan Databases"
|
assert result[0].resource_name == "Defender plan Databases"
|
||||||
assert result[0].resource_id == resource_id
|
assert result[0].resource_id == resource_id
|
||||||
|
|
||||||
@@ -175,23 +175,23 @@ class Test_defender_ensure_defender_for_databases_is_on:
|
|||||||
resource_id = str(uuid4())
|
resource_id = str(uuid4())
|
||||||
defender_client = mock.MagicMock
|
defender_client = mock.MagicMock
|
||||||
defender_client.pricings = {
|
defender_client.pricings = {
|
||||||
AZURE_SUSCRIPTION: {
|
AZURE_SUBSCRIPTION: {
|
||||||
"SqlServers": Defender_Pricing(
|
"SqlServers": Pricing(
|
||||||
resource_id=resource_id,
|
resource_id=resource_id,
|
||||||
pricing_tier="Standard",
|
pricing_tier="Standard",
|
||||||
free_trial_remaining_time=0,
|
free_trial_remaining_time=0,
|
||||||
),
|
),
|
||||||
"SqlServerVirtualMachines": Defender_Pricing(
|
"SqlServerVirtualMachines": Pricing(
|
||||||
resource_id=resource_id,
|
resource_id=resource_id,
|
||||||
pricing_tier="Standard",
|
pricing_tier="Standard",
|
||||||
free_trial_remaining_time=0,
|
free_trial_remaining_time=0,
|
||||||
),
|
),
|
||||||
"OpenSourceRelationalDatabases": Defender_Pricing(
|
"OpenSourceRelationalDatabases": Pricing(
|
||||||
resource_id=resource_id,
|
resource_id=resource_id,
|
||||||
pricing_tier="Standard",
|
pricing_tier="Standard",
|
||||||
free_trial_remaining_time=0,
|
free_trial_remaining_time=0,
|
||||||
),
|
),
|
||||||
"CosmosDbs": Defender_Pricing(
|
"CosmosDbs": Pricing(
|
||||||
resource_id=resource_id,
|
resource_id=resource_id,
|
||||||
pricing_tier="Not Standard",
|
pricing_tier="Not Standard",
|
||||||
free_trial_remaining_time=0,
|
free_trial_remaining_time=0,
|
||||||
@@ -213,8 +213,8 @@ class Test_defender_ensure_defender_for_databases_is_on:
|
|||||||
assert result[0].status == "FAIL"
|
assert result[0].status == "FAIL"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"Defender plan Defender for Databases from subscription {AZURE_SUSCRIPTION} is set to OFF (pricing tier not standard)."
|
== f"Defender plan Defender for Databases from subscription {AZURE_SUBSCRIPTION} is set to OFF (pricing tier not standard)."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == "Defender plan Databases"
|
assert result[0].resource_name == "Defender plan Databases"
|
||||||
assert result[0].resource_id == resource_id
|
assert result[0].resource_id == resource_id
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
from unittest import mock
|
from unittest import mock
|
||||||
from uuid import uuid4
|
from uuid import uuid4
|
||||||
|
|
||||||
from prowler.providers.azure.services.defender.defender_service import Defender_Pricing
|
from prowler.providers.azure.services.defender.defender_service import Pricing
|
||||||
|
|
||||||
AZURE_SUSCRIPTION = str(uuid4())
|
AZURE_SUBSCRIPTION = str(uuid4())
|
||||||
|
|
||||||
|
|
||||||
class Test_defender_ensure_defender_for_dns_is_on:
|
class Test_defender_ensure_defender_for_dns_is_on:
|
||||||
@@ -27,8 +27,8 @@ class Test_defender_ensure_defender_for_dns_is_on:
|
|||||||
resource_id = str(uuid4())
|
resource_id = str(uuid4())
|
||||||
defender_client = mock.MagicMock
|
defender_client = mock.MagicMock
|
||||||
defender_client.pricings = {
|
defender_client.pricings = {
|
||||||
AZURE_SUSCRIPTION: {
|
AZURE_SUBSCRIPTION: {
|
||||||
"Dns": Defender_Pricing(
|
"Dns": Pricing(
|
||||||
resource_id=resource_id,
|
resource_id=resource_id,
|
||||||
pricing_tier="Not Standard",
|
pricing_tier="Not Standard",
|
||||||
free_trial_remaining_time=0,
|
free_trial_remaining_time=0,
|
||||||
@@ -50,9 +50,9 @@ class Test_defender_ensure_defender_for_dns_is_on:
|
|||||||
assert result[0].status == "FAIL"
|
assert result[0].status == "FAIL"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"Defender plan Defender for DNS from subscription {AZURE_SUSCRIPTION} is set to OFF (pricing tier not standard)."
|
== f"Defender plan Defender for DNS from subscription {AZURE_SUBSCRIPTION} is set to OFF (pricing tier not standard)."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == "Defender plan DNS"
|
assert result[0].resource_name == "Defender plan DNS"
|
||||||
assert result[0].resource_id == resource_id
|
assert result[0].resource_id == resource_id
|
||||||
|
|
||||||
@@ -60,8 +60,8 @@ class Test_defender_ensure_defender_for_dns_is_on:
|
|||||||
resource_id = str(uuid4())
|
resource_id = str(uuid4())
|
||||||
defender_client = mock.MagicMock
|
defender_client = mock.MagicMock
|
||||||
defender_client.pricings = {
|
defender_client.pricings = {
|
||||||
AZURE_SUSCRIPTION: {
|
AZURE_SUBSCRIPTION: {
|
||||||
"Dns": Defender_Pricing(
|
"Dns": Pricing(
|
||||||
resource_id=resource_id,
|
resource_id=resource_id,
|
||||||
pricing_tier="Standard",
|
pricing_tier="Standard",
|
||||||
free_trial_remaining_time=0,
|
free_trial_remaining_time=0,
|
||||||
@@ -83,8 +83,8 @@ class Test_defender_ensure_defender_for_dns_is_on:
|
|||||||
assert result[0].status == "PASS"
|
assert result[0].status == "PASS"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"Defender plan Defender for DNS from subscription {AZURE_SUSCRIPTION} is set to ON (pricing tier standard)."
|
== f"Defender plan Defender for DNS from subscription {AZURE_SUBSCRIPTION} is set to ON (pricing tier standard)."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == "Defender plan DNS"
|
assert result[0].resource_name == "Defender plan DNS"
|
||||||
assert result[0].resource_id == resource_id
|
assert result[0].resource_id == resource_id
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
from unittest import mock
|
from unittest import mock
|
||||||
from uuid import uuid4
|
from uuid import uuid4
|
||||||
|
|
||||||
from prowler.providers.azure.services.defender.defender_service import Defender_Pricing
|
from prowler.providers.azure.services.defender.defender_service import Pricing
|
||||||
|
|
||||||
AZURE_SUSCRIPTION = str(uuid4())
|
AZURE_SUBSCRIPTION = str(uuid4())
|
||||||
|
|
||||||
|
|
||||||
class Test_defender_ensure_defender_for_keyvault_is_on:
|
class Test_defender_ensure_defender_for_keyvault_is_on:
|
||||||
@@ -27,8 +27,8 @@ class Test_defender_ensure_defender_for_keyvault_is_on:
|
|||||||
resource_id = str(uuid4())
|
resource_id = str(uuid4())
|
||||||
defender_client = mock.MagicMock
|
defender_client = mock.MagicMock
|
||||||
defender_client.pricings = {
|
defender_client.pricings = {
|
||||||
AZURE_SUSCRIPTION: {
|
AZURE_SUBSCRIPTION: {
|
||||||
"KeyVaults": Defender_Pricing(
|
"KeyVaults": Pricing(
|
||||||
resource_id=resource_id,
|
resource_id=resource_id,
|
||||||
pricing_tier="Not Standard",
|
pricing_tier="Not Standard",
|
||||||
free_trial_remaining_time=0,
|
free_trial_remaining_time=0,
|
||||||
@@ -50,9 +50,9 @@ class Test_defender_ensure_defender_for_keyvault_is_on:
|
|||||||
assert result[0].status == "FAIL"
|
assert result[0].status == "FAIL"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"Defender plan Defender for KeyVaults from subscription {AZURE_SUSCRIPTION} is set to OFF (pricing tier not standard)."
|
== f"Defender plan Defender for KeyVaults from subscription {AZURE_SUBSCRIPTION} is set to OFF (pricing tier not standard)."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == "Defender plan KeyVaults"
|
assert result[0].resource_name == "Defender plan KeyVaults"
|
||||||
assert result[0].resource_id == resource_id
|
assert result[0].resource_id == resource_id
|
||||||
|
|
||||||
@@ -60,8 +60,8 @@ class Test_defender_ensure_defender_for_keyvault_is_on:
|
|||||||
resource_id = str(uuid4())
|
resource_id = str(uuid4())
|
||||||
defender_client = mock.MagicMock
|
defender_client = mock.MagicMock
|
||||||
defender_client.pricings = {
|
defender_client.pricings = {
|
||||||
AZURE_SUSCRIPTION: {
|
AZURE_SUBSCRIPTION: {
|
||||||
"KeyVaults": Defender_Pricing(
|
"KeyVaults": Pricing(
|
||||||
resource_id=resource_id,
|
resource_id=resource_id,
|
||||||
pricing_tier="Standard",
|
pricing_tier="Standard",
|
||||||
free_trial_remaining_time=0,
|
free_trial_remaining_time=0,
|
||||||
@@ -83,8 +83,8 @@ class Test_defender_ensure_defender_for_keyvault_is_on:
|
|||||||
assert result[0].status == "PASS"
|
assert result[0].status == "PASS"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"Defender plan Defender for KeyVaults from subscription {AZURE_SUSCRIPTION} is set to ON (pricing tier standard)."
|
== f"Defender plan Defender for KeyVaults from subscription {AZURE_SUBSCRIPTION} is set to ON (pricing tier standard)."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == "Defender plan KeyVaults"
|
assert result[0].resource_name == "Defender plan KeyVaults"
|
||||||
assert result[0].resource_id == resource_id
|
assert result[0].resource_id == resource_id
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
from unittest import mock
|
from unittest import mock
|
||||||
from uuid import uuid4
|
from uuid import uuid4
|
||||||
|
|
||||||
from prowler.providers.azure.services.defender.defender_service import Defender_Pricing
|
from prowler.providers.azure.services.defender.defender_service import Pricing
|
||||||
|
|
||||||
AZURE_SUSCRIPTION = str(uuid4())
|
AZURE_SUBSCRIPTION = str(uuid4())
|
||||||
|
|
||||||
|
|
||||||
class Test_defender_ensure_defender_for_os_relational_databases_is_on:
|
class Test_defender_ensure_defender_for_os_relational_databases_is_on:
|
||||||
@@ -27,8 +27,8 @@ class Test_defender_ensure_defender_for_os_relational_databases_is_on:
|
|||||||
resource_id = str(uuid4())
|
resource_id = str(uuid4())
|
||||||
defender_client = mock.MagicMock
|
defender_client = mock.MagicMock
|
||||||
defender_client.pricings = {
|
defender_client.pricings = {
|
||||||
AZURE_SUSCRIPTION: {
|
AZURE_SUBSCRIPTION: {
|
||||||
"OpenSourceRelationalDatabases": Defender_Pricing(
|
"OpenSourceRelationalDatabases": Pricing(
|
||||||
resource_id=resource_id,
|
resource_id=resource_id,
|
||||||
pricing_tier="Not Standard",
|
pricing_tier="Not Standard",
|
||||||
free_trial_remaining_time=0,
|
free_trial_remaining_time=0,
|
||||||
@@ -50,9 +50,9 @@ class Test_defender_ensure_defender_for_os_relational_databases_is_on:
|
|||||||
assert result[0].status == "FAIL"
|
assert result[0].status == "FAIL"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"Defender plan Defender for Open-Source Relational Databases from subscription {AZURE_SUSCRIPTION} is set to OFF (pricing tier not standard)."
|
== f"Defender plan Defender for Open-Source Relational Databases from subscription {AZURE_SUBSCRIPTION} is set to OFF (pricing tier not standard)."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert (
|
assert (
|
||||||
result[0].resource_name
|
result[0].resource_name
|
||||||
== "Defender plan Open-Source Relational Databases"
|
== "Defender plan Open-Source Relational Databases"
|
||||||
@@ -63,8 +63,8 @@ class Test_defender_ensure_defender_for_os_relational_databases_is_on:
|
|||||||
resource_id = str(uuid4())
|
resource_id = str(uuid4())
|
||||||
defender_client = mock.MagicMock
|
defender_client = mock.MagicMock
|
||||||
defender_client.pricings = {
|
defender_client.pricings = {
|
||||||
AZURE_SUSCRIPTION: {
|
AZURE_SUBSCRIPTION: {
|
||||||
"OpenSourceRelationalDatabases": Defender_Pricing(
|
"OpenSourceRelationalDatabases": Pricing(
|
||||||
resource_id=resource_id,
|
resource_id=resource_id,
|
||||||
pricing_tier="Standard",
|
pricing_tier="Standard",
|
||||||
free_trial_remaining_time=0,
|
free_trial_remaining_time=0,
|
||||||
@@ -86,9 +86,9 @@ class Test_defender_ensure_defender_for_os_relational_databases_is_on:
|
|||||||
assert result[0].status == "PASS"
|
assert result[0].status == "PASS"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"Defender plan Defender for Open-Source Relational Databases from subscription {AZURE_SUSCRIPTION} is set to ON (pricing tier standard)."
|
== f"Defender plan Defender for Open-Source Relational Databases from subscription {AZURE_SUBSCRIPTION} is set to ON (pricing tier standard)."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert (
|
assert (
|
||||||
result[0].resource_name
|
result[0].resource_name
|
||||||
== "Defender plan Open-Source Relational Databases"
|
== "Defender plan Open-Source Relational Databases"
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
from unittest import mock
|
from unittest import mock
|
||||||
from uuid import uuid4
|
from uuid import uuid4
|
||||||
|
|
||||||
from prowler.providers.azure.services.defender.defender_service import Defender_Pricing
|
from prowler.providers.azure.services.defender.defender_service import Pricing
|
||||||
|
|
||||||
AZURE_SUSCRIPTION = str(uuid4())
|
AZURE_SUBSCRIPTION = str(uuid4())
|
||||||
|
|
||||||
|
|
||||||
class Test_defender_ensure_defender_for_server_is_on:
|
class Test_defender_ensure_defender_for_server_is_on:
|
||||||
@@ -27,8 +27,8 @@ class Test_defender_ensure_defender_for_server_is_on:
|
|||||||
resource_id = str(uuid4())
|
resource_id = str(uuid4())
|
||||||
defender_client = mock.MagicMock
|
defender_client = mock.MagicMock
|
||||||
defender_client.pricings = {
|
defender_client.pricings = {
|
||||||
AZURE_SUSCRIPTION: {
|
AZURE_SUBSCRIPTION: {
|
||||||
"VirtualMachines": Defender_Pricing(
|
"VirtualMachines": Pricing(
|
||||||
resource_id=resource_id,
|
resource_id=resource_id,
|
||||||
pricing_tier="Not Standard",
|
pricing_tier="Not Standard",
|
||||||
free_trial_remaining_time=0,
|
free_trial_remaining_time=0,
|
||||||
@@ -50,9 +50,9 @@ class Test_defender_ensure_defender_for_server_is_on:
|
|||||||
assert result[0].status == "FAIL"
|
assert result[0].status == "FAIL"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"Defender plan Defender for Servers from subscription {AZURE_SUSCRIPTION} is set to OFF (pricing tier not standard)."
|
== f"Defender plan Defender for Servers from subscription {AZURE_SUBSCRIPTION} is set to OFF (pricing tier not standard)."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == "Defender plan Servers"
|
assert result[0].resource_name == "Defender plan Servers"
|
||||||
assert result[0].resource_id == resource_id
|
assert result[0].resource_id == resource_id
|
||||||
|
|
||||||
@@ -60,8 +60,8 @@ class Test_defender_ensure_defender_for_server_is_on:
|
|||||||
resource_id = str(uuid4())
|
resource_id = str(uuid4())
|
||||||
defender_client = mock.MagicMock
|
defender_client = mock.MagicMock
|
||||||
defender_client.pricings = {
|
defender_client.pricings = {
|
||||||
AZURE_SUSCRIPTION: {
|
AZURE_SUBSCRIPTION: {
|
||||||
"VirtualMachines": Defender_Pricing(
|
"VirtualMachines": Pricing(
|
||||||
resource_id=resource_id,
|
resource_id=resource_id,
|
||||||
pricing_tier="Standard",
|
pricing_tier="Standard",
|
||||||
free_trial_remaining_time=0,
|
free_trial_remaining_time=0,
|
||||||
@@ -83,8 +83,8 @@ class Test_defender_ensure_defender_for_server_is_on:
|
|||||||
assert result[0].status == "PASS"
|
assert result[0].status == "PASS"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"Defender plan Defender for Servers from subscription {AZURE_SUSCRIPTION} is set to ON (pricing tier standard)."
|
== f"Defender plan Defender for Servers from subscription {AZURE_SUBSCRIPTION} is set to ON (pricing tier standard)."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == "Defender plan Servers"
|
assert result[0].resource_name == "Defender plan Servers"
|
||||||
assert result[0].resource_id == resource_id
|
assert result[0].resource_id == resource_id
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
from unittest import mock
|
from unittest import mock
|
||||||
from uuid import uuid4
|
from uuid import uuid4
|
||||||
|
|
||||||
from prowler.providers.azure.services.defender.defender_service import Defender_Pricing
|
from prowler.providers.azure.services.defender.defender_service import Pricing
|
||||||
|
|
||||||
AZURE_SUSCRIPTION = str(uuid4())
|
AZURE_SUBSCRIPTION = str(uuid4())
|
||||||
|
|
||||||
|
|
||||||
class Test_defender_ensure_defender_for_sql_servers_is_on:
|
class Test_defender_ensure_defender_for_sql_servers_is_on:
|
||||||
@@ -27,8 +27,8 @@ class Test_defender_ensure_defender_for_sql_servers_is_on:
|
|||||||
resource_id = str(uuid4())
|
resource_id = str(uuid4())
|
||||||
defender_client = mock.MagicMock
|
defender_client = mock.MagicMock
|
||||||
defender_client.pricings = {
|
defender_client.pricings = {
|
||||||
AZURE_SUSCRIPTION: {
|
AZURE_SUBSCRIPTION: {
|
||||||
"SqlServerVirtualMachines": Defender_Pricing(
|
"SqlServerVirtualMachines": Pricing(
|
||||||
resource_id=resource_id,
|
resource_id=resource_id,
|
||||||
pricing_tier="Not Standard",
|
pricing_tier="Not Standard",
|
||||||
free_trial_remaining_time=0,
|
free_trial_remaining_time=0,
|
||||||
@@ -50,9 +50,9 @@ class Test_defender_ensure_defender_for_sql_servers_is_on:
|
|||||||
assert result[0].status == "FAIL"
|
assert result[0].status == "FAIL"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"Defender plan Defender for SQL Server VMs from subscription {AZURE_SUSCRIPTION} is set to OFF (pricing tier not standard)."
|
== f"Defender plan Defender for SQL Server VMs from subscription {AZURE_SUBSCRIPTION} is set to OFF (pricing tier not standard)."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == "Defender plan SQL Server VMs"
|
assert result[0].resource_name == "Defender plan SQL Server VMs"
|
||||||
assert result[0].resource_id == resource_id
|
assert result[0].resource_id == resource_id
|
||||||
|
|
||||||
@@ -60,8 +60,8 @@ class Test_defender_ensure_defender_for_sql_servers_is_on:
|
|||||||
resource_id = str(uuid4())
|
resource_id = str(uuid4())
|
||||||
defender_client = mock.MagicMock
|
defender_client = mock.MagicMock
|
||||||
defender_client.pricings = {
|
defender_client.pricings = {
|
||||||
AZURE_SUSCRIPTION: {
|
AZURE_SUBSCRIPTION: {
|
||||||
"SqlServerVirtualMachines": Defender_Pricing(
|
"SqlServerVirtualMachines": Pricing(
|
||||||
resource_id=resource_id,
|
resource_id=resource_id,
|
||||||
pricing_tier="Standard",
|
pricing_tier="Standard",
|
||||||
free_trial_remaining_time=0,
|
free_trial_remaining_time=0,
|
||||||
@@ -83,8 +83,8 @@ class Test_defender_ensure_defender_for_sql_servers_is_on:
|
|||||||
assert result[0].status == "PASS"
|
assert result[0].status == "PASS"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"Defender plan Defender for SQL Server VMs from subscription {AZURE_SUSCRIPTION} is set to ON (pricing tier standard)."
|
== f"Defender plan Defender for SQL Server VMs from subscription {AZURE_SUBSCRIPTION} is set to ON (pricing tier standard)."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == "Defender plan SQL Server VMs"
|
assert result[0].resource_name == "Defender plan SQL Server VMs"
|
||||||
assert result[0].resource_id == resource_id
|
assert result[0].resource_id == resource_id
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
from unittest import mock
|
from unittest import mock
|
||||||
from uuid import uuid4
|
from uuid import uuid4
|
||||||
|
|
||||||
from prowler.providers.azure.services.defender.defender_service import Defender_Pricing
|
from prowler.providers.azure.services.defender.defender_service import Pricing
|
||||||
|
|
||||||
AZURE_SUSCRIPTION = str(uuid4())
|
AZURE_SUBSCRIPTION = str(uuid4())
|
||||||
|
|
||||||
|
|
||||||
class Test_defender_ensure_defender_for_storage_is_on:
|
class Test_defender_ensure_defender_for_storage_is_on:
|
||||||
@@ -27,8 +27,8 @@ class Test_defender_ensure_defender_for_storage_is_on:
|
|||||||
resource_id = str(uuid4())
|
resource_id = str(uuid4())
|
||||||
defender_client = mock.MagicMock
|
defender_client = mock.MagicMock
|
||||||
defender_client.pricings = {
|
defender_client.pricings = {
|
||||||
AZURE_SUSCRIPTION: {
|
AZURE_SUBSCRIPTION: {
|
||||||
"StorageAccounts": Defender_Pricing(
|
"StorageAccounts": Pricing(
|
||||||
resource_id=resource_id,
|
resource_id=resource_id,
|
||||||
pricing_tier="Not Standard",
|
pricing_tier="Not Standard",
|
||||||
free_trial_remaining_time=0,
|
free_trial_remaining_time=0,
|
||||||
@@ -50,9 +50,9 @@ class Test_defender_ensure_defender_for_storage_is_on:
|
|||||||
assert result[0].status == "FAIL"
|
assert result[0].status == "FAIL"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"Defender plan Defender for Storage Accounts from subscription {AZURE_SUSCRIPTION} is set to OFF (pricing tier not standard)."
|
== f"Defender plan Defender for Storage Accounts from subscription {AZURE_SUBSCRIPTION} is set to OFF (pricing tier not standard)."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == "Defender plan Storage Accounts"
|
assert result[0].resource_name == "Defender plan Storage Accounts"
|
||||||
assert result[0].resource_id == resource_id
|
assert result[0].resource_id == resource_id
|
||||||
|
|
||||||
@@ -60,8 +60,8 @@ class Test_defender_ensure_defender_for_storage_is_on:
|
|||||||
resource_id = str(uuid4())
|
resource_id = str(uuid4())
|
||||||
defender_client = mock.MagicMock
|
defender_client = mock.MagicMock
|
||||||
defender_client.pricings = {
|
defender_client.pricings = {
|
||||||
AZURE_SUSCRIPTION: {
|
AZURE_SUBSCRIPTION: {
|
||||||
"StorageAccounts": Defender_Pricing(
|
"StorageAccounts": Pricing(
|
||||||
resource_id=resource_id,
|
resource_id=resource_id,
|
||||||
pricing_tier="Standard",
|
pricing_tier="Standard",
|
||||||
free_trial_remaining_time=0,
|
free_trial_remaining_time=0,
|
||||||
@@ -83,8 +83,8 @@ class Test_defender_ensure_defender_for_storage_is_on:
|
|||||||
assert result[0].status == "PASS"
|
assert result[0].status == "PASS"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"Defender plan Defender for Storage Accounts from subscription {AZURE_SUSCRIPTION} is set to ON (pricing tier standard)."
|
== f"Defender plan Defender for Storage Accounts from subscription {AZURE_SUBSCRIPTION} is set to ON (pricing tier standard)."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == "Defender plan Storage Accounts"
|
assert result[0].resource_name == "Defender plan Storage Accounts"
|
||||||
assert result[0].resource_id == resource_id
|
assert result[0].resource_id == resource_id
|
||||||
|
|||||||
@@ -1,10 +1,8 @@
|
|||||||
from unittest import mock
|
from unittest import mock
|
||||||
from uuid import uuid4
|
from uuid import uuid4
|
||||||
|
|
||||||
from prowler.providers.azure.services.defender.defender_service import (
|
from prowler.providers.azure.services.defender.defender_service import SecurityContacts
|
||||||
Defender_Security_Contacts,
|
from tests.providers.azure.azure_fixtures import AZURE_SUBSCRIPTION
|
||||||
)
|
|
||||||
from tests.providers.azure.azure_fixtures import AZURE_SUSCRIPTION
|
|
||||||
|
|
||||||
|
|
||||||
class Test_defender_ensure_notify_alerts_severity_is_high:
|
class Test_defender_ensure_notify_alerts_severity_is_high:
|
||||||
@@ -28,8 +26,8 @@ class Test_defender_ensure_notify_alerts_severity_is_high:
|
|||||||
resource_id = str(uuid4())
|
resource_id = str(uuid4())
|
||||||
defender_client = mock.MagicMock
|
defender_client = mock.MagicMock
|
||||||
defender_client.security_contacts = {
|
defender_client.security_contacts = {
|
||||||
AZURE_SUSCRIPTION: {
|
AZURE_SUBSCRIPTION: {
|
||||||
"default": Defender_Security_Contacts(
|
"default": SecurityContacts(
|
||||||
resource_id=resource_id,
|
resource_id=resource_id,
|
||||||
emails="",
|
emails="",
|
||||||
phone="",
|
phone="",
|
||||||
@@ -55,9 +53,9 @@ class Test_defender_ensure_notify_alerts_severity_is_high:
|
|||||||
assert result[0].status == "FAIL"
|
assert result[0].status == "FAIL"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"Notifiy alerts are not enabled for severity high in susbscription {AZURE_SUSCRIPTION}."
|
== f"Notifiy alerts are not enabled for severity high in susbscription {AZURE_SUBSCRIPTION}."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == "default"
|
assert result[0].resource_name == "default"
|
||||||
assert result[0].resource_id == resource_id
|
assert result[0].resource_id == resource_id
|
||||||
|
|
||||||
@@ -65,8 +63,8 @@ class Test_defender_ensure_notify_alerts_severity_is_high:
|
|||||||
resource_id = str(uuid4())
|
resource_id = str(uuid4())
|
||||||
defender_client = mock.MagicMock
|
defender_client = mock.MagicMock
|
||||||
defender_client.security_contacts = {
|
defender_client.security_contacts = {
|
||||||
AZURE_SUSCRIPTION: {
|
AZURE_SUBSCRIPTION: {
|
||||||
"default": Defender_Security_Contacts(
|
"default": SecurityContacts(
|
||||||
resource_id=resource_id,
|
resource_id=resource_id,
|
||||||
emails="",
|
emails="",
|
||||||
phone="",
|
phone="",
|
||||||
@@ -92,8 +90,8 @@ class Test_defender_ensure_notify_alerts_severity_is_high:
|
|||||||
assert result[0].status == "PASS"
|
assert result[0].status == "PASS"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"Notifiy alerts are enabled for severity high in susbscription {AZURE_SUSCRIPTION}."
|
== f"Notifiy alerts are enabled for severity high in susbscription {AZURE_SUBSCRIPTION}."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == "default"
|
assert result[0].resource_name == "default"
|
||||||
assert result[0].resource_id == resource_id
|
assert result[0].resource_id == resource_id
|
||||||
|
|||||||
@@ -1,10 +1,8 @@
|
|||||||
from unittest import mock
|
from unittest import mock
|
||||||
from uuid import uuid4
|
from uuid import uuid4
|
||||||
|
|
||||||
from prowler.providers.azure.services.defender.defender_service import (
|
from prowler.providers.azure.services.defender.defender_service import SecurityContacts
|
||||||
Defender_Security_Contacts,
|
from tests.providers.azure.azure_fixtures import AZURE_SUBSCRIPTION
|
||||||
)
|
|
||||||
from tests.providers.azure.azure_fixtures import AZURE_SUSCRIPTION
|
|
||||||
|
|
||||||
|
|
||||||
class Test_defender_ensure_notify_emails_to_owners:
|
class Test_defender_ensure_notify_emails_to_owners:
|
||||||
@@ -28,8 +26,8 @@ class Test_defender_ensure_notify_emails_to_owners:
|
|||||||
resource_id = str(uuid4())
|
resource_id = str(uuid4())
|
||||||
defender_client = mock.MagicMock
|
defender_client = mock.MagicMock
|
||||||
defender_client.security_contacts = {
|
defender_client.security_contacts = {
|
||||||
AZURE_SUSCRIPTION: {
|
AZURE_SUBSCRIPTION: {
|
||||||
"default": Defender_Security_Contacts(
|
"default": SecurityContacts(
|
||||||
resource_id=resource_id,
|
resource_id=resource_id,
|
||||||
emails="",
|
emails="",
|
||||||
phone="",
|
phone="",
|
||||||
@@ -55,9 +53,9 @@ class Test_defender_ensure_notify_emails_to_owners:
|
|||||||
assert result[0].status == "FAIL"
|
assert result[0].status == "FAIL"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"The Owner role is not notified for subscription {AZURE_SUSCRIPTION}."
|
== f"The Owner role is not notified for subscription {AZURE_SUBSCRIPTION}."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == "default"
|
assert result[0].resource_name == "default"
|
||||||
assert result[0].resource_id == resource_id
|
assert result[0].resource_id == resource_id
|
||||||
|
|
||||||
@@ -65,8 +63,8 @@ class Test_defender_ensure_notify_emails_to_owners:
|
|||||||
resource_id = str(uuid4())
|
resource_id = str(uuid4())
|
||||||
defender_client = mock.MagicMock
|
defender_client = mock.MagicMock
|
||||||
defender_client.security_contacts = {
|
defender_client.security_contacts = {
|
||||||
AZURE_SUSCRIPTION: {
|
AZURE_SUBSCRIPTION: {
|
||||||
"default": Defender_Security_Contacts(
|
"default": SecurityContacts(
|
||||||
resource_id=resource_id,
|
resource_id=resource_id,
|
||||||
emails="",
|
emails="",
|
||||||
phone="",
|
phone="",
|
||||||
@@ -92,9 +90,9 @@ class Test_defender_ensure_notify_emails_to_owners:
|
|||||||
assert result[0].status == "FAIL"
|
assert result[0].status == "FAIL"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"The Owner role is not notified for subscription {AZURE_SUSCRIPTION}."
|
== f"The Owner role is not notified for subscription {AZURE_SUBSCRIPTION}."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == "default"
|
assert result[0].resource_name == "default"
|
||||||
assert result[0].resource_id == resource_id
|
assert result[0].resource_id == resource_id
|
||||||
|
|
||||||
@@ -102,8 +100,8 @@ class Test_defender_ensure_notify_emails_to_owners:
|
|||||||
resource_id = str(uuid4())
|
resource_id = str(uuid4())
|
||||||
defender_client = mock.MagicMock
|
defender_client = mock.MagicMock
|
||||||
defender_client.security_contacts = {
|
defender_client.security_contacts = {
|
||||||
AZURE_SUSCRIPTION: {
|
AZURE_SUBSCRIPTION: {
|
||||||
"default": Defender_Security_Contacts(
|
"default": SecurityContacts(
|
||||||
resource_id=resource_id,
|
resource_id=resource_id,
|
||||||
emails="test@test.es",
|
emails="test@test.es",
|
||||||
phone="",
|
phone="",
|
||||||
@@ -129,8 +127,8 @@ class Test_defender_ensure_notify_emails_to_owners:
|
|||||||
assert result[0].status == "PASS"
|
assert result[0].status == "PASS"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"The Owner role is notified for subscription {AZURE_SUSCRIPTION}."
|
== f"The Owner role is notified for subscription {AZURE_SUBSCRIPTION}."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == "default"
|
assert result[0].resource_name == "default"
|
||||||
assert result[0].resource_id == resource_id
|
assert result[0].resource_id == resource_id
|
||||||
|
|||||||
@@ -1,10 +1,8 @@
|
|||||||
from unittest import mock
|
from unittest import mock
|
||||||
from uuid import uuid4
|
from uuid import uuid4
|
||||||
|
|
||||||
from prowler.providers.azure.services.defender.defender_service import (
|
from prowler.providers.azure.services.defender.defender_service import Assesment
|
||||||
Defender_Assessments,
|
from tests.providers.azure.azure_fixtures import AZURE_SUBSCRIPTION
|
||||||
)
|
|
||||||
from tests.providers.azure.azure_fixtures import AZURE_SUSCRIPTION
|
|
||||||
|
|
||||||
|
|
||||||
class Test_defender_ensure_system_updates_are_applied:
|
class Test_defender_ensure_system_updates_are_applied:
|
||||||
@@ -28,18 +26,18 @@ class Test_defender_ensure_system_updates_are_applied:
|
|||||||
resource_id = str(uuid4())
|
resource_id = str(uuid4())
|
||||||
defender_client = mock.MagicMock
|
defender_client = mock.MagicMock
|
||||||
defender_client.assessments = {
|
defender_client.assessments = {
|
||||||
AZURE_SUSCRIPTION: {
|
AZURE_SUBSCRIPTION: {
|
||||||
"Log Analytics agent should be installed on virtual machines": Defender_Assessments(
|
"Log Analytics agent should be installed on virtual machines": Assesment(
|
||||||
resource_id=resource_id,
|
resource_id=resource_id,
|
||||||
resource_name="vm1",
|
resource_name="vm1",
|
||||||
status="Unhealthy",
|
status="Unhealthy",
|
||||||
),
|
),
|
||||||
"Machines should be configured to periodically check for missing system updates": Defender_Assessments(
|
"Machines should be configured to periodically check for missing system updates": Assesment(
|
||||||
resource_id=resource_id,
|
resource_id=resource_id,
|
||||||
resource_name="vm1",
|
resource_name="vm1",
|
||||||
status="Healthy",
|
status="Healthy",
|
||||||
),
|
),
|
||||||
"System updates should be installed on your machines": Defender_Assessments(
|
"System updates should be installed on your machines": Assesment(
|
||||||
resource_id=resource_id,
|
resource_id=resource_id,
|
||||||
resource_name="vm1",
|
resource_name="vm1",
|
||||||
status="Healthy",
|
status="Healthy",
|
||||||
@@ -61,9 +59,9 @@ class Test_defender_ensure_system_updates_are_applied:
|
|||||||
assert result[0].status == "FAIL"
|
assert result[0].status == "FAIL"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"System updates are not applied for all the VMs in the subscription {AZURE_SUSCRIPTION}."
|
== f"System updates are not applied for all the VMs in the subscription {AZURE_SUBSCRIPTION}."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == "vm1"
|
assert result[0].resource_name == "vm1"
|
||||||
assert result[0].resource_id == resource_id
|
assert result[0].resource_id == resource_id
|
||||||
|
|
||||||
@@ -73,18 +71,18 @@ class Test_defender_ensure_system_updates_are_applied:
|
|||||||
resource_id = str(uuid4())
|
resource_id = str(uuid4())
|
||||||
defender_client = mock.MagicMock
|
defender_client = mock.MagicMock
|
||||||
defender_client.assessments = {
|
defender_client.assessments = {
|
||||||
AZURE_SUSCRIPTION: {
|
AZURE_SUBSCRIPTION: {
|
||||||
"Log Analytics agent should be installed on virtual machines": Defender_Assessments(
|
"Log Analytics agent should be installed on virtual machines": Assesment(
|
||||||
resource_id=resource_id,
|
resource_id=resource_id,
|
||||||
resource_name="vm1",
|
resource_name="vm1",
|
||||||
status="Healthy",
|
status="Healthy",
|
||||||
),
|
),
|
||||||
"Machines should be configured to periodically check for missing system updates": Defender_Assessments(
|
"Machines should be configured to periodically check for missing system updates": Assesment(
|
||||||
resource_id=resource_id,
|
resource_id=resource_id,
|
||||||
resource_name="vm1",
|
resource_name="vm1",
|
||||||
status="Unhealthy",
|
status="Unhealthy",
|
||||||
),
|
),
|
||||||
"System updates should be installed on your machines": Defender_Assessments(
|
"System updates should be installed on your machines": Assesment(
|
||||||
resource_id=resource_id,
|
resource_id=resource_id,
|
||||||
resource_name="vm1",
|
resource_name="vm1",
|
||||||
status="Healthy",
|
status="Healthy",
|
||||||
@@ -106,9 +104,9 @@ class Test_defender_ensure_system_updates_are_applied:
|
|||||||
assert result[0].status == "FAIL"
|
assert result[0].status == "FAIL"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"System updates are not applied for all the VMs in the subscription {AZURE_SUSCRIPTION}."
|
== f"System updates are not applied for all the VMs in the subscription {AZURE_SUBSCRIPTION}."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == "vm1"
|
assert result[0].resource_name == "vm1"
|
||||||
assert result[0].resource_id == resource_id
|
assert result[0].resource_id == resource_id
|
||||||
|
|
||||||
@@ -116,18 +114,18 @@ class Test_defender_ensure_system_updates_are_applied:
|
|||||||
resource_id = str(uuid4())
|
resource_id = str(uuid4())
|
||||||
defender_client = mock.MagicMock
|
defender_client = mock.MagicMock
|
||||||
defender_client.assessments = {
|
defender_client.assessments = {
|
||||||
AZURE_SUSCRIPTION: {
|
AZURE_SUBSCRIPTION: {
|
||||||
"Log Analytics agent should be installed on virtual machines": Defender_Assessments(
|
"Log Analytics agent should be installed on virtual machines": Assesment(
|
||||||
resource_id=resource_id,
|
resource_id=resource_id,
|
||||||
resource_name="vm1",
|
resource_name="vm1",
|
||||||
status="Healthy",
|
status="Healthy",
|
||||||
),
|
),
|
||||||
"Machines should be configured to periodically check for missing system updates": Defender_Assessments(
|
"Machines should be configured to periodically check for missing system updates": Assesment(
|
||||||
resource_id=resource_id,
|
resource_id=resource_id,
|
||||||
resource_name="vm1",
|
resource_name="vm1",
|
||||||
status="Healthy",
|
status="Healthy",
|
||||||
),
|
),
|
||||||
"System updates should be installed on your machines": Defender_Assessments(
|
"System updates should be installed on your machines": Assesment(
|
||||||
resource_id=resource_id,
|
resource_id=resource_id,
|
||||||
resource_name="vm1",
|
resource_name="vm1",
|
||||||
status="Unhealthy",
|
status="Unhealthy",
|
||||||
@@ -149,9 +147,9 @@ class Test_defender_ensure_system_updates_are_applied:
|
|||||||
assert result[0].status == "FAIL"
|
assert result[0].status == "FAIL"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"System updates are not applied for all the VMs in the subscription {AZURE_SUSCRIPTION}."
|
== f"System updates are not applied for all the VMs in the subscription {AZURE_SUBSCRIPTION}."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == "vm1"
|
assert result[0].resource_name == "vm1"
|
||||||
assert result[0].resource_id == resource_id
|
assert result[0].resource_id == resource_id
|
||||||
|
|
||||||
@@ -161,18 +159,18 @@ class Test_defender_ensure_system_updates_are_applied:
|
|||||||
resource_id = str(uuid4())
|
resource_id = str(uuid4())
|
||||||
defender_client = mock.MagicMock
|
defender_client = mock.MagicMock
|
||||||
defender_client.assessments = {
|
defender_client.assessments = {
|
||||||
AZURE_SUSCRIPTION: {
|
AZURE_SUBSCRIPTION: {
|
||||||
"Log Analytics agent should be installed on virtual machines": Defender_Assessments(
|
"Log Analytics agent should be installed on virtual machines": Assesment(
|
||||||
resource_id=resource_id,
|
resource_id=resource_id,
|
||||||
resource_name="vm1",
|
resource_name="vm1",
|
||||||
status="Healthy",
|
status="Healthy",
|
||||||
),
|
),
|
||||||
"Machines should be configured to periodically check for missing system updates": Defender_Assessments(
|
"Machines should be configured to periodically check for missing system updates": Assesment(
|
||||||
resource_id=resource_id,
|
resource_id=resource_id,
|
||||||
resource_name="vm1",
|
resource_name="vm1",
|
||||||
status="Healthy",
|
status="Healthy",
|
||||||
),
|
),
|
||||||
"System updates should be installed on your machines": Defender_Assessments(
|
"System updates should be installed on your machines": Assesment(
|
||||||
resource_id=resource_id,
|
resource_id=resource_id,
|
||||||
resource_name="vm1",
|
resource_name="vm1",
|
||||||
status="Healthy",
|
status="Healthy",
|
||||||
@@ -194,8 +192,8 @@ class Test_defender_ensure_system_updates_are_applied:
|
|||||||
assert result[0].status == "PASS"
|
assert result[0].status == "PASS"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"System updates are applied for all the VMs in the subscription {AZURE_SUSCRIPTION}."
|
== f"System updates are applied for all the VMs in the subscription {AZURE_SUBSCRIPTION}."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == "vm1"
|
assert result[0].resource_name == "vm1"
|
||||||
assert result[0].resource_id == resource_id
|
assert result[0].resource_id == resource_id
|
||||||
|
|||||||
@@ -2,22 +2,22 @@ from datetime import timedelta
|
|||||||
from unittest.mock import patch
|
from unittest.mock import patch
|
||||||
|
|
||||||
from prowler.providers.azure.services.defender.defender_service import (
|
from prowler.providers.azure.services.defender.defender_service import (
|
||||||
|
Assesment,
|
||||||
AutoProvisioningSetting,
|
AutoProvisioningSetting,
|
||||||
Defender,
|
Defender,
|
||||||
Defender_Assessments,
|
Pricing,
|
||||||
Defender_Pricing,
|
SecurityContacts,
|
||||||
Defender_Security_Contacts,
|
|
||||||
)
|
)
|
||||||
from tests.providers.azure.azure_fixtures import (
|
from tests.providers.azure.azure_fixtures import (
|
||||||
AZURE_SUSCRIPTION,
|
AZURE_SUBSCRIPTION,
|
||||||
set_mocked_azure_audit_info,
|
set_mocked_azure_audit_info,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def mock_defender_get_pricings(_):
|
def mock_defender_get_pricings(_):
|
||||||
return {
|
return {
|
||||||
AZURE_SUSCRIPTION: {
|
AZURE_SUBSCRIPTION: {
|
||||||
"Standard": Defender_Pricing(
|
"Standard": Pricing(
|
||||||
resource_id="resource_id",
|
resource_id="resource_id",
|
||||||
pricing_tier="pricing_tier",
|
pricing_tier="pricing_tier",
|
||||||
free_trial_remaining_time=timedelta(days=1),
|
free_trial_remaining_time=timedelta(days=1),
|
||||||
@@ -28,7 +28,7 @@ def mock_defender_get_pricings(_):
|
|||||||
|
|
||||||
def mock_defender_get_auto_provisioning_settings(_):
|
def mock_defender_get_auto_provisioning_settings(_):
|
||||||
return {
|
return {
|
||||||
AZURE_SUSCRIPTION: {
|
AZURE_SUBSCRIPTION: {
|
||||||
"default": AutoProvisioningSetting(
|
"default": AutoProvisioningSetting(
|
||||||
resource_id="/subscriptions/resource_id",
|
resource_id="/subscriptions/resource_id",
|
||||||
resource_name="default",
|
resource_name="default",
|
||||||
@@ -41,8 +41,8 @@ def mock_defender_get_auto_provisioning_settings(_):
|
|||||||
|
|
||||||
def mock_defender_get_assessments(_):
|
def mock_defender_get_assessments(_):
|
||||||
return {
|
return {
|
||||||
AZURE_SUSCRIPTION: {
|
AZURE_SUBSCRIPTION: {
|
||||||
"default": Defender_Assessments(
|
"default": Assesment(
|
||||||
resource_id="/subscriptions/resource_id",
|
resource_id="/subscriptions/resource_id",
|
||||||
resource_name="default",
|
resource_name="default",
|
||||||
status="Healthy",
|
status="Healthy",
|
||||||
@@ -53,8 +53,8 @@ def mock_defender_get_assessments(_):
|
|||||||
|
|
||||||
def mock_defender_get_security_contacts(_):
|
def mock_defender_get_security_contacts(_):
|
||||||
return {
|
return {
|
||||||
AZURE_SUSCRIPTION: {
|
AZURE_SUBSCRIPTION: {
|
||||||
"default": Defender_Security_Contacts(
|
"default": SecurityContacts(
|
||||||
resource_id="/subscriptions/resource_id",
|
resource_id="/subscriptions/resource_id",
|
||||||
emails="user@user.com, test@test.es",
|
emails="user@user.com, test@test.es",
|
||||||
phone="666666666",
|
phone="666666666",
|
||||||
@@ -87,7 +87,7 @@ class Test_Defender_Service:
|
|||||||
def test__get_client__(self):
|
def test__get_client__(self):
|
||||||
defender = Defender(set_mocked_azure_audit_info())
|
defender = Defender(set_mocked_azure_audit_info())
|
||||||
assert (
|
assert (
|
||||||
defender.clients[AZURE_SUSCRIPTION].__class__.__name__ == "SecurityCenter"
|
defender.clients[AZURE_SUBSCRIPTION].__class__.__name__ == "SecurityCenter"
|
||||||
)
|
)
|
||||||
|
|
||||||
def test__get_subscriptions__(self):
|
def test__get_subscriptions__(self):
|
||||||
@@ -99,14 +99,14 @@ class Test_Defender_Service:
|
|||||||
defender = Defender(set_mocked_azure_audit_info())
|
defender = Defender(set_mocked_azure_audit_info())
|
||||||
assert len(defender.pricings) == 1
|
assert len(defender.pricings) == 1
|
||||||
assert (
|
assert (
|
||||||
defender.pricings[AZURE_SUSCRIPTION]["Standard"].resource_id
|
defender.pricings[AZURE_SUBSCRIPTION]["Standard"].resource_id
|
||||||
== "resource_id"
|
== "resource_id"
|
||||||
)
|
)
|
||||||
assert (
|
assert (
|
||||||
defender.pricings[AZURE_SUSCRIPTION]["Standard"].pricing_tier
|
defender.pricings[AZURE_SUBSCRIPTION]["Standard"].pricing_tier
|
||||||
== "pricing_tier"
|
== "pricing_tier"
|
||||||
)
|
)
|
||||||
assert defender.pricings[AZURE_SUSCRIPTION][
|
assert defender.pricings[AZURE_SUBSCRIPTION][
|
||||||
"Standard"
|
"Standard"
|
||||||
].free_trial_remaining_time == timedelta(days=1)
|
].free_trial_remaining_time == timedelta(days=1)
|
||||||
|
|
||||||
@@ -114,25 +114,25 @@ class Test_Defender_Service:
|
|||||||
defender = Defender(set_mocked_azure_audit_info())
|
defender = Defender(set_mocked_azure_audit_info())
|
||||||
assert len(defender.auto_provisioning_settings) == 1
|
assert len(defender.auto_provisioning_settings) == 1
|
||||||
assert (
|
assert (
|
||||||
defender.auto_provisioning_settings[AZURE_SUSCRIPTION][
|
defender.auto_provisioning_settings[AZURE_SUBSCRIPTION][
|
||||||
"default"
|
"default"
|
||||||
].resource_id
|
].resource_id
|
||||||
== "/subscriptions/resource_id"
|
== "/subscriptions/resource_id"
|
||||||
)
|
)
|
||||||
assert (
|
assert (
|
||||||
defender.auto_provisioning_settings[AZURE_SUSCRIPTION][
|
defender.auto_provisioning_settings[AZURE_SUBSCRIPTION][
|
||||||
"default"
|
"default"
|
||||||
].resource_name
|
].resource_name
|
||||||
== "default"
|
== "default"
|
||||||
)
|
)
|
||||||
assert (
|
assert (
|
||||||
defender.auto_provisioning_settings[AZURE_SUSCRIPTION][
|
defender.auto_provisioning_settings[AZURE_SUBSCRIPTION][
|
||||||
"default"
|
"default"
|
||||||
].resource_type
|
].resource_type
|
||||||
== "Microsoft.Security/autoProvisioningSettings"
|
== "Microsoft.Security/autoProvisioningSettings"
|
||||||
)
|
)
|
||||||
assert (
|
assert (
|
||||||
defender.auto_provisioning_settings[AZURE_SUSCRIPTION][
|
defender.auto_provisioning_settings[AZURE_SUBSCRIPTION][
|
||||||
"default"
|
"default"
|
||||||
].auto_provision
|
].auto_provision
|
||||||
== "On"
|
== "On"
|
||||||
@@ -142,47 +142,47 @@ class Test_Defender_Service:
|
|||||||
defender = Defender(set_mocked_azure_audit_info())
|
defender = Defender(set_mocked_azure_audit_info())
|
||||||
assert len(defender.assessments) == 1
|
assert len(defender.assessments) == 1
|
||||||
assert (
|
assert (
|
||||||
defender.assessments[AZURE_SUSCRIPTION]["default"].resource_id
|
defender.assessments[AZURE_SUBSCRIPTION]["default"].resource_id
|
||||||
== "/subscriptions/resource_id"
|
== "/subscriptions/resource_id"
|
||||||
)
|
)
|
||||||
assert (
|
assert (
|
||||||
defender.assessments[AZURE_SUSCRIPTION]["default"].resource_name
|
defender.assessments[AZURE_SUBSCRIPTION]["default"].resource_name
|
||||||
== "default"
|
== "default"
|
||||||
)
|
)
|
||||||
assert defender.assessments[AZURE_SUSCRIPTION]["default"].status == "Healthy"
|
assert defender.assessments[AZURE_SUBSCRIPTION]["default"].status == "Healthy"
|
||||||
|
|
||||||
def test__get_security_contacts__(self):
|
def test__get_security_contacts__(self):
|
||||||
defender = Defender(set_mocked_azure_audit_info())
|
defender = Defender(set_mocked_azure_audit_info())
|
||||||
assert len(defender.security_contacts) == 1
|
assert len(defender.security_contacts) == 1
|
||||||
assert (
|
assert (
|
||||||
defender.security_contacts[AZURE_SUSCRIPTION]["default"].resource_id
|
defender.security_contacts[AZURE_SUBSCRIPTION]["default"].resource_id
|
||||||
== "/subscriptions/resource_id"
|
== "/subscriptions/resource_id"
|
||||||
)
|
)
|
||||||
assert (
|
assert (
|
||||||
defender.security_contacts[AZURE_SUSCRIPTION]["default"].emails
|
defender.security_contacts[AZURE_SUBSCRIPTION]["default"].emails
|
||||||
== "user@user.com, test@test.es"
|
== "user@user.com, test@test.es"
|
||||||
)
|
)
|
||||||
assert (
|
assert (
|
||||||
defender.security_contacts[AZURE_SUSCRIPTION]["default"].phone
|
defender.security_contacts[AZURE_SUBSCRIPTION]["default"].phone
|
||||||
== "666666666"
|
== "666666666"
|
||||||
)
|
)
|
||||||
assert (
|
assert (
|
||||||
defender.security_contacts[AZURE_SUSCRIPTION][
|
defender.security_contacts[AZURE_SUBSCRIPTION][
|
||||||
"default"
|
"default"
|
||||||
].alert_notifications_minimal_severity
|
].alert_notifications_minimal_severity
|
||||||
== "High"
|
== "High"
|
||||||
)
|
)
|
||||||
assert (
|
assert (
|
||||||
defender.security_contacts[AZURE_SUSCRIPTION][
|
defender.security_contacts[AZURE_SUBSCRIPTION][
|
||||||
"default"
|
"default"
|
||||||
].alert_notifications_state
|
].alert_notifications_state
|
||||||
== "On"
|
== "On"
|
||||||
)
|
)
|
||||||
assert defender.security_contacts[AZURE_SUSCRIPTION][
|
assert defender.security_contacts[AZURE_SUBSCRIPTION][
|
||||||
"default"
|
"default"
|
||||||
].notified_roles == ["Owner", "Contributor"]
|
].notified_roles == ["Owner", "Contributor"]
|
||||||
assert (
|
assert (
|
||||||
defender.security_contacts[AZURE_SUSCRIPTION][
|
defender.security_contacts[AZURE_SUBSCRIPTION][
|
||||||
"default"
|
"default"
|
||||||
].notified_roles_state
|
].notified_roles_state
|
||||||
== "On"
|
== "On"
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ from uuid import uuid4
|
|||||||
from azure.mgmt.authorization.v2022_04_01.models import Permission
|
from azure.mgmt.authorization.v2022_04_01.models import Permission
|
||||||
|
|
||||||
from prowler.providers.azure.services.iam.iam_service import Role
|
from prowler.providers.azure.services.iam.iam_service import Role
|
||||||
from tests.providers.azure.azure_fixtures import AZURE_SUSCRIPTION
|
from tests.providers.azure.azure_fixtures import AZURE_SUBSCRIPTION
|
||||||
|
|
||||||
|
|
||||||
class Test_iam_custom_role_has_permissions_to_administer_resource_locks:
|
class Test_iam_custom_role_has_permissions_to_administer_resource_locks:
|
||||||
@@ -30,7 +30,7 @@ class Test_iam_custom_role_has_permissions_to_administer_resource_locks:
|
|||||||
defender_client = mock.MagicMock
|
defender_client = mock.MagicMock
|
||||||
role_name = "test-role"
|
role_name = "test-role"
|
||||||
defender_client.custom_roles = {
|
defender_client.custom_roles = {
|
||||||
AZURE_SUSCRIPTION: [
|
AZURE_SUBSCRIPTION: [
|
||||||
Role(
|
Role(
|
||||||
id=str(uuid4()),
|
id=str(uuid4()),
|
||||||
name=role_name,
|
name=role_name,
|
||||||
@@ -62,12 +62,12 @@ class Test_iam_custom_role_has_permissions_to_administer_resource_locks:
|
|||||||
assert result[0].status == "PASS"
|
assert result[0].status == "PASS"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"Role {role_name} from subscription {AZURE_SUSCRIPTION} has permission to administer resource locks."
|
== f"Role {role_name} from subscription {AZURE_SUBSCRIPTION} has permission to administer resource locks."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert (
|
assert (
|
||||||
result[0].resource_id
|
result[0].resource_id
|
||||||
== defender_client.custom_roles[AZURE_SUSCRIPTION][0].id
|
== defender_client.custom_roles[AZURE_SUBSCRIPTION][0].id
|
||||||
)
|
)
|
||||||
assert result[0].resource_name == role_name
|
assert result[0].resource_name == role_name
|
||||||
|
|
||||||
@@ -77,7 +77,7 @@ class Test_iam_custom_role_has_permissions_to_administer_resource_locks:
|
|||||||
defender_client = mock.MagicMock
|
defender_client = mock.MagicMock
|
||||||
role_name = "test-role"
|
role_name = "test-role"
|
||||||
defender_client.custom_roles = {
|
defender_client.custom_roles = {
|
||||||
AZURE_SUSCRIPTION: [
|
AZURE_SUBSCRIPTION: [
|
||||||
Role(
|
Role(
|
||||||
id=str(uuid4()),
|
id=str(uuid4()),
|
||||||
name=role_name,
|
name=role_name,
|
||||||
@@ -102,11 +102,11 @@ class Test_iam_custom_role_has_permissions_to_administer_resource_locks:
|
|||||||
assert result[0].status == "FAIL"
|
assert result[0].status == "FAIL"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"Role {role_name} from subscription {AZURE_SUSCRIPTION} has no permission to administer resource locks."
|
== f"Role {role_name} from subscription {AZURE_SUBSCRIPTION} has no permission to administer resource locks."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert (
|
assert (
|
||||||
result[0].resource_id
|
result[0].resource_id
|
||||||
== defender_client.custom_roles[AZURE_SUSCRIPTION][0].id
|
== defender_client.custom_roles[AZURE_SUBSCRIPTION][0].id
|
||||||
)
|
)
|
||||||
assert result[0].resource_name == role_name
|
assert result[0].resource_name == role_name
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ from uuid import uuid4
|
|||||||
from azure.mgmt.authorization.v2022_04_01.models import Permission
|
from azure.mgmt.authorization.v2022_04_01.models import Permission
|
||||||
|
|
||||||
from prowler.providers.azure.services.iam.iam_service import Role
|
from prowler.providers.azure.services.iam.iam_service import Role
|
||||||
from tests.providers.azure.azure_fixtures import AZURE_SUSCRIPTION
|
from tests.providers.azure.azure_fixtures import AZURE_SUBSCRIPTION
|
||||||
|
|
||||||
|
|
||||||
class Test_iam_subscription_roles_owner_custom_not_created:
|
class Test_iam_subscription_roles_owner_custom_not_created:
|
||||||
@@ -28,7 +28,7 @@ class Test_iam_subscription_roles_owner_custom_not_created:
|
|||||||
defender_client = mock.MagicMock
|
defender_client = mock.MagicMock
|
||||||
role_name = "test-role"
|
role_name = "test-role"
|
||||||
defender_client.custom_roles = {
|
defender_client.custom_roles = {
|
||||||
AZURE_SUSCRIPTION: [
|
AZURE_SUBSCRIPTION: [
|
||||||
Role(
|
Role(
|
||||||
id=str(uuid4()),
|
id=str(uuid4()),
|
||||||
name=role_name,
|
name=role_name,
|
||||||
@@ -53,12 +53,12 @@ class Test_iam_subscription_roles_owner_custom_not_created:
|
|||||||
assert result[0].status == "FAIL"
|
assert result[0].status == "FAIL"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"Role {role_name} from subscription {AZURE_SUSCRIPTION} is a custom owner role."
|
== f"Role {role_name} from subscription {AZURE_SUBSCRIPTION} is a custom owner role."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert (
|
assert (
|
||||||
result[0].resource_id
|
result[0].resource_id
|
||||||
== defender_client.custom_roles[AZURE_SUSCRIPTION][0].id
|
== defender_client.custom_roles[AZURE_SUBSCRIPTION][0].id
|
||||||
)
|
)
|
||||||
assert result[0].resource_name == role_name
|
assert result[0].resource_name == role_name
|
||||||
|
|
||||||
@@ -66,7 +66,7 @@ class Test_iam_subscription_roles_owner_custom_not_created:
|
|||||||
defender_client = mock.MagicMock
|
defender_client = mock.MagicMock
|
||||||
role_name = "test-role"
|
role_name = "test-role"
|
||||||
defender_client.custom_roles = {
|
defender_client.custom_roles = {
|
||||||
AZURE_SUSCRIPTION: [
|
AZURE_SUBSCRIPTION: [
|
||||||
Role(
|
Role(
|
||||||
id=str(uuid4()),
|
id=str(uuid4()),
|
||||||
name=role_name,
|
name=role_name,
|
||||||
@@ -91,11 +91,11 @@ class Test_iam_subscription_roles_owner_custom_not_created:
|
|||||||
assert result[0].status == "PASS"
|
assert result[0].status == "PASS"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"Role {role_name} from subscription {AZURE_SUSCRIPTION} is not a custom owner role."
|
== f"Role {role_name} from subscription {AZURE_SUBSCRIPTION} is not a custom owner role."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert (
|
assert (
|
||||||
result[0].resource_id
|
result[0].resource_id
|
||||||
== defender_client.custom_roles[AZURE_SUSCRIPTION][0].id
|
== defender_client.custom_roles[AZURE_SUBSCRIPTION][0].id
|
||||||
)
|
)
|
||||||
assert result[0].resource_name == role_name
|
assert result[0].resource_name == role_name
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ from azure.mgmt.sql.models import (
|
|||||||
ServerExternalAdministrator,
|
ServerExternalAdministrator,
|
||||||
)
|
)
|
||||||
|
|
||||||
from prowler.providers.azure.services.sqlserver.sqlserver_service import SQL_Server
|
from prowler.providers.azure.services.sqlserver.sqlserver_service import Server
|
||||||
from tests.providers.azure.azure_fixtures import AZURE_SUSCRIPTION
|
from tests.providers.azure.azure_fixtures import AZURE_SUBSCRIPTION
|
||||||
|
|
||||||
|
|
||||||
class Test_sqlserver_auditing_enabled:
|
class Test_sqlserver_auditing_enabled:
|
||||||
@@ -33,8 +33,8 @@ class Test_sqlserver_auditing_enabled:
|
|||||||
sql_server_name = "SQL Server Name"
|
sql_server_name = "SQL Server Name"
|
||||||
sql_server_id = str(uuid4())
|
sql_server_id = str(uuid4())
|
||||||
sqlserver_client.sql_servers = {
|
sqlserver_client.sql_servers = {
|
||||||
AZURE_SUSCRIPTION: [
|
AZURE_SUBSCRIPTION: [
|
||||||
SQL_Server(
|
Server(
|
||||||
id=sql_server_id,
|
id=sql_server_id,
|
||||||
name=sql_server_name,
|
name=sql_server_name,
|
||||||
public_network_access="",
|
public_network_access="",
|
||||||
@@ -60,9 +60,9 @@ class Test_sqlserver_auditing_enabled:
|
|||||||
assert result[0].status == "FAIL"
|
assert result[0].status == "FAIL"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"SQL Server {sql_server_name} from subscription {AZURE_SUSCRIPTION} does not have any auditing policy configured."
|
== f"SQL Server {sql_server_name} from subscription {AZURE_SUBSCRIPTION} does not have any auditing policy configured."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == sql_server_name
|
assert result[0].resource_name == sql_server_name
|
||||||
assert result[0].resource_id == sql_server_id
|
assert result[0].resource_id == sql_server_id
|
||||||
|
|
||||||
@@ -71,8 +71,8 @@ class Test_sqlserver_auditing_enabled:
|
|||||||
sql_server_name = "SQL Server Name"
|
sql_server_name = "SQL Server Name"
|
||||||
sql_server_id = str(uuid4())
|
sql_server_id = str(uuid4())
|
||||||
sqlserver_client.sql_servers = {
|
sqlserver_client.sql_servers = {
|
||||||
AZURE_SUSCRIPTION: [
|
AZURE_SUBSCRIPTION: [
|
||||||
SQL_Server(
|
Server(
|
||||||
id=sql_server_id,
|
id=sql_server_id,
|
||||||
name=sql_server_name,
|
name=sql_server_name,
|
||||||
public_network_access="",
|
public_network_access="",
|
||||||
@@ -98,8 +98,8 @@ class Test_sqlserver_auditing_enabled:
|
|||||||
assert result[0].status == "PASS"
|
assert result[0].status == "PASS"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"SQL Server {sql_server_name} from subscription {AZURE_SUSCRIPTION} has a auditing policy configured."
|
== f"SQL Server {sql_server_name} from subscription {AZURE_SUBSCRIPTION} has a auditing policy configured."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == sql_server_name
|
assert result[0].resource_name == sql_server_name
|
||||||
assert result[0].resource_id == sql_server_id
|
assert result[0].resource_id == sql_server_id
|
||||||
|
|||||||
@@ -3,8 +3,8 @@ from uuid import uuid4
|
|||||||
|
|
||||||
from azure.mgmt.sql.models import ServerBlobAuditingPolicy
|
from azure.mgmt.sql.models import ServerBlobAuditingPolicy
|
||||||
|
|
||||||
from prowler.providers.azure.services.sqlserver.sqlserver_service import SQL_Server
|
from prowler.providers.azure.services.sqlserver.sqlserver_service import Server
|
||||||
from tests.providers.azure.azure_fixtures import AZURE_SUSCRIPTION
|
from tests.providers.azure.azure_fixtures import AZURE_SUBSCRIPTION
|
||||||
|
|
||||||
|
|
||||||
class Test_sqlserver_auditing_retention_90_days:
|
class Test_sqlserver_auditing_retention_90_days:
|
||||||
@@ -29,8 +29,8 @@ class Test_sqlserver_auditing_retention_90_days:
|
|||||||
sql_server_name = "SQL Server Name"
|
sql_server_name = "SQL Server Name"
|
||||||
sql_server_id = str(uuid4())
|
sql_server_id = str(uuid4())
|
||||||
sqlserver_client.sql_servers = {
|
sqlserver_client.sql_servers = {
|
||||||
AZURE_SUSCRIPTION: [
|
AZURE_SUBSCRIPTION: [
|
||||||
SQL_Server(
|
Server(
|
||||||
id=sql_server_id,
|
id=sql_server_id,
|
||||||
name=sql_server_name,
|
name=sql_server_name,
|
||||||
public_network_access="",
|
public_network_access="",
|
||||||
@@ -58,9 +58,9 @@ class Test_sqlserver_auditing_retention_90_days:
|
|||||||
assert result[0].status == "FAIL"
|
assert result[0].status == "FAIL"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"SQL Server {sql_server_name} from subscription {AZURE_SUSCRIPTION} has auditing disabled."
|
== f"SQL Server {sql_server_name} from subscription {AZURE_SUBSCRIPTION} has auditing disabled."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == sql_server_name
|
assert result[0].resource_name == sql_server_name
|
||||||
assert result[0].resource_id == sql_server_id
|
assert result[0].resource_id == sql_server_id
|
||||||
|
|
||||||
@@ -69,8 +69,8 @@ class Test_sqlserver_auditing_retention_90_days:
|
|||||||
sql_server_name = "SQL Server Name"
|
sql_server_name = "SQL Server Name"
|
||||||
sql_server_id = str(uuid4())
|
sql_server_id = str(uuid4())
|
||||||
sqlserver_client.sql_servers = {
|
sqlserver_client.sql_servers = {
|
||||||
AZURE_SUSCRIPTION: [
|
AZURE_SUBSCRIPTION: [
|
||||||
SQL_Server(
|
Server(
|
||||||
id=sql_server_id,
|
id=sql_server_id,
|
||||||
name=sql_server_name,
|
name=sql_server_name,
|
||||||
public_network_access="",
|
public_network_access="",
|
||||||
@@ -100,9 +100,9 @@ class Test_sqlserver_auditing_retention_90_days:
|
|||||||
assert result[0].status == "FAIL"
|
assert result[0].status == "FAIL"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"SQL Server {sql_server_name} from subscription {AZURE_SUSCRIPTION} has auditing retention less than 91 days."
|
== f"SQL Server {sql_server_name} from subscription {AZURE_SUBSCRIPTION} has auditing retention less than 91 days."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == sql_server_name
|
assert result[0].resource_name == sql_server_name
|
||||||
assert result[0].resource_id == sql_server_id
|
assert result[0].resource_id == sql_server_id
|
||||||
|
|
||||||
@@ -111,8 +111,8 @@ class Test_sqlserver_auditing_retention_90_days:
|
|||||||
sql_server_name = "SQL Server Name"
|
sql_server_name = "SQL Server Name"
|
||||||
sql_server_id = str(uuid4())
|
sql_server_id = str(uuid4())
|
||||||
sqlserver_client.sql_servers = {
|
sqlserver_client.sql_servers = {
|
||||||
AZURE_SUSCRIPTION: [
|
AZURE_SUBSCRIPTION: [
|
||||||
SQL_Server(
|
Server(
|
||||||
id=sql_server_id,
|
id=sql_server_id,
|
||||||
name=sql_server_name,
|
name=sql_server_name,
|
||||||
public_network_access="",
|
public_network_access="",
|
||||||
@@ -142,9 +142,9 @@ class Test_sqlserver_auditing_retention_90_days:
|
|||||||
assert result[0].status == "PASS"
|
assert result[0].status == "PASS"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"SQL Server {sql_server_name} from subscription {AZURE_SUSCRIPTION} has auditing retention greater than 90 days."
|
== f"SQL Server {sql_server_name} from subscription {AZURE_SUBSCRIPTION} has auditing retention greater than 90 days."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == sql_server_name
|
assert result[0].resource_name == sql_server_name
|
||||||
assert result[0].resource_id == sql_server_id
|
assert result[0].resource_id == sql_server_id
|
||||||
|
|
||||||
@@ -155,8 +155,8 @@ class Test_sqlserver_auditing_retention_90_days:
|
|||||||
sql_server_name = "SQL Server Name"
|
sql_server_name = "SQL Server Name"
|
||||||
sql_server_id = str(uuid4())
|
sql_server_id = str(uuid4())
|
||||||
sqlserver_client.sql_servers = {
|
sqlserver_client.sql_servers = {
|
||||||
AZURE_SUSCRIPTION: [
|
AZURE_SUBSCRIPTION: [
|
||||||
SQL_Server(
|
Server(
|
||||||
id=sql_server_id,
|
id=sql_server_id,
|
||||||
name=sql_server_name,
|
name=sql_server_name,
|
||||||
public_network_access="",
|
public_network_access="",
|
||||||
@@ -187,9 +187,9 @@ class Test_sqlserver_auditing_retention_90_days:
|
|||||||
assert result[0].status == "PASS"
|
assert result[0].status == "PASS"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"SQL Server {sql_server_name} from subscription {AZURE_SUSCRIPTION} has auditing retention greater than 90 days."
|
== f"SQL Server {sql_server_name} from subscription {AZURE_SUBSCRIPTION} has auditing retention greater than 90 days."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == sql_server_name
|
assert result[0].resource_name == sql_server_name
|
||||||
assert result[0].resource_id == sql_server_id
|
assert result[0].resource_id == sql_server_id
|
||||||
|
|
||||||
@@ -200,8 +200,8 @@ class Test_sqlserver_auditing_retention_90_days:
|
|||||||
sql_server_name = "SQL Server Name"
|
sql_server_name = "SQL Server Name"
|
||||||
sql_server_id = str(uuid4())
|
sql_server_id = str(uuid4())
|
||||||
sqlserver_client.sql_servers = {
|
sqlserver_client.sql_servers = {
|
||||||
AZURE_SUSCRIPTION: [
|
AZURE_SUBSCRIPTION: [
|
||||||
SQL_Server(
|
Server(
|
||||||
id=sql_server_id,
|
id=sql_server_id,
|
||||||
name=sql_server_name,
|
name=sql_server_name,
|
||||||
public_network_access="",
|
public_network_access="",
|
||||||
@@ -232,8 +232,8 @@ class Test_sqlserver_auditing_retention_90_days:
|
|||||||
assert result[0].status == "FAIL"
|
assert result[0].status == "FAIL"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"SQL Server {sql_server_name} from subscription {AZURE_SUSCRIPTION} has auditing retention less than 91 days."
|
== f"SQL Server {sql_server_name} from subscription {AZURE_SUBSCRIPTION} has auditing retention less than 91 days."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == sql_server_name
|
assert result[0].resource_name == sql_server_name
|
||||||
assert result[0].resource_id == sql_server_id
|
assert result[0].resource_id == sql_server_id
|
||||||
|
|||||||
@@ -3,9 +3,9 @@ from uuid import uuid4
|
|||||||
|
|
||||||
from azure.mgmt.sql.models import ServerExternalAdministrator
|
from azure.mgmt.sql.models import ServerExternalAdministrator
|
||||||
|
|
||||||
from prowler.providers.azure.services.sqlserver.sqlserver_service import SQL_Server
|
from prowler.providers.azure.services.sqlserver.sqlserver_service import Server
|
||||||
|
|
||||||
AZURE_SUSCRIPTION = str(uuid4())
|
AZURE_SUBSCRIPTION = str(uuid4())
|
||||||
|
|
||||||
|
|
||||||
class Test_sqlserver_azuread_administrator_enabled:
|
class Test_sqlserver_azuread_administrator_enabled:
|
||||||
@@ -30,8 +30,8 @@ class Test_sqlserver_azuread_administrator_enabled:
|
|||||||
sql_server_name = "SQL Server Name"
|
sql_server_name = "SQL Server Name"
|
||||||
sql_server_id = str(uuid4())
|
sql_server_id = str(uuid4())
|
||||||
sqlserver_client.sql_servers = {
|
sqlserver_client.sql_servers = {
|
||||||
AZURE_SUSCRIPTION: [
|
AZURE_SUBSCRIPTION: [
|
||||||
SQL_Server(
|
Server(
|
||||||
id=sql_server_id,
|
id=sql_server_id,
|
||||||
name=sql_server_name,
|
name=sql_server_name,
|
||||||
public_network_access="",
|
public_network_access="",
|
||||||
@@ -57,9 +57,9 @@ class Test_sqlserver_azuread_administrator_enabled:
|
|||||||
assert result[0].status == "FAIL"
|
assert result[0].status == "FAIL"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"SQL Server {sql_server_name} from subscription {AZURE_SUSCRIPTION} does not have an Active Directory administrator."
|
== f"SQL Server {sql_server_name} from subscription {AZURE_SUBSCRIPTION} does not have an Active Directory administrator."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == sql_server_name
|
assert result[0].resource_name == sql_server_name
|
||||||
assert result[0].resource_id == sql_server_id
|
assert result[0].resource_id == sql_server_id
|
||||||
|
|
||||||
@@ -68,8 +68,8 @@ class Test_sqlserver_azuread_administrator_enabled:
|
|||||||
sql_server_name = "SQL Server Name"
|
sql_server_name = "SQL Server Name"
|
||||||
sql_server_id = str(uuid4())
|
sql_server_id = str(uuid4())
|
||||||
sqlserver_client.sql_servers = {
|
sqlserver_client.sql_servers = {
|
||||||
AZURE_SUSCRIPTION: [
|
AZURE_SUBSCRIPTION: [
|
||||||
SQL_Server(
|
Server(
|
||||||
id=sql_server_id,
|
id=sql_server_id,
|
||||||
name=sql_server_name,
|
name=sql_server_name,
|
||||||
public_network_access="",
|
public_network_access="",
|
||||||
@@ -97,9 +97,9 @@ class Test_sqlserver_azuread_administrator_enabled:
|
|||||||
assert result[0].status == "FAIL"
|
assert result[0].status == "FAIL"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"SQL Server {sql_server_name} from subscription {AZURE_SUSCRIPTION} does not have an Active Directory administrator."
|
== f"SQL Server {sql_server_name} from subscription {AZURE_SUBSCRIPTION} does not have an Active Directory administrator."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == sql_server_name
|
assert result[0].resource_name == sql_server_name
|
||||||
assert result[0].resource_id == sql_server_id
|
assert result[0].resource_id == sql_server_id
|
||||||
|
|
||||||
@@ -108,8 +108,8 @@ class Test_sqlserver_azuread_administrator_enabled:
|
|||||||
sql_server_name = "SQL Server Name"
|
sql_server_name = "SQL Server Name"
|
||||||
sql_server_id = str(uuid4())
|
sql_server_id = str(uuid4())
|
||||||
sqlserver_client.sql_servers = {
|
sqlserver_client.sql_servers = {
|
||||||
AZURE_SUSCRIPTION: [
|
AZURE_SUBSCRIPTION: [
|
||||||
SQL_Server(
|
Server(
|
||||||
id=sql_server_id,
|
id=sql_server_id,
|
||||||
name=sql_server_name,
|
name=sql_server_name,
|
||||||
public_network_access="",
|
public_network_access="",
|
||||||
@@ -137,8 +137,8 @@ class Test_sqlserver_azuread_administrator_enabled:
|
|||||||
assert result[0].status == "PASS"
|
assert result[0].status == "PASS"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"SQL Server {sql_server_name} from subscription {AZURE_SUSCRIPTION} has an Active Directory administrator."
|
== f"SQL Server {sql_server_name} from subscription {AZURE_SUBSCRIPTION} has an Active Directory administrator."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == sql_server_name
|
assert result[0].resource_name == sql_server_name
|
||||||
assert result[0].resource_id == sql_server_id
|
assert result[0].resource_id == sql_server_id
|
||||||
|
|||||||
@@ -7,18 +7,18 @@ from azure.mgmt.sql.models import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
from prowler.providers.azure.services.sqlserver.sqlserver_service import (
|
from prowler.providers.azure.services.sqlserver.sqlserver_service import (
|
||||||
DatabaseServer,
|
Database,
|
||||||
SQL_Server,
|
Server,
|
||||||
SQLServer,
|
SQLServer,
|
||||||
)
|
)
|
||||||
from tests.providers.azure.azure_fixtures import (
|
from tests.providers.azure.azure_fixtures import (
|
||||||
AZURE_SUSCRIPTION,
|
AZURE_SUBSCRIPTION,
|
||||||
set_mocked_azure_audit_info,
|
set_mocked_azure_audit_info,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def mock_sqlserver_get_sql_servers(_):
|
def mock_sqlserver_get_sql_servers(_):
|
||||||
database = DatabaseServer(
|
database = Database(
|
||||||
id="id",
|
id="id",
|
||||||
name="name",
|
name="name",
|
||||||
type="type",
|
type="type",
|
||||||
@@ -27,8 +27,8 @@ def mock_sqlserver_get_sql_servers(_):
|
|||||||
tde_encryption=TransparentDataEncryption(status="Disabled"),
|
tde_encryption=TransparentDataEncryption(status="Disabled"),
|
||||||
)
|
)
|
||||||
return {
|
return {
|
||||||
AZURE_SUSCRIPTION: [
|
AZURE_SUBSCRIPTION: [
|
||||||
SQL_Server(
|
Server(
|
||||||
id="id",
|
id="id",
|
||||||
name="name",
|
name="name",
|
||||||
public_network_access="public_network_access",
|
public_network_access="public_network_access",
|
||||||
@@ -56,12 +56,12 @@ class Test_SqlServer_Service:
|
|||||||
def test__get_client__(self):
|
def test__get_client__(self):
|
||||||
sql_server = SQLServer(set_mocked_azure_audit_info())
|
sql_server = SQLServer(set_mocked_azure_audit_info())
|
||||||
assert (
|
assert (
|
||||||
sql_server.clients[AZURE_SUSCRIPTION].__class__.__name__
|
sql_server.clients[AZURE_SUBSCRIPTION].__class__.__name__
|
||||||
== "SqlManagementClient"
|
== "SqlManagementClient"
|
||||||
)
|
)
|
||||||
|
|
||||||
def test__get_sql_servers__(self):
|
def test__get_sql_servers__(self):
|
||||||
database = DatabaseServer(
|
database = Database(
|
||||||
id="id",
|
id="id",
|
||||||
name="name",
|
name="name",
|
||||||
type="type",
|
type="type",
|
||||||
@@ -71,31 +71,30 @@ class Test_SqlServer_Service:
|
|||||||
)
|
)
|
||||||
sql_server = SQLServer(set_mocked_azure_audit_info())
|
sql_server = SQLServer(set_mocked_azure_audit_info())
|
||||||
assert (
|
assert (
|
||||||
sql_server.sql_servers[AZURE_SUSCRIPTION][0].__class__.__name__
|
sql_server.sql_servers[AZURE_SUBSCRIPTION][0].__class__.__name__ == "Server"
|
||||||
== "SQL_Server"
|
|
||||||
)
|
)
|
||||||
assert sql_server.sql_servers[AZURE_SUSCRIPTION][0].id == "id"
|
assert sql_server.sql_servers[AZURE_SUBSCRIPTION][0].id == "id"
|
||||||
assert sql_server.sql_servers[AZURE_SUSCRIPTION][0].name == "name"
|
assert sql_server.sql_servers[AZURE_SUBSCRIPTION][0].name == "name"
|
||||||
assert (
|
assert (
|
||||||
sql_server.sql_servers[AZURE_SUSCRIPTION][0].public_network_access
|
sql_server.sql_servers[AZURE_SUBSCRIPTION][0].public_network_access
|
||||||
== "public_network_access"
|
== "public_network_access"
|
||||||
)
|
)
|
||||||
assert (
|
assert (
|
||||||
sql_server.sql_servers[AZURE_SUSCRIPTION][0].minimal_tls_version
|
sql_server.sql_servers[AZURE_SUBSCRIPTION][0].minimal_tls_version
|
||||||
== "minimal_tls_version"
|
== "minimal_tls_version"
|
||||||
)
|
)
|
||||||
assert sql_server.sql_servers[AZURE_SUSCRIPTION][0].administrators is None
|
assert sql_server.sql_servers[AZURE_SUBSCRIPTION][0].administrators is None
|
||||||
assert sql_server.sql_servers[AZURE_SUSCRIPTION][0].auditing_policies is None
|
assert sql_server.sql_servers[AZURE_SUBSCRIPTION][0].auditing_policies is None
|
||||||
assert sql_server.sql_servers[AZURE_SUSCRIPTION][0].firewall_rules is None
|
assert sql_server.sql_servers[AZURE_SUBSCRIPTION][0].firewall_rules is None
|
||||||
assert (
|
assert (
|
||||||
sql_server.sql_servers[AZURE_SUSCRIPTION][
|
sql_server.sql_servers[AZURE_SUBSCRIPTION][
|
||||||
0
|
0
|
||||||
].encryption_protector.__class__.__name__
|
].encryption_protector.__class__.__name__
|
||||||
== "EncryptionProtector"
|
== "EncryptionProtector"
|
||||||
)
|
)
|
||||||
assert sql_server.sql_servers[AZURE_SUSCRIPTION][0].databases == [database]
|
assert sql_server.sql_servers[AZURE_SUBSCRIPTION][0].databases == [database]
|
||||||
assert (
|
assert (
|
||||||
sql_server.sql_servers[AZURE_SUSCRIPTION][
|
sql_server.sql_servers[AZURE_SUBSCRIPTION][
|
||||||
0
|
0
|
||||||
].vulnerability_assessment.__class__.__name__
|
].vulnerability_assessment.__class__.__name__
|
||||||
== "ServerVulnerabilityAssessment"
|
== "ServerVulnerabilityAssessment"
|
||||||
@@ -104,22 +103,24 @@ class Test_SqlServer_Service:
|
|||||||
def test__get_databases__(self):
|
def test__get_databases__(self):
|
||||||
sql_server = SQLServer(set_mocked_azure_audit_info())
|
sql_server = SQLServer(set_mocked_azure_audit_info())
|
||||||
assert (
|
assert (
|
||||||
sql_server.sql_servers[AZURE_SUSCRIPTION][0].databases[0].__class__.__name__
|
sql_server.sql_servers[AZURE_SUBSCRIPTION][0]
|
||||||
== "DatabaseServer"
|
.databases[0]
|
||||||
|
.__class__.__name__
|
||||||
|
== "Database"
|
||||||
)
|
)
|
||||||
assert sql_server.sql_servers[AZURE_SUSCRIPTION][0].databases[0].id == "id"
|
assert sql_server.sql_servers[AZURE_SUBSCRIPTION][0].databases[0].id == "id"
|
||||||
assert sql_server.sql_servers[AZURE_SUSCRIPTION][0].databases[0].name == "name"
|
assert sql_server.sql_servers[AZURE_SUBSCRIPTION][0].databases[0].name == "name"
|
||||||
assert sql_server.sql_servers[AZURE_SUSCRIPTION][0].databases[0].type == "type"
|
assert sql_server.sql_servers[AZURE_SUBSCRIPTION][0].databases[0].type == "type"
|
||||||
assert (
|
assert (
|
||||||
sql_server.sql_servers[AZURE_SUSCRIPTION][0].databases[0].location
|
sql_server.sql_servers[AZURE_SUBSCRIPTION][0].databases[0].location
|
||||||
== "location"
|
== "location"
|
||||||
)
|
)
|
||||||
assert (
|
assert (
|
||||||
sql_server.sql_servers[AZURE_SUSCRIPTION][0].databases[0].managed_by
|
sql_server.sql_servers[AZURE_SUBSCRIPTION][0].databases[0].managed_by
|
||||||
== "managed_by"
|
== "managed_by"
|
||||||
)
|
)
|
||||||
assert (
|
assert (
|
||||||
sql_server.sql_servers[AZURE_SUSCRIPTION][0]
|
sql_server.sql_servers[AZURE_SUBSCRIPTION][0]
|
||||||
.databases[0]
|
.databases[0]
|
||||||
.tde_encryption.__class__.__name__
|
.tde_encryption.__class__.__name__
|
||||||
== "TransparentDataEncryption"
|
== "TransparentDataEncryption"
|
||||||
@@ -128,13 +129,13 @@ class Test_SqlServer_Service:
|
|||||||
def test__get_transparent_data_encryption__(self):
|
def test__get_transparent_data_encryption__(self):
|
||||||
sql_server = SQLServer(set_mocked_azure_audit_info())
|
sql_server = SQLServer(set_mocked_azure_audit_info())
|
||||||
assert (
|
assert (
|
||||||
sql_server.sql_servers[AZURE_SUSCRIPTION][0]
|
sql_server.sql_servers[AZURE_SUBSCRIPTION][0]
|
||||||
.databases[0]
|
.databases[0]
|
||||||
.tde_encryption.__class__.__name__
|
.tde_encryption.__class__.__name__
|
||||||
== "TransparentDataEncryption"
|
== "TransparentDataEncryption"
|
||||||
)
|
)
|
||||||
assert (
|
assert (
|
||||||
sql_server.sql_servers[AZURE_SUSCRIPTION][0]
|
sql_server.sql_servers[AZURE_SUBSCRIPTION][0]
|
||||||
.databases[0]
|
.databases[0]
|
||||||
.tde_encryption.status
|
.tde_encryption.status
|
||||||
== "Disabled"
|
== "Disabled"
|
||||||
@@ -143,13 +144,13 @@ class Test_SqlServer_Service:
|
|||||||
def test__get_encryption_protectors__(self):
|
def test__get_encryption_protectors__(self):
|
||||||
sql_server = SQLServer(set_mocked_azure_audit_info())
|
sql_server = SQLServer(set_mocked_azure_audit_info())
|
||||||
assert (
|
assert (
|
||||||
sql_server.sql_servers[AZURE_SUSCRIPTION][
|
sql_server.sql_servers[AZURE_SUBSCRIPTION][
|
||||||
0
|
0
|
||||||
].encryption_protector.__class__.__name__
|
].encryption_protector.__class__.__name__
|
||||||
== "EncryptionProtector"
|
== "EncryptionProtector"
|
||||||
)
|
)
|
||||||
assert (
|
assert (
|
||||||
sql_server.sql_servers[AZURE_SUSCRIPTION][
|
sql_server.sql_servers[AZURE_SUBSCRIPTION][
|
||||||
0
|
0
|
||||||
].encryption_protector.server_key_type
|
].encryption_protector.server_key_type
|
||||||
== "AzureKeyVault"
|
== "AzureKeyVault"
|
||||||
@@ -164,13 +165,13 @@ class Test_SqlServer_Service:
|
|||||||
sql_server = SQLServer(set_mocked_azure_audit_info())
|
sql_server = SQLServer(set_mocked_azure_audit_info())
|
||||||
storage_container_path = "/subcription_id/resource_group/sql_server"
|
storage_container_path = "/subcription_id/resource_group/sql_server"
|
||||||
assert (
|
assert (
|
||||||
sql_server.sql_servers[AZURE_SUSCRIPTION][
|
sql_server.sql_servers[AZURE_SUBSCRIPTION][
|
||||||
0
|
0
|
||||||
].vulnerability_assessment.__class__.__name__
|
].vulnerability_assessment.__class__.__name__
|
||||||
== "ServerVulnerabilityAssessment"
|
== "ServerVulnerabilityAssessment"
|
||||||
)
|
)
|
||||||
assert (
|
assert (
|
||||||
sql_server.sql_servers[AZURE_SUSCRIPTION][
|
sql_server.sql_servers[AZURE_SUBSCRIPTION][
|
||||||
0
|
0
|
||||||
].vulnerability_assessment.storage_container_path
|
].vulnerability_assessment.storage_container_path
|
||||||
== storage_container_path
|
== storage_container_path
|
||||||
|
|||||||
@@ -4,11 +4,11 @@ from uuid import uuid4
|
|||||||
from azure.mgmt.sql.models import EncryptionProtector, TransparentDataEncryption
|
from azure.mgmt.sql.models import EncryptionProtector, TransparentDataEncryption
|
||||||
|
|
||||||
from prowler.providers.azure.services.sqlserver.sqlserver_service import (
|
from prowler.providers.azure.services.sqlserver.sqlserver_service import (
|
||||||
DatabaseServer,
|
Database,
|
||||||
SQL_Server,
|
Server,
|
||||||
)
|
)
|
||||||
|
|
||||||
AZURE_SUSCRIPTION = str(uuid4())
|
AZURE_SUBSCRIPTION = str(uuid4())
|
||||||
|
|
||||||
|
|
||||||
class Test_sqlserver_tde_encrypted_with_cmk:
|
class Test_sqlserver_tde_encrypted_with_cmk:
|
||||||
@@ -33,8 +33,8 @@ class Test_sqlserver_tde_encrypted_with_cmk:
|
|||||||
sql_server_name = "SQL Server Name"
|
sql_server_name = "SQL Server Name"
|
||||||
sql_server_id = str(uuid4())
|
sql_server_id = str(uuid4())
|
||||||
sqlserver_client.sql_servers = {
|
sqlserver_client.sql_servers = {
|
||||||
AZURE_SUSCRIPTION: [
|
AZURE_SUBSCRIPTION: [
|
||||||
SQL_Server(
|
Server(
|
||||||
id=sql_server_id,
|
id=sql_server_id,
|
||||||
name=sql_server_name,
|
name=sql_server_name,
|
||||||
public_network_access="",
|
public_network_access="",
|
||||||
@@ -63,7 +63,7 @@ class Test_sqlserver_tde_encrypted_with_cmk:
|
|||||||
sqlserver_client = mock.MagicMock
|
sqlserver_client = mock.MagicMock
|
||||||
sql_server_name = "SQL Server Name"
|
sql_server_name = "SQL Server Name"
|
||||||
sql_server_id = str(uuid4())
|
sql_server_id = str(uuid4())
|
||||||
database = DatabaseServer(
|
database = Database(
|
||||||
id="id",
|
id="id",
|
||||||
name="name",
|
name="name",
|
||||||
type="type",
|
type="type",
|
||||||
@@ -72,8 +72,8 @@ class Test_sqlserver_tde_encrypted_with_cmk:
|
|||||||
tde_encryption=None,
|
tde_encryption=None,
|
||||||
)
|
)
|
||||||
sqlserver_client.sql_servers = {
|
sqlserver_client.sql_servers = {
|
||||||
AZURE_SUSCRIPTION: [
|
AZURE_SUBSCRIPTION: [
|
||||||
SQL_Server(
|
Server(
|
||||||
id=sql_server_id,
|
id=sql_server_id,
|
||||||
name=sql_server_name,
|
name=sql_server_name,
|
||||||
public_network_access="",
|
public_network_access="",
|
||||||
@@ -103,9 +103,9 @@ class Test_sqlserver_tde_encrypted_with_cmk:
|
|||||||
assert result[0].status == "FAIL"
|
assert result[0].status == "FAIL"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"SQL Server {sql_server_name} from subscription {AZURE_SUSCRIPTION} has TDE disabled without CMK."
|
== f"SQL Server {sql_server_name} from subscription {AZURE_SUBSCRIPTION} has TDE disabled without CMK."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == sql_server_name
|
assert result[0].resource_name == sql_server_name
|
||||||
assert result[0].resource_id == sql_server_id
|
assert result[0].resource_id == sql_server_id
|
||||||
|
|
||||||
@@ -113,7 +113,7 @@ class Test_sqlserver_tde_encrypted_with_cmk:
|
|||||||
sqlserver_client = mock.MagicMock
|
sqlserver_client = mock.MagicMock
|
||||||
sql_server_name = "SQL Server Name"
|
sql_server_name = "SQL Server Name"
|
||||||
sql_server_id = str(uuid4())
|
sql_server_id = str(uuid4())
|
||||||
database = DatabaseServer(
|
database = Database(
|
||||||
id="id",
|
id="id",
|
||||||
name="name",
|
name="name",
|
||||||
type="type",
|
type="type",
|
||||||
@@ -122,8 +122,8 @@ class Test_sqlserver_tde_encrypted_with_cmk:
|
|||||||
tde_encryption=TransparentDataEncryption(status="Disabled"),
|
tde_encryption=TransparentDataEncryption(status="Disabled"),
|
||||||
)
|
)
|
||||||
sqlserver_client.sql_servers = {
|
sqlserver_client.sql_servers = {
|
||||||
AZURE_SUSCRIPTION: [
|
AZURE_SUBSCRIPTION: [
|
||||||
SQL_Server(
|
Server(
|
||||||
id=sql_server_id,
|
id=sql_server_id,
|
||||||
name=sql_server_name,
|
name=sql_server_name,
|
||||||
public_network_access="",
|
public_network_access="",
|
||||||
@@ -153,9 +153,9 @@ class Test_sqlserver_tde_encrypted_with_cmk:
|
|||||||
assert result[0].status == "FAIL"
|
assert result[0].status == "FAIL"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"SQL Server {sql_server_name} from subscription {AZURE_SUSCRIPTION} has TDE disabled with CMK."
|
== f"SQL Server {sql_server_name} from subscription {AZURE_SUBSCRIPTION} has TDE disabled with CMK."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == sql_server_name
|
assert result[0].resource_name == sql_server_name
|
||||||
assert result[0].resource_id == sql_server_id
|
assert result[0].resource_id == sql_server_id
|
||||||
|
|
||||||
@@ -163,7 +163,7 @@ class Test_sqlserver_tde_encrypted_with_cmk:
|
|||||||
sqlserver_client = mock.MagicMock
|
sqlserver_client = mock.MagicMock
|
||||||
sql_server_name = "SQL Server Name"
|
sql_server_name = "SQL Server Name"
|
||||||
sql_server_id = str(uuid4())
|
sql_server_id = str(uuid4())
|
||||||
database = DatabaseServer(
|
database = Database(
|
||||||
id="id",
|
id="id",
|
||||||
name="name",
|
name="name",
|
||||||
type="type",
|
type="type",
|
||||||
@@ -172,8 +172,8 @@ class Test_sqlserver_tde_encrypted_with_cmk:
|
|||||||
tde_encryption=TransparentDataEncryption(status="Enabled"),
|
tde_encryption=TransparentDataEncryption(status="Enabled"),
|
||||||
)
|
)
|
||||||
sqlserver_client.sql_servers = {
|
sqlserver_client.sql_servers = {
|
||||||
AZURE_SUSCRIPTION: [
|
AZURE_SUBSCRIPTION: [
|
||||||
SQL_Server(
|
Server(
|
||||||
id=sql_server_id,
|
id=sql_server_id,
|
||||||
name=sql_server_name,
|
name=sql_server_name,
|
||||||
public_network_access="",
|
public_network_access="",
|
||||||
@@ -203,8 +203,8 @@ class Test_sqlserver_tde_encrypted_with_cmk:
|
|||||||
assert result[0].status == "PASS"
|
assert result[0].status == "PASS"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"SQL Server {sql_server_name} from subscription {AZURE_SUSCRIPTION} has TDE enabled with CMK."
|
== f"SQL Server {sql_server_name} from subscription {AZURE_SUBSCRIPTION} has TDE enabled with CMK."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == sql_server_name
|
assert result[0].resource_name == sql_server_name
|
||||||
assert result[0].resource_id == sql_server_id
|
assert result[0].resource_id == sql_server_id
|
||||||
|
|||||||
@@ -4,11 +4,11 @@ from uuid import uuid4
|
|||||||
from azure.mgmt.sql.models import TransparentDataEncryption
|
from azure.mgmt.sql.models import TransparentDataEncryption
|
||||||
|
|
||||||
from prowler.providers.azure.services.sqlserver.sqlserver_service import (
|
from prowler.providers.azure.services.sqlserver.sqlserver_service import (
|
||||||
DatabaseServer,
|
Database,
|
||||||
SQL_Server,
|
Server,
|
||||||
)
|
)
|
||||||
|
|
||||||
AZURE_SUSCRIPTION = str(uuid4())
|
AZURE_SUBSCRIPTION = str(uuid4())
|
||||||
|
|
||||||
|
|
||||||
class Test_sqlserver_tde_encryption_enabled:
|
class Test_sqlserver_tde_encryption_enabled:
|
||||||
@@ -33,8 +33,8 @@ class Test_sqlserver_tde_encryption_enabled:
|
|||||||
sql_server_name = "SQL Server Name"
|
sql_server_name = "SQL Server Name"
|
||||||
sql_server_id = str(uuid4())
|
sql_server_id = str(uuid4())
|
||||||
sqlserver_client.sql_servers = {
|
sqlserver_client.sql_servers = {
|
||||||
AZURE_SUSCRIPTION: [
|
AZURE_SUBSCRIPTION: [
|
||||||
SQL_Server(
|
Server(
|
||||||
id=sql_server_id,
|
id=sql_server_id,
|
||||||
name=sql_server_name,
|
name=sql_server_name,
|
||||||
public_network_access="",
|
public_network_access="",
|
||||||
@@ -65,7 +65,7 @@ class Test_sqlserver_tde_encryption_enabled:
|
|||||||
sql_server_id = str(uuid4())
|
sql_server_id = str(uuid4())
|
||||||
database_name = "Database Name"
|
database_name = "Database Name"
|
||||||
database_id = str(uuid4())
|
database_id = str(uuid4())
|
||||||
database = DatabaseServer(
|
database = Database(
|
||||||
id=database_id,
|
id=database_id,
|
||||||
name=database_name,
|
name=database_name,
|
||||||
type="type",
|
type="type",
|
||||||
@@ -74,8 +74,8 @@ class Test_sqlserver_tde_encryption_enabled:
|
|||||||
tde_encryption=TransparentDataEncryption(status="Disabled"),
|
tde_encryption=TransparentDataEncryption(status="Disabled"),
|
||||||
)
|
)
|
||||||
sqlserver_client.sql_servers = {
|
sqlserver_client.sql_servers = {
|
||||||
AZURE_SUSCRIPTION: [
|
AZURE_SUBSCRIPTION: [
|
||||||
SQL_Server(
|
Server(
|
||||||
id=sql_server_id,
|
id=sql_server_id,
|
||||||
name=sql_server_name,
|
name=sql_server_name,
|
||||||
public_network_access="",
|
public_network_access="",
|
||||||
@@ -103,9 +103,9 @@ class Test_sqlserver_tde_encryption_enabled:
|
|||||||
assert result[0].status == "FAIL"
|
assert result[0].status == "FAIL"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"Database {database_name} from SQL Server {sql_server_name} from subscription {AZURE_SUSCRIPTION} has TDE disabled"
|
== f"Database {database_name} from SQL Server {sql_server_name} from subscription {AZURE_SUBSCRIPTION} has TDE disabled"
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == database_name
|
assert result[0].resource_name == database_name
|
||||||
assert result[0].resource_id == database_id
|
assert result[0].resource_id == database_id
|
||||||
|
|
||||||
@@ -115,7 +115,7 @@ class Test_sqlserver_tde_encryption_enabled:
|
|||||||
sql_server_id = str(uuid4())
|
sql_server_id = str(uuid4())
|
||||||
database_name = "Database Name"
|
database_name = "Database Name"
|
||||||
database_id = str(uuid4())
|
database_id = str(uuid4())
|
||||||
database = DatabaseServer(
|
database = Database(
|
||||||
id=database_id,
|
id=database_id,
|
||||||
name=database_name,
|
name=database_name,
|
||||||
type="type",
|
type="type",
|
||||||
@@ -124,8 +124,8 @@ class Test_sqlserver_tde_encryption_enabled:
|
|||||||
tde_encryption=TransparentDataEncryption(status="Enabled"),
|
tde_encryption=TransparentDataEncryption(status="Enabled"),
|
||||||
)
|
)
|
||||||
sqlserver_client.sql_servers = {
|
sqlserver_client.sql_servers = {
|
||||||
AZURE_SUSCRIPTION: [
|
AZURE_SUBSCRIPTION: [
|
||||||
SQL_Server(
|
Server(
|
||||||
id=sql_server_id,
|
id=sql_server_id,
|
||||||
name=sql_server_name,
|
name=sql_server_name,
|
||||||
public_network_access="",
|
public_network_access="",
|
||||||
@@ -153,8 +153,8 @@ class Test_sqlserver_tde_encryption_enabled:
|
|||||||
assert result[0].status == "PASS"
|
assert result[0].status == "PASS"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"Database {database_name} from SQL Server {sql_server_name} from subscription {AZURE_SUSCRIPTION} has TDE enabled"
|
== f"Database {database_name} from SQL Server {sql_server_name} from subscription {AZURE_SUBSCRIPTION} has TDE enabled"
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == database_name
|
assert result[0].resource_name == database_name
|
||||||
assert result[0].resource_id == database_id
|
assert result[0].resource_id == database_id
|
||||||
|
|||||||
@@ -3,9 +3,9 @@ from uuid import uuid4
|
|||||||
|
|
||||||
from azure.mgmt.sql.models import FirewallRule
|
from azure.mgmt.sql.models import FirewallRule
|
||||||
|
|
||||||
from prowler.providers.azure.services.sqlserver.sqlserver_service import SQL_Server
|
from prowler.providers.azure.services.sqlserver.sqlserver_service import Server
|
||||||
|
|
||||||
AZURE_SUSCRIPTION = str(uuid4())
|
AZURE_SUBSCRIPTION = str(uuid4())
|
||||||
|
|
||||||
|
|
||||||
class Test_sqlserver_unrestricted_inbound_access:
|
class Test_sqlserver_unrestricted_inbound_access:
|
||||||
@@ -30,8 +30,8 @@ class Test_sqlserver_unrestricted_inbound_access:
|
|||||||
sql_server_name = "SQL Server Name"
|
sql_server_name = "SQL Server Name"
|
||||||
sql_server_id = str(uuid4())
|
sql_server_id = str(uuid4())
|
||||||
sqlserver_client.sql_servers = {
|
sqlserver_client.sql_servers = {
|
||||||
AZURE_SUSCRIPTION: [
|
AZURE_SUBSCRIPTION: [
|
||||||
SQL_Server(
|
Server(
|
||||||
id=sql_server_id,
|
id=sql_server_id,
|
||||||
name=sql_server_name,
|
name=sql_server_name,
|
||||||
public_network_access="",
|
public_network_access="",
|
||||||
@@ -61,9 +61,9 @@ class Test_sqlserver_unrestricted_inbound_access:
|
|||||||
assert result[0].status == "FAIL"
|
assert result[0].status == "FAIL"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"SQL Server {sql_server_name} from subscription {AZURE_SUSCRIPTION} has firewall rules allowing 0.0.0.0-255.255.255.255."
|
== f"SQL Server {sql_server_name} from subscription {AZURE_SUBSCRIPTION} has firewall rules allowing 0.0.0.0-255.255.255.255."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == sql_server_name
|
assert result[0].resource_name == sql_server_name
|
||||||
assert result[0].resource_id == sql_server_id
|
assert result[0].resource_id == sql_server_id
|
||||||
|
|
||||||
@@ -72,8 +72,8 @@ class Test_sqlserver_unrestricted_inbound_access:
|
|||||||
sql_server_name = "SQL Server Name"
|
sql_server_name = "SQL Server Name"
|
||||||
sql_server_id = str(uuid4())
|
sql_server_id = str(uuid4())
|
||||||
sqlserver_client.sql_servers = {
|
sqlserver_client.sql_servers = {
|
||||||
AZURE_SUSCRIPTION: [
|
AZURE_SUBSCRIPTION: [
|
||||||
SQL_Server(
|
Server(
|
||||||
id=sql_server_id,
|
id=sql_server_id,
|
||||||
name=sql_server_name,
|
name=sql_server_name,
|
||||||
public_network_access="",
|
public_network_access="",
|
||||||
@@ -103,8 +103,8 @@ class Test_sqlserver_unrestricted_inbound_access:
|
|||||||
assert result[0].status == "PASS"
|
assert result[0].status == "PASS"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"SQL Server {sql_server_name} from subscription {AZURE_SUSCRIPTION} does not have firewall rules allowing 0.0.0.0-255.255.255.255."
|
== f"SQL Server {sql_server_name} from subscription {AZURE_SUBSCRIPTION} does not have firewall rules allowing 0.0.0.0-255.255.255.255."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == sql_server_name
|
assert result[0].resource_name == sql_server_name
|
||||||
assert result[0].resource_id == sql_server_id
|
assert result[0].resource_id == sql_server_id
|
||||||
|
|||||||
@@ -8,11 +8,11 @@ from azure.mgmt.sql.models import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
from prowler.providers.azure.services.sqlserver.sqlserver_service import (
|
from prowler.providers.azure.services.sqlserver.sqlserver_service import (
|
||||||
DatabaseServer,
|
Database,
|
||||||
SQL_Server,
|
Server,
|
||||||
)
|
)
|
||||||
|
|
||||||
AZURE_SUSCRIPTION = str(uuid4())
|
AZURE_SUBSCRIPTION = str(uuid4())
|
||||||
|
|
||||||
|
|
||||||
class Test_sqlserver_vulnerability_assessment_enabled:
|
class Test_sqlserver_vulnerability_assessment_enabled:
|
||||||
@@ -36,7 +36,7 @@ class Test_sqlserver_vulnerability_assessment_enabled:
|
|||||||
sqlserver_client = mock.MagicMock
|
sqlserver_client = mock.MagicMock
|
||||||
sql_server_name = "SQL Server Name"
|
sql_server_name = "SQL Server Name"
|
||||||
sql_server_id = str(uuid4())
|
sql_server_id = str(uuid4())
|
||||||
database = DatabaseServer(
|
database = Database(
|
||||||
id="id",
|
id="id",
|
||||||
name="name",
|
name="name",
|
||||||
type="type",
|
type="type",
|
||||||
@@ -45,8 +45,8 @@ class Test_sqlserver_vulnerability_assessment_enabled:
|
|||||||
tde_encryption=None,
|
tde_encryption=None,
|
||||||
)
|
)
|
||||||
sqlserver_client.sql_servers = {
|
sqlserver_client.sql_servers = {
|
||||||
AZURE_SUSCRIPTION: [
|
AZURE_SUBSCRIPTION: [
|
||||||
SQL_Server(
|
Server(
|
||||||
id=sql_server_id,
|
id=sql_server_id,
|
||||||
name=sql_server_name,
|
name=sql_server_name,
|
||||||
public_network_access="",
|
public_network_access="",
|
||||||
@@ -77,9 +77,9 @@ class Test_sqlserver_vulnerability_assessment_enabled:
|
|||||||
assert result[0].status == "FAIL"
|
assert result[0].status == "FAIL"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"SQL Server {sql_server_name} from subscription {AZURE_SUSCRIPTION} has vulnerability assessment disabled."
|
== f"SQL Server {sql_server_name} from subscription {AZURE_SUBSCRIPTION} has vulnerability assessment disabled."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == sql_server_name
|
assert result[0].resource_name == sql_server_name
|
||||||
assert result[0].resource_id == sql_server_id
|
assert result[0].resource_id == sql_server_id
|
||||||
|
|
||||||
@@ -87,7 +87,7 @@ class Test_sqlserver_vulnerability_assessment_enabled:
|
|||||||
sqlserver_client = mock.MagicMock
|
sqlserver_client = mock.MagicMock
|
||||||
sql_server_name = "SQL Server Name"
|
sql_server_name = "SQL Server Name"
|
||||||
sql_server_id = str(uuid4())
|
sql_server_id = str(uuid4())
|
||||||
database = DatabaseServer(
|
database = Database(
|
||||||
id="id",
|
id="id",
|
||||||
name="name",
|
name="name",
|
||||||
type="type",
|
type="type",
|
||||||
@@ -96,8 +96,8 @@ class Test_sqlserver_vulnerability_assessment_enabled:
|
|||||||
tde_encryption=TransparentDataEncryption(status="Disabled"),
|
tde_encryption=TransparentDataEncryption(status="Disabled"),
|
||||||
)
|
)
|
||||||
sqlserver_client.sql_servers = {
|
sqlserver_client.sql_servers = {
|
||||||
AZURE_SUSCRIPTION: [
|
AZURE_SUBSCRIPTION: [
|
||||||
SQL_Server(
|
Server(
|
||||||
id=sql_server_id,
|
id=sql_server_id,
|
||||||
name=sql_server_name,
|
name=sql_server_name,
|
||||||
public_network_access="",
|
public_network_access="",
|
||||||
@@ -130,9 +130,9 @@ class Test_sqlserver_vulnerability_assessment_enabled:
|
|||||||
assert result[0].status == "FAIL"
|
assert result[0].status == "FAIL"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"SQL Server {sql_server_name} from subscription {AZURE_SUSCRIPTION} has vulnerability assessment disabled."
|
== f"SQL Server {sql_server_name} from subscription {AZURE_SUBSCRIPTION} has vulnerability assessment disabled."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == sql_server_name
|
assert result[0].resource_name == sql_server_name
|
||||||
assert result[0].resource_id == sql_server_id
|
assert result[0].resource_id == sql_server_id
|
||||||
|
|
||||||
@@ -140,7 +140,7 @@ class Test_sqlserver_vulnerability_assessment_enabled:
|
|||||||
sqlserver_client = mock.MagicMock
|
sqlserver_client = mock.MagicMock
|
||||||
sql_server_name = "SQL Server Name"
|
sql_server_name = "SQL Server Name"
|
||||||
sql_server_id = str(uuid4())
|
sql_server_id = str(uuid4())
|
||||||
database = DatabaseServer(
|
database = Database(
|
||||||
id="id",
|
id="id",
|
||||||
name="name",
|
name="name",
|
||||||
type="type",
|
type="type",
|
||||||
@@ -149,8 +149,8 @@ class Test_sqlserver_vulnerability_assessment_enabled:
|
|||||||
tde_encryption=TransparentDataEncryption(status="Enabled"),
|
tde_encryption=TransparentDataEncryption(status="Enabled"),
|
||||||
)
|
)
|
||||||
sqlserver_client.sql_servers = {
|
sqlserver_client.sql_servers = {
|
||||||
AZURE_SUSCRIPTION: [
|
AZURE_SUBSCRIPTION: [
|
||||||
SQL_Server(
|
Server(
|
||||||
id=sql_server_id,
|
id=sql_server_id,
|
||||||
name=sql_server_name,
|
name=sql_server_name,
|
||||||
public_network_access="",
|
public_network_access="",
|
||||||
@@ -183,8 +183,8 @@ class Test_sqlserver_vulnerability_assessment_enabled:
|
|||||||
assert result[0].status == "PASS"
|
assert result[0].status == "PASS"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"SQL Server {sql_server_name} from subscription {AZURE_SUSCRIPTION} has vulnerability assessment enabled."
|
== f"SQL Server {sql_server_name} from subscription {AZURE_SUBSCRIPTION} has vulnerability assessment enabled."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == sql_server_name
|
assert result[0].resource_name == sql_server_name
|
||||||
assert result[0].resource_id == sql_server_id
|
assert result[0].resource_id == sql_server_id
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
from unittest import mock
|
from unittest import mock
|
||||||
from uuid import uuid4
|
from uuid import uuid4
|
||||||
|
|
||||||
from prowler.providers.azure.services.storage.storage_service import Storage_Account
|
from prowler.providers.azure.services.storage.storage_service import Account
|
||||||
|
|
||||||
AZURE_SUSCRIPTION = str(uuid4())
|
AZURE_SUBSCRIPTION = str(uuid4())
|
||||||
|
|
||||||
|
|
||||||
class Test_storage_blob_public_access_level_is_disabled:
|
class Test_storage_blob_public_access_level_is_disabled:
|
||||||
@@ -28,8 +28,8 @@ class Test_storage_blob_public_access_level_is_disabled:
|
|||||||
storage_account_name = "Test Storage Account"
|
storage_account_name = "Test Storage Account"
|
||||||
storage_client = mock.MagicMock
|
storage_client = mock.MagicMock
|
||||||
storage_client.storage_accounts = {
|
storage_client.storage_accounts = {
|
||||||
AZURE_SUSCRIPTION: [
|
AZURE_SUBSCRIPTION: [
|
||||||
Storage_Account(
|
Account(
|
||||||
id=storage_account_id,
|
id=storage_account_id,
|
||||||
name=storage_account_name,
|
name=storage_account_name,
|
||||||
resouce_group_name=None,
|
resouce_group_name=None,
|
||||||
@@ -59,9 +59,9 @@ class Test_storage_blob_public_access_level_is_disabled:
|
|||||||
assert result[0].status == "FAIL"
|
assert result[0].status == "FAIL"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"Storage account {storage_account_name} from subscription {AZURE_SUSCRIPTION} has allow blob public access enabled."
|
== f"Storage account {storage_account_name} from subscription {AZURE_SUBSCRIPTION} has allow blob public access enabled."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == storage_account_name
|
assert result[0].resource_name == storage_account_name
|
||||||
assert result[0].resource_id == storage_account_id
|
assert result[0].resource_id == storage_account_id
|
||||||
|
|
||||||
@@ -70,8 +70,8 @@ class Test_storage_blob_public_access_level_is_disabled:
|
|||||||
storage_account_name = "Test Storage Account"
|
storage_account_name = "Test Storage Account"
|
||||||
storage_client = mock.MagicMock
|
storage_client = mock.MagicMock
|
||||||
storage_client.storage_accounts = {
|
storage_client.storage_accounts = {
|
||||||
AZURE_SUSCRIPTION: [
|
AZURE_SUBSCRIPTION: [
|
||||||
Storage_Account(
|
Account(
|
||||||
id=storage_account_id,
|
id=storage_account_id,
|
||||||
name=storage_account_name,
|
name=storage_account_name,
|
||||||
resouce_group_name=None,
|
resouce_group_name=None,
|
||||||
@@ -101,8 +101,8 @@ class Test_storage_blob_public_access_level_is_disabled:
|
|||||||
assert result[0].status == "PASS"
|
assert result[0].status == "PASS"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"Storage account {storage_account_name} from subscription {AZURE_SUSCRIPTION} has allow blob public access disabled."
|
== f"Storage account {storage_account_name} from subscription {AZURE_SUBSCRIPTION} has allow blob public access disabled."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == storage_account_name
|
assert result[0].resource_name == storage_account_name
|
||||||
assert result[0].resource_id == storage_account_id
|
assert result[0].resource_id == storage_account_id
|
||||||
|
|||||||
@@ -3,9 +3,9 @@ from uuid import uuid4
|
|||||||
|
|
||||||
from azure.mgmt.storage.v2022_09_01.models import NetworkRuleSet
|
from azure.mgmt.storage.v2022_09_01.models import NetworkRuleSet
|
||||||
|
|
||||||
from prowler.providers.azure.services.storage.storage_service import Storage_Account
|
from prowler.providers.azure.services.storage.storage_service import Account
|
||||||
|
|
||||||
AZURE_SUSCRIPTION = str(uuid4())
|
AZURE_SUBSCRIPTION = str(uuid4())
|
||||||
|
|
||||||
|
|
||||||
class Test_storage_default_network_access_rule_is_denied:
|
class Test_storage_default_network_access_rule_is_denied:
|
||||||
@@ -30,8 +30,8 @@ class Test_storage_default_network_access_rule_is_denied:
|
|||||||
storage_account_name = "Test Storage Account"
|
storage_account_name = "Test Storage Account"
|
||||||
storage_client = mock.MagicMock
|
storage_client = mock.MagicMock
|
||||||
storage_client.storage_accounts = {
|
storage_client.storage_accounts = {
|
||||||
AZURE_SUSCRIPTION: [
|
AZURE_SUBSCRIPTION: [
|
||||||
Storage_Account(
|
Account(
|
||||||
id=storage_account_id,
|
id=storage_account_id,
|
||||||
name=storage_account_name,
|
name=storage_account_name,
|
||||||
resouce_group_name=None,
|
resouce_group_name=None,
|
||||||
@@ -61,9 +61,9 @@ class Test_storage_default_network_access_rule_is_denied:
|
|||||||
assert result[0].status == "FAIL"
|
assert result[0].status == "FAIL"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"Storage account {storage_account_name} from subscription {AZURE_SUSCRIPTION} has network access rule set to Allow."
|
== f"Storage account {storage_account_name} from subscription {AZURE_SUBSCRIPTION} has network access rule set to Allow."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == storage_account_name
|
assert result[0].resource_name == storage_account_name
|
||||||
assert result[0].resource_id == storage_account_id
|
assert result[0].resource_id == storage_account_id
|
||||||
|
|
||||||
@@ -72,8 +72,8 @@ class Test_storage_default_network_access_rule_is_denied:
|
|||||||
storage_account_name = "Test Storage Account"
|
storage_account_name = "Test Storage Account"
|
||||||
storage_client = mock.MagicMock
|
storage_client = mock.MagicMock
|
||||||
storage_client.storage_accounts = {
|
storage_client.storage_accounts = {
|
||||||
AZURE_SUSCRIPTION: [
|
AZURE_SUBSCRIPTION: [
|
||||||
Storage_Account(
|
Account(
|
||||||
id=storage_account_id,
|
id=storage_account_id,
|
||||||
name=storage_account_name,
|
name=storage_account_name,
|
||||||
resouce_group_name=None,
|
resouce_group_name=None,
|
||||||
@@ -103,8 +103,8 @@ class Test_storage_default_network_access_rule_is_denied:
|
|||||||
assert result[0].status == "PASS"
|
assert result[0].status == "PASS"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"Storage account {storage_account_name} from subscription {AZURE_SUSCRIPTION} has network access rule set to Deny."
|
== f"Storage account {storage_account_name} from subscription {AZURE_SUBSCRIPTION} has network access rule set to Deny."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == storage_account_name
|
assert result[0].resource_name == storage_account_name
|
||||||
assert result[0].resource_id == storage_account_id
|
assert result[0].resource_id == storage_account_id
|
||||||
|
|||||||
@@ -3,9 +3,9 @@ from uuid import uuid4
|
|||||||
|
|
||||||
from azure.mgmt.storage.v2022_09_01.models import NetworkRuleSet
|
from azure.mgmt.storage.v2022_09_01.models import NetworkRuleSet
|
||||||
|
|
||||||
from prowler.providers.azure.services.storage.storage_service import Storage_Account
|
from prowler.providers.azure.services.storage.storage_service import Account
|
||||||
|
|
||||||
AZURE_SUSCRIPTION = str(uuid4())
|
AZURE_SUBSCRIPTION = str(uuid4())
|
||||||
|
|
||||||
|
|
||||||
class Test_storage_ensure_azure_services_are_trusted_to_access_is_enabled:
|
class Test_storage_ensure_azure_services_are_trusted_to_access_is_enabled:
|
||||||
@@ -30,8 +30,8 @@ class Test_storage_ensure_azure_services_are_trusted_to_access_is_enabled:
|
|||||||
storage_account_name = "Test Storage Account"
|
storage_account_name = "Test Storage Account"
|
||||||
storage_client = mock.MagicMock
|
storage_client = mock.MagicMock
|
||||||
storage_client.storage_accounts = {
|
storage_client.storage_accounts = {
|
||||||
AZURE_SUSCRIPTION: [
|
AZURE_SUBSCRIPTION: [
|
||||||
Storage_Account(
|
Account(
|
||||||
id=storage_account_id,
|
id=storage_account_id,
|
||||||
name=storage_account_name,
|
name=storage_account_name,
|
||||||
resouce_group_name=None,
|
resouce_group_name=None,
|
||||||
@@ -61,9 +61,9 @@ class Test_storage_ensure_azure_services_are_trusted_to_access_is_enabled:
|
|||||||
assert result[0].status == "FAIL"
|
assert result[0].status == "FAIL"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"Storage account {storage_account_name} from subscription {AZURE_SUSCRIPTION} does not allow trusted Microsoft services to access this storage account."
|
== f"Storage account {storage_account_name} from subscription {AZURE_SUBSCRIPTION} does not allow trusted Microsoft services to access this storage account."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == storage_account_name
|
assert result[0].resource_name == storage_account_name
|
||||||
assert result[0].resource_id == storage_account_id
|
assert result[0].resource_id == storage_account_id
|
||||||
|
|
||||||
@@ -72,8 +72,8 @@ class Test_storage_ensure_azure_services_are_trusted_to_access_is_enabled:
|
|||||||
storage_account_name = "Test Storage Account"
|
storage_account_name = "Test Storage Account"
|
||||||
storage_client = mock.MagicMock
|
storage_client = mock.MagicMock
|
||||||
storage_client.storage_accounts = {
|
storage_client.storage_accounts = {
|
||||||
AZURE_SUSCRIPTION: [
|
AZURE_SUBSCRIPTION: [
|
||||||
Storage_Account(
|
Account(
|
||||||
id=storage_account_id,
|
id=storage_account_id,
|
||||||
name=storage_account_name,
|
name=storage_account_name,
|
||||||
resouce_group_name=None,
|
resouce_group_name=None,
|
||||||
@@ -103,8 +103,8 @@ class Test_storage_ensure_azure_services_are_trusted_to_access_is_enabled:
|
|||||||
assert result[0].status == "PASS"
|
assert result[0].status == "PASS"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"Storage account {storage_account_name} from subscription {AZURE_SUSCRIPTION} allows trusted Microsoft services to access this storage account."
|
== f"Storage account {storage_account_name} from subscription {AZURE_SUBSCRIPTION} allows trusted Microsoft services to access this storage account."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == storage_account_name
|
assert result[0].resource_name == storage_account_name
|
||||||
assert result[0].resource_id == storage_account_id
|
assert result[0].resource_id == storage_account_id
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
from unittest import mock
|
from unittest import mock
|
||||||
from uuid import uuid4
|
from uuid import uuid4
|
||||||
|
|
||||||
from prowler.providers.azure.services.storage.storage_service import Storage_Account
|
from prowler.providers.azure.services.storage.storage_service import Account
|
||||||
|
|
||||||
AZURE_SUSCRIPTION = str(uuid4())
|
AZURE_SUBSCRIPTION = str(uuid4())
|
||||||
|
|
||||||
|
|
||||||
class Test_storage_ensure_encryption_with_customer_managed_keys:
|
class Test_storage_ensure_encryption_with_customer_managed_keys:
|
||||||
@@ -28,8 +28,8 @@ class Test_storage_ensure_encryption_with_customer_managed_keys:
|
|||||||
storage_account_name = "Test Storage Account"
|
storage_account_name = "Test Storage Account"
|
||||||
storage_client = mock.MagicMock
|
storage_client = mock.MagicMock
|
||||||
storage_client.storage_accounts = {
|
storage_client.storage_accounts = {
|
||||||
AZURE_SUSCRIPTION: [
|
AZURE_SUBSCRIPTION: [
|
||||||
Storage_Account(
|
Account(
|
||||||
id=storage_account_id,
|
id=storage_account_id,
|
||||||
name=storage_account_name,
|
name=storage_account_name,
|
||||||
resouce_group_name=None,
|
resouce_group_name=None,
|
||||||
@@ -59,9 +59,9 @@ class Test_storage_ensure_encryption_with_customer_managed_keys:
|
|||||||
assert result[0].status == "FAIL"
|
assert result[0].status == "FAIL"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"Storage account {storage_account_name} from subscription {AZURE_SUSCRIPTION} does not encrypt with CMKs."
|
== f"Storage account {storage_account_name} from subscription {AZURE_SUBSCRIPTION} does not encrypt with CMKs."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == storage_account_name
|
assert result[0].resource_name == storage_account_name
|
||||||
assert result[0].resource_id == storage_account_id
|
assert result[0].resource_id == storage_account_id
|
||||||
|
|
||||||
@@ -70,8 +70,8 @@ class Test_storage_ensure_encryption_with_customer_managed_keys:
|
|||||||
storage_account_name = "Test Storage Account"
|
storage_account_name = "Test Storage Account"
|
||||||
storage_client = mock.MagicMock
|
storage_client = mock.MagicMock
|
||||||
storage_client.storage_accounts = {
|
storage_client.storage_accounts = {
|
||||||
AZURE_SUSCRIPTION: [
|
AZURE_SUBSCRIPTION: [
|
||||||
Storage_Account(
|
Account(
|
||||||
id=storage_account_id,
|
id=storage_account_id,
|
||||||
name=storage_account_name,
|
name=storage_account_name,
|
||||||
resouce_group_name=None,
|
resouce_group_name=None,
|
||||||
@@ -101,8 +101,8 @@ class Test_storage_ensure_encryption_with_customer_managed_keys:
|
|||||||
assert result[0].status == "PASS"
|
assert result[0].status == "PASS"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"Storage account {storage_account_name} from subscription {AZURE_SUSCRIPTION} encrypts with CMKs."
|
== f"Storage account {storage_account_name} from subscription {AZURE_SUBSCRIPTION} encrypts with CMKs."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == storage_account_name
|
assert result[0].resource_name == storage_account_name
|
||||||
assert result[0].resource_id == storage_account_id
|
assert result[0].resource_id == storage_account_id
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
from unittest import mock
|
from unittest import mock
|
||||||
from uuid import uuid4
|
from uuid import uuid4
|
||||||
|
|
||||||
from prowler.providers.azure.services.storage.storage_service import Storage_Account
|
from prowler.providers.azure.services.storage.storage_service import Account
|
||||||
|
|
||||||
AZURE_SUSCRIPTION = str(uuid4())
|
AZURE_SUBSCRIPTION = str(uuid4())
|
||||||
|
|
||||||
|
|
||||||
class Test_storage_ensure_minimum_tls_version_12:
|
class Test_storage_ensure_minimum_tls_version_12:
|
||||||
@@ -28,8 +28,8 @@ class Test_storage_ensure_minimum_tls_version_12:
|
|||||||
storage_account_name = "Test Storage Account"
|
storage_account_name = "Test Storage Account"
|
||||||
storage_client = mock.MagicMock
|
storage_client = mock.MagicMock
|
||||||
storage_client.storage_accounts = {
|
storage_client.storage_accounts = {
|
||||||
AZURE_SUSCRIPTION: [
|
AZURE_SUBSCRIPTION: [
|
||||||
Storage_Account(
|
Account(
|
||||||
id=storage_account_id,
|
id=storage_account_id,
|
||||||
name=storage_account_name,
|
name=storage_account_name,
|
||||||
resouce_group_name=None,
|
resouce_group_name=None,
|
||||||
@@ -59,9 +59,9 @@ class Test_storage_ensure_minimum_tls_version_12:
|
|||||||
assert result[0].status == "FAIL"
|
assert result[0].status == "FAIL"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"Storage account {storage_account_name} from subscription {AZURE_SUSCRIPTION} does not have TLS version set to 1.2."
|
== f"Storage account {storage_account_name} from subscription {AZURE_SUBSCRIPTION} does not have TLS version set to 1.2."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == storage_account_name
|
assert result[0].resource_name == storage_account_name
|
||||||
assert result[0].resource_id == storage_account_id
|
assert result[0].resource_id == storage_account_id
|
||||||
|
|
||||||
@@ -70,8 +70,8 @@ class Test_storage_ensure_minimum_tls_version_12:
|
|||||||
storage_account_name = "Test Storage Account"
|
storage_account_name = "Test Storage Account"
|
||||||
storage_client = mock.MagicMock
|
storage_client = mock.MagicMock
|
||||||
storage_client.storage_accounts = {
|
storage_client.storage_accounts = {
|
||||||
AZURE_SUSCRIPTION: [
|
AZURE_SUBSCRIPTION: [
|
||||||
Storage_Account(
|
Account(
|
||||||
id=storage_account_id,
|
id=storage_account_id,
|
||||||
name=storage_account_name,
|
name=storage_account_name,
|
||||||
resouce_group_name=None,
|
resouce_group_name=None,
|
||||||
@@ -101,8 +101,8 @@ class Test_storage_ensure_minimum_tls_version_12:
|
|||||||
assert result[0].status == "PASS"
|
assert result[0].status == "PASS"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"Storage account {storage_account_name} from subscription {AZURE_SUSCRIPTION} has TLS version set to 1.2."
|
== f"Storage account {storage_account_name} from subscription {AZURE_SUBSCRIPTION} has TLS version set to 1.2."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == storage_account_name
|
assert result[0].resource_name == storage_account_name
|
||||||
assert result[0].resource_id == storage_account_id
|
assert result[0].resource_id == storage_account_id
|
||||||
|
|||||||
@@ -3,9 +3,9 @@ from uuid import uuid4
|
|||||||
|
|
||||||
from azure.mgmt.storage.v2023_01_01.models import PrivateEndpointConnection
|
from azure.mgmt.storage.v2023_01_01.models import PrivateEndpointConnection
|
||||||
|
|
||||||
from prowler.providers.azure.services.storage.storage_service import Storage_Account
|
from prowler.providers.azure.services.storage.storage_service import Account
|
||||||
|
|
||||||
AZURE_SUSCRIPTION = str(uuid4())
|
AZURE_SUBSCRIPTION = str(uuid4())
|
||||||
|
|
||||||
|
|
||||||
class Test_storage_ensure_private_endpoints_in_storage_accounts:
|
class Test_storage_ensure_private_endpoints_in_storage_accounts:
|
||||||
@@ -32,8 +32,8 @@ class Test_storage_ensure_private_endpoints_in_storage_accounts:
|
|||||||
storage_account_name = "Test Storage Account"
|
storage_account_name = "Test Storage Account"
|
||||||
storage_client = mock.MagicMock
|
storage_client = mock.MagicMock
|
||||||
storage_client.storage_accounts = {
|
storage_client.storage_accounts = {
|
||||||
AZURE_SUSCRIPTION: [
|
AZURE_SUBSCRIPTION: [
|
||||||
Storage_Account(
|
Account(
|
||||||
id=storage_account_id,
|
id=storage_account_id,
|
||||||
name=storage_account_name,
|
name=storage_account_name,
|
||||||
resouce_group_name=None,
|
resouce_group_name=None,
|
||||||
@@ -63,9 +63,9 @@ class Test_storage_ensure_private_endpoints_in_storage_accounts:
|
|||||||
assert result[0].status == "FAIL"
|
assert result[0].status == "FAIL"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"Storage account {storage_account_name} from subscription {AZURE_SUSCRIPTION} does not have private endpoint connections."
|
== f"Storage account {storage_account_name} from subscription {AZURE_SUBSCRIPTION} does not have private endpoint connections."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == storage_account_name
|
assert result[0].resource_name == storage_account_name
|
||||||
assert result[0].resource_id == storage_account_id
|
assert result[0].resource_id == storage_account_id
|
||||||
|
|
||||||
@@ -76,8 +76,8 @@ class Test_storage_ensure_private_endpoints_in_storage_accounts:
|
|||||||
storage_account_name = "Test Storage Account"
|
storage_account_name = "Test Storage Account"
|
||||||
storage_client = mock.MagicMock
|
storage_client = mock.MagicMock
|
||||||
storage_client.storage_accounts = {
|
storage_client.storage_accounts = {
|
||||||
AZURE_SUSCRIPTION: [
|
AZURE_SUBSCRIPTION: [
|
||||||
Storage_Account(
|
Account(
|
||||||
id=storage_account_id,
|
id=storage_account_id,
|
||||||
name=storage_account_name,
|
name=storage_account_name,
|
||||||
resouce_group_name=None,
|
resouce_group_name=None,
|
||||||
@@ -107,8 +107,8 @@ class Test_storage_ensure_private_endpoints_in_storage_accounts:
|
|||||||
assert result[0].status == "PASS"
|
assert result[0].status == "PASS"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"Storage account {storage_account_name} from subscription {AZURE_SUSCRIPTION} has private endpoint connections."
|
== f"Storage account {storage_account_name} from subscription {AZURE_SUBSCRIPTION} has private endpoint connections."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == storage_account_name
|
assert result[0].resource_name == storage_account_name
|
||||||
assert result[0].resource_id == storage_account_id
|
assert result[0].resource_id == storage_account_id
|
||||||
|
|||||||
@@ -4,11 +4,11 @@ from uuid import uuid4
|
|||||||
from azure.mgmt.storage.v2023_01_01.models import DeleteRetentionPolicy
|
from azure.mgmt.storage.v2023_01_01.models import DeleteRetentionPolicy
|
||||||
|
|
||||||
from prowler.providers.azure.services.storage.storage_service import (
|
from prowler.providers.azure.services.storage.storage_service import (
|
||||||
Blob_Properties,
|
Account,
|
||||||
Storage_Account,
|
BlobProperties,
|
||||||
)
|
)
|
||||||
|
|
||||||
AZURE_SUSCRIPTION = str(uuid4())
|
AZURE_SUBSCRIPTION = str(uuid4())
|
||||||
|
|
||||||
|
|
||||||
class Test_storage_ensure_soft_delete_is_enabled:
|
class Test_storage_ensure_soft_delete_is_enabled:
|
||||||
@@ -34,8 +34,8 @@ class Test_storage_ensure_soft_delete_is_enabled:
|
|||||||
storage_client = mock.MagicMock
|
storage_client = mock.MagicMock
|
||||||
storage_account_blob_properties = None
|
storage_account_blob_properties = None
|
||||||
storage_client.storage_accounts = {
|
storage_client.storage_accounts = {
|
||||||
AZURE_SUSCRIPTION: [
|
AZURE_SUBSCRIPTION: [
|
||||||
Storage_Account(
|
Account(
|
||||||
id=storage_account_id,
|
id=storage_account_id,
|
||||||
name=storage_account_name,
|
name=storage_account_name,
|
||||||
resouce_group_name=None,
|
resouce_group_name=None,
|
||||||
@@ -70,7 +70,7 @@ class Test_storage_ensure_soft_delete_is_enabled:
|
|||||||
storage_account_id = str(uuid4())
|
storage_account_id = str(uuid4())
|
||||||
storage_account_name = "Test Storage Account"
|
storage_account_name = "Test Storage Account"
|
||||||
storage_client = mock.MagicMock
|
storage_client = mock.MagicMock
|
||||||
storage_account_blob_properties = Blob_Properties(
|
storage_account_blob_properties = BlobProperties(
|
||||||
id=None,
|
id=None,
|
||||||
name=None,
|
name=None,
|
||||||
type=None,
|
type=None,
|
||||||
@@ -78,8 +78,8 @@ class Test_storage_ensure_soft_delete_is_enabled:
|
|||||||
container_delete_retention_policy=DeleteRetentionPolicy(enabled=False),
|
container_delete_retention_policy=DeleteRetentionPolicy(enabled=False),
|
||||||
)
|
)
|
||||||
storage_client.storage_accounts = {
|
storage_client.storage_accounts = {
|
||||||
AZURE_SUSCRIPTION: [
|
AZURE_SUBSCRIPTION: [
|
||||||
Storage_Account(
|
Account(
|
||||||
id=storage_account_id,
|
id=storage_account_id,
|
||||||
name=storage_account_name,
|
name=storage_account_name,
|
||||||
resouce_group_name=None,
|
resouce_group_name=None,
|
||||||
@@ -110,9 +110,9 @@ class Test_storage_ensure_soft_delete_is_enabled:
|
|||||||
assert result[0].status == "FAIL"
|
assert result[0].status == "FAIL"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"Storage account {storage_account_name} from subscription {AZURE_SUSCRIPTION} has soft delete disabled."
|
== f"Storage account {storage_account_name} from subscription {AZURE_SUBSCRIPTION} has soft delete disabled."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == storage_account_name
|
assert result[0].resource_name == storage_account_name
|
||||||
assert result[0].resource_id == storage_account_id
|
assert result[0].resource_id == storage_account_id
|
||||||
|
|
||||||
@@ -122,7 +122,7 @@ class Test_storage_ensure_soft_delete_is_enabled:
|
|||||||
storage_account_id = str(uuid4())
|
storage_account_id = str(uuid4())
|
||||||
storage_account_name = "Test Storage Account"
|
storage_account_name = "Test Storage Account"
|
||||||
storage_client = mock.MagicMock
|
storage_client = mock.MagicMock
|
||||||
storage_account_blob_properties = Blob_Properties(
|
storage_account_blob_properties = BlobProperties(
|
||||||
id=None,
|
id=None,
|
||||||
name=None,
|
name=None,
|
||||||
type=None,
|
type=None,
|
||||||
@@ -130,8 +130,8 @@ class Test_storage_ensure_soft_delete_is_enabled:
|
|||||||
container_delete_retention_policy=DeleteRetentionPolicy(enabled=True),
|
container_delete_retention_policy=DeleteRetentionPolicy(enabled=True),
|
||||||
)
|
)
|
||||||
storage_client.storage_accounts = {
|
storage_client.storage_accounts = {
|
||||||
AZURE_SUSCRIPTION: [
|
AZURE_SUBSCRIPTION: [
|
||||||
Storage_Account(
|
Account(
|
||||||
id=storage_account_id,
|
id=storage_account_id,
|
||||||
name=storage_account_name,
|
name=storage_account_name,
|
||||||
resouce_group_name=None,
|
resouce_group_name=None,
|
||||||
@@ -162,8 +162,8 @@ class Test_storage_ensure_soft_delete_is_enabled:
|
|||||||
assert result[0].status == "PASS"
|
assert result[0].status == "PASS"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"Storage account {storage_account_name} from subscription {AZURE_SUSCRIPTION} has soft delete enabled."
|
== f"Storage account {storage_account_name} from subscription {AZURE_SUBSCRIPTION} has soft delete enabled."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == storage_account_name
|
assert result[0].resource_name == storage_account_name
|
||||||
assert result[0].resource_id == storage_account_id
|
assert result[0].resource_id == storage_account_id
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
from unittest import mock
|
from unittest import mock
|
||||||
from uuid import uuid4
|
from uuid import uuid4
|
||||||
|
|
||||||
from prowler.providers.azure.services.storage.storage_service import Storage_Account
|
from prowler.providers.azure.services.storage.storage_service import Account
|
||||||
|
|
||||||
AZURE_SUSCRIPTION = str(uuid4())
|
AZURE_SUBSCRIPTION = str(uuid4())
|
||||||
|
|
||||||
|
|
||||||
class Test_storage_infrastructure_encryption_is_enabled:
|
class Test_storage_infrastructure_encryption_is_enabled:
|
||||||
@@ -28,8 +28,8 @@ class Test_storage_infrastructure_encryption_is_enabled:
|
|||||||
storage_account_name = "Test Storage Account"
|
storage_account_name = "Test Storage Account"
|
||||||
storage_client = mock.MagicMock
|
storage_client = mock.MagicMock
|
||||||
storage_client.storage_accounts = {
|
storage_client.storage_accounts = {
|
||||||
AZURE_SUSCRIPTION: [
|
AZURE_SUBSCRIPTION: [
|
||||||
Storage_Account(
|
Account(
|
||||||
id=storage_account_id,
|
id=storage_account_id,
|
||||||
name=storage_account_name,
|
name=storage_account_name,
|
||||||
resouce_group_name=None,
|
resouce_group_name=None,
|
||||||
@@ -59,9 +59,9 @@ class Test_storage_infrastructure_encryption_is_enabled:
|
|||||||
assert result[0].status == "FAIL"
|
assert result[0].status == "FAIL"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"Storage account {storage_account_name} from subscription {AZURE_SUSCRIPTION} has infrastructure encryption disabled."
|
== f"Storage account {storage_account_name} from subscription {AZURE_SUBSCRIPTION} has infrastructure encryption disabled."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == storage_account_name
|
assert result[0].resource_name == storage_account_name
|
||||||
assert result[0].resource_id == storage_account_id
|
assert result[0].resource_id == storage_account_id
|
||||||
|
|
||||||
@@ -70,8 +70,8 @@ class Test_storage_infrastructure_encryption_is_enabled:
|
|||||||
storage_account_name = "Test Storage Account"
|
storage_account_name = "Test Storage Account"
|
||||||
storage_client = mock.MagicMock
|
storage_client = mock.MagicMock
|
||||||
storage_client.storage_accounts = {
|
storage_client.storage_accounts = {
|
||||||
AZURE_SUSCRIPTION: [
|
AZURE_SUBSCRIPTION: [
|
||||||
Storage_Account(
|
Account(
|
||||||
id=storage_account_id,
|
id=storage_account_id,
|
||||||
name=storage_account_name,
|
name=storage_account_name,
|
||||||
resouce_group_name=None,
|
resouce_group_name=None,
|
||||||
@@ -101,8 +101,8 @@ class Test_storage_infrastructure_encryption_is_enabled:
|
|||||||
assert result[0].status == "PASS"
|
assert result[0].status == "PASS"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"Storage account {storage_account_name} from subscription {AZURE_SUSCRIPTION} has infrastructure encryption enabled."
|
== f"Storage account {storage_account_name} from subscription {AZURE_SUBSCRIPTION} has infrastructure encryption enabled."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == storage_account_name
|
assert result[0].resource_name == storage_account_name
|
||||||
assert result[0].resource_id == storage_account_id
|
assert result[0].resource_id == storage_account_id
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
from unittest import mock
|
from unittest import mock
|
||||||
from uuid import uuid4
|
from uuid import uuid4
|
||||||
|
|
||||||
from prowler.providers.azure.services.storage.storage_service import Storage_Account
|
from prowler.providers.azure.services.storage.storage_service import Account
|
||||||
from tests.providers.azure.azure_fixtures import AZURE_SUSCRIPTION
|
from tests.providers.azure.azure_fixtures import AZURE_SUBSCRIPTION
|
||||||
|
|
||||||
|
|
||||||
class Test_storage_key_rotation_90_dayss:
|
class Test_storage_key_rotation_90_dayss:
|
||||||
@@ -28,8 +28,8 @@ class Test_storage_key_rotation_90_dayss:
|
|||||||
expiration_days = 91
|
expiration_days = 91
|
||||||
storage_client = mock.MagicMock
|
storage_client = mock.MagicMock
|
||||||
storage_client.storage_accounts = {
|
storage_client.storage_accounts = {
|
||||||
AZURE_SUSCRIPTION: [
|
AZURE_SUBSCRIPTION: [
|
||||||
Storage_Account(
|
Account(
|
||||||
id=storage_account_id,
|
id=storage_account_id,
|
||||||
name=storage_account_name,
|
name=storage_account_name,
|
||||||
resouce_group_name=None,
|
resouce_group_name=None,
|
||||||
@@ -59,9 +59,9 @@ class Test_storage_key_rotation_90_dayss:
|
|||||||
assert result[0].status == "FAIL"
|
assert result[0].status == "FAIL"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"Storage account {storage_account_name} from subscription {AZURE_SUSCRIPTION} has an invalid key expiration period of {expiration_days} days."
|
== f"Storage account {storage_account_name} from subscription {AZURE_SUBSCRIPTION} has an invalid key expiration period of {expiration_days} days."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == storage_account_name
|
assert result[0].resource_name == storage_account_name
|
||||||
assert result[0].resource_id == storage_account_id
|
assert result[0].resource_id == storage_account_id
|
||||||
|
|
||||||
@@ -71,8 +71,8 @@ class Test_storage_key_rotation_90_dayss:
|
|||||||
expiration_days = 90
|
expiration_days = 90
|
||||||
storage_client = mock.MagicMock
|
storage_client = mock.MagicMock
|
||||||
storage_client.storage_accounts = {
|
storage_client.storage_accounts = {
|
||||||
AZURE_SUSCRIPTION: [
|
AZURE_SUBSCRIPTION: [
|
||||||
Storage_Account(
|
Account(
|
||||||
id=storage_account_id,
|
id=storage_account_id,
|
||||||
name=storage_account_name,
|
name=storage_account_name,
|
||||||
resouce_group_name=None,
|
resouce_group_name=None,
|
||||||
@@ -102,9 +102,9 @@ class Test_storage_key_rotation_90_dayss:
|
|||||||
assert result[0].status == "PASS"
|
assert result[0].status == "PASS"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"Storage account {storage_account_name} from subscription {AZURE_SUSCRIPTION} has a key expiration period of {expiration_days} days."
|
== f"Storage account {storage_account_name} from subscription {AZURE_SUBSCRIPTION} has a key expiration period of {expiration_days} days."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == storage_account_name
|
assert result[0].resource_name == storage_account_name
|
||||||
assert result[0].resource_id == storage_account_id
|
assert result[0].resource_id == storage_account_id
|
||||||
|
|
||||||
@@ -113,8 +113,8 @@ class Test_storage_key_rotation_90_dayss:
|
|||||||
storage_account_name = "Test Storage Account"
|
storage_account_name = "Test Storage Account"
|
||||||
storage_client = mock.MagicMock
|
storage_client = mock.MagicMock
|
||||||
storage_client.storage_accounts = {
|
storage_client.storage_accounts = {
|
||||||
AZURE_SUSCRIPTION: [
|
AZURE_SUBSCRIPTION: [
|
||||||
Storage_Account(
|
Account(
|
||||||
id=storage_account_id,
|
id=storage_account_id,
|
||||||
name=storage_account_name,
|
name=storage_account_name,
|
||||||
resouce_group_name=None,
|
resouce_group_name=None,
|
||||||
@@ -144,8 +144,8 @@ class Test_storage_key_rotation_90_dayss:
|
|||||||
assert result[0].status == "FAIL"
|
assert result[0].status == "FAIL"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"Storage account {storage_account_name} from subscription {AZURE_SUSCRIPTION} has no key expiration period set."
|
== f"Storage account {storage_account_name} from subscription {AZURE_SUBSCRIPTION} has no key expiration period set."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == storage_account_name
|
assert result[0].resource_name == storage_account_name
|
||||||
assert result[0].resource_id == storage_account_id
|
assert result[0].resource_id == storage_account_id
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
from unittest import mock
|
from unittest import mock
|
||||||
from uuid import uuid4
|
from uuid import uuid4
|
||||||
|
|
||||||
from prowler.providers.azure.services.storage.storage_service import Storage_Account
|
from prowler.providers.azure.services.storage.storage_service import Account
|
||||||
|
|
||||||
AZURE_SUSCRIPTION = str(uuid4())
|
AZURE_SUBSCRIPTION = str(uuid4())
|
||||||
|
|
||||||
|
|
||||||
class Test_storage_secure_transfer_required_is_enabled:
|
class Test_storage_secure_transfer_required_is_enabled:
|
||||||
@@ -28,8 +28,8 @@ class Test_storage_secure_transfer_required_is_enabled:
|
|||||||
storage_account_name = "Test Storage Account"
|
storage_account_name = "Test Storage Account"
|
||||||
storage_client = mock.MagicMock
|
storage_client = mock.MagicMock
|
||||||
storage_client.storage_accounts = {
|
storage_client.storage_accounts = {
|
||||||
AZURE_SUSCRIPTION: [
|
AZURE_SUBSCRIPTION: [
|
||||||
Storage_Account(
|
Account(
|
||||||
id=storage_account_id,
|
id=storage_account_id,
|
||||||
name=storage_account_name,
|
name=storage_account_name,
|
||||||
resouce_group_name=None,
|
resouce_group_name=None,
|
||||||
@@ -59,9 +59,9 @@ class Test_storage_secure_transfer_required_is_enabled:
|
|||||||
assert result[0].status == "FAIL"
|
assert result[0].status == "FAIL"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"Storage account {storage_account_name} from subscription {AZURE_SUSCRIPTION} has secure transfer required disabled."
|
== f"Storage account {storage_account_name} from subscription {AZURE_SUBSCRIPTION} has secure transfer required disabled."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == storage_account_name
|
assert result[0].resource_name == storage_account_name
|
||||||
assert result[0].resource_id == storage_account_id
|
assert result[0].resource_id == storage_account_id
|
||||||
|
|
||||||
@@ -70,8 +70,8 @@ class Test_storage_secure_transfer_required_is_enabled:
|
|||||||
storage_account_name = "Test Storage Account"
|
storage_account_name = "Test Storage Account"
|
||||||
storage_client = mock.MagicMock
|
storage_client = mock.MagicMock
|
||||||
storage_client.storage_accounts = {
|
storage_client.storage_accounts = {
|
||||||
AZURE_SUSCRIPTION: [
|
AZURE_SUBSCRIPTION: [
|
||||||
Storage_Account(
|
Account(
|
||||||
id=storage_account_id,
|
id=storage_account_id,
|
||||||
name=storage_account_name,
|
name=storage_account_name,
|
||||||
resouce_group_name=None,
|
resouce_group_name=None,
|
||||||
@@ -101,8 +101,8 @@ class Test_storage_secure_transfer_required_is_enabled:
|
|||||||
assert result[0].status == "PASS"
|
assert result[0].status == "PASS"
|
||||||
assert (
|
assert (
|
||||||
result[0].status_extended
|
result[0].status_extended
|
||||||
== f"Storage account {storage_account_name} from subscription {AZURE_SUSCRIPTION} has secure transfer required enabled."
|
== f"Storage account {storage_account_name} from subscription {AZURE_SUBSCRIPTION} has secure transfer required enabled."
|
||||||
)
|
)
|
||||||
assert result[0].subscription == AZURE_SUSCRIPTION
|
assert result[0].subscription == AZURE_SUBSCRIPTION
|
||||||
assert result[0].resource_name == storage_account_name
|
assert result[0].resource_name == storage_account_name
|
||||||
assert result[0].resource_id == storage_account_id
|
assert result[0].resource_id == storage_account_id
|
||||||
|
|||||||
@@ -1,18 +1,18 @@
|
|||||||
from unittest.mock import patch
|
from unittest.mock import patch
|
||||||
|
|
||||||
from prowler.providers.azure.services.storage.storage_service import (
|
from prowler.providers.azure.services.storage.storage_service import (
|
||||||
Blob_Properties,
|
Account,
|
||||||
|
BlobProperties,
|
||||||
Storage,
|
Storage,
|
||||||
Storage_Account,
|
|
||||||
)
|
)
|
||||||
from tests.providers.azure.azure_fixtures import (
|
from tests.providers.azure.azure_fixtures import (
|
||||||
AZURE_SUSCRIPTION,
|
AZURE_SUBSCRIPTION,
|
||||||
set_mocked_azure_audit_info,
|
set_mocked_azure_audit_info,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def mock_storage_get_storage_accounts(_):
|
def mock_storage_get_storage_accounts(_):
|
||||||
blob_properties = Blob_Properties(
|
blob_properties = BlobProperties(
|
||||||
id="id",
|
id="id",
|
||||||
name="name",
|
name="name",
|
||||||
type="type",
|
type="type",
|
||||||
@@ -20,8 +20,8 @@ def mock_storage_get_storage_accounts(_):
|
|||||||
container_delete_retention_policy=None,
|
container_delete_retention_policy=None,
|
||||||
)
|
)
|
||||||
return {
|
return {
|
||||||
AZURE_SUSCRIPTION: [
|
AZURE_SUBSCRIPTION: [
|
||||||
Storage_Account(
|
Account(
|
||||||
id="id",
|
id="id",
|
||||||
name="name",
|
name="name",
|
||||||
resouce_group_name=None,
|
resouce_group_name=None,
|
||||||
@@ -47,47 +47,51 @@ class Test_Storage_Service:
|
|||||||
def test__get_client__(self):
|
def test__get_client__(self):
|
||||||
storage = Storage(set_mocked_azure_audit_info())
|
storage = Storage(set_mocked_azure_audit_info())
|
||||||
assert (
|
assert (
|
||||||
storage.clients[AZURE_SUSCRIPTION].__class__.__name__
|
storage.clients[AZURE_SUBSCRIPTION].__class__.__name__
|
||||||
== "StorageManagementClient"
|
== "StorageManagementClient"
|
||||||
)
|
)
|
||||||
|
|
||||||
def test__get_storage_accounts__(self):
|
def test__get_storage_accounts__(self):
|
||||||
storage = Storage(set_mocked_azure_audit_info())
|
storage = Storage(set_mocked_azure_audit_info())
|
||||||
assert (
|
assert (
|
||||||
storage.storage_accounts[AZURE_SUSCRIPTION][0].__class__.__name__
|
storage.storage_accounts[AZURE_SUBSCRIPTION][0].__class__.__name__
|
||||||
== "Storage_Account"
|
== "Account"
|
||||||
)
|
)
|
||||||
assert storage.storage_accounts[AZURE_SUSCRIPTION][0].id == "id"
|
assert storage.storage_accounts[AZURE_SUBSCRIPTION][0].id == "id"
|
||||||
assert storage.storage_accounts[AZURE_SUSCRIPTION][0].name == "name"
|
assert storage.storage_accounts[AZURE_SUBSCRIPTION][0].name == "name"
|
||||||
assert storage.storage_accounts[AZURE_SUSCRIPTION][0].resouce_group_name is None
|
|
||||||
assert (
|
assert (
|
||||||
storage.storage_accounts[AZURE_SUSCRIPTION][0].enable_https_traffic_only
|
storage.storage_accounts[AZURE_SUBSCRIPTION][0].resouce_group_name is None
|
||||||
|
)
|
||||||
|
assert (
|
||||||
|
storage.storage_accounts[AZURE_SUBSCRIPTION][0].enable_https_traffic_only
|
||||||
is False
|
is False
|
||||||
)
|
)
|
||||||
assert (
|
assert (
|
||||||
storage.storage_accounts[AZURE_SUSCRIPTION][0].infrastructure_encryption
|
storage.storage_accounts[AZURE_SUBSCRIPTION][0].infrastructure_encryption
|
||||||
is False
|
is False
|
||||||
)
|
)
|
||||||
assert (
|
assert (
|
||||||
storage.storage_accounts[AZURE_SUSCRIPTION][0].allow_blob_public_access
|
storage.storage_accounts[AZURE_SUBSCRIPTION][0].allow_blob_public_access
|
||||||
is None
|
is None
|
||||||
)
|
)
|
||||||
assert storage.storage_accounts[AZURE_SUSCRIPTION][0].network_rule_set is None
|
assert storage.storage_accounts[AZURE_SUBSCRIPTION][0].network_rule_set is None
|
||||||
assert storage.storage_accounts[AZURE_SUSCRIPTION][0].encryption_type == "None"
|
assert storage.storage_accounts[AZURE_SUBSCRIPTION][0].encryption_type == "None"
|
||||||
assert (
|
assert (
|
||||||
storage.storage_accounts[AZURE_SUSCRIPTION][0].minimum_tls_version is None
|
storage.storage_accounts[AZURE_SUBSCRIPTION][0].minimum_tls_version is None
|
||||||
)
|
)
|
||||||
assert (
|
assert (
|
||||||
storage.storage_accounts[AZURE_SUSCRIPTION][0].key_expiration_period_in_days
|
storage.storage_accounts[AZURE_SUBSCRIPTION][
|
||||||
|
0
|
||||||
|
].key_expiration_period_in_days
|
||||||
is None
|
is None
|
||||||
)
|
)
|
||||||
assert (
|
assert (
|
||||||
storage.storage_accounts[AZURE_SUSCRIPTION][0].private_endpoint_connections
|
storage.storage_accounts[AZURE_SUBSCRIPTION][0].private_endpoint_connections
|
||||||
is None
|
is None
|
||||||
)
|
)
|
||||||
assert storage.storage_accounts[AZURE_SUSCRIPTION][
|
assert storage.storage_accounts[AZURE_SUBSCRIPTION][
|
||||||
0
|
0
|
||||||
].blob_properties == Blob_Properties(
|
].blob_properties == BlobProperties(
|
||||||
id="id",
|
id="id",
|
||||||
name="name",
|
name="name",
|
||||||
type="type",
|
type="type",
|
||||||
@@ -98,28 +102,30 @@ class Test_Storage_Service:
|
|||||||
def test__get_blob_properties__(self):
|
def test__get_blob_properties__(self):
|
||||||
storage = Storage(set_mocked_azure_audit_info())
|
storage = Storage(set_mocked_azure_audit_info())
|
||||||
assert (
|
assert (
|
||||||
storage.storage_accounts[AZURE_SUSCRIPTION][
|
storage.storage_accounts[AZURE_SUBSCRIPTION][
|
||||||
0
|
0
|
||||||
].blob_properties.__class__.__name__
|
].blob_properties.__class__.__name__
|
||||||
== "Blob_Properties"
|
== "BlobProperties"
|
||||||
)
|
)
|
||||||
assert storage.storage_accounts[AZURE_SUSCRIPTION][0].blob_properties.id == "id"
|
|
||||||
assert (
|
assert (
|
||||||
storage.storage_accounts[AZURE_SUSCRIPTION][0].blob_properties.name
|
storage.storage_accounts[AZURE_SUBSCRIPTION][0].blob_properties.id == "id"
|
||||||
|
)
|
||||||
|
assert (
|
||||||
|
storage.storage_accounts[AZURE_SUBSCRIPTION][0].blob_properties.name
|
||||||
== "name"
|
== "name"
|
||||||
)
|
)
|
||||||
assert (
|
assert (
|
||||||
storage.storage_accounts[AZURE_SUSCRIPTION][0].blob_properties.type
|
storage.storage_accounts[AZURE_SUBSCRIPTION][0].blob_properties.type
|
||||||
== "type"
|
== "type"
|
||||||
)
|
)
|
||||||
assert (
|
assert (
|
||||||
storage.storage_accounts[AZURE_SUSCRIPTION][
|
storage.storage_accounts[AZURE_SUBSCRIPTION][
|
||||||
0
|
0
|
||||||
].blob_properties.default_service_version
|
].blob_properties.default_service_version
|
||||||
is None
|
is None
|
||||||
)
|
)
|
||||||
assert (
|
assert (
|
||||||
storage.storage_accounts[AZURE_SUSCRIPTION][
|
storage.storage_accounts[AZURE_SUBSCRIPTION][
|
||||||
0
|
0
|
||||||
].blob_properties.container_delete_retention_policy
|
].blob_properties.container_delete_retention_policy
|
||||||
is None
|
is None
|
||||||
|
|||||||
Reference in New Issue
Block a user