Odsłonięte kopie zapasowe i pliki bez odniesień oraz jak je znaleźć
Opublikowany: 2021-08-24Dbanie o bezpieczeństwo WordPressa obejmuje ciągły proces testowania, wzmacniania, monitorowania i ulepszania. Jest kilka rzeczy, o które mogą zadbać administratorzy WordPressa, aby zapewnić bezpieczeństwo ich stron internetowych. Od upewnienia się, że hasła spełniają określone kryteria, po wzmocnienie PHP, te procesy mogą znacznie pomóc w zapewnieniu, że działasz ściśle i czysto. Jedną z rzeczy, która często jest pomijana, jest ujawnienie kopii zapasowych i plików, do których nie ma odniesień. Pliki te mogą stanowić zagrożenie bezpieczeństwa, którym można łatwo zarządzać, przestrzegając najlepszych praktyk.
WordPress wykorzystuje katalogi do organizowania informacji. Wszystkie strony i media znajdują się w tej strukturze. W typowej instalacji ta struktura wyglądałaby podobnie do var/www/html/wordpress/wp-content.
Serwery internetowe, w tym serwery hostujące witryny WordPress, są zazwyczaj skonfigurowane do obsługi klientów wszystkich plików znajdujących się w określonym katalogu. Istnieje kilka wyjątków, takich jak pliki PHP; jednak, chyba że administrator wyraźnie zablokował dostęp, istnieje prawdopodobieństwo, że jeśli klient tego zażąda, serwer sieciowy będzie to robić.
Ogólnie rzecz biorąc, jest to dobra rzecz i właśnie tego chcesz, ponieważ w ten sposób udostępniane są odwiedzającym pliki związane z Twoimi stronami internetowymi, takie jak pliki CSS, pliki JS i obrazy. Jednak to zachowanie oznacza również, że możesz nieświadomie udostępniać pliki, które nigdy nie były przeznaczone dla publiczności, takie jak kopie zapasowe i pliki bez odniesień.
Co to są kopie zapasowe i pliki bez odniesień?
Jak sama nazwa wskazuje, kopie zapasowe i pliki bez odniesień to rzeczywiste kopie zapasowe, które mogą być kopiami zapasowymi określonych plików, zwykle tworzonymi podczas edycji plików, takich jak pliki konfiguracyjne, lub nawet pełnymi kopiami zapasowymi. Zrozumienie, czym są te pliki kopii zapasowych i w jaki sposób są generowane, jest pierwszym krokiem, jaki musimy podjąć, aby rozwiązać problem.
Istnieje wiele powodów, dla których możesz potrzebować edytować pliki WordPress. Edytowanie plików witryny WordPress bez wcześniejszego wykonania kopii zapasowej wymaga jednak trochę nerwów — jeden brakujący średnik może spowodować awarię witryny!
Oczywiście, ponieważ takie błędy są łatwe do popełnienia, nie jest wskazane edytowanie plików bezpośrednio na serwerach produkcyjnych. Najlepsze praktyki każą nam najpierw przetestować wszelkie zmiany na serwerze testowym lub pomostowym. Dopiero po dokładnym i pomyślnym przetestowaniu zmiany można przenieść na serwer live/produkcyjny.
Jednak w prawdziwym życiu nie zawsze stosuje się najlepsze praktyki. Może to być szczególnie prawdziwe, gdy jest to malusieńka zmiana. Proces pobierania pliku, wprowadzania zmian, testowania i ponownego przesyłania może trwać znacznie dłużej niż edytowanie pliku na serwerze. Wszyscy tam byliśmy.
Edycja na serwerze live może być bardzo łatwa. Z klientem SSH i Vi (lub Vim, jeśli wolisz ulepszoną wersję), możesz zdziałać cuda. Gdy połączysz się z serwerem i udasz się do katalogu, prawdopodobnie najpierw zrobisz kopię zapasową pliku (np. wp-config.php.bak), edytujesz plik na żywo, upewnisz się, że wszystko jest w porządku, i to wszystko jest czadowe. Jednak ten plik kopii zapasowej pozostawiony w folderze (na wszelki wypadek, wiesz) może być źródłem wielu bólów. Są szanse, że każdy może go pobrać, a wraz z nim całą konfigurację, w postaci zwykłego tekstu, nie mniej.
Co więcej, wielu administratorów WordPressa może nie być świadomych, że edytowanie plików w miejscu za pomocą edytora plików, takiego jak Vim, może automatycznie tworzyć kopie zapasowe, odzyskiwać i blokować pliki. Vim tworzy te pliki, aby umożliwić Ci odzyskanie pracy, jeśli Vim ulegnie awarii lub nieoczekiwanie zakończy działanie. Chociaż jest to bez wątpienia cenna funkcja, oznacza to również, że możesz przypadkowo otrzymać pliki kopii zapasowej, których nigdy nie zamierzałeś tworzyć, rozsiane po Twojej witrynie, czekając, aż ktokolwiek uzyska dostęp.
Podobnie kopie zapasowe całych katalogów pozostawionych w folderze publicznym mogą być równie szkodliwe. Chociaż tworzenie kopii zapasowych witryny WordPress ma kluczowe znaczenie, należy to robić bezpiecznie, bez wprowadzania nowych zagrożeń bezpieczeństwa. Porozmawiamy o tym bardziej szczegółowo w dalszej części tego artykułu.
Typowe przykłady plików kopii zapasowych to zmienione nazwy starych wersji zmodyfikowanych plików konfiguracyjnych, plików PHP lub innego kodu źródłowego oraz automatyczne lub ręczne kopie zapasowe w postaci skompresowanych archiwów (takich jak archiwa .zip, .gz lub .tar.gz).
Z drugiej strony, pliki bez odnośników to niewłaściwie umieszczone pliki, które ze względu na konfigurację lub decyzję projektową trafiają w miejsce, do którego nie należą.
Jakie są zagrożenia?
Kopie zapasowe i pliki, do których nie ma odniesień, przypadkowo pozostawione jako dostępne, mogą spowodować wyciek poufnych informacji. W zależności od pliku poufne dane mogą obejmować parametry konfiguracyjne lub kod źródłowy, które pomagają złośliwym użytkownikom lepiej zrozumieć, jak działa Twoja witryna, ułatwiając tym samym przeprowadzenie ataku na Twoją witrynę. W niektórych przypadkach może dojść do wycieku haseł, które mogą dać atakującym kontrolę nad całą instalacją WordPressa.
Istnieje kilka sposobów, w jakie ktoś może znaleźć pozostałe pliki na Twoim serwerze internetowym. Podczas gdy niektóre metody wymagają pewnej wiedzy technicznej, inne są tak proste, jak wyszukiwanie w Google, co zwiększa ryzyko ujawnienia. Jeśli nie masz pewności, czy na serwerze pozostały jakieś pliki, czytaj dalej, aby dowiedzieć się, jak je wyszukać i znaleźć, zanim zrobi to ktoś inny.
Jak znaleźć pliki kopii zapasowych i pliki bez odniesień w witrynie WordPress?
Istnieje kilka różnych metod wyszukiwania plików kopii zapasowych i plików, do których nie ma odniesień. Jako właściciel serwera masz przewagę, ponieważ możesz zająć się tym bardziej bezpośrednio. W tej sekcji omówimy te różne narzędzia, zaczynając od narzędzi, których możesz użyć do wyszukiwania i usuwania tych plików. Następnie przyjrzymy się, jak ciekawy kot może zająć się znajdowaniem kopii zapasowych i plików bez odnośników na twoim serwerze.
Podczas wyszukiwania plików kopii zapasowych, które mogłeś pozostawić na swoim serwerze internetowym, możesz zastosować jedno (lub więcej) z trzech podejść. Najprostszym sposobem jest zainstalowanie wtyczki, która monitoruje pliki pod kątem zmian. Alternatywnie możesz spróbować wyszukać pliki kopii zapasowej pozostawione w systemie plików za pomocą narzędzi wiersza polecenia, takich jak find lub możesz spróbować wyszukać pliki kopii zapasowej za pomocą techniki zwanej fuzzing .
Wtyczka do monitorowania integralności plików
Rozwiązanie do monitorowania integralności plików dla WordPress może bez wysiłku pomóc monitorować zmiany plików na serwerze sieciowym i ostrzegać, jeśli wykryje, że coś zostało dodane, usunięte lub zmienione.
Można to osiągnąć za pomocą wtyczki Monitor zmian plików witryny. Wtyczka pobiera odcisk palca Twoich katalogów, a następnie porównuje go z kolejnymi odciskami palca. Zasadniczo działa na tych samych zasadach, co suma kontrolna, dzięki czemu jest wysoce bezpieczny i niezawodny.
Monitor integralności plików może być szczególnie skuteczny, jeśli nie masz dostępu do wszystkich katalogów używanych przez WordPress. Kolejną istotną zaletą tej wtyczki jest to, że monitorowanie jest zautomatyzowane, dzięki czemu nie trzeba pamiętać o sprawdzaniu plików – wtyczka robi to automatycznie.
Znajdować
Przyjrzyjmy się teraz, jak możemy znaleźć pliki kopii zapasowej za pomocą polecenia find. Poniższe polecenie wyszuka kilka powszechnie używanych rozszerzeń plików, które są używane podczas tworzenia plików kopii zapasowych.
find /var/www -type f \( -name '*.bak' -o -name '*.backup' -o -name '*.bac' -o -name '*.zip' -o -name '* .tar' -o -name '*.jar' -o -name '*.log' -o -name '*.swp' -o -name '*~' -o -name '*.old' -o - name '*.~bk' -o -name '*.orig' -o -name '*.tmp' -o -name '*.exe' -o -name '*.0' -o -name '*. 1' -o -nazwa '*.2' -o -nazwa '*.3' -o -nazwa '*.gz' -o -nazwa '*.bz2' -o -nazwa '*.7z' -o - nazwa '*.s7z' -o -nazwa '*.lz' -o -nazwa '*.z' -o -nazwa '*.lzma' -o -nazwa '*.lzo' -o -nazwa '*.apk ' -o -name '*.cab' -o -name '*.rar' -o -name '*.war' -o -name '*.ear' -o -name '*.tar.gz' -o -name '*.tgz' -o -name '*.tar.z' -o -name '*.tar.bz2' -o -name '*.tbz2' -o -name '*.tar.lzma' - o -name '*.tlz' -o -name '*.zipx' -o -name '*.iso' -o -name '*.src' -o -name '*.dev' -o -name '* .a' -o -name '*.ar' -o -name '*.cbz' -o -name '*.cpio' -o -name '*.shar' -o -name '*.lbr' -o -nazwa '*.mar' -o -nazwa '*.f' -o -nazwa '*.rz' -o -nazwa '*.sfark' -o -nazwa '*.xz' -o -nazwa '*. as' -o -name '*.afa' -o -name '*.alz' -o -name '*.arc' -o -nam e '*.arj' -o -name '*.ba' -o -name '*.bh' -o -name '*.cfs' -o -name '*.cpt' -o -name '*.dar ' -o -name '*.dd' -o -name '*.dgc' -o -name '*.dmg' -o -name '*.gca' -o -name '*.ha' -o -name '*.hki' -o -name '*.ice' -o -name '*.inc' -o -name '*.j' -o -name '*.kgb' -o -name '*.lhz' -o -name '*.lha' -o -name '*.lzk' -o -name '*.pak' -o -name '*.partimg.' -o -name '*.paq6' -o -name '*.paq7' -o -name '*.paq8' -o -name '*.pea' -o -name '*.pim' -o -name '*.pit' -o -name '*.qda' -o -name '*.rk' -o -name '*.sda' -o -name '*.sea' -o -name '*.sen' -o -name '*.sfx' -o -name ' *.sit' -o -name '*.sitx' -o -name '*.sqx' -o -name '*s.xz' -o -name '*.tar.7z' -o -name '*. tar.xz' -o -name '*.uc' -o -name '*.uc0' -o -name '*.uc2' -o -name '*.ucn' -o -name '*.ur2' - o -name '*.ue2' -o -name '*.uca' -o -name '*.uha' -o -name '*.wim' -o -name '*.xar' -o -name '* .xp3' -o -name '*.yz1' -o -name '*.zoo' -o -name '*.zpaq' -o -name '*.zz' -o -name '*.include' -o -nazwa '*_1' -o -nazwa '*_2' -o -nazwa '*_x' -o -nazwa '*bak' -o -name '*_bak' -o -name '*old' -o -name '*_old' -o -name '*_a' -o -name '*_b' -o -name '*_c' -o -name '*_d' -o -name '*_e' -o -name '*_f' -o -name '*inc' -o -name '*_inc' -o -name '*_backup' -o -name '* – Kopiuj' -o -name '* – Kopiuj (2)' -o -name '* – Kopiuj (3)' -o -name '*backup' -o -name '*-backup' -o -name '*-bak' -o -name '*-old' -o -name '*-1' -o -name '*-2' -o -name '* – Kopiuj – Kopiuj' -o -name '*( copy)' -o -name '*(kolejna kopia)' -o -name '*(druga kopia)' -o -name '*(trzecia kopia)' -o -name '*(czwarta kopia)' -o - name '*(druga kopia)' -o -name '*(3. kopia)' -o -name '*(4. kopia)' -o -name '* (kopia)' -o -name '* (kolejna kopia) ' -o -name '* (druga kopia)' -o -name '* (trzecia kopia)' -o -name '* (czwarta kopia)' -o -name '* (2. kopia)' -o -name ' * (3. kopia)' -o -name '* (4. kopia)' -o -name 'Kopia *' -o -name 'Kopia (2) z *' -o -name 'Kopia (3) z *' -o -name 'Kopia kopii *' -o -name 'backup*' -o -name 'backup_*' -o -name 'backup-*' -o -name 'bak*' -o -name 'bak_ *' -o -nazwa 'bak-*' -o -nazwa'stary*' -o -nazwa 'stary_*' -o -nazwa 'stary-*' -o -nazwa '1*' -o -nazwa '1_*' -o -nazwa '1-*' -o -nazwa '2*' -o -nazwa '2_*' -o -nazwa '2-*' \)
Fuzzing
Poniższa metoda wykorzystuje narzędzie wiersza polecenia o nazwie ffuf z listą słów (listą nazw plików i ścieżek plików zebraną w postaci zwykłego tekstu), która koncentruje się na plikach WordPress. ffuf można skonfigurować tak, aby wysyłał żądania przy użyciu rozdzielonej przecinkami listy typowych rozszerzeń plików kopii zapasowych (w tym przykładzie użyto tylko skróconej listy, która zawiera tylko .bak i .backup, ale w rzeczywistości prawdopodobnie byłaby znacznie dłuższa).
ffuf -u http://example.com/FUZZ -w wordlist.txt -e '.bak,.backup'
Wyszukiwania w wyszukiwarkach
Wyszukiwarki są bardzo, bardzo dobre w znajdowaniu i katalogowaniu informacji na serwerach WWW. Ktoś może to zrobić za pomocą zaawansowanych operatorów, które mogą na przykład drążyć zapytanie w celu znalezienia określonych typów plików na danym serwerze.
Ten typ wyszukiwania jest również znany jako Google Dorking i może wykorzystywać kombinację zaawansowanych filtrów i wnioskowania. Wnioskowanie polega na tym, że osoba, która nie ma wiedzy na temat tego, co znajduje się na serwerze, wykorzystuje ogólne informacje, aby wywnioskować, jakie pliki i struktury mogą znajdować się na serwerze, a następnie wyszukuje te konkretne rzeczy.
Skanery bezpieczeństwa
Istnieją różne typy skanerów, które mogą skanować katalogi witryny. Pierwszy typ skanera to przeszukiwacz witryn, który jest tą samą podstawową technologią, której wyszukiwarki używają do odczytywania stron internetowych. Jednak tego typu skanery nie są przeznaczone wyłącznie dla wyszukiwarek i można je pobrać bezpłatnie.
Skanowanie docelowej witryny w większości krajów jest nielegalne, nawet jeśli masz dobre intencje. Możesz i powinieneś używać skanera tylko przeciwko posiadanym stronom internetowym. Jeśli skanujesz witrynę innej firmy, upewnij się, że masz na to zgodę. Mimo to ktoś o złych zamiarach może użyć skanera bezpieczeństwa, aby dowiedzieć się więcej o Twojej witrynie i zrozumieć, jakie pliki się na niej znajdują.
Innym rodzajem skanera jest skaner do testów penetracyjnych, który może skanować witrynę w poszukiwaniu luk w zabezpieczeniach, w tym pozostawionych plików.
Znalazłeś kopię zapasową lub pliki bez odniesień? Oto co robić
Przechowywanie plików kopii zapasowych na stronie internetowej nigdy nie jest dobrym pomysłem. Niestety, często zdarza się, że właściciele i administratorzy witryn WordPress konfigurują zadania cron (zaplanowane zadania), aby tworzyć kopie zapasowe bazy danych, tylko po to, aby przechowywać te kopie zapasowe na tym samym serwerze. Chociaż z pewnością powinieneś tworzyć kopię zapasową swojej witryny, powinieneś zadbać o to, aby pliki kopii zapasowej nie były przechowywane w żadnym miejscu w systemie, z którego utworzono kopię zapasową.
Dobrze przemyślana strategia tworzenia kopii zapasowych WordPress, która jest zgodna z najlepszymi praktykami, ma kluczowe znaczenie nie tylko z punktu widzenia bezpieczeństwa, ale także z punktu widzenia ciągłości biznesowej. W końcu kopie zapasowe nie są wiele warte, jeśli nie można ich użyć do przywrócenia danych.
Jak zapobiec wyliczaniu plików kopii zapasowej?
Jak widzieliśmy w tym artykule, przechowywanie plików kopii zapasowych w witrynie WordPress może być dość ryzykowne. W związku z tym należy zawsze używać środowiska testowego lub tymczasowego do wprowadzania zmian przed przekazaniem ich na serwer produkcyjny/na żywo. Większość zarządzanych kont hostingowych WordPress jest dostarczana ze środowiskiem przejściowym od razu po wyjęciu z pudełka. Możesz także użyć oprogramowania takiego jak Local, które pozwala na uruchamianie instancji WordPress na twoim komputerze.
Niemniej jednak, jeśli zdecydujesz się zachować pliki kopii zapasowych na serwerze sieciowym, najlepiej trzymaj je poza katalogiem, do którego obsługi został skonfigurowany serwer sieciowy.
Ponadto skonfiguruj uprawnienia do plików WordPress, aby uniemożliwić dostęp użytkownikowi serwera WWW — zapewnia to, że nawet w przypadku błędnej konfiguracji serwer WWW nie będzie mógł udostępnić pliku klientowi, który o to poprosi. Jako dodatkowy środek, dobrym pomysłem jest zaszyfrowanie wszelkich kopii zapasowych bazy danych i upewnienie się, że klucz szyfrowania nie jest dostępny dla użytkownika serwera WWW.