Integration Cloud instance uses a private endpoint or a public endpoint with IP or VCN allowlists
Oracle Integration Cloud instances are evaluated for network endpoint restrictions, confirming access is limited to approved IPs or VCNs. Configurations with 0.0.0.0/0, missing endpoint details, or PUBLIC endpoints without allowlists are identified; PRIVATE endpoints or PUBLIC endpoints with IP/VCN allowlists indicate restricted access.
Risk
Unrestricted OIC endpoints expose integration APIs and consoles to the Internet, enabling credential brute force, token theft, and unauthorized invocations. Attackers can exfiltrate data, alter workflows, and pivot into connected backends, impacting confidentiality and integrity, and causing availability issues via abuse or DoS.
Run this check with Prowler
Run in Prowler Cloudprowler oraclecloud --checks integration_instance_access_restrictedRecommendation
Prefer PRIVATE endpoints and restrict access to specific VCNs. If PUBLIC is required, enforce strict IP allowlists-never 0.0.0.0/0. Apply least privilege at network layers, place OIC behind WAF/VPN, segment with security lists, and monitor access logs. Review allowlists regularly as part of defense in depth.
Remediation
CLI
oci integration integration-instance update --integration-instance-id <example_resource_id> --network-endpoint-details '{"networkEndpointType":"PUBLIC","allowlistedHttpIps":["<ALLOWED_CIDR>"]}'Terraform
# Restrict OIC access by allowlisting specific IPs
resource "oci_integration_integration_instance" "<example_resource_name>" {
network_endpoint_details {
network_endpoint_type = "PUBLIC"
allowlisted_http_ips = ["<ALLOWED_CIDR>"] # Critical: restricts access to specified IP/CIDR
}
}Other
Check Code
"""Check Ensure Oracle Integration Cloud (OIC) access is restricted to allowed sources."""
from prowler.lib.check.models import Check, Check_Report_OCI
from prowler.providers.oraclecloud.services.integration.integration_client import (
integration_client,
)
class integration_instance_access_restricted(Check):
"""Check Ensure Oracle Integration Cloud (OIC) access is restricted to allowed sources."""
def execute(self) -> Check_Report_OCI:
"""Execute the integration_instance_access_restricted check."""
findings = []
for instance in integration_client.integration_instances:
report = Check_Report_OCI(
metadata=self.metadata(),
resource=instance,
region=instance.region,
resource_name=instance.display_name,
resource_id=instance.id,
compartment_id=instance.compartment_id,
)
# Check if instance has no network endpoint details (unrestricted access)
if not instance.network_endpoint_details:
report.status = "FAIL"
report.status_extended = f"Integration instance {instance.display_name} has no network endpoint details configured (unrestricted access)."
# Check if 0.0.0.0/0 is in network endpoint details
elif "0.0.0.0/0" in str(instance.network_endpoint_details):
report.status = "FAIL"
report.status_extended = f"Integration instance {instance.display_name} has unrestricted access with 0.0.0.0/0 in network endpoint details."
# Check if PUBLIC endpoint with no allowlists
elif (
instance.network_endpoint_details.get("network_endpoint_type")
== "PUBLIC"
and not instance.network_endpoint_details.get("allowlisted_http_ips")
and not instance.network_endpoint_details.get("allowlisted_http_vcns")
):
report.status = "FAIL"
report.status_extended = f"Integration instance {instance.display_name} has public access with no IP or VCN allowlists configured."
else:
report.status = "PASS"
report.status_extended = f"Integration instance {instance.display_name} has restricted network access configured."
findings.append(report)
return findings