Kompania Google paraqiti projektin OSS Rebuild, i cili është i destinuar për të identifikuar ndryshimet e fshehura në paketat e përgatitura, që publikohen në depo. Puna e OSS Rebuild baztohet në konceptin e ndërtimeve të riprodhueshme dhe përfshin verifikimin e përputhshmërisë së paketës së publikuar në depo me paketën e marrë në bazë të rinehjes nga kodi burimor referues, që i korrespondon versionit të deklaruar të paketës. Kodi i mjetit është shkruar në gjuhën Go dhe shpërndahet nën licencën Apache 2.0.
Aktualisht, OSS Rebuild ka implementuar mbështetje për verifikimin e paketimeve nga depo të NPM (JavaScript/TypeScript), PyPI (Python) dhe Crates.io (Rust). Në të ardhmen, numri i depove të mbështetura planifikohet të zgjerohet. Në praktikë, mjeti lejon identifikimin e varianteve të sulmeve të klasës "supply chain", gjatë së cilave, pas kompromitimit të llogarive të mbështetjes ose diversioneve brenda projektit, në depo publikohet një përditësim keqdashës. Në këtë rast, kodi në depo të burimit për projektin kryesor mbetet i saktë, ndërsa ndryshimet keqdashëse bëhen vetëm në paketat e përgatitura.
Sistemi në masë të mundshme formon automatikisht një skenar për ndërtimin e riprodhueshëm të paketës së zgjedhur, duke përdorur heuristikën dhe duke përzgjedhur parametrat që lejojnë arritjen e identitetit të artefakteve të ofruara në paketë. Nëse nuk është e mundur të riprodhohet automatikisht paketa e publikuar në depo, është e mundur shtimi manual i specifikacionit të ndërtimit. Pasi të arrihet riprodhimi i paketës, mjeti OSS Rebuild ruan përshkrimin e procesit të ndërtimit për verifikimin e versioneve të reja të paketës. Për më tepër, publikohet informacion për verifikim duke përdorur kornizën SLSA.
Pas realizimit të verifikimit të një versioni të caktuar të paketës, krijohen të dhëna atestimi, të cilat mund të përdoren nga të tjerë për të vlerësuar paketat e verifikuara tashmë. Verifikimi mund të bëhet përmes ekzekutimit të mjetit të linjës së komandës ose duke përputhur hashin e ruajtur në një depo të veçantë në cloud. Infrastrukturën për verifikimin e paketimeve mund të implementohet në mënyrë të pavarur server. Po ashtu, mund të përdoret informacioni për verifikimet që kryhen nga Google për disa mijëra paketa.
Si shembuj të metodave të ndryshme të sulmeve, nga të cilat OSS Rebuild mund të mbrojë, përfshihet shtimi i një backdoor në XZ, inkorporimi i kodit të keq në klientin zyrtar JavaScript për kriptomonedhën Solana dhe koha e ndryshimeve përmes trajtuesit të veprimit changed-files:
- Në rastin e projektit XZ, kodi në depo nuk përmbante ndryshime të dyshimta, ndërsa komponentet që formonin backdoor-in ishin të integruara brenda skedarëve të përdoruar në paketën e testit për të verifikuar saktësinë e punës së dekompresorit XZ. Backdoor-i u aktivizua në nivelin e sistemit të ndërtimit, dhe vetë kodi burimor XZ përputhej me kodin në depo. Makrosat m4 që aktivizuan backdoor-in për mjetin Automake ishin përfshirë vetëm në arkivin përfundimtar me kod dhe ishin të munguar në depo. Për identifikimin e këtij lloji sulmi, OSS Rebuild përdor analizë dinamike të artefakteve të dorëzuara në paketë, rrugët e ekzekutimit dhe operacionet e dyshimta.
- Shtimi i ndryshimeve të keqija në bibliotekën @solana/web3.js ndodhi për shkak të komprometimit të llogarisë së mirëmbajtësit, duke përdorur metoda të inxhinierisë sociale dhe phishing-ut. Në depozitat NPM u publikua një version i ri, që përfshinte ndryshime të keqija. Në depozitën Git të projektit, ky version nuk u krijua dhe ndryshimet e keqija ishin të pranishme vetëm në paketën përfundimtare. Mbrojtja në këtë rast ka të bëjë me identifikimin e kodit në paketë që mungon në depozitën kryesore.
- Komprometimi i depozitës së trajtuesit changed-files lehtësoi kryerjen e një sulmi në projektet që përdorin changed-files për të ndjekur ndryshimet në skedarë dhe drejtoritë në infrastrukturën e integrimit të vazhdueshëm bazuar në GitHub Actions. Për të mbrojtur nga shtimi i ndryshimeve pas komprometimit të mjedisit të ndërtimit, OSS Rebuild përdor ndjekje të ndryshimeve dhe aktivitetit të dyshimtë në ambientet e ndërtimit të standardizuara të kufizuara.
Burimi: opennet.ru
