Stan zagrożeń w internecie znajduje się obecnie na poziomie standardowym. Nie występują duże epidemie a eksperci z Kaspersky Lab nie zanotowali żadnych poważnych incydentów związanych z bezpieczeństwem. Poziom zagrożenia: 1

Nie można być niepodatnym na ataki, ale można być dobrze chronionym

Wiaczesław Zakorzewski
Kaspersky Lab Expert
Dodany 29 grudnia 2015, 12:26 CET
Tagi:

Luki w zabezpieczeniach oprogramowania to jeden z tych problemów, które mogą potencjalnie dotknąć wszystkich użytkowników. Luka to błąd w implementacji programu, który może zostać wykorzystany przez osoby atakujące w celu uzyskania nieautoryzowanego dostępu do danych, wstrzyknięcia szkodliwego kodu lub spowodowania awarii systemu. W większości przypadków, luki wynikają z pominięcia jakichś szczegółów na etapie projektowania, nie zaś z błędów w programowaniu. Czasami system może wydawać się praktycznie niepodatny na ataki na etapie projektowania, później jednak, w którymś momencie, powstaje nowa technologia i hakerzy udowodniają, że taki system można skutecznie zaatakować. Dobrym przykładem jest DES – algorytm szyfrowania z symetrycznym kluczem, który został opracowany w 1975 r. i był w owym czasie uważany za niezawodny. Jednak w 1990 roku został złamany w ciągu 39 dni przy użyciu ogromnej sieci komputerowej. Stworzony w 1998 r. superkomputer zdołał złamać DES w ciągu mniej niż trzech dni.    

Ciągłe testowanie popularnego oprogramowania w celu zidentyfikowania luk w zabezpieczeniach oraz publikowanie łat w celu usunięcia zidentyfikowanych luk stanowi część normalnego cyklu życia programu. Im bardziej wyrafinowany i popularny program, tym większe szanse, że luka zostanie wykryta.  

Poszukiwanie luk w zabezpieczeniach

Większość twórców próbuje niezwłocznie usunąć wszystkie luki znalezione w ich produktach. Sami analizują swoje oprogramowanie lub wykorzystują do tego ekspertów zewnętrznych. Jednak na luki polują również zewnętrzni badacze. Niektórzy robią to po to, aby poprawił się ogólny poziom bezpieczeństwa online. Innym płacą za szukanie luk w zabezpieczeniach. Jeszcze inni wolą sprzedawać informacje na temat wszelkich wykrytych luk na czarnym rynku.

Robią to, ponieważ informacje dotyczące nowych luk są niezwykle cenne dla cyberprzestępców. Jeśli badacz znajdzie dziurę w systemie i udowodni, że można ją wykorzystać w praktyce (tzn. jeśli napisze exploita), może zarobić na czarnym rynku dziesiątki tysięcy dolarów. Istnieje cały sektor cyberprzestępczego podziemia, który specjalizuje się w znajdywaniu i sprzedawaniu luk w zabezpieczeniach.    

Na szczęście, biznes ten nie działa na skalę masową. Jedną z przyczyn jest to, że nie wszystkie luki mogą być wykorzystane w realny świecie. Często niezbędna jest kombinacja różnych warunków, aby mogła zostać wyrządzona realna szkoda, a szanse na wystąpienie takiej kombinacji nie są zbyt duże. Drugą przyczyną jest to, że aby napisać skutecznego exploita, programista musi posiadać duże umiejętności, a takich nie istnieje wielu.   

Kolejnym sposobem na zarobienie pieniędzy na lukach w zabezpieczeniach jest sprzedanie ich innym firmom, które na pierwszy rzut oka wydają się nie mieć nic wspólnego z przestępczością. Tak właśnie postępują niektórzy badacze. Z drugiej strony, firmy te mogą być zamieszane w tworzenie oprogramowania szpiegującego dla rządów lub służb specjalnych, dlatego luki te tak naprawdę będą wykorzystywane w celu nielegalnego manipulowania systemami informacyjnymi. Co więcej, okazuje się, że bezpieczeństwo takich firm nie zawsze jest na takim poziomie, na jakim powinno być, dlatego od czasu do czasu strony trzecie są w stanie uzyskać dostęp do ich wiedzy, co powoduje poważne konsekwencje.  

Idealiści, którzy szukają luk ze względu na powszechne bezpieczeństwo, stoją przed dylematem. Z jednej strony, im później poinformują publicznie o ich wykryciu, tym więcej czasu będą mieli twórcy, aby naprawić problem. Z drugiej strony, im wcześniej opublikują informacje, tym wcześniej użytkownicy dowiedzą się o niebezpieczeństwie, jakie stwarza dana luka. Teoretycznie, cyberprzestępcy mogą zidentyfikować lukę i natychmiast ją wykorzystać. Trzeba również pamiętać, że ujawnienie informacji nieuchronnie prowadzi do prób wykorzystania nowo wykrytej luki w zabezpieczeniach. Niekiedy ataki mogą rozpocząć się w ciągu godziny od upublicznienia informacji na temat luki. Miało to miejsce na przykład w przypadku ujawnienia luki Shellshock

Jakie zagrożenia stwarzają luki w zabezpieczeniach?

Exploit to fragment programu lub kodu, który wykorzystuje luki w zabezpieczeniach w celu zaatakowania systemu komputerowego. W niektórych przypadkach, exploit jest wykorzystywany na skalę masową – tzn. cyberprzestępcy próbują wykorzystać go, aby zaatakować różne systemy. W takich przypadkach, wykorzystywane są luki w popularnym oprogramowaniu w celu dostarczenia szkodliwych funkcji na maszyny użytkowników. Jest to powszechnie praktykowane za pośrednictwem tzw. ataków drive-by, w których mamy do czynienia z próbami pobrania szkodliwego kodu na komputery wszystkich użytkowników odwiedzających zainfekowane strony internetowe.   

Niekiedy cyberprzestępcy przygotowują ataki ukierunkowane. Analizują oprogramowanie wykorzystywane przez konkretną firmę i tworzą exploity wykorzystujące luki w zabezpieczeniach określonych programów. Jeden z takich wysoce ukierunkowanych ataków został przeprowadzony w ramach kampanii APT Duqu 2.0

 „Użyteczne” życie exploitów różni się. Niektóre są wykorzystywane przez lata, nawet jeśli twórcy wypuszczają łaty, które usuwają określone luki. Spowodowane jest to opieszałością użytkowników w instalowaniu tych łat.

Z danych firmy Kaspersky Lab wynika, że obecnie cyberprzestępcy wykorzystują exploity na wyszczególnione niżej luki:

Na podstawie identyfikatorów CVE można łatwo zauważyć, że większość z tych luk została wykryta w tym roku, niektóre jednak zostały zidentyfikowane w 2014, a nawet 2012 roku. To, że luki te nadal są wykorzystywane, oznacza, że wielu użytkowników nie zadało sobie trudu uaktualnienia odpowiedniego oprogramowania.

Ochrona przed exploitami

Podstawowe zalecenia są proste: należy pamiętać, aby regularnie aktualizować oprogramowanie i nie wykorzystywać przestarzałego oprogramowania. Ta druga rada może w praktyce okazać się trudniejsza: czasami trudno jest znaleźć nową alternatywę dla znanego i wygodnego programu, który jest przestarzały. O ile twórcy nie śledzą luk w zabezpieczeniach przestarzałego oprogramowania ani nie wypuszczają dla niego łat, cyberprzestępcy nieustannie szukają możliwości ich wykorzystania. Skutek jest taki, że potrzebna jest dodatkowa ochrona, aby nadal móc korzystać z takiego oprogramowania. 

Istnieją wyspecjalizowane narzędzia, które skanują komputery w poszukiwaniu znanych luk i jeśli takie wykryją, automatycznie instalują aktualizacje. Do takich narzędzi należą np. komponenty Kaspersky Systems Management, Analiza luk w zabezpieczeniach oraz Zarządzanie łatami. Kaspersky Lab opracowuje podobne rozwiązanie o nazwie Kaspersky Software Updater przeznaczone dla użytkowników domowych. Narzędzie to znajduje się obecnie w fazie testów beta.

Kaspersky Lab stosuje system nazewnictwa luk, który różni się od kodów wykorzystywanych w systemie CVE (Common Vulnerabilities and Exposures). O ile identyfikator w systemie CVE zawsze odpowiada jednej luce, kod w naszym systemie może odpowiadać grupie luk (w większości przypadków, są to luki usunięte przy użyciu jednej łaty lub luki w jednej wersji programu) – czasami jeden kod odnosi się do dziesiątek luk (w zależności od łat opublikowanych przez dostawców oprogramowania). W efekcie, 20 wyszczególnionych poniżej luk KLA odpowiada 375 lukom CVE.     

Ze statystyk Kaspersky Security Network wynika, że podczas skanowania luk w zabezpieczeniach na maszynach użytkowników najczęściej identyfikowane są następujące zestawy luk w zabezpieczeniach:  

KLA

Liczba użytkowników

Data wykrycia

Opis

1

KLA10680

308219

2015-10-14

Luka umożliwiająca wykonanie kodu w aplikacji Adobe Flash Player

2

KLA10036

256383

2014-07-08

Liczne luki w zabezpieczeniach Adobe Flash oraz Adobe AIR

3

KLA10492

228454

2013-10-16

Liczne luki w zabezpieczeniach produktów Oracle

4

KLA10670

182972

2015-09-21

Liczne luki w zabezpieczeniach produktów Adobe

5

KLA10650

176435

2015-08-11

Liczne luki w zabezpieczeniach produktów Adobe

6

KLA10653

150987

2015-05-18

Luka umożliwiająca wykonanie kodu w aplikacji QuickTime

7

KLA10682

150960

2015-10-13

Liczne luki w aplikacjach Adobe Acrobat i Reader

8

KLA10628

138039

2015-07-14

Liczne luki w aplikacji Adobe Acrobat

9

KLA10651

135291

2015-08-17

Luka umożliwiająca wstrzykiwanie kodu w VLC Media Player

10

KLA10655

134824

2015-09-01

Liczne luki w Google Chrome

11

KLA10672

108722

2015-09-22

Liczne luki w przeglądarce Mozilla Firefox

12

KLA10654

107661

2015-08-27

Liczne luki w przeglądarce Mozilla Firefox

13

KLA10691

103880

2015-11-10

Liczne luki w przeglądarce Google Chrome

14

KLA10344

100311

2009-11-05

Liczne luki w Sun Java SE

15

KLA10669

92345

2015-09-16

Liczne luki w Apple iTunes

16

KLA10684

91013

2015-10-22

Luka umożliwiająca wykonanie kodu we wtyczce Flash dla przeglądarki Google Chrome

17

KLA10663

87898

2015-09-08

Luka umożliwiająca wykonanie kodu w Adobe Shockwave Player

18

KLA10690

87478

2015-11-10

Liczne luki w produktach firmy Adobe

19

KLA10569

86657

2015-04-28

Luki w zabezpieczeniach OpenOffice

20

KLA10671

84380

2015-09-21

Aktualizacja Flash Player dla Google Chrome

Szczególnie godne uwagi są zestawy luk KLA10680 oraz KLA10650. Ten pierwszy zawiera, między innymi, CVE-2015-7645, ten drugi - CVE-2015-5560. Luki te są również obecne w pierwszej tabeli powyżej, która zawiera najczęściej wykorzystywane błędy w oprogramowaniu.

Naturalnie, produkty bezpieczeństwa zawierają również technologie służące do blokowania prób wykorzystania luk w zabezpieczeniach. Śledzą one zachowanie aplikacji (szczególnie tych, o których wiadomo, że są podatne na luki) oraz identyfikują i blokują podejrzaną aktywność.  

 

Jak się miewa branża bezpieczeństwa?

Luki można zidentyfikować w rozwiązaniach bezpieczeństwa, podobnie jak w innych programach. Jedyna różnica polega na tym, że dostawcy rozwiązań bezpieczeństwa ponoszą o wiele większą odpowiedzialność, ponieważ oprogramowanie bezpieczeństwa stanowi zasadniczo ostatnią linię obrony. To dlatego firmy z branży bezpieczeństwa internetowego są szczególnie ostrożne i skrupulatne jeśli chodzi o sprawdzanie produktów pod kątem luk w zabezpieczeniach.   

Nie możemy wypowiadać się za całą branżę, dlatego posłużymy się jedynym przykładem, jaki znamy – czyli naszym własnym. O bezpieczeństwie naszych produktów myślimy na wszystkich etapach ich rozwoju – od określania powierzchni ataku na etapie projektowania po specjalne procedury testowe służące identyfikacji potencjalnych luk w zabezpieczeniach produktów, które są prawie gotowe do wypuszczenia na rynek. Podczas tworzenia produktów personel z działu badań i rozwoju nie tylko tworzy niezbędną funkcjonalność produktu, ale również upewnia się, że nowe funkcje nie mogą zostać wykorzystane w celu podważenia integralności programu.

Uważamy, że takie podejście jest skuteczniejsze niż wyspecjalizowany zespół odpowiedzialny za śledzenie luk w zabezpieczeniach wszystkich produktów firmy. Co nie znaczy, że nie posiadamy takiego zespołu. Grupa architektów bezpieczeństwa regularnie sprawdza nowo stworzony kod pod kątem luk w zabezpieczeniach przy użyciu testowania odporności na błędne dane oraz testów penetracyjnych.    

Testowanie odporności na błędne dane oznacza zasadniczo sprawdzanie programu w celu zidentyfikowania niezamierzonych operacji poprzez wprowadzanie niepoprawnych lub losowych danych. Innymi słowy, produkty są testowane przy użyciu nietypowych lub zniekształconych zestawów danych.

Testy penetracyjne są przeprowadzane zarówno wewnętrznie jak i przez ekspertów zewnętrznych. Z naszego doświadczenia wynika jednak, że niewielu ekspertów zewnętrznych posiada wystarczającą wiedzę odnośnie sposobu działania produktów bezpieczeństwa i potrafi tym samym skutecznie szukać luk w zabezpieczeniach. Ponadto, Kaspersky Lab posiada specjalny zespół, który specjalizuje się w wyszukiwaniu kodu osób trzecich dla luk w zabezpieczeniach (z jego usług korzystają, między innymi, banki chcące zweryfikować bezpieczeństwo swoich aplikacji). Chociaż aplikacje innych producentów stanowią najwyższy priorytet tego zespołu, eksperci ci analizują również kod opracowany wewnętrznie.  

Cenimy również opinie niezależnych badaczy. Każda osoba, która znalazła lukę w zabezpieczeniach naszych technologii, może zgłosić ją za pośrednictwem specjalnego kanału komunikacyjnego, który znajduje się w tym miejscu. Eksperci z Kaspersky Lab dokładnie przeanalizują wszystkie dane przychodzące za pośrednictwem tego kanału. Procedura jest następująca: najpierw, nasi analitycy potwierdzają, że naprawdę istnieje luka w zabezpieczeniach. Następnie kontaktujemy się z niezależnym badaczem i uzgadniamy, kiedy te informacje zostaną upublicznione. W międzyczasie dane te są dostarczane personelowi B&R, który jest odpowiedzialny za rozwój technologii; sprawdzamy również, czy luka ta jest obecna w jakichkolwiek innych produktach firmy Kaspersky Lab. Należy zauważyć, że niekiedy niezależni badacze kierują naszą uwagę na poważne kwestie. Naprawdę to doceniamy!  

Kilka praktycznych zaleceń

Ponieważ tylko twórcy oprogramowania mogą w istotny sposób poprawić sytuację, poniżej przedstawiamy kilka zaleceń:

  • Jak już wielokrotnie powtarzaliśmy, należy aktualizować oprogramowanie. Jeśli producent wypuści aktualizację dla swojego produktu, najprawdopodobniej istnieje ku temu ważna przyczyna.
  • Nie należy wyłączać automatycznych aktualizacji. W przypadku, gdy posiadasz wiele programów, może to okazać się kłopotliwe, ale tak naprawdę liczy się bezpieczeństwo.
  • Usuń programy, których już nie używasz. Nie ma powodu, aby zajmowały miejsce na twoim dysku twardym. Pewnego dnia takie programy mogą wyrządzić ci poważną szkodę.
  • Nie korzystaj z przestarzałego oprogramowania. Jeśli naprawdę jest to użyteczny program, muszą istnieć inne, podobne aplikacje. Wprawdzie zrezygnowanie z dobrze znanego interfejsu może być trudne, jednak lepiej poświęcić kilka dni na przyzwyczajenie się do nowego interfejsu niż wykorzystywać dziurawe oprogramowanie.
  • Regularnie skanuj swój komputer w celu zidentyfikowania znanych luk w zabezpieczeniu przy użyciu wyspecjalizowanych narzędzi.