Kompania Google prezantoi projektin OSS Rebuild, i destinuar për identifikimin e ndryshimeve të fshehta në paketat e gatshme, të publikuara në repozitat. Puna e OSS Rebuild është e bazuar në konceptin e ndërtimeve të riprodukueshme dhe përqendrohet në verifikimin e përputhshmërisë së paketës të publikuar në repo me paketën e marrë nga rindërtimi i kodit burimor referues, që i përshtatet 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 implementon mbështetje për verifikimin e paketave nga repozitat NPM (JavaScript/TypeScript), PyPI (Python) dhe Crates.io (Rust). Në të ardhmen, planifikohet zgjerimi i numrit të repozitave të mbështetur. Në praktikë, mjeti lejon identifikimin e varianteve të sulmeve të klasës "supply chain", gjatë të cilave, pas kompromitimit të llogarive të mbajtësve ose diversioneve brenda projektit, në repo publikohet një përditësim i dëmshëm. Në këtë rast, kodi në repozitarin e origjinës së projektit mbetet korrekt, ndërsa ndryshimet e dëmshme bëhen vetëm në paketat e gatshme.
Sistemi, sa më shumë të jetë e mundur, formon automatikisht një skenar për ndërtim të riprodukueshëm të paketës së zgjedhur, duke përdorur heuristika dhe përshtatë parametra që lejojnë arritjen e identitetit të artefakteve të ofruara në paketë. Nëse nuk është e mundur të riprodhohet automatikisht paketa e vendosur në repo, është e mundur të shtohet manualisht specifikimi i ndërtimit. Pasi të ketë arritur të riprodhojë paketën, mjeti OSS Rebuild ruan përshkrimin e procesit të ndërtimit për kontrollin e versioneve të reja të paketës. Përveç kësaj, publikohet informacion për verifikim duke përdorur kornizën SLSA.
Pas kryerjes së verifikimit të një versioni të caktuar të paketës, formohen të dhënat e akreditimit, të cilat mund të përdoren nga të tjerët për vlerësimin e paketave tashmë të verifikuara. Verifikimi mund të kryhet përmes ekzekutimit të utilitarit të komandave ose krahasimin e hash-it të ruajtur në një ruajtje të veçantë në re. Infrastruktura për verifikimin e paketave mund të vendoset në mënyrë të pavarur serveri. Gjithashtu, është e mundur të shfrytëzohet informacioni mbi verifikimet e kryera 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ërmendet shtimi i një backdoor në XZ, futja e kodit të dëmshëm në klientin zyrtar JavaScript për kriptomonedhën Solana dhe inkuadrimi i ndryshimeve përmes procesorit të veprimeve changed-files:
- Në rastin e projektit XZ, kodi në repozitë nuk përmbante ndryshime të dyshimta, ndërsa komponentet e dëmshme që përbëltnin backdoor-in ishin të pranishme brenda skedareve të përdorura në grupin e testimit për të verifikuar funksionalitetin e dekompresorit XZ. Backdoor-i u aktivizua në nivelin e sistemit të ndërtimit, dhe vetë kodi burimor i XZ përputhej me kodin nga repozita. M4 makros për aktivizimin e backdoor-it për mjetin Automake ishin të përfshira vetëm në arkivin final me kod dhe mungonin në repozitë. Për identifikimin e sulmeve të këtij lloji, OSS Rebuild përdor analizën dinamike të artefakteve të ofruara në paketë, rrugëve të ekzekutimit dhe operacioneve të dyshimta.
- Futja e ndryshimeve të dëmshme në bibliotekën @solana/web3.js ndodhi për shkak të kompromitimit të llogarisë së mbajtësit, duke përdorur metoda të inxhinierisë sociale dhe phishing. Në repo NPM u publikua një version i ri, i cili përmbante ndryshime të dëmshme. Në repozitën Git të projektit, ky version nuk ishte krijuar dhe ndryshimet e dëmshme ishin të pranishme vetëm në paketën përfundimtare. Mbrojtja në këtë rast përfshinte identifikimin në paketë të kodit që mungonte në repozitën kryesore.
- Kompromitimi i repozitës së procesorit changed-files bëri të mundur një sulm ndaj projekteve që përdorin changed-files për të ndjekur ndryshimet në skedarë dhe katalogë në Infrastrukturën e Integrimit të Përhershëm bazuar në GitHub Actions. Për mbrojtjen nga inkuadrimi i ndryshimeve pas kompromitimit të mjedisit të ndërtimit, OSS Rebuild përdor ndjekjen e ndryshimeve dhe aktivitetit të dyshimtë në ambiente standardizuese të prera.
Burimi: opennet.ru
