Jak wygląda atak hakerski na stronę WWW?
1. Atak brute force
1. Atak brute force
Jeden na pięć cyberataków zaczyna się od wykradzionych haseł – to jeden z głównych wniosków tegorocznego raportu Data Breach Investigations Report, przygotowanego przez Verizon. W praktyce przestępcy wcale nie muszą znać danych logowania, aby się włamać na czyjeś konto. Jeśli system logowania jest słabo zabezpieczony, mogą wykorzystać oprogramowanie, które generuje nieskończone wersje haseł i loginów, aby w końcu trafić na właściwą kombinację. W ten sposób niejako przeforsowują tę podstawową barykadę. Na tym, w skrócie, polegają ataki brute force.
Jak się bronić?
- Wymagaj od użytkowników stosowania długich haseł zawierających małe i wielkie litery, cyfry oraz znaki specjalne;
- koniecznie wprowadź limit prób logowania – po kilku nieudanych próbach konto powinno wymagać dodatkowej weryfikacji lub nawet być tymczasowo blokowane (tak to działa w bankach);
- korzystaj z Web Application Firewall, czyli zapory sieciowej, która będzie automatycznie blokować podejrzany ruch HTTP (ataki brute force bardzo łatwo rozpoznać, bo wymagają wysyłania ogromnej liczby zapytań).
2. SQL Injection
2. SQL Injection
Ataki typu injection od lat pozostają jednym z najpoważniejszych zagrożeń dla stron i aplikacji webowych; zresztą cały czas utrzymują się w samej czołówce OWASP Top 10. SQL injection polega na „wstrzyknięciu” kodu SQL w stronę internetową tak, aby został uruchomiony po stronie serwera. Wygląda to tak: haker wpisuje złośliwy kod np. w polu formularza logowania do konta; w efekcie strona, która docelowo ma sczytać dane logowania z formularza, zamiast tego uruchamia kod. W ten sposób haker może uzyskać dostęp nawet do całej bazy danych.
Jak się bronić?
- Weryfikuj dane wejściowe. Każda informacja wpisana przez użytkownika w formularzu powinna być automatycznie sprawdzana pod kątem typu i formatu danych oraz obecności znaków typowych dla zapytań SQL;
- Stosuj tzw. zapytania parametryzowane (prepared statements), czyli metodę przekazywania zapytań do bazy danych, w której dane od użytkownika są tylko parametrami wpisywanymi w gotowy szablon zapytania SQL. W ten sposób system baz danych potraktuje wszystko, co wpisał użytkownik jako wartość parametru, a nie jako część kodu SQL – nawet jeśli w treści haker faktycznie spróbuje wstrzyknąć złośliwy kod;
- Ogranicz uprawnienia dostępu do bazy danych do niezbędnego minimum. Konto używane przez aplikację powinno mieć niezbędne prawa (SELECT/INSERT/UPDATE/DELETE, tylko w określonych tabelach); nigdy nie nadawaj uprawnień administratora!
3. Atak DoS/DDoS (Denial of Service)
3. Atak DoS/DDoS (Denial of Service)
Kolejnym rodzajem ataku hakerskiego jest DoS/DDoS. Skrót DDoS oznacza Distributed Denial of Service i, w skrócie, ma na celu doprowadzić do przeciążenia serwera. Aby przeprowadzić tego rodzaju atak hakerzy wykorzystują boty, które wysyłają ogromną liczbę ciągle powtarzających się zapytań do serwera. Gdy liczba równoczesnych połączeń przekracza możliwości serwera lub łącza sieciowego, cała strona pada.
Warto też wiedzieć, że w postaci botów przestępcy często wykorzystują komputery zwykłych użytkowników, do których dostęp uzyskali dzięki złośliwemu oprogramowaniu. Właściciele zainfekowanych urządzeń… zwykle w ogóle o tym nie wiedzą.
Jak się bronić?
- Najważniejszy jest wybór hostingu. Większość dostawców zapewnia ochronę „anty-DDoS” w cenie i filtruje podejrzane źródła ruchu przed zalaniem Twojego serwera zapytaniami od botów;
- Na serwerze warto wprowadzić rate limiting, czyli ograniczenie liczby żądań z jednego IP w danym przedziale czasu. Wielu hostingodawców nakłada takie limity automatycznie;
- Dobrą opcją są usługi typu CDN, które nie tylko przyspieszają wymianę danych z użytkownikami i skracają czas ładowania strony, ale też rozpraszają ruch na stronie po wielu węzłach, co utrudnia przeprowadzenie skutecznego ataku.
4. Cross-Site Scripting (XSS)
4. Cross-Site Scripting (XSS)
Atak XSS to jeden z najtrudniejszych ataków hakerskich, z jakim możesz się zmierzyć; został on z powodzeniem wymierzony nawet w tak duże serwisy jak Microsoft czy Google.
Większość ataków XSS wykorzystuje złośliwe skrypty JavaScript, które są zamieszczone w linkach. Gdy użytkownik klika taki link, uruchamia kod, który jest w stanie przejąć sesję na stronie, uzyskać dostęp do konta, czy nawet zmienić reklamy wyświetlane na witrynie. Hakerzy zazwyczaj zamieszczają takie złośliwe odnośniki na forach internetowych, serwisach społecznościowych czy w innych miejscach, które generują dużo ruchu, a jednocześnie pozwalają łatwo zamieszczać swoje treści.
Jak się bronić?
- Wszystkie dane wprowadzane przez użytkowników – w sekcji komentarzy, jako posty czy wpisy na forum – powinny być automatycznie kodowane, zanim wyświetlą się na stronie. Na przykład w przypadku danych wprowadzanych do pliku HTML, znak < zamienia się na <, znak > - na >, zaś & - na & takie znaki są typowe dla skryptów JavaScript, więc gdy się je zamieni na inne, złośliwy skrypt będzie niemożliwy do wykonania przez przeglądarkę;
- używaj szablonów i frameworków z mechanizmami auto-escaping, które domyślnie filtrują i kodują dane wprowadzane z zewnątrz; taką opcję zapewniają React czy Vue;
- korzystaj z Content Security Policy – jest to specjalny zestaw reguł, który przeglądarka użytkownika otrzymuje wraz z odpowiedzią HTTP serwera; opisują one, z jakich bezpiecznych źródeł mogą pochodzić zasoby na stronie. Jeśli któryś skrypt JS będzie niezgodny z regułami CSP, przeglądarka go nie wyrenderuje.
6. Phishing
6. Phishing
W przypadku ataku phishingowego wykorzystuje się niewiedzę lub, często, naiwność ludzi. Celem jest kradzież danych logowania, numerów kart kredytowych czy innych wrażliwych informacji – aby to zrobić, haker podszywa się pod jedną ze stron w komunikacji internetowej. Jako przykład weźmy tutaj bank.
Próba wyłudzenia informacji często sprowadza się do wysyłania maili czy SMS-ów do użytkowników danego banku z prośbą o podanie, czy „potwierdzenie” pewnych danych. Wiadomości przekierowują na stronę podszywającą się pod prawdziwą witrynę instytucji – wygląda w zasadzie identycznie, a jej adres będzie zwykle bardzo podobny. Niczego niepodejrzewające ofiary „zweryfikują” na prośbę przestępcy pewne dane, czy też wykonają normalną próbę logowania… tyle że ich informacje nie trafią do banku, ale w ręce oszusta. W ten sposób haker może uzyskać pełny dostęp do konta bankowego.
Choć o phishingu mówi się od jakiegoś czasu, to jednak dalej wiele osób pada ofiarą takich ataków; m.in. dlatego, że oszuści korzystają z coraz bardziej wyrafinowanych metod. Zdarzają się na przykład ataki, w których ofiara otrzymuje bardzo spersonalizowaną wiadomość z informacjami, które przestępcy zdobyli… z jej profilu w social mediach – na tym polega spear-phishing. A dziś, z pomocą AI oszuści są w stanie błyskawicznie rozesłać setki maili, które są niemal nie do rozróżnienia od tych, które mógłby wysłać np. bank.
Jak rozpoznać próbę phishingu?
- Oszuści najczęściej proszą o podanie danych wrażliwych (hasła, kodu SMS, numeru karty) – prawdziwe firmy nigdy nie robią tego mailowo;
- wiadomość zawiera wezwanie do działania („pilne”, „natychmiast”, „zamknięcie konta”); w ten sposób oszuści chcą wywrzeć presję emocjonalną;
- nadawca wygląda znajomo, ale sam adres e-mail nie zgadza się z oficjalną domeną (np. zamiast @bank.pl mamy @bank-secure.com);
- linki zawierają długie, nietypowe ciągi znaków; adresy URL prawdziwych instytucji z reguły są prostsze;
- wiadomości phishingowe, mimo starań oszustów, dosyć często zawierają błędy językowe lub nie są w 100% spójne z brandingiem.
Warto też zdawać sobie sprawę z tego, jak częste są próby takich oszustw. Według tegorocznego raportu Hoxhunt, na każde 100 pracowników w dużych firmach przypada średnio… 233 phishingowych maili.
7. Ataki ransomware
7. Ataki ransomware
Ransomware to złośliwe oprogramowanie, które szyfruje pliki na pojedynczym komputerze lub w całej sieci firmowej, blokując do nich dostęp i paraliżując cały system.
Jeśli hakerom uda się zainfekować w ten sposób firmową infrastrukturę – czy to przez luki w zabezpieczeniach systemu, czy nawet wysyłając zainfekowany załącznik w phishingowej wiadomości – następnym krokiem jest żądanie okupu w zamian za klucz do odszyfrowania danych. W najgorszym wypadku przestępcy mogą najpierw wykraść dane, a dopiero potem je zablokować; wtedy mamy do czynienia z tzw. double extortion, ponieważ hakerzy mogą zażądać okupu podwójnie: za odblokowanie plików i za nieujawnianie ich zawartości. Dlatego właśnie ten typ ataku jest tak groźny; wg raportu State of Ransomware publikowanego co roku przez firmę Sophos, średni koszt odzyskania danych po ataku ransomware wynosi aż półtora miliona (!) dolarów.
Jak się bronić?
- Przede wszystkim, przygotowując kopie zapasowe. Najlepiej trzymać się zasady 3-2-1 i mieć minimum trzy kopie danych, na dwóch różnych nośnikach, z czego jeden offline, odłączony od sieci firmowej;
- pamiętaj o regule „minimum dostępu”. Każdy członek organizacji powinien mieć dostęp tylko do tych danych i zasobów, których potrzebuje do pracy; ograniczy to skutki ataku w razie, gdy hakerzy złamią tylko jedno konto, a nie całą sieć;
- korzystaj z systemów antyspamowych i antyphishingowych, które blokują podejrzane załączniki i linki na skrzynkach mailowych wewnątrz organizacji;
- zastanów się, czy nie warto wprowadzić odgórnych ograniczeń co do tego, które konkretnie programy mogą być uruchamiane na firmowych urządzeniach. Jest to tzw. allowlisting; jeśli stworzysz taką „białą listę” aplikacji dozwolonych w sieci firmowej, wszystkie inne będą blokowane – w tym te, które mogliby “przemycić” przestępcy.
8. Ataki na łańcuch dostaw (Supply Chain Attacks)
8. Ataki na łańcuch dostaw (Supply Chain Attacks)
Wyobraź sobie, że prowadzisz restaurację. Masz zaufanego dostawcę przypraw, od którego co dwa tygodnie, od kilku lat, dostajesz świetnej jakości produkty. Co by się stało, gdy pewnego dnia ktoś dodał do przypraw groźnych środków chemicznych? Na talerze Twoich gości trafiłyby zatrute dania i mimo, że cała sytuacja teoretycznie nie wynikałaby z Twojej winy – to Ty musiałbyś liczyć się z konsekwencjami.
Na takiej zasadzie działają ataki na łańcuchy dostaw. Hakerzy nie atakują bezpośrednio Twojej strony, tylko oprogramowanie third-party, z którego korzysta witryna. Może to być np. wtyczka do WordPressa albo open-source’owa biblioteka JavaScript. Jeśli ktoś „wstrzyknie” do nich złośliwy kod i nie zostanie to wykryte – gdy następnym razem zaktualizujesz wtyczkę, trafi on również na Twoją stronę.
Jak się bronić?
- W tym przypadku jesteś zdany na swoich dostawców. Dlatego korzystaj tylko z niezbędnych wtyczek i bibliotek, najlepiej od twórców, którzy mają już pewną renomę, własne procesy bezpieczeństwa i którzy często dodają nowe aktualizacje (to znak, że regularnie łatają luki);
- wszystkie aktualizacje, zwłaszcza wtyczek i bibliotek, testuj najpierw na kopii strony – stagingu – a dopiero potem wdrażaj na główną wersję;
- istnieją też narzędzia dla developerów, które automatycznie skanują kod w poszukiwaniu najczęściej wykorzystywanych exploitów – takie jak Checkmarx, GitLab czy Veracode.
5 kroków do bezpieczniejszej strony WWW - praktyczna checklista
5 kroków do bezpieczniejszej strony WWW - praktyczna checklista
Na koniec zbierzmy najważniejsze dobre praktyki, które, naszym zdaniem, powinno się stosować na każdej stronie WWW.
- Wdróż jak najsilniejsze metody uwierzytelniania. Wymagaj mocnych haseł (unikalne, długie, z różnymi znakami), a jeśli przechowujesz dane wrażliwe – pomyśl o uwierzytelnianiu dwuskładnikowym, zwłaszcza dla administratorów!
- Regularnie aktualizuj wszystkie programy, które tworzą środowisko Twojej strony – od CMSu, przez wtyczki i motywy po oprogramowanie serwera.
- Korzystaj z zapory sieciowej – WAF – która będzie filtrować ruch przychodzący do Twojej strony i w ten sposób blokować próby niektórych rodzajów ataków (SQL injection, XSS, brute force).
- Regularnie twórz i testuj kopie zapasowe – najlepiej stosować zasadę 3-2-1 (trzy kopie, dwa różne nośniki, jeden poza główną siecią firmową).
- Zawsze wymuszaj korzystanie z protokołu HTTPS, na całej stronie.
Atak hakerski na stronę WWW – podsumowanie
Atak hakerski na stronę WWW – podsumowanie
Przestępcy mają wiele sposobów, aby złamać zabezpieczenia Twojej strony; co więcej, wciąż znajdują nowe metody i kolejne exploity, nawet w najbardziej znanych aplikacjach. Dlatego o bezpieczeństwo strony trzeba się troszczyć nie tylko na etapie wdrożenia, ale przez cały czas – na przykład pamiętając o regularnych audytach bezpieczeństwa.
Jeśli potrzebujesz wsparcia przy przeprowadzaniu takiego audytu – umów się na konsultację ze specjalistami Smartbees, a chętnie Ci pomożemy.
