Blootstelling van het containerregister
Anonieme pull lekt uw code. Anonieme push komt in de plaats.
Wat is Blootstelling van het containerregister?
Een register waarmee anoniem uw broncode, uw configuratie en uw geïmplementeerde artefact kunnen worden opgehaald, wordt doorgegeven aan iedereen die de naam van de repository raadt. Met een anonieme push kan een aanvaller de tag overschrijven die u gaat verzenden, zonder dat de pijplijn er iets van merkt. U haalt een productie-image op, herbouwt het met een implantaat, duwt het terug onder dezelfde release-tag en geeft dat implantaat een opdracht binnen de lopende service. Vervolgens hebt u authenticatie, scope-push nodig, release-tags als onveranderlijk markeren en de geïmplementeerde afbeelding verifiëren door middel van samenvatting in plaats van taggen.
Wat je leert in Blootstelling van het containerregister
- Herken dat anonieme toegang tot een privérepository een aanvaller uw bron, uw configuratie en uw buildlagen overhandigt
- Traceer een vergiftigde implementatie naar een aanvaller die het productie-image opnieuw heeft opgebouwd en onder dezelfde releasetag heeft teruggedrongen
- Configureer een registerbeleid dat authenticatie vereist om te pullen en scopes te pushen naar de opslagplaatsen die een pijplijn daadwerkelijk bouwt
- Markeer releasetags als onveranderlijk, zodat een bestaande tag niet opnieuw kan worden toegewezen aan inhoud die niemand heeft getest of beoordeeld
- Controleer een geïmplementeerde afbeelding door de samenvatting ervan te vergelijken met de samenvatting die door de pijplijn is opgenomen, omdat een tag beweegt, maar een samenvatting niet
Blootstelling van het containerregister — Trainingsstappen
-
Scan naar een publieke repo
Bob richt zich niet specifiek op Quenmoor. Hij scant self-hosted registries op registries die antwoorden zonder login, en somt vervolgens hun repositories op om er een te vinden die leesbaar is achtergelaten. Quenmoor's registry antwoordt, en één repository valt op.
-
Een privé-repo die openstond
Bob scant self-hosted registries op repositories die hij niet zou moeten kunnen bereiken. Quenmoor's registry antwoordde hem zonder te vragen wie hij was, en één repository valt op: een interne dispatchservice.
-
Publiek, en beschrijfbaar
Dit is een interne service, maar het toegangsbeleid staat wagenwijd open. Bob leest de twee instellingen die voor hem van belang zijn.
-
Haal het anoniem binnen
Geen credentials, geen lidmaatschap, geen toegangsverzoek. Bob richt Docker op de registry en haalt het productie-image direct binnen.
-
Lees hun productieconfiguratie
Het image is niet alleen code. Het draagt de configuratie waarmee het draait, ingebakken in een laag. Bob start er een container vanuit en leest dat bestand er direct uit.
-
Herbouw het met een backdoor
Het image lezen was diefstal; het overschrijven is controle. Omdat hij hun echte productie-image heeft binnengehaald, herbouwt Bob er direct vanuit en voegt hij één enkele laag toe. Dit is de Dockerfile.
-
De laag die hij toevoegde
Al het andere is hun ongewijzigde image. Eén RUN maakt er een houvast van dat bij elke deploy wordt meegeleverd.
-
Tag het als hun release
Bob bouwt het vergiftigde image en tagt het met exact de naam waarvandaan Quenmoor uitrolt, zodat de registry het als de productierelease behandelt.
-
Push een vergiftigde tag
Het image lezen is diefstal. Het overschrijven is controle. Bob herbouwt het image met een backdoor in het entrypoint en pusht het terug naar exact de tag waarvandaan Quenmoor uitrolt. De registry accepteert het zonder te vragen wie hij is.
-
Wat de push hem opleverde
De volgende deploy rolde Bob's tag uit naar productie, en de laag die hij toevoegde belde naar huis vanuit de draaiende service. Hij hoeft Quenmoor niet meer van buitenaf te bereiken: zijn code is de service.
Dekking van beveiligingsframeworks
CWE
- CWE-306 Missing Authentication for Critical Function
- CWE-732 Incorrect Permission Assignment for Critical Resource
MITRE ATT&CK
- T1525 Implant Internal Image
CIS Controls
- CIS 6 Access Control Management
- CIS 2 Inventory and Control of Software Assets
NIST CSF
- PR.AT-02 Individuals in specialized roles are provided with awareness and training so that they possess the knowledge and skills to perform relevant tasks with cybersecurity risks in mind
- PR.AA Identity Management, Authentication, and Access Control
- ID.AM Asset Management