06 listopada 2010
Dlaczego w obcej sieci nie należy pobierać aktualizacji?
sobota, listopada 06, 2010 | Autor:
\m/ojtek

Aktualizacje oprogramowania możemy podzielić na automatyczne (wykonywane bez jakiejkolwiek interwencji użytkownika), pół automatyczne (użytkownik zostaje powiadomiony o dostępności aktualizacji, jednak w celu jej zainstalowania musi podjąć jakąś akcję) oraz ręczne (użytkownik musi podjąć jakąś akcję w celu sprawdzenia dostępności aktualizacji.). Niezależnie od stopnia automatyzacji procesu aktualizacji, sprowadza się on zazwyczaj do sprawdzenia w Internecie odpowiedniego pliku informacyjnego (np. http://updateserver.com/update.xml), z którego to aplikacja może się dowiedzieć o tym, jaka jest aktualna wersja oprogramowania oraz jaka jest lokacja dostępnych plików aktualizacyjnych. Często proces przesyłu pliku informacyjnego nie jest szyfrowany (przesył z wykorzystaniem HTTP) lub w jakikolwiek inny sposób zabezpieczony (np. za pomocą cyfrowych podpisów). Jeśli więc intruzowi uda się (np. za pomocą technik: DNS spoofing, DNS cache poisoning, uruchomienia własnego złośliwego serwera DNS, itp.) skierować aplikację na własny, fałszywy serwer aktualizacji, to będzie on w stanie zainstalować w docelowym systemie praktycznie dowolny, własny kod.
Nawet jeśli proces aktualizacji jest zabezpieczony za pomocą protokołu SSL, nie oznacza to pełnego bezpieczeństwa. Znane są przypadki, że klient procesu aktualizacji i tak nie weryfikuje poprawnie certyfikatu serwera, wobec czego nadal możliwe jest podstawienie fałszywego serwera przez intruza. Podpisywanie pakietów aktualizacyjnych również nie zapewnia pełnego bezpieczeństwa. W takim przypadku wystarczy przykładowo, że intruz zamiast najnowszej wersji oprogramowania, przekaże poprzez fałszywy serwer jego bardzo stare (czyli zawierające wiele znanych luk) wydanie. Aplikacja przyjmie taki pakiet, ponieważ będzie on podpisany jak najbardziej prawidłowym certyfikatem producenta oprogramowania. Podsumowując, proces instalowania fałszywych aktualizacji w systemie ofiary wygląda więc zazwyczaj następująco:
- aplikacja lub jej użytkownik rozpoczyna proces aktualizacji,
- aplikacja z pomocą serwera DNS rozwiązuje nazwę domeny (np. updateserver.com), która wg jej wiedzy przechowuje plik informacji o aktualizacjach (np. http://updateserver.com/update.xml),
- intruz przy pomocy technik zaburzania pracy systemu DNS przekazuje aplikacji jako adres IP serwera aktualizacji adres własnego, fałszywego serwera,
- aplikacja pobiera i przetwarza fałszywy plik informacji o aktualizacjach (http://adres_IP_intruza/update.xml),
- aplikacja stwierdza dostępność aktualizacji, pobiera wskazaną (fałszywą) aktualizację i rozpoczyna proces instalacji kodu dostarczonego przez intruza.
W lipcu 2008 roku Francisco Amato, specjalista związany z grupą InfoByte opublikował narzędzie ISR-evilgrade v1.0.0. Evilgrade pozwala na wykorzystanie słabo zabezpieczonych mechanizmów aktualizacji wielu aplikacji w celu instalacji w docelowym systemie dowolnego, własnego kodu, z wykorzystaniem fałszywego serwera aktualizacji. Narzędzie to w ostatnim czacie doczekało się wydania 2.0.0 i przy tej okazji warto zapoznać się z jego interesującymi możliwościami. Evilgrade pozwala potencjalnemu intruzowi na wykorzystanie procesów aktualizacyjnych w ponad 60 popularnych aplikacjach. Spójrzmy na praktyczny przykład całkowitego przejęcia kontroli nad docelowym systemem Windows za pomocą procesu aktualizacyjnego Javy:
W praktyce intruz musiał więc tylko uruchomić fałszywy serwer aktualizacji Javy, za pomocą uruchomienia odpowiedniego modułu Evilgrade'a. Następnie musiał już tylko przekonać ofiarę, że serwer (javadl-esd.sun.com) z którego Java pobiera aktualizacje znajduje się pod lokalnym adresem IP systemu, na którym pracuje Evilgrade. Możliwe jest to przykładowo w wyniku zastosowania lokalnego specjalnie spreparowanego serwera DNS, który będzie poszczególnym stacjom w sieci LAN podsuwany za pomocą serwera DHCP lub za pomocą dowolnego innego ataku zdolnego do wpływania na usługę DNS. Ręczne lub automatyczne sprawdzenie dostępności nowej wersji Javy spowoduje w takich warunkach nawiązanie kontaktu z fałszywym serwerem aktualizacji, który powiadomi klienta o dostępności rzekomej bardzo ważnej aktualizacji. Zainstalowanie fałszywej aktualizacji spowoduje wprowadzenie do systemu ofiary dowolnego kodu zdefiniowanego przez intruza.
Co ciekawe, proces aktualizacji Javy został zabezpieczony w taki sposób, że możliwe jest jedynie wykonanie plików wykonywalnych podpisanych odpowiednim certyfikatem. Okazuje się jednak, że zabezpieczenie to można łatwo obejść, podsuwając na początek plik Java Web Start (javaws.exe) z argumentami pozwalającymi na pobranie i zainstalowanie kolejnego, tym razem dowolnego programu! Poszczególne programy aktualizacyjne są więc podatne na powyższy typ ataków albo w wyniku niestosowania żadnych zabezpieczeń, albo tak jak to ma miejsce w przypadku Javy, w wyniku stosowania zabezpieczeń łatwych do obejścia.
Podsumowując powyższy przykład, należy przede wszystkim zapamiętać, że wykonywanie jakichkolwiek czynności administracyjnych, w tym pobieranie aktualizacji jakiegokolwiek oprogramowania powinno się odbywać wyłącznie w środowisku znanej nam, bezpiecznej sieci komputerowej. Oczywiście sama zasada przeprowadzanie tego typu ataków jest już znana od lat, niemniej jednak dopiero narzędzia takie jak Evilgrade pozwalają każdemu na bliższe zapoznanie się zagrożeniami oraz przeprowadzanie praktycznych ataków testowych. Warto również podkreślić, że ataki na procesy aktualizacyjne są praktycznie niezależne od docelowej platformy. W podobny sposób można wprowadzić dowolny kod do innych systemów operacyjnych niż Windows. Jedyne co musi w tym celu zrobić potencjalny intruz, to dobranie odpowiedniego kodu transmitowanego pod postacią rzekomej aktualizacji.
Komentarze (6)

Sortuj po: Data Ocena Ostatnia Aktywność
Wczytywanie komentarzy...
Wyślij nowy komentarz
Comments by IntenseDebate
Odpowiedz jako Gość, lub zaloguj się:
WróćPołączony jako (Wyloguj się)
Nie wyświetla się publicznie.
Publikowanie anonimowe.
Dlaczego w obcej sieci nie należy pobierać aktualizacji?
2010-11-06T14:19:00+01:00
\m/ojtek
Bezpieczeństwo aplikacji|Bezpieczeństwo sieci komputerowych|Bezpieczeństwo systemów operacyjnych|Narzędzia|Obrona - Atak|
Subskrybuj:
Komentarze do posta (Atom)
Wyszukaj w HCSL:
Subskrybuj:
Najpopularniejsze artykuły wszech czasów:
- Urządzenia do kopiowania kart płatniczych
- Co tak naprawdę ujawniasz w Internecie?
- Dlaczego należy zasłaniać klawiaturę bankomatu?
- Publiczna wiadomość z ukrytym przekazem
- Przyszłość antywirusów jest jasna
- Sposób na obejście internetowych blokad
- Superbezpieczne hasła na... żółtej karteczce
- Funkcje sprzętowego kasowania danych w HDD!
- 12-latek odkrył krytyczną lukę w Firefoksie
- Przestępstwo nie popłaca
- Czy jesteśmy inwigilowani przez chiński sprzęt?
- Gotowy zestaw do podsłuchiwania GSM
- Jak działa internetowa mafia?
- Uwaga na nowy rodzaj ataków phishingowych!
- Microsoftowy poradnik dla organów ścigania!
- Polski super-bezpieczny system Qubes OS
- Dane wieczyście dostępne
- Pierwszy atak samochodowych crackerów
- Pliki PDF zdolne do wykonania dowolnego kodu
- Polskie służby współpracują z firmą Google?
- Więzienie za odmowę ujawnienia hasła
- Podrzucanie dziecięcej pornografii
- Zapomniany film o hakerach
- Łamanie haseł w Windows Vista i 7
Anonim · 751 tygodni temu
\m/ojtek 84p · 751 tygodni temu
Borubar · 751 tygodni temu
Jedynie windows daje programom użytkowym możliwość modyfikowania samych siebie - wszędzie indziej aktualizacje są przeprowadzane w sposób scentralizowany.
tbhthelolmaker 10p · 747 tygodni temu
Anonim · 751 tygodni temu
Ale sądzę, że atak poprzez aktualizacje repozytorium nie będzie prosty, choćby dlatego, że:
-Wszystko jest podpisywane
-Każda dystrybucja Linux ma kilka-kilkanaście własnych repozytorium (czyli, trzeba przygotować np. 40 fake repo).
\m/ojtek 84p · 751 tygodni temu