Shellshocki logo
***Shellshock***, tuntud ka kui *Bashdoor*, on *UNIX*-i käsureaprotsessori *Bash*-i turvaauk, mille avastas Stéphane Chazelas. Turvaauk võimaldab meelevaldse koodi täitmist ning seeläbi on ründajal võimalik saada täielik kontroll haavatava arvuti üle. Turvaaugu ekspluateerimiseks pole ründajal vaja mingeid arvestatavaid eelteadmiseid ega oskuseid. Seetõttu suutsid ründajad vaid tunde pärast turvaaugu avaldamist seda ekspluateerida luues robotvõrke(Ingl k. botnet), mis koosnesid haavatavatest arvutitest ning teostasid teenusetõkestamise ründeid või skaneerisid teisi haavatavaid masinaid.

Laiemale avalikkusele tehti turvaauk teatavaks 24. septembril 2014 ning koos sellega tehti kättesaadavaks ka paik(Ingl k. patch). Levinud turvariskide ja haavatavuste nimekirjas viitab esimesena antud turvaaugule identifikaator CVE-2014-6271 ja lisaks teised hiljem avastatud turvaaugud CVE-2014-6277, CVE-2014-6278, CVE-2014-7169, CVE-2014-7186, CVE-2014-7187.

Turvaaugu kirjeldus
-------------------

Käesolev programmiviga põhjustab Bash-i tahtmatult käivitama käske, kui käsud on aheldatud funktsiooni definitsioonide lõppu, mis asuvad keskkonnamuutujate välja sisus. Näiteks järgneva käsu näitel:   

**$ env variable=’() { :; }; /bin/eject’**   

Annab *"env"* märku, et tegemist on keskkonnamuutujaga ning funktsiooni definitsioonile järgnev käsk *"/bin/eject"*, mis antud juhul on lihtne käsk avada CD või DVD lugeja, täidetakse. Täidetava käsu saab ründaja asendada muidugi talle meelepärasega.  

Suureks ohuks on antud turvaauk veebiserveritele, mis kasutavad *Bash*-i, sest lisaks andmetele on ründajal võimalik saada kontroll ka veebiserveri enda üle, mis omakorda võimaldab ründajal teoreetiliselt võtta oma kontrolli alla antud võrguga ühendatud arvutid. Valdav enamus tuvastatud rünnakutest kasutas [üldist lüüsliidest], mis määrab ära selle, kuidas veebiserver edastab kasutaja nõude antud veebiserveris jooksvale programmile töötlemiseks ning võtab vastu töötlemistulemuse, mis saadetakse tagasi kasutajale.

Haavatavuse kontrollimine ja parandamine
----------------------------------------

Kõigil *Bash*-i kasutavatel masinatel saab diagnoosida turvaaugu suhtes haavatavust järgmise käsuga:

  

**export VULNCHECK='() { :; }; echo You are still vulnerable'; bash**

  

Kui antud masin on haavatav kuvatakase järgnev sõnum:

  

**"You are still vulnerable"**

  

Süsteem, milles kasutatav *Bash*-i versioon sisaldab paika antud turvaaugu vastu, kuvab järgmised kaks veateadet:

  

**bash: warning: VULNCHECK: ignoring function defintion attempt**  

**bash: error importing function definition for `VULNCHECK**

  

Haavatavuse peamiseks põhjuseks on *Bash*-i vigane sõne "() { :; };" interpreteerimine. Turvaaugu parandamiseks loodi *Bash*-i lähtekooodi kaks uut lippu *SEVAL\_FUNCDEF* ja *SEVAL\_ONECMD*, millest esimese ülesandeks on lubada ainult funktsiooni definitsiooni ja teisel ainult ühte käsku. Seejärel lisati olemasolevale meetodile *parse\_and\_execute* võime kontrollida antud lippe.

Süsteemi haavatavuse korral antud turvaaugu poolt tuleks uuendada *Bash*-i (versioon 4.4 või uuem), et tagada süsteemi turvalisus.

Viited
------

1. ↑  Seltzer, Larry. "Shellshock makes Heartbleed look insignificant". ZDNet. 29.09.2014. Vaadatud 29.01.2020
2. 1 2  Bash vulnerability affecting web servers and many other services. Detectify labs. 2014. Vaadatud 28.01.2020.
3. ↑  Vulnerability Details : CVE-2014-6271.  Vaadatud 29.01.2020
4. ↑  J. ​Graham-Cumming​. ​Inside Shellshock: How hackers are using it to exploit systems. Cloudflare. 2014.  Vaadatud 29.01.2020
5. ↑  "Bash specially-crafted environment variables code injection attack". Red Hat Security. Vaadatud 29.01.2020
6. ↑  Where is Bash Shellshock vulnerability in source code? Information Security. 2015. Vaadatud 30.01.2020
7. ↑  CVE-2014-6271 Detail.  Vaadatud 29.01.2020