ShellShock: atak wykorzystujący lukę w Bashu zagraża milionom (aktualizacja)
Bash jest domyślną powłoką systemową w systemie OS X, a wpraktyce także i na Linuksie (trudno znaleźć dystrybucję, któradomyślnie stosowałaby powłoki tcsh, zsh czy inne). Skalazagrożenia, z jakim wiąże się właśnie odkryty w tej powłocebłąd, jest bardzo duża, tym bardziej, że z basha w sposóbniewidoczny dla użytkownika korzystają liczne inne komponentysystemowe.
25.09.2014 | aktual.: 26.09.2014 10:41
Odkrywcą luki, która otrzymała wdzięczną nazwę ShellShock jest francuski haker Stephane Schazelas. Jakpoinformował w biuletynie CVE-2014-6271,GNU Bash w wersjach do 4.3 włącznie błędnie przetwarza zmienneśrodowiskowe przekazane przez system lub program wywołujący skryptpowłoki. Jeśli bash jest domyślną powłoką systemu (a tak jestniemal zawsze), może zostać wykorzystany przez zdalnego napastnikado uruchomienia własnego kodu poprzez wywołania HTTP, połączeniaSSH, sesje telnetowe i inne programy, np. takie jak system wydrukuCUPS czy klienty DHCP. Bazuje on na mało znanej funkcji, pozwalającej skryptom na eksportowanie definicji funkcji na powłoki potomne. Odpowiednio sformatowane zmienne środowiskowe, zaczynające się od ciągu "() {" zostaną przekazane do parsera przed wywołaniem głównego programu.
Znaczenie zagrożenia w dużym stopniu bierze się stąd, że bashtak naprawdę wcale nie jest tylko lokalną powłoką systemową. Naprzykład serwer Apache wykorzystuje basha do wykonywania skryptówCGI, tak więc odpowiednio spreparowane wywołanie HTTP możeuruchomić na serwerze obcy kod. Można też przygotować złośliwyserwer DHCP, który będzie łączącym się z nim Makom czykomputerom działającym pod kontrolą Linuksa podawał wykonywalnyskrypt. Drogę do ataku otwiera nawet polecenie ForceCommand wOpenSSH, pozwalające na zdalne wykonanie kodu w ograniczonychśrodowiskach, używanych np. przez niektóre systemy Git czySubversion.
Zespół bezpieczeństwa RedHata podaje, że podatność naszegosystemu na zagrożenie możemy sprawdzić poleceniem
env x='() { :;}; echo vulnerable' bash -c "echo this is atest"
Jeśli otrzymamy w odpowiedzi komunikat vulnerable this is atest, nasz komputer może zostać w ten sposób zaatakowany.
Łatka została przygotowana przez opiekuna basha, a następnie wydana jako aktualizacja RHEL-a, CentOS-a iFedory, OpenSUSE, Debiana i Ubuntu. Niestety nie rozwiązuje ona samego problemu, a jedynie blokuje pojawiające się efekty uboczne.
Niestety Apple nieprzygotowało jeszcze poprawionej wersji basha – wszystkie Makipracujące pod kontrolą najnowszego OS X 10.9.4 w czasieopublikowania tego newsa były podatne na atak.
W Sieci tymczasem znaleziono już pierwsze gotowe exploity ShellShocka. Jak twierdzi badacz Robert Graham, pierwszy przeprowadzony przez niego skan pod kątem podatności na atak zdołał zidentyfikować tysiące podatnych hostów, tylko na samym porcie 80. Jest ich prawdopodobnie o wiele więcej, gdyż jego skaner w pewnym momencie się zawiesił. Graham poinformował też, że ktoś wykorzystuje obecnie szybki skaner portów masscan, by zidentyfikować podatne maszyny. Najbliższe godziny w Sieci mogą być ciekawe.
Polecamy też Waszej uwadze dwie usługi, pozwalające sprawdzić odporność serwerów czy hostowanych na nich stron internetowych na atak. Strona CCSIR pozwala wysłać specjalnie spreparowany nagłówek, wywołujący reakcję w podatnym serwerze, zaś narzędzie Brandona Pottera sprawdza możliwość zdalnego uruchomienia poleceń wget i curl.