Ekkel Linux systemd rotnivå sikkerhetsfeil avslørt og lappet

0
148

 Steven J. Vaughan-Nichols

Av Steven J. Vaughan-Nichols for Linux og Open Source | 16. juni 2021 – 11:41 GMT (12:41 BST) | Emne: Sikkerhet

Den gode nyheten er at den syv år gamle sikkerhetsfeilen i Linux-systemets polkit, brukt i mange Linux-distroer, er blitt lappet. Den dårlige nyheten er at den noen gang var der i utgangspunktet. Polkit, som systemd bruker i stedet for sudo, gjør at uautoriserte brukere kan kjøre privilegerte prosesser de ellers ikke kunne kjøre. Det viste seg at du også kunne misbruke polkit for å få root-tilgang til et system.

Kan du si “Ow!”?

Kraften til å hente rotprivilegier er det ultimate ondskapen i Unix- og Linux-systemer. Kevin Backhouse, et medlem av GitHub Security Lab, fant polkits sikkerhetshull i løpet av sine plikter. Han avslørte det for polkit-vedlikeholdere og Red Hats sikkerhetsteam. Da en løsning ble utgitt 3. juni 2021, ble den offentliggjort som CVE-2021-3560.

Backhouse fant at en uautorisert lokal bruker lett kunne få et root shell på et system ved hjelp av noen få standard shell-verktøy som bash, kill og dbus-send. Merkelig nok, mens feilen er ganske gammel, begynte den nylig å sende i de mest populære Linux-distribusjonene. For eksempel hvis du kjører Red Hat Enterprise Linux (RHEL) 7; Debian 10; eller Ubuntu 18.04; du er usårbar for dette sikkerhetshullet. Men hvis du kjører den nyere RHEL 8, tester Debian; eller Ubuntu 20.04, kan du bli angrepet med den.

Hvorfor? Fordi denne feilkoden ikke hadde blitt brukt i de fleste Linux-distroer. Nylig ble den sårbare koden imidlertid backported til fraktversjoner av polkit. Et gammelt sikkerhetshull ble gitt et nytt liv.

Det er ikke den eneste grunnen til at denne feilen gjemte seg helt klart så lenge. Backhouse forklarte at sikkerhetshullet ikke utløses hver gang du kjører programmer som kan kalle det. Hvorfor? Det viser seg at polkit ber dbus-daemon om UID [bruker-ID] for forespørselprosessen flere ganger, på forskjellige kodestier. De fleste av disse kodestiene håndterer feilen riktig, men en av dem gjør det ikke. Hvis du dreper dbus-send-kommandoen tidlig, håndteres den av en av de riktige kodestiene, og forespørselen avvises. For å utløse den sårbare kodestien, må du koble fra akkurat i riktig øyeblikk. Og fordi det er flere prosesser involvert, varierer tidspunktet for det “rette øyeblikket” fra løp til neste. Derfor tar det vanligvis noen få forsøk for at utnyttelsen skal lykkes. Jeg antar at det også er grunnen til at feilen ikke tidligere ble oppdaget.

Det er en luskende liten ting.

Men når Backhouse sa at det ikke alltid kan utnyttes, er det ingen grunn til ikke å bekymre seg for det. Du kan enkelt skrive et skript som sikkert vil aktivere det etter noen få minutters forsøk. Red Hat advarer “Den høyeste trusselen fra dette sikkerhetsproblemet er datakonfidensialitet og integritet samt systemtilgjengelighet.”

Derfor, som Backhouse påpeker, siden det er “veldig enkelt og raskt å utnytte … er det viktig at du oppdaterer Linux-installasjonene dine så snart som mulig.”

Så du vet hva du skal gjøre nå, ikke sant? Kom i gang med oppdatering: Du vil oppgradere polkit til versjon 0.119 eller nyere.

Relaterte historier:

CloudLinux lanserer UChecker sikkerhetsverktøy for Linux-servereLinux og open source-fellesskap øker til Bidens cybersikkerhetsutfordring
Linux med høy nettverk sikkerhetshull funnet, løst

Relaterte emner:

Enterprise Software Security TV Data Management CXO Data Centers  Steven J. Vaughan-Nichols

Av Steven J. Vaughan-Nichols for Linux og Åpen kildekode | 16. juni 2021 – 11:41 GMT (12:41 BST) | Tema: Sikkerhet