760 luk bezpieczeństwa w twoim sofcie

Czy była to wina Microsoftu, Apple’a, Adobe’a, czy Mozilli? Kiedy zajmująca się bezpieczeństwem systemów IT firma Acros rozsławiła w ubiegłym roku lukę DLL, nie od razu było wiadomo, czy pojawiła się ona najpierw w Windows, czy też
Ten system jest dziurawy!
Ten system jest dziurawy!

w programach użytkowych. A dotkniętych nią było wiele znanych aplikacji: iTunes, Firefox, Photoshop, VLC Media Player, a nawet takie tuzy jak pakiet Office czy PowerPoint Microsoftu – i dziesiątki innych. Jednak sama luka nie była wtedy niczym nowym – już przed trzynastu laty amerykańska organizacja NSA (National Security Agency) ostrzegała, że funkcja LoadLibrary, odpowiedzialna w Windows za szukanie plików DLL bez dokładnej specyfikacji ścieżki, może być niepewna. W jaki sposób cybernapastnicy mogą wykorzystać to słabe miejsce, pokazujemy na infografice.

Usterka ta zaskoczyła wielu twórców programów, choć gigant z Redmond od dawna szczegółowo prezentował na  MSDN (Microsoft Developer Network) – swoim portalu dla programistów – w jaki sposób Windows ładuje pliki DLL. Zdumiewające jest, że luka ujawniła się także w programach Microsoftu. Rzecznik wydziału bezpieczeństwa tej firmy, Thomas Baumgärtner, przyznaje: – Nikt nie domyślał się, że ta funkcja może być kluczowa pod względem bezpieczeństwa. A powodem powstania tego problemu mogło być wygodnictwo programistów.

Konsekwencje owego wygodnictwa coraz częściej ponoszą użytkownicy. Fakt ten potwierdza firma Secunia, która gromadzi dane na temat znanych luk w oprogramowaniu. Wyliczyła ona, że na przeciętnym pececie, na którym zainstalowanych jest ok. 50 popularnych programów, w 2010 r. pojawiło się 760 nowych usterek – niemal dwukrotnie więcej niż w 2009 r. A użytkownik? Zostanie z dziurawym systemem narażonym na ataki i sam będzie musiał zadbać o to, by jego komputer był bezpieczny.

Ale nie z nami! Pokazujemy, jak szybko uszczelnić system, a niezbędne do tego programy zamieszczamy na dołączonej do numeru płycie.

Windows: jako mniejsze zło

Za przyczynę wszelkich problemów uchodziły przez długi czas systemy operacyjne Microsoftu. Za dużo w nich luk – oto dominująca opinia. Wprawdzie i dziś regularnie wyłaniają się coraz to nowe nieszczelności w Windows, lecz od lat ich liczba wzrasta już tylko nieznacznie. Dotyczy to także programów Microsoftu, takich jak Internet Explorer, Office czy Excel. Wprawdzie ze względu na dużą popularność są one nadal lubianymi celami ataków, lecz ostatnio cyberprzestępcy koncentrują się głównie na produktach firm Adobe, Mozilla, Apple i Google, których programy posiada prawie każdy użytkownik komputera. Tylko w pierwszej połowie 2010 r. Secunia zarejestrowała w 50 najbardziej lubianych programach prawie tyle samo błędów, ile w całym roku 2009. Skąd to się bierze?

Po pierwsze, wielu użytkowników nie jest świadomych, jak bardzo kluczowe pod względem bezpieczeństwa są te aplikacje. Duża popularność niektórych programów –  np. Adobe Reader i Adobe Flash Player są zainstalowane na 90% komputerów – czyni z nich idealne tarcze strzelnicze dla cyberprzestępców. Po drugie, użytkownik, inaczej niż ma to miejsce w Windows, musi zwykle sam instalować aktualizacje dla aplikacji producentów. To również ułatwia hakerom infekowanie komputerów szkodliwym oprogramowaniem. Zatem to nie Microsoft jest teraz największym winowajcą, lecz oprogramowanie pozostałych firm. Secunia obawia się jednak, że rozwiązanie tego problemu potrwa wiele lat. Już dziś można jednak efektywnie chronić swoje programy za pomocą programu z naszej płyty Personal Software Inspector.

Perfekcyjna ochrona: Szybkie uszczelnienie luk

W większości programów aktualizacje bezpieczeństwa nie instalują się automatycznie. Aby zwiększyć ochronę peceta, skorzystaj z poniższych trzech porad.

Automatyzacja aktualizacji

Personal Software Inspector (PSI) firmy Secunia automatycznie instaluje aktualizacje, gdy tylko są one dostępne w Sieci. Ponadto narzędzie porównuje wersje zainstalowanych aplikacji z danymi w bazie Secunii. Dla programów, które nie wspierają funkcji automatycznej aktualizacji, PSI tworzy link do ich ręcznego pobrania. W skrócie: narzędzie pozwala scalić zarządzanie łatami i nie pominąć ani jednej aktualizacji.

Oprogramowanie bezpieczeństwa

Na pececie nie powinno też zabraknąć pakietu zabezpieczającego, takiego jak AdAware Internet Security Pro (na naszej płycie). Ponieważ nierzadko mija wiele dni, zanim luki bezpieczeństwa zostaną załatane, ochrona antywirusowa stanowi przez ten czas jedyną metodę obrony. Pamiętajmy jednak, że na exploity typu Zero-day tak naprawdę nie ma mocnych, ponieważ ich sygnatury nie zostały jeszcze sklasyfikowane.  W takim wypadku może pomóc jedynie rozpoznanie bazujące na wyłapywaniu nietypowych zachowań kodu.

Profil gościa jako standard

Jeśli pracujesz bez uprawnień administratora, prawie 90% krytycznych luk bezpieczeństwa jest całkowicie nieskutecznych. Z tego właśnie powodu zalecamy pracę na co dzień na koncie o ograniczonych uprawnieniach.

Oprogramowanie: zbyt złożone

Dlaczego w ogóle musimy walczyć z lukami w aplikacjach? Czy programiści nie mogliby pisać ich bardziej starannie i lepiej testować? Niestety, nie jest to takie proste – każdy program składa się z milionów linijek kodów, które muszą obsługiwać niezliczone akcje użytkownika, a jednocześnie wchodzić w interakcje z systemem operacyjnym. – Nie istnieje procedura, która odnalazłaby wszystkie błędy i luki – mówi Jonathan Nightingale, szef programistów przeglądarki Firefox. – Aby wyeliminować możliwie dużą liczbę błędów, w Mozilli wdraża się procedurę wielostopniowej kontroli jakości.

W jej skład wchodzą analiza kodu źródłowego, zautomatyzowane testy, a także sprawdziany przeprowadzane przez wewnętrznych i zewnętrznych ekspertów od bezpieczeństwa którzy testują wersje wstępne pod kątem usterek.

Szczęśliwie dla użytkownika końcowego producenci otrzymują coraz większe wsparcie w poszukiwaniu błędów. Do ich źródeł należy zaliczyć hakerów działających bez intencji przestępczych (np. amerykańską firmę Rent-A-Hacker), jak również instytucje takie jak CERT, TippingPoint DVLabs czy Acros, który wykrył lukę DLL. Google oferuje nawet pieniądze za wskazywanie usterek w ich zabezpieczeniach (3133,70 USD za usterkę); podobnie Mozilla (3000 dolarów), która od 2004 r. w ramach programu Bug Bounty wypłaciła nagrody już 80 osobom.

Eksperci analizują software samodzielnie, jednak informacje o odnalezionych lukach trafiają do publicznej wiadomości dopiero po kilku tygodniach lub nawet miesiącach. Przedtem są informowani tylko producenci, aby mogli dać swoim programistom czas na usunięcie wad. Jeśli pod koniec uzgodnionego przedziału czasowego łatka jeszcze nie jest gotowa, luka zostaje upubliczniona, wraz ze szczegółami technicznymi (Full Disclosure). Później – zwykle już po kilku godzinach – pojawią się pierwsze ataki z Sieci. Exploity atakują wadliwy

program najczęściej za pośrednictwem strony internetowej i przejmują komputer, przemycając szkodliwe oprogramowanie.

Jeszcze bardziej niebezpieczne są luki dnia zerowego (Zero-day), które hakerzy odkrywają samodzielnie, bez wiedzy producenta. Wtedy ci ostatni faktycznie mają “zero dni” na uszczelnienie aplikacji przed pierwszym atakiem – stąd właśnie ta nazwa. W Sieci kwitnie też handel exploitami do takich luk (Zero-day exploits): pakiety złośliwego kodu, którego nie rozpoznaje jeszcze żaden skaner antywirusowy kosztują w podziemiu wiele tysięcy dolarów.

I cena ta nie jest zbyt wysoka, np. luka dnia zerowego odkryta w Adobe Flash Playerze uczyniłaby potencjalnymi ofiarami ponad 90% użytkowników. Jedyną ochronę przed takim atakiem zapewnia dobry pakiet zabezpieczający, który blokuje niebezpieczne strony i oprogramowanie inwazyjne.

Błąd: przemilczeć czy opublikować?

Każda znana luka bezpieczeństwa zagraża milionom użytkowników. Z tego powodu zdania na temat tego, kiedy i czy w ogóle powinny one być publikowane, są rozbieżne. Firmy sotfware’owe żądają więcej czasu na przeanalizowanie i zamknięcie luk, aby nie narażać użytkowników na niebezpieczeństwo. Także Kaspersky popiera ten sposób naprawiania świata – pochopne upublicznianie to według tej firmy zbyt duże ryzyko, gdyż liczba exploitów dla niezałatanych luk rośnie bardzo szybko.  Jednak eksperci, tacy jak H.D. Moore – założyciel Metasploit, organizacji bezpieczeństwa komputerowego – twierdzą wręcz przeciwnie: wszystko jedno czy programiści mają 30 czy 120 dni, łatka i tak nigdy nie byłaby gotowa na czas. Co więcej, gdyby luka została upubliczniona już po 10 dniach, także i patch do niej zjawiłby się błyskawicznie. Agresywna polityka całkowitej jawności trzyma programistów pod presją i zmusza ich do informowania opinii publicznej. Dzięki temu użytkownicy dowiadują się przynajmniej, na co muszą uważać, albo że do czasu wydania łatki nie powinni używać określonej aplikacji.

Windows wyprowadza hakerów w pole

Pomoc narzędzie Microsoft EMET na życzenie może uaktywnić DEP i ASLR dla wszystkich programów.

Ataki hakerskie często celują w obszary pamięci, w których aplikacje przechowują dane. Mechanizmy Windows DEP i ASLR powinny temu przeszkodzić, lecz wg Secunii nie wszystkie programy wspierają te techniki. Użytkownicy profesjonalni mogą uaktywnić te funkcje później, przy użyciu narzędzia EMET – do pobrania ze stron Microsoftu.

Zablokować dostęp do pamięci

Od wersji XP SP 2 Windows wspiera technikę DEP (Data Execution Prevention). Za jej pomocą procesor przeznacza określone obszary pamięci tylko na dane. Gdy okazuje się, że wychodzą z nich żądania uruchomienia kodu, Windows zamyka podejrzaną aplikację.

Losowe umieszczanie w pamięci

Od wersji Vista technika ASLR (Address Space Layout Randomization) odpowiada za losowe przydzielanie adresów dla kodu wykonywalnego. Z tego powodu haker nie może przewidzieć, w jakim miejscu zostanie umieszczony napisany przez niego szkodnik. Technika ta ekstremalnie utrudnia wykorzystywanie błędu przepełnienia bufora i razem
z DEP praktycznie uniemożliwia wprowadzanie szkodliwych kodów.

Ignorowane oferty bezpieczeństwa

Niektóre błędy występują jedynie dlatego, że nie każda aplikacja wdraża funkcje bezpieczeństwa oferowane przez Windows. Dla ochrony np. przed wywołaniem przepełnienia bufora – jedna z najczęstszych form ataku na oprogramowanie – Windows opracował mechanizmy DEP i ASLR. Ten pierwszy gwarantuje, że żaden szkodliwy kod nie zostanie uruchomiony w pamięci. ASLR z kolei umieszcza komponenty kodu aplikacji

w przypadkowych obszarach RAM-u.

Jednak producenci wielu programów – np. WinAmp, QuickTime lub środowisko programistyczne Java – nie wspierają tych technik. Także Firefox stosuje je dopiero od niedawna, ponieważ potrzebowano wiele czasu, aby zaimplementować ASLR do każdej biblioteki tej przeglądarki. Dzięki narzędziu Microsoft Process Explorer (goo.gl/wBfYo) odnajdziemy na naszym pececie wszystkie procesy, które wspierają oba te mechanizmy.

Microsoft oferuje producentom oprogramowania rozbudowaną pomoc przy tworzeniu bezpiecznego software’u. Do tego stopnia, że wielkie firmy takie jak Adobe i IBM zatrudniają własnego programistę w centrali Microsoftu w Redmond. Ponadto, w celu podwyższenia bezpieczeństwa aplikacji, Microsoft współpracuje z programistami i dostawcami usług informatycznych w ramach 20 programów kooperacyjnych. Przykładowo Adobe bierze udział w inicjatywie MAPP (Microsoft Active Protections Program), w której ramach Microsoft i przedsiębiorstwa z branży bezpieczeństwa IT wymieniają się informacjami o najnowszych lukach w programach.

Mniejsi producenci, których nie stać na takie nakłady finansowe, mogą sięgnąć po znajdujący się na www.microsoft.com/security podręcznik SDL (Security Development Lifecycle). Jest to bezpłatny przewodnik z poradami dla programistów poświęconymi bezpiecznemu programowaniu software’u. Opisuje on także kolejne etapy procesu programowania i pokazuje, na które z ważnych dla bezpieczeństwa aspektów powinno się zwracać uwagę. Pomocą w odkrywaniu awarii programu, błędów i luk bezpieczeństwa spowodowanych umyślnie podczas testowania może służyć także darmowe narzędzie ze stron Microsoftu Crash Analyzer.

Oprócz tego na platformie MSDN Microsoft oddaje do dyspozycji twórców kodu szczegółowe instrukcje, przykłady i informacje, z którymi mogą oni lepiej dostosować programy do Windows – choćby w kwestii bezpiecznego ładowania DLL. Ponieważ luka DLL mimo to ciągle występuje, można podejrzewać, że programiści w niewystarczającym stopniu korzystają z tej oferty.

Łaty: czasami po prostu ich brak

Czy zatem za niebezpieczeństwo powodowane przez luki są odpowiedzialni wszyscy, tylko nie Microsoft? Niezupełnie, także produkty giganta z Redmond przejawiają liczne – po części możliwe do uniknięcia – błędy. Dotknięte luką DLL były wszak także PowerPoint i Office. Również Internet Explorer zalicza się do najbardziej nieszczelnych programów. Dopiero na początku września 2010 r. upubliczniono wrażliwe miejsce w IE 8, na którym opierał się problem z tym programem znany już dwa lata wcześniej. Podczas gdy producenci innych przeglądarek dawno tę lukę załatali, IE 8 wciąż pozostaje niezabezpieczony przed atakami. Usterka ta powstaje, gdyż przeglądarka ignoruje niektóre z reguł przetwarzania elementów CSS, wskutek czego hakerzy mogą przejąć aktualne ustawienia przeglądarki, a potem działać w Sieci w imieniu jej użytkownika. Badania IBM potwierdzają, że Microsoft wielu błędów w ogóle nie usuwa. Według raportu tej firmy 23% znanych od 2009 r. luk nie zostało załatanych do połowy 2010 r. Microsoft nie chce tej liczby komentować, potwierdza jednak, że często rozważa, które z luk są najmniej niebezpieczne i dla których łaty nie są konieczne.

Zarówno Microsoft, jak i inni producenci oprogramowania najczęściej tworzą aktualizacje bezpieczeństwa we współpracy z odkrywcami luk. – Napisanie łatki to najmniejszy z problemów – ocenia Jonathan Nightingale, programista Firefoksa. – Ważne, żeby nie powodowała ona nowych problemów. – Dlatego aktualizacje dla mniej krytycznych błędów ukazują się w ciągu 6–8 tygodni, natomiast przy usterkach wielkiej wagi – w ciągu tygodnia.

Aktualizacje niosą nowe ryzyko

Co się dzieje, kiedy nieprzetestowana łatka powoduje kolejne problemy, mogliśmy zaobserwować przy aktualizacji Firefoksa do wersji 3.6.9, która miała zamykać lukę DLL. Wersja była tak niestabilna, że Mozilla wycofała update i wkrótce opublikowała nową 3.6.10, która funkcjonowała bez zarzutu.

Patchdays, czyli dni wyznaczane na ukazanie się update’u, dają programistom możliwość stworzenia łaty, która nie okaże się kolejną luką. Wadą tego systemu jest to, że aż do tego dnia krytyczne luki są podatne na ataki, co stwarza zagrożenie dla użytkownika. Microsoft dostarcza aktualizacje w co drugi wtorek każdego miesiąca, przede wszystkim ze względu na administratorów systemów w firmach. Jedynie w przypadku niebezpiecznych ataków giagnt z Redmond publikuje tzw. Out-Of-Band-Patches z pominięciem tego harmonogramu.

Mechanizm aktualizacji funkcjonuje w systemie Microsoftu wzorowo dopóty, dopóki nie zdezaktywuje się automatycznego Windows Update, co zdecydowanie odradzamy – usługa ta pobiera bowiem pliki i instaluje je automatycznie bez obciążania użytkownika. Także Mozilla umieściła w Firefoksie sprawny mechanizm aktualizacji. Natomiast Adobe ciągle nie wypracowało dobrego rozwiązania. Wprawdzie Flash Player nareszcie sam zgłasza aktualizacje, lecz zamiast ją zainstalować wymusza na użytkowniku jeszcze pięć kliknięć. To przeszkadza w pracy i często prowadzi do tego, że poprawki nie są wprowadzane.

Automatyczna aktualizacja wciąż jeszcze należy do wyjątków wśród popularnych aplikacji, najczęściej więc użytkownik musi troszczyć się o to sam. W takim przypadku uprościmy sobie życie, korzystając z narzędzia Secunii, które automatycznie aktualizuje zainstalowane programy.

Koniec lęków już na horyzoncie

W oprogramowaniu czają się liczne niebezpieczeństwa. Czy to oznacza, że użytkownik jest skazany na niekończące się obawy? Prawdopodobnie tak. Jednak stosując się do naszych rad, jesteśmy tak bezpieczni jak to tylko możliwe. Natomiast od producentów wymaga się, aby w przyszłości szybciej reagowali na nowo wykryte luki i wprowadzali aktualizacje. Eksperci do spraw bezpieczeństwa zapowiadają bowiem, że w przyszłości będą szybciej podawać do wiadomości informacje o wrażliwych miejscach programów. Google Security Team skraca termin do 60 dni, a amerykański CERT  do 45 dni.

W ramach lepszego zarządzania łatami  Adobe próbuje integrować swoje programy z procesami aktualizacji Windows, jednak tylko w ramach oferty dla firm. Użytkownikowi prywatnemu pozostaje tymczasem mieć nadzieję, że wkrótce wszystkie aplikacje będę umiały samodzielnie przeprowadzić własny update. Inna potencjalna opcja to wykorzystanie updatera Windows, który potrafi zaktualizować nie tylko siebie, ale

i zainstalowane w systemie programy. Microsoft nie wyklucza wprawdzie tej możliwości, ale też nie potwierdza jakichkolwiek konkretnych planów.

Polityka informacyjna to również gorący temat. Podczas gdy Mozilla, a także Microsoft mówili otwarcie o istnieniu luki DLL, Adobe nie chciał podać konkretnych informacji co do jej przyczyny i sposobów usunięcia. A to było właśnie najważniejsze, aby skala zagrożenia wynikająca z takiej usterki była jasna, a użytkownik nie pławił się w poczuciu fałszywego bezpieczeństwa.

Opisana luka DLL została zamknięta w większości aplikacji. Tymczasem Acros wykazał, że problem istnieje także przy ładowaniu się plików EXE. Taką wersję tej luki byłoby wprawdzie hakerom trudniej wykorzystać, wiadomo jednak że dotychczasowe rozwiązania nie chronią nas wystarczająco przed tym niebezpieczeństwem. Programiści będą więc znów mieli pełne ręce roboty – zgodnie z maksymą, że zwrot “po łacie” oznacza w istocie “przed łatą”.

Najczęstsze ataki bazujące na otwartych lukach

1. Dostęp do systemu

Przez takie luki napastnicy zdobywają prawa dostępu już zalogowanych użytkowników i, bazując na nich, instalują złośliwy kod, np. trojana.

2. Cross-side scripting (XSS)

Ataki przez luki XSS podmieniają moduły aplikacji internetowych w bieżącej sesji, aby przechwycić loginy użytkownika lub inne jego dane.

3. Kradzież informacji

Hakerzy mogą przez te luki odczytać poufne informacje takie jak loginy, numery PIN lub dokumenty.

4. Manipulacja danymi

Cyberprzestępcy mogą też zmienić i odczytać informacje bez pełnego dostępu do systemu, np. w bazie danych SQL.

5. Ataki typu DOS

Ataki, które zużywają ekstremalnie wiele zasobów systemowych (np. pamięci albo przepustowości łącza), aby zawiesić system lub pojedynczą aplikację.

6. Security bypass

Za pomocą tych luk napastnicy obchodzą funkcje bezpieczeństwa software’u, np. zaszyfrowane protokoły lub certyfikaty potwierdzające tożsamość e-banku.

Więcej:bezcatnews