You are currently viewing Jak skutecznie zabezpieczyć stronę internetową przed atakami hakerskimi?

Jak skutecznie zabezpieczyć stronę internetową przed atakami hakerskimi?

Czasy kiedy raz utworzona strona internetowa działała latami i nie była nękana przez hakerów, minęły bezpowrotnie. Aktualnie najbardziej narażeni na ataki są właściciele popularnych CMS-ów, w szczególności platform Wordpress, Joomla! oraz innych, mniej popularnych darmowych rozwiązań. Omawiając temat bezpieczeństwa, należy też wziąć pod uwagę autorskie skrypty (na przykład wtyczki, komponenty) dedykowane dla systemów zarządzania treścią. Skrypty te nie są z reguły na bieżąco aktualizowane i nie przechodziły audytów, za to często są tworem jednego programisty.

Z pewnością może cieszyć to, że dostępnych jest szereg zabezpieczeń chroniących stronę www przed internetowymi intruzami. Część z nich ma za zadanie ukryć stronę przed niebezpiecznymi botami, skanerami oraz adresami IP, skąd pochodzą ataki, pełnią one zatem funkcję bariery i maski. Zadaniem pozostałych jest nie dopuścić, na ile to możliwe, do wniknięcia do struktury plików, kodu bądź bazy CMS-a, jak również nie dopuścić do przejęcia danych.

Wybierz bezpieczny hosting dla swojej strony internetowej

Bardzo dobrze byłoby, gdyby hosting oferował  zaporę sieciową ModSecurity (modsecurity.org). Każdy serwer Apache posiada budowę modularną. Oznacza to, że jego podstawowa funkcjonalność może być rozszerzona o nowe składniki. Moduły te są dostarczane w postaci bibliotek. Włączenie danego modułu polega na załadowaniu biblioteki w konfiguracji Apache. Na takiej zasadzie może zostać zintegrowana z Apache zapora sieciowa ModSecurity. Jej zadaniem jest filtrowanie wszystkich zapytań kierowanych do serwera HTTP. Moduł ten wyszukuje w przychodzących i wychodzących zapytaniach zdefiniowane w regułach filtrowania frazy kluczowe. W bibliotekach modułu znajdują się reguły niektórych powszechnie znanych typów ataków, na przykład exploity na strony internetowe oraz walidacje protokołu HTTP.

Jakie uprawnienia katalogów oraz plików ustawić?

Jedną z prostych metod ochrony struktury witryny jest zapewnienie tego, że pliki i katalogi mają poprawnie ustawione prawa dostępu. Zalecane ustawienia są następujące:

  • .htaccess – 444 lub 400
  • wp-config.php – 600
  • configuration.php – 600
  • Pliki – 644
  • Katalogi – 755

Zmian można dokonać za pomocą klienta FTP. W zależności od poziomów bezpieczeństwa poszczególne pliki (na przykład te odpowiedzialne za konfigurację) mogą mieć inne, bardziej restrykcyjne atrybuty (prawa dostępu). Uwaga: tego typu zmiana praw może skutkować błędami w aktualizacji wtyczek, rozszerzeń, motywów oraz samego CMS-a.

Konfiguracja odpowiednich praw zależy w dużej mierze od ustawień serwera. Nie zaleca się jednak ustawiania wartości bardziej otwartych niż zaprezentowane powyżej. Dla przykładu niebezpieczną wartością dla katalogów będzie między innymi wartość 777, czyli nieograniczony dostęp do wszystkich katalogów.

Aby ukryć witrynę przed premierą lub udostępnić ją tylko wybranym adresom IP w pliku .htaccess można dopisać kod zmieniający konfigurację serwera WWW.

Jak ukryć sygnaturę oraz inne informacje o serwerze?

Sygnatura serwera to informacja dotycząca używanego przez stronę serwera oraz systemu operacyjnego. Aby uzyskać takie informacje o nagłówkach http można adres naszej strony URL wpisać w http://whatsmyip.org/http-headers/

Są to wrażliwe dane i mogą być wykorzystane przeciwko stronie, ponieważ zdradzamy, że mamy na przykład nieaktualny serwer, którego luki są powszechnie znane.  Jeśli nie będziemy ujawniać informacji na temat serwera, utrudnimy napastnikowi włamanie do witryny. W tym celu, jeśli strona znajduje się na serwerz Apache, do pliku .htaccess należy dopisać następującą komendę:

ServerTokens Prod

ServerSignature Off

RewriteCond %{QUERY_STRING} \=PHP[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12} [NC]

RewriteRule .* – [F]

Uwaga: jeśli pojawi się strona błędu, po odświeżeniu strony, należy usunąć powyższy kod I poprosić pomoc techniczną serwera o wyłączenie pierwszych dwóch reguł dla wybranego konta, katalogu strony bądź całej domeny.

Aby ukryć numer wersji PHP oraz wyświetlanie dodatkowych informacji na serwerach Fedora, Linux, CentOS lub RHEL, potrzeba dostępu do pliki php.ini – na ogół trzeba będzie stworzyć go samodzielnie.

Expose_php = Off

Disable_functions = system. Phpinfo

Display_errors = Off

Aby utrudnić potencjalnemu włamywaczowi orientację w strukturze katalogów witryny czy zastosowanej konwencji nazw plików można ukryć informację o błędach. Funkcja raportowania błędów na serwerze wyświetla napotkane w kodzie błędy generowane przez interpreter PHP. Jest ona niezwykle przydatna do śledzenia ich występowania po to, aby móc wskazać dalsze czynności., które pozwolą rozwiązać problem. Funkcja ta jest z reguły domyślnie włączona na hostingu. W WordPressie w pliku wp-config.php można wyłączyć wyświetlanie się błędów i ostrzeżeń. Jest to zalecane ustawienie dla witryn produkcyjnych. W otwartym pliku należy znaleźć frazę define(‘WP_DEBUG’, false); – powinna być w linii 80. Następnie należy dodać kod:

@ini_set(‘log_errors’.’On’);

@ini_set(‘display_errors’.’Off’);

@ini_set(‘error_reporting’.E_ALL);

define(‘WP_DEBUG’.false);

define(‘WP_DEBUG_LOG’.false);

define(‘WP_DEBUG_DISPLAY’.false);

Następnie za pomocą klienta FTP trzeba jeszcze zmienić uprawniani dostępu do pliku 444.

Spotkać się można także z metodą wykorzystują krótszy kod, a mianowicie:

Error_rreporting(0);

Kod ten należy dodać jako ostatnią linijkę w pliku wp-config.php Warto sprawdzić która metoda będzie działaś na serwerze poprawie. W razie potrzeby można zastosować oba rozwiązania jednocześnie.

Inne metody blokowania robotów na serwerze.

Obecnie duża liczba ataków poprzedzona jest wyszukiwaniem „podatnych” ofiar. Cyberprzestępcy często używają zautomatyzowanych skanerów, które przeprowadzają szereg testów pozwalających na szybkie wykrycie znanych luk w zabezpieczeniach opublikowanych stron bazujących na popularnych CMS-ach. Stąd też pojawiające się „dziwne” zapytania, które moją odzwierciedlenie w logach dziennika. Na szczęście dzięki ponownemu zastosowaniu reguł dla pliku .htaccess można spowodować, że wybrane szkodniki nie uzyskają dostępu do witryny, a w zamian otrzymają tylko komunikat o błędzie. Kod chroniący przed tego typu niepożądanymi obiektami można znaleźć na stronie blog.elimu.pl w dziale Bezpieczeństwo.

Inną bardzo skuteczną ochroną przed atakami brute force jest stworzenie dodatkowego okna autoryzacyjnego. Taką autoryzację można utworzyć dla adresów z tzw. Białej listy. Niektóre hostingi oferują taką podwoją autoryzację w standardzie.

Jak zabezpieczyć dostęp w hostingu współdzielonym?

Jedną z niedoskonałości hostingów współdzielonych jest brak odporności na to, że jeśli włamywacz uzyska dostęp do jednej ze stron, będzie mógł zarazić pozostałe strony, także znajdujące się na tym koncie witryny. Jest to bardzo niepożądane i może bardzo szybko doprowadzić do kompletnego chaosu – witryny będą ciągle infekowane lub zawirusowywane.

Aby utrudnić takie działanie, należy skorzystać z opcji open_basedir. Jest to funkcja bezpieczeństwa w skryptach PHP, określająca lokalizacje lub ścieżki, z których jest dozwolony dostęp do plików. Jej rolą jest zatem ograniczenie listy plików, które mogą zostać odtworzone przez interpretator PHP, do określonego drzewa katalogów, na przykład głównego katalogu konkretnej strony. W przypadku gdy plik znajduje się poza zdefiniowanym drzewem katalogu, PHP odmówi udzielenia dostępu do niego. Potrafi to ograniczyć i utrudnić szperanie na serwerze.

Jako parametr podajemy katalog, powyżej którego nie będzie możliwy dostęp do plików. Tak więc ustawiając w pliku php.ini przykładowo:

Open_basedir = „home/user/public_html”

Blokujemy dostęp między innymi do pliku /home/logs.

Opcję open_basedir można ustawić też w pliku konfiguracyjnym .htaccess, na przykład:

Php_value open_basedir = „home/user/public_html”

Innym rodzajem zabezpieczenia przed przeglądaniem plików na serwerze jest wyłączenie listowania. Konfiguracja serwera z reguły nie zezwala na listowanie zawartości katalogów. W razie konieczności ręcznej zmiany ustawień, na ogół w panelu hostingowym jest możliwość wyłączenia listowania. Gdyby jednak taka opcja nie była dostępna, wystarczą dwie dodatkowe linijki kodu w pliku .htaccess, który musi znaleźć się w katalogu głównym. W górnej części pliku umieszczamy następujące wiersze kodu:

IndexIgnore *

Options All –Indexes

Htaccess 7G Firewall serwera

Nikogo nie trzeba dziś przekonywań, że stosowanie firewall stało się koniecznością. Pełnią one funkcję zapory, która zapewnia ochronę przed atakami ze strony robotów sieciowych, script kiddies oraz hakerów. Na podstawie zdefiniowanych reguł potrafią przeciwstawiać się włamaniom i je zatrzymać. Zdecydowanie wartym polecenia oraz wypróbowania jest rozwiązanie 7G Firewall https://perishablepress.com/7g-firewall/ Jego założeniem jest stworzenie uniwersalnego kodu dla pliku .htaccess, który pozwoli chronić witrynę przed podejrzanym ruchem, spamem oraz atakami. Auter tego rozwiązania zaleca doklejenie kodu przed istniejącym kodem bieżącego pliku .htaccess, który powinien być w głównym katalogu strony.

PHP Firewall do własnego wdrożenia na serwerze.

Jest jeszcze kolejna grupa firewalli, a dokładniej skryptów, które można samodzielnie zainstalować także na hostingu współdzielonym. Popularnymi darmowymi rozwiązaniami są:

  • phpMussel – skrypt PHP łączący w sobie antywirusa, antytrojana oraz antymalware.
  • NinjaFirewall – chroni przed ingerencją w pliki strony zarówno z zewnątrz jak i wewnątrz.
  • ZB Block – skrypot PHP zaprojektowany, aby wykrywać określone, szkodliwe zachowania skierowane przeciwko stronie internetowej oraz aby blokować wybrane roboty i adresy sieciowe. Ponadto ogranicza ilość umieszczanego spamu na blogu/witrynie

Skanery podatności serwera na atak

Istnieje całkiem sporo komercyjnych i niekomercyjnych skanerów aplikacji internetowych, które pozwalają na mniejszą bądź większą automatyzację takich zadań jak skanowanie w poszukiwaniu znanych podatności na atak. Tego typu narzędzia okazują się niezwykle przydatne podczas audytu bezpieczeństwa strony internetowej opartej na dowolnym CMS-ie. Część z nich działa online, zatem wystarczy wkleić adres URL w celu rozpoczęcia analizy. Poniżej lista popularnych przydatnych narzędzi tego typu:

Ten post ma 6 komentarzy

  1. Have you ever thought about publishing an ebook or guest authoring on other websites?
    I have a blog based upon on the same subjects you discuss and would love to have you
    share some stories/information. I know my audience would
    enjoy your work. If you’re even remotely interested, feel
    free to send me an e mail.

  2. Dreferalp

    One of the purposes of the parent NIH FTC study is to define the clinical phenotype associated with this syndrome buy priligy tablets Therefore, it is crucial to study the molecular mechanisms of tamoxifen resistance and assess more effective treatment strategies, to achieve a better survival rate of patients with breast cancer

Dodaj komentarz