Ochrona Joomla | Blog - Audyt bezpieczeństwa i bezpieczeństwo witryny

  1. Użyj wygenerowanego prefiksu tabeli
  2. Wymyśl nazwę administratora - nie „admin”
  3. Nie używaj FTP
  4. Usuń katalog instalacyjny /
  5. Zaktualizuj jądro, zainstalowane wtyczki i motywy
  6. Nie używaj nieobsługiwanych wersji Joomla: 1.0x, 1.5x, 1.6x i 1.7x
  7. Sprawdź wtyczki używane na liście podatnych na ataki
  8. Użyj dostarczonego pliku .htaccess
  9. Użyj linków CNC
  10. Chroń panel administracyjny
  11. Chroń plik konfiguracyjny configuration.php
  12. Ustaw uprawnienia dla kluczowych plików i katalogów
  13. Zakaz bezpłatnej rejestracji użytkownika
  14. Przenieś katalogi „logs /” i „tmp /” poza witrynę
  15. Użyj wtyczek bezpieczeństwa
  16. Blokuj niebezpieczne żądania
  17. Użyj mechanizmów do aktywnego audytu.

Drodzy czytelnicy, ten artykuł poświęcony jest ustawieniom ochrony i bezpieczeństwa równie popularnego CMS - Joomla . Wszystkie zalecenia będą odpowiednie dla bieżącej gałęzi 3.3x . Wiele z naszych porad będzie działać na poprzednich wersjach.

Podczas instalacji systemu CMS należy zwrócić uwagę na niektóre aspekty, których prawidłowa implementacja znacznie poprawi bezpieczeństwo witryny.

Użyj wygenerowanego prefiksu tabeli

Twórcy trzeciej wersji Joomla (a także gałęzi 2.5) mają wbudowane mechanizmy minimalizujące wykonanie wektorów ataku, które są istotne dla poprzednich wersji. Wcześniej wszystkie tabele w bazie danych były tworzone za pomocą przedrostka jos_ , co znacznie ułatwiło wykonywanie zastrzyków sql. Teraz sam instalator generuje ten prefiks, wystarczy go zaakceptować.

Teraz sam instalator generuje ten prefiks, wystarczy go zaakceptować

Zainstaluj joomla - generowanie prefiksu

Nie należy zastępować go domniemanym, na przykład nazwą domeny.

Wymyśl nazwę administratora - nie „admin”

Następnie musisz wymyślić nazwę administratora strony i hasło . Jako login użyj czegoś takiego jak „director-asa2”. Jeśli określisz klasyczny „admin”, znacznie łatwiej będzie wybrać parametry dostępu.

Jeśli określisz klasyczny „admin”, znacznie łatwiej będzie wybrać parametry dostępu

Zainstaluj joomla - nazwę administratora

Podczas ustawiania hasła należy pamiętać, że nie ma wskaźnika oporu. Aby wybrać wiarygodną wartość, skorzystaj z jednej z usług generowania haseł online.

Nie używaj FTP

Korzystanie z protokołu ftp stanowi potencjalne zagrożenie bezpieczeństwa. Powodem jest transmisja hasła i danych w formie „otwartej” (protokół niezaszyfrowany).

Zalecamy używanie SSH lub SFTP do administrowania witryną. W takim przypadku cała sesja jest szyfrowana. Większość hostingu oferuje taką możliwość.

FTP jest domyślnie wyłączony. Alternatywnie możesz użyć jednej z wtyczek na oficjalnym repozytorium extensions.joomla.org , na przykład ProFiles .

org , na przykład ProFiles

Zainstaluj joomla - nie używaj FTP

Usuń katalog instalacyjny /

Po zakończeniu instalacji system zaproponuje usunięcie katalogu instalacyjnego . Spełnij ten wymóg, ponieważ jego obecność pozwoli atakującemu „wymazać” witrynę z nowej instalacji. Jeśli usunąłeś katalog bezpośrednio w systemie plików (i nie użyłeś przycisku w instalatorze), nie zapomnij usunąć pliku joomla.xml , który zawiera dokładną wersję twojego CMS.

Nie myśl, że pod koniec instalacji możesz zapomnieć o środkach bezpieczeństwa. Z reguły w podstawowej konfiguracji system jest mniej podatny na kompromisy. Ryzyko wzrasta wraz z rozszerzaniem funkcjonalności, dodawaniem użytkowników itp.

Zaktualizuj jądro, zainstalowane wtyczki i motywy

Podstawową zasadą wszystkich CMS jest terminowa aktualizacja rdzenia systemu i zainstalowanych wtyczek. Możesz dowiedzieć się o dostępności aktualizacji na głównej stronie panelu sterowania.

Możesz dowiedzieć się o dostępności aktualizacji na głównej stronie panelu sterowania

Konfiguracja joomla - sprawdź aktualizacje

Aby zwiększyć odporność witryny, zaleca się tworzenie kopii zapasowych podczas instalowania nowych wersji jądra CMS. Aby to zrobić, użyj wtyczki Akeeba Backup w wersji 4.0.5 lub nowszej.

Nie używaj nieobsługiwanych wersji Joomla: 1.0x, 1.5x, 1.6x i 1.7x

Jeśli używasz Joomla przez długi czas, możliwe jest, że wersja twojego systemu nie jest oficjalnie wspierana (dotyczy to całej gałęzi 1x) lub wkrótce przestanie być obsługiwana (gałąź 2.5 oficjalnie kończy się 31 grudnia 2014 r.). Zalecamy pomyśleć o migracji do bieżącej wersji 3.3x. Oficjalna strona joomla.org zawiera przewodniki dotyczące aktualizacji ze starszych wersji.

Istnieją także wtyczki do automatycznej aktualizacji CMS ( Migrate Me ).

Konfiguracja Joomla - migracja rozszerzenia

Sprawdź wtyczki używane na liście podatnych na ataki

Myślę, że nie jest tajemnicą, że zdajesz sobie sprawę z potencjalnego zagrożenia bezpieczeństwa, które instaluje każda wtyczka. Aby zminimalizować to ryzyko, należy przestrzegać prostych zasad:

  • używaj rozszerzeń tylko z oficjalnego repozytorium extensions.joomla.org
  • Przed instalacją sprawdź obecność rozszerzenia na liście podatnych na ataki - http://vel.joomla.org/index.php/live-vel

Użyj dostarczonego pliku .htaccess

Zestaw dystrybucyjny CMS Joomla w wersji 3.3x jest dostarczany wraz z plikiem htaccess.txt , który zawiera zasady ochrony przed powszechnie znanymi wektorami ataku dla tego CMS. Musisz zmienić nazwę tego pliku na .htaccess , aby użyć serwera WWW Apache, aby go chronić, lub wkleić następujące linie do istniejącego pliku:

RewriteEngine On
RewriteCond% {QUERY_STRING} base64_encode [^ (] * ([^)] *
RewriteCond% {QUERY_STRING} (<|% 3C) ([^ s] * s) + skrypt. * (> |% 3E) [NC, OR]
RewriteCond% {QUERY_STRING} GLOBALS (= | [| | [0-9A-Z] {0,2}) [OR]
RewriteCond% {QUERY_STRING} _REQUEST (= | [|
RewriteCond% {QUERY_STRING} mosConfig_ [a-zA-Z _] {1.21} (= |% 3D) [OR]
RewriteRule. * Index.php [F]

Reguły te będą działać, jeśli moduł mod_rewrite jest zainstalowany na serwerze.

Użyj linków CNC

Wiele skanerów wykorzystujących luki w joomla otrzymuje listy witryn z google . W tym celu wykorzystywana jest technika Google XAK, a specjalnie dla nas takie zapytanie inurl może być użyte : index.php? Option = com_jce . Wyszukiwarka wyświetli listę witryn, w których zainstalowana jest wtyczka JCE.

Aby utrudnić działanie skanerów i jednocześnie poprawić SEO naszej witryny, należy użyć linków CNC:

Ustawienie Joomla - włącz CNC

Można to zrobić, przechodząc do panelu sterowania „Ustawienia ogólne” -> „Witryna” -> „Ustawienia SEO” .

Chroń panel administracyjny

Panel sterowania witryną dla CMS Joomla znajduje się pod adresem site.com/administrator/ . Jeśli witryna korzysta ze standardowych ustawień, każdy użytkownik, znając nazwę użytkownika i hasło, może zarządzać witryną. Poleganie wyłącznie na wyjątkowości logowania i sile hasła nie wystarczy.

Począwszy od wersji 3.2.0, w CMS wprowadzono możliwość korzystania z uwierzytelniania dwuskładnikowego. Zdecydowanie zalecamy włączenie tej opcji. W tym przypadku, oprócz hasła, użytkownik musi również znać unikalny klucz.

Konfiguracja joomla - włącz uwierzytelnianie dwuskładnikowe

Możesz włączyć i skonfigurować tę opcję w sekcji „Użytkownicy” -> „Menedżer użytkowników” -> Twoja nazwa użytkownika -> „Dwustopniowe uwierzytelnianie” . Użyj jednego z mechanizmów: Google Authenticator lub YubiKey (przetestowaliśmy Google Authenticator - wszystko działało za pierwszym razem).

Tak będzie wyglądał formularz logowania w panelu administracyjnym:

Tak będzie wyglądał formularz logowania w panelu administracyjnym:

Konfiguracja joomla - uwierzytelnianie dwuskładnikowe

Aby zmienić adres formularza logowania, możesz użyć wtyczki AdminExile . Dzięki niemu możesz ustawić klucz, który zapewni dostęp do panelu administracyjnego (na przykład site.com/administrator/index.php?myadmin ). Jeśli go nie określisz, automatycznie przekieruje się na stronę główną Twojej witryny.

Konfiguracja joomla - wtyczki adminexile

Ta sama wtyczka pozwoli ci ustawić listę adresów IP, dla których dostęp do panelu sterowania jest dozwolony i chroni przed brutalną siłą. Zainstaluj wtyczkę w wersji nie 2.3.6 .

Chroń plik konfiguracyjny configuration.php

Plik configuration.php znajduje się w katalogu głównym Joomla (http://example.com/configuration.php). Zawiera ustawienia połączenia z bazą danych, klucz szyfrowania, prefiks tabeli, parametry ftp (jeśli są używane).

Jeśli plik jest dostępny dla intruzów, mają realną szansę na uzyskanie pełnego dostępu do Twojej witryny. Na wielu hostach zainstalowano panel kontrolny bazy danych - phpMyAdmin . Używanie parametrów z pliku configuration.php umożliwi autoryzację w tym panelu.

Głównym powodem dostępności pliku jest niepewna konfiguracja. Często administrator witryny tworzy kopie zapasowe formularza:

  • сonfiguration.php.old
  • сonfiguration.php1
  • сonfiguration.php.test
  • сonfiguration.php ~

Podczas używania takich nazw pliki nie są już przetwarzane jako skrypty php. W przypadku bezpośredniego żądania (na przykład http://example.com/configuration.php.old) atakujący otrzyma całą zawartość.

Nie przechowuj kopii zapasowych pliku konfiguracyjnego w swojej witrynie. Aby uzyskać dodatkową ochronę, umieść następujący kod w pliku .htaccess znajdującym się w katalogu głównym serwisu:

<Pliki ~ "^ konfiguracja">
Zamówienie pozwala odmówić
Odmów wszystkim
Spełnij wszystkie
</ Files>

W ten sposób zablokujesz dostęp do tego pliku (i wszystkich jego kopii) za pomocą serwera WWW.

Ustaw uprawnienia dla kluczowych plików i katalogów

Z reguły podczas ataku atakujący próbuje zapisać swój kod w już istniejących plikach systemowych. Dlatego chce uzupełniać te pliki ukrytą funkcjonalnością. Aby zadanie było jak najtrudniejsze, konieczne jest ustawienie pewnych praw do kluczowych plików i katalogów. Dla CMS Joomla:

  • 444 w witrynie site.ru/index.php
  • 444 w witrynie site.ru/configuration.php
  • 444 na site.ru/templates/your template / index.php
  • 555 do katalogu site.ru/templates/your template /

Nie zapomnij tymczasowo zmienić uprawnień na 644 dla pliku configuration.php podczas dokonywania zmian w panelu administracyjnym.

Zakaz bezpłatnej rejestracji użytkownika

Jeśli model biznesowy Twojej witryny nie oznacza rejestracji użytkownika, musisz go wyłączyć w panelu sterowania CMS. Domyślnie jest włączona.

Aby się rozłączyć, przejdź do panelu „Użytkownicy” -> „Menedżer użytkowników” -> „Ustawienia” .

Konfiguracja joomla - zakaz rejestracji

Niektóre luki wymagają zarejestrowanego użytkownika do ich implementacji. Po wyłączeniu automatycznej rejestracji operacja będzie trudna. Jeśli wymagana jest rejestracja, włącz powiadomienie administratora.

Przenieś katalogi „logs /” i „tmp /” poza witrynę

Dzienniki katalogów usług i tmp są domyślnie umieszczone w katalogu głównym witryny. Zalecamy przeniesienie ich poza granice „widoczności”. Zazwyczaj jest to jeden poziom powyżej ich aktualnej pozycji w systemie plików.

Najpierw przenieś katalogi, a następnie ustaw odpowiednią ścieżkę w panelu administracyjnym („Ustawienia ogólne”).

Konfiguracja joomla - dzienniki transferu

Konfiguracja joomla - dzienniki transferu

Joomla setup - port tmp

Użyj wtyczek bezpieczeństwa

W oficjalnym repozytorium jest sporo rozszerzeń poprawiających bezpieczeństwo CMS. Są wśród nich zarówno płatne, jak i bezpłatne rozwiązania. Spróbuj zacząć od „ narzędzi administracyjnych ”. Jego główne cechy to:

  • awaryjny transfer strony internetowej do trybu offline
  • lista adresów IP, dla których dostęp do panelu administracyjnego jest dozwolony
  • edycja prefiksu tabeli bazy danych
  • Zapora aplikacji WWW
  • menedżer rozszerzeń plików
  • dodatkowa ochrona panelu administracyjnego za pomocą .htaccess

Konfiguracja joomla - rozszerzenie narzędzi administracyjnych

Blokuj niebezpieczne żądania

Aby chronić się przed najbardziej niebezpiecznymi rodzajami luk (zastrzyki sql i lfi), możesz użyć wtyczki Marco Injection SQL .

Aby chronić się przed najbardziej niebezpiecznymi rodzajami luk (zastrzyki sql i lfi), możesz użyć wtyczki Marco Injection SQL

Dostosowywanie Joomla - rozszerzenie marcos

Główne opcje rozszerzenia:

  • filtrowanie i blokowanie iniekcji sql i lfi w żądaniach GET, POST, REQUEST
  • powiadomienie administratora przez e-mail
  • biała lista komponentów, które nie stosują ochrony
  • blokowanie adresu IP atakującego

Użyj mechanizmów do aktywnego audytu.

Jeśli czytasz naszą artykuł o ochronie bloga na WordPressie, a następnie w jednym z punktów, o których rozmawialiśmy o skanerze WPScan . Pozwala na zeskanowanie bloga na zewnątrz i zidentyfikowanie najbardziej narażonych miejsc.

Niestety, obecnie nie ma podobnego poziomu skanera dla Joomla. Joomscan z OWASP nie może być brany pod uwagę. Produkt nie został zaktualizowany od maja 2013 r., Lista wtyczek podatnych na zagrożenia jest również daleka od dzisiaj.

W przypadku zewnętrznych kontroli bezpieczeństwa skorzystaj z naszego rozwiązania SaaS: weBBez . Bezpośrednio dla CMS Joomla możemy:

  • wyszukaj kopię pliku konfiguracyjnego
  • szukaj podatnych wtyczek
  • wykryć błędy administracji CMS
  • szukaj sygnatur wirusów Joomla na swojej stronie

Wyjście Aby chronić swoją witrynę w oparciu o cms Joomla, zalecamy następujące kroki i zalecenia:

  • użyj wygenerowanego prefiksu tabeli
  • wymyśl nazwę administratora - nie „admin”
  • nie używaj FTP
  • usuń katalog instalacyjny /
  • zaktualizuj jądro, zainstalowane wtyczki i motywy
  • nie używaj nieobsługiwanych wersji Joomla: 1.0x, 1.5x, 1.6x i 1.7x
  • sprawdź używane wtyczki na liście zagrożonych
  • użyj dostarczonego pliku .htaccess
  • użyj linków CNC
  • chroń panel administracyjny
  • chroń plik konfiguracyjny configuration.php
  • ustaw uprawnienia dla kluczowych plików i katalogów
  • zabronić bezpłatnej rejestracji użytkowników
  • przenieś katalogi „logs /” i „tmp /” poza witrynę
  • użyj wtyczek bezpieczeństwa
  • blokuj niebezpieczne żądania
  • używać mechanizmów aktywnej kontroli

Linki do wspomnianych produktów i usług oprogramowania:

  • Joomla - http://joomla.org
  • oficjalne repozytorium - http://extensions.joomla.org
  • ProFiles - http://extensions.joomla.org/extensions/core-enhancements/file-management/24160
  • Kopia zapasowa Akeeba - http://extensions.joomla.org/extensions/access-a-security/site-security/backup/1606
  • Migrate Me - extensions.joomla.org/extensions/migration-a-conversion/joomla-migration/24238
  • lista podatnych rozszerzeń - http://vel.joomla.org/index.php/live-vel
  • AdminExile - http://extensions.joomla.org/extensions/access-a-security/site-security/login-protection/15711
  • Narzędzia administracyjne - http://extensions.joomla.org/extensions/access-a-security/site-security/site-protection/14087
  • Marco's SQL Injection - http://extensions.joomla.org/extensions/access-a-security/site-security/site-protection/12731
  • Joomscan - http://sourceforge.net/projects/joomscan/
  • phpMyAdmin - http://www.phpmyadmin.net/home_page/index.php
  • WPScan - http://wpscan.org/
  • weBBez - http://webbez.ru/

Php?
Php?