Wstęp do bezpieczeństwa stron www

14.03.2018 AUTOR: Katarzyna Javaheri-Szpak

Czym jest ogólnie bezpieczeństwo w sieci?

Bezpieczeństwo w sieci to zagadnienie, o którym słyszał chyba każdy użytkownik Internetu. Pomimo tego, że temat jest znany, to jednak wielu z nas uważa, że jego osobiście to nie dotyczy. Przecież kto chciałby się wysilać i planować atak na bloga o małym lub średnim zasięgu, stronę www lokalnego biznesu lub konto bankowe, na którym nie trzymamy majątku?

Takie podejście to poważny błąd, ponieważ współczesne ataki nie są wymierzane tylko w wielkie firmy, bogaczy czy celebrytów, choć w znacznej większości przypadków są przeprowadzane właśnie z powodów ekonomicznych.[i] To zautomatyzowane akcje, które mają na celu masowo wyszukiwać słabe punkty systemu, a następnie np. korzystać z naszego transferu, by rozsyłać spam, hostować swoje pliki lub nawet implementować koparki kryptowalut (ostatnio sama natknęłam się na taką na podstronie popularnego serwisu polski.pl). Szacuje się, że aż 40% wszystkich cyberataków kierowanych jest do sektora tzw. małego biznesu,[ii] a ogólnoświatowy koszt ataków to około 600 miliardów dolarów rocznie.[iii]

Co ciekawe, cyberprzestępcom bardzo często „pomagają” same ofiary – aż 81% ataków bazuje na niewystarczająco silnych, nieodpowiednio zabezpieczonych lub skradzionych hasłach.[iv] Można w to wierzyć lub nie, ale wśród 100 najgorszych haseł 2017 roku znajdowały się takie perełki jak: password (ang. hasło), 123456, aaaaaa czy starwars.[v]

 2. Podział stron www ze względu na technologię wykonania

Szacuje się, że obecnie (dane z lutego 2018 r.) na świecie działa ponad 1,8 miliardów stron internetowych na ponad 214 milionach zarejestrowanych domen. Liczba ta ciągle wzrasta.[vi] Jako punkt odniesienia należy dodać, że pierwsza strona internetowa powstała w 1991 roku.

Strony wykonane są w różnych technologiach, a główny podział dotyczy posiadania lub nie posiadania systemu zarządzania treścią (ang. CMS – Content Managing System). 50,2% stron nie używa żadnego CMSa. Wśród systemów CMS dominuje WordPress z ponad 60% udziałem w rynku. Oznacza to, że na WordPressie działa około 30% wszystkich stron internetowych na świecie. Druga co do popularności jest Joomla z zaledwie 6,3% udziałem (czyli tylko ok. 3% wszystkich stron).[vii] Wszystko wskazuje na to, że dominacja WordPressa się umacnia i będzie trwać nadal. Do góry pnie się Drupal, który powoli dogania Joomlę (4,4% wszystkich CMSów i 2,2% wszystkich stron).

bezpieczeństwo w sieci

Rys. 1 – Najpopularniejsze CMSy, dane z lutego 2018 (na podstawie: w3techs.com)

Dzieląc strony pod kątem języków programowania używanych do ich stworzenia, bez wątpienia  najbardziej popularnym językiem po stronie serwera jest PHP (83.1%), a po stronie klienta Javascript (94,9%). Popularny kiedyś Flash stracił sporo punktów procentowych, obecnie jest to 5,3%. Szacuje się, że Flash traci 1% co pół roku.[viii]

Kolejny podział stron internetowych to strony statyczne i dynamiczne. Strony statyczne przy każdym wywołaniu wyglądają tak samo, a zmiana wyglądu wymaga interwencji w kod. Strony dynamiczne dostosowują swój wygląd w zależności od interakcji. Zmiany w wyglądzie lub zawartości strony mogą być wprowadzane zarówno po stronie klienta (użytkownika), jak i po stronie serwera.

3. Dlaczego strony bez CMSów są bardziej bezpieczne?

Pozycja systemów zarządzania treścią umacnia się z roku na rok – w 2011 r. mniej niż 25% wszystkich stron posiadało taki system, w 2014 ponad 35%, a w 2016 około 43%.[ix] Możliwość bezpłatnego użytkowania, tysiące darmowych lub niedrogich dodatków – takich jak motywy i wtyczki, czy intuicyjne funkcjonalności to niewątpliwe zalety CMSów.

 

 

Jednakże jest także druga strona medalu – systemy te oparte są na otwartych źródłach (ang. open source), kod jest znany i dostępny, a przy tak wielkiej popularności (mowa o setkach milionach instalacji) kompleksowe zabezpieczenie jest praktycznie niemożliwe.

Dodatkowo wielu użytkowników, zarówno prywatnych, jak i instytucjonalnych, instaluje CMSa, projektuje stronę i… na tym się kończy jej serwisowanie. Zgodnie z danymi zawartymi w raporcie Sucuri Website Hacked Report 2016, około 50% zainfekowanych stron opartych na WordPressie posiadało nieaktualną wersję systemu, a w przypadku Joomli i Drupala ta liczba sięgała aż 80%.[x]

Na celowniku są również świeżo zainstalowane strony, które hakerzy mogą namierzyć już w ciągu godziny od instalacji.[xi]

4. Co na temat bezpieczeństwa może powiedzieć Google?

Według raportu Google „State of Website Security 2016” (wersja tegoroczna ukaże się zapewne w marcu 2018), w roku 2016 liczba zhackowanych stron wzrosła o 35% w porównaniu z 2015 rokiem.[xii] Google udostępnia webmasterom bezpłatne narzędzie, które pozwala na kontrolę bezpieczeństwa, jak i podpowiada w jaki sposób wyczyścić zaatakowaną stronę i usunąć niepożądaną informację „This site may be hacked” („Ta witryna mogła paść ofiarą ataku hakerów”) z wyników w wyszukiwarce (rys.2). Mowa o Google Search Console, która została zainaugurowana w maju 2015, zastępując Google Webmaster Tools. Nowy wygląd i funkcjonalność konsoli zaprezentowano w styczniu 2018.

Google opublikowało statystyki, które jednoznacznie pokazują, że osoby korzystające z Search Console są w stanie w ponad 80% wykryć i/lub usunąć zagrożenie.[xiii] Należy jednak wziąć pod uwagę, że konsola nie rozwiąże wszystkich problemów z bezpieczeństwem – warto korzystać równolegle z innych narzędzi.

bezpieczeństwo w sieci

Rys. 2 – Przykładowy wygląd zaatakowanej strony w wynikach wyszukiwania

5. Sposoby obrony przed atakami na przykładzie stron opartych na Wordpresie

Wśród najczęściej spotykanych ataków Google wymienia:[xiv]

  • przejęte hasła
  • brak aktualizacji zabezpieczeń
  • niezabezpieczone motywy i wtyczki
  • inżynieria społeczna (przekazywanie danych np. przez uprawnionych pracowników)
  • luki w polityce bezpieczeństwa
  • wyciek danych

Ze względu na to, że to właśnie WordPress jest głównym graczem wśród systemów zarządzania treścią, a to one są najbardziej narażone na ataki, w tej części artykułu skupię się na sposobach obrony przed atakami na jego przykładzie. Większość kroków można odtworzyć analogicznie dla innych systemów.

Atak siłowy i słownikowy

Wśród podstawowych zabezpieczeń należy wziąć na pewno pod uwagę ochronę przed atakiem siłowym (ang. brute force attack). Jest to jeden z najpopularniejszych i najprostszych sposobów włamania do kokpitu CMSa. W 2017 roku liczba ataków siłowych wzrosła o 400%.[xv] Jedną z odmian ataku siłowego jest atak słownikowy, który polega na tym, że atakujący próbuje odgadnąć parę login-hasło, testując słownikowe terminy lub popularne wyrażenia. Takie gotowe, popularne zestawy dla danych języków można pobierać z sieci wraz z narzędziami ułatwiającymi atak siłowy.

Aby uchronić się przed atakiem słownikowym należy:

  • ustawić nieoczywiste loginy (unikamy słów takich jak np. admin, administrator, root, main)
  • ustawić silne hasła, można je wygenerować np. wbudowanym generatorem WordPressa
  • ograniczyć liczbę kont użytkowników do minimum
  • zainstalować wtyczkę bezpieczeństwa, która pozwala na blokowanie prób logowania po kolejnej (np. piątej lub dziesiątej) próbie,
  • dodatkowo można ustawić wtyczkowe alerty, które będą na maila wysyłać informacje o udanych i nieudanych próbach logowania do kokpitu.

bezpieczeństwo w sieci

Rys. 3 – Przykładowy zrzut ekranu konta pocztowego z alertami o ataku siłowym (wtyczka Sucuri)

Aktualizacje systemu i kopie zapasowe

Kolejnym ważnym elementem ochrony strony opartej na CMS jest regularny nadzór, by system był aktualny. Ze względu na to, że WordPress czy Joomla opierają się na otwartym kodzie oraz pozwalają na instalację zewnętrznych motywów oraz wtyczek, bardzo trudno jest utrzymać taki system wolnym od błędów i niedociągnięć. Pozostawienie raz zainstalowanej strony samej sobie, wcześniej czy później skończy się włamaniem lub wstrzyknięciem złośliwego kodu. Co gorsze strona może wtedy zacząć rozsyłać spam lub trafić na czarną listę Google, Norton czy ESET.

Warto wyznaczyć sobie jeden dzień w tygodniu, by zalogować się do kokpitu i sprawdzić czy system, wtyczki lub zainstalowany motyw są aktualne. Przed każdorazową aktualizacją zalecane jest zrobienie kopii zapasowej i zapisanie jej u siebie na komputerze lub w chmurze. W przypadku ataku lub awarii serwera będziemy mogli bardzo szybko i sprawnie odzyskać pełną i aktualną wersję strony.

Do tworzenia kopii zapasowych można wykorzystać dedykowane temu wtyczki np. Akeeba Backup lub UpdraftPlus.

Plik konfiguracyjny .htaccess

Plik .htaccess może być potężnym sprzymierzeńcem w ochronie strony. Pozwala on skonfigurować parametry serwera www (Apache), w tym te dotyczące dostępu i bezpieczeństwa. Plik .htaccess działa w obrębie katalogu, w którym został umieszczony oraz we wszystkich jego podkatalogach. Jeśli jednak w którymś z podkatalogów umieścimy kolejny plik .htaccess, to dyrektywy w nim zawarte będą z kolei dotyczyć tego konkretnego podkatalogu i jego kolejnych podkatalogów. Podsumowując – plik .htaccess działa „z góry na dół”, od katalogu, w którym się znajduje do kolejnych „w dół”.

Popularne wtyczki bezpieczeństwa instalowane na stronach z systemami zarządzania treścią same tworzą dyrektywy dla pliku .htaccess. Ma to dobre i złe strony. Plusem jest to, że rzeczywiście bywają skuteczne, minusem, że mogą się „gryźć” z innymi wtyczkami lub narzędziami. Warto poczytać o efektywnych zapisach w pliku .htaccess i wprowadzić je ręcznie samemu.

Wersja PHP

PHP to skryptowy język programowania służący do generowania stron internetowych i budowania aplikacji w czasie rzeczywistym. CMSy takie jak WordPress, Joomla i Drupal napisane są właśnie w języku PHP.

Wielu hostingodawców wciąż jako domyślną wersję języka PHP na swoich serwerach stosuje PHP 5.3 lub 5.6, pomimo że wersja 7.0 dostępna jest od grudnia 2015, a najnowsza 7.2 od listopada 2017. Wersja 5.3 nie jest już wspierana nawet pod kątem bezpieczeństwa. Wsparcie dla wersji 5.6 oraz 7.0 skończy się w grudniu 2018. Oznacza to, że luki, które powstaną po zakończeniu wsparcia nie będą łatane, a fakt ten stanowi wręcz zaproszenie dla cyberwłamywaczy.

Minusem starych wersji PHP jest również mniejsza wydajność stron oraz niekompatybilność z niektórymi wtyczkami. Wersję PHP na serwerze można zmienić samemu w panelu klienta lub wydać taką dyspozycję firmie hostingującej.

6. Co zrobić, gdy nastąpi atak?

Oczywiście optymalnym rozwiązaniem jest stosowanie polityki prewencyjnej, w tym np. kroków i narzędzi opisanych w niniejszym artykule. Jednak nawet nieserwisowane strony da się odratować i zabezpieczyć.

W przypadku, gdy podejrzewamy, że ze stroną jest coś nie tak, możemy przeskanować ją online na którejś z darmowych, dedykowanych temu stron np. Sucuri Sitecheck lub Quttera. Taki skan może dać nam już choćby mgliste pojęcie o tym co się zdarzyło (np. który plik jest zarażony lub jakiego typu zagrożenie pojawiło się na stronie). Kolejnym krokiem może być wyguglowanie tematu. Często na forach (głównie anglojęzycznych) można znaleźć podobne przypadki ataków wraz z opisem jakie kroki dany użytkownik podjął, by pozbyć się zagrożenia.

Jeśli nie korzystamy z Google Search Console, jest to najwyższy czas by to zrobić. Wystarczy posiadać konto Google oraz wgrać plik Google na nasz serwer. Konsola dostępna jest w języku polskim i ma bardzo rozbudowaną pomoc.

Ważnym, choć nie zawsze oczywistym krokiem, jest zmiana haseł dostępowych do kokpitu, jak również sprawdzenie czy w systemie nie powstały nowe konta użytkowników, o których nie mamy pojęcia, że w ogóle istnieją. Takich użytkowników należy po prostu usunąć.

Jeśli nadal skanery wskazują, że strona jest zawirusowana lub stwarza zagrożenie, warto zasięgnąć pomocy u specjalistów. Może to być zadanie pytania na blogu lub grupie na Facebooku, albo skorzystanie z usług firmy zajmującej się odwirusowywaniem lub serwisowaniem stron opartych na CMSach.

 Bezpieczeństwo w sieci – krótkie podsumowanie

Aktualne statystyki jednoznacznie wskazują na wzrastające z roku na rok zagrożenia dla stron internetowych. Ataki siłowe liczone są już obecnie w milionach na godzinę! Stawką często już nie są nasze dane, ale transfer, za który płacimy kupując usługi hostingowe.

W takiej sytuacji wdrożenie choćby podstawowych zasad bezpieczeństwa to racjonalne minimum. Większość działań prewencyjnych można zastosować przy pomocy darmowych narzędzi i zachowaniu podstawowych procedur bezpieczeństwa.

Na sam koniec zacytuję raport Website Security Statistics Report 2015 (WhiteHat):

„More secure software, NOT more security software.”
(Bardziej bezpieczne oprogramowanie, a NIE więcej oprogramowania zabezpieczającego.)

 

Przypisy

[i] Raconteur: http://res.cloudinary.com/yumyoshojin/image/upload/v1/pdf/cyber-risk-resilience-2017.pdf – 8 marca 2018

2017 Data Breach Investigations Report, Verizon, strona 5

[ii] https://www.websitehostingrating.com/internet-statistics-facts-2018/#internet-security-stats-facts – 1 marca 2018

[iii] Economic Impact of Cybercrime— No Slowing Down, McAfee, luty 2018, strona 6

[iv] https://www.pandasecurity.com/mediacenter/adaptive-defense/most-common-tactics-among-cybercriminals/ – 26 lutego 2018

[v] https://13639-presscdn-0-80-pagely.netdna-ssl.com/wp-content/uploads/2017/12/Top-100-Worst-Passwords-of-2017a.pdf – 7 marca 2018

[vi] https://news.netcraft.com/archives/category/web-server-survey/ – 26 lutego 2018

[vii] https://w3techs.com/technologies/overview/content_management/all – 7 marca 2018

[viii] https://w3techs.com/technologies/overview/content_management/all – 7 marca 2018

[ix] https://w3techs.com/technologies/history_overview/content_management/all/y

[x] Sucuri Website Hacked Report 2016, strona 2

[xi] https://www.wordfence.com/blog/2017/07/hackers-find-wordpress-within-30-mins/ – 1 marca 2018

[xii] https://webmasters.googleblog.com/2017/03/nohacked-year-in-review.html – 1 marca 2018

[xiii] https://webmasters.googleblog.com/2017/03/nohacked-year-in-review.html – 1 marca 2018

[xiv]https://developers.google.com/web/fundamentals/security/hacked/top_ways_websites_get_hacked_by_spammers – 26 lutego 2018

[xv] eSentire Annual Threat Report 2017, strona 7

Do góry!

Polecane artykuły

22.09.2020

Comarch e-Sale, jako e-commerce na dobry ...