Trudno byłoby wyobrazić sobie dzisiejszy Świat bez stron internetowych. Przez ostatnich 20 lat Internet dotknął praktycznie każdego aspektu naszego życia i jest krytyczną usługą, dzięki której realizujemy codzienne zadania. Prawie żaden biznes nie jest w stanie funkcjonować bez obecności w sieci. Internet nie jest już tylko medium do przekazywania informacji, ale cała światowa ekonomia dzieje się w obecnych czasach przez sieć web.
Swoje witryny mają organizacje rządowe, największe sklepy, korporacje, portale społecznościowe. Większość podmiotów istniejący na rynku posiada stronę web. Odpowiednie jej zabezpieczenie często jest kluczowe dla poprawnego działania firmy. Spróbuj wystawić jakąkolwiek stronę online bez żadnych zabezpieczeń, a natychmiastowo zauważysz połączenia kierowane na adres twojej witryny. Dzieje się tak dlatego, że w sieci grasują internetowe boty, które non-stop szukają podatnych czy niezabezpieczonych odpowiednio witryn.
Aby zrozumieć, jak należy chronić stronę internetową, przyjrzyjmy się najpierw najpopularniejszym atakom i technikom, które wykorzystują cyberprzestępcy.
Jak wygląda atak na stronę internetową
Przyczyn ataku może być kilka. Celem może być kradzież prywatnych danych z serwera webowego, zyski finansowe, cele polityczne, czy po prostu spowodowanie, że strona stanie się niedostępna dla użytkowników.
Atak na stronę można podzielić na etapy i zbudować coś na kształt KillChain’u:
Rekonesans
Podczas rozpoznania atakujący starają się zdobyć jak najwięcej informacji o stronie i sprawdzić istniejące na niej podatności. Zwykle odbywa się to poprzez odpytywanie adresu IP różnymi protokołami i po różnych portach. Za pomocą popularnych komend sieciowych można z łatwością uzyskać takie informacje jak wersja systemu operacyjnego oraz aplikacji na serwerze webowym. Pisaliśmy o tym w artykule o rozpoznaniu sieciowym.
Faza rozpoznania przeprowadzana jest zwykle przez automatyczne boty, które odpytują każdą nową stronę, która pojawi się online i przesyłają informacje do grup hackerskich.
Eksploitacja
Kiedy podatności zostaną już znalezione następuje etap, który ma na celu dostarczenie i wykonanie exploita na serwerze hostującym witrynę internetową. W zależności od intencji atakującego, atak na tym etapie może doprowadzić do położenia całej strony lub wyciągnięcia z niej chronionych danych lub infiltrację wybranych treści na stronę.
Command & Control
Jeśli atakujący zdecyduje się na eskalację uprawnień, może przejąć zdalną kontrolę nad serwerem hostującym witrynę. Wtedy, działając niepostrzeżenie, może przeprowadzać działania administracyjne zdalnie i zarządzać stroną internetową, wliczając w to eksfiltrację oraz infiltrację danych.
W każdym z kroków przedstawionych wyżej możemy wyróżnić kilka popularnych technik stosowanych przy atakach na strony internetowe:
- Denial of Service – w tym przypadku, ogromny ruch generowany do serwera webowego powoduje jego crash lub niedostępność witryny dla użytkowników.
- DNS Hijacking – atak polegający na zmianie wpisów w DNS, tak aby nazwa legalnej strony internetowej wskazywała na serwer należący do atakującego, w ten sposób ruch z witryny będzie przekierowywany do złośliwego serwera.
- Directory Traversal attack – rodzaj technik prowadzących do uzyskania dostępu do plików i zasobów niebędących dostępnymi publicznie, po tym zabiegu, atakujący są w stanie pobrać wrażliwe informacje, wykonać złośliwe komendy czy zainstalować malware na stronie.
- Defacement (zeszpecenie) – typ ataku polegający na podmianie treści strony na własną treść atakującego, np. zdjęcie, logo czy tekst świadczący o zhackowaniu witryny.
- Sniffing – technika polegająca na podsłuchiwaniu i przechwytywaniu danych wysyłanych na web server, jeśli dane te nie są odpowiednio szyfrowane, pozwala na uzyskanie nieautoryzowanego dostępu do serwera.
- Phishing – w tym przypadku atakujący podszywają się pod legalną witrynę i namawiają użytkowników do wprowadzenia swoich danych dostępowych, następnie przejmują je i otrzymują dostęp do prawdziwej witryny.
Podatności serwerów webowych
Aby wiedzieć, co należy zabezpieczyć oraz na co zwracać uwagę, niezbędna jest wiedza o rodzajach podatności, które pozwalają atakującym przejąć witrynę internetową. Najwięcej z nich pochodzi od samego źródła, czyli serwera webowego hostującego stronę.
Serwer webowy to nic innego jak aplikacja, zainstalowana i uruchomiona na lokalnej maszynie mającej dostęp do sieci. Jego zadaniem jest przechowywanie i udostępnianie plików przez Internet, a pliki te to zazwyczaj treść oraz cała reszta kontentu strony internetowej. Serwer webowy potrzebuje więc zarówno odpowiedniego hardware jak i software. Jak można się domyślić, atakujący lubują się bardziej w znajdowaniu i wykorzystywaniu podatności w software. To sama aplikacja i jej ustawienia są zazwyczaj źródłem problemów ze stroną.
Aktualnie możemy wyróżnić 3 najbardziej popularne aplikacje serwerów webowych:
- Apache – zazwyczaj instalowany na maszynie z systemem operacyjnym Linux. Większość stron napisanych w PHP jest hostowanych właśnie na serwerach Apache.
- Internet Information Services (IIS) – serwer webowy Microsoftu, czyli instalowany na Windows. Drugi pod względem popularności, łatwiejszy do skonfigurowania i zabezpieczenia dla osób niebędących specjalistami. Większość stron ASP oraz ASPX jest hostowanych na IIS.
- Apache Tomcat – serwer pozwalający na hostowanie stron i aplikacji webowych napisanych w Java (Java Server Pages).
- Inne to np. IBM Lotus Domino czy Novell’s Web Server.
Jednym z największych błędów przy zabezpieczaniu witryn sieciowych jest pozostawianie domyślnych ustawień serwera webowego. Opcje takie jak domyślne konto administratora, wbudowane hasła, otwarte porty, odblokowane zdalne wykonywanie komend mogą być z łatwością wykorzystane w atakach. Kolejnym aspektem są błędy w konfiguracji, które przyczyniają się do włamań na serwery webowe. Chodzi przede wszystkim o źle skonfigurowane połączenia sieciowe oraz polityki dostępu na lokalnej maszynie hostującej stronę. Dodatkowo, wiele web serwerów zawiera znane podatności i bugi w starszych wydaniach, które (jeśli nie są odpowiednio zabezpieczone) mogą doprowadzić do etapu eksploitacji. Należy pamiętać również o stosowaniu odpowiednich praktyk i narzędzi do bezpieczeństwa, o których napisaliśmy niżej.
Jak się chronić?
Organizacja, której zależy na ochronie swojej witryny internetowej powinna wdrożyć następujące zasady i polityki:
- Regularne instalowanie poprawek na systemie operacyjnym oraz web serwerze hostującym stronę
- Aktualizowanie systemu CMS strony oraz wszystkich używanych wtyczek
- Zadbanie o zabezpieczony dostęp do serwera hostującego stronę
- Przeskanowanie witryny skanerami podatności i załatanie ich w miarę możliwości
- Odpowiednie skonfigurowanie serwera webowego – niezachowywanie domyślnych ustawień
- Używanie zaawansowanego Firewall do zabezpieczenia adresu IP witryny
- Używanie zaawansowanego Antywirusa na serwerze
- Wyłączenie zdalnego dostępu do panelu administracyjnego
- Skasowanie domyślnych kont na serwerze webowym
- Zmiana domyślnych portów na customowe (np. FTP z 21 na 50xx)
- Zainwestowanie w zaawansowane narzędzie typu WAF (Web Application Firewall) szczególnie jeśli witryna jest portalem, w którym uwierzytelniają się użytkownicy
- Wykonywanie regularnych kopii zapasowych serwisu.
Do pewnego zabezpieczenia witryny warto zainwestować w testy penetracyjne, które wykażą podatności strony i potencjalne wektory ataku, których nie wykryją automatyczne skanery. Pozwoli to przetestować aktualne bezpieczeństwo strony i sprawdzić zachowanie organizacji w przypadku symulowanego ataku.