Wat is Aanval op de toeleveringsketen (supply-chainaanval)?

Een aanval waarbij niet de doelorganisatie zelf wordt aangevallen, maar zwakke punten in de stroom van leveringen waarop ze steunt (haar toeleveringsketen), zoals software, componenten of opdrachtnemers, om zo indirect binnen te komen. Voorbeelden zijn kwaadaardige code in legitieme updates verwerken, opensourcepakketten kapen of kwaadaardige pakketten met gelijkende namen publiceren, en binnendringen via IT-dienstverleners. Bij het SolarWinds-incident dat in 2020 aan het licht kwam, verspreidde de schade zich via legitieme ondertekende updates naar veel organisaties. Bij hardware vallen ook hardwaretrojans die tijdens de productie worden toegevoegd onder dit soort dreiging.

Japanse benaming: サプライチェーン攻撃

“Aanval op de toeleveringsketen (supply-chainaanval)” komt voor in 2 oefenvragen uit 1 onderwerpen, bijv. Cyberaanvallen en verdediging in de praktijk.

Vakgebied: Cyberaanvallen en verdediging in de praktijk

Nu oefenen: vragen over Aanval op de toeleveringsketen (supply-chainaanval)

Een bedrijf gebruikt een alleen intern gebruikte bibliotheek met de naam acme-utils, die in zijn interne pakketrepository (private registry) staat. Een aanvaller registreerde in een openbare pakketrepository een pakket met dezelfde naam, acme-utils, en een hoger versienummer, en het bleek dat de interne buildomgeving, afhankelijk van de buildinstellingen, het pakket van de aanvaller kon binnenhalen. Welke tegenmaatregel tegen deze „dependency confusion” is het meest passend?

  1. ADe versienummers van alleen intern gebruikte bibliotheken klein houden, zodat ze gemakkelijk te onderscheiden zijn van pakketten in de openbare repository
  2. BAlleen intern gebruikte pakketten in een namespace plaatsen die de organisatie beheert, instellen dat die namespace alleen uit de interne repository wordt opgehaald, en versies en hashwaarden vastleggen met een lockbestand
  3. CPakketten in openbare repository's worden gecontroleerd en zijn betrouwbaar, dus het is niet nodig in te stellen uit welke repository wordt opgehaald
Antwoord en toelichting tonen

Antwoord: B. Alleen intern gebruikte pakketten in een namespace plaatsen die de organisatie beheert, instellen dat die namespace alleen uit de interne repository wordt opgehaald, en versies en hashwaarden vastleggen met een lockbestand

Dependency confusion is een vorm van aanval op de toeleveringsketen van software. Sommige pakketbeheerders raadplegen meerdere repository's en kiezen, afhankelijk van hun instellingen, het hogere versienummer als dezelfde naam voorkomt; aanvallers misbruiken dat om een kwaadaardig pakket met dezelfde naam als een intern pakket te laten binnenhalen. De tegenmaatregel is voor interne pakketten een namespace (scope) te gebruiken die de organisatie beheert, die namespace alleen aan de interne repository te koppelen en expliciet aan te geven uit welke repository elk pakket wordt opgehaald. Door bovendien de versies en hashwaarden van de afhankelijkheden met een lockbestand vast te leggen, wordt voorkomen dat ze ongemerkt door iets anders worden vervangen. Ook de namespace van de organisatie als eerste in de openbare repository registreren, helpt om imitatie te voorkomen.

Bij het SolarWinds-incident dat in december 2020 aan het licht kwam, drongen aanvallers de buildomgeving van software voor IT-beheer binnen en werd kwaadaardige code in legitieme updates verwerkt. De updates werden verspreid met de legitieme codehandtekening van de ontwikkelaar. Wat is de meest passende les uit dit incident?

  1. AUpdates met een geldige codehandtekening bevatten nooit kwaadaardige code, dus het volstaat dat gebruikers de handtekening controleren
  2. BUpdates zijn gevaarlijk, dus software mag helemaal nooit worden bijgewerkt, ook niet met beveiligingspatches
  3. CEen codehandtekening toont alleen wie heeft ondertekend en of de code na het ondertekenen is gewijzigd, dus ontwikkelaars moeten de buildomgeving beschermen en gebruikers moeten ook het gedrag van vertrouwde software bewaken
Antwoord en toelichting tonen

Antwoord: C. Een codehandtekening toont alleen wie heeft ondertekend en of de code na het ondertekenen is gewijzigd, dus ontwikkelaars moeten de buildomgeving beschermen en gebruikers moeten ook het gedrag van vertrouwde software bewaken

Codeondertekening bevestigt wie heeft ondertekend en dat de inhoud na het ondertekenen niet is gewijzigd; kwaadaardige code die vóór het ondertekenen is toegevoegd, kan ze niet herkennen. Bij het SolarWinds-incident, een schoolvoorbeeld van een aanval op de toeleveringsketen van software, werd tijdens de build kwaadaardige code toegevoegd, zodat die als legitieme ondertekende updates bij veel organisaties terechtkwam. Ook bij de backdoor in xz-utils, die in maart 2024 werd ontdekt, smokkelde iemand die lange tijd het vertrouwen als ontwikkelaar had opgebouwd, kwaadaardige code in de verspreide bestanden. Het is belangrijk dat ontwikkelaars de buildomgeving isoleren en beschermen en de herkomst van broncode tot build vastleggen en verifiëren, en dat gebruikers ook vertrouwde software met EDR en vergelijkbare hulpmiddelen bewaken op verdacht verkeer en gedrag.

“Aanval op de toeleveringsketen (supply-chainaanval)” in de toelichting

Vragen met “Aanval op de toeleveringsketen (supply-chainaanval)” (2)

  1. Een bedrijf gebruikt een alleen intern gebruikte bibliotheek met de naam acme-utils, die in zijn interne pakketrepository (private registry) staat. Een aanvaller registreerde in een openbare pakketrepository een pakket met dezelfde naam, acme-utils, en een hoger versienummer, en het bleek dat de interne buildomgeving, afhankelijk van de buildinstellingen, het pakket van de aanvaller kon binnenhalen. Welke tegenmaatregel tegen deze „dependency confusion” is het meest passend?
  2. Bij het SolarWinds-incident dat in december 2020 aan het licht kwam, drongen aanvallers de buildomgeving van software voor IT-beheer binnen en werd kwaadaardige code in legitieme updates verwerkt. De updates werden verspreid met de legitieme codehandtekening van de ontwikkelaar. Wat is de meest passende les uit dit incident?

Verwante termen

EDR (endpoint detection and response) Cyber Kill Chain Digitaal forensisch onderzoek Inbraakdetectiesysteem (IDS) Incidentrespons Indicator of compromise (IoC) Laterale beweging (lateral movement) MITRE ATT&CK Penetratietest SBOM (software bill of materials)

Naar de woordenlijst