Co to jest atak włączenia pliku?
Opublikowany: 2023-03-31Każde narzędzie może być używane z dobrymi lub złymi intencjami, a włączanie plików nie różni się niczym. Włączanie plików to metoda programowania, która ułatwia utrzymywanie kodu i rozszerzanie funkcji w całej witrynie. Atak polegający na dołączaniu plików wykorzystuje sposób, w jaki PHP używa dołączania plików jako prawidłowej metody łączenia i wykonywania kodu z wielu oddzielnych plików w celu utworzenia jednej strony internetowej. Ponieważ PHP jest językiem używanym przez WordPress, WordPress i inne aplikacje PHP są podatne na luki w zabezpieczeniach związane z dołączaniem plików, gdy odpowiednie środki bezpieczeństwa są zepsute, niekompletne lub nieobecne.
W tym kompletnym przewodniku po atakach z włączeniem plików zbadamy, w jaki sposób hakerzy wykorzystują słabe oczyszczanie i sprawdzanie poprawności danych wprowadzanych przez użytkowników do wstrzykiwania złośliwego oprogramowania i wysyłania złych instrukcji w celu włamania się do witryn WordPress.
Dowiesz się, jak dochodzi do ataków polegających na dołączaniu plików WordPress i co możesz zrobić, aby chronić swoją witrynę przed padnięciem ich ofiarą.
Co to jest włączanie plików?
Włączanie plików to technika programistyczna polegająca na dołączaniu wielu plików do jednego skryptu lub strony internetowej w celu dodania funkcjonalności, ponownego wykorzystania szablonu projektu lub udostępnienia fragmentu treści na wielu stronach.
Inkluzje plików są absolutnie konieczne. Deweloperzy często używają ich do następujących celów:
- W tym pliki nagłówka i stopki wspólne dla wszystkich stron witryny, aby zapewnić spójność projektu i funkcji.
- W tym skrypty i biblioteki dla kluczowych funkcji w całej witrynie internetowej lub aplikacji internetowej.
- W tym pliki konfiguracyjne zawierające ustawienia aplikacji, takie jak informacje o połączeniu z bazą danych i klucze API.
- W tym treści, takie jak obrazy, wideo, tekst lub inne treści na stronach internetowych.
- W tym funkcjonalność do generowania dynamicznych treści na podstawie danych wprowadzonych przez użytkownika przekazywanych jako parametr adresu URL. Na przykład użytkownik może przesłać formularz w celu wygenerowania określonych danych wyjściowych.
Rodzaje włączania plików
Korzystając z techniki dołączania plików, programiści mogą dodawać pliki i skrypty do strony internetowej statycznie lub dynamicznie.
Korzystając z dołączania plików statycznych, programista może ponownie użyć tego samego tekstu lub kodu na wielu stronach, odwołując się do Uniform Resource Locator (URL) lub ścieżki do pliku przechowywanego lokalnie, czyli na tym samym serwerze. Inkluzje plików statycznych umożliwiają motywom używanie tego samego nagłówka, stopki lub kodu menu nawigacyjnego na wielu stronach internetowych.
Dynamiczne inkluzje plików akceptują dane wprowadzane przez użytkownika w czasie wykonywania. Użytkownik wskazuje żądane wyjście, przekazując ścieżkę do określonego pliku. Zazwyczaj dane wprowadzane przez użytkownika będą przekazywane jako parametr w adresie URL lub przesłaniu formularza. Na przykład użytkownik może wybrać język „angielski” z rozwijanej listy języków, co spowoduje przejście do anglojęzycznej wersji strony, na której się znajduje, zmieniając adres URL w następujący sposób: /page.php?language=english
. Jeśli ktoś zastąpi „ english
” adresem URL zdalnego pliku, może być w stanie wstrzyknąć powłokę sieciową jako backdoora i/lub inne złośliwe oprogramowanie do docelowej witryny, jeśli nie ma kontroli, aby temu zapobiec.
Jak wdrażane jest włączanie plików w WordPress?
Wszystkie dynamiczne aplikacje internetowe napisane w PHP — takie jak WordPress — mogą bezpiecznie korzystać z dołączania plików. W aplikacjach napisanych w PHP programiści włączają pliki za pomocą instrukcji include
i require
. Programiści używają obu instrukcji, aby wstawić zawartość jednego skryptu PHP do drugiego. Dzieje się to przed wykonaniem kodu na serwerze.
Jeśli spojrzysz na niektóre podstawowe pliki WordPress, wiele z nich odnosi się do innych podstawowych skryptów. Po załadowaniu wszystkich razem tworzą strukturę witryny i generują poszczególne strony internetowe, o które prosi odwiedzający. Główny index.php
odwołuje się do wp-blog-header.php
, który ładuje środowisko WordPress i szablon motywu — odpowiednio wp-load.php
i template-loader.php
.
Wraz z rdzeniem WordPress, wtyczki i motywy również wykorzystują dołączanie plików do wykonywania niezbędnych zadań. Jednak przy dziesiątkach tysięcy dostępnych wtyczek WordPress nie wszystkie z nich są tak dobrze przetestowane, jak rdzeń WordPress.
Inkluzje plików stanowią poważne zagrożenie bezpieczeństwa, gdy programiści nie zabezpieczają ich odpowiednio. Jeśli kod, którego używasz, nie weryfikuje i nie oczyszcza danych wprowadzanych przez użytkownika, hakerzy mogą to wykorzystać. Mogą go używać do instalowania złośliwego oprogramowania i kradzieży poufnych informacji — prawdopodobnie Twoich lub Twoich klientów!
Co to jest atak włączenia pliku?
Możliwe są dwa rodzaje ataków na włączanie plików: lokalne włączanie plików (LFI) lub zdalne włączanie plików (RFI).
Ataki polegające na włączaniu plików są częścią szerszej klasy ataków polegających na wstrzykiwaniu . Obejmuje to iniekcje SQL (SQLi), skrypty między lokacjami (XSS) i ataki polegające na dołączaniu poleceń. Hakerzy mogą wykorzystywać luki w zabezpieczeniach danych wejściowych do przeprowadzania innych rodzajów ataków, takich jak ataki z przepełnieniem bufora.
Lokalne i zdalne ataki z włączeniem plików
Witryny i aplikacje internetowe, które polegają na dynamicznym dołączaniu plików w celu włączenia niektórych funkcji, mogą być narażone zarówno na ataki zdalnego dołączania plików, jak i lokalne ataki dołączania plików.
Lokalne inkluzje plików (LFI)
Atak polegający na włączeniu pliku lokalnego może polegać na wstrzyknięciu pliku znajdującego się na tym samym serwerze, co docelowa witryna internetowa lub aplikacja internetowa. Ataki LFI mogą często uzyskać dostęp do normalnie zastrzeżonych plików. W przypadku ataku LFI dołączony plik musi już znajdować się na docelowym lokalnym serwerze aplikacji. Podczas ataku LFI osoba atakująca może odczytać ważne pliki, uzyskać dostęp do poufnych informacji lub wykonać dowolne polecenia.
Ataki polegające na dołączaniu plików lokalnych mogą również umożliwić dostęp do poufnych danych poza witryną, na którą są one ukierunkowane. Obejmuje to pliki konfiguracyjne serwera, takie jak /etc/passwd
lub pliki konfiguracyjne innej witryny, takie jak wp-config.php
. Należy jednak zauważyć, że pliki docelowe muszą być czytelne dla nieuprzywilejowanych użytkowników — na przykład plik /etc/passwd
w systemach Linux jest własnością użytkownika root, ale przy uprawnieniach do plików ustawionych na 644 wszyscy inni użytkownicy systemu może to zobaczyć.
Aby poruszać się po systemie plików, osoby atakujące wykorzystują przemierzanie katalogów, technikę uzyskiwania dostępu do plików poza bieżącym katalogiem roboczym poprzez manipulowanie sekwencjami przechodzenia do katalogów, takimi jak ../../../
.
Zdalne inkluzje plików (RFI)
Celem ataków na zdalne włączanie plików są strony internetowe i aplikacje, które odwołują się do plików przechowywanych na innym serwerze. Wykorzystując zdalne dołączanie plików, osoba atakująca może wykorzystać złośliwy kod hostowany w innym miejscu. Na docelowym serwerze musi istnieć luka, ale atakujący wykorzysta ją do wykonania złośliwego kodu hostowanego gdzie indziej.
W atakach Remote File Inclusion hakerzy wykorzystują polecenie „dynamic file include” w aplikacjach internetowych. Hakerzy mogą wykorzystywać aplikacje internetowe, które akceptują dane wprowadzane przez użytkownika, takie jak adresy URL i wartości parametrów, i przekazują je do mechanizmów „włączania plików” bez odpowiedniego oczyszczenia. W przypadku tego typu luki osoby atakujące mogą wykorzystać aplikację internetową w celu dołączenia zdalnych plików ze złośliwymi skryptami.
Dlaczego występują ataki polegające na dołączaniu plików WordPress?
Witryny WordPress stanowią 43% internetu, więc są dużym celem atakujących. Nasz roczny raport dotyczący luk w zabezpieczeniach WordPressa za rok 2022 pokazuje, że ponad 90% wszystkich luk WordPress wykrytych w zeszłym roku dotyczyło wtyczek i motywów. Zazwyczaj co tydzień zgłaszaliśmy co najmniej jedną nową lukę w zabezpieczeniach w 20 do 50 wtyczkach.
Niedawno badacze bezpieczeństwa odkryli lukę umożliwiającą włączenie pliku w popularnym motywie OceanWP. OceanWP ma ponad pół miliona aktywnych użytkowników. (Zgłosiliśmy to w naszym cotygodniowym raporcie dotyczącym luk w zabezpieczeniach WordPress). Mimo że OceanWP szybko załatał lukę, hakerzy mieli czas, aby ją wykorzystać, podczas gdy miliony witryn WordPress nadal korzystały z przestarzałego kodu.
Jak wykryć atak polegający na włączeniu pliku WordPress
W przeciwieństwie do ataków typu „odmowa usługi”, które mogą znacznie spowolnić Twoją witrynę internetową lub złośliwych przekierowań, które odciągają użytkowników od Twojej witryny do fałszywych zasobów, ataki polegające na dołączaniu plików są trudne do wykrycia. Przyczyna tego jest prosta. Hakerzy wykorzystują włączanie plików jako punkt wejścia do przesyłania złośliwego oprogramowania i przeprowadzania dalszych ataków. Włączenie pliku to cicha droga do bardziej widocznych uszkodzeń. Tak więc, gdy haker wstrzykuje złośliwy kod do witryny internetowej lub uzyskuje dostęp do poufnych informacji, istnieje duża szansa, że prawie tego nie zauważysz.
To prowadzi nas do ważnego wniosku. Bezpieczeństwo witryny powinno rozpocząć się od zmniejszenia powierzchni ataku i wzmocnienia jej. Pomoże to uniemożliwić hakerom wykorzystywanie luk w zabezpieczeniach danych wejściowych, z których wynikają ataki polegające na wstrzykiwaniu, takie jak ataki polegające na dołączaniu plików, wstrzykiwanie kodu SQL i poleceń oraz skrypty krzyżowe (XSS).
Jak bronić się przed atakami polegającymi na dołączaniu plików WordPress?
Wraz z rosnącą liczbą cyberataków wymierzonych w WordPress, bezpieczeństwo witryny WordPress ma większe znaczenie niż kiedykolwiek wcześniej. Obrona przed atakami polegającymi na dołączaniu plików WordPress wymaga wielopłaszczyznowego podejścia, które ogranicza możliwość wykorzystania luk w zabezpieczeniach danych wejściowych i wykonania dowolnego kodu. Możesz to zrobić, jeśli zastosujesz kombinację proaktywnych i reaktywnych środków bezpieczeństwa.
Oto trzy najważniejsze zalecenia dotyczące bezpieczeństwa WordPress, które chronią Twoją witrynę przed atakami polegającymi na dołączaniu plików.
Aktualizuj całe oprogramowanie
Aktualizowanie całego oprogramowania — w tym rdzenia WordPress, motywów, wtyczek i rozszerzeń — ma kluczowe znaczenie, jeśli chodzi o zmniejszenie powierzchni ataku na Twoją witrynę. Ponieważ każdego dnia pojawiają się nowe luki w zabezpieczeniach, nie dawaj hakerom szansy na ich wykorzystanie. Instaluj poprawki bezpieczeństwa i aktualizuj, gdy tylko będą dostępne.
Wyrób sobie nawyk samodzielnego dokonywania regularnych aktualizacji lub aktywuj aktualizacje automatyczne, aby Twoja witryna nigdy nie zawierała żadnego podatnego na ataki kodu. iThemes Security Pro może zająć się aktualizacjami rdzenia, wtyczek i motywów WordPress.
iThemes Security Pro automatycznie skanuje w poszukiwaniu nowych wersji oprogramowania, z którego korzysta Twoja witryna. Jej system zarządzania wersjami gwarantuje, że masz zainstalowane wszystkie poprawki bezpieczeństwa i aktualizacje, gdy tylko będą dostępne. Ponadto iThemes ostrzeże Cię również, jeśli używasz przestarzałego oprogramowania w swojej infrastrukturze serwerowej. Na przykład, jeśli używasz wersji PHP, której data wycofania z eksploatacji lub słabego serwera MySQL, iThemes Pro ostrzeże Cię.
Jeśli masz pod kontrolą wiele witryn WordPress, iThemes Sync Pro zapewnia jeden interfejs do zarządzania nimi wszystkimi. Sync oferuje również zaawansowane monitorowanie czasu pracy i opinie SEO.
Wyłącz zdalne dołączanie plików w PHP
Witryna internetowa może odwoływać się do zdalnych plików z zewnętrznego adresu URL, jeśli opcja allow_url_fopen
jest włączona w środowisku PHP. Może to zwiększyć ryzyko ataków na zdalne włączanie plików. Wyłączenie allow_url_fopen
skutecznie eliminuje możliwość uruchomienia przez kogoś złośliwego kodu ładowanego ze zdalnej lokalizacji w Twojej witrynie WordPress.
Możesz wyłączyć allow_url_fopen
w globalnej konfiguracji PHP lub ustawiając allow_url_fopen
na 0
w lokalnym pliku .user.ini
lub php.ini
utworzonym dla indywidualnego folderu WWW. Możesz sprawdzić, czy opcja jest wyłączona w twoim środowisku PHP, tworząc prostą stronę informacyjną PHP za pomocą funkcji phpinfo()
, jak pokazano poniżej.
Zaimplementuj nagłówki bezpieczeństwa WordPress
Nagłówki odpowiedzi HTTP, takie jak Content Security Policy (CSP) i Set-Cookie, mogą dodać warstwę obrony przed włączeniem plików i innymi atakami iniekcyjnymi do Twojej witryny WordPress.
Nagłówki zabezpieczeń WordPress umożliwiają ograniczenie lub zablokowanie wektorów, za pomocą których może dojść do zdalnego dołączania plików i ataków typu cross-site scripting (XSS), tworząc listę zaufanych źródeł, skryptów i innych treści, które można załadować. Wszystkie inne źródła zostaną odrzucone. Ponadto nagłówki odpowiedzi HTTP mogą pomóc w dodaniu ochrony przed fałszowaniem żądań między witrynami (CSRF) i przechwytywaniem kliknięć.
Chroń swoją witrynę WordPress przed atakami typu „injection” za pomocą iThemes Security Pro
Wraz z wstrzykiwaniem kodu SQL i poleceń ataki polegające na włączaniu plików stanowią najczęstsze wektory ataków ukierunkowane na bezpieczeństwo witryn WordPress. Chociaż WordPress zapewnia wysoki poziom bezpieczeństwa aplikacji, wysoce spersonalizowane witryny w połączeniu ze złymi praktykami w zakresie bezpieczeństwa mogą narazić witrynę WordPress na ataki polegające na wstrzyknięciu wykorzystujące luki w zabezpieczeniach danych wejściowych.
Każdego dnia w rosnącej populacji wtyczek i motywów WordPress znajdują się nowe luki w zabezpieczeniach. I chociaż zwykle są one szybko łatane, brak aktualnych aktualizacji i poleganie na starym oprogramowaniu może sprawić, że Twoja witryna WordPress stanie się łatwym celem dla hakerów. Obecnie bezpieczeństwo witryn internetowych jest ważniejsze niż kiedykolwiek wcześniej. Rosnąca liczba cyberataków oznacza, że nawet najbardziej czujni właściciele witryn mogą paść ofiarą hakerów, jeśli nie podejmą proaktywnych działań w celu ochrony swoich witryn.
iThemes Security Pro to potężne rozwiązanie zabezpieczające WordPress, które pozwala przyjąć najlepsze praktyki bezpieczeństwa WordPress w celu ochrony witryny przed najbardziej wyrafinowanymi cyberatakami. Dzięki zaawansowanemu monitorowaniu integralności plików, skanowaniu pod kątem luk w zabezpieczeniach i automatycznemu ograniczaniu ataków, iThemes Security Pro stanowi doskonały wybór, jeśli szukasz skutecznego i niezawodnego sposobu ochrony swojej witryny WordPress.
Najlepsza wtyczka zabezpieczająca WordPress do zabezpieczania i ochrony WordPress
WordPress obsługuje obecnie ponad 40% wszystkich witryn internetowych, więc stał się łatwym celem dla hakerów o złośliwych zamiarach. Wtyczka iThemes Security Pro usuwa zgadywanie z zabezpieczeń WordPress, aby ułatwić zabezpieczanie i ochronę witryny WordPress. To tak, jakby zatrudnić pełnoetatowego eksperta ds. bezpieczeństwa, który stale monitoruje i chroni Twoją witrynę WordPress.
Kiki ma tytuł licencjata z zarządzania systemami informatycznymi i ponad dwuletnie doświadczenie w systemach Linux i WordPress. Obecnie pracuje jako specjalista ds. bezpieczeństwa w Liquid Web i Nexcess. Wcześniej Kiki była częścią zespołu wsparcia Liquid Web Managed Hosting, gdzie pomogła setkom właścicieli witryn WordPress i dowiedziała się, jakie problemy techniczne często napotykają. Jej pasja do pisania pozwala jej dzielić się swoją wiedzą i doświadczeniem, aby pomagać ludziom. Oprócz technologii Kiki lubi uczyć się o kosmosie i słuchać podcastów o prawdziwych przestępstwach.