Kwaadaardige Base Images

Kwaadaardige Base Images

A lookalike base image on a public registry reaches production and calls home. Trace it back to the FROM line, then fix it with an internal mirror, verified publishers, and signature verification at pull time.

Wat is Kwaadaardige Base Images?

Iedereen kan naar een publieke registry publiceren onder een naam die dicht bij een naam ligt die je vertrouwt. Zonder handtekeningverificatie is een FROM-regel slechts een tekenreeks, en een build die die tekenreeks omzet, voert uit wat hij ook ophaalt. Deze oefening behandelt een vijandig base image dat productie bereikte: bekijk hoe een aanvaller het plant en verzamelt wat het naar huis stuurt, los het daarna op met verified publishers, een interne mirror en handtekeningverificatie bij pull.

Wat je leert in Kwaadaardige Base Images

Kwaadaardige Base Images — Trainingsstappen

  1. Een naam die één teken afwijkt

    Bob breekt nergens in. Hij publiceert. Op een publieke image hub kan iedereen een repository pushen, en hij heeft er een gepusht onder een namespace die bijna precies leest als het officiële Node.js base image. Daarna wacht hij tot ergens een build hem per ongeluk binnenhaalt.

  2. Vermomd als origineel

    Bob's repository staat in de zoekresultaten direct onder de echte, met dezelfde tagline en een gezond aantal pulls. Het enige verschil is het onderdeel waar een gehaaste engineer overheen leest.

  3. Wat hij daadwerkelijk uitleverde

    Bob's lookalike is geen herverpakt Node-image met een nieuw label. Hij heeft het gebouwd vanaf een echt image en er één regel aan toegevoegd. Dit is de Dockerfile achter de base die hij publiceerde.

  4. De regel die het werk doet

    Alles boven deze regel is een gewone Node.js-base. Eén RUN, verpakt in een onschuldig ogend commentaar, is wat er een wapen van maakt.

  5. Bekijk hoe de payload afgaat

    De base ziet eruit en gedraagt zich als een normaal Node.js-image, dus een build erop slaagt en een app erop draait. Maar een laag die Bob heeft toegevoegd haalt een payload op en voert die uit zodra een container start. Hij start zijn eigen base één keer om te bevestigen dat de payload nog steeds afgaat.

  6. Gebruik de ingang

    Een Marlspire-build leverde uit op zijn base, en het implantaat dat daardoor werd geplant belde naar huis. Bob hoeft nu niet meer in te breken: hij heeft al een shell binnen hun productiecontainer. Hij geeft die de opdracht om af te staan wat hij kan bereiken.

  7. Wat dit mogelijk maakte

    Eén moment stilstaan bij het mechanisme voordat de respons begint.

  8. De host meldt een miner

    Marlspire draait endpointmonitoring op zijn containerhosts. Het maakt niet uit wat de container verondersteld wordt te doen; het rapporteert wat het heeft gezien.

  9. Lees de lagen van het image

    Een image legt vast hoe het is gebouwd, één commando per laag. Als een miner zichzelf installeert, moet een laag het commando hebben uitgevoerd dat hem heeft opgehaald. Alice leest de buildhistorie van het uitgeleverde image.

  10. Waar de base vandaan kwam

    Het gif zit in de base, dus de vraag is welke base. Alice zoekt de twee kandidaten naast elkaar op in de publieke hub.