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

Уявіть собі. Ви заходите в інтернет, щоб зайнятися адмініструванням сайтів, але щось не так. Деякі сторінки не завантажуються належним чином. Ви отримуєте сповіщення від Google, в якому говориться, що ваш сайт містить шкідливі програми. І ви розумієте, що сайт був зламаний.

Якщо вам знайома ця ситуація, то ви повинні знати і це почуття. Шок, паніка, сум’яття. Закипаючий гнів в лічені хвилини може перетворити вас в віртуального Халка. Але не панікуйте. Ви повинні залишатися спокійним. Раціональним. Контролювати себе. Чистий, зосереджений розум є ключем для ефективного реагування на будь-які порушення безпеки.

Оцініть розмір збитку

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

Заблокуйте всі доступи

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

Кращий спосіб заблокувати сайт, це додати наступні правила в файл .htaccess сайту, який потенційно може бути зламаний:

# TEMP MAINTENANCE PAGE
RewriteCond %{REMOTE_ADDR} !^123.456.789$
RewriteCond %{REMOTE_ADDR} !^987.654.321$
RewriteRule .* — [R=503,L]
# 3600 = 60 minutes
# 86400 = 1 day
Header always set Retry-After «86400»

Цей код перевіряє IP-адресу відвідувача і порівнює його з двома адресами, які вказані через RewriteCond. Тільки відвідувачі з відповідних IP-адрес можуть отримати доступ. Можна вказати стільки IP-адрес, скільки вам потрібно, або видалити одну з рядків при необхідності. Цей перевірений і надійний скрипт дозволяє доступ з зазначених IP-адрес, а для всіх інших користувачів виводиться повідомлення 503 Service Unavailable. Щоб переконатися, що він працює, відвідавши свій сайт через проксі-сервіс.

Ви можете запитати: «Чому б не використовувати скрипт режиму обслуговування або плагін WordPress, замість того, щоб возитися з .htaccess?» По-перше, це швидко і просто: скопіювати/вставити код і завантажити файл. А по-друге, тому що ваші PHP-файли і плагіни могли бути зламані, і вам потрібно буде деактивувати або замінити їх в процесі очищення. Крім цього файлом .htaccess в кореневій папці сайту легше керувати, і він буде залишати ваш сайт заблокованим навіть після того, як всі файли PHP будуть видалені з сервера.

Змінити всі паролі

Змініть свої паролі. Заведіть спеціальний документ. У ньому повинні бути вказані всі паролі від сервера або пов’язані з ним, наприклад:

  • Панелі управління сервером;
  • Аккаунта на хостингу;
  • Всі паролі SSH;
  • Всі паролі FTP;
  • Всі логіни і паролі баз даних;
  • Усі HTTP / .htaccess паролі аутентифікації;
  • Всі паролі додатків (наприклад, ключі до WordPress і т. д.);
  • Паролі від пошти;
  • Паролі користувачів.

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

Запишіть всі

Відкрийте текстовий файл і задокументуйте всі свої дії з очищення. Це дасть вам чітке уявлення про те, що потрібно зробити на завершальному етапі аналізу і як попередити атаки зловмисників в майбутньому.
Кілька речей, які я рекомендую включити в ваші записи:

  • Опис того, що сталося, і як ви це виявили;
  • Опис того, що ви помітили;
  • Список постраждалих сайтів і сторінок;
  • Журнали записів, час, дати і т. д.;
  • Будь-які IP-адреси, які можуть бути причетні до злому;
  • Копії всіх підозрілих кодів, які ви виявите;
  • Список всіх корисних результатів пошуку, статей, кодів тощо;
  • Файли логів помилок PHP, доступів по HTTP, FTP-активності і т. д.;
  • Скріншоти та копії всіх постраждалих і зламаних сторінок;
  • Зміст листування між вами і вашим хостинг-провайдером або технічною підтримкою.

Ведення докладних записів надасть вам безцінну інформацію, яка може бути використана для оцінки доказів та документації. У мене досі зберігаються всі файли опису кожного з випадків злому моїх сайтів. Докладна документація дозволяє більш оперативно реагувати, якщо щось подібне станеться з вами в майбутньому.

Спілкуйтеся з цієї теми

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

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

Проведіть розслідування

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

Якщо ви збираєтеся зайнятися процесом очищення самостійно, ось деякі дії, що вам потрібно зробити:

  • Просканувати сайт на наявність шкідливого коду;
  • Просканувати сайт на наявність вразливостей;
  • Перевірте зламані файли і порівняйте їх зміст з збереженими безпечними копіями;
  • Перевірте журнали доступу;
  • Перевірте невідомі або невідповідні файли на сервері;
  • Перевірте повторювані моделі поведінки в логах сервера;
  • Визначте, що саме не працює на вашому сайті і постарайтеся встановити причину.

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

Кілька додаткових порад щодо визначення методу атаки на сайт:

  • Ретельно вивчіть файли логів; вони містять більшу частину інформації, необхідної, щоб точно визначити, що сталося;
  • Перевірте через пошук в інтернеті всі фрагменти шкідливого коду. Швидше за все, хтось в Мережі вже повідомляв про такі події;
  • Поставте на пошук фрази, що містять ім’я вашого сайту або URL-адреса разом з такими словами, як «злом«, «атака» та іншими термінами. Якщо якийсь зловмисник зламав ваш сайт, він, можливо, захоче розповісти про це всьому світу;
  • Зверніться до Керівництва з усунення неполадок, щоб дізнатися про поглиблених методи, які допоможуть виявити та ідентифікувати різні зламані файли.

У 2013 році Perishable Press був зламаний. Я провів розслідування і спробував знайти в Інтернеті будь-які можливі докази. Я виявив, що зловмисник написав про це на одному приватному хакерському форумі. Він докладно розповів про все, що було зроблено, щоб зламати мій сайт, в тому числі конкретний механізм, за допомогою якого було отримано несанкціонований доступ.

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

Створюйте резервні копії

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

Після того як ви убезпечили сайт, використовуйте останню резервну копію, щоб відновити втрачені дані. Можливо, знадобиться відновити базу даних, файли або що-небудь ще. Я виходжу з припущення, що сайт зламаний повністю. І потрібно відновлювати все, використовуючи останню доступну резервну копію. Тому, регулярно створюючи резервні копії, ви зможете відновити все набагато швидше.

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

Підвищуйте безпека

Після визначення причини проблеми і вычистки всіх файлів на сервері, важливо усунути всі уразливості. Навіть не думайте завантажувати новий набір файлів і відновлену базу даних, поки не забезпечите належним чином безпеку. Перевірте безпеку свого сайту і при необхідності підсильте її. Оновіть уразливий код, захистіть важливі файли і заблокуйте підозрілих користувачів.

Пам’ятайте, що 100% безпеки не існує, але можна додати кілька шарів захисту і значно підвищити безпеку свого сайту.

Поділіться тим, що ви дізналися

Вам не потрібно вказувати особисту або конфіденційну інформацію, але можна розповісти іншим про те, що сталося, і як ви виправили це. Адже якщо це трапилося з вами, то існує ймовірність, що те ж відбудеться з іншими.

Переклад статті «What to do when your site gets hacked» був підготовлений дружною командою проекту Сайтостроение від А до Я.