Ой-ой, нам сайт зламали! Що ж робити?

  1. Головна
  2. Блог
  3. Інструкції
  4. Ой-ой, нам сайт зламали! Що ж робити?
Категорії

Зайшли зранку на свій сайт, а він рясніє сторонніми банерами чи зовсім заблокований? Швидше за все, його зламали чи заразили. Порада № 1 – без паніки, все можна виправити. Головне, не впадайте у відчай і тим більше не погоджуйтеся на пропозицію «викупити» свій сайт назад (так-так, і таке буває). Особисто ми не ведемо переговорів із зловмисниками. І вам підкажемо, як із ними боротися. :)

 

Хто шкідник?

 

Здавалося б, ну якій нормальній людині потрібно зламувати чужий сайт, витрачати на цей час і ресурси? Щоб що? Лише пошантажувати власника? Насправді, список набагато ширший. Найчастіше зловмисники зламують сайти, щоб:

  • Використовувати його для «фішингу» – вид інтернет-шахрайства, коли на підставних сайтах відвідувачі крадуть акаунти, реквізити банківських карток та іншу персональну інформацію.
  • Розсилати зі зламаного сайту спам.
  • Використовувати сайт для зловмисної активності, DDoS-атак.
  • Пересилати відвідувачів на інші веб-сайти.
  • Банально насолити конкуренту, зламавши роботу сайту.

 

Тому навіть те, що ви не зберігаєте на своєму сайті особисті дані користувачів і не проводите фінансові операції, не вбереже вас від попадання в поле зломників.

 

Симптоми

 

Звісно, якщо зловмисники розмістили на сайті свої банери або відвідувачів при вході перекидають на інші ресурси, напевно, ви помітите це і без додаткової діагностики.

 

Крім того, якщо зломщики вже встигли «нашкодити» (розіслати спам, провести DDoS-атаку тощо), можливо, ваш сайт потрапив до чорного списку пошукових систем. Той же Google вкладає великі ресурси у боротьбу з сайтами-шкідниками, тому, ймовірно, швидко вистежить ваш сайт і почне попереджати потенційних відвідувачів. Зрозуміло, це позначиться на відвідуваності.

 

warning-pic

 

Також «симптомами» зламаного або зараженого сайту можуть бути невідомі файли у директорії та чужорідний код у тілі чи файлах сайту.

 

Знаходимо причину

 

Виявити шкідливі файли, а заразом і слабкі місця сайту можна так:

 

  1. Знайдіть заражені файли за допомогою антивірусу. З цим завданням впораються антивірусні утиліти clamav та maldet. Якщо ClamAV є в системі, maldet буде використовувати при скануванні не тільки свої бази, але й бази clamav.

Для сканування важливо використовувати команду, яка не переміщатиме файли в карантин. В іншому випадку дата їхньої модифікації зміниться і подальше «розслідування» не вийде. Підійде така команда:


-bash-4.1# maldet --config-options quarantine_hits=0 -a /var/www/
Linux Malware Detect v1.
(C) 2002-2016, R-fx Networks proj@rfxn.com
(C) 2016, Ryan MacDonald ryan@rfxn.com
This program may be freely redistributed under the terms of the GNU GPL v2
maldet(5719): {scan} signatures loaded: 11294 (9343 MD5 / 1951 HEX / 0 USER)
maldet(5719): {scan} building file list for "/var/www/", this might take awhile...
maldet(5719): {scan} setting nice scheduler priorities for all operations: cpunice 19 , ionice 6
maldet(5719): {scan} file list completed in 0s, found 6624 files...
maldet(5719): {scan} found clamav binary at /usr/bin/clamscan, using clamav scanner engine...
maldet(5719): {scan} scan of "/var/www/" (6624 files) in progress...
maldet(5719): {scan} processing scan results for hits: 1 hits 0 cleaned
maldet(5719): {scan} scan completed on "/var/www/": files 6624, malware hits 1, cleaned hits 0, time 26s
maldet(5719): {scan} scan report saved, to view run: maldet --report 170223-1010.5719
maldet(5719): {scan} quarantine is disabled! set quarantine_hits=1 in conf.maldet or to quarantine results run: maldet -q 170223-1010.5719

 

Важливо!

Перевірте на віруси і сам комп'ютер, з якого керуєте сайтом — якщо злом зроблено в результаті витоку пароля, новий пароль через якийсь час можуть вкрасти знову.

 

  1. Дізнайтеся про час, коли вірус був змінений востаннє. Це можна зробити за допомогою утиліти ls (утиліта для виведення вмісту каталогів).

Зазвичай з'являється час останньої модифікації файлу. Зловмисники могли його змінити:


[****]# ls -l class-smtp.php
-rw-r--r--. 1 **** 52078 січ 12 00:41 class-smtp.php

 

А час останньої зміни файлу фіксовано. Дізнатися його можна за допомогою параметра –c:


[****]# ls -lc class-smtp.php
-rw-r--r--. 1 **** 52078 лют 1 10:40 class-smtp.php

 

  1. Звірте час останньої зміни із записами в логах веб-сервера за допомогою утиліт less (програма для читання файлів) та grep (утиліта для пошуку рядків).

Вийде приблизно так:


[****]# less remoteoffice.****.log-20170202.gz | grep POST | grep -E ":10:(3([789])|40):"
93.124.244.82 - - [01/Feb/2017:10:39:50 +0200] "POST /wp-content/plugins/LayerSlider/tmp/file65.php HTTP/1.0" 504 183
"http://****/wp-content/plugins/LayerSlider/tmp/file65.php" "Mozilla/5.0 (X11; Linux x86_64; rv:29.0) Gecko/20100101 Firefox/29.0 SeaMonkey/2.26"
184.168.152.197 - - [01/Feb/2017:10:39:59 +0200] "POST /wp-includes/SimplePie/Decode/HTML/dir.php HTTP/1.0" 200 64
****/wp-includes/SimplePie/Decode/HTML/dir.php" "Mozilla/5.0 (X11; U; Linux i686; en-US) U2/1.0.0 UCBrowser/9.3.1.344"
37.255.128.50 - - [01/Feb/2017:10:40:03 +0200] "POST /wp-includes/SimplePie/Decode/HTML/dir.php HTTP/1.0" 200 82
"http://****/wp-includes/SimplePie/Decode/HTML/dir.php" "Mozilla/5.0 (X11; Linux x86_64; rv:29.0) Gecko/20100101 Firefox/29.0 SeaMonkey/2.26"
184.168.193.197 - - [01/Feb/2017:10:40:06 +0200] "POST /wp-content/plugins/contact-form-7/languages/dump.php HTTP/1.0" 200 57 "http://****/wp-content/plugins/contact-form-7/languages/dump.php" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.48 Safari/537.36"
23.91.70.65 - - [01/Feb/2017:10:40:08 +0200] "POST /wp-includes/fonts/global.php HTTP/1.0" 200 62
"http://****/wp-includes/fonts/global.php" "Mozilla/5.0 (X11; Linux x86_64; rv:29.0) Gecko/20100101 Firefox/29.0 SeaMonkey/2.26"
97.74.24.221 - - [01/Feb/2017:10:40:14 +0200] "POST /wp-content/themes/Avada/fusion-icon/alias72.php HTTP/1.0" 200 60 "http://****/wp-content/themes/Avada/fusion-icon/alias72.php" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.48 Safari/537.36"
50.62.177.78 - - [01/Feb/2017:10:40:16 +0200] "POST /wp-includes/js/jquery/css6.php HTTP/1.0" 200 92
"http://****/wp-includes/js/jquery/css6.php" "Mozilla/5.0 (X11; Linux x86_64; rv:29.0) Gecko/20100101 Firefox/29.0 SeaMonkey/2.26"
45.40.164.132 - - [01/Feb/2017:10:40:17 +0200] "POST /wp-content/plugins/LayerSlider/tmp/file65.php HTTP/1.0" 499 0
"http://****/wp-content/plugins/LayerSlider/tmp/file65.php" "Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:24.0) Gecko/20100101 Firefox/24.0"

 

  1. Відрізайте неуспішні запити (відповідь від сервера не 200) та запити до одного і того ж скрипту. Вийде список:


184.168.152.197 - - [01/Feb/2017:10:39:59 +0200] "POST /wp-includes/SimplePie/Decode/HTML/dir.php HTTP/1.0" 200 64
"http://****/wp-includes/SimplePie/Decode/HTML/dir.php" "Mozilla/5.0 (X11; U; Linux i686; en-US) U2/1.0.0 UCBrowser/9.3.1.344"
184.168.193.197 - - [01/Feb/2017:10:40:06 +0200] "POST /wp-content/plugins/contact-form-7/languages/dump.php HTTP/1.0" 200 57 "http://****/wp-content/plugins/contact-form-7/languages/dump.php" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.48 Safari/537.36"
23.91.70.65 - - [01/Feb/2017:10:40:08 +0200] "POST /wp-includes/fonts/global.php HTTP/1.0" 200 62
"http://****/wp-includes/fonts/global.php" "Mozilla/5.0 (X11; Linux x86_64; rv:29.0) Gecko/20100101 Firefox/29.0 SeaMonkey/2.26"
97.74.24.221 - - [01/Feb/2017:10:40:14 +0200] "POST /wp-content/themes/Avada/fusion-icon/alias72.php HTTP/1.0" 200 60 "http://****/wp-content/themes/Avada/fusion-icon/alias72.php" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.48 Safari/537.36"
50.62.177.78 - - [01/Feb/2017:10:40:16 +0200] "POST /wp-includes/js/jquery/css6.php HTTP/1.0" 200 92
"http://****/wp-includes/js/jquery/css6.php" "Mozilla/5.0 (X11; Linux x86_64; rv:29.0) Gecko/20100101 Firefox/29.0 SeaMonkey/2.26"

 

Кожен із п'яти (у нашому випадку) відібраних скриптів може бути причиною зараження.

 

Важливо!

Як правило, зловмисники зламують сам сайт, а не систему, де він працює. Найпростіший спосіб перевірити – подивитися, кому належать заражені файли. Якщо тому ж користувачу, від імені якого запускалися PHP-скрипти (залежно від налаштувань системи, це або той самий користувач, якому належать інші файли веб-сайту, або системні користувачі apache або nobody), швидше за все, злом стався внаслідок витоку пароля або вразливість у коді сайту.

 

Як «вилікувати» сайт

 

Після виявлення вірусів:я вирусов:

  1. Обновіть CMS сайту і всіх модулів/плагінів, так як через дірки (уразливості) вірус часто і потрапляє не сайт.

  2. Змініть паролі для всіх (!) користувачів сайту та всіх облікових записів, які стосуються сайту (доступ до FTP-сервера, панелі керування хостингом тощо). Є ймовірність, що вірус зміг впровадити своїх користувачів у базу даних і вже цілком легально виконує будь-які шкідливі дії.

  3. Видаліть всі можливі шкідливі файли. Це можна робити як при ручному редагуванні файлів, так і з використанням скриптів, які видалять файли і не порушать структуру сайту.

  4. Обмежте доступ до всіх каталогів сайту.

 

Крайні заходи

 

Якщо «вилікувати» сайт все ж таки не вийшло, доведеться розвернути його з резервної копії. Робите копії щодня? Тоді великих проблем таке розгортання не завдасть. А от якщо з часу останнього копіювання минули дні або навіть тижні – біда, втрата важливих змін майже неминуча.

 

Профілактика

 

Найкраще лікування – це профілактика. Щоб мінімізувати ризик злому:

  • Перевіряйте сайт та віртуальну машину на віруси.
  • Обмежте доступ до веб-сайту. У кожного співробітника повинен бути той рівень доступу, який потрібен йому для виконання роботи.
  • Ніколи не користуйтесь логіном та паролем, які дісталися вам за замовчуванням. Ретельно вибирайте пароль, використовуйте всі допустимі символи та їх варіації.
  • Обмежте кількість спроб авторизації користувача.
  • Заздалегідь подбайте про регулярне резервне копіювання.
  • Встановіть плагіни, які дозволяють убезпечити сайт від зломів, наприклад WordFence для CMS WordPress та аналоги для інших CMS.

 

Але найголовніше правило – довіряйте керування сайтом лише професіоналам.

 

Висновки

 

Зламаний сайт ще не вирок. Ситуацію можна виправити навіть у найбільш занедбаних випадках. Але профілактика завжди краща за «агресивне» лікування. Тому рекомендуємо дотримуватися елементарних правил безпеки ще до того, як зловмисники зазіхають на ваш сайт. Ну, а для швидкого завантаження сайту та надійної роботи подбайте про якісний хостинг як для невеликих, так і для масштабних проектів.

 

Поділитися:
Закрити
Замовити зворотний дзвінок

Будь ласка, перевірте правильність заповнення поля з номером телефону

Поля обов'язкові для заповнення.
Цей сайт захищено reCAPTCHA та приймаються Політика конфеденційності й Умови користування від Google.

Ми використовуємо cookies.

Ми використовуємо файли cookies, щоб забезпечити основні функціональні можливості на нашому сайті і збирати дані про те, як відвідувачі взаємодіють з нашим сайтом, продуктами і послугами. Натискаючи Прийняти або продовжуючи використовувати цей сайт, ви погоджуєтеся з тим, що ми використовуємо ці інструменти для реклами і аналітики згідно з «Політикою про файли сookies»

ПрийнятиВідмовитись