Beyond Takedown: Measuring Malicious Go Module Persistence in the Wild
Dit artikel onthult een grootschalige Go supply chain attack waarbij aanvallers legitieme modules herverpakken met geobfusceerde malware, wat aantoont dat uitsluitend vertrouwen op GitHub-zoekopdrachten faalt om de volledige omvang van de compromittering te detecteren omdat meer dan 99% van de verwijderde kwaadaardige artefacten via Go-proxies nog steeds ophaalbaar blijft.
Oorspronkelijk artikel gelicentieerd onder CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dit is een AI-gegenereerde uitleg van het onderstaande artikel. Het is niet geschreven of goedgekeurd door de auteurs. Raadpleeg het oorspronkelijke artikel voor technische nauwkeurigheid. Lees de volledige disclaimer
Stel je de wereld van softwareontwikkeling voor als een enorme, drukke bibliotheek waar programmeurs "modules" (vooraf geschreven codeblokken) lenen om hun eigen applicaties te bouwen. In de programmeertaal Go heeft deze bibliotheek een zeer strikte bibliothecaris: de Go Proxy.
Hier is het verhaal van een recente diefstal in deze bibliotheek, eenvoudig verteld.
De Roof: "De Nep Boekenclub"
Aanvallers besloten te stelen uit de bibliotheek, maar ze braken niet de deuren in. In plaats daarvan speelden ze een spel van impersonatie (identiteitsfraude).
- De Voorbereiding: Ze vonden populaire, legitieme boeken (legitieme codemodules) die iedereen vertrouwde.
- De Vervalsing: Ze maakten valse kopieën van deze boeken onder hun eigen namen. Binnenin deze nepboken verstopten ze een piepkleine, onzichtbare valstrik.
- De Valstrik: In de Go-wereld voert de bibliotheek automatisch een paar voorbereidende taken uit wanneer je een boek "importeert" (leent). De aanvallers verstopten een kwaadaardige instructie binnen deze voorbereidende taken. Het was als een boek dat, op het moment dat je het opent, je computer stiekem een commando fluistert om een virus te downloaden en uit te voeren.
- De Hype: Om hun nepboken er echt uit te laten zien, gebruikten de aanvallers een "botleger" om ze duizenden "stars" (likes) op GitHub te geven, waardoor ontwikkelaars werden misleid met de gedachte: "Oh, dit moet wel populair en veilig zijn."
Het Onderzoek: Twee Manieren van Kijken
De onderzoekers (Minjae Bae en Carter Yagemann) wilden zien hoe groot dit probleem werkelijk was. Ze gebruikten twee verschillende zaklampen om de dieven op te sporen.
Zaklamp 1: De GitHub Zoekopdracht (De "Schap"-weergave)
Ze zochten handmatig op de belangrijkste hostingwebsite (GitHub), zoekend naar verdachte patronen en het volgen van de "star"-verbindingen tussen accounts.
- Wat ze vonden: Ze vonden 2.113 valse repositories.
- Het Probleem: Deze zaklamp werkt alleen als het nepbok nog op het schap staat. Als de bibliotheekpersoneel het boek verwijdert, of als de dief het nooit op het hoofdschap heeft geplaatst, ziet deze zaklamp niets.
Zaklamp 2: De Proxy Scan (De "Circulatie"-weergave)
Ze bouwden een speciale scanner genaamd GOAST (een robot die code leest zonder deze uit te voeren) om de Go Proxy te scannen. Dit is het back-upsysteem van de bibliotheek. Het houdt een perfecte, onveranderlijke kopie bij van elk boek dat ooit is geleend, zelfs als het originele boek van het schap is verwijderd.
- Wat ze vonden: Ze vonden 2.289 kwaadaardige versies.
- De Verrassing: De Proxy-zaklamp vond 83% meer kwaadaardige boeken dan de GitHub-zaklamp deed. Veel van deze nepbeken stonden nooit eens op het hoofdschap, of waren al verwijderd, maar de Proxy had ze nog steeds.
De Grote Ontdekking: "Takedown" Betekent Niet "Opgelost"
Dit is het belangrijkste deel van het verhaal.
Normaal gesproken, wanneer beveiligingsteams een slecht boek vinden, vragen ze de bibliotheek om het te verwijderen (takedown). Ze verwijderen de repository op GitHub. Ze denken: "Geweldig, de dreiging is weg."
De onderzoekers bewezen dat dit onjuist is.
Omdat de Go Proxy een permanente, onveranderlijke kopie bijhoudt van elke module, verwijdert het verwijderen van de bron op GitHub niet de virus uit het ecosysteem.
- De onderzoekers ontdekten dat zelfs nadat de repositories van de aanvallers waren verwijderd of opgeschort (waardoor ze "onzichtbaar" waren op GitHub), 99,4% van die kwaadaardige modules nog steeds beschikbaar en downloadbaar waren via de Go Proxy.
- Het is alsof de bibliotheekmedewerkers een nepboek in de prullenbak gooien, maar de automatische bezorgdrone van de bibliotheek (de Proxy) nog steeds een perfecte kopie in zijn magazijn heeft en deze blijft bezorgen aan klanten die erom vragen.
Het Resultaat
De onderzoekers hebben de bibliotheekmedewerkers (GitHub en Google) op de hoogte gesteld van het probleem.
- GitHub verwijderde 684 kwaadaardige repositories.
- Google (het Proxy-team) heeft 1.377 kwaadaardige moduleversies opgeruimd uit hun permanente opslag.
De Les
Je kunt een probleem in de software supply chain niet oplossen door alleen de "hosting"-laag (GitHub) op te schonen. Als de "distributie"-laag (de Proxy) de slechte code behoudt, leeft de dreiging voort. Om het probleem echt op te lossen, moet je zowel het schap als het magazijn opruimen.
Verdrinkt u in papers in uw vakgebied?
Ontvang dagelijkse digests van de nieuwste papers die bij uw onderzoekswoorden passen — met technische samenvattingen, in uw taal.