Errare humanum est… (Błądzić jest rzeczą ludzką…)
No właśnie. Kto? Do napisania przedmiotowego artykułu zainspirowała mnie rozmowa z klientem, z którym nawiązałem niedawno współpracę. Podczas pierwszej rozmowy telefonicznej dyskutowaliśmy o szkodzie, a w zasadzie szkodach cyber, które czterokrotnie dotknęły spółkę. Gdy doszliśmy do omawiania przyczyn szkody, mój rozmówca wyznał z rozbrajającą szczerością: „Panie Łukaszu, nie sprawdziliśmy. Ale kto czyta paski adresu?”. Ktoś może powiedzieć – elementarz. Warto jednak przypomnieć, że to czynnik ludzki jest odpowiedzialny za 75% wszystkich incydentów cybernetycznych. Jak widać errare humanum est.
… in errore perservare stultum (…pozostawać w błędzie – głupotą)
Zatem by poznać swego wroga przyjrzyjmy się dziś najczęściej występującym zagrożeniom, czyhającym na nas w sieci:
- Backdoors (tylne drzwi) – metoda omijania środków uwierzytelniania i bezpieczeństwa w oprogramowaniu lub systemie komputerowym. Backdoory są często legalną częścią oprogramowania. Twórcy oprogramowania używają ich, np.: w celu odblokowania kont użytkowników lub redukcji ilości błędów w oprogramowaniu. Niebezpieczne w rękach przestępców.
- Denial of Service (DoS) – rodzaj ataku sieciowego powodujący, że atakowany system przestaje działać właściwie. Może to być defekt tylko jednej usługi internetowej (np. e-mail) lub całego serwera. Przy prowadzeniu ataków typu DoS korzysta się z błędów i luk, występujących już w systemie. Atak ten nie wiąże się nigdy z kradzieżą danych lub ich utratą, ale przynosi on wielkie straty firmom, które na skutek ataku nie mają możliwości świadczenia swoich usług.
- Distributed Denial of Service (DDoS) – odmiana ataku typu DoS stworzona w celu całkowitego uniemożliwienia normalnego działania witryny internetowej, sieci, serwera lub innych zasobów. Atak DDoS różni się od ataku DoS jedynie wykorzystywaną metodą. Atak DDoS prowadzony jest równocześnie przez wiele komputerów.
- Hacking – poszukiwanie i wykorzystywanie słabych punktów w systemie komputerowym lub sieci, zazwyczaj w celu uzyskania korzyści finansowych.
- Luki Dnia Zero (Zero-day) – luki, które nie są znane twórcom oprogramowania ani społeczności zajmującej się bezpieczeństwem. Nazwa odnosi się czasu, przez który twórca oprogramowania był świadomy istnienia luki. Gdy przestępcy odkrywają lukę Dnia Zero, rozpoczynają atak, który tę słabość wykorzystuje.
- Luki w zabezpieczeniach – fragmenty kodu zawierające błąd, które pozwalają hackerowi naruszyć integralność, dostępność lub poufność danych. Po zidentyfikowaniu luk przestępcy mogą tworzyć tzw. exploity, czyli programy wykorzystujące te luki.
- Malware – złośliwe oprogramowanie, które powoduje utrudnienia i przeszkody w pracy na komputerze, może mieć również działanie przestępcze (zdobywanie poufnych danych) lub w jakikolwiek sposób szkodzić użytkownikowi.
- Pharming – hacker stara się przekierować użytkownika odwiedzającego legalną stronę internetową do strony sfałszowanej. Może to osiągnąć, modyfikując plik hosts w komputerze ofiary lub wprowadzając zmiany w systemie DNS (Domain Name System).
- Phishing – polega na wysyłaniu do przypadkowych osób korespondencji mailowej, w której odbiorcy pod wymyślonym pretekstem namawiani są do zalogowania się pod fałszywy adres. Zwykle udaje on stronę logowania banku, urzędu lub popularnego portalu. Po kliknięciu w załączony w mailu link następuje przekierowanie na stronę sfałszowaną przez przestępców. W trakcie logowania nieświadomy klient podaje swój login i hasto przestępcom.
- Ransomware – rodzaj oprogramowania używanego w przestępczości internetowej. Jego działanie polega na przeniknięciu wirusa do atakowanego systemu i zaszyfrowaniu danych należących do użytkownika. Potem wirus wyświetla notatkę. Hacker pisze w niej, co musi zrobić właściciel cennych plików, aby je odzyskać. Zwykle domaga się przelania pieniędzy na konto bankowe i obiecuje, że w zamian wyśle klucz oraz instrukcje jak odszyfrować dane. Niestety nie zawsze wywiązuje się z tej obietnicy.
- Spoofing – fałszowanie adresów IP mające na celu udawanie innego serwera w istniejącym połączeniu sieciowym. Technika ta ma na celu uniknięcie zabezpieczeń jakie wprowadzają na danym serwerze administratorzy sieci wewnętrznej oraz „podszycie” się pod użytkownika sieci, co umożliwia atakującemu przechwytywanie wszystkich danych, które miały trafić do prawdziwego komputera.
- Vishing – przestępcy wykorzystując telefonię internetową starają się podszywać przede wszystkim pod instytucje finansowe. Jedną z praktykowanych przez nich metod jest rozesłanie spamu, w którym podawany jest numer 0-800, pod którym odbiorca maila powinien zaktualizować swoje dane konta bankowego. Po wykręceniu podanego numeru włącza się automat, który prosi ofiarę o podanie konkretnych danych dostępu do konta.
- Whaling (CEO fraud/na prezesa) – atak phishingowy polegający na podszywaniu się pod pracownika kadry managerskiej.
To jest już koniec?
Nie! To dopiero początek! Rozwój technologii IT generuje wciąż nowe zagrożenia, których dzisiaj nie potrafimy sobie jeszcze wyobrazić. Żeby uświadomić sobie, jak nieoczywiste mogą być przyczyny incydentu prześledźmy, z jakim ryzykiem wiąże się używanie nawet dobrze znanego i popularnego oprogramowania:
- Liczba twórców – liczba osób tworzących oprogramowanie stale wzrasta. Każdy dodatkowy programista zwiększa ryzyko powstania błędów w oprogramowaniu. W środowisku programistów powszechnie przyjmuje się, że kod nigdy nie jest wydawany bezbłędnie, a średnia liczba błędów w branży na każde 1000 linijek kodu wynosi od 15 do 50 błędów.
- Kod programu – oprócz rosnącej liczby twórców oprogramowania rośnie również ilość linijek kodu. Więcej linijek kodu oznacza możliwość wystąpienia większej liczby błędów. Na potrzeby misji Apollo 11 użyto 145 000 linijek kodu. Dla porównania współczesne auta potrzebują ponad 100 mln linijek kodu.
- Złożoność – wraz ze wzrostem możliwości oprogramowania rośnie także jego złożoność. Większa złożoność oprogramowania to większe ryzyko jego wadliwego działania.
- Oprogramowanie open source – ruch open source doprowadził do wielu innowacyjnych inicjatyw. Wiele bibliotek o otwartym kodzie źródłowym jest przesyłanych online i chociaż zakłada się, że zostały sprawdzone pod kątem ich funkcjonalności i bezpieczeństwa, nie zawsze tak jest. Wszelkie błędy obecne w kodzie podstawowym można nieświadomie skopiować do kolejnych iteracji.
- Przestarzałe oprogramowanie – im dłużej oprogramowanie jest dostępne na rynku, tym więcej luk i podatności można w nim znaleźć. Gorzej, jeśli twórcy nie wspierają już swojego produktu, np.: nie udostępniają aktualizacji usuwających dostrzeżone w nim błędy. Wiele firm korzysta z przestarzałego oprogramowania, pomimo istnienia bezpieczniejszych alternatyw. Przestępcy, znając wszelkie mankamenty oprogramowania tylko czekają na taką okazję.
- Nowe wersje oprogramowania – nowe oprogramowanie jest zwykle oparte na już istniejącym kodzie. To sprawia, że jego testowanie i korekta ewentualnych błędów są bardzo trudne i wymagają dużych zasobów ze strony producenta. W rezultacie więcej programistów zajmuje się utrzymaniem istniejącego kodu niż pracą nad nowymi implementacjami, a i tak nie zapewnia to pełnej kompatybilności wstecznej.
- Oprogramowanie generowane automatycznie – oprogramowanie może być tworzone za pomocą zautomatyzowanych procesów, które celowo można modyfikować, by móc później wykorzystać wprowadzoną do programu lukę.