WordPress SQL Injection: narzędzia i techniki zapobiegania atakom

Opublikowany: 2020-09-24
Wstrzykiwanie SQL WordPress
Obserwuj @Cloudways

Wstrzyknięcie SQL było powszechnie stosowaną techniką hakerską do manipulowania bazą danych WordPress. W dzisiejszych czasach Cross Site Scripting (XSS) jest popularny i stał się pierwszą metodą hakowania witryny WordPress.

W tym przewodniku omówię podstawy WordPress SQL Injection i sposób, w jaki można się go pozbyć. W następnej części omówię Cross Site Scripting. Zacznijmy!

  • Co to jest wstrzykiwanie SQL?
  • Punkty wejścia dla ataków typu SQL Injection
  • Dlaczego ataki typu SQL Injection są częste?
  • Jak działa wstrzykiwanie SQL?
  • Sposoby zapobiegania wstrzykiwaniu SQL w WordPress
  • Wskazówka nr 1 Skanuj w poszukiwaniu luk związanych z iniekcją SQL
  • Tip#2 Aktualizuj, aktualizuj, aktualizuj!
  • Tip#3 Motyw WordPress i wtyczki
  • Tip#4 Użyj zaufanych wtyczek formularzy
  • Tip#5 Ukryj wersję WordPress
  • Tip#6 Zmień prefiks bazy danych
  • Tip#7 Zawsze rób kopie zapasowe
    Wskazówka nr 8 Prowadź dzienniki
  • Tip#9 Użyj zapory
  • Tip#10 Usuń niepotrzebne funkcje bazy danych
  • Często zadawaj pytania
  • Ostatnie słowa!

Co to jest wstrzykiwanie SQL?

SQL Injection jest wynikiem luk w kodowaniu zaplecza. Atakujący może łatwo nadużywać pól wejściowych, wprowadzając złośliwy kod, który może wykonywać polecenia SQL i może tworzyć, pobierać, aktualizować, a nawet usuwać dane z bazy danych.

SQL to skrót od Structured Query Language — najczęściej używanego języka bazy danych w tworzeniu stron internetowych. Oto kilka najpopularniejszych silników baz danych, które używają SQL.

Bazy danych używające SQL

Na rynku dostępnych jest wiele programów bazodanowych. Do popularnych należą:

  • Wyrocznia
  • MySQL
  • Serwer SQL
  • PostgreSQL
  • MongoDB itp.

Jak widać, MySQL jest drugim na liście. WordPress, który używa samego SQL, przyczynił się do powstania ponad 35% WWW i stał się najatrakcyjniejszym celem dla atakujących.

Bazy danych używające SQL

Punkty wejścia dla ataków typu SQL Injection

Wszystkie pola wejściowe są uważane za najczęstsze punkty wejścia dla ataków SQL Injection. W terminologii Laymana możemy powiedzieć:

  • Formularze rejestracji
  • Formularze logowania
  • Formularze kontaktowe
  • Wyszukiwanie w witrynie
  • Pola opinii
  • Wózki na zakupy

Dlaczego ataki typu SQL Injection są częste?

Powodów może być wiele, ale oto te najczęstsze, o których pamiętam podczas pisania poradnika.

  • Większość baz danych stron internetowych jest oparta na SQL
  • WordPress – najpopularniejszy CMS wykorzystuje SQL jako bazę danych
  • Prawie wszystkie strony internetowe mają pola wejściowe do zbierania informacji od odwiedzających
  • Wszystkie strony internetowe mają co najmniej jeden punkt wejścia SQL Injection
  • Narzędzia do skanowania SQL Injection są łatwo dostępne online
  • Nie wymaga żadnej złożoności technicznej do wykorzystania

Jak działa wstrzykiwanie SQL?

Na przykład masz formularz kontaktowy, w którym należy podać numer telefonu. Powinny obowiązywać pewne kryteria, takie jak wprowadzanie limitowanych liczb tylko w odpowiednim formacie.

Większość programistów, którzy nie znają walidacji danych wejściowych, może ustawić to pole jako zwykły tekst, co oznacza, że ​​można wprowadzić dowolny ciąg, który może być również złośliwym kodem. Używając niektórych zmienionych zapytań SQL, można zażądać nazwy użytkownika i hasła administratora.

Przykłady wstrzykiwania SQL w WordPress

Za pomocą prostego wyszukiwania w Google można znaleźć wiele luk w zabezpieczeniach SQL Injection. Ale dzisiaj podam przykład z życia: wystarczy spojrzeć na branżę gier. Tak się składa, że ​​wiele ataków typu SQL injection koncentruje się na grach wideo, jednej z największych i najbardziej dochodowych branż.

Poza tym w przeszłości hakerzy atakowali także pojedyncze strony internetowe, blogi, sklepy internetowe i niektóre z największych firm.

Dzieje się to od dłuższego czasu, kolejny przykład luki w WordPressie zgłoszony we wrześniu 2017 r. WordPress Core nie został bezpośrednio dotknięty tą luką, jednak opublikowano łatę (WordPress 4.8.3), aby zapobiec wpływowi na wtyczki i motywy WordPress .

Anthony Ferrara, człowiek odpowiedzialny za powyższą lukę, napisał obszerny przewodnik na temat WPBD SQL Injection, jego wpływu na witrynę WordPress i środków ostrożności dla każdego użytkownika WordPressa.

Nie ma niezawodnego sposobu na zabezpieczenie witryny WordPress. W rzeczywistości w przeszłości dotyczyło to nawet wtyczki zabezpieczającej WordPress. W 2014 roku jedna z najpopularniejszych wtyczek bezpieczeństwa wykazała DWIE luki, które umożliwiły wstrzyknięcie SQL.

Sposoby zapobiegania wstrzykiwaniu SQL w WordPress

Jak wspomniano wcześniej, nie ma sposobu, aby całkowicie pozbyć się prób włamania. Można jednak zminimalizować ryzyko włamania. Oto niektóre z najczęstszych praktyk, które mogą pomóc w zapobieganiu takim atakom.

Szukasz lepszej wydajności i bezpieczeństwa?

Przenieś swoją witrynę WooCommerce do Cloudways bez żadnych kosztów.

Migruj teraz!

Wskazówka nr 1 Skanuj w poszukiwaniu luk związanych z iniekcją SQL

Możesz znaleźć wiele narzędzi online do skanowania witryny WordPress. Mam krótką listę najwyżej ocenianych, w których wystarczy wpisać adres URL witryny WordPress i rozpocząć skanowanie w poszukiwaniu wykrytych luk w zabezpieczeniach.

  • Skanowanie zabezpieczeń WordPress — sprawdza podstawowe luki w witrynie WordPress. Zaawansowane skany są dostępne po uaktualnieniu premium.
  • Sucuri SiteCheck – Twoja witryna WordPress może zostać sprawdzona pod kątem znanego złośliwego oprogramowania, statusu na czarnej liście, błędów i jeśli witryna jest nieaktualna.
  • WPScan — samoobsługowy skaner luk w zabezpieczeniach, który jest bezpłatny do użytku osobistego. Możesz również uzyskać płatną licencję do użytku komercyjnego.

Uruchamiając raport ze skanowania, możesz dokładnie zobaczyć, na których obszarach należy się skoncentrować, aby poprawić bezpieczeństwo WordPressa.

Tip#2 Aktualizuj, aktualizuj, aktualizuj!

Najważniejsze dla każdego użytkownika WordPressa! Aktualizuj wszystko, w tym rdzeń WordPress, motyw i wtyczki.

Rdzeń WordPressa

Według oficjalnych statystyk WordPress tylko 29,3% witryn WordPress korzysta z najnowszej wersji (5.5.x). Wszystkie poprzednie wersje mogą być podatne na ataki i mogą zostać zhakowane. W powyższym przykładzie luki SQL Injection widać, że wszystkie witryny, które są poniżej najnowszej wersji, są podatne na wykrytą lukę. Jeśli Twoja witryna została zhakowana, mam nadzieję, że wiesz, kto będzie za to odpowiedzialny!

Podstawowe statystyki WordPress

Wersje PHP

PHP, backend WordPressa został znacznie ulepszony w ciągu ostatnich kilku lat. Wprowadzono wiele poprawek i zmian ukierunkowanych na wydajność. Mimo to ponad 23% użytkowników WordPressa używa PHP 7.2, który może być jednym z czynników SQL Injection w WordPressie. Najnowsza wersja PHP to 7.4

Uwaga: jeśli Twój hosting WordPress nie obsługuje najnowszych wersji PHP, nadszedł czas, aby natychmiast przełączyć hosta na zarządzany hosting WordPress, który obsługuje najnowsze wersje PHP, takie jak Cloudways.

Wersja PHP

Tip#3 Motyw WordPress i wtyczki

Większość luk w zabezpieczeniach, w tym wstrzykiwanie SQL w WordPressie, została wykryta we wtyczkach i motywach, a nie w rdzeniu WordPressa. Miej oko na aktualizacje, poprawki i odpowiednio dostosuj.

Jeśli motyw i wtyczka nie są regularnie aktualizowane, może to być znak zapytania w Twojej witrynie WordPress. Zawsze używaj motywu/wtyczki, która często się aktualizuje.

Uwaga: przed wykonaniem aktualizacji sprawdź zgodność między rdzeniem WordPressa, motywami i wtyczkami, aby upewnić się, że Twoja witryna działa tak, jak powinna. Aby przetestować, możesz wykonać kopię swojej aktywnej witryny, a następnie sprawdzić zgodność w środowisku pomostowym WordPress.

Tip#4 Użyj zaufanych wtyczek formularzy

Jeśli prowadzisz firmę, a nawet prostego bloga, musisz wiedzieć, jak ważne są formularze, takie jak formularze rejestracyjne, formularze logowania, formularze kontaktowe itp. Przy dużej liczbie wtyczek dostępnych w repozytorium WordPressa, ciężko znaleźć tę najlepszą. Dlatego, aby zawęzić wyszukiwanie, przygotowaliśmy listę najlepszych wtyczek WordPress Form.

Uwaga: Nie zapomnij sprawdzić wcześniej wykrytych luk i ich rozwiązania przed wybraniem jakiejkolwiek wtyczki.

Tip#5 Ukryj wersję WordPress

Zawsze sugeruje się, aby nie wyświetlać publicznie wersji WordPressa. Upublicznienie tych informacji może ułatwić atakującym wykorzystanie znanych luk w określonej wersji.

Aby ukryć wersję WordPress, po prostu skopiuj i wklej poniżej wiersz kodu do pliku functions.php aktywnego motywu.

remove_action ('wp_head', 'wp_generator');

Tip#6 Zmień prefiks bazy danych

Podczas instalacji WordPressa domyślnie prefiks bazy danych to „ wp_ ”. Większość użytkowników WordPressa ignoruje i po prostu instaluje z ustawieniami domyślnymi. Zgadywanie tabel bazy danych staje się łatwiejsze do wykorzystania dzięki technikom SQL Injection.

Nie martw się, jeśli masz już zainstalowany WordPress. Istnieje doskonały przewodnik dotyczący zmiany prefiksu bazy danych w WordPressie.

Tip#7 Zawsze rób kopie zapasowe

Kopie zapasowe mogą nie być bezpośrednio związane z wstrzykiwaniem SQL. Może jednak pomóc w odzyskaniu zaatakowanej witryny. Kopie zapasowe WordPress można przechowywać na dwa sposoby:

  • Lokalna kopia zapasowa : kopia zapasowa, która jest generowana automatycznie i/lub ręcznie i znajduje się u dostawcy usług hostingowych. Nie zaleca się przechowywania lokalnej kopii zapasowej, jeśli korzystasz z hostingu współdzielonego, ponieważ w przypadku naruszenia bezpieczeństwa serwera możesz również utracić kopie zapasowe. Jeśli jednak Twój serwer jest w dobrych rękach, takich jak Cloudways, możesz zachować lokalne kopie zapasowe dla WordPress.
  • Kopia zapasowa poza witryną: Automatyczne i/lub ręczne kopie zapasowe będą generowane i wysyłane do żądanej lokalizacji zewnętrznej, takiej jak Dysk Google, Dropbox, Amazon S3 itp. Napisaliśmy obszerny przewodnik dotyczący tworzenia kopii zapasowych witryn WordPress.

Wskazówka nr 8 Prowadź dzienniki

Dre Armeda, współzałożyciel Sucuri powiedział kiedyś:

Ludzie są i nadal będą największym problemem bezpieczeństwa w WordPressie.

Oznacza to, że musisz zrobić swój udział. Miej oko na zmiany i powinieneś prowadzić dziennik wszystkiego, co dzieje się w Twojej witrynie WordPress. Pomoże Ci śledzić zmiany wprowadzone przez Ciebie i/lub atakującego, abyś mógł odpowiednio działać.

Istnieje doskonała wtyczka dziennika audytu bezpieczeństwa WordPress, która z pewnością Ci pomoże! Dodatkowo Twój dostawca usług hostingowych prowadzi również dzienniki wszystkiego. Od czasu do czasu czytaj dzienniki.

Tip#9 Użyj zapory

Jedną z najlepszych i ważnych rzeczy jest użycie zapory, która zapewnia bezpieczeństwo i ochronę danych klientów. Oprócz tego możesz również zdefiniować poziom dostępu użytkowników na podstawie różnych czynników, takich jak subskrybowany pakiet. Jeśli korzystasz z Cloudways, nie musisz się o to martwić. Wszystkie hostowane serwery Cloudways są chronione zaporami ogniowymi na poziomie systemu operacyjnego, które filtrują złośliwy ruch i chronią przed intruzami.

Tip#10 Usuń niepotrzebne funkcje bazy danych

Jedna z najskuteczniejszych technik usuwania niepotrzebnych funkcji i zawartości bazy danych. Im bardziej jest podatny na potencjalny atak typu SQL injection. Aby temu zapobiec, znormalizuj swoją bazę danych i ulepsz swoją witrynę.

Często zadawaj pytania

P: Co to jest wstrzykiwanie SQL?

O: Wstrzyknięcie SQL jest wynikiem luk w kodowaniu zaplecza. Atakujący może łatwo nadużywać pól wejściowych, wprowadzając złośliwy kod, który może wykonywać polecenia SQL i może tworzyć, pobierać, aktualizować, a nawet usuwać dane z bazy danych.

P: Jaki jest przykład wstrzykiwania SQL do WordPressa?

Odp.: Dzieje się to od dłuższego czasu, kolejny przykład luki w WordPressie został zgłoszony we wrześniu 2017 r. WordPress Core nie został bezpośrednio dotknięty tą luką, jednak opublikowano łatę (WordPress 4.8.3), aby uniemożliwić jej wpływ na wtyczki WordPress i motywy.

P: Co robi wstrzyknięcie SQL?

O: SQL Injection był najbardziej podstawową i powszechnie stosowaną techniką hakerską do manipulowania bazą danych WordPress. W dzisiejszych czasach Cross Site Scripting (XSS) jest popularny i stał się pierwszą metodą hakowania witryny WordPress.

Ostatnie słowa!

Jak wspomniano wcześniej, nie ma niezawodnego sposobu ochrony witryny WordPress. Zawsze istnieje możliwość zhakowania, może to wynikać z luki w rdzeniu, motywie i wtyczkach. Dlatego zawsze sugeruje się AKTUALIZACJA! SQL Injection było bardzo często kontrolowane w ciągu ostatnich kilku lat.

Jeśli kiedykolwiek spotkałeś się z jakimkolwiek atakiem WordPress SQL Injection, podziel się swoim doświadczeniem, a także tym, jak się go pozbyć. Jestem pewien, że pomogłoby to innym użytkownikom WordPressa.