prowler-cloud 5.12.0__py3-none-any.whl → 5.12.2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- prowler/CHANGELOG.md +8 -0
- prowler/compliance/aws/aws_foundational_technical_review_aws.json +2 -2
- prowler/compliance/aws/aws_well_architected_framework_security_pillar_aws.json +2 -2
- prowler/compliance/aws/iso27001_2022_aws.json +6 -6
- prowler/compliance/aws/kisa_isms_p_2023_aws.json +8 -8
- prowler/compliance/aws/kisa_isms_p_2023_korean_aws.json +8 -8
- prowler/compliance/aws/mitre_attack_aws.json +10 -10
- prowler/compliance/aws/prowler_threatscore_aws.json +2 -2
- prowler/compliance/aws/rbi_cyber_security_framework_aws.json +1 -1
- prowler/compliance/aws/soc2_aws.json +2 -2
- prowler/config/config.py +1 -1
- prowler/providers/aws/services/firehose/firehose_stream_encrypted_at_rest/firehose_stream_encrypted_at_rest.py +23 -1
- prowler/providers/aws/services/kafka/kafka_cluster_encryption_at_rest_uses_cmk/kafka_cluster_encryption_at_rest_uses_cmk.py +6 -1
- prowler/providers/aws/services/kafka/kafka_cluster_enhanced_monitoring_enabled/kafka_cluster_enhanced_monitoring_enabled.py +6 -1
- prowler/providers/aws/services/kafka/kafka_cluster_in_transit_encryption_enabled/kafka_cluster_in_transit_encryption_enabled.py +6 -1
- prowler/providers/aws/services/kafka/kafka_cluster_is_public/kafka_cluster_is_public.py +6 -1
- prowler/providers/aws/services/kafka/kafka_cluster_mutual_tls_authentication_enabled/kafka_cluster_mutual_tls_authentication_enabled.py +6 -1
- prowler/providers/aws/services/kafka/kafka_cluster_unrestricted_access_disabled/kafka_cluster_unrestricted_access_disabled.py +6 -1
- prowler/providers/aws/services/kafka/kafka_cluster_uses_latest_version/kafka_cluster_uses_latest_version.py +6 -1
- prowler/providers/aws/services/kafka/kafka_service.py +109 -37
- prowler/providers/m365/services/defender/defender_service.py +20 -14
- {prowler_cloud-5.12.0.dist-info → prowler_cloud-5.12.2.dist-info}/METADATA +1 -1
- {prowler_cloud-5.12.0.dist-info → prowler_cloud-5.12.2.dist-info}/RECORD +26 -26
- {prowler_cloud-5.12.0.dist-info → prowler_cloud-5.12.2.dist-info}/LICENSE +0 -0
- {prowler_cloud-5.12.0.dist-info → prowler_cloud-5.12.2.dist-info}/WHEEL +0 -0
- {prowler_cloud-5.12.0.dist-info → prowler_cloud-5.12.2.dist-info}/entry_points.txt +0 -0
prowler/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
# Prowler SDK Changelog
|
|
2
2
|
|
|
3
3
|
All notable changes to the **Prowler SDK** are documented in this file.
|
|
4
|
+
|
|
5
|
+
## [v5.12.1] (Prowler v5.12.1)
|
|
6
|
+
|
|
7
|
+
### Fixed
|
|
8
|
+
- Replaced old check id with new ones for compliance files [(#8682)](https://github.com/prowler-cloud/prowler/pull/8682)
|
|
9
|
+
- `firehose_stream_encrypted_at_rest` check false positives and new api call in kafka service [(#8599)](https://github.com/prowler-cloud/prowler/pull/8599)
|
|
10
|
+
- Replace defender rules policies key to use old name [(#8702)](https://github.com/prowler-cloud/prowler/pull/8702)
|
|
11
|
+
|
|
4
12
|
## [v5.12.0] (Prowler v5.12.0)
|
|
5
13
|
|
|
6
14
|
### Added
|
|
@@ -364,8 +364,8 @@
|
|
|
364
364
|
"ec2_ami_public",
|
|
365
365
|
"ec2_instance_public_ip",
|
|
366
366
|
"ec2_securitygroup_allow_ingress_from_internet_to_all_ports",
|
|
367
|
-
"
|
|
368
|
-
"
|
|
367
|
+
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_mongodb_27017_27018",
|
|
368
|
+
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_ftp_20_21",
|
|
369
369
|
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_22",
|
|
370
370
|
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_3389",
|
|
371
371
|
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_cassandra_7199_9160_8888",
|
|
@@ -721,8 +721,8 @@
|
|
|
721
721
|
"ec2_networkacl_allow_ingress_tcp_port_22",
|
|
722
722
|
"ec2_networkacl_allow_ingress_tcp_port_3389",
|
|
723
723
|
"ec2_securitygroup_allow_ingress_from_internet_to_all_ports",
|
|
724
|
-
"
|
|
725
|
-
"
|
|
724
|
+
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_mongodb_27017_27018",
|
|
725
|
+
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_ftp_20_21",
|
|
726
726
|
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_22",
|
|
727
727
|
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_3389",
|
|
728
728
|
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_cassandra_7199_9160_8888",
|
|
@@ -1510,8 +1510,8 @@
|
|
|
1510
1510
|
"ec2_securitygroup_allow_ingress_from_internet_to_all_ports",
|
|
1511
1511
|
"ec2_securitygroup_allow_ingress_from_internet_to_any_port",
|
|
1512
1512
|
"ec2_securitygroup_allow_ingress_from_internet_to_high_risk_tcp_ports",
|
|
1513
|
-
"
|
|
1514
|
-
"
|
|
1513
|
+
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_mongodb_27017_27018",
|
|
1514
|
+
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_ftp_20_21",
|
|
1515
1515
|
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_22",
|
|
1516
1516
|
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_3389",
|
|
1517
1517
|
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_cassandra_7199_9160_8888",
|
|
@@ -1604,8 +1604,8 @@
|
|
|
1604
1604
|
"ec2_securitygroup_allow_ingress_from_internet_to_all_ports",
|
|
1605
1605
|
"ec2_securitygroup_allow_ingress_from_internet_to_any_port",
|
|
1606
1606
|
"ec2_securitygroup_allow_ingress_from_internet_to_high_risk_tcp_ports",
|
|
1607
|
-
"
|
|
1608
|
-
"
|
|
1607
|
+
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_mongodb_27017_27018",
|
|
1608
|
+
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_ftp_20_21",
|
|
1609
1609
|
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_22",
|
|
1610
1610
|
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_3389",
|
|
1611
1611
|
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_cassandra_7199_9160_8888",
|
|
@@ -1698,8 +1698,8 @@
|
|
|
1698
1698
|
"ec2_securitygroup_allow_ingress_from_internet_to_all_ports",
|
|
1699
1699
|
"ec2_securitygroup_allow_ingress_from_internet_to_any_port",
|
|
1700
1700
|
"ec2_securitygroup_allow_ingress_from_internet_to_high_risk_tcp_ports",
|
|
1701
|
-
"
|
|
1702
|
-
"
|
|
1701
|
+
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_mongodb_27017_27018",
|
|
1702
|
+
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_ftp_20_21",
|
|
1703
1703
|
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_22",
|
|
1704
1704
|
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_3389",
|
|
1705
1705
|
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_cassandra_7199_9160_8888",
|
|
@@ -1558,8 +1558,8 @@
|
|
|
1558
1558
|
"ec2_securitygroup_allow_ingress_from_internet_to_all_ports",
|
|
1559
1559
|
"ec2_securitygroup_allow_ingress_from_internet_to_any_port",
|
|
1560
1560
|
"ec2_securitygroup_allow_ingress_from_internet_to_high_risk_tcp_ports",
|
|
1561
|
-
"
|
|
1562
|
-
"
|
|
1561
|
+
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_mongodb_27017_27018",
|
|
1562
|
+
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_ftp_20_21",
|
|
1563
1563
|
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_22",
|
|
1564
1564
|
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_3389",
|
|
1565
1565
|
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_cassandra_7199_9160_8888",
|
|
@@ -1682,7 +1682,7 @@
|
|
|
1682
1682
|
"ec2_securitygroup_allow_ingress_from_internet_to_all_ports",
|
|
1683
1683
|
"ec2_securitygroup_allow_ingress_from_internet_to_any_port",
|
|
1684
1684
|
"ec2_securitygroup_allow_ingress_from_internet_to_high_risk_tcp_ports",
|
|
1685
|
-
"
|
|
1685
|
+
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_ftp_20_21",
|
|
1686
1686
|
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_22",
|
|
1687
1687
|
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_3389",
|
|
1688
1688
|
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_elasticsearch_kibana_9200_9300_5601",
|
|
@@ -1814,7 +1814,7 @@
|
|
|
1814
1814
|
"ec2_securitygroup_allow_ingress_from_internet_to_all_ports",
|
|
1815
1815
|
"ec2_securitygroup_allow_ingress_from_internet_to_any_port",
|
|
1816
1816
|
"ec2_securitygroup_allow_ingress_from_internet_to_high_risk_tcp_ports",
|
|
1817
|
-
"
|
|
1817
|
+
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_mongodb_27017_27018",
|
|
1818
1818
|
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_cassandra_7199_9160_8888",
|
|
1819
1819
|
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_memcached_11211",
|
|
1820
1820
|
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_mysql_3306",
|
|
@@ -1917,7 +1917,7 @@
|
|
|
1917
1917
|
"ec2_securitygroup_allow_ingress_from_internet_to_all_ports",
|
|
1918
1918
|
"ec2_securitygroup_allow_ingress_from_internet_to_any_port",
|
|
1919
1919
|
"ec2_securitygroup_allow_ingress_from_internet_to_high_risk_tcp_ports",
|
|
1920
|
-
"
|
|
1920
|
+
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_ftp_20_21",
|
|
1921
1921
|
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_22",
|
|
1922
1922
|
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_3389",
|
|
1923
1923
|
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_telnet_23",
|
|
@@ -3024,8 +3024,8 @@
|
|
|
3024
3024
|
"ec2_securitygroup_allow_ingress_from_internet_to_all_ports",
|
|
3025
3025
|
"ec2_securitygroup_allow_ingress_from_internet_to_any_port",
|
|
3026
3026
|
"ec2_securitygroup_allow_ingress_from_internet_to_high_risk_tcp_ports",
|
|
3027
|
-
"
|
|
3028
|
-
"
|
|
3027
|
+
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_mongodb_27017_27018",
|
|
3028
|
+
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_ftp_20_21",
|
|
3029
3029
|
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_22",
|
|
3030
3030
|
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_3389",
|
|
3031
3031
|
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_cassandra_7199_9160_8888",
|
|
@@ -4588,4 +4588,4 @@
|
|
|
4588
4588
|
]
|
|
4589
4589
|
}
|
|
4590
4590
|
]
|
|
4591
|
-
}
|
|
4591
|
+
}
|
|
@@ -1557,8 +1557,8 @@
|
|
|
1557
1557
|
"ec2_securitygroup_allow_ingress_from_internet_to_all_ports",
|
|
1558
1558
|
"ec2_securitygroup_allow_ingress_from_internet_to_any_port",
|
|
1559
1559
|
"ec2_securitygroup_allow_ingress_from_internet_to_high_risk_tcp_ports",
|
|
1560
|
-
"
|
|
1561
|
-
"
|
|
1560
|
+
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_mongodb_27017_27018",
|
|
1561
|
+
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_ftp_20_21",
|
|
1562
1562
|
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_22",
|
|
1563
1563
|
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_3389",
|
|
1564
1564
|
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_cassandra_7199_9160_8888",
|
|
@@ -1682,7 +1682,7 @@
|
|
|
1682
1682
|
"ec2_securitygroup_allow_ingress_from_internet_to_all_ports",
|
|
1683
1683
|
"ec2_securitygroup_allow_ingress_from_internet_to_any_port",
|
|
1684
1684
|
"ec2_securitygroup_allow_ingress_from_internet_to_high_risk_tcp_ports",
|
|
1685
|
-
"
|
|
1685
|
+
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_ftp_20_21",
|
|
1686
1686
|
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_22",
|
|
1687
1687
|
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_3389",
|
|
1688
1688
|
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_elasticsearch_kibana_9200_9300_5601",
|
|
@@ -1816,7 +1816,7 @@
|
|
|
1816
1816
|
"ec2_securitygroup_allow_ingress_from_internet_to_all_ports",
|
|
1817
1817
|
"ec2_securitygroup_allow_ingress_from_internet_to_any_port",
|
|
1818
1818
|
"ec2_securitygroup_allow_ingress_from_internet_to_high_risk_tcp_ports",
|
|
1819
|
-
"
|
|
1819
|
+
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_mongodb_27017_27018",
|
|
1820
1820
|
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_cassandra_7199_9160_8888",
|
|
1821
1821
|
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_memcached_11211",
|
|
1822
1822
|
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_mysql_3306",
|
|
@@ -1919,7 +1919,7 @@
|
|
|
1919
1919
|
"ec2_securitygroup_allow_ingress_from_internet_to_all_ports",
|
|
1920
1920
|
"ec2_securitygroup_allow_ingress_from_internet_to_any_port",
|
|
1921
1921
|
"ec2_securitygroup_allow_ingress_from_internet_to_high_risk_tcp_ports",
|
|
1922
|
-
"
|
|
1922
|
+
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_ftp_20_21",
|
|
1923
1923
|
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_22",
|
|
1924
1924
|
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_3389",
|
|
1925
1925
|
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_telnet_23",
|
|
@@ -3028,8 +3028,8 @@
|
|
|
3028
3028
|
"ec2_securitygroup_allow_ingress_from_internet_to_all_ports",
|
|
3029
3029
|
"ec2_securitygroup_allow_ingress_from_internet_to_any_port",
|
|
3030
3030
|
"ec2_securitygroup_allow_ingress_from_internet_to_high_risk_tcp_ports",
|
|
3031
|
-
"
|
|
3032
|
-
"
|
|
3031
|
+
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_mongodb_27017_27018",
|
|
3032
|
+
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_ftp_20_21",
|
|
3033
3033
|
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_22",
|
|
3034
3034
|
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_3389",
|
|
3035
3035
|
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_cassandra_7199_9160_8888",
|
|
@@ -4603,4 +4603,4 @@
|
|
|
4603
4603
|
]
|
|
4604
4604
|
}
|
|
4605
4605
|
]
|
|
4606
|
-
}
|
|
4606
|
+
}
|
|
@@ -107,8 +107,8 @@
|
|
|
107
107
|
"ec2_networkacl_allow_ingress_tcp_port_22",
|
|
108
108
|
"ec2_networkacl_allow_ingress_tcp_port_3389",
|
|
109
109
|
"ec2_securitygroup_allow_ingress_from_internet_to_all_ports",
|
|
110
|
-
"
|
|
111
|
-
"
|
|
110
|
+
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_mongodb_27017_27018",
|
|
111
|
+
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_ftp_20_21",
|
|
112
112
|
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_22",
|
|
113
113
|
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_3389",
|
|
114
114
|
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_cassandra_7199_9160_8888",
|
|
@@ -1024,8 +1024,8 @@
|
|
|
1024
1024
|
"ec2_networkacl_allow_ingress_tcp_port_22",
|
|
1025
1025
|
"ec2_networkacl_allow_ingress_tcp_port_3389",
|
|
1026
1026
|
"ec2_securitygroup_allow_ingress_from_internet_to_all_ports",
|
|
1027
|
-
"
|
|
1028
|
-
"
|
|
1027
|
+
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_mongodb_27017_27018",
|
|
1028
|
+
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_ftp_20_21",
|
|
1029
1029
|
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_22",
|
|
1030
1030
|
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_3389",
|
|
1031
1031
|
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_cassandra_7199_9160_8888",
|
|
@@ -1470,8 +1470,8 @@
|
|
|
1470
1470
|
"ec2_networkacl_allow_ingress_tcp_port_22",
|
|
1471
1471
|
"ec2_networkacl_allow_ingress_tcp_port_3389",
|
|
1472
1472
|
"ec2_securitygroup_allow_ingress_from_internet_to_all_ports",
|
|
1473
|
-
"
|
|
1474
|
-
"
|
|
1473
|
+
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_mongodb_27017_27018",
|
|
1474
|
+
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_ftp_20_21",
|
|
1475
1475
|
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_22",
|
|
1476
1476
|
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_3389",
|
|
1477
1477
|
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_cassandra_7199_9160_8888",
|
|
@@ -1650,8 +1650,8 @@
|
|
|
1650
1650
|
"ec2_networkacl_allow_ingress_tcp_port_22",
|
|
1651
1651
|
"ec2_networkacl_allow_ingress_tcp_port_3389",
|
|
1652
1652
|
"ec2_securitygroup_allow_ingress_from_internet_to_all_ports",
|
|
1653
|
-
"
|
|
1654
|
-
"
|
|
1653
|
+
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_mongodb_27017_27018",
|
|
1654
|
+
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_ftp_20_21",
|
|
1655
1655
|
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_22",
|
|
1656
1656
|
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_3389",
|
|
1657
1657
|
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_cassandra_7199_9160_8888",
|
|
@@ -1902,8 +1902,8 @@
|
|
|
1902
1902
|
"ec2_networkacl_allow_ingress_tcp_port_22",
|
|
1903
1903
|
"ec2_networkacl_allow_ingress_tcp_port_3389",
|
|
1904
1904
|
"ec2_securitygroup_allow_ingress_from_internet_to_all_ports",
|
|
1905
|
-
"
|
|
1906
|
-
"
|
|
1905
|
+
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_mongodb_27017_27018",
|
|
1906
|
+
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_ftp_20_21",
|
|
1907
1907
|
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_22",
|
|
1908
1908
|
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_3389",
|
|
1909
1909
|
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_cassandra_7199_9160_8888",
|
|
@@ -553,8 +553,8 @@
|
|
|
553
553
|
"Description": "Ensure that ec2 security groups do not allow ingress from internet to common ports",
|
|
554
554
|
"Checks": [
|
|
555
555
|
"ec2_securitygroup_allow_ingress_from_internet_to_high_risk_tcp_ports",
|
|
556
|
-
"
|
|
557
|
-
"
|
|
556
|
+
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_mongodb_27017_27018",
|
|
557
|
+
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_ftp_20_21",
|
|
558
558
|
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_22",
|
|
559
559
|
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_3389",
|
|
560
560
|
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_cassandra_7199_9160_8888",
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
"elbv2_ssl_listeners",
|
|
67
67
|
"ssm_documents_set_as_public",
|
|
68
68
|
"vpc_subnet_no_public_ip_by_default",
|
|
69
|
-
"
|
|
69
|
+
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_ftp_20_21",
|
|
70
70
|
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_3389",
|
|
71
71
|
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_mysql_3306",
|
|
72
72
|
"s3_account_level_public_access_blocks"
|
|
@@ -253,8 +253,8 @@
|
|
|
253
253
|
"ec2_securitygroup_allow_ingress_from_internet_to_all_ports",
|
|
254
254
|
"ec2_securitygroup_allow_ingress_from_internet_to_any_port",
|
|
255
255
|
"ec2_securitygroup_allow_ingress_from_internet_to_high_risk_tcp_ports",
|
|
256
|
-
"
|
|
257
|
-
"
|
|
256
|
+
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_mongodb_27017_27018",
|
|
257
|
+
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_ftp_20_21",
|
|
258
258
|
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_22",
|
|
259
259
|
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_3389",
|
|
260
260
|
"ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_cassandra_7199_9160_8888",
|
prowler/config/config.py
CHANGED
|
@@ -12,7 +12,7 @@ from prowler.lib.logger import logger
|
|
|
12
12
|
|
|
13
13
|
timestamp = datetime.today()
|
|
14
14
|
timestamp_utc = datetime.now(timezone.utc).replace(tzinfo=timezone.utc)
|
|
15
|
-
prowler_version = "5.12.
|
|
15
|
+
prowler_version = "5.12.2"
|
|
16
16
|
html_logo_url = "https://github.com/prowler-cloud/prowler/"
|
|
17
17
|
square_logo_img = "https://prowler.com/wp-content/uploads/logo-html.png"
|
|
18
18
|
aws_logo = "https://user-images.githubusercontent.com/38561120/235953920-3e3fba08-0795-41dc-b480-9bea57db9f2e.png"
|
|
@@ -3,6 +3,7 @@ from typing import List
|
|
|
3
3
|
from prowler.lib.check.models import Check, Check_Report_AWS
|
|
4
4
|
from prowler.providers.aws.services.firehose.firehose_client import firehose_client
|
|
5
5
|
from prowler.providers.aws.services.firehose.firehose_service import EncryptionStatus
|
|
6
|
+
from prowler.providers.aws.services.kafka.kafka_client import kafka_client
|
|
6
7
|
from prowler.providers.aws.services.kinesis.kinesis_client import kinesis_client
|
|
7
8
|
from prowler.providers.aws.services.kinesis.kinesis_service import EncryptionType
|
|
8
9
|
|
|
@@ -37,7 +38,28 @@ class firehose_stream_encrypted_at_rest(Check):
|
|
|
37
38
|
report.status = "PASS"
|
|
38
39
|
report.status_extended = f"Firehose Stream {stream.name} does not have at rest encryption enabled but the source stream {source_stream.name} has at rest encryption enabled."
|
|
39
40
|
|
|
40
|
-
#
|
|
41
|
+
# MSK source - check if the MSK cluster has encryption at rest with CMK
|
|
42
|
+
elif stream.delivery_stream_type == "MSKAsSource":
|
|
43
|
+
msk_cluster_arn = stream.source.msk.msk_cluster_arn
|
|
44
|
+
if msk_cluster_arn:
|
|
45
|
+
msk_cluster = None
|
|
46
|
+
for cluster in kafka_client.clusters.values():
|
|
47
|
+
if cluster.arn == msk_cluster_arn:
|
|
48
|
+
msk_cluster = cluster
|
|
49
|
+
break
|
|
50
|
+
|
|
51
|
+
if msk_cluster:
|
|
52
|
+
# All MSK clusters (both provisioned and serverless) always have encryption at rest enabled by AWS
|
|
53
|
+
# AWS MSK always encrypts data at rest - either with AWS managed keys or CMK
|
|
54
|
+
report.status = "PASS"
|
|
55
|
+
if msk_cluster.kafka_version == "SERVERLESS":
|
|
56
|
+
report.status_extended = f"Firehose Stream {stream.name} uses MSK serverless source which always has encryption at rest enabled by default."
|
|
57
|
+
else:
|
|
58
|
+
report.status_extended = f"Firehose Stream {stream.name} uses MSK provisioned source which always has encryption at rest enabled by AWS (either with AWS managed keys or CMK)."
|
|
59
|
+
else:
|
|
60
|
+
report.status_extended = f"Firehose Stream {stream.name} uses MSK source which always has encryption at rest enabled by AWS."
|
|
61
|
+
|
|
62
|
+
# Check if the stream has encryption enabled directly (DirectPut or DatabaseAsSource cases)
|
|
41
63
|
elif stream.kms_encryption == EncryptionStatus.ENABLED:
|
|
42
64
|
report.status = "PASS"
|
|
43
65
|
report.status_extended = f"Firehose Stream {stream.name} does have at rest encryption enabled."
|
|
@@ -12,7 +12,12 @@ class kafka_cluster_encryption_at_rest_uses_cmk(Check):
|
|
|
12
12
|
report.status = "FAIL"
|
|
13
13
|
report.status_extended = f"Kafka cluster '{cluster.name}' does not have encryption at rest enabled with a CMK."
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
# Serverless clusters always have encryption at rest enabled by default
|
|
16
|
+
if cluster.kafka_version == "SERVERLESS":
|
|
17
|
+
report.status = "PASS"
|
|
18
|
+
report.status_extended = f"Kafka cluster '{cluster.name}' is serverless and always has encryption at rest enabled by default."
|
|
19
|
+
# For provisioned clusters, check if they use a customer managed KMS key
|
|
20
|
+
elif any(
|
|
16
21
|
(
|
|
17
22
|
cluster.data_volume_kms_key_id == key.arn
|
|
18
23
|
and getattr(key, "manager", "") == "CUSTOMER"
|
|
@@ -13,7 +13,12 @@ class kafka_cluster_enhanced_monitoring_enabled(Check):
|
|
|
13
13
|
f"Kafka cluster '{cluster.name}' has enhanced monitoring enabled."
|
|
14
14
|
)
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
# Serverless clusters always have enhanced monitoring enabled by default
|
|
17
|
+
if cluster.kafka_version == "SERVERLESS":
|
|
18
|
+
report.status = "PASS"
|
|
19
|
+
report.status_extended = f"Kafka cluster '{cluster.name}' is serverless and always has enhanced monitoring enabled by default."
|
|
20
|
+
# For provisioned clusters, check the enhanced monitoring configuration
|
|
21
|
+
elif cluster.enhanced_monitoring == "DEFAULT":
|
|
17
22
|
report.status = "FAIL"
|
|
18
23
|
report.status_extended = f"Kafka cluster '{cluster.name}' does not have enhanced monitoring enabled."
|
|
19
24
|
|
|
@@ -11,7 +11,12 @@ class kafka_cluster_in_transit_encryption_enabled(Check):
|
|
|
11
11
|
report.status = "FAIL"
|
|
12
12
|
report.status_extended = f"Kafka cluster '{cluster.name}' does not have encryption in transit enabled."
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
# Serverless clusters always have encryption in transit enabled by default
|
|
15
|
+
if cluster.kafka_version == "SERVERLESS":
|
|
16
|
+
report.status = "PASS"
|
|
17
|
+
report.status_extended = f"Kafka cluster '{cluster.name}' is serverless and always has encryption in transit enabled by default."
|
|
18
|
+
# For provisioned clusters, check the encryption configuration
|
|
19
|
+
elif (
|
|
15
20
|
cluster.encryption_in_transit.client_broker == "TLS"
|
|
16
21
|
and cluster.encryption_in_transit.in_cluster
|
|
17
22
|
):
|
|
@@ -13,7 +13,12 @@ class kafka_cluster_is_public(Check):
|
|
|
13
13
|
f"Kafka cluster {cluster.name} is publicly accessible."
|
|
14
14
|
)
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
# Serverless clusters are always private by default
|
|
17
|
+
if cluster.kafka_version == "SERVERLESS":
|
|
18
|
+
report.status = "PASS"
|
|
19
|
+
report.status_extended = f"Kafka cluster {cluster.name} is serverless and always private by default."
|
|
20
|
+
# For provisioned clusters, check the public access configuration
|
|
21
|
+
elif not cluster.public_access:
|
|
17
22
|
report.status = "PASS"
|
|
18
23
|
report.status_extended = (
|
|
19
24
|
f"Kafka cluster {cluster.name} is not publicly accessible."
|
|
@@ -11,7 +11,12 @@ class kafka_cluster_mutual_tls_authentication_enabled(Check):
|
|
|
11
11
|
report.status = "FAIL"
|
|
12
12
|
report.status_extended = f"Kafka cluster '{cluster.name}' does not have mutual TLS authentication enabled."
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
# Serverless clusters always have TLS authentication enabled by default
|
|
15
|
+
if cluster.kafka_version == "SERVERLESS":
|
|
16
|
+
report.status = "PASS"
|
|
17
|
+
report.status_extended = f"Kafka cluster '{cluster.name}' is serverless and always has TLS authentication enabled by default."
|
|
18
|
+
# For provisioned clusters, check the TLS configuration
|
|
19
|
+
elif cluster.tls_authentication:
|
|
15
20
|
report.status = "PASS"
|
|
16
21
|
report.status_extended = f"Kafka cluster '{cluster.name}' has mutual TLS authentication enabled."
|
|
17
22
|
|
|
@@ -13,7 +13,12 @@ class kafka_cluster_unrestricted_access_disabled(Check):
|
|
|
13
13
|
f"Kafka cluster '{cluster.name}' has unrestricted access enabled."
|
|
14
14
|
)
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
# Serverless clusters always require authentication by default
|
|
17
|
+
if cluster.kafka_version == "SERVERLESS":
|
|
18
|
+
report.status = "PASS"
|
|
19
|
+
report.status_extended = f"Kafka cluster '{cluster.name}' is serverless and always requires authentication by default."
|
|
20
|
+
# For provisioned clusters, check the unauthenticated access configuration
|
|
21
|
+
elif not cluster.unauthentication_access:
|
|
17
22
|
report.status = "PASS"
|
|
18
23
|
report.status_extended = f"Kafka cluster '{cluster.name}' does not have unrestricted access enabled."
|
|
19
24
|
|
|
@@ -13,7 +13,12 @@ class kafka_cluster_uses_latest_version(Check):
|
|
|
13
13
|
f"Kafka cluster '{cluster.name}' is using the latest version."
|
|
14
14
|
)
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
# Serverless clusters don't have specific Kafka versions - AWS manages them automatically
|
|
17
|
+
if cluster.kafka_version == "SERVERLESS":
|
|
18
|
+
report.status = "PASS"
|
|
19
|
+
report.status_extended = f"Kafka cluster '{cluster.name}' is serverless and AWS automatically manages the Kafka version."
|
|
20
|
+
# For provisioned clusters, check if they're using the latest version
|
|
21
|
+
elif cluster.kafka_version != kafka_client.kafka_versions[-1].version:
|
|
17
22
|
report.status = "FAIL"
|
|
18
23
|
report.status_extended = (
|
|
19
24
|
f"Kafka cluster '{cluster.name}' is not using the latest version."
|
|
@@ -15,61 +15,133 @@ class Kafka(AWSService):
|
|
|
15
15
|
self.__threading_call__(self._list_kafka_versions)
|
|
16
16
|
|
|
17
17
|
def _list_clusters(self, regional_client):
|
|
18
|
+
logger.info(f"Kafka - Listing clusters in region {regional_client.region}...")
|
|
18
19
|
try:
|
|
19
|
-
|
|
20
|
+
# Use list_clusters_v2 to support both provisioned and serverless clusters
|
|
21
|
+
cluster_paginator = regional_client.get_paginator("list_clusters_v2")
|
|
22
|
+
logger.info(
|
|
23
|
+
f"Kafka - Paginator created for region {regional_client.region}"
|
|
24
|
+
)
|
|
20
25
|
|
|
21
26
|
for page in cluster_paginator.paginate():
|
|
27
|
+
logger.info(
|
|
28
|
+
f"Kafka - Processing page with {len(page.get('ClusterInfoList', []))} clusters in region {regional_client.region}"
|
|
29
|
+
)
|
|
22
30
|
for cluster in page["ClusterInfoList"]:
|
|
31
|
+
logger.info(
|
|
32
|
+
f"Kafka - Found cluster: {cluster.get('ClusterName', 'Unknown')} in region {regional_client.region}"
|
|
33
|
+
)
|
|
23
34
|
arn = cluster.get(
|
|
24
35
|
"ClusterArn",
|
|
25
36
|
f"{self.account_arn_template}/{cluster.get('ClusterName', '')}",
|
|
26
37
|
)
|
|
38
|
+
cluster_type = cluster.get("ClusterType", "UNKNOWN")
|
|
27
39
|
|
|
28
40
|
if not self.audit_resources or is_resource_filtered(
|
|
29
41
|
arn, self.audit_resources
|
|
30
42
|
):
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
.get("
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
43
|
+
# Handle provisioned clusters
|
|
44
|
+
if cluster_type == "PROVISIONED" and "Provisioned" in cluster:
|
|
45
|
+
provisioned = cluster["Provisioned"]
|
|
46
|
+
self.clusters[cluster.get("ClusterArn", "")] = Cluster(
|
|
47
|
+
id=arn.split(":")[-1].split("/")[-1],
|
|
48
|
+
name=cluster.get("ClusterName", ""),
|
|
49
|
+
arn=arn,
|
|
50
|
+
region=regional_client.region,
|
|
51
|
+
tags=(
|
|
52
|
+
list(cluster.get("Tags", {}).values())
|
|
53
|
+
if cluster.get("Tags")
|
|
54
|
+
else []
|
|
55
|
+
),
|
|
56
|
+
state=cluster.get("State", ""),
|
|
57
|
+
kafka_version=provisioned.get(
|
|
58
|
+
"CurrentBrokerSoftwareInfo", {}
|
|
59
|
+
).get("KafkaVersion", ""),
|
|
60
|
+
data_volume_kms_key_id=provisioned.get(
|
|
61
|
+
"EncryptionInfo", {}
|
|
62
|
+
)
|
|
63
|
+
.get("EncryptionAtRest", {})
|
|
64
|
+
.get("DataVolumeKMSKeyId", ""),
|
|
65
|
+
encryption_in_transit=EncryptionInTransit(
|
|
66
|
+
client_broker=provisioned.get("EncryptionInfo", {})
|
|
67
|
+
.get("EncryptionInTransit", {})
|
|
68
|
+
.get("ClientBroker", "PLAINTEXT"),
|
|
69
|
+
in_cluster=provisioned.get("EncryptionInfo", {})
|
|
70
|
+
.get("EncryptionInTransit", {})
|
|
71
|
+
.get("InCluster", False),
|
|
72
|
+
),
|
|
73
|
+
tls_authentication=provisioned.get(
|
|
74
|
+
"ClientAuthentication", {}
|
|
75
|
+
)
|
|
76
|
+
.get("Tls", {})
|
|
77
|
+
.get("Enabled", False),
|
|
78
|
+
public_access=provisioned.get("BrokerNodeGroupInfo", {})
|
|
79
|
+
.get("ConnectivityInfo", {})
|
|
80
|
+
.get("PublicAccess", {})
|
|
81
|
+
.get("Type", "SERVICE_PROVIDED_EIPS")
|
|
82
|
+
!= "DISABLED",
|
|
83
|
+
unauthentication_access=provisioned.get(
|
|
84
|
+
"ClientAuthentication", {}
|
|
85
|
+
)
|
|
86
|
+
.get("Unauthenticated", {})
|
|
87
|
+
.get("Enabled", False),
|
|
88
|
+
enhanced_monitoring=provisioned.get(
|
|
89
|
+
"EnhancedMonitoring", "DEFAULT"
|
|
90
|
+
),
|
|
91
|
+
)
|
|
92
|
+
logger.info(
|
|
93
|
+
f"Kafka - Added provisioned cluster {cluster.get('ClusterName', 'Unknown')} to clusters dict"
|
|
94
|
+
)
|
|
95
|
+
|
|
96
|
+
# Handle serverless clusters
|
|
97
|
+
elif cluster_type == "SERVERLESS" and "Serverless" in cluster:
|
|
98
|
+
# For serverless clusters, encryption is always enabled by default
|
|
99
|
+
# We'll create a Cluster object with default encryption values
|
|
100
|
+
self.clusters[cluster.get("ClusterArn", "")] = Cluster(
|
|
101
|
+
id=arn.split(":")[-1].split("/")[-1],
|
|
102
|
+
name=cluster.get("ClusterName", ""),
|
|
103
|
+
arn=arn,
|
|
104
|
+
region=regional_client.region,
|
|
105
|
+
tags=(
|
|
106
|
+
list(cluster.get("Tags", {}).values())
|
|
107
|
+
if cluster.get("Tags")
|
|
108
|
+
else []
|
|
109
|
+
),
|
|
110
|
+
state=cluster.get("State", ""),
|
|
111
|
+
kafka_version="SERVERLESS", # Serverless doesn't have specific Kafka version
|
|
112
|
+
data_volume_kms_key_id="AWS_MANAGED", # Serverless uses AWS managed keys
|
|
113
|
+
encryption_in_transit=EncryptionInTransit(
|
|
114
|
+
client_broker="TLS", # Serverless always has TLS enabled
|
|
115
|
+
in_cluster=True, # Serverless always has in-cluster encryption
|
|
116
|
+
),
|
|
117
|
+
tls_authentication=True, # Serverless always has TLS authentication
|
|
118
|
+
public_access=False, # Serverless clusters are always private
|
|
119
|
+
unauthentication_access=False, # Serverless requires authentication
|
|
120
|
+
enhanced_monitoring="DEFAULT",
|
|
121
|
+
)
|
|
122
|
+
logger.info(
|
|
123
|
+
f"Kafka - Added serverless cluster {cluster.get('ClusterName', 'Unknown')} to clusters dict"
|
|
62
124
|
)
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
"
|
|
67
|
-
)
|
|
125
|
+
|
|
126
|
+
else:
|
|
127
|
+
logger.warning(
|
|
128
|
+
f"Kafka - Unknown cluster type {cluster_type} for cluster {cluster.get('ClusterName', 'Unknown')}"
|
|
129
|
+
)
|
|
130
|
+
else:
|
|
131
|
+
logger.info(
|
|
132
|
+
f"Kafka - Cluster {cluster.get('ClusterName', 'Unknown')} filtered out by audit_resources"
|
|
68
133
|
)
|
|
134
|
+
|
|
135
|
+
logger.info(
|
|
136
|
+
f"Kafka - Total clusters found in region {regional_client.region}: {len(self.clusters)}"
|
|
137
|
+
)
|
|
69
138
|
except Exception as error:
|
|
70
139
|
logger.error(
|
|
71
140
|
f"{regional_client.region} -- {error.__class__.__name__}[{error.__traceback__.tb_lineno}]: {error}"
|
|
72
141
|
)
|
|
142
|
+
logger.error(
|
|
143
|
+
f"Kafka - Error details in region {regional_client.region}: {str(error)}"
|
|
144
|
+
)
|
|
73
145
|
|
|
74
146
|
def _list_kafka_versions(self, regional_client):
|
|
75
147
|
try:
|
|
@@ -91,7 +91,7 @@ class Defender(M365Service):
|
|
|
91
91
|
malware_rule = [malware_rule]
|
|
92
92
|
for rule in malware_rule:
|
|
93
93
|
if rule:
|
|
94
|
-
malware_rules[rule.get("
|
|
94
|
+
malware_rules[rule.get("MalwareFilterPolicy", "")] = MalwareRule(
|
|
95
95
|
state=rule.get("State", ""),
|
|
96
96
|
priority=rule.get("Priority", 0),
|
|
97
97
|
users=rule.get("SentTo", None),
|
|
@@ -152,12 +152,14 @@ class Defender(M365Service):
|
|
|
152
152
|
antiphishing_rule = [antiphishing_rule]
|
|
153
153
|
for rule in antiphishing_rule:
|
|
154
154
|
if rule:
|
|
155
|
-
antiphishing_rules[rule.get("
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
155
|
+
antiphishing_rules[rule.get("AntiPhishPolicy", "")] = (
|
|
156
|
+
AntiphishingRule(
|
|
157
|
+
state=rule.get("State", ""),
|
|
158
|
+
priority=rule.get("Priority", 0),
|
|
159
|
+
users=rule.get("SentTo", None),
|
|
160
|
+
groups=rule.get("SentToMemberOf", None),
|
|
161
|
+
domains=rule.get("RecipientDomainIs", None),
|
|
162
|
+
)
|
|
161
163
|
)
|
|
162
164
|
except Exception as error:
|
|
163
165
|
logger.error(
|
|
@@ -250,7 +252,9 @@ class Defender(M365Service):
|
|
|
250
252
|
outbound_spam_rule = [outbound_spam_rule]
|
|
251
253
|
for rule in outbound_spam_rule:
|
|
252
254
|
if rule:
|
|
253
|
-
outbound_spam_rules[
|
|
255
|
+
outbound_spam_rules[
|
|
256
|
+
rule.get("HostedOutboundSpamFilterPolicy", "")
|
|
257
|
+
] = OutboundSpamRule(
|
|
254
258
|
state=rule.get("State", "Disabled"),
|
|
255
259
|
priority=rule.get("Priority", 0),
|
|
256
260
|
users=rule.get("From", None),
|
|
@@ -330,12 +334,14 @@ class Defender(M365Service):
|
|
|
330
334
|
inbound_spam_rule = [inbound_spam_rule]
|
|
331
335
|
for rule in inbound_spam_rule:
|
|
332
336
|
if rule:
|
|
333
|
-
inbound_spam_rules[rule.get("
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
337
|
+
inbound_spam_rules[rule.get("HostedContentFilterPolicy", "")] = (
|
|
338
|
+
InboundSpamRule(
|
|
339
|
+
state=rule.get("State", "Disabled"),
|
|
340
|
+
priority=rule.get("Priority", 0),
|
|
341
|
+
users=rule.get("SentTo", None),
|
|
342
|
+
groups=rule.get("SentToMemberOf", None),
|
|
343
|
+
domains=rule.get("RecipientDomainIs", None),
|
|
344
|
+
)
|
|
339
345
|
)
|
|
340
346
|
except Exception as error:
|
|
341
347
|
logger.error(
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: prowler-cloud
|
|
3
|
-
Version: 5.12.
|
|
3
|
+
Version: 5.12.2
|
|
4
4
|
Summary: Prowler is an Open Source security tool to perform AWS, GCP and Azure security best practices assessments, audits, incident response, continuous monitoring, hardening and forensics readiness. It contains hundreds of controls covering CIS, NIST 800, NIST CSF, CISA, RBI, FedRAMP, PCI-DSS, GDPR, HIPAA, FFIEC, SOC2, GXP, AWS Well-Architected Framework Security Pillar, AWS Foundational Technical Review (FTR), ENS (Spanish National Security Scheme) and your custom security frameworks.
|
|
5
5
|
License: Apache-2.0
|
|
6
6
|
Author: Toni de la Fuente
|
|
@@ -91,16 +91,16 @@ dashboard/pages/compliance.py,sha256=KvDfOvSM8Zs-YG_HZj2RG-uoFsNwAD0B_gO3QcAd5Ns
|
|
|
91
91
|
dashboard/pages/overview.py,sha256=tv8sA9ww8LTDjvyCUPfQAt6ceTeeuDwDXY5ezjtP2rU,81497
|
|
92
92
|
dashboard/src/input.css,sha256=ZjC7DV_hHZRH92s0D-8Wk-L9WpP5oqfwIkfLi16GJdk,2936
|
|
93
93
|
dashboard/tailwind.config.js,sha256=sDwGYIDZwdefOCPrcCkjsOT8cYDHrkZAedPosdDnwMY,2391
|
|
94
|
-
prowler/CHANGELOG.md,sha256=
|
|
94
|
+
prowler/CHANGELOG.md,sha256=ztg9OuR0IIMVbGUhMnSIXII2qN2JSx4q89zELfsoqXQ,35035
|
|
95
95
|
prowler/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
96
96
|
prowler/__main__.py,sha256=qPx3o5GODalfu051EQtmMciliRfoBtrGUd6-42OnBt4,41860
|
|
97
97
|
prowler/compliance/aws/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
98
98
|
prowler/compliance/aws/aws_account_security_onboarding_aws.json,sha256=8wn1Wv9es8BOD6G4nO_T7hmuf0OFOJQL81xnpa4lIGc,34730
|
|
99
99
|
prowler/compliance/aws/aws_audit_manager_control_tower_guardrails_aws.json,sha256=KJ9cS6YC0QuVhiHj9vkWbiCBXCbVdhFjeioVasp9qMI,7001
|
|
100
100
|
prowler/compliance/aws/aws_foundational_security_best_practices_aws.json,sha256=OVnVnGzdDmbKo_niWkHxmjhY5pd0p-oiOMDeeuZTzzY,206922
|
|
101
|
-
prowler/compliance/aws/aws_foundational_technical_review_aws.json,sha256=
|
|
101
|
+
prowler/compliance/aws/aws_foundational_technical_review_aws.json,sha256=87PohQ6JqR84FZFrg1dEokYd108SAlagNaze5ru1Zk4,39913
|
|
102
102
|
prowler/compliance/aws/aws_well_architected_framework_reliability_pillar_aws.json,sha256=tqef9ofRWl4zTNnUPAZKWqsbld3MrXyCTU2pvxWItfI,4846
|
|
103
|
-
prowler/compliance/aws/aws_well_architected_framework_security_pillar_aws.json,sha256=
|
|
103
|
+
prowler/compliance/aws/aws_well_architected_framework_security_pillar_aws.json,sha256=IH0nOUU70lhHFykYpAGEp8N64-dqn0WbkmSjrRZ2goo,165490
|
|
104
104
|
prowler/compliance/aws/cis_1.4_aws.json,sha256=f3hzOOq2D2TWkt0ybEus5No_Y13oNHp1KoMnJMpX9A4,257462
|
|
105
105
|
prowler/compliance/aws/cis_1.5_aws.json,sha256=xKn2WLoA2CjygIL1A1y-7u8KGhzuyCR6uTV2Uuaub8g,284201
|
|
106
106
|
prowler/compliance/aws/cis_2.0_aws.json,sha256=qBEUdZumWs2UZzuasKod_KRrxs8r0x2Ag1tIfkmS268,286324
|
|
@@ -117,10 +117,10 @@ prowler/compliance/aws/gxp_21_cfr_part_11_aws.json,sha256=Upx4B68GRl6i_U9-M9VRmu
|
|
|
117
117
|
prowler/compliance/aws/gxp_eu_annex_11_aws.json,sha256=z3Bx_2ai4gV_koirTWp-NOxAkUdGKRIA45DSIVWk5Vo,11774
|
|
118
118
|
prowler/compliance/aws/hipaa_aws.json,sha256=Nd-Sly2MQDFV-To7kVpgLVKIhNe90yYM7_0wmDo6Mik,31546
|
|
119
119
|
prowler/compliance/aws/iso27001_2013_aws.json,sha256=G13PEwRbdp9VC8wkPCO50Ox2n0nIWwTHmLnmM6t4Xa4,41993
|
|
120
|
-
prowler/compliance/aws/iso27001_2022_aws.json,sha256=
|
|
121
|
-
prowler/compliance/aws/kisa_isms_p_2023_aws.json,sha256=
|
|
122
|
-
prowler/compliance/aws/kisa_isms_p_2023_korean_aws.json,sha256=
|
|
123
|
-
prowler/compliance/aws/mitre_attack_aws.json,sha256=
|
|
120
|
+
prowler/compliance/aws/iso27001_2022_aws.json,sha256=TDfcPdSAh0Oq-0_Z7UNOnrkGw4r419DPYXi1o6io5Sk,92553
|
|
121
|
+
prowler/compliance/aws/kisa_isms_p_2023_aws.json,sha256=Wdhqu8Vk7S_IGXt326Vg41HskEgwfyyh-xAW758i-6o,341900
|
|
122
|
+
prowler/compliance/aws/kisa_isms_p_2023_korean_aws.json,sha256=vkv3rIg62GcUSgLg_iN-vf6MDwR8JzMmn-I3_Ats0yA,336405
|
|
123
|
+
prowler/compliance/aws/mitre_attack_aws.json,sha256=oqlQDZTHKN6c7mbXW7gCXJ3aBy7Lu2P8SxFuvnbSzRQ,133285
|
|
124
124
|
prowler/compliance/aws/nis2_aws.json,sha256=Z69BnoGNBrmxdXmpjr0JiO2XjF1m4QTahxbS7iXW_to,89149
|
|
125
125
|
prowler/compliance/aws/nist_800_171_revision_2_aws.json,sha256=XtNrW0qEYSKapOmd7re03IO86vpWPwnHbDogy1EcQvs,86998
|
|
126
126
|
prowler/compliance/aws/nist_800_53_revision_4_aws.json,sha256=Lrd89PNsiDpHOvzHutS9I-Rlra-l0sLPYWXWWvKPeoI,51053
|
|
@@ -128,9 +128,9 @@ prowler/compliance/aws/nist_800_53_revision_5_aws.json,sha256=NMEOcp5GuIEStDbTjG
|
|
|
128
128
|
prowler/compliance/aws/nist_csf_1.1_aws.json,sha256=VZPUjlEKVPgTsCgTM_TgvZnclRHBZ8Suf--yoKtVU3U,40334
|
|
129
129
|
prowler/compliance/aws/pci_3.2.1_aws.json,sha256=e7sZjXKEciTEOenBUy4p6Gjp0W4V6x9p691PIFXNKGY,232631
|
|
130
130
|
prowler/compliance/aws/pci_4.0_aws.json,sha256=NYF-aRz6Rtk0ekYDzL-aZt6t55B6qseMrwGdfd9aKew,755486
|
|
131
|
-
prowler/compliance/aws/prowler_threatscore_aws.json,sha256=
|
|
132
|
-
prowler/compliance/aws/rbi_cyber_security_framework_aws.json,sha256=
|
|
133
|
-
prowler/compliance/aws/soc2_aws.json,sha256=
|
|
131
|
+
prowler/compliance/aws/prowler_threatscore_aws.json,sha256=QcwJ1ZPxEfKKFll81opPhDN4cpQG3-G8ZxJ8YsmaLcQ,147535
|
|
132
|
+
prowler/compliance/aws/rbi_cyber_security_framework_aws.json,sha256=vfz3xbUNB1OZMHK0jE00APOp--ru3neDJBYesOR_QGs,8935
|
|
133
|
+
prowler/compliance/aws/soc2_aws.json,sha256=tktJyqlVvHhStX66tSFsIXWKUTqM1T0f80Mq3y5dpz8,49385
|
|
134
134
|
prowler/compliance/azure/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
135
135
|
prowler/compliance/azure/cis_2.0_azure.json,sha256=CFmBHWInIkSt41WJWEzz1BxZgCbt28pFKsvVhVtajPg,554990
|
|
136
136
|
prowler/compliance/azure/cis_2.1_azure.json,sha256=M8QNDk_h4BP1dKfZw8LsVh0Wx7nbENCcUnQN4Zgcb9o,634232
|
|
@@ -175,7 +175,7 @@ prowler/config/aws_mutelist.yaml,sha256=PW3ekqtwhpBedyPWyvh5oXCiJz94P3nJLrMYGUGI
|
|
|
175
175
|
prowler/config/aws_mutelist_example.yaml,sha256=O3fscPxW73tBcrAtKGo43btqnA6_mNW3myC21Gj0ysQ,2848
|
|
176
176
|
prowler/config/azure_mutelist_example.yaml,sha256=r87OAhBg0N32s-XFRHEY4BzrHfZLGE9DfM8YgAHn7cY,2024
|
|
177
177
|
prowler/config/checklist_example.json,sha256=E36OiPBUXF3fuKIu4mK92R3a3zFRGzKdztZdYsx5vQs,165
|
|
178
|
-
prowler/config/config.py,sha256=
|
|
178
|
+
prowler/config/config.py,sha256=VwuI8pP-sde6OnSOrkjoW1-Hih_vMlSmwHDK5cI_jrc,7125
|
|
179
179
|
prowler/config/config.yaml,sha256=QXWavNONnpVpINWEf2xCUWW4DuJRNndvUvsmMQ3sQpU,19261
|
|
180
180
|
prowler/config/custom_checks_metadata_example.yaml,sha256=vsn66e-kGDKfHJ0KhTa525wbquZN88Z5G_bMCIM0iG0,5720
|
|
181
181
|
prowler/config/fixer_config.yaml,sha256=D3yIuDsgcvLyMc4-nwhU4569l6z48CWm1UKekbqupKo,1591
|
|
@@ -1409,7 +1409,7 @@ prowler/providers/aws/services/firehose/firehose_client.py,sha256=Y45uVQ_AD4Ka22
|
|
|
1409
1409
|
prowler/providers/aws/services/firehose/firehose_service.py,sha256=CAJRVErKHSOINOtFMNMwPD4V70hG-oy87DZAKr6cZfM,7314
|
|
1410
1410
|
prowler/providers/aws/services/firehose/firehose_stream_encrypted_at_rest/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
1411
1411
|
prowler/providers/aws/services/firehose/firehose_stream_encrypted_at_rest/firehose_stream_encrypted_at_rest.metadata.json,sha256=afnnPrppWbBmcSAVwpNMIhm4DOzX9PzJUDDaczYZefc,2090
|
|
1412
|
-
prowler/providers/aws/services/firehose/firehose_stream_encrypted_at_rest/firehose_stream_encrypted_at_rest.py,sha256=
|
|
1412
|
+
prowler/providers/aws/services/firehose/firehose_stream_encrypted_at_rest/firehose_stream_encrypted_at_rest.py,sha256=KmIuwbWN9xqeMkmX3yNse_90-I1g_QyShoWZ8krhgw0,3916
|
|
1413
1413
|
prowler/providers/aws/services/fms/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
1414
1414
|
prowler/providers/aws/services/fms/fms_client.py,sha256=cODP6jSTVc2AwhOQij7vp5jVvyqRoEtWu0mwTfZenKk,168
|
|
1415
1415
|
prowler/providers/aws/services/fms/fms_policy_compliant/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -1663,29 +1663,29 @@ prowler/providers/aws/services/kafka/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeu
|
|
|
1663
1663
|
prowler/providers/aws/services/kafka/kafka_client.py,sha256=cK3DJBkLptXHTn99o5QqHs-Y9MRQcfskaghKc2MnhcI,178
|
|
1664
1664
|
prowler/providers/aws/services/kafka/kafka_cluster_encryption_at_rest_uses_cmk/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
1665
1665
|
prowler/providers/aws/services/kafka/kafka_cluster_encryption_at_rest_uses_cmk/kafka_cluster_encryption_at_rest_uses_cmk.metadata.json,sha256=1Esq18ZIDzfpKPSOv2HG5Ifz6TmETNHmLmeP-LbJfbM,1622
|
|
1666
|
-
prowler/providers/aws/services/kafka/kafka_cluster_encryption_at_rest_uses_cmk/kafka_cluster_encryption_at_rest_uses_cmk.py,sha256=
|
|
1666
|
+
prowler/providers/aws/services/kafka/kafka_cluster_encryption_at_rest_uses_cmk/kafka_cluster_encryption_at_rest_uses_cmk.py,sha256=bBFGs0W38L83c5lsqpIbRYFWA0go779ttqBrLGt0yHU,1474
|
|
1667
1667
|
prowler/providers/aws/services/kafka/kafka_cluster_enhanced_monitoring_enabled/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
1668
1668
|
prowler/providers/aws/services/kafka/kafka_cluster_enhanced_monitoring_enabled/kafka_cluster_enhanced_monitoring_enabled.metadata.json,sha256=b4pnHGqT91-iIwDK7v7xmJ8_hVb7pvX7ibUCpwwNctU,1677
|
|
1669
|
-
prowler/providers/aws/services/kafka/kafka_cluster_enhanced_monitoring_enabled/kafka_cluster_enhanced_monitoring_enabled.py,sha256=
|
|
1669
|
+
prowler/providers/aws/services/kafka/kafka_cluster_enhanced_monitoring_enabled/kafka_cluster_enhanced_monitoring_enabled.py,sha256=QNPm5Pehu_atSo4plI1F8cI19QNc1OuxBANd9KPDlIg,1233
|
|
1670
1670
|
prowler/providers/aws/services/kafka/kafka_cluster_in_transit_encryption_enabled/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
1671
1671
|
prowler/providers/aws/services/kafka/kafka_cluster_in_transit_encryption_enabled/kafka_cluster_in_transit_encryption_enabled.metadata.json,sha256=dHsV0D9vLNt8oWHXvLL1NOLw-twtFvYhTU4X4Qrjx3M,1733
|
|
1672
|
-
prowler/providers/aws/services/kafka/kafka_cluster_in_transit_encryption_enabled/kafka_cluster_in_transit_encryption_enabled.py,sha256=
|
|
1672
|
+
prowler/providers/aws/services/kafka/kafka_cluster_in_transit_encryption_enabled/kafka_cluster_in_transit_encryption_enabled.py,sha256=FKB_L8-oJEykx-rjCtn7uPOZqkay9bid5KRfv8hFrA8,1347
|
|
1673
1673
|
prowler/providers/aws/services/kafka/kafka_cluster_is_public/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
1674
1674
|
prowler/providers/aws/services/kafka/kafka_cluster_is_public/kafka_cluster_is_public.metadata.json,sha256=du4-4pjWwjbrrYICLsbqNQhGTnhoHnMBD1nq5TD6wpM,1462
|
|
1675
|
-
prowler/providers/aws/services/kafka/kafka_cluster_is_public/kafka_cluster_is_public.py,sha256=
|
|
1675
|
+
prowler/providers/aws/services/kafka/kafka_cluster_is_public/kafka_cluster_is_public.py,sha256=y5SpKWPm890EhoWxPi2jUukqh3NQuwOOuJEIb8kPiUY,1159
|
|
1676
1676
|
prowler/providers/aws/services/kafka/kafka_cluster_mutual_tls_authentication_enabled/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
1677
1677
|
prowler/providers/aws/services/kafka/kafka_cluster_mutual_tls_authentication_enabled/kafka_cluster_mutual_tls_authentication_enabled.metadata.json,sha256=diSV74cjsFgpVhw22SW3iGxUZr9QNqIVb2EKsxEuAYk,1434
|
|
1678
|
-
prowler/providers/aws/services/kafka/kafka_cluster_mutual_tls_authentication_enabled/kafka_cluster_mutual_tls_authentication_enabled.py,sha256=
|
|
1678
|
+
prowler/providers/aws/services/kafka/kafka_cluster_mutual_tls_authentication_enabled/kafka_cluster_mutual_tls_authentication_enabled.py,sha256=W3xYlXNs8NSR8OKwwh_uFZwFrIeWcmiIBIVUZQnywKU,1187
|
|
1679
1679
|
prowler/providers/aws/services/kafka/kafka_cluster_unrestricted_access_disabled/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
1680
1680
|
prowler/providers/aws/services/kafka/kafka_cluster_unrestricted_access_disabled/kafka_cluster_unrestricted_access_disabled.metadata.json,sha256=DATHwHxgUyrTibW7Q7aI0SHIVnZLJN4UBw_dtF1EnDI,1727
|
|
1681
|
-
prowler/providers/aws/services/kafka/kafka_cluster_unrestricted_access_disabled/kafka_cluster_unrestricted_access_disabled.py,sha256=
|
|
1681
|
+
prowler/providers/aws/services/kafka/kafka_cluster_unrestricted_access_disabled/kafka_cluster_unrestricted_access_disabled.py,sha256=x7m2bKkmutVOTBwVMu0BE7Y3Nclf2MFZak7t6a56uJQ,1214
|
|
1682
1682
|
prowler/providers/aws/services/kafka/kafka_cluster_uses_latest_version/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
1683
1683
|
prowler/providers/aws/services/kafka/kafka_cluster_uses_latest_version/kafka_cluster_uses_latest_version.metadata.json,sha256=5p4-tOGJLkuZ5r-gG8NY4ZrqEib5H0rNA7ODnbLglj4,1650
|
|
1684
|
-
prowler/providers/aws/services/kafka/kafka_cluster_uses_latest_version/kafka_cluster_uses_latest_version.py,sha256=
|
|
1684
|
+
prowler/providers/aws/services/kafka/kafka_cluster_uses_latest_version/kafka_cluster_uses_latest_version.py,sha256=KsyvYatsp3ANZZD7J2MU7YxliVnqgX5o2bMxQMgTrRM,1284
|
|
1685
1685
|
prowler/providers/aws/services/kafka/kafka_connector_in_transit_encryption_enabled/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
1686
1686
|
prowler/providers/aws/services/kafka/kafka_connector_in_transit_encryption_enabled/kafka_connector_in_transit_encryption_enabled.metadata.json,sha256=VnFlJBqfv5jvBHS_CGqT_g6aYo7KFUq1thAf6D2_dZg,1606
|
|
1687
1687
|
prowler/providers/aws/services/kafka/kafka_connector_in_transit_encryption_enabled/kafka_connector_in_transit_encryption_enabled.py,sha256=hKeHIezXS3hZTWDnDYrZnhhbCMnthT3M8pJpD_fd85I,832
|
|
1688
|
-
prowler/providers/aws/services/kafka/kafka_service.py,sha256=
|
|
1688
|
+
prowler/providers/aws/services/kafka/kafka_service.py,sha256=lQ9DJoXGvG2tLa5t4uYsLorqUfVXbolGD-D0NuTp6xM,10775
|
|
1689
1689
|
prowler/providers/aws/services/kafka/kafkaconnect_client.py,sha256=9Dxozx9B2WmXUcXx5SxF7_f0n2R-h34hMjtCXLOCsEI,199
|
|
1690
1690
|
prowler/providers/aws/services/kinesis/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
1691
1691
|
prowler/providers/aws/services/kinesis/kinesis_client.py,sha256=D5WJkQNhteGpCaPbfaA9_ahB_NKrg6XBGolqF-1wn_Y,188
|
|
@@ -3670,7 +3670,7 @@ prowler/providers/m365/services/defender/defender_malware_policy_comprehensive_a
|
|
|
3670
3670
|
prowler/providers/m365/services/defender/defender_malware_policy_notifications_internal_users_malware_enabled/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3671
3671
|
prowler/providers/m365/services/defender/defender_malware_policy_notifications_internal_users_malware_enabled/defender_malware_policy_notifications_internal_users_malware_enabled.metadata.json,sha256=-jG7XmkijgLL7LJMyOhDniix7TPiEgQUk4jR2Q55tgw,1848
|
|
3672
3672
|
prowler/providers/m365/services/defender/defender_malware_policy_notifications_internal_users_malware_enabled/defender_malware_policy_notifications_internal_users_malware_enabled.py,sha256=6u_iEHsiVEAeObGw9u2G_EUe9vk5eWwkfD8hkg9ui7A,9558
|
|
3673
|
-
prowler/providers/m365/services/defender/defender_service.py,sha256=
|
|
3673
|
+
prowler/providers/m365/services/defender/defender_service.py,sha256=oZfx5IdErLNN4NDr5Z2FwE3nsNrESc9QkVG5fNK8G0E,20543
|
|
3674
3674
|
prowler/providers/m365/services/entra/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3675
3675
|
prowler/providers/m365/services/entra/entra_admin_consent_workflow_enabled/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3676
3676
|
prowler/providers/m365/services/entra/entra_admin_consent_workflow_enabled/entra_admin_consent_workflow_enabled.metadata.json,sha256=B63TmvE46KubExAtUmLfXG-jocPFgb98MoIBAsftkjc,1680
|
|
@@ -3933,8 +3933,8 @@ prowler/providers/nhn/services/network/network_vpc_subnet_enable_dhcp/network_vp
|
|
|
3933
3933
|
prowler/providers/nhn/services/network/network_vpc_subnet_has_external_router/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3934
3934
|
prowler/providers/nhn/services/network/network_vpc_subnet_has_external_router/network_vpc_subnet_has_external_router.metadata.json,sha256=FNNOLX0F1IRAt9RwuKm7m8ZAH52onk0QHjlgghApjdI,766
|
|
3935
3935
|
prowler/providers/nhn/services/network/network_vpc_subnet_has_external_router/network_vpc_subnet_has_external_router.py,sha256=u6FIeMqvWT8gj3e_dBabg4vcCyJ37lUFJ5r5awpr4JA,898
|
|
3936
|
-
prowler_cloud-5.12.
|
|
3937
|
-
prowler_cloud-5.12.
|
|
3938
|
-
prowler_cloud-5.12.
|
|
3939
|
-
prowler_cloud-5.12.
|
|
3940
|
-
prowler_cloud-5.12.
|
|
3936
|
+
prowler_cloud-5.12.2.dist-info/LICENSE,sha256=oGZr2ZEftLZTNys3IcUA_b0JftHKg0Zq2wfnrnr7guA,11348
|
|
3937
|
+
prowler_cloud-5.12.2.dist-info/METADATA,sha256=CYdTJyDr5sLMquZKRe-KczcK_iEA13yROhnsi54O2oA,18294
|
|
3938
|
+
prowler_cloud-5.12.2.dist-info/WHEEL,sha256=XbeZDeTWKc1w7CSIyre5aMDU_-PohRwTQceYnisIYYY,88
|
|
3939
|
+
prowler_cloud-5.12.2.dist-info/entry_points.txt,sha256=sWks5LHwHN_Rhj9HcrghwVKzHPIS4I4lebr-lkVZ-Dk,52
|
|
3940
|
+
prowler_cloud-5.12.2.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|