Kritisk rustfejl udgør en udnyttelsestrussel i specifikke Windows-brugstilfælde

Kritisk rustfejl udgør en udnyttelsestrussel i specifikke Windows-brugstilfælde

Critical Rust Flaw Poses Exploit Threat in Specific Windows Use Cases PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Rust-projektet har udsendt en opdatering til sit standardbibliotek, efter at en sårbarhedsforsker opdagede, at en specifik funktion, der bruges til at udføre batchfiler på Windows-systemer, kunne udnyttes ved hjælp af en injektionsfejl.

Sættet af almindelige funktioner inkluderet i Rust-programmeringssproget, kendt som standardbiblioteket, tilbyder muligheden - blandt dets mange andre muligheder - til at udføre Windows batch-filer gennem Command API. Funktionen behandlede dog ikke input til API'en strengt nok til at eliminere muligheden for at injicere kode i eksekveringen, ifølge en rådgivende arbejdsgruppe for rustsikkerhed udgivet 9. april.

Mens Rust er velkendt for sine hukommelsessikkerhedsfunktioner, understreger hændelsen, at programmeringssproget ikke er bevis mod logiske fejl, siger Yair Mizrahi, en senior sårbarhedsforsker hos applikationssikkerhedsfirmaet JFrog.

"Samlet set er Rusts hukommelsessikkerhed en bemærkelsesværdig fordel, men udviklere skal også være meget opmærksomme på potentialet for logiske fejl for at sikre den overordnede sikkerhed og pålidelighed af deres Rust-baserede applikationer," siger han. "For at løse sådanne logiske problemer opfordrer Rust til en streng test- og kodegennemgangsproces samt brugen af ​​statiske analyseværktøjer til at identificere og afbøde logiske fejl."

Rust har fået ry for at være et meget sikkert programmeringssprog, fordi det ikke efterlader applikationer åbne for den ofte alvorlige klasse af fejl kendt som hukommelsessikkerhedssårbarheder. Google har tilskrevet et fald i hukommelses-usikker kode til skiftet til hukommelsessikre sprog, såsom Rust og Kotlin, mens Microsoft fandt ud af, at indtil 2018, hvor det skiftede til hukommelsessikkert sprog, var sådanne sårbarheder regelmæssigt stod for 70 % af alle sikkerhedsproblemer.

Windows giver en række problemer

Det seneste problem er ikke en hukommelsessikkerhedssårbarhed, men et problem med den logik, der bruges til at behandle input, der ikke er tillid til. En del af Rusts standardbibliotek giver udvikleren mulighed for at kalde en funktion for at sende en batch-fil til Windows-maskinen til behandling. Der er grunde til at indsende kode til værten som en batch-fil, siger Joel Marcey, direktør for teknologi hos Rust Foundation, som understøtter programmeringssprogets vedligeholdere og Rust-økosystemet.

"Batchfiler køres af mange grunde på systemer, og Rust leverer en API, der giver dig mulighed for at udføre dem ret nemt," siger han. "Så selvom dette ikke nødvendigvis er den mest almindelige anvendelse af Rust, tillod API'en, før den fikserede patch blev implementeret, for ondsindede aktører teoretisk at overtage dit system ved at køre vilkårlige kommandoer, og dette er bestemt en kritisk sårbarhed."

Typisk kan en udvikler videresende en arbejdsbelastning til Windows-værten for at blive udført som en batch-proces gennem Command Applications Programming Interface (API), en del af standardbiblioteket. Typisk garanterer Rust sikkerheden ved ethvert opkald til Command API, men i dette tilfælde kunne Rust-projektet ikke finde en måde at forhindre eksekvering af alle argumenter på, primært fordi Windows ikke overholder nogen form for standard, og at API kunne tillade en angriber at indsende kode, som derefter vil blive eksekveret.

"Desværre blev det rapporteret, at vores undslippelogik ikke var grundig nok, og det var muligt at sende ondsindede argumenter, der ville resultere i vilkårlig udførelse af shell," ifølge Rust Security Response WG.

Rustprojekt viser sig at være lydhør

Selvom det kan være en hovedpine at håndtere enhver sårbarhed, har Rust-projektet vist, at gruppen hurtigt løser problemer, siger eksperter. Standard bibliotekssårbarhed, CVE-2024-24576, er i sidste ende et problem med Windows batch-behandlingsproblemet og påvirker andre programmeringssprog, hvis de ikke analyserer de argumenter, der sendes til Windows batchprocessen tilstrækkeligt. Rust-projektet ser ud til at være det første ud af døren med en rettelse til at overføre argumenter til Windows CMD.exe-processen, siger JFrogs Mizrahi.

Grupperne kunne ikke helt eliminere problemet, men Command API'en vil ikke returnere en fejl, når eventuelle forstærkninger, der er sendt til funktionen, kan være usikre, sagde Rust Project. 

JFrog's Mizrahi opfordrer Rust til at udvide sin brug af statisk applikationssikkerhedstest og udvide brugen af ​​fuzzing og dynamisk test.

"Samlet set er Rust på rette vej ved at understrege hukommelsessikkerhed og tilskynde til strenge testpraksis," siger han. "Kombinering af disse bestræbelser med fortsatte fremskridt inden for statisk analyse og fuzzing kan hjælpe Rust-fællesskabet og den bredere softwareindustri med at gøre betydelige fremskridt med hensyn til at løse logiske fejl og inputvalideringsfejl i de kommende år."

Tidsstempel:

Mere fra Mørk læsning