Cybersecurity-onderzoekers hebben twee nieuwe aanvalstechnieken onthuld tegen infrastructuur-as-code (IaC) en policy-as-code (PaC) tools zoals HashiCorp’s Terraform en Open Policy Agent (OPA) die gebruik maken van speciale, domeinspecifieke talen (DSL’s) om inbreuken te plegen cloudplatforms en exfiltreer gegevens.
“Aangezien dit verharde talen zijn met beperkte mogelijkheden, zouden ze veiliger moeten zijn dan standaard programmeertalen – en dat is ook zo”, zei Tenable senior beveiligingsonderzoeker Shelly Raban in een technisch rapport dat vorige week werd gepubliceerd. “Veiliger betekent echter niet kogelvrij.”
OPA is een populaire, open-source beleidsengine waarmee organisaties beleid kunnen afdwingen in cloud-native omgevingen, zoals microservices, CI/CD-pijplijnen en Kubernetes. Beleid wordt gedefinieerd met behulp van een eigen querytaal genaamd Rego, die vervolgens door OPA wordt geëvalueerd om een beslissing te retourneren.
De door Tenable bedachte aanvalsmethode richt zich op de toeleveringsketen, waarbij een aanvaller ongeautoriseerde toegang verkrijgt via een gecompromitteerde toegangssleutel om een kwaadaardig Rego-beleid in een OPA-server in te voegen, dat vervolgens wordt gebruikt tijdens de beleidsbeslissingsfase om kwaadaardige acties zoals inloggegevensexfiltratie mogelijk te maken. een ingebouwde functie die bekend staat als “http.send.”
Zelfs in gevallen waarin een OPA-implementatie het gebruik van http.send beperkt, ontdekte het cyberbeveiligingsbedrijf dat het mogelijk is om een andere functie genaamd “net.lookup_ip_addr” te gebruiken om de gegevens te smokkelen met behulp van DNS-lookups via een techniek die DNS-tunneling wordt genoemd.
“Dus de net.lookup_ip_addr-functie is een andere functie die je zou kunnen overwegen om te beperken of waar je op zijn minst op moet letten in het beleid, omdat het ook het risico met zich meebrengt dat gegevens uit je OPA-implementatie worden gestolen,” zei Raban.
Terraform heeft, vergelijkbaar met OPA, tot doel het proces van het opzetten, implementeren en beheren van cloudbronnen te vereenvoudigen door middel van op code gebaseerde definities. Deze configuraties kunnen worden ingesteld met behulp van een andere declaratieve DSL genaamd HashiCorp Configuration Language (HCL).
Een aanvaller kan zich richten op het open-source IaC-platform door gebruik te maken van de opdracht ’terraform plan’, die doorgaans wordt geactiveerd als onderdeel van GitHub ‘pull_request’-workflows, om niet-beoordeelde wijzigingen uit te voeren die een kwaadaardige gegevensbron bevatten tijdens het CI/CD-proces.
“Dit brengt een risico met zich mee, omdat een externe aanvaller in een openbare repository of een kwaadwillende insider (of een externe aanvaller met voet aan de grond) in een privérepository een pull-verzoek zou kunnen misbruiken voor hun kwaadaardige doelstellingen”, aldus Tenable. “Gegevensbronnen worden uitgevoerd tijdens ’terraform-plan’, wat het toegangspunt voor aanvallers aanzienlijk verlaagt.”
Deze gegevensbronnen kunnen op hun beurt een frauduleuze externe gegevensbron, een Terraform-module of een DNS-gegevensbron zijn, waardoor het noodzakelijk is dat alleen componenten van derden uit vertrouwde bronnen worden gebruikt. Enkele van de andere aanbevelingen om dergelijke risico’s te beperken zijn onder meer:
- Implementeer een gedetailleerd, op rollen gebaseerd toegangscontrole (RBAC) en volg het principe van de minste bevoegdheden
- Stel logboekregistratie op applicatie- en cloudniveau in voor monitoring en analyse
- Beperk de netwerk- en datatoegang van de applicaties en de onderliggende machines
- Voorkom de automatische uitvoering van niet-beoordeelde en mogelijk schadelijke code in CI/CD-pijplijnen
Bovendien kunnen organisaties IaC-scantools en -oplossingen zoals Terrascan en Checkov gebruiken om preventief misconfiguraties en compliance-problemen te identificeren voorafgaand aan de implementatie.