Video: Customizing Terminal Mac and Linux (November 2024)
Napaka, ki so jo odkrili v Bashu, široko uporabljenem tolmaču ukazov, predstavlja kritično varnostno tveganje za sisteme Unix in Linux, so povedali varnostni strokovnjaki. In če vas ne bi zamikalo, da bi težavo zavrnili kot samo težavo s strežnikom, ne pozabite, da Mac OS X uporablja Bash. Mnogi strokovnjaki opozarjajo, da je morda slabše od Heartbleeda.
Ranljivost je prisotna v večini različic Bash-a, od različice 1.13 do 4.3, pravi Stephane Chazelas, skrbnik omrežja Unix in Linux in telekomunikacijski skrbnik pri Akamai, ki je prvi razkril napako. Računalniška ekipa za odzivanje v sili (CERT) na ministrstvu za domovinsko varnost je z opozorilom opozorila, da lahko ranljivost, če se izkoristi, oddaljenemu hekerju omogoči izvajanje zlonamerne kode v prizadetem sistemu. Podatkovna zbirka ranljivosti NIST je hrošča ocenila 10 od 10 glede na resnost.
"Ta ranljivost je potencialno zelo velika, " je dejal Tod Beardsley, inženirski vodja pri Rapid7.
Ranljivost je povezana s tem, kako Bash obravnava spremenljivke okolja. Pri dodelitvi funkcije spremenljivki se izvede tudi vsa dodatna koda v definiciji. Vse, kar mora napadalec storiti, je nekako dodati tej vrsti ukazov - klasični napad z vstavljanjem kode - in lahko bodo prizadeti stroj na daljavo ugrabili. Chazelas in drugi raziskovalci, ki so pregledali pomanjkljivost, so potrdili, da je zlahka uporabna, če se koda vbrizga v spremenljivke okolja, kot so funkcija ForceCommand v OpenSSH sshd, mod_cgi in mod_cgid moduli v strežniku Apache HTTP ali skripte, ki nastavijo okolje za stranke DHCP.
"Veliko število programov v Linuxu in drugih sistemih UNIX uporablja Bash za nastavitev spremenljivk okolja, ki se nato uporabljajo med izvajanjem drugih programov, " je v blogu zapisal Jim Reavis, glavni izvršni direktor Cloud Security Alliance.
Neizogibna primerjava srca
Upoštevajte dve stvari glede te ranljivosti: strežniki Linux / Unix se pogosto uporabljajo v podatkovnih centrih po vsem svetu in vgrajenih v mnogih napravah; ranljivost je prisotna že leta. Ker je Bash tako razširjen, je v primerjavi s Heartbleedom ranljivost OpenSSH, ki so jo odkrili aprila, neizogibna. Robert Graham iz podjetja Errata Security je napako ShellShocka že poimenoval.
A je Heartbleed 2? Malo je težko povedati. To je vsekakor resno vprašanje, saj daje napadalcem dostop do ukazne lupine, kar je zlata vozovnica, da lahko na tem stroju počnejo karkoli hočejo.
Razmislimo glede na velikost. Spletni strežniki Apache napajajo ogromno večino spletnih mest na svetu. Kot smo izvedeli med Heartbleedom, obstaja veliko strojev, ki niso Linux / Unix in uporabljajo OpenSSH in Telnet. DHCP je ključnega pomena za lažje preskakovanje omrežij in izklop. To pomeni, da je poleg računalnikov in strežnikov možno, da so za ugrabitev izpostavljeni tudi drugi vgrajeni sistemi, na primer usmerjevalniki. Graham Errata Security-a, ki je doslej opravil najglobljo analizo napake, je opravil nekaj pregledov in zlahka našel nekaj tisoč ranljivih strežnikov, vendar je v tem trenutku malo težko oceniti obseg težave.
Vendar je bila pomanjkljivost Heartbleed prisotna samo z namestitvijo ranljive različice OpenSSL. Ta hrošč ni tako preprost.
"Ni tako preprosto" kot "voditi Bash-a, " je dejal Beardsley. Da bi bil stroj ranljiv za napad, mora obstajati aplikacija (na primer Apache), ki vnese uporabniški vnos (kot glava User-Agent) in ga da v spremenljivko okolja (kar počnejo skripti CGI), je dejal. Sodobni spletni okviri na splošno ne bodo vplivali, je dejal.
Graham je dejal, da je ShellShock tako hud kot Heartbleed "malo hiti in odpraviti tega hrošča. Vaši primarni strežniki verjetno niso ranljivi za to napako."
Preden pa se čudimo glede usmerjevalnikov in vgrajenih naprav (in interneta stvari), ne pozabite, da Bash ne uporabljajo vsi sistemi. Ubuntu in drugi sistemi, ki izhajajo iz Debiana, lahko uporabljajo drugačni ukazni tolmač, imenovan Dash. Vgrajene naprave pogosto uporabljajo eno, imenovano BusyBox, ki ni ranljiva, je na Twitterju dejal Roel Schouwenberg, višji raziskovalec iz laboratorija Kaspersky.
Ranljiv ali ne?
Če preverite, ali ste ranljivi, lahko preverite tako, da zaženete naslednje ukaze (koda, ki jo zagotavlja CSA). Odprite okno terminala in v pozivu $ vnesite naslednji ukaz:
env x = '() {:;}; echo ranljiv 'bash -c "echo to je test"
Če ste ranljivi, bo tiskal:
ranljivi
to je preizkus
Če ste posodobili Bash, boste videli samo:
to je preizkus
Običajno bi rekel, da greš takoj in se popravi takoj, vendar se izkaže, da razpoložljivi obliži niso popolni. Še vedno obstajajo načini za vbrizgavanje ukazov prek spremenljivk okolja, tudi po popravilu Basha, je danes zjutraj dejal Red Hat. Če imate le peščico strojev, bo morda vredno iti naprej in uporabiti razpoložljive popravke, če pa imate na tisoče strojev za popravilo, je morda vredno počakati še nekaj ur. Vse distribucije Linuxa navzgor (in upam, Apple!) Trenutno rešujejo težave.
"Ne pozabite, tudi če še nikoli niste slišali za Bash ali ga ne zaženete, v računalniku morda imate nameščeno programsko opremo, ki sproži Bashove procese, " je dejal neodvisni varnostni svetovalec Graham Cluley.