Зламали магазин на OpenCart: що робити в перші години
Зміст
Стаття
Магазин раптом редиректить відвідувачів на сторонні сайти, у пошуковій видачі з'явились сторінки, яких ви не створювали, або хостинг надіслав попередження про шкідливий код. Нижче — порядок дій і, що не менш важливо, перелік того, чого робити не варто.
Чого НЕ треба робити одразу
- Не видаляйте підозріле навмання. Разом із закладкою легко знести робочий файл ядра, і магазин перестане відкриватись зовсім. Діагностувати після цього значно важче.
- Не міняйте паролі першим ділом. Якщо в системі лишився бекдор, нові доступи витечуть так само. Спершу треба зрозуміти спосіб проникнення.
- Не відновлюйтесь наосліп зі старого бекапа. Якщо зараження сталося раніше, ніж ви думаєте, ви відновите його разом із сайтом.
- Не ігноруйте попередження пошуковика. Санкції знімаються після чистки й запиту на перевірку, самі вони не зникають.
Що зробити в першу чергу
Найкорисніше — зняти копію сайту й бази як є, разом із зараженням. Це знадобиться, щоб зрозуміти спосіб проникнення й дату: без цього ви прибираєте наслідки, не знаючи причини.
Друге — зафіксувати симптоми: коли почалось, що саме бачать відвідувачі, чи є попередження від хостингу.
Де в OpenCart зазвичай ховається шкідливий код
- Тека завантажень. Класика: у тимчасових підтеках лежить файл, який виглядає як звичайний архів або зображення.
- Тека модифікацій. Зручне місце: файли там згенеровані, і сторонній серед них не впадає в око.
- Шаблони теми. Один рядок у підвалі — і всі сторінки віддають чужий скрипт.
- Тека із зображеннями. Якщо сервер дозволяє виконувати там PHP, туди кладуть веб-шел.
- База даних. Найчастіше пропускають саме її: код вставляють у налаштування магазину або в описи товарів, і чистка файлів нічого не дає.
- Файли ядра. Порівняння з чистим дистрибутивом вашої версії показує змінені.
Як зазвичай потрапляють усередину
За досвідом, розподіл приблизно такий: піратські модулі й теми з закладками; стара версія PHP чи OpenCart з відомими вразливостями; слабкий або повторно використаний пароль адміністратора; вразливість у сторонньому модулі.
Окремо варто сказати про «безкоштовні» версії платних модулів. Це найдешевший спосіб отримати повноцінний бекдор у магазин — код у них навмисне обфускований, і виявити закладку без цілеспрямованого пошуку майже неможливо.
Порядок лікування
- Знімок стану до змін.
- Пошук закладок у файлах і базі.
- Визначення точки входу — без цього решта не має сенсу.
- Чистка й відновлення пошкоджених файлів із чистого дистрибутива.
- Закриття вразливості: оновлення, зміна доступів, видалення піратських модулів.
- Перевірка: магазин працює, сторонніх редиректів немає, у коді й базі чисто.
- Запит на перевірку в пошуковика, якщо були санкції.
Ознака, що вилікували не до кінця
Якщо зараження повертається через кілька днів після чистки — точку входу не знайшли. Це найчастіша причина, чому магазин лікують по колу: прибирають наслідки, лишаючи причину.
Якщо ситуація гостра і потрібна допомога — є послуга відновлення після злому. Коли все вже стабільно, має сенс аудит безпеки і налаштування бекапів: наступного разу відновлення займе годину замість тижня.