WordPress – ochrona bazy danych

W każdym systemie CMS najcenniejsze zbiory danych przechowywane są w bazie danych. Bez niej strona internetowa nie będzie działać, w szczególności jeżeli chodzi o WordPress-a. Nie będzie działać także w przypadku jej uszkodzenia. Oznacza to, że powinieneś szczególnie duża wagę do tego, aby chronić właśnie ten element.

WordPress - ochrona bazy danych
Obsługa strony internetowej

Coraz więcej stron internetowych pada ofiarą zmasowanego ataku i jest wykorzystywanych do rozpowszechniania szkodliwego kodu. Metoda SQL injection, to metoda, która korzysta z bazy danych SQL, a polega na tym, że atakujący wstrzykuje do naszej strony internetowej fragment zapytania SQL, dzięki któremu cyberprzestępcy umieszczają fragment złośliwego kodu JavaScript lub PHP na naszej stronie www. Hakerzy, korzystają również ze skryptów, które zawierają kod HTML, na ogół wykorzystują elementy <iframe> odwołujące się do stron zewnętrznych, które zawierają spreparowany w zależności od potrzeb kod. Skutkiem takiego działania może być nie tylko wgląd w nasze dane, ale także ich modyfikacja lub usunięcie.

Metoda SQL injection jest stosunkowo prosta i często stosowana przez hakerów. Jest to pierwszy typ ataku, którego uczą się hakerzy starający się atakować strony internetowe. Badania przeprowadzone przez WhiteHat Security wykazały, że przynajmniej 6% stron internetowych zawiera co najmniej jedną podatność SQL injection.

Takie ataki najprawdopodobniej przeprowadza się w sposób automatyczny, za pomocą specjalnie do tego przygotowanymi skryptami. Podatność na ataki SQL injection z reguły wynikają z następujących przyczyn:

  • braku lub niewystarczającej walidacji danych wejściowych,
  • braku kodowania znaków specjalnych przed wstawieniem do zapytania SQL

Nie tylko w źle napisanej wtyczce są luki, posiadać je może również kod źródłowy WordPress-a. Popularność WordPress-a przyczynia się do tego, że prawdopodobnie możemy zaliczyć go, do najbardziej testowanego na podatność na ataki CMS-a na świecie. Jak możemy zapobiec tego typu atakom? Korzystaj tylko ze sprawdzonych i bezpiecznych wtyczek. Dodatkową warstwą zabezpieczenia jest dobry hosting, który posiada oprogramowanie chroniące. Stosując się do powyższych zaleceń, warto o bazę danych zadbać również samemu. Oto kilka praktycznych porad:

  • Dla każdej nowej instalacji WordPress-a używaj nowej bazy danych
  • Wyczyść bazę danych ze zbędnych rzeczy, jeżeli korzystasz z niej do kolejnej instalacji, pozostaw tylko bieżące tabele.
  • Korzystaj zawsze z najnowszych wersji bazy danych. jeżeli twój hosting udostępni nowszą wersję, przenieś bazę danych.
  • Jeżeli twój hosting posiada taką możliwość, to używaj innej nazwy użytkownika niż nazwa bazy danych.
  • Ustawiaj silne hasło dostępu do bazy danych, na rynku jest dużo generatorów dostępnych online, z których możesz skorzystać.
  • Zmieniaj domyślny przedrostek (prefiks) tabeli w bazie danych.

Zmiana przedrostka – prefiksu naszej bazy danych

Podczas instalacji WordPress-a tworzonych jest jedenaście tabel w naszej bazie danych, mają one ten sam przedrostek, którym domyślnie jest wp_. Jeżeli prefiks nie zostanie zmieniony, wszystkie kluczowe tabele będą miał go dopisanego przed nazwą np.: wp_options czy wp_users.

Bez zmiany prefiksa, pozostawiasz furtkę, która ułatwia atak na bazę danych. Dotyczy to w szczególności zautomatyzowanych araków typu SQL injection, które w odpowiedzi na zapytanie użyte przez skrypt wywołuje właśnie nazwę tabeli łącznie z domyślnym prefiksem. Wiec nie ułatwiaj włamania do bazy danych swojego WordPress-a. Oczywiście ile osób tyle opinii, wiele osób zapomina o zmianie prefiksu, nie dostrzega potrzeby jego zmiany lub nie miało możliwości w momencie, kiedy WordPress był instalowany po raz pierwszy.

Jeżeli podczas instalacji WordPress-a z jakiegoś powodu nie dokonałeś zmiany prefiks, to nic straconego, możesz tego dokonać za pomocą wtyczki Change DB Prefix albo ręcznie.Bez względu na to, której metody użyjesz, przed nierozpoczęciem działań wykonaj kopię bazy danych oraz pliku konfiguracyjnego. Jeżeli zdecydujesz się na użycie wtyczki, po zakończeniu całego procesu koniecznie ją odinstaluj.

Jeżeli zdecydujesz się na zmianę prefiksa ręcznie, Wykonaj to za pomocą phpMyAdmin, który jest dostępny w większości paneli hostingowych. Wykorzystywanie do tego wtyczek, typu WP-DBManager czy iThemes Security, niesie ze sobą ryzyko, że jeśli pojawi się błąd bazy danych, to przestanie ona działać, wraz ze stroną internetową i zostaniesz z na wpół ukończonym zadaniem. W celu naprawienia błędu będziesz musiał wgrać kopię zapasową bazy danych i zacząć proces od nowa lub skorzystać z zewnętrznego narzędzia w celu dokończenia procesu.

Popraw uprawnienia dostępu do naszej bazy danych

W celu wykonania podstawowych, typowych operacji, takich jak pisanie i edytowanie postów czy instalacja wtyczek i motywów, nasz WordPress korzysta z uprawnień do odczytu (data read) i zapisu (data write). Oznacza to w praktyce, że nasz CMS nie potrzebuje szerokich uprawnień do bazy danych, jakie się mu na ogół daje. Więc po zakończeniu pracy nad stroną www, czyli instalacji systemu oraz wszystkich niezbędnych wtyczek, zmień istniejące uprawnienia do bazy danych. Wykonasz to za pomocą dowolnego narzędzia do zarządzania bazami danych, takim jak phpMyAdmin czy innego narzędzia o podobnej funkcjonalności.

  • Zaloguj się do bazy danych i przejdź do zakładki Użytkownicy, w której powinni pojawić się wszyscy dostępni użytkownicy bazy danych.
  • Następnie kliknij przycisk Edytuj uprawnienia.
  • Wybierz z listy bazę danych, dla której chcesz zmienić uprawnienia dostępu.
  • Następnie w trybie edycji pozostaw zaznaczone pola pierwszej kolumny, SELECT, INSERT, UPDATE i DELETE. reszta pól powinna być odznaczona.
  • Zapisz zmiany.

Kolejność oraz lokalizacja może być inna w zależności od wersji bazy danych. może się zdarzyć również, że któraś z wtyczek potrzebuje większych uprawnień, potrzebnych na przykład do tworzenia tabel. Jeżeli po zmianie zobaczysz błąd w zapleczu, powinieneś skorygować uprawnienia dostępu do bazy danych.

Podsumowanie

Niestety, ale żadna, nawet najbardziej wymyślna zaimplementowana reguła nie chroni cię przed atakami, jeżeli sam na własne pozostawisz furtkę dla skryptu, chociażby w użytej wtyczce, która może nieć lukę wynikającą z błędu programisty. Każdy administrator strony internetowej powinien nadzorować przede wszystkim stan techniczny, jak również dostępność krytycznych aktualizacji systemu, motywu czy wtyczek.Administrator, musi również analizować dziennik plików serwera, w których znajdzie takie informacje jak nieudane próby logowania czy włamania, a także adresy IP, z których to nastąpiło.