Віруси на сайті

Тема появи шкідливого коду на сторінках сайту є дуже популярною. Хотів у заголовку додати «Частину 1», але потім вирішив зробити у вигляді нескінченної історії =)

Як вже все має бути відомо, нерідко (я б навіть сказав, у більшості випадків) користувачі самі стають носіями інфекції (у ботнет-середовищі таких називають «зомбі»). І використання коду може відбуватися в такий спосіб.

Бувають, звичайно, і вразливості в коді скриптів, але вищеописане все-таки частіше =)

Наведу приклад, з яким мені пощастило

Подивіться на цю чудову гидоту радість ситуацію.

Усередині (останнім рядком) знаходилося дивовижно-обфусціроване тільце шкідника:

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

Подібні речі можна знайти, вивчаючи логиftp -сервера (наприклад,/var/log/xferlog ), причому не тільки поточні, а й ті, що вже порозкрутилися, або тикаючись по сайту чимось типуfirebug дляFirefox.

Отже, проблему знайдено і її слід усунути.

  1. Перевіряємо всі комп'ютери користувачів, які мають доступ доftp.
  2. Обмежуємо коло тих, хто має доступ.
  3. Відучаємось зберігати логін і пароль відftp уftp -клієнті і взагалі разом.
  4. Робимо резервні копії

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

Я скористався командоюfind для пошуку потрібних файлів іperl для викушування частини рядка з файлів.

find -type f -name *.js -execperl -pi -e 's/.* //g'' '<>' \;

  • - Вказується місцезнаходження звідки починати шукати. Можна вказати як повний шлях до директорії/home/USER/data/www/SITE/, так і відносний (наприклад, перебуваючи в корені директорії сайту можна використовувати «./ «)
  • — кілька перших символів коду, з яких потрібно видалити
  • кілька останніх символів коду, закінчуючи якими потрібно видалити

Не забуваємо екранувати різні дужки та розділові знаки.

У конкретному випадку я скористався рядком

Якщо у вас виникнуть якісь труднощі, я завжди відкритий для діалогу.

UPDATE: Не зовсім впевнений, але, здається, віднедавна онлайновий сканер DrWeb став розпізнавати цю заразу