Zoom for Mac patches get-root bug – update now! PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Zoom za Mac popravi napako pri pridobivanju korenin – posodobite zdaj!

Na znanem varnostnem dogodku DEF CON v Las Vegasu v Nevadi prejšnji teden je raziskovalec kibernetske varnosti Mac Patrick Wardle je pokazala, "get-root" povišanje privilegija (EoP) napaka v Zoomu za Mac:

V tvitu, ki je sledil njegovemu govoru [2022-08-12], je Wardle opozoril:

Trenutno ni popravka [:FRIED-EGG EYES DEPICTING ALARM EMOJI:] [:EDVARD MUNCH KRIK EMOJI:]

Zoom je takoj delal na popravku za napako, ki je bil objavljen naslednji dan v Zoom varnostni bilten ZSB-22018, ki si je prislužil čestitko odgovori od Wardle v procesu:

Mahalos na @Zoom za (neverjetno) hitro rešitev! [:OBE ROKI, DVIGNJENI V SLAVJE IN MIGAJO O EMOJIJU:] [:STISNJENI SKUPAJ DLANI V ZNAK DUHOVNE DOBRE VOLJE EMOJI:]

Razkritje ničelnega dne

Glede na navidezno hitrost in lahkoto, s katero je Zoom uspel oddati popravek za hrošča, imenovan CVE-2022-28756, se verjetno sprašujete, zakaj Wardle Zoomu ni vnaprej povedal o napaki in je kot rok za razkritje podrobnosti določil dan svojega govora.

To bi Zoomu dalo čas, da izda posodobitev svojim številnim uporabnikom Maca (ali pa da jo omogoči vsaj tistim, ki verjamejo v popravi zgodaj/pogosto popravi), s čimer je odpravljena vrzel med tem, da Wardle svetu pojasnjuje, kako zlorabiti hrošča, in popravkom hrošča.

Pravzaprav se zdi, da se je Wardle pred nekaj meseci potrudil po svojih najboljših močeh, da je Zoom opozoril na to napako in na kup med seboj povezanih napak v Zoomovem procesu samodejnega posodabljanja.

Wardle pojasnjuje časovnico razkritja napak v diapozitivi iz njegovega govora DEF CON, in navaja tok posodobitev Zooma, povezanih s pomanjkljivostmi, ki jih je odkril.

Dvorezni meč

Napake, o katerih je razpravljal Wardle, so se na splošno nanašale na Zoomov mehanizem samodejnega posodabljanja, ki je del katerega koli programskega ekosistema, ki je nekoliko dvorezen meč – močnejše orožje od običajnega meča, vendar ga je zato težje varno ravnati.

Samodejno posodabljanje je obvezna komponenta vsake sodobne odjemalske aplikacije, saj omogoča lažjo in hitrejšo distribucijo kritičnih popravkov, s čimer uporabnikom pomaga zanesljivo zapreti luknje v kibernetski varnosti.

Toda samodejno posodabljanje s seboj prinaša morje tveganj, nenazadnje tudi zato, ker samo orodje za posodabljanje običajno potrebuje sistemski dostop na korenski ravni.

To je zato, ker je naloga programa za posodabljanje prepisati programsko opremo aplikacije (česar običajni uporabnik ne bi smel početi) in morda zagnati privilegirane ukaze operacijskega sistema za konfiguracijo ali druge spremembe na ravni sistema.

Z drugimi besedami, če razvijalci niso previdni, lahko prav orodje, ki jim pomaga vzdrževati posodobljeno in varnejšo osnovno aplikacijo, postane izhodišče, s katerega lahko napadalci spodkopljejo varnost tako, da posodobitve zavedejo v izvajanje nepooblaščenih ukazov s sistemskimi pravicami. .

Predvsem morajo programi za samodejno posodabljanje poskrbeti za preverjanje Pristnost posodobitvenih paketov, ki jih prenesejo, da preprečijo napadalcem, da jim preprosto dodajo ponarejen sveženj posodobitev, skupaj z dodano zlonamerno programsko opremo.

Prav tako morajo vzdrževati celovitost posodobitvenih datotek, ki jih na koncu porabijo, tako da lokalni napadalec ne more prikrito spremeniti »preverjeno varnega« paketa posodobitev, ki je bil pravkar prenesen v kratkem času med pridobitvijo in aktiviranjem.

Izogib preverjanju pristnosti

Kot pojasnjuje Wardle v svojem papirja, je bila ena od napak, ki jih je odkril in razkril, napaka v prvem zgoraj navedenem koraku, ko je Zoomov program za samodejno posodabljanje poskušal preveriti pristnost paketa posodobitev, ki ga je pravkar prenesel.

Namesto da bi za neposredno preverjanje digitalnega podpisa prenosa uporabili uradne API-je za macOS, so se razvijalci Zoom odločili za posredno preverjanje pristnosti z zagonom pripomočka za macOS pkgutil --check-signature v ozadju in pregleduje rezultat.

Tukaj je primer pkgutil izhod z uporabo stare različice Zoom.pkg paket programske opreme:

$ pkgutil --check-signature Zoom.pkg Paket "Zoom.pkg": Stanje: podpisano s potrdilom razvijalca, ki ga je izdal Apple za distribucijo Podpisano z zaupanja vrednim časovnim žigom dne: 2022-06-27 01:26:22 +0000 Certificate Chain : 1. Namestitveni ID razvijalca: Zoom Video Communications, Inc. (BJ4HAAB9B3) Poteče: 2027-02-01 22:12:15 +0000 SHA256 Prstni odtis: 6D 70 1A 84 F0 5A D4 C1 C1 B3 AE 01 C2 EF 1F 2E AE FB 9F 5C A6 80 48 A4 76 60 FF B5 F0 57 BB 8C ---------------------------------- ------------------------------------- 2. Certifikacijski urad za ID razvijalca poteče: 2027. februarja 02 01:22:12 +15 SHA0000 Prstni odtis: 256A FC 7D 9 A01 6F 2 A03 DE 2 96 37 93D 6A FE 4 68 09D 0D E2 1D 8 F03 2C 9 CF B88 B0 BA 1 63 58F -------- -------------------------------------------------- -------------- 7. Apple Root CA Poteče: 3-2035-02 09:21:40 +36 SHA0000 Prstni odtis: B256 B0 1 73E CB C0 FF 7 45 05 14C 2 F49 1 29E 5E DA 6B CA ED 6E 7C 2 C68 BE 5 B91 A5 1 10 F01 0

Na žalost, kot je ugotovil Wardle, ko je dekompiliral Zoomovo kodo za preverjanje podpisa, program za posodabljanje Zooma ni obdelal pkgutil podatke na enak način, kot bi jih človeški opazovalci.

Izhod bi preverili tako, da bi sledili uporabnemu vizualnemu zaporedju v izhodu.

Najprej bi najprej poiskali želeni status, npr signed by a developer certificate issued by Apple for distribution.

Potem bi našli podnaslov Certificate Chain:.

Na koncu bi navzkrižno preverili, ali je veriga sestavljena iz teh treh podpisnikov v pravilnem vrstnem redu:

  1. Zoom Video Communications, Inc. 2. Certifikacijski organ za ID razvijalca 3. Apple Root CA

Presenetljivo je, da je Zoomova koda preprosto preverila, ali je vsak od zgornjih treh nizov (niti ni preverjala Zoomovega edinstvenega ID-ja BJ4HAAB9B3) se je pojavil nekje v izhodu iz pkgutil.

Torej ustvarjanje paketa z absurdnim, a veljavnim imenom, kot je npr Zoom Video Communications, Inc. Developer ID Certification Authority Apple Root CA.pkg bi prevaral paketni preverjalnik, da bi našel "identitetne nize", ki jih je iskal.

Celotno ime paketa je prikazano v pkgutil izhodni naslov v prvi vrstici, kjer bi se Zoomov nesrečni »preverjevalnik« ujemal z vsemi tremi besedilnimi nizi v napačnem delu izpisa.

Tako bi lahko "varnostno" preverjanje trivialno obšli.

Delni popravek

Wardle pravi, da je Zoom sčasoma popravil to napako, več kot sedem mesecev po tem, ko jo je prijavil, pravočasno za DEF CON ...

… toda po namestitvi popravka je opazil, da v postopku posodobitve še vedno zeva luknja.

Posodobitelj je poskušal narediti pravo stvar:

  • 1. Premaknite preneseni paket v imenik v lasti root, in tako teoretično prepovedan za katerega koli običajnega uporabnika.
  • 2. Preverite kriptografski podpis prenesenega paketa, z uporabo uradnih API-jev, ne prek oznake za ujemanje besedila pkgutil Izhod.
  • 3. Razarhivirajte preneseno datoteko paketa, da bi preverili njegovo številko različice in preprečili napade na starejše različice.
  • 4. Namestite preneseno datoteko paketa, z uporabo korenskih pravic postopka samodejnega posodabljanja.

Na žalost, čeprav je bil imenik, uporabljen za shranjevanje posodobitvenega paketa, v lasti root-ja, v poskusu, da bi bil varen pred radovednimi uporabniki, ki poskušajo spodkopati posodobitveno datoteko, medtem ko se uporablja ...

... je na novo prenesena paketna datoteka ostala "svetovno zapisljiva" na svoji novi lokaciji (stranski učinek, da jo je prenesel običajni račun, ne root).

To je lokalnim napadalcem dalo vrzel za spreminjanje paketa posodobitev po njegov digitalni podpis je bil preverjen (2. korak), brez vpliva podrobnosti o preverjanju različice (3. korak), vendar tik pred namestitveni program je prevzel nadzor nad datoteko paketa, da bi jo obdelal s korenskimi pravicami (4. korak).

Ta vrsta hrošča je znana kot a dirkaško stanje, ker morajo napadalci časovno določiti čas za dokončanje tako, da pridejo domov tik preden se namestitveni program zažene, in morajo zato svoje zlonamerne spremembe prikriti tik pred njim.

Slišali boste tudi, da se ta vrsta ranljivosti omenja z eksotično zvenečo kratico TOCTOU, kratek za od časa preverjanja do časa uporabe, ime, ki je jasen opomnik, da če svoja dejstva preverite predaleč vnaprej, bodo morda že zastarela, ko se boste nanje zanesli.

Težava TOCTOU je razlog, zakaj podjetja za najem avtomobilov v Združenem kraljestvu ne zahtevajo več preprosto vpogleda v vaše vozniško dovoljenje, ki je bilo lahko izdano pred 10 leti in je bilo od takrat lahko začasno odvzeto ali preklicano zaradi različnih razlogov, najverjetneje zato, ker nevarne ali nezakonite vožnje z vaše strani. Skupaj s fizičnim dovoljenjem morate predložiti tudi enkratno alfanumerično kodo »dokazila o nedavni veljavnosti«, izdano v zadnjih 21 dneh, da zmanjšate potencialno vrzel v TOCTOU z 10 let na samo tri tedne.

Popravek je zdaj na voljo

Po mnenju Wardlea je Zoom zdaj preprečil to napako s spremembo pravic dostopa do datoteke paketa posodobitev, ki je bila kopirana v 1. koraku zgoraj.

Datoteka, ki se uporablja za preverjanje podpisa, preverjanje veljavnosti različice in končno namestitev na korenski ravni, je zdaj vedno omejena na dostop samo s korenskim računom.

To odstrani pogoj tekmovanja, ker nepriviligirani napadalec ne more spremeniti datoteke med koncem 2. koraka (preverjanje uspešno) in začetek koraka 4 (namestitev se začne).

Če želite spremeniti datoteko paketa in tako pretentati sistem, da vam omogoči korenski dostop, bi morali že imeti korenski dostop, tako da tovrstne napake EoP sploh ne bi potrebovali.

Težava TOCTOU ne pride v poštev, ker preverjanje v 2. koraku ostane veljavno, dokler se ne začne uporaba datoteke, pri čemer ni možnosti, da preverjanje postane neveljavno.

Kaj storiti?

Če uporabljate Zoom na Macu, odprite aplikacijo in nato v menijski vrstici pojdite na zoom.us > Check for Updates...

Če je na voljo posodobitev, bo prikazana nova različica in lahko kliknete [Install] za uporabo obližev:

Zoom for Mac patches get-root bug – update now! PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Različica, ki jo želite, je 5.11.5 (9788) ali pozneje.


Časovni žig:

Več od Gola varnost