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.
Files changed (26) hide show
  1. prowler/CHANGELOG.md +8 -0
  2. prowler/compliance/aws/aws_foundational_technical_review_aws.json +2 -2
  3. prowler/compliance/aws/aws_well_architected_framework_security_pillar_aws.json +2 -2
  4. prowler/compliance/aws/iso27001_2022_aws.json +6 -6
  5. prowler/compliance/aws/kisa_isms_p_2023_aws.json +8 -8
  6. prowler/compliance/aws/kisa_isms_p_2023_korean_aws.json +8 -8
  7. prowler/compliance/aws/mitre_attack_aws.json +10 -10
  8. prowler/compliance/aws/prowler_threatscore_aws.json +2 -2
  9. prowler/compliance/aws/rbi_cyber_security_framework_aws.json +1 -1
  10. prowler/compliance/aws/soc2_aws.json +2 -2
  11. prowler/config/config.py +1 -1
  12. prowler/providers/aws/services/firehose/firehose_stream_encrypted_at_rest/firehose_stream_encrypted_at_rest.py +23 -1
  13. prowler/providers/aws/services/kafka/kafka_cluster_encryption_at_rest_uses_cmk/kafka_cluster_encryption_at_rest_uses_cmk.py +6 -1
  14. prowler/providers/aws/services/kafka/kafka_cluster_enhanced_monitoring_enabled/kafka_cluster_enhanced_monitoring_enabled.py +6 -1
  15. prowler/providers/aws/services/kafka/kafka_cluster_in_transit_encryption_enabled/kafka_cluster_in_transit_encryption_enabled.py +6 -1
  16. prowler/providers/aws/services/kafka/kafka_cluster_is_public/kafka_cluster_is_public.py +6 -1
  17. prowler/providers/aws/services/kafka/kafka_cluster_mutual_tls_authentication_enabled/kafka_cluster_mutual_tls_authentication_enabled.py +6 -1
  18. prowler/providers/aws/services/kafka/kafka_cluster_unrestricted_access_disabled/kafka_cluster_unrestricted_access_disabled.py +6 -1
  19. prowler/providers/aws/services/kafka/kafka_cluster_uses_latest_version/kafka_cluster_uses_latest_version.py +6 -1
  20. prowler/providers/aws/services/kafka/kafka_service.py +109 -37
  21. prowler/providers/m365/services/defender/defender_service.py +20 -14
  22. {prowler_cloud-5.12.0.dist-info → prowler_cloud-5.12.2.dist-info}/METADATA +1 -1
  23. {prowler_cloud-5.12.0.dist-info → prowler_cloud-5.12.2.dist-info}/RECORD +26 -26
  24. {prowler_cloud-5.12.0.dist-info → prowler_cloud-5.12.2.dist-info}/LICENSE +0 -0
  25. {prowler_cloud-5.12.0.dist-info → prowler_cloud-5.12.2.dist-info}/WHEEL +0 -0
  26. {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
- "ec2_securitygroup_allow_ingress_from_internet_to_port_mongodb_27017_27018",
368
- "ec2_securitygroup_allow_ingress_from_internet_to_tcp_ftp_port_20_21",
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
- "ec2_securitygroup_allow_ingress_from_internet_to_port_mongodb_27017_27018",
725
- "ec2_securitygroup_allow_ingress_from_internet_to_tcp_ftp_port_20_21",
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
- "ec2_securitygroup_allow_ingress_from_internet_to_port_mongodb_27017_27018",
1514
- "ec2_securitygroup_allow_ingress_from_internet_to_tcp_ftp_port_20_21",
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
- "ec2_securitygroup_allow_ingress_from_internet_to_port_mongodb_27017_27018",
1608
- "ec2_securitygroup_allow_ingress_from_internet_to_tcp_ftp_port_20_21",
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
- "ec2_securitygroup_allow_ingress_from_internet_to_port_mongodb_27017_27018",
1702
- "ec2_securitygroup_allow_ingress_from_internet_to_tcp_ftp_port_20_21",
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
- "ec2_securitygroup_allow_ingress_from_internet_to_port_mongodb_27017_27018",
1562
- "ec2_securitygroup_allow_ingress_from_internet_to_tcp_ftp_port_20_21",
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
- "ec2_securitygroup_allow_ingress_from_internet_to_tcp_ftp_port_20_21",
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
- "ec2_securitygroup_allow_ingress_from_internet_to_port_mongodb_27017_27018",
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
- "ec2_securitygroup_allow_ingress_from_internet_to_tcp_ftp_port_20_21",
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
- "ec2_securitygroup_allow_ingress_from_internet_to_port_mongodb_27017_27018",
3028
- "ec2_securitygroup_allow_ingress_from_internet_to_tcp_ftp_port_20_21",
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
- "ec2_securitygroup_allow_ingress_from_internet_to_port_mongodb_27017_27018",
1561
- "ec2_securitygroup_allow_ingress_from_internet_to_tcp_ftp_port_20_21",
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
- "ec2_securitygroup_allow_ingress_from_internet_to_tcp_ftp_port_20_21",
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
- "ec2_securitygroup_allow_ingress_from_internet_to_port_mongodb_27017_27018",
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
- "ec2_securitygroup_allow_ingress_from_internet_to_tcp_ftp_port_20_21",
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
- "ec2_securitygroup_allow_ingress_from_internet_to_port_mongodb_27017_27018",
3032
- "ec2_securitygroup_allow_ingress_from_internet_to_tcp_ftp_port_20_21",
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
- "ec2_securitygroup_allow_ingress_from_internet_to_port_mongodb_27017_27018",
111
- "ec2_securitygroup_allow_ingress_from_internet_to_tcp_ftp_port_20_21",
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
- "ec2_securitygroup_allow_ingress_from_internet_to_port_mongodb_27017_27018",
1028
- "ec2_securitygroup_allow_ingress_from_internet_to_tcp_ftp_port_20_21",
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
- "ec2_securitygroup_allow_ingress_from_internet_to_port_mongodb_27017_27018",
1474
- "ec2_securitygroup_allow_ingress_from_internet_to_tcp_ftp_port_20_21",
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
- "ec2_securitygroup_allow_ingress_from_internet_to_port_mongodb_27017_27018",
1654
- "ec2_securitygroup_allow_ingress_from_internet_to_tcp_ftp_port_20_21",
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
- "ec2_securitygroup_allow_ingress_from_internet_to_port_mongodb_27017_27018",
1906
- "ec2_securitygroup_allow_ingress_from_internet_to_tcp_ftp_port_20_21",
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
- "ec2_securitygroup_allow_ingress_from_internet_to_port_mongodb_27017_27018",
557
- "ec2_securitygroup_allow_ingress_from_internet_to_tcp_ftp_port_20_21",
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
- "ec2_securitygroup_allow_ingress_from_internet_to_tcp_ftp_port_20_21",
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
- "ec2_securitygroup_allow_ingress_from_internet_to_port_mongodb_27017_27018",
257
- "ec2_securitygroup_allow_ingress_from_internet_to_tcp_ftp_port_20_21",
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.0"
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
- # Check if the stream has encryption enabled directly
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
- if any(
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
- if cluster.enhanced_monitoring == "DEFAULT":
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
- if (
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
- if not cluster.public_access:
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
- if cluster.tls_authentication:
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
- if not cluster.unauthentication_access:
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
- if cluster.kafka_version != kafka_client.kafka_versions[-1].version:
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
- cluster_paginator = regional_client.get_paginator("list_clusters")
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
- self.clusters[cluster.get("ClusterArn", "")] = Cluster(
32
- id=arn.split(":")[-1].split("/")[-1],
33
- name=cluster.get("ClusterName", ""),
34
- arn=arn,
35
- region=regional_client.region,
36
- tags=list(cluster.get("Tags", {})),
37
- state=cluster.get("State", ""),
38
- kafka_version=cluster.get(
39
- "CurrentBrokerSoftwareInfo", {}
40
- ).get("KafkaVersion", ""),
41
- data_volume_kms_key_id=cluster.get("EncryptionInfo", {})
42
- .get("EncryptionAtRest", {})
43
- .get("DataVolumeKMSKeyId", ""),
44
- encryption_in_transit=EncryptionInTransit(
45
- client_broker=cluster.get("EncryptionInfo", {})
46
- .get("EncryptionInTransit", {})
47
- .get("ClientBroker", "PLAINTEXT"),
48
- in_cluster=cluster.get("EncryptionInfo", {})
49
- .get("EncryptionInTransit", {})
50
- .get("InCluster", False),
51
- ),
52
- tls_authentication=cluster.get("ClientAuthentication", {})
53
- .get("Tls", {})
54
- .get("Enabled", False),
55
- public_access=cluster.get("BrokerNodeGroupInfo", {})
56
- .get("ConnectivityInfo", {})
57
- .get("PublicAccess", {})
58
- .get("Type", "SERVICE_PROVIDED_EIPS")
59
- != "DISABLED",
60
- unauthentication_access=cluster.get(
61
- "ClientAuthentication", {}
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
- .get("Unauthenticated", {})
64
- .get("Enabled", False),
65
- enhanced_monitoring=cluster.get(
66
- "EnhancedMonitoring", "DEFAULT"
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("Name", "")] = MalwareRule(
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("Name", "")] = AntiphishingRule(
156
- state=rule.get("State", ""),
157
- priority=rule.get("Priority", 0),
158
- users=rule.get("SentTo", None),
159
- groups=rule.get("SentToMemberOf", None),
160
- domains=rule.get("RecipientDomainIs", None),
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[rule.get("Name", "")] = OutboundSpamRule(
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("Name", "")] = InboundSpamRule(
334
- state=rule.get("State", "Disabled"),
335
- priority=rule.get("Priority", 0),
336
- users=rule.get("SentTo", None),
337
- groups=rule.get("SentToMemberOf", None),
338
- domains=rule.get("RecipientDomainIs", None),
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.0
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=bug1lgGre4EtRQwQH0P6PnGX83akEHRYUJUrKsvM80Q,34598
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=Ztu0YasvKzUxx9MozOJtwriWNUaKfgoWULuQB87IJKQ,39909
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=RKdH0Qpm6MEGuOK39e2Yp2MZOlO12RTXTrC68pVi5jY,165486
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=WUHep_RE_GpAClWWMeBbimzo6gcX8AQtDuddvzTtu9M,92541
121
- prowler/compliance/aws/kisa_isms_p_2023_aws.json,sha256=Vzxz5WaNx8Km3jBxIFqNBSHQW0UEwncLGTe0_neQT0g,341887
122
- prowler/compliance/aws/kisa_isms_p_2023_korean_aws.json,sha256=pvRmVyMmKQUR9DbrGHokPjah257-DP-l-OEEGOesOcU,336392
123
- prowler/compliance/aws/mitre_attack_aws.json,sha256=L1OOQ8pIF5gyeZi6ncJWH5wbTVLli7tofIJ4_iHqGHA,133265
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=11VQimMEpfS2YHuoTukSJq1uN429GXoa3DQwC60SthU,147531
132
- prowler/compliance/aws/rbi_cyber_security_framework_aws.json,sha256=ifM4NOPOb19CGIDJi7hljhAD5p7tajArO5Pa1JbPkcc,8935
133
- prowler/compliance/aws/soc2_aws.json,sha256=0_l0NxGX8ta7fkpITnAFJpfnxj3Nl-EkFunjhDD4uX4,49381
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=dwZni8VgppW5hiOwmsiY_zoGSOxUTsjPLVOs_nGJyZg,7125
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=GrBffIv_1Q8NYfnBA7gT7UCr4XnnEkNGHTIpSYcucko,2345
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=IApA1VJRmThryS1ofLvk909DM7d6RNfjRQchatLrHmE,1067
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=SuJ61fPHLKm6qdJHILmwG7pZmBjNQoRf0dRcrZDAUnA,825
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=YWSl6Id_CsQ0u0gu5UGZf1vmX40sGPVUiUo1DeIgpyM,944
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=q0kM-B3i9kCqekJpBiZ_Hx6JphYjZmnf6YYgWt9wL40,804
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=aXwCX4dtf4RGlV1sPfBjMpb7s0B7KzSZd8AtYsn2wKo,797
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=YUQfXOw0dp3jyguAHq-EGyxCdDbQUw2bghsxnukUBfU,821
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=9Onh205gKZwnJXFzSxx1SOdf7STP6fzCXVhb0o8ZQHs,867
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=yjk2RZB6QRbNGBlY_tZsiq3Y7dtoHiNox6i6JLflKgs,6337
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=PwidaGJR1zp1Km8wAuSDFGh0NFcRNz2ajyz4HL0iU7Q,20280
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.0.dist-info/LICENSE,sha256=oGZr2ZEftLZTNys3IcUA_b0JftHKg0Zq2wfnrnr7guA,11348
3937
- prowler_cloud-5.12.0.dist-info/METADATA,sha256=9aQfoziFH7ymMBndvOrl2fYt4QYUbxdp5hcCEwzxpBI,18294
3938
- prowler_cloud-5.12.0.dist-info/WHEEL,sha256=XbeZDeTWKc1w7CSIyre5aMDU_-PohRwTQceYnisIYYY,88
3939
- prowler_cloud-5.12.0.dist-info/entry_points.txt,sha256=sWks5LHwHN_Rhj9HcrghwVKzHPIS4I4lebr-lkVZ-Dk,52
3940
- prowler_cloud-5.12.0.dist-info/RECORD,,
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,,