Google hat it OSS Rebuild-projekt yntrodusearre, ûntworpen om ferburgen feroarings te detektearjen yn klearmakke pakketten dy't publisearre binne yn repositories. OSS Rebuild is basearre op it konsept fan reprodusearbere builds en komt del op it kontrolearjen fan 'e neilibjen fan in pakket dat yn 'e repository pleatst is mei in pakket dat krigen is op basis fan weropbou fan 'e referinsjeboarnekoade dy't oerienkomt mei de oanjûne ferzje fan it pakket. De toolkit-koade is skreaun yn Go en wurdt ferspraat ûnder de Apache 2.0-lisinsje.
Op it stuit stipet OSS Rebuild ferifikaasje fan pakketten út NPM (JavaScript/TypeScript), PyPI (Python), en Crates.io (Rust) repositories. It oantal stipe repositories sil nei alle gedachten yn 'e takomst útwreide wurde. Yn 'e praktyk makket de toolkit it mooglik om farianten fan oanfallen yn 'e supply chain te identifisearjen, wêrby't, nei't de akkounts fan ûnderhâlders kompromittearre binne of sabotaazje binnen it projekt útfierd is, in kweade update yn 'e repository publisearre wurdt. Tagelyk bliuwt de koade yn 'e orizjinele repository fan it haadprojekt korrekt, en wurde allinich kweade feroarings oanbrocht oan 'e foltôge pakketten.
It systeem genereart automatysk in senario foar in reprodusearbere build fan it selektearre pakket, as it mooglik is, mei help fan heuristiken en it selektearjen fan parameters dy't it mooglik meitsje om de identiteit fan 'e artefakten dy't yn it pakket levere binne te berikken. As it net mooglik is om in pakket dat yn 'e repository pleatst is automatysk te reprodusearjen, is it mooglik om sels in buildspesifikaasje ta te foegjen. Nei't it pakket reprodusearre is, bewarret de OSS Rebuild-ark in beskriuwing fan it bouproses foar lettere ferifikaasje fan nije ferzjes fan it pakket. Derneist wurdt ynformaasje publisearre foar ferifikaasje mei it SLSA-raamwurk.
Nei it ferifiearjen fan in spesifike pakketferzje wurde attestaasjegegevens generearre, dy't troch oaren brûkt wurde kinne om al ferifiearre pakketten te evaluearjen. Ferifikaasje kin útfierd wurde troch in kommandorigelprogramma út te fieren of troch in hash te kontrolearjen dy't opslein is yn in aparte wolkopslach. De pakketferifikaasje-ynfrastruktuer kin sels ynset wurde. serverJo kinne ek ynformaasje brûke oer de kontrôles dy't Google útfierd hat foar ferskate tûzenen pakketten.
Foarbylden fan ferskate oanfalsmetoaden dêr't OSS Rebuild tsjin beskermje kin binne ûnder oaren it tafoegjen fan in efterdoar oan XZ, it ynjeksjearjen fan kweade koade yn 'e offisjele JavaScript-kliïnt foar de Solana-kryptofaluta, en it ferfangen fan feroarings fia de changed-files Actions-handler:
- Yn it gefal fan it XZ-projekt befette de koade yn 'e repository gjin fertochte feroarings, en de kwea-aardige komponinten dy't de efterdoar foarmen, waarden levere yn 'e bestannen dy't brûkt waarden yn 'e testset om de juste wurking fan 'e XZ-ûntpakker te kontrolearjen. De efterdoar waard aktivearre op it nivo fan it buildsysteem, en de XZ-boarnekoade sels kaam oerien mei de koade fan 'e repository. De m4-makro's foar de Automake-toolkit dy't de efterdoar aktivearren, waarden allinich opnommen yn it foltôge argyf mei de koade en wiene net yn 'e repository. Om sokke oanfallen te detektearjen, brûkt OSS Rebuild dynamyske analyze fan 'e artefakten dy't yn it pakket levere waarden, útfieringspaden en fertochte operaasjes.
- It ynfoegjen fan kweade feroarings yn 'e @solana/web3.js-bibleteek barde fanwegen it kompromittearjen fan it akkount fan 'e ûnderhâlder mei help fan sosjale technyk en phishing-metoaden. In nije release is pleatst yn 'e NPM-repository, ynklusyf kweade feroarings. Dizze release is net makke yn 'e Git-repository fan it projekt, en de kweade feroarings wiene allinich oanwêzich yn it resultearjende pakket. Ferdigening komt yn dit gefal del op it identifisearjen fan koade yn it pakket dy't ûntbrekt yn 'e haadrepository.
- In kompromittearring fan 'e changed-files handler repository makke it mooglik om in oanfal út te fieren op projekten dy't changed-files brûke om triem- en mapwizigingen te folgjen yn in trochgeande yntegraasje-ynfrastruktuer basearre op GitHub Actions. Om te beskermjen tsjin feroaringsferfanging nei't in bouomjouwing kompromittearre is, brûkt OSS Rebuild it folgjen fan feroarings en fertochte aktiviteit yn standerdisearre, stripped-down bouomjouwings.
Boarne: opennet.ru
