Właściciel niewielkiej firmy często zakłada, że jego strona internetowa nie jest interesującym celem dla cyberprzestępców.
Nie przechowuję milionów rekordów. Nie jestem bankiem. Nie prowadzę wielkiej korporacji. Dlaczego ktoś miałby atakować właśnie mnie?
Problem polega na tym, że ogromna część ataków w internecie wcale nie zaczyna się od ręcznego wybrania konkretnej firmy.
Automatyczne skanery przez całą dobę przeszukują internet w poszukiwaniu nieaktualnego oprogramowania, błędnie skonfigurowanych serwerów, podatnych wtyczek, słabych haseł i paneli administracyjnych, do których można spróbować się dostać.
Dla atakującego niewielka strona firmowa może być wartościowa nawet wtedy, kiedy sama firma nie posiada szczególnie interesujących danych.
Można wykorzystać ją do rozsyłania spamu, przekierowywania użytkowników, pozycjonowania innych stron, wyłudzania danych, rozprzestrzeniania złośliwego oprogramowania albo dalszych ataków.
Dlatego cyberbezpieczeństwo strony internetowej małej firmy nie powinno zaczynać się od pytania, czy ktoś będzie chciał ją zaatakować.
Znacznie lepszym pytaniem jest to, co się stanie, kiedy automatyczny skaner znajdzie na niej podatność.
Mała firma również jest celem
Cyberprzestępca nie musi wiedzieć, czym zajmuje się firma ani kto jest jej właścicielem.
Wiele ataków jest wykonywanych automatycznie.
Bot może sprawdzić tysiące lub miliony adresów internetowych i poszukiwać konkretnej wersji systemu CMS, charakterystycznego pliku, otwartego panelu logowania albo znanej podatności.
Jeżeli znajdzie stronę spełniającą określone warunki, może rozpocząć próbę wykorzystania błędu.
Właśnie dlatego argument „moja firma jest za mała, żeby ktoś chciał ją hakować” daje fałszywe poczucie bezpieczeństwa.
Atakujący bardzo często nie wybiera firmy. Wybiera podatność.
Najczęstszy problem to nie haker siedzący przed terminalem
Filmowy obraz cyberataku zwykle przedstawia człowieka ręcznie wpisującego polecenia i próbującego przełamać zabezpieczenia konkretnego systemu.
W rzeczywistości znacznie częściej pierwszym etapem jest automatyzacja.
Internet jest regularnie skanowany pod kątem popularnych usług i aplikacji.
Jeżeli opublikowana zostanie informacja o nowej podatności w popularnej wtyczce, systemie CMS albo bibliotece, bardzo szybko mogą pojawić się narzędzia próbujące wykorzystać ją na dużej liczbie stron.
Firma może więc zostać zaatakowana kilka godzin lub dni po ujawnieniu problemu, nawet jeżeli wcześniej nikt się nią nie interesował.
Nieaktualne oprogramowanie jest jednym z największych zagrożeń
Strona internetowa rzadko składa się wyłącznie z jednego programu.
Może wykorzystywać system CMS, motyw, dodatkowe moduły, biblioteki JavaScript, frameworki, środowisko PHP, bazę danych, serwer WWW oraz usługi zewnętrzne.
Każdy z tych elementów może posiadać podatności.
Problem pojawia się wtedy, gdy właściciel strony przestaje instalować aktualizacje.
Dotyczy to szczególnie popularnych systemów takich jak WordPress i PrestaShop, gdzie do podstawowego systemu często instalowane są dodatkowe rozszerzenia.
Samo używanie popularnego CMS nie oznacza, że strona jest niebezpieczna.
Ryzyko rośnie wtedy, gdy system posiada stare komponenty, porzucone rozszerzenia albo wtyczki, których nikt już nie rozwija.
Podatna wtyczka może wystarczyć do przejęcia całej strony
W WordPressie administrator często instaluje dodatkowe funkcje poprzez wtyczki.
Formularze kontaktowe, galerie, systemy SEO, kopie zapasowe, integracje z płatnościami oraz dziesiątki innych elementów mogą pochodzić od różnych autorów.
Każda kolejna wtyczka zwiększa liczbę elementów, które trzeba aktualizować i kontrolować.
Nie oznacza to, że należy zrezygnować ze wszystkich rozszerzeń.
Warto jednak instalować wyłącznie te, które są rzeczywiście potrzebne.
Rozszerzenie zainstalowane kilka lat temu i pozostawione na stronie „bo może jeszcze kiedyś się przyda” jest dodatkowym elementem wymagającym zabezpieczenia.
Hasło administratora nadal może być punktem wejścia
Nie każde włamanie wymaga znalezienia błędu w kodzie.
Czasami wystarczy zdobyć poprawne dane logowania.
Hasło może wyciec z innego serwisu, zostać przechwycone przez złośliwe oprogramowanie na komputerze albo zostać wykorzystane ponownie na kilku różnych stronach.
Jeżeli administrator używa identycznego hasła do poczty, hostingu i panelu CMS, pojedynczy wyciek może otworzyć dostęp do kilku systemów jednocześnie.
Dlatego jednym z najprostszych i jednocześnie najskuteczniejszych zabezpieczeń pozostaje używanie unikalnych haseł oraz menedżera haseł.
Dwuskładnikowe logowanie powinno być standardem
Silne hasło znacząco zwiększa bezpieczeństwo, ale nie rozwiązuje wszystkich problemów.
Jeżeli zostanie skradzione, atakujący nadal może spróbować się zalogować.
Dlatego do najważniejszych systemów warto włączyć uwierzytelnianie wieloskładnikowe.
Dotyczy to przede wszystkim panelu administracyjnego strony, konta hostingowego, poczty firmowej, panelu domeny, systemu płatności oraz innych usług umożliwiających zmianę konfiguracji firmy.
Przejęcie panelu domeny albo hostingu może być znacznie poważniejszym problemem niż samo przejęcie konta administratora WordPressa.
Cyberbezpieczeństwo strony zaczyna się poza samą stroną
Można posiadać bardzo dobrze zabezpieczony CMS i jednocześnie stracić kontrolę nad witryną przez zupełnie inny element infrastruktury.
Przykładem jest skrzynka pocztowa administratora.
Jeżeli atakujący przejmie pocztę, może wykorzystać mechanizm resetowania hasła.
Jeżeli przejmie panel rejestratora domeny, może próbować zmienić konfigurację DNS.
Jeżeli uzyska dostęp do hostingu, zabezpieczenia panelu CMS mogą nie mieć większego znaczenia.
Dlatego zabezpieczać trzeba cały łańcuch dostępu do strony.
Jedno konto administratora dla wszystkich to zły pomysł
W małych firmach często można spotkać jeden login administratora używany przez właściciela, pracownika, informatyka i osobę zajmującą się marketingiem.
Jest to wygodne, ale bardzo utrudnia kontrolowanie bezpieczeństwa.
Każda osoba powinna posiadać własne konto z zakresem uprawnień odpowiednim do wykonywanych zadań.
Osoba publikująca artykuły na blogu nie musi posiadać możliwości instalowania wtyczek albo zmiany konfiguracji serwera.
Jeżeli konto zostanie przejęte, ograniczone uprawnienia mogą znacząco zmniejszyć skalę szkód.
To podstawowa zasada najmniejszych niezbędnych uprawnień.
Błędna konfiguracja może być równie groźna jak podatność
Nie każdy problem bezpieczeństwa wynika z błędu programisty.
Strona może być poprawnie napisana, ale niewłaściwie skonfigurowana.
Przykładem mogą być publicznie dostępne pliki kopii zapasowych, katalogi zawierające poufne dane, błędnie ustawione prawa dostępu, pozostawione konta testowe albo komunikaty błędów pokazujące zbyt dużo informacji o systemie.
Takie problemy mogą nie być widoczne podczas normalnego korzystania ze strony.
Dla automatycznego skanera mogą jednak stanowić bardzo wartościową informację.
Co może zrobić atakujący po przejęciu strony?
Przejęcie witryny nie zawsze kończy się komunikatem „ta strona została zhakowana”.
W wielu przypadkach właściciel przez długi czas może nie zauważyć problemu.
Atakujący może działać tak, aby nie zwracać na siebie uwagi.
Dlatego fakt, że strona wygląda normalnie, nie jest dowodem na to, że nie została naruszona.
SEO spam może zniszczyć widoczność strony
Jednym z ciekawszych przykładów ataku jest wykorzystanie legalnej strony do tworzenia dużej liczby podstron ze spamem.
Mogą dotyczyć hazardu, podrabianych produktów, podejrzanych usług albo innych tematów całkowicie niezwiązanych z działalnością firmy.
Właściciel wchodzi na stronę główną i nie widzi niczego podejrzanego.
Tymczasem wyszukiwarka może indeksować setki lub tysiące dodatkowych adresów.
W pewnym momencie w Google zaczynają pojawiać się dziwne wyniki powiązane z domeną firmy.
Problem przestaje wtedy być wyłącznie problemem informatycznym.
Staje się również problemem SEO i wizerunkowym.
Formularz kontaktowy również może być celem
Formularze są jednym z najbardziej oczywistych miejsc przyjmujących dane od użytkownika.
Dlatego powinny być projektowane z założeniem, że ktoś będzie próbował przekazać do nich nieprawidłowe lub złośliwe dane.
Dane należy odpowiednio walidować i przetwarzać po stronie serwera.
Nie można zakładać, że ograniczenie wykonane wyłącznie w przeglądarce użytkownika jest wystarczającym zabezpieczeniem.
W przypadku operacji na bazie danych istotne jest również właściwe przygotowanie zapytań i brak bezpośredniego łączenia danych użytkownika z zapytaniem SQL.
HTTPS jest konieczne, ale nie oznacza bezpiecznej strony
Kłódka znajdująca się przy adresie strony potwierdza przede wszystkim szyfrowanie połączenia pomiędzy przeglądarką a serwerem.
To bardzo ważne.
Nie oznacza jednak, że sama aplikacja jest bezpieczna.
Strona może posiadać poprawny certyfikat TLS i jednocześnie mieć podatną wtyczkę, błędną kontrolę dostępu albo słabe hasło administratora.
HTTPS jest więc fundamentem, a nie kompletnym systemem bezpieczeństwa.
Kopia zapasowa nie zapobiega atakowi
Backup jest jednym z najważniejszych elementów bezpieczeństwa, ale warto rozumieć jego rolę.
Kopia zapasowa nie zatrzyma włamania.
Może natomiast uratować firmę po incydencie.
Jeżeli atakujący usunie pliki, zaszyfruje dane albo uszkodzi bazę, możliwość odtworzenia poprawnej wersji strony może znacząco skrócić przestój.
Sam fakt posiadania backupu również nie wystarcza.
Kopia powinna być wykonywana regularnie, przechowywana niezależnie od głównego środowiska oraz okresowo testowana.
Kopia znajdująca się wyłącznie na tym samym serwerze może zniknąć razem ze stroną.
Najważniejsze jest sprawdzenie, czy backup rzeczywiście działa
Jednym z najgorszych momentów na odkrycie uszkodzonej kopii zapasowej jest dzień, w którym trzeba z niej skorzystać.
Dlatego profesjonalny proces backupu powinien obejmować możliwość odtworzenia danych.
Dopiero poprawnie wykonany test przywracania daje pewność, że kopia rzeczywiście ma wartość.
Aktualizacje nie powinny być wykonywane bezmyślnie
Aktualizowanie systemów jest konieczne, ale w przypadku strony firmowej dobrze wykonywać je w kontrolowany sposób.
Aktualizacja może naprawić podatność, ale może również spowodować konflikt pomiędzy rozszerzeniami albo zmienić działanie aplikacji.
Dlatego przed większymi zmianami warto posiadać aktualną kopię zapasową.
W bardziej rozbudowanych systemach aktualizacje powinny być najpierw sprawdzane w środowisku testowym.
Bezpieczeństwo nie polega na klikaniu przycisku aktualizacji najszybciej jak to możliwe bez jakiejkolwiek kontroli.
Polega na szybkim, ale przewidywalnym usuwaniu znanych problemów.
Monitoring jest równie ważny jak zabezpieczenia
Nie istnieje system, którego nie można zaatakować.
Dlatego dobra strategia bezpieczeństwa nie może zakładać wyłącznie zapobiegania.
Trzeba również umieć zauważyć, że dzieje się coś nieprawidłowego.
Warto monitorować między innymi błędy aplikacji, próby logowania, zmiany plików, dostępność strony, nietypowe zachowanie serwera oraz nowe konta z wysokimi uprawnieniami.
Im szybciej zostanie zauważony incydent, tym większa szansa na ograniczenie jego skutków.
WAF i ograniczanie ruchu pomagają, ale nie naprawią podatnego kodu
Web Application Firewall może blokować część niebezpiecznych zapytań i ograniczać masowe automatyczne ataki.
Mechanizmy ograniczania liczby żądań mogą również utrudniać próby logowania wykonywane tysiące razy.
Są to wartościowe warstwy ochrony.
Nie należy jednak traktować ich jako zamiennika aktualizacji i poprawnego kodu.
Firewall może ograniczać możliwość wykorzystania problemu, ale najlepszym rozwiązaniem nadal jest usunięcie samej podatności.
Bezpieczeństwo WordPressa zależy również od sposobu jego utrzymania
WordPress jest wykorzystywany przez ogromną liczbę stron internetowych.
Jego popularność powoduje jednocześnie, że jest bardzo często skanowany przez automatyczne narzędzia.
Nie oznacza to, że każda strona WordPress jest niebezpieczna.
Znaczenie ma sposób jej wykonania oraz późniejszego utrzymania.
Rozsądna liczba sprawdzonych wtyczek, aktualizacje, właściwe uprawnienia, bezpieczny hosting, silne uwierzytelnianie i regularne kopie zapasowe potrafią znacząco ograniczyć ryzyko.
Problemem są przede wszystkim strony pozostawione przez kilka lat bez opieki.
PrestaShop również wymaga regularnej opieki
Sklep internetowy posiada dodatkowy poziom ryzyka, ponieważ jest bezpośrednio związany z działalnością firmy.
Awaria strony wizytówkowej jest problemem.
Awaria sklepu internetowego może natomiast natychmiast zatrzymać sprzedaż.
Dochodzą integracje z systemami płatności, dostawami, pocztą, modułami zewnętrznymi oraz danymi klientów.
Dlatego aktualizacje i kontrola modułów w systemach e commerce mają szczególnie duże znaczenie.
Własny CMS nie oznacza automatycznie większego bezpieczeństwa
Można spotkać dwa skrajne podejścia.
Według pierwszego popularny CMS jest zawsze niebezpieczny.
Według drugiego własny system napisany od zera jest automatycznie bezpieczny, ponieważ nikt go nie zna.
Oba podejścia są błędne.
Bezpieczeństwo zależy od jakości kodu, architektury, sposobu wdrożenia oraz późniejszego utrzymania.
Dedykowany CMS daje możliwość ograniczenia liczby zbędnych funkcji i zależności, ale wymaga odpowiedzialnego projektowania mechanizmów logowania, sesji, kontroli dostępu, walidacji danych, obsługi błędów i bazy danych.
Ukrywanie sposobu działania aplikacji nie powinno być jej główną warstwą zabezpieczeń.
OWASP pokazuje, że problemy często dotyczą podstaw
Aktualne zestawienie OWASP Top 10 wskazuje między innymi problemy związane z kontrolą dostępu, błędną konfiguracją, łańcuchem dostaw oprogramowania, kryptografią, wstrzykiwaniem danych oraz błędami uwierzytelniania.
To pokazuje, że bezpieczeństwo aplikacji internetowej nie sprowadza się do zainstalowania jednego programu ochronnego.
Jest efektem sposobu zaprojektowania całego systemu.
Atak może zacząć się od firmy zewnętrznej
Strona korzysta dzisiaj z wielu usług, których sam właściciel nie kontroluje.
Mogą to być biblioteki, systemy analityczne, narzędzia marketingowe, moduły płatności, dostawcy hostingu i różne integracje.
Każda taka zależność tworzy element łańcucha dostaw.
Dlatego warto ograniczać liczbę niepotrzebnych usług i wiedzieć, jakie zewnętrzne komponenty rzeczywiście są używane przez stronę.
Cyberprzestępcy coraz częściej wykorzystują AI
Sztuczna inteligencja pomaga nie tylko administratorom i programistom.
Może być również wykorzystywana przez atakujących do szybszego analizowania systemów, przygotowywania treści phishingowych, automatyzowania części pracy i tworzenia bardziej przekonujących prób oszustwa.
Nie oznacza to pojawienia się całkowicie nowej kategorii cyberataków.
W wielu przypadkach AI przyspiesza po prostu istniejące wcześniej techniki.
Tym bardziej istotne stają się podstawowe mechanizmy ochrony, które utrudniają wykonanie ataku niezależnie od tego, w jaki sposób został przygotowany.
Co realnie powinien zrobić właściciel małej firmy?
Nie trzeba budować działu bezpieczeństwa składającego się z kilkunastu specjalistów.
Największą poprawę można uzyskać poprzez konsekwentne stosowanie podstawowych zasad.
System powinien być aktualizowany. Konta powinny posiadać unikalne hasła i dodatkowy składnik logowania. Każdy użytkownik powinien posiadać tylko potrzebne uprawnienia. Kopie zapasowe powinny znajdować się poza głównym środowiskiem. Strona powinna być monitorowana, a niepotrzebne komponenty usuwane.
Warto również zadbać o zabezpieczenie hostingu, domeny i poczty, ponieważ wszystkie te elementy są częścią tej samej infrastruktury.
Co zrobić po wykryciu włamania?
Pierwszym odruchem często jest jak najszybsze przywrócenie strony.
To zrozumiałe, ale samo usunięcie widocznego złośliwego pliku nie rozwiązuje problemu.
Trzeba ustalić, w jaki sposób doszło do włamania.
Jeżeli przyczyną była podatna wtyczka, a po odtworzeniu kopii nadal pozostanie ona zainstalowana, strona może zostać ponownie przejęta.
Jeżeli wyciekło hasło, trzeba je zmienić również w innych miejscach, w których mogło być używane.
Jeżeli pojawiło się dodatkowe konto administratora, trzeba sprawdzić, czy nie utworzono kolejnych mechanizmów umożliwiających powrót.
Reakcja na incydent powinna więc obejmować zarówno przywrócenie działania strony, jak i znalezienie przyczyny problemu.
Bezpieczeństwo to proces, a nie jednorazowa usługa
Strona może być dobrze zabezpieczona w dniu publikacji.
Nie oznacza to, że będzie równie bezpieczna dwa lata później.
Pojawiają się nowe podatności, aktualizacje, nowe wersje oprogramowania oraz nowe techniki ataków.
Zmieniają się również osoby posiadające dostęp do firmy.
Dlatego bezpieczeństwo wymaga regularnej kontroli.
Nie musi ona oznaczać codziennego wykonywania testów penetracyjnych.
W wielu małych firmach ogromną różnicę daje już poprawne zarządzanie aktualizacjami, dostępami, backupem i monitoringiem.
Najdroższe zabezpieczenie nie zawsze jest najlepszym zabezpieczeniem
Rynek cyberbezpieczeństwa oferuje ogromną liczbę produktów.
Firewall, skaner, system monitoringu, dodatkowa usługa ochronna i kolejne rozszerzenia mogą być wartościowe.
Nie powinny jednak przykrywać podstawowych błędów.
Nie ma większego sensu kupowanie rozbudowanego systemu bezpieczeństwa, jeżeli administrator wykorzystuje to samo hasło od kilku lat, kopie zapasowe nie działają, a system CMS nie był aktualizowany od kilkunastu miesięcy.
Najpierw trzeba uporządkować fundamenty.
Podsumowanie
Mała firma nie jest zbyt mała, żeby zostać zaatakowana.
W większości przypadków nie chodzi nawet o to, że ktoś specjalnie wybierze konkretną działalność.
Internet jest nieustannie skanowany, a automatyczne narzędzia szukają znanych słabości.
Największym zagrożeniem są często rzeczy bardzo proste: nieaktualny system, porzucona wtyczka, przejęte hasło, brak dodatkowego składnika logowania, niewłaściwe uprawnienia albo kopia zapasowa, której nigdy nie sprawdzono.
Dobre cyberbezpieczeństwo nie polega na obietnicy, że strony nigdy nie da się zaatakować.
Polega na ograniczaniu powierzchni ataku, utrudnianiu przejęcia systemu, szybkim wykrywaniu nieprawidłowości oraz możliwości sprawnego odzyskania działania po incydencie.
W Stronoróbie bezpieczeństwo traktuję jako część tworzenia strony internetowej, a nie dodatek instalowany na końcu projektu. Kod, konfiguracja serwera, zarządzanie dostępem, aktualizacje i kopie zapasowe powinny być traktowane jako element jednego systemu.