CVE-2014-6271, czyli błąd w powłoce Bash

CVE-2014-6271, czyli błąd w powłoce Bash

    przez -
    19 831
    Konsola
    Hakerzy zajmujący się bezpieczeństwem odkryli poważny błąd w powłoce Bash – CVE-2014-6271, który według wielu osób może być groźniejszy, aniżeli podatność na atak Heartbleed. Krytyczna luka polega na tym, że w powłoce Bash możemy stworzyć zmienne środowiskowe ze specjalnie zmodyfikowanymi wartościami, przed wywołaniem głównej powłoki. Owe zmienne mogą zawierać kod, który wykona się w momencie uruchomienia powłoki. Nazwy stworzonych zmiennych nie mają znaczenia, ale ich zawartość już tak.

    Co jest podatne, a co nie:

    • ForceCommand są używane w konfiguracjach sshd, aby zapewnić ograniczone możliwości wykonywania komend dla zdalnych użytkowników. Owa podatność może zostać wykorzystana do przesłania spreparowanego polecenia
    • Serwer Apache wykorzystuje wtyczki mod_cgi lub mod_cgid, które są podatne, o ile skrypty CGI są napisane w Bashu lub wywołują podpowłoki.
    • Skrypty PHP uruchamiane z użyciem mod_php są w pełni bezpieczne
    • Klienty DHCP inicjują skrypty powłoki do konfiguracji systemu, z wartościami pobranymi od potencjalnie niebezpiecznych serwerów. Może to spowodować wykonanie losowych poleceń, jako użytkownik root na maszynie klienta DHCP
    • Wiele demonów systemowych i programów SUID może wykonywać skrypty powłoki ze zmiennymi środowiskowymi
    • Każda inna aplikacja, która posiada możliwość podpięcia się pod powłokę lub uruchomienia skryptu. Skrypty, które nie eksportują żadnej zmiennej, nie są podatne na ten błąd.

    Oto prosty przykład skryptu ze zmiennymi:

    $ env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
     vulnerable
     this is a test
    

    Firma Red Hat przygotowała już odpowiednią łatkę: Resolution for Bash Code Injection Vulnerability via Specially Crafted Environment Variables (CVE-2014-6271) in Red Hat Enterprise Linux, po instalacji której pojawi się poniższy wynik:

    $ env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
     bash: warning: x: ignoring function definition attempt
     bash: error importing function definition for `x'
     this is a test
    

    Powyższa poprawka dotyczy zarówno Red Hat Enteprise Linux, jaki i CentOS: [CentOS] Critical update for bash released today.

    Podobne artykuły

    Programowanie

    przez -
    14 5147
    Konsola

    przez -
    3 3146
    • lisek

      Botnet desktopowych linuksów się szykuje.

      Co do serwerów, to dużych padnie raczej mało, ale małych za to sporo.

      Pingwinek się wywyższał chodził z dziobkiem w górze, ale i tak został pożarty przez mądrego ssaka jakim jest zwykła, codzienna orka.

      • Mateusz

        mógłbyś nieco jaśniej? Jaki system operacyjny ma maskotkę orki?

      • Kris_30

        Orka dnia codziennego, oranie od świtu do zmierzchu ;-)

      • o_O

        Widać, że nie wiesz o czym mówisz.

        Jak niby ten błąd miałby posłużyć do włamania się na komputer z Linuksem, w szczególności desktopów?
        Wektory zdalnego ataku są mało prawdopodobne, na desktopie wręcz niemożliwe, a lokalne spreparowanie środowiska może odbyć się dopiero *po* uzyskaniu dostępu do shella:
        https://securityblog.redhat.com/2014/09/24/bash-specially-crafted-environment-variables-code-injection-attack/
        Błąd jest, ale niezbyt groźny w realnych okolicznościach.

        Botnety to miliardy komputerów z windows i trochę routerów z domyślnym hasłem admina. Takie są fakty. Wiem, że chciałbyś, żeby było inaczej. Niestety to nadal pozostanie w sferze twojej prywatnej odrealnionej rzeczywistości. Niestety windows nadal pozostanie najbardziej gównianym systemem na świecie. Przykro mi.

        Jednym słowem: bredzisz.

      • Kris_30

        Może i Windows pozostanie systemem jakim mówisz, ale to Windows czasem zawiera narzędzia, pozwalające zarabiać pieniążki ;-) Chyba, że dla kogoś jego pensja nie ma znaczenia ;-)

        Przykłady z życia – bratowa prowadzi firmę i korzysta z pakietów jej znanych, dostępnych tylko na Windows (Enova, Atomi). Znajomy inżynier, pracuje teraz nad jedną budową w Poznaniu – kreśli w AutoCAD’ie.

        Może i używają Windows, ale pozwala im to zarobić pieniądze, a co sobie ktoś myśli o Win to jego sprawa ;-) Przebij kwestię biznesową jeśli chodzi o soft codziennego użytku w tym biznesowego, a przyznam rację, że Windowsa można zakopać na wieki ;-)

      • Diw

        Wpis jakich tysiące na portalach. Twoja bratowa korzysta z programów jakie zna i nie chce się nauczyć innych jej wola i prawo ale można się zapoznać z propozycją np. od firmy LeftHand. Znajomy inżynier może zamiast AutoCAD używać BricsCAD i tu gwarantuje efekt będzie identyczny a koszta licencji 1/3 niższe a jeśli ta budowa jest mała bądź nieskomplikowana (dedukuje z postu, że pracuje sam co raczej sugeruje jakiś nieduży obiekt, jeśli się mylę to z góry przepraszam) może to zrobić w DraftSight korzyści będą jeszcze większe (wprawdzie do ściągnięcia na Linuxa jest tylko wersja beta ale życzył bym sobie żeby wszystkie programy były tak niestabilne! jak ten :)) ewentualnie można użyć QCADA (tutaj proszę bez śmiechów sam osobiście przytarłem nosa kilku “mistrzą AutoCad-a”. Kończąc błędem jest uważanie, że na obecnym czasy da się całkowicie zastąpić Windowsa, ale również jest dużym nadużyciem mówić, że na Linux-sie nie da się zarabiać.

      • Kris_30

        Wytłumacz firmie, aby zakupiła Bricsa, przy okazji nie paraliżując pracy inżynierów przechodzeniem na inne oprogramowanie – to nie jest hop siup szczególnie, że Brics wcale tak cudownie nie czyta plików ACada. To są realne pieniądze i budowy obliczone do minimetra wraz z sieciami prądowymi i wodnymi, a nie ideologizmy czy przesiadka użytkownika domowego. To nie działa tak na wyższym szczeblu Budowa jest skomplikowana, na zlecenie miejskiego ZTM (budowana była cała zajezdnia tramwajowa od zera, czyli pustej działki). Używanie AutoCADA to wymóg odgórny – dostajesz służbowego laptopa i pracuj, albo…

        LeftHand z drugiej strony też kosztuje pieniądze. Nie jest drogi, ale za darmo go nie rozdają. W dodatku odpowiednika Atomi (AgmarSoft) – no nie znajdziesz pod Linuksa. Przenieść bazy danych z Enovy to też nie hop siup, łącznie z czasem na naukę nowego softu. Migracje na nowe oprogramowanie najlepiej robi się, startując jeszcze przed wszystkim od zera. Przenieść się z gotowca już z całą działającą infrastrukturą – jest zawsze gorzej.

        Linux może służyć jak najbardziej do pracy, sam w pracy mam same Linuksy (no nie do końca – 3 maszyny są na Windows). Sam od lat pracuję na Linuksie i w swej karierze poznałem też wiele firm, które wykorzystują Open Source do zarabiania pieniędzy. Niemniej pewnych kwestii oprogramowania na Linuksie na razie nie przeskoczysz, więc argumenty, że Windows to najgorszy OS, badziewie itd są też na wyrost – ideologia ideologią, ale na rachunki zarobić trzeba, a Win często i czasami jedynie pozwala to osiągnąć.

      • M.C.

        Porównajmy system operacyjny do człowieka:
        Ilość pieniędzy nie jest cechą charakteru
        Tak samo
        Ilość dostępnego oprogramowania nie jest cechą systemu :P

      • Jakub Konieczny

        Czasem zawiera, a czasami ich nie zawiera? Głupie sformułowanie.

        To że soft jest wydawany na jakiś konkretny OS nie znaczy że jest lepszy i bezpieczniejszy, tylko popularniejszy i powszechniejszy. A przez to że tylko na ten OS jest ten soft robiony, staje się on coraz powszechniejszy. Błędne koło przez które konkurencyjne OSy nie mogą się wybić.

        Ja w firmie zarabiam używając tylko i wyłącznie wolnego oprogramowania. Można? Można.

      • o_O to kretyn

        Poczytaj kretynie komentarze na niebezpiecznik.pl. Należy się znać na jakieś dziedzinie, aby potem komentować, ale taki imbecyl jak ty tego nie rozumie.

    • Roman

      Bo bash jest lewacki! I nie napisali go w pełni obiektowym c++.

      • o-o

        raz sierpem, raz młotem … :D:D:D

      • o_O

        Słusznie. Znajomość tego szczytnego hasła to już połowa sukcesu.

      • Juzek

        Bo bash stał tam, gdzie zomo :P

      • o_O

        Bash nie jest lewacki, bo do poziomu robactwa zniżają się ludzie, a nie programy.
        Shell nie wymaga obiektowości, więc nie potrzeba C++. C to świetny język, tam gdzie jego zastosowanie jest uzasadnione.

    • Pingback: CentOS 5.11z łatkami na błąd CVE-2014-6271 | OSWorld.pl()

    • Pingback: IPFire 2.15 Core 84 | OSWorld.pl()

    • Pingback: Podsumowanie roku 2014 w Open Source()