TUF 1.0 er tilgængelig, en ramme til at organisere sikker levering af opdateringer

Udgivelsen af ​​TUF 1.0 (The Update Framework) er blevet offentliggjort, som giver værktøjer til sikkert at søge efter og downloade opdateringer. Hovedmålet med projektet er at beskytte klienten mod typiske angreb på depoter og infrastruktur, herunder modvirke angribernes promovering af fiktive opdateringer, der er oprettet efter at have fået adgang til nøgler til at generere digitale signaturer eller kompromittere depotet. Projektet er udviklet i regi af Linux Foundation og bruges til at forbedre sikkerheden ved levering af opdateringer i projekter som Docker, Fuchsia, Automotive Grade Linux, Bottlerocket og PyPI (inkludering af downloadverifikation og metadata i PyPI forventes i nær fremtid). TUF-referenceimplementeringskoden er skrevet i Python og distribueret under Apache 2.0-licensen.

Projektet udvikler en række biblioteker, filformater og hjælpeprogrammer, der nemt kan integreres i eksisterende applikationsopdateringssystemer, hvilket giver beskyttelse i tilfælde af nøglekompromis fra softwareudviklernes side. For at bruge TUF er det nok at tilføje de nødvendige metadata til depotet og integrere procedurerne i TUF til at downloade og verificere filer i klientkoden.

TUF-rammen påtager sig opgaverne med at søge efter en opdatering, downloade opdateringen og verificere dens integritet. Opdateringsinstallationssystemet interfererer ikke direkte med yderligere metadata, hvis verifikation og indlæsning udføres af TUF. Til integration med applikationer og opdateringsinstallationssystemer tilbydes et lavniveau-API til adgang til metadata og en implementering af en klient-API-ngclient på højt niveau, klar til integration med applikationer.

Blandt de angreb, som TUF kan imødegå, er substitution af gamle udgivelser under dække af opdateringer for at blokere rettelse af softwaresårbarheder eller brugerens tilbagevenden til en gammel sårbar version, samt promovering af ondsindede opdateringer korrekt signeret ved hjælp af en kompromitteret nøgle, DoS-angreb på klienter, såsom at fylde disken op med endeløse opdateringer.

Beskyttelse mod kompromittering af softwareudbyderens infrastruktur opnås ved at vedligeholde separate, verificerbare optegnelser over lagerets eller applikationens tilstand. Metadata verificeret af TUF omfatter oplysninger om nøgler, der kan stole på, kryptografiske hashes til at evaluere filernes integritet, yderligere digitale signaturer til at verificere metadata, oplysninger om versionsnumre og oplysninger om registreringers levetid. De nøgler, der bruges til verifikation, har en begrænset levetid og kræver konstant opdatering for at beskytte mod signaturdannelse af gamle nøgler.

Reduktion af risikoen for kompromittering af hele systemet opnås gennem brugen af ​​en delt tillidsmodel, hvor hver part kun er begrænset til det område, den er direkte ansvarlig for. Systemet bruger et hierarki af roller med deres egne nøgler, f.eks. underskriver rodrollen nøgler for roller, der er ansvarlige for metadata i repository, data om tidspunktet for generering af opdateringer og målsamlinger, til gengæld rollen ansvarlig for assembly-tegn. roller forbundet med certificering af leverede filer.

TUF 1.0 er tilgængelig, en ramme til at organisere sikker levering af opdateringer

For at beskytte mod kompromittering af nøgler anvendes en mekanisme til hurtig tilbagekaldelse og udskiftning af nøgler. Hver individuel nøgle indeholder kun de minimale nødvendige beføjelser, og autentificeringsoperationer kræver brug af flere nøgler (lækagen af ​​en enkelt nøgle tillader ikke et øjeblikkeligt angreb på klienten, og for at kompromittere hele systemet skal nøglerne til alle deltagere være fanget). Klienten kan kun acceptere filer, der er nyere end tidligere modtagne filer, og data downloades kun i henhold til størrelsen angivet i de certificerede metadata.

Den offentliggjorte udgivelse af TUF 1.0.0 tilbyder en fuldstændig omskrevet og stabiliseret referenceimplementering af TUF-specifikationen, som du kan bruge som et færdigt eksempel, når du opretter dine egne implementeringer eller til integration i dine projekter. Den nye implementering indeholder væsentligt mindre kode (1400 linjer i stedet for 4700), er lettere at vedligeholde og kan nemt udvides, hvis det for eksempel er nødvendigt at tilføje understøttelse af specifikke netværksstakke, lagersystemer eller krypteringsalgoritmer.

Kilde: opennet.ru

Tilføj en kommentar