Czytelnicy tacy jak ty pomagają wspierać MUO. Kiedy dokonujesz zakupu za pomocą linków na naszej stronie, możemy otrzymać prowizję partnerską. Czytaj więcej.

Serwery internetowe przechowują pliki (strony internetowe, obrazy, filmy, formularze itp.), które składają się na Twoją aplikację internetową i udostępniają te pliki, gdy ktoś odwiedza Twoją witrynę. Niektóre serwery są bardziej zaawansowane i kontrolują również, ile dostępu mają odwiedzający. Mogą ograniczać zwykłym odwiedzającym dostęp do kont innych użytkowników lub pulpitów administracyjnych. Chociaż serwery internetowe są wydajne w tym, co robią — i robią to raczej bezpiecznie — osoby atakujące mogą wykorzystać błędy wynikające z błędu ludzkiego lub błędnej logiki w sposobie, w jaki serwer obsługuje pliki, które hostuje.

Co to jest atak LFI?

Atak Local File Intrusion (LFI) ma miejsce, gdy osoby atakujące wykorzystują luki w sposobie przechowywania, udostępniania, sprawdzania poprawności lub kontrolowania dostępu do swoich plików przez serwer WWW. Ta luka jest powszechna w witrynach opartych na PHP.

instagram viewer

W przeciwieństwie do wielu form cyberataków, w których atakujący polegają na złośliwym oprogramowaniu w celu uszkodzenia aplikacji, napastnicy w LFI polegają głównie na sprytnych sztuczkach i krótkich liniach kodu. To rzadko wymaga wyrafinowanych narzędzi lub skomplikowanych skryptów; ataki zazwyczaj mają miejsce w przeglądarce internetowej. Najczęstszą sztuczką stosowaną przez atakujących jest modyfikowanie ciągu adresu URL za pomocą kodu, ścieżek do plików lub nazw plików.

Jak dochodzi do ataków LFI?

Ataki LFI zwykle przebiegają w czterech etapach.

Po pierwsze, osoba atakująca identyfikuje witrynę PHP, na której działa aplikacja internetowa podatna na ataki, zwykle uruchamiając podstawowy kod w adresie URL przeglądarki, aby sprawdzić, czy aplikacja internetowa (tj. witryna) obsługuje polecenie. Pomyśl o tym jak o naciskaniu kombinacji klawiszy na kontrolerze do gier, aby odblokować jajko wielkanocne — powiedzmy na przykład o naciśnięciu klawisza w dół, aby wejść do tuneli w Super Mario. Ale polecenia, które atakujący wykonują w atakach LFI, są bardziej spójne niż sprawdzanie każdego tunelu w Super Mario.

Aplikacja internetowa lub serwer, który został nieprawidłowo skonfigurowany lub nie sprawdza poprawności danych wejściowych, wykona złośliwy kod. Stąd haker może uzyskać dostęp i uprawnienia potrzebne do odczytywania wrażliwych plików lub przesyłania złośliwych plików na serwer.

Większość ataków LFI powoduje, że atakujący uzyskuje dostęp do poufnych informacji. Możliwość wgrania złośliwego oprogramowania rzadko się udaje, ponieważ nie ma gwarancji, że aplikacja internetowa zapisze plik na tym samym serwerze, na którym występuje luka LFI. Dzieje się tak często, jeśli aplikacja internetowa działa w środowisku wieloserwerowym.

Tak więc, jeśli luka w zabezpieczeniach LFI istnieje na serwerze, na którym znajdują się obrazy, ale nie na serwerze, na którym jest przechowywany pracownik poświadczeń lub haseł użytkownika, osoba atakująca miałaby dostęp tylko do plików obrazów na tym zagrożonym serwerze. Niezależnie od tego, wydarzenia cybernetyczne, takie jak atak na LastPass pokazują, że hakerzy mogą siać spustoszenie przy pozornie nieistotnym poziomie dostępu.

Jak zapobiegać atakom LFI

Ataki LFI są dość powszechne, zgodnie z Otwórz projekt zabezpieczeń aplikacji sieci Web (OWASP). Zrozumiałe, że hakerzy faworyzują ten atak, ponieważ np W3Techs raporty, prawie osiem na 10 witryn używa PHP jako języka programowania po stronie serwera – można powiedzieć, że jest mnóstwo ofiar. Można zapobiec atakowi LFI, stosując najlepsze praktyki w zakresie bezpieczeństwa sieci.

Biała lista plików serwera publicznego

Aplikacje internetowe często używają ścieżek do plików jako wejściowych adresów URL. Hakerzy mogą wykorzystać ten system plików, zmieniając część adresu URL, która służy również jako ścieżka do pliku. Na przykład atakujący może się zmienić https://dummywebsite.com/?module=contact.php Do https://dummywebsite.com/?module=/etc/passwd. Podatny na ataki serwer ze słabym filtrowaniem i błędną logiką wyświetli zawartość pliku zapisanego w ścieżce /etc/passwd.

Oczywiście hakerzy używają odmian popularnych nazw plików i kombinacji znaków zapytań, aby zwiększyć szanse na udany atak. Celem jest nakłonienie aplikacji internetowej do uruchomienia skryptu lub wyświetlenia plików na serwerze WWW.

Możesz zablokować tę lukę, tworząc białą listę dokumentów publicznych na swoim serwerze i instruując aplikację internetową, aby ignorowała zapytania dotyczące każdego innego dokumentu lub ścieżki do pliku. Tak więc, jeśli atakujący spróbuje manipulować adresem URL, aby zażądać lub uruchomić kody żądające prywatnego, zamiast tego otrzyma stronę błędu.

Często testuj luki w zabezpieczeniach

Możesz użyć narzędzia do skanowania sieci znaleźć i naprawić luki w zabezpieczeniach, które mogą narazić Cię na ataki LFI. Skanery aplikacji internetowych to zautomatyzowane narzędzia, które przeszukują Twoją aplikację jak osoba atakująca i ostrzegają o potencjalnych lukach w zabezpieczeniach. Istnieje kilka skanerów internetowych typu open source, takich jak OpenVAS i Wireshark, ale większość skanerów luk w zabezpieczeniach jest oprogramowaniem zastrzeżonym i wymaga płatnych planów.

Ale oczywiście nie otrzymujesz skanera internetowego tylko do ataków LFI. Narzędzia te wyszukują również szersze luki w zabezpieczeniach, takie jak zdalne włączanie plików, cross-site scripting, iniekcja SQL i złe konfiguracje serwerów. Więc są tego warte.

Ogranicz uprawnienia odwiedzających witrynę

Hakerzy często skutecznie przeprowadzają ataki LFI, ponieważ aplikacje internetowe nie dzielą uprawnień użytkowników, a tym samym umożliwiają odwiedzającym dostęp do plików, które powinny być widoczne tylko dla administratorów. Ta miara działa jak biała lista: skonfiguruj swoją aplikację internetową i serwer tak, aby udostępniały pliki publiczne i ignorowały nieautoryzowane żądania, gdy odwiedzający wchodzi w interakcję z aplikacją internetową. Jest to szczególnie ważne w przypadku zapytań do ścieżek plików zawierających poufne pliki.

W tym celu może być konieczne uniemożliwienie bezpośredniej modyfikacji ścieżek plików. Aplikacja internetowa powinna obsługiwać tylko dokumenty z zakodowanej na stałe listy ścieżek. Ponadto skonfiguruj aplikację internetową do przetwarzania żądań z dynamicznym łączeniem ścieżek (adresy URL powinny zawierać znaki alfanumeryczne) zamiast funkcji base64 lub bin2hex.

Jeśli myślisz o umieszczeniu nazw plików na czarnej liście, nie rób tego. Hakerzy zwykle mają rosnącą listę nazw plików, których mogą użyć do przeprowadzenia ataku LFI. Poza tym jest to praktycznie niemożliwe (i kolosalna strata czasu) do czarnej listy stale powiększającej się listy źródeł ataku.

Użyj środowiska wieloserwerowego

Środowisko wieloserwerowe pozwala odizolować ważne, poufne dokumenty od plików publicznych, zmniejszając w ten sposób ryzyko w przypadku naruszenia. Serwery dedykowane są mniej podatne na ataki LFI, ponieważ chociaż współpracują ze sobą, różnią się konfiguracją.

Oprócz tego bezpieczeństwa, wiele serwerów jest również niezawodnych (z mniejszym ryzykiem przestojów), szybkich i wydajnych. Trzeba przyznać, że korzystanie ze środowiska wieloserwerowego nie jest opłacalne, jeśli witryna jest mała. W takim przypadku rozważ podzielenie dostępu aplikacji internetowej do danych między bazę danych prywatnych i serwer plików publicznych.

Czy powinieneś się martwić atakami LFI?

Istnieje możliwość ataku LFI, zwłaszcza jeśli Twoja witryna działa na PHP, ale możesz zmniejszyć narażenie, konfigurując aplikacje internetowe i serwery zgodnie z najlepszymi praktykami bezpieczeństwa sieci.

Ponadto należy rozważyć przeprowadzanie rutynowych kontroli bezpieczeństwa w celu znalezienia luk w zabezpieczeniach. Cały czas coś się psuje, zwłaszcza gdy architektura witryny staje się złożona. Narzędzia, których będziesz potrzebować, aby się chronić, są zautomatyzowane, a wiele z nich nie wymaga skomplikowanej konfiguracji ani zaawansowanej wiedzy technicznej.