Віруси на сайті
Тема появи шкідливого коду на сторінках сайту є дуже популярною. Хотів у заголовку додати «Частину 1», але потім вирішив зробити у вигляді нескінченної історії =)
Як вже все має бути відомо, нерідко (я б навіть сказав, у більшості випадків) користувачі самі стають носіями інфекції (у ботнет-середовищі таких називають «зомбі»). І використання коду може відбуватися в такий спосіб.
Бувають, звичайно, і вразливості в коді скриптів, але вищеописане все-таки частіше =)
Наведу приклад, з яким мені пощастило
Подивіться на цю чудову гидоту радість ситуацію.
Усередині (останнім рядком) знаходилося дивовижно-обфусціроване тільце шкідника:
Який займався генерацією посилань на js-скрипти, що розташовуються на різних dyndns-доменах. До того часу, як я дістався до цього сайту, жодна з посилань не відкривалася
Подібні речі можна знайти, вивчаючи логиftp -сервера (наприклад,/var/log/xferlog ), причому не тільки поточні, а й ті, що вже порозкрутилися, або тикаючись по сайту чимось типуfirebug дляFirefox.
Отже, проблему знайдено і її слід усунути.
- Перевіряємо всі комп'ютери користувачів, які мають доступ доftp.
- Обмежуємо коло тих, хто має доступ.
- Відучаємось зберігати логін і пароль відftp уftp -клієнті і взагалі разом.
- Робимо резервні копії
Якщо резервної копії з незараженими файлами немає, можна вдатися до ручного втручання у файли, попередньо зробивши резервну копію.
Я скористався командоюfind для пошуку потрібних файлів іperl для викушування частини рядка з файлів.
find -type f -name *.js -execperl -pi -e 's/.* //g'' '<>' \;
- - Вказується місцезнаходження звідки починати шукати. Можна вказати як повний шлях до директорії/home/USER/data/www/SITE/, так і відносний (наприклад, перебуваючи в корені директорії сайту можна використовувати «./ «)
- — кілька перших символів коду, з яких потрібно видалити
- кілька останніх символів коду, закінчуючи якими потрібно видалити
Не забуваємо екранувати різні дужки та розділові знаки.
У конкретному випадку я скористався рядком
Якщо у вас виникнуть якісь труднощі, я завжди відкритий для діалогу.
UPDATE: Не зовсім впевнений, але, здається, віднедавна онлайновий сканер DrWeb став розпізнавати цю заразу