Compute instance has Secure Boot enabled
OCI compute instances have UEFI Secure Boot enabled so the platform firmware loads only trusted, signed bootloaders, kernels, and drivers at startup.
Risk
Without Secure Boot, unsigned or tampered boot code can run before the OS, enabling bootkits/rootkits to gain kernel-level persistence, bypass monitoring, alter logs, and exfiltrate secrets, eroding integrity and confidentiality, and risking availability through destructive changes or ransom staging.
Run this check with Prowler
Run in Prowler Cloudprowler oraclecloud --checks compute_instance_secure_boot_enabledRecommendation
Enable Secure Boot across instances and prefer shielded instances. Pair with TPM and Measured Boot where supported for defense in depth. Permit only trusted, signed kernels and drivers, and manage updates via hardened golden images and code signing. On Windows VMs, use Secure Boot with TPM and Measured Boot.
Remediation
Terraform
resource "oci_core_instance" "example" {
# ... other required configuration ...
platform_config {
type = "AMD_VM"
is_secure_boot_enabled = true # Critical: enable Secure Boot to pass the check
}
}Other
Check Code
"""Check if Secure Boot is enabled on Compute Instance."""
from prowler.lib.check.models import Check, Check_Report_OCI
from prowler.providers.oraclecloud.services.compute.compute_client import compute_client
class compute_instance_secure_boot_enabled(Check):
"""Check if Secure Boot is enabled on Compute Instance."""
def execute(self) -> Check_Report_OCI:
"""Execute the compute_instance_secure_boot_enabled check.
Returns:
List of Check_Report_OCI objects with findings
"""
findings = []
for instance in compute_client.instances:
report = Check_Report_OCI(
metadata=self.metadata(),
resource=instance,
region=instance.region,
resource_name=instance.name,
resource_id=instance.id,
compartment_id=instance.compartment_id,
)
if instance.is_secure_boot_enabled:
report.status = "PASS"
report.status_extended = (
f"Compute instance {instance.name} has Secure Boot enabled."
)
else:
report.status = "FAIL"
report.status_extended = f"Compute instance {instance.name} does not have Secure Boot enabled."
findings.append(report)
return findings