Przejdź do treści

Agencja Marketingowa

WordPress SQL Injection - co to jest i jakie są zagrożenia
Strona główna » Blog o biznesie i marketingu » Aktualności » WordPress SQL Injection – co to jest i jakie są zagrożenia

WordPress SQL Injection – co to jest i jakie są zagrożenia

W dzisiejszym wpisie skupimy się na zagadnieniu SQL Injection, czyli jednym z zagrożeń mogących uszkodzić naszą stronę internetową na WordPress i wykraść dane o klientach. Zapraszam do wpisu.

SQL Injection to jedne z najbardziej szkodliwych, a zarazem bardzo częstych ataków na strony internetowe postawione na WordPressie. Tak w skrócie – SQL Injections WordPress pozwala hakerowi na dostęp do Twojej bazy danych, co w następstwie uszkodzenie witryny, wykradzenie danych klientów lub wypełnienie jej malware.

W 2019 2/3 wszystkich ataków na strony WordPressowe wykorzystywało atak typu SQL Injection. Liczba ataków w kolejnych latach trochę zmalała, mimo to tego typu atak wciąż stanowi spore zagrożenie dla wszystkich stron WordPressowych. Zrozumienie i poznanie zasad “wstrzyknięcia SQL” pozwoli chronić się przed atakiem i utratą danych.

Co to jest SQL Injection?

Zacznijmy od początku. SQL Injection jest zlepkiem dwóch słów pochodzących z języka angielskiego. SQL to skrót od “Structured Query Language” oznaczający język używany przy tworzeniu, modyfikowaniu, umieszczaniu lub pobieraniu danych z bazy. Injection z kolei oznacza wstrzyknięcie. Jeśli nie jesteś zaawansowany w WordPressie to śpieszę z wyjaśnieniem na temat bazy danych i jak SQL Injection ma się do WordPressa. WordPress to silnik, który łączy się z bazą danych. Każda strona WordPress posiada bazę danych, w której to przetrzymuje informacje na temat np. użytkowników, zamówień WooCommerce, wpisów na bloga, linków, komentarzy itp. Tak naprawdę stanowi skarbiec z najważniejszymi informacjami o stronie internetowej na WordPressie. Jeśli chcesz sprawdzić z jaką bazą danych jest połączona Twoja strona internetowa to musisz zalogować się do hostingu przez FTP i w pliku wp-config.php umieszczonym w folderze public_html znajdziemy te informacje. Pamiętaj, aby nigdy nie udostępniać tego pliku osobom trzecim. Mając informacje do bazy danych narażasz się na wiele zagrożeń, o których opowiem zaraz. Wróćmy do tematu. Skoro wiemy czym jest baza danych w WordPress to czym będzie SQL Injection?

Co znajdziemy w bazie danych?

SQL Injection na WordPress jest próbą uzyskania nieautoryzowanego dostępu do bazy danych Twojej strony internetowej. Tego typu atak hakerski wykorzystuje język SQL, który jak wspominałem odpowiada za interakcje z bazą danych. Sprytne wykorzystanie tego języka pozwala wydobyć z witryny WordPress pobranie interesujących nas danych – dla przykładu login i hasło administratora strony. SQL Injection działa wtedy, kiedy haker wykorzystując pola formularza wprowadzi do niego komendę SQL i typ samym otrzyma dostęp do bazy danych. Tak mówiąc ogólnie, haker wykorzystuje “nieoczyszczone dane wyjściowe” (zwane “unsanitised inputs“). Są to dane wprowadzone przez użytkownika (czyli w tym wypadku hakera), które nie są sprawdzane lub walidowane przez system (witrynę). Dane z kolei wykonywane są przez bazę danych i odsyła z powrotem do użytkownika wyniki. Polega to na bardzo kreatywnym wykorzystywaniu komend SQL do uzyskania pożądanego wyniku.

Baza danych w WordPress
Tak wygląda baza danych w WordPress

No dobrze wszystko jasne, ale zapytasz mnie jak to jest możliwe skoro tworząc bazę danych pod naszą stronę internetową wybieramy hasło i login użytkownika. Ano odpowiadam. SQL Injection wykorzystuje luki i słabe zabezpieczenia wtyczek do umieszczania poleceń SQL w polach formularza. Dla przykładu – zainstalowałeś wtyczkę obsługującą formularz kontaktowy. Wtyczka jest mało znana i do tego dodajmy, że nie jest zaktualizowana do najnowszej wersji. Haker wypełnia pole kontaktowe specjalnym kodem SQL, na który WordPress pomija i przekazuje je bezpośrednio do bazy danych. Ta z kolei zwraca wynik hakerowi. To tak jak Ty będąc na stronie używasz opcji szukaj do znalezienia danego produktu. Zadajesz pytanie – maszyna odpowiada. SQL Injection to “poproszenie” o dane z bazy danych, przez nieautoryzowaną osobę, która wykorzystuje luki i podatność silnika/wtyczki. Po otrzymaniu danych haker może wypełnić stronę internetową złośliwym oprogramowaniem czy spowodować inny rodzaj spustoszenia. Hakerzy najczęściej celują w pola formularza, pola wyszukiwania czy inne otwarte pola, które można wypełnić. Na SQL Injection podatne są również koszyki z WooCommerce.

Zagrożenia SQL Injection na stronę WordPress

Konsekwencje wydobycia danych z bazy są przeróżne. To co haker zrobi z danymi to zależy tylko i wyłącznie od niego. Ty nawet nie dowiesz się, że jest w posiadaniu tego typu danych. To znaczy dowiesz się ale po tym jak np. nie będziesz mógł się zalogować na stronę WordPress.

  • Utrata strony. W najgorszym przypadku haker wyczyści całą Twoją bazę danych przez co strona internetowa nie będzie możliwa do odtworzenia. Po prostu nie będzie miała w sobie żadnych danych. Czysta kartka.
  • SQL Injection może służyć również do wstrzyknięcia złośliwego oprogramowania zwanego malware. Takie oprogramowanie zacznie tworzyć spamerskie treści, zmieniać znaki, tworzyć linki do innych stron, tworzyć tysiące komentarzy z linkami czy tworzyć przekierowanie na inne strony. Jest to szczególnie niebezpieczne w przypadku sklepów internetowych na WordPress. Wyobraźmy sobie, że mamy sklep online. Haker, który dzięki SQL Injection “kontroluje naszą stronę” podmienił przycisk prowadzący do płatności internetowych na własny link – który zamiast płacić za zakupy na nasze konto, klient przelewa na konto hakera. Dodatkowo po udanym zamówieniu, może zmienić zamówienie klientowi na “zrealizowane”.
  • Nasza strona jeśli zostanie “zasypana” spamerskimi treściami może trafić na czarną listę Google. Wyszukiwarka Google uzna naszą stronę za spam (bo zawiera spam) i przestaniemy wyświetlać się w Internecie
  • Haker otrzymuje dostęp do wszystkich kont użytkowników razem z ich adresami email. Może zmieniać ich uprawnienia, a także nadać uprawnienia administratorskie dla siebie.
  • Jako, że haker po udanym ataku SQL Injection, może kontrolować, zmieniać, edytować i wyciągać dane z bazy może to prowadzić do wymuszeń okupu. Z pewnością wielokrotnie słyszałeś/aś o potężnych karach związanych z RODO. Wiele firm musiało zapłacić kary pieniężne, za to ,że nie wykonało wszystkich kroków, które by uniemożliwiło kradzież tego typu danych. Taką bazę z mailami klientów haker może sprzedać innym firmom.

Jak więc widzisz SQL Injection na stronę internetową WordPress jest bardzo poważnym atakiem, który może wyrządzić wiele szkód.

Jak sprawdzić czy strona WordPress jest podatna na SQL Injection?

Trzeba pamiętać jedno. Strona internetowa to tylko kod. Silnik WordPress to tylko kod. Wtyczki do WordPressa to tylko kod. A kod może mieć w sobie luki. SQL Injection wykorzystuje te luki i dlatego takie ataki są skuteczne. Możemy jednak sprawdzić czy nasza strona jest podatna na taki “zastrzyk SQL”.

  • Sprawdź czy strona wymaga aktualizacji. To się tyczy zarówno silnika, wtyczek czy motywu. Brak aktualizacji sprawia, że ewentualne luki w kodzie nie zostały załatane przez co strona jest podatna na atak.
  • Wykonaj test penetracyjny. Możesz wykonać test SQL Injection na swojej witrynie aby sprawdzić podatność swojego WordPressa na tego typu atak.
  • Możesz również przetestować swoją witrynie za pomocą kodą SQL. To jednak wymaga umiejętności technicznych. W zależności od typu bazy danych jakiej używasz, możesz wspomóc się tą rozpiską.
  • W internecie znajdziesz wiele onlinowych skanerów, które sprawdzą Twoją stronę pod kątem SQL Injection. Pamiętaj, że to są tylko testy i nie chronią one przed ewentualnym, prawdziwym atakiem. Dbaj o bezpieczeństwo swojej strony lub pozostaw ją w opiece specjaliście.

Dlaczego SQL Injection jest tak popularne?

Wstrzyknięcie kodu SQL pozwala uzyskać wiele cennych danych, które jak wiadomo są bardzo wartościowe i można je wykorzystać na wiele różnych sposobów. Jest to główny powód popularności tego typu ataku na strony internetowe. Kolejne powody to:

  • Większość stron internetowych korzysta z SQL,
  • Ataki przeprowadzane są głównie przez pola formularza, a większość stron internetowych posiada tego typu rozwiązania na stronie, czy chociażby pasek wyszukiwania,
  • Jest wiele skanerów dostępnych online, które sprawdzają stronę pod kątem SQL Injection. Może to być wykorzystywane w ramach “ethical hacking”, ale także przez hakerów czyhających na nasze dane,
  • Co jak co, ale SQL Injection na WordPress jest w miarę łatwy do wykonania. Nie wymaga skomplikowanego sprzętu, narzędzi czy wieloletnich umiejętności,
  • Luki w kodzie pojawiają się i będą pojawiać się cały czas. Developerzy nie zawsze sprawdzają swoje wtyczki pod kątem cyberbezpieczeństwa. Co ciekawe, podatność na SQL Injection zostały odkryte także we wtyczkach odpowiadających za bezpieczeństwo WordPressa.

Jak chronić się przed SQL Injection na WordPress?

Podsumowując. Właściciel strony WordPress nie wiele może zrobić, aby zabezpieczyć się przed atakiem na SQL Injection. Ten atak wykorzystuje luki w kodzie, które pojawiają się cały czas. Jedyne co można zrobić to na bieżąco aktualizować wtyczki, motywy i silnik WordPress. Można również zabezpieczyć się porządnym FireWallem na WordPressa lub wykonywaniem regularnych kopii zapasowych. Ta ostatnia opcja nie ochroni przed atakiem, a jedynie pozwoli przywrócić stronę do funkcjonalności. Jeśli potrzebujesz pomocy w zabezpieczeniu strony WordPress – napisz do mnie.

Tagi: