GitHub heeft een nieuw cooldown-mechanisme aangekondigd in Dependabot, waardoor de tool minimaal drie dagen kan wachten nadat een release is gepubliceerd voordat een pull-verzoek wordt geopend.
“De cooldown-configuratieoptie in dependabot.yml bepaalt echter nog steeds het gedrag, dus je kunt een andere cooldown-parameter kiezen die bij je project past”, aldus de dochteronderneming van Microsoft.
Volgens GitHub is de standaard cooldown van drie dagen alleen van toepassing op versie-updates, die zijn ontworpen om softwareafhankelijkheden up-to-date te houden. Beveiligingsupdates zullen meteen worden gepusht, waardoor Dependabot een waarschuwing kan geven en een pull-verzoek kan openen om het project naar de gepatchte versie te verplaatsen.
Met deze update is het de bedoeling om scenario’s aan te pakken waarin een bedreigingsacteur erin slaagt een vergiftigde versie van een populair pakket te pushen, die vervolgens snel door downstream-projecten wordt opgehaald voordat die versie uit het register wordt gehaald. Hoewel dergelijke getrojaniseerde pakketten van korte duur zijn, is de periode waarin ze toegankelijk blijven voldoende om de explosieradius van een supply chain-aanval te vergroten.
GitHub zei dat het standaard op drie dagen kwam, omdat het van mening is dat de duur zich in de goudlokje-zone bevindt. “Drie dagen als standaard brengt twee doelen in evenwicht: het duwt je voorbij het venster waar de meeste van deze aanvallen plaatsvinden, en het houdt je afhankelijkheden niet langer tegen dan nodig”, voegde het eraan toe.
Tegelijkertijd benadrukte het softwareontwikkelingsplatform dat de controle slechts één verdedigingslaag zou moeten zijn naast verschillende andere, inclusief het vastzetten van afhankelijkheden met lockfiles, het uitschakelen van installatiescripts in CI, het in kaart brengen van de tokens in build-pijplijnen en het beoordelen van updates voordat ze worden samengevoegd.
“Er is een cooldown gebouwd voor een specifiek patroon: een kwaadaardige versie die snel wordt verzonden, verspreid en gepakt”, aldus GitHub. “Het doet weinig tegen aanvallen die een langer spel spelen, inclusief backdoors die in releases zijn geplaatst en inactief zijn gelaten, sabotage door beheerders of een gecompromitteerd buildsysteem.”
Het is vermeldenswaard dat vergelijkbare cooldown-besturingselementen het afgelopen jaar zijn aangekondigd in verschillende pakket-ecosystemen, waaronder Microsoft Visual Studio Code (VS Code), Ruby, Bun, npm, pnpm en Yarn.
De op tijd gebaseerde verdediging van GitHub komt op het moment dat de beheerders van de Python Package Index (PyPI) plannen aankondigden om beheerders te blokkeren van het toevoegen van nieuwe bestanden aan een pakketrelease nadat 14 dagen zijn verstreken sinds de publicatie ervan.
“De maatregel is bedoeld om te voorkomen dat aanvallers die publicatietokens of workflows compromitteren, oude, vertrouwde releases vergiftigen”, aldus PyPI.