Checks
Browse individual security checks available in the Prowler Registry. Filter by cloud provider, severity, or search by check ID.
Browse individual security checks available in the Prowler Registry. Filter by cloud provider, severity, or search by check ID.
ec2_instance_account_imdsv2_enabled
EC2 account IMDS defaults with http_tokens=required ensure new instances in the Region use IMDSv2 by default and disable IMDSv1. Existing instances keep their current setting.
ec2_instance_detailed_monitoring_enabled
EC2 instances are assessed for CloudWatch detailed monitoring, indicating whether 1-minute metrics collection is enabled.
Instances lacking this setting provide only 5-minute metrics.
ec2_instance_imdsv2_enabled
EC2 instances are evaluated for IMDSv2 enforcement: metadata endpoint enabled with http_tokens: required, or metadata service fully disabled (http_endpoint: disabled).
ec2_instance_internet_facing_with_instance_profile
EC2 instances with a public IP address and an attached instance profile (IAM role) are identified.
Instances lacking public exposure or without an instance profile are excluded.
ec2_instance_managed_by_ssm
EC2 instances are assessed for enrollment as Systems Manager managed nodes. Running instances lacking Systems Manager registration are marked as unmanaged; instances in stopped, terminated, or pending states are noted separately.
ec2_instance_older_than_specific_days
EC2 instances are evaluated for age while in running state. Instances launched beyond the configurable limit (max_ec2_instance_age_in_days, default 180) are flagged as older than the allowed lifetime. Stopped instances are ignored.
ec2_instance_paravirtual_type
EC2 instances are evaluated for their virtualization mode. Instances with virtualization_type set to paravirtual are identified; those using HVM are recognized as hardware-assisted virtualization.
ec2_instance_port_cassandra_exposed_to_internet
EC2 instances have Cassandra service ports (7000, 7001, 7199, 9042, 9160) reachable from the Internet through security group ingress.
Public IP presence and subnet exposure are considered to assess external reachability.
ec2_instance_port_cifs_exposed_to_internet
EC2 instances with security groups permitting inbound TCP 139 or 445 (CIFS/SMB) from 0.0.0.0/0 are identified.
Exposure level reflects whether the instance has a public IP and the subnet's Internet reachability.
ec2_instance_port_elasticsearch_kibana_exposed_to_internet
EC2 instances with Elasticsearch/Kibana ports (9200, 9300, 5601) exposed to the Internet through inbound security group rules.
Assesses reachability considering instance public IP and subnet to reflect real exposure.
ec2_instance_port_ftp_exposed_to_internet
EC2 instances with security groups permitting inbound FTP on TCP 20-21 from any address (e.g., 0.0.0.0/0 or ::/0) are identified.
Exposure is contextualized by the instance's public reachability (public IP and subnet).
ec2_instance_port_kafka_exposed_to_internet
EC2 instances with security group rules that allow inbound TCP 9092 (Kafka) from the Internet are reported. The evaluation inspects ingress rules to detect broad sources (for example 0.0.0.0/0 or ::/0) that expose Kafka brokers.
ec2_instance_port_kerberos_exposed_to_internet
EC2 instances whose security groups allow public inbound TCP access to Kerberos ports 88, 464, 749, or 750 (authentication, password change, admin).
Rules permitting 0.0.0.0/0 or ::/0 are treated as Internet-exposed.
ec2_instance_port_ldap_exposed_to_internet
EC2 instances with security groups permitting Internet-sourced access to LDAP on TCP 389 or LDAPS on TCP 636 are identified.
Public exposure context (presence of public IP and subnet reachability) is considered to gauge how broadly these ports can be accessed.
ec2_instance_port_memcached_exposed_to_internet
EC2 instances are evaluated for open Memcached access: inbound TCP 11211 allowed from any address (0.0.0.0/0 or ::/0) via their security groups, considering the instance's public exposure.
ec2_instance_port_mongodb_exposed_to_internet
EC2 instances with security groups permitting inbound TCP 27017 or 27018 (MongoDB) from 0.0.0.0/0 or ::/0 are identified, factoring the instance's public reachability to gauge exposure.
ec2_instance_port_mysql_exposed_to_internet
EC2 instances with security groups that expose MySQL on TCP 3306 to the Internet (0.0.0.0/0 or ::/0) are identified, with context on public IP and subnet exposure.
ec2_instance_port_oracle_exposed_to_internet
EC2 instances with security groups allowing inbound TCP from any address to Oracle listener ports 1521, 2483, or 2484
ec2_instance_port_postgresql_exposed_to_internet
EC2 instances with security group rules allowing inbound PostgreSQL on TCP 5432 from the Internet (0.0.0.0/0 or ::/0) are identified, considering the instance's public reachability via IP and subnet.
ec2_instance_port_rdp_exposed_to_internet
EC2 instances whose security groups allow Internet-wide inbound RDP on TCP 3389 (0.0.0.0/0 or ::/0). The instance's public IP and subnet routing are considered to determine external reachability.
ec2_instance_port_redis_exposed_to_internet
EC2 instances with security groups permitting Internet access to Redis on TCP 6379 are identified.
Exposure is assessed using public IP assignment and subnet reachability to reflect how broadly the service can be contacted.
ec2_instance_port_sqlserver_exposed_to_internet
EC2 instances with security groups permitting any source to TCP 1433 or 1434 (SQL Server) are identified, considering the instance's public reachability based on IP and subnet exposure.
ec2_instance_port_ssh_exposed_to_internet
EC2 instances with SSH (TCP 22) exposed to the Internet via security group inbound rules allowing 0.0.0.0/0 or ::/0.
Exposure is qualified using the instance's public IP status and subnet reachability.
ec2_instance_port_telnet_exposed_to_internet
EC2 instances with security groups allowing inbound Telnet on TCP 23 from the Internet are identified, including open IPv4/IPv6 sources like 0.0.0.0/0 and ::/0.
Exposure is evaluated considering public IP assignment and subnet reachability.