I NixOS föreslÄs en metod för att skydda mot substitutionsbakdörrar, sÄsom i XZ.

För att inkludera paketet nixpkgs i NixOS-distributionen har en metod för reproducerbara byggen föreslagits, vilket gör det möjligt att upptÀcka fall av bakdörrar i koden, liknande incidenten med projektet XZ. Den föreslagna skyddsmekanismen gör det möjligt att upptÀcka modifieringar i arkiv med kÀllkoden för releasen som saknas i kodarkiven.

Metodens kĂ€rna Ă€r att den nya versionens kĂ€llkod byggs tvĂ„ gĂ„nger — först frĂ„n koden som laddas ned frĂ„n git-repositoriet, och andra gĂ„ngen frĂ„n koden som distribueras i fĂ€rdiga arkiv. Om de binĂ€ra filer som genererats frĂ„n byggena skiljer sig Ă„t, uppstĂ„r mistankar om dolda modifieringar i repositoriet eller i arkivfilen med koden.

Vi pÄminner om att i fallet med projektet XZ innehöll kodarkivet inga misstÀnkta förÀndringar. De bakdörrsframkallande skadliga komponenterna levererades i filer som anvÀndes i testsviten för att kontrollera korrektheten av XZ:s dekompressor. Bakdörren aktiverades pÄ nivÄn för byggsystemet, och sjÀlva koden för XZ överensstÀmde med koden i repositoriet. Bakdörren aktiverande m4-makron för Automake-verktygen var endast inkluderade i det fÀrdiga arkivet med koden och saknades i repositoriet.

Bakdörren i XZ infördes av en angripare som lyckades fÄ status som underhÄllare i projektet. Införandet av bakdörren gick omedelbart obemÀrkt förbi eftersom distributioner huvudsakligen bygger paket genom att ladda ner kod frÄn fÀrdiga arkiv, dÄ det vid kodlagret kan rÀcka med en kontrollsumma för att verifiera filens integritet med arkivet och anvÀnda speglar. Huvudfokuset vid granskningen av koden ligger pÄ analysen av innehÄllet i repositoriet, dÀrför kan inte alltid oaktade skillnader i arkiven omedelbart upptÀckas.

För att förenkla kontrollen av överensstÀmmelsen mellan arkivfiler och repository-cut-offs som motsvarar releaser, har vissa öppna projekt, sÄsom PostgreSQL, infört ett system för reproducerbar generering av arkiv. I det hÀr fallet tillhandahÄlls verktyg som gör det möjligt att sjÀlv skapa ett arkiv frÄn koden som helt överensstÀmmer med det fÀrdiga arkivet som finns för nedladdning. Om det sjÀlvstÀndigt skapade arkivet och arkivet som tillhandahÄlls av huvudprojektet skiljer sig Ät, Àr det en indikator pÄ kompromettering av repositoryt eller referensarkivet.

Problemet Àr att en sÄdan metod endast tillÀmpas i vissa fall, medan mÄnga projekt fortsÀtter att inkludera ytterligare artefakter i arkiv som saknas i huvudrepositoryt, sÄsom man-sidor, dokumentation, exempel, skript för att skapa paket för distributioner och ytterligare byggfiler. Detta beror frÀmst pÄ historiska skÀl och sÀrdrag i release-processerna. En enkel jÀmförelse av innehÄllet i repositoryt och arkivet Àr i detta fall inte tillrÀcklig.

Som en lösning föreslÄs att samla binÀra filer för release, bÄde frÄn repositoryt (till exempel kan det automatiskt genererade arkivet i GitHub för release-taggen anvÀndas) och frÄn arkivet som förberetts av underhÄllaren, för att sedan jÀmföra resultaten. Som ett experiment har en sÄdan kontroll hittills föreslagits endast för paketet "xz". Om experimentet lyckas planerar man att anvÀnda kontrollerna Àven för andra paket i nixpkgs.

KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster