7 grzechów głównych programistów

Czy na sali obecny jest generalny adwokat USA Ashcroft? W takim razie nic nie powiem” – w szeregach zgromadzonych hakerów słychać śmiech. Szpakowaty jegomość rozbawiający publiczność to nikt inny, tylko Robert Morris, autor legendarnego robaka internetowego Morris – pradziadka Blastera. Nic dziwnego, że niektóre urzędy nie darzą programisty szczególną sympatią.

Morris jest jednym z wielu gości specjalnych. Na DefCon 12 są wszyscy: hakerzy, firmy produkujące zabezpieczenia, amerykański wymiar sprawiedliwości, a pomiędzy nimi my, kilku reporterów z CHIP-a. Członkowie poszczególnych obozów nie obawiają się jednak wzajemnych kontaktów. Wszystkich zwabiły tutaj zapowiedzi przedstawienia najnowszych, nikomu jeszcze nieznanych luk w zabezpieczeniach systemów informatycznych.

Przyszłość bezpieczeństwa IT nie maluje się niestety w różowych barwach. W tym przekonaniu utwierdziły nas liczne rozmowy z hakerami i wypowiedzi ekspertów. Doszliśmy do wniosku, że twórcy wirusów i hakerzy najczęś-ciej wykorzystują kilka podstawowych słabości systemów i aplikacji. Można je uznać za siedem grzechów głównych popełnianych przez programistów tworzących systemy operacyjne Windows i aplikacje dla nich.

1. Błędne założenia: Shatter Attack

“Windows ma duży problem ze swoją architekturą, której Microsoft nie może już poprawić” – twierdzi Brett Moore. Szczupły, wysoki, młody człowiek uznawany jest w kręgach hakerskich za eksperta w tej dziedzinie. Na DefConie zaprezentował on nowe metody przeprowadzania ataku typu Shatter Attack.

Każda aplikacja Windows czeka na dane wejściowe, które następnie przetwarza. Przekazywanie danych odbywa się za pośrednictwem tzw. komunikatów (messages), którymi zarządza Windows i kieruje je do odpowiednich aplikacji. Programy w Windows są całkowicie kontrolowane przez komunikaty, których źródłem są tzw. zdarzenia. Kiedy zostanie naciśnięty klawisz, powiadamiane o tym jest aktywne okno. Kiedy system zdecyduje, że aplikacja potrzebuje odświeżyć okno, wysyłany jest komunikat do aplikacji. Problem polega na tym, że w Okna nie wbudowano żadnych mechanizmów pozwalających na sprawdzenie nadawcy powiadomień. Dzięki temu haker może wykorzystać odpowiednio spreparowany komunikat do zmodyfikowania procedury obsługi błędów, wprowadzając w ten sposób konia trojańskiego do pamięci programu. Następnie wystarczy doprowadzić do awarii aplikacji. Wtedy zamiast wywołania odpowiedniej procedury obsługi błędów uruchamiany jest koń trojański. Oznacza to, że nawet użytkownik z uprawnieniami gościa będzie mógł zamykać programy, dodawać dowolne informacje, a w najgorszym wypadku nawet zwiększyć swoje uprawnienia.

Mechanizm tego rodzaju ataku znany jest od 2002 roku, lecz Microsoft wciąż nie zabezpieczył przed nim w pełni swojego systemu. Jeszcze niedawno można było w opisywany sposób “złamać” aplikację Menedżer narzędzi. Program ten standardowo instalowany jest na każdym komputerze Windows XP i 2000 i dysponuje uprawnieniami systemu. Menedżer służy do zarządzania lupą i innymi ułatwieniami dostępu. Shatter Attack rozpoczynamy od wysłania do aplikacji kodu klawisza [F1]. Ponieważ nie wiadomo, o pomoc do którego elementu nam chodzi, aplikacja nie może znaleźć odpowiedniego pliku pomocy i prosi użytkownika o odszukanie właściwego pliku. Program nie sprawdza jednak, czy rzeczywiście wskazujemy plik HLP, i pozwala nam wybrać dowolny zbiór. Wobec tego zamiast właściwego pliku UManDlg.HLP możemy uruchomić interpreter poleceń cmd.exe. W Windows XP (z zainstalowanym dodatkiem Support Tools) po wydaniu w oknie interpretera polecenia whoami przekonamy się, że jesteśmy rozpoznawani jako użytkownik SYSTEM, co znaczy, że mamy najwyższe prawa.

Celem każdego “włamywacza” jest uzyskanie uprawnień administratora (roota) lub systemu operacyjnego. Wtedy ma on wolne ręce i może bez przeszkód instalować konie trojańskie albo wirusy, wykradać dane albo kasować dowolne pliki w komputerze.

Na szczęście Microsoft opublikował aktualizację, która nie pozwala Menedżerowi narzędzi otwierać dowolnego pliku. Jednak niebezpieczeństwo nadal pozostaje, ponieważ dla hakerów równie interesującym obiektem ataków są zapory ogniowe, skanery antywirusowe i usługi sieciowe. Najczęściej działają one z uprawnieniami systemu albo administratora i często zawierają bardzo podobne luki – z przekonaniem twierdzi Brett Moore.

Dzięki słabościom tkwiącym w strukturze systemu operacyjnego również usługi sieciowe działające z ograniczonymi uprawnieniami systemowymi są atrakcyjnym celem dla hakerów. Przykładem jest choćby usługa Zdalnego wywoływania procedur (RPC). Jeszcze do niedawna haker z ograniczonym dostępem do systemu, stosując Shatter Atack, mógł za jej pośrednictwem zwiększyć swoje uprawnienia.

Tymczasem Microsoft stara się uciec od odpowiedzialności. Już we wrześniu 2002 roku potentat software’owy oświadczył, że winy za taki stan rzeczy nie ponosi Windows, a inni producenci oprogramowania, którzy piszą aplikacje, nie uwzględniając wymagań bezpieczeństwa. Przykład Menedżera narzędzi świadczy jednak o tym, że sam Microsoft również nie zawsze programuje w bezpieczny sposób. A dowodem na to, że można inaczej, jest chociażby linuksowy system X Window.

info: http://security.tombom.co.uk/shatter.html

Spotkanie hakerów
Lista uczestników zjazdu jest swoistym “Who-is-Who”
środowiska hakerskiego. Na DefConie, największej
na świecie konferencji hakerów, znaleźli się
programiści, przedstawiciele firm oferujących
zabezpieczenia i administratorzy. W trakcie
prezentacji, czasami w zamkniętym gronie,
wymieniali się swoją wiedzą na temat luk w
zabezpieczeniach i metod ataków. Nic dziwnego,
że nawet służby specjalne i firmy takie jak
Microsoft przysłały tu swoich przedstawicieli.

Więcej:bezcatnews