Защита от php вирусов


Что такое MODX?

MODX (Модэкс или Модикс) — это бесплатная система управления содержимым (CMS) с элементами фреймворка для разработки веб-приложений.

Есть 2 версии CMS: актуальная MODX Revo и динозавр MODX Evo. Настоятельно рекомендуется использовать именно MODX Revolution.

ТОП-3 уязвимости MODX

Своего врага нужно знать в лицо. Поэтому рассказываем по-порядку о последних официально зафиксированных уязвимостях.

3 место. 11 июля 2018

Один из массовых взломов MODX был зафиксирован летом 2018-го.

Кодовые названия вирусных атак CVE-2018-1000207 и CVE-2018-1000208.

Взлом проходит по 2-3 классическим сценариям. Вирус выдает себя наличием файлов с подозрительными именами: dbs.php и cache.php в корне сайта (а еще бывает там майнер лежит).

Избежать заражения MODX можно при соблюдении двух условий:

  • если папка connectors переименована и закрыт к ней доступ;
  • переименована папка assets (при использовании компонента gallery).

Проблема в следующем. MODX передает пользовательские параметры в класс phpthumb без необходимой фильтрации. Для заражения сайта используются скрипт /connectors/system/phpthumb.php или любой другой передающий параметры в класс modphpthumb.class.php. Вредоносный скрипт получает на вход имена функций и параметры через куки. С помощью полученных данных происходит косвенный вызов этих функций. Например, если у вас установлен плагин Gallery (классика жанра), то атака может происходить через скрипт: /assets/components/gallery/connector.php.

Если сайт размещен на аккаунте виртуального хостинга без изоляции сайтов, то данный backdoor позволяет заразить не только хакнутый сайт, но и его “соседей”.

Найти и удалить вирусные файлы, обновить CMS до последней версии.

2 место. 27 октября 2018

Уже через три месяца после предыдущей атаки, была зафиксирована новая уязвимость. На этот раз в сниппете AjaxSearch.

Найти и удалить вирусные файлы, обновить сниппет до последний версии.

1 место. 24 апреля 2019

Самая свежая угроза MODX зафиксирована весной 2019-го.

Проверить свой сайт на такую уязвимость можно следующим образом. Введите в строку любого браузера адрес вашего домена + /setup.

Зайти через SSH или FTP на свой сервер и удалить этот каталог.

Обнаружение вирусов на живых примерах

Теперь на наглядных примерах рассказываю, как может проявлять себя вирус. Под уязвимость попал сайт на системе MODX Revolution 2.6.5-pl. Сразу стоит отметить, что внешне вирус себя особо не выдавал. Т.е. сайт не падал, не было редиректов на странные страницы, картинки отображались корректно и так далее.

Над сайтом проводились работы по сео-оптимизации, в том числе оптимизировалась карта сайта. В один не очень прекрасный день, был скачан файл sitemap.xml, для анализа его корректности. Открыв карту сайта, увидел такую картину:


В хвост url-адресов сайта прописался мусор, сгенерированный вирусом. Проверив в админке правила заполнения карты, я не нашел никаких следов деятельности паразита. Оказалось, что карту просто подменили. Первым делом вернул корректный сайтмап, а потом сразу “побежал” в Google Search Console и Яндекс.Вебмастер за письмами счастья. Пришло уведомление только от гугла, он оказался очень шустрым, когда не надо. В личном кабинете ожидало сообщение о нарушении безопасности.


Понятно. Далее проверил, что творится в индексе гугла и ужаснулся. Японская вакханалия! Как я дальше узнал, это японский SEO-спам.



С этим все понятно, а что думает на этот счет Яндекс? Да ничего. Вирус, как оказалось, чисто гугловый. Хоть одна хорошая новость. Почему так? Есть отличный сервис, который позволяет смотреть на сайт глазами поискового робота.


Выбираем в параметрах просмотра GoogleBot, пишем в строку адрес любой страницы и получаем результат. Японские иероглифы повсюду. Выбираем робота Яндекса — код выглядит естественным образом. Вот так гугл кроулер видит страницы сайта, хотя внешне (для человеческого глаза) они никак не изменились.


Контент зараженной страницы в глазах поисковика именно таков. По сути это японский дорвей. То есть под видом качественной страницы распространяется вирусная информация. Наш сайт находят по релевантному запросу в поиске (как и должно быть), но поверх качественного контента отображается вредоносная информация. В данном случае, как я уже говорил, это видит только гугловый бот. Для человека и бота яндекса страницы выглядят как обычные.

Этот японский вирус был удален из MODX с помощью утилиты ai-bolit. О работе с данной программой написано далее.


Базовые советы, как предупредить заражение сайта на MODX

  1. Делать резервные копии содержимого сайта.
  2. Следить за подсказками в Яндекс вебмастере и Гугл серч консоли о состоянии безопасности сайта.
  3. Проверять регулярно сайт на наличии вирусов скриптом ai-bolit.
  4. Использовать последние версии патчей для админки и модулей (плагинов).
  5. Следить за новостями безопасности из официального блога.

Меня заразили. Что делать?

Элементарно. Как можно скорее заняться удалением зловредов. Для SEO-продвижения важно устранить проблему до того, как ее обнаружат гугл или яндекс боты. Если вы опередили ботов, то уже хорошо, но времени на исправление все равно немного.

Как мы убедились ранее, процесс лечения сайта сводится к 2-3 шагам.

  1. Поиск и удаление вирусов.
  2. Установка обновлений (патчей), закрывающих уязвимости.
  3. Смена паролей, но в этом не всегда есть необходимость. Зачастую цель вирусных атак — заражение сайта для собственной выгоды, а не для кражи паролей.

Поиск и удаление вирусов. Как лечить?

Выделим 2 самых популярных способа лечения сайта от вирусов. Эти методы рабочие не только для сайтов, построенных на Модиксе, но и для всех остальных.

  1. Скачиваем антивирус ai-bolit для сайтов здесь.
  2. Распаковываем скачанный архив.
  3. Если у вас есть доступ к серверу через SSH:
      1) Копируем содержимое папки ai-bolit в корень сайта.
      2) Заходим на сервер через консольное приложение (например Putty) и переходим в корень сайта cd /путь/до/вашего/сайта.
      3) Запускаем скрипт командой (в консоли будет отображаться статус проверки):

В отчете могут быть и чистые системные файлы MODX, будьте внимательны

    2) Заходим на сервер через ftp по известным ip, login и password при помощи FTP клиента (WinSCP или Filezilla).
    3) В корень копируем содержимое папки ai-bolit: ai-bolit.php (ранее правленый) и AIBOLIT-WHITELIST.db.

    Cначала редактировать и только потом копировать файл ai-bolit.php, т.к. после копирования хостинг может заблокировать изменение файла

    где сайт - название вашего домена,

    пароль - ранее прописанный в файл ai-bolit.php.

      5) При успешном переходе по вышеупомянутому адресу начнется сканирование сайта, по окончании которого генерируется отчет. Но скрипт может не выполнить полное сканирование, из-за стандартных ограничений PHP, установленных хостером и вы увидите на экране ошибку с кодом 50x. В этом случае надо найти в панели управления хостингом, где изменить параметры php и расширить параметры memory_limit до 512mb и max_execution_time до 600 сек, при необходимости и возможности ресурсов вашего хостинга задайте большие значения параметров.
      6) Также хостер может заблокировать и запись файлов на вашей площадке, т.к. обнаружит активность вредоносных программ. В этом случае обратитесь в техподдержку с подробным описанием проблемы.
  • После завершения проверки в корне сайта появится файл-отчет вида: AI-BOLIT-REPORT- - .html. Этот файл нужно скачать и открыть в браузере. В этом отчете будут указаны пути ко всем подозрительным файлам, например:
      1) Файлы (в системных папках MODX), дублирующие существующие, с небольшим изменением в названиях. Такие файлы содержат закодированные данные и формы для загрузки файлов. Такие файлы необходимо удалять полностью
      2) Файлы формата jpg, но не являющиеся изображениями (например, макросы). Это проверяется открытием таких файлов текстовым редактором. Такие файлы необходимо также удалять полностью
      3) Реальные системные файлы MODX (например index.php), в которые добавлены извне строки вредоносного кода. Например команды, которые шли до комментария по умолчанию (см. ниже) — выше этого комментария кроме открывающегося тега
    • После очистки следов вируса могут пострадать системные файлы. Это решается установкой свежей версии MODX и затем всех дополнений.
    • Если сайт после очистки работает нормально, все равно обновите MODX!
    • Закалка MODX или как защитить сайт от вирусов?

      Зачастую, вирусные алгоритмы работают по заезженному принципу. Они пробуют определить движок сайта с помощью прямых или косвенных параметров. Потом, используя свои шаблоны, пытаются взломать сайт. Прямые — это когда движок сайта явно указан в коде сайта:

      meta name="generator" content="Joomla! 1.5 - Open Source Content Management"

        Если на сервере сайта произойдет сбой, а php-файлы перестанут исполняться (будет отображаться их исходный код), то злоумышленнику будет несложно получить доступ к базе данных. Во избежании этого надо добавить в .htaccess файл следующую строку, чтобы не показывать код ошибки PHP:

    • Не забываем чистить кеш в папке /core/cache/.
    • Заключение

      MODX подвержен частым вирусным атакам, как и все остальные CMS. Да, мы можем снизить риск заражения, выполнив грамотную настройку сайта, но это не панацея. Вирусы могут заползти оттуда, где их вовсе и не ждали. Поэтому не забрасывайте свои сайты и не пускайте на самотек. Своевременное обнаружение вирусов поможет избежать серьезных проблем с чисткой сайта и SEO-продвижением. Периодически проверяйте здоровье сайта, устанавливайте обновления и следите за новостями кибербезопасности.

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

      1. все директории и файлы cms делаем read-only
      2. разграничиваем веб-сайты (1 эккаунт - 1 веб-сайт)
      3. любое директории, в которые выполняется загрузка файлов либо кэширование - делаем read-write и кладем в них .htaccess, который либо делает

      либо запрещает требование php

      Options -Indexes
      php_flag engine 0
      RemoveHandler .phtml .php .php3 .php4 .php5 .php6 .phps .cgi .exe .pl .asp .aspx .shtml .shtm .fcgi .fpl .jsp .htm .html .wml
      AddType application/x-httpd-php-source .phtml .php .php3 .php4 .php5 .php6 .phps .cgi .exe .pl .asp .aspx .shtml .shtm .fcgi .fpl .jsp .htm .html .wml

      4. в документ с данными БД установливаем наименьшие допустимые права (400 либо 444)
      5. закрываем админку через .htaccess для вашего IP либо по кодовому слову
      6. обновляем cms и остальные плагины до новых версий
      7. устраняем любое лишние плагины и шаблоны
      8. сканируем собственный компьютер в вирусы
      9. применяем SFTP (SCP) протокол при работе с интернет-сайтом и не храним пароли в клиенте
      10. уже после контроля пк на вирусы заменяем все пароли у интернет-сайта и хостинга (в том числе пароль с БД).

      Вот такие обыкновенные, казалось бы, действия освободят вам от кучи проблем.

      Фирма Checkmarx провела исследование (PDF, 600 Кб) защищенности 50 наиболее известных плагинов к ориентированной на создание блогов системе управления интернет-контентом WordPress. Результаты стали печальными - 12 плагинов из 50 (24%) оказались чувствительными к обычным атакам на интернет-приложения, таким как подстановка SQL-кодировки, доступ к файлам в вышестоящим директориям (к примеру через указание "../" в пути), межсайтовый скриптинг (XSS) и подделка межсайтовых запросов (CSRF).

      При сужении подборки вплоть до ДЕСЯТИ наиболее известных плагинов, связанных с электронной коммерцией, уязвимости были обнаружены в 7 (70%). С учётом того, что WordPress применяется для обеспечения работы примерно 60 миллионов веб-сайтов в сети, что является приблизительно 18% от количества абсолютно всех веб-сайтов в Интернет, проблема принимает угрожающий характер. Четкие данные по количеству веб-сайтов использующих те или другие плагины не приводится, однако установлено, что в сумме было загружено 8 миллионов копий уязвимых плагинов (1.7 миллионов если расценивать только плагины для электронной коммерции).

      Согласно мнению Checkmarx настолько впечатляющее продвижение уязвимых плагинов объясняется неосторожностью администраторов веб-сайтов, не пытающихся удостовериться в том что плагин не опасен и уверенных, что загружая плагин с надёжного источника они приобретают надежный код. С другой стороны распространению уязвимостей содействует недостаток соответствующего тестирования плагинов на наличие проблем с защищенностью и отсутствие стандартов на проверку приложений, предоставляемых с целью запуска в PaaS-сервисах либо загрузки из каталога WordPress.org.

      Стоит отметить, что проведённое в январе подобное исследование обнаружило 18 уязвимых плагинов для которых зарегистрировано 18.5 миллионов загрузок, а вторичная проверка, сделанная через 6 месяцев, продемонстрировала, что уязвимости согласно прежнему сохраняются в 12 из них. Подобным образом только лишь в 6 плагинах уязвимости были устранены в течение 6 месяцев, невзирая на то, то что многофункциональные обновления из-за указанный промежуток были выпущены для всех плагинов. В качестве допустимой меры согласно исправлению ситуации с безопасностью плагинов мы предлагаем уменьшить их применение для нашего хостинга сайтов.

      Все вышеперечисленное является результатом заражения сайта вирусом — чужеродным вредоносным кодом. Если Вы не уверены, можете написать на email в службу хостинга, мы ответим Вам. Наш хостинг Украины сообщает своим клиентам при заражении сайта, а также при расслыке спама чрез скрипты сайта.

      Как это произошло, кто виноват и, самое главное — что делать для устранения и предотвращения подобного?

      С точки зрения сервера это выглядит как обыкновенная активность пользователя: выполняется подключение авторизованного пользователя, скачивание и закачивание файлов — фактически именно то, что выполняется при обыкновенном обновлении сайта разработчиком по FTP.

      1-ое, то что нужно сделать при обнаружении подобного инфицирования — это не предоставить вирусу вторично заразить веб-сайт. С целью этого достаточно сменить пароль на FTP через панель управления, а кроме того проверить все компьютеры, с каких выполнялось подключение к веб-сайту по FTP на вирусы, используя антивирусы со свежими базами обновлений.


      Как зловредный код попадает на сайт?

      Как правило в этом виноваты уязвимости в CMS, но чаще виноваты уязвимости в плагинах и расширениях для CMS. Чаще всего под удар попадают распространённые системы управления контентом с открытым исходным кодом такие как Joomla или WordPress. Так как мне приходилось обслуживать большое количество сайтов (это 300+ и для меня это большое количество) я убедился что чаще всего взламывают сайты на Joomla. Это не камень в огород Joomla (я уважаю данную CMS), а скорее камень в огород вебмастеров, которые бездумно ставят расширения откуда попало.

      Я считаю что главная уязвимость Joomla заключается в том что файлы доступны по прямому вызову. Да, файлы дистрибутива обеспечены некой примитивной защитой против прямого вызова в виде проверки существования константы установленной в индексном файле и этого вполне хватает, но вот разработчики расширений не часто придерживаются этого правила. Это создаёт благоприятную обстановку для комнатных хакеров, которые прогуливая уроки в школе внимательно изучают код часто-используемых расширений. Бывает это делается с помощью специальных инструментов которые пишут уже не школьники но профессиональные взломщики которые щедро делятся наработками на тематических форумах.

      Для осуществления атаки конечно же не достаточно иметь незащищённый от прямого вызова файл. В таком файле также должны присутствовать уязвимости в виде незащищённых переменных, отсутствие проверки вводимых данных и так далее. Одним словом они ищут результаты некомпетентности разработчика. И тут стоит заметить что PHP это тот самый язык программирования, который позволяет создавать приложения уже на третий час его изучения. Стоит ли объяснять почему рынок в сфере php-софта просто переполнен дилетантами чуть более чем полностью? Я бы даже сказал что это давно приняло катастрофические масштабы, за что почему-то принято ругать PHP. Так вот программных решений написанных дилетантами на PHP, навскидку две трети. Так что поиск уязвимостей в php-скриптах известных решений давно стало излюбленным занятием вставших на тёмную сторону силы программистов.

      Зачем взламывают и заражают сайты?

      Так зачем же это всё-таки надо? Кому нужны взломанные сайты? Отвечу так: Взломанные сайты, это довольно востребованный продукт на чёрном it-рынке (даркнете), применения им масса: Перенаправление трафика (редиректы ну другие ресурсы), организация ботнетов для ddos-атак (ddos-атаки могут стоить очень дорого, так что владельцы ботнетов неплохо зарабатывают), это вредоносные javascript заражающие компьютеры посетителей с любой целью, это сбор информации любого рода, это кластерные вычисления (от каждого заражённого сайта по n% процессорного времени, и если их достаточно много то можно производить серьёзные операции). Конечно всё что я тут описал, это только для примера, чтобы хотя бы дать направление вашим мыслям в понимании того, для чего взламывают сайты. В реалиях ситуация намного сложнее и масштабнее, и есть такие причины для взлома, что не в сказке сказать не в блоге написать…

      Как узнать что сайт взломали?

      Как защитить свой сайт от взлома?

      Существует не так много способов защитить свой сайт. Конечно же, методы защиты больше всего зависят от защищаемой CMS, но также они зависят и от хостинга. Я не буду пиарить или антипиарить и называть конкретных имён, могу сказать только, что даже самые топовые хостеры могут быть очень дырявыми и шеллы будут засовывать даже на html-сайты (то есть сайты на которых вообще нет не одного исполняемого скрипта).

      И так в файле php.ini должна быть строчка:

      Если данной строчки у вас в конфиге не будет, смена прав на папки вашей CMS что мёртвому припарки, ибо эти самые права лихо сменят снаружи обратно на 777. В тоже время, CMS скорее всего будет ругаться на то что у вас эта функция запрещена, потому что она сама хочет иметь возможность изменять права, но эта сама возможность ей необходима крайне редко (в основном при обновлении или установке новых плагинов), по этому при обновлении самой CMS или установки или обновлении плагинов, данную строчку в php.ini придётся комментировать.

      Далее нужно запретить интерпретацию php-скриптов сервером в папках, где это не нужно. Например в Joomla это папки cache, images, logs, tmp ибо они становятся в основном пристанищем шеллов и бекдоров. Сделать это очень просто, нужно в каждую из этих папок закинуть файл .htaccess с вот таким кодом:

      В серии статей Защита Joomla мы уже рассмотрели различные способы и средства защиты Joomla от хакерских атак и вирусов. Но что делать, если ваш сайт уже заражен? Как его вылечить?

      В этой статье приведено пошаговое руководство лечения сайта на Joomla от вирусов (приведенные шаги актуальны и для сайтов на других CMS). Выполните все шаги, и ваш сайт будет восстановлен.

      Кто и зачем заражает сайты вирусами?

      Давайте, в первую очередь, разберемся в теоретических причинах заражения. Предположим, что у вас действительно не столь посещаемый сайт, чтобы заинтересовать хакеров (его посещают десятки – сотни человек ежедневно). Кто, зачем и как заразил ваш сайт?

      Не стоит сразу перебирать врагов и конкурентов. Скорее всего, заражение вашего сайта – это случайность и опосредовано, виноваты в нем ВЫ (или веб-мастер, который отвечает за ваш сайт компании).

      С большой долей вероятности точно также получилось и с вашим сайтом.

      Невыполнение хотя бы одного из этих трех пунктов уже подвергает ваш сайт высокому риску.

      Дальше в дело вступает лотерея. Предположим, в один прекрасный день кто-то обнаружил уязвимость в Joomla. Он отправил информацию о ней разработчикам Joomla. Они исправили уязвимость и выпустили обновленную версию. Через некоторое время о найденной уязвимости становится известно широкой публике, в которой встречаются и не очень хорошие личности. Одна из таких личностей пишет паука – программу, которая сканирует интернет на предмет поиска необновлённых сайтов с этой уязвимостью и, находя их, использует уязвимость для взлома.

      Конечно, нельзя исключать и целенаправленной хакерской атаки на ваш сайт, но вероятность такой атаки очень мала по сравнению с тем, что вы поймали паука. Я бы сказал, 1% против 99%. С ростом популярности, посещаемости и показателей вашего сайта вероятность будет смещаться в сторону хакерской атаки, но пока ваш сайт не содержит ничего особо ценного, хакеры не будут тратить на него время, т.к. их время стоит дороже.

      Мой сайт заражен. Что делать?

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

      Если ваш сайт заражен, то по уровню халатности вы попадаете в одну из двух категорий:

      1. Я регулярно делаю резервные копии своего сайта / Я настроил регулярное резервное копирование на хостинге.
      2. Резервные копии? Ээээ… Что это?

      Если вы попали в первую категорию, то у меня для вас хорошие новости: вам не придется лечить сайт от вирусов. Просто восстановите резервную копию и переходите к шагу 7.

      Если же вы попадаете во вторую категорию, то придется попотеть, либо потратиться на специалиста. Кроме того, для вас есть и очень плохая новость:

      При чистке сайта от вирусов нет, и не может быть никакой гарантии полного излечения.

      Давайте разберемся почему.

      Представим столь популярные нынче фильмы про зомби. Один человек стал зомби, потом он покусал другого, тот третьего и так заразилось половина планеты. Спустя некоторое время человечество опомнилось и уничтожило всех зараженных. Воцарился мир и спокойствие. Спустя еще некоторое время оказалось, что в каком-то глубоком темном подвале оставался еще один зараженный, которого не смогли обнаружить. И затем в этот подвал зашел здоровый человек…

      Примерно такой же принцип в заражении сайта. Файлы сайта, коих несколько тысяч, могут быть изменены. Также могут быть добавлены новые файлы, с названиями, которые себя ничем не выдают. Вирус может записать себя в любые каталоги и файлы файловой структуры сайта. Потом сайт почистят от вирусов. Все зараженные файлы удалят. Но где гарантия, что один из таких файлов не будет упущен? Ее нет. А такой файл может, в конечном итоге, привести к повторному заражению всего сайта.

      Всё это не значит, что нужно опустить руки и пойти делать новый сайт. Всё-таки, шаги, описанные далее, позволяют в высокой долей вероятности вычистить весь вредоносный код, до последней строчки.

      Подведем итог шага 1.

      • Если вы делали резервные копии, найдите ту из них, которая еще не заражена и восстановите из нее сайт. Далее переходите к шагу 7.
      • Если вы не делали резервные копии, будьте готовы к тому, что никто не даст вам 100% гарантии на полную отчистку сайта от вирусов. Переходите к шагу 2.

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

      На данном этапе вам нужно создать локальную копию файловой структуры сайта. Создайте на хостинге архив с фалами сайта и скачайте его на свой компьютер. Если вы не знаете, как это делается, обратитесь в тех. поддержку хостинга с просьбой создать и выслать вам копию сайта.

      Стандартный Joomla-сайт состоит из двух частей:

      • Файловая система сайта
      • База данных

      Вредоносный код может быть и в файлах и в базе данных, но всё-таки наиболее вероятно найти его в файлах.

      После того, как вы скачали архив с файлами сайта и развернули у себя на локальном компьютере, проверьте его хорошим антивирусом, например Касперским. У антивирусных компаний есть бесплатные инструменты для разовых проверок. Воспользуйтесь одним из них:

      Если у вас есть лицензионный обновленный антивирус на компьютере, то можете использовать его.

      Антивирусы для операционных систем не предназначены для лечения сайтов, но, тем не менее, некоторую долю вирусов они могут обнаружить и удалить. Всё-таки, это наиболее профессиональные инструменты. Не стоит ими пренебрегать.

      После проверки будет найдено несколько вирусов или не найдено ничего. Найденные зараженные файлы лечим (вручную отчищаем от вредоносного кода) или удаляем. Переходим к шагу 3.

      На этом этапе разминка закончилась. Впереди рутиный и нудный труд. Пришло время проверить зараженный сайт специализированным средствами поиска вредоносного кода. К таковым относятся:

      • AiBolit – бесплатный сканер вирусов и вредоносных скриптов. Он удобен тем, что может быть очень легко запущен под Windows.
      • Manul – антивирусная утилита от Яндекса.

      Советую использовать AiBolit, поскольку проект Manul закрыт Яндексом и более не обновляется. По результатам проверки для вас будет сгенерирован отчет о подозрительных файлах и уязвимостях.

      1. Скачиваете с официального сайта AiBolit для Windows.
      2. Копируйте файлы зараженного сайта в папку site.
      3. Запускаете файл start.bat.

      По результатам будет сгенерирован файл отчета AI-BOLIT-REPORT.html

      Manul – это php-скрипт. Чтобы его запустить, нужен локальный web-сервер. Вы можете использовать для этих целей Open Server или Denwer. Далее следуйте инструкциям с официального сайта Manul.

      Важно! Ни в коем случае не запускайте на локальном сервере зараженный сайт. Не вылеченные на данном этапе вредоносные скрипты могут размножиться.

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

      Далее следует довольно нудный этап. Нужно вручную пройтись по всем подозрительным файлам и проверить код, расположенный в них. Зачастую вредоносный код выделяется форматированием из основного. Код Joomla стройный и не содержит ничего лишнего. Код вредоносных скриптов часто внедряется без форматирования. Посмотрите пример ниже.

      Код вредоносного скрипта:

      Не бойтесь открывать зараженные php-файлы для просмотра через текстовый редактор. Пока не запущен интерпретатор PHP (локальный сервер, который может выполнить PHP-код), вирусы и вредоносные скрипты не представляют опасности.

      Если зараженных файлов найдено слишком много, можно воспользоваться такой хитростью: уточните текущую версию Joomla на вашем сайте, скачайте именно эту версию с официального сайта. Скопируйте файлы скачанной версии в папку с зараженной, переписывая совпадения. Таким образом, вы сможете переписать большую часть зараженных файлов оригинальными. Аналогичным образом можно заменить файлы крупных расширений Joomla. Более подробно это описано в шаге 5.

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

      Данный шаг может отнять много времени, а также может быть сложен для тех, кто не очень хорошо разбирается в PHP-коде. Общий совет: если сомневаетесь вредоносный перед вами скрипт или нет, считайте, что да. Не бойтесь удалять зараженные файлы Joomla и расширений. На следующих шагах мы их восстановим. Исключение составляют лишь файлы, находящиеся в каталоге используемого вами шаблона сайта. Их не получится восстановить и работать с ними нужно очень осторожно.

      Когда все файлы из отчетов проверены/отчищены/удалены, проведите сканирование файловой структуры сайта повторно. Не должно быть найдено ничего. После этого можно переходить к шагу 4.

      Теперь пришла пора постепенно включать голову. Надеюсь, что вы последовали моему совету, на предыдущем шаге и копировали фрагменты кода вредоносных скриптов в отдельный файл.

      Если вирус, которым заражен ваш сайт, писал не гений, а скорее всего это так, то от файла к файлу зараженные фрагменты кода должны, так или иначе, повторяться. Этим мы и воспользуемся для того чтобы найти то, что пропустили сканеры и антивирусы.

      Для выполнения данного шага нам понадобится программа Total Commander или любая другая утилита, умеющая искать по файлам. Я все же советую использовать Total Commander.

      Открыв файловую структуру сайта через Total Commander, переходим в Команды –> Поиск файлов…

      Здесь нам интересны две вкладки.

      Позволяет указать текст, который нужно искать в файлах. У вас уже есть сохраненные фрагменты кода вируса. Смекаете? Выбираем фрагмент и ищем его повторения в файлах по всей файловой системе сайта. Будьте уверены, что-то найдется. Далее проверяем найденные файлы, чистим/удаляем.

      Еще одна прекрасная возможность найти все зараженные файлы – использовать дату изменения файла. Посмотрите еще раз внимательно отчет AiBolit. Он показывает дату создания/изменения подозрительных файлов. Вероятнее всего все зараженные файлы были созданы примерно в недельный временной промежуток или даже в один день. Вычислите его, а затем задайте на вкладке Дополнительно этот промежуток или день. Так вы сможете определить все подозрительные файлы.

      Данный способ не является полностью надежным, поскольку качественные вирусы могут изменять дату своего создания, но попробовать его, определенно, стоит. Мне он очень помогает.

      После выполнения всех описанных действий можно выполнять шаг 5.

      Этапы тут следующие:

      1. Откройте админку зараженного сайта (старого, не отчищенного!) и перейдите в Расширения –> Менеджер расширений –> Управление.
      2. Перепишите себе все установленные сторонние расширения и их версии. Запишите версию Joomla.
      3. Скачайте Joomla заданной (не последней!) версии и все расширения заданных версий.
      4. Обновите вручную файловую структуру Joomla путем копированием скачанной версии с заменой.
      5. Обновите вручную файловую структуру расширений путем копирования с заменой.

      На данный момент, мы сделали всё, что было в наших силах, чтобы отчистить и восстановить файловую структуру сайта. Пришло время базы данных. Переходим к шагу 6.

      Вредоносный код может содержаться не только в файлах сайта, но и в его базе данных. Чистить базу, в некоторой степени, сложнее, чем файловую структуру. Я бы выделил два этапа:

      1. Скачать дамп базы данных сайта и проверить его вручную. Вы можете скачать через PhpMyAdmin базу данных сайта в виде текстового файла и открыть ее через Nodepad++ или другой текстовый редактор. Данный файл желательно просмотреть на предмет присутствия странных фрагментов, проверить на наличие опасных элементов, таких, как iframe.
      2. В таблице #__users базы данных сайта, найти всех пользователей с правами суперадминистратора и проверить, нет ли там посторонних.

      После этого нужно развернуть и запустить сайт на локальном сервере (шаг 7).

      Поскольку я, в некоторой степени, параноик, советую на этом шаге запускать сайт на локальном сервере с отключенным интернетом.

      Перед запуском нужно морально быть готовым к тому, что сайт запустится с ошибками. Возможно, вы удалили какой-то файл Joomla или расширения во время чистки, но при этом не восстановили его в дальнейшем. Ничего страшного в этом нет. Главное, чтобы запустилась админка. Если это произошло, делаем следующее:

      1. Обновляем Joomla до последней версии путем установки обновления через менеджер расширений Joomla.
      2. Обновляем все расширения до последних версий путем установки обновлений через менеджер расширений Joomla.

      После этого сайт должен работать корректно и без ошибок. Если что-то осталось, исправляем вручную и переходим к шагу 8.

      • Пароли администраторов
      • Пароль на сервере базы данных
      • Пароль FTP
      • Пароль от панели управления хостингом

      На этом всё, ваш сайт отчищен. Осталось убедиться, что уязвимость, которая привела к заражению, закрыта.

      Снова включаем голову (да знаю, она у вас уже устала и ничего не соображает). Что же всё-таки привело к заражению? В начале статьи я дал пару мыслей на этот счет.

      Постарайтесь понять, где на вашем сайте могут быть уязвимости. Не обязательно быть большим специалистом. Важно просто здраво мыслить.

      Советую проверить домашний компьютер на вирусы, а также обратить внимание на хостинг, на котором размещен сайт. Какие о нем отзывы в интернете? Быть может, причиной заражения стал плохо настроенный сервер.

      Если вы видите какие-то, пусть даже теоретические причины заражения, то будет правильным избавиться от них до перезапуска сайта.

      Если вы дошли до этого шага, то поздравляю! Это большой путь. Теперь вы гораздо больше знаете о сайтах и их безопасности. Полностью удалите с хостинга зараженную копию сайта и перенесите туда отчищенную. Также замените базу данных, если вы вносили в нее изменения.

      Первую неделю я советую отслеживать изменения в файловой системе на предмет повторного появления вируса. Вероятность того, что какой-то из зараженных файлов всё-таки остался, всегда существует.

      Если ничего не помогает.

      Но что делать, если даже после чистки и восстановления сайта вирусы появляются вновь? Здесь есть два варианта:

      1. Вы можете отдать уже отчищенную копию специалистам по безопасности, чтобы они проверили ее на предмет того, что упущено вами.
      2. Вы можете создать новый сайт (в некоторых случаях это может быть дешевле), но надеюсь, что до этого, всё-таки, не дойдет.

      Главный вывод.

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

      Главное, что нужно делать, чтобы не оказаться один на один с взломанным сайтом – регулярное резервное копирование. Позаботьтесь о том, чтобы у вас на компьютере хранилась хотя бы одна резервная копия за каждый месяц, и спите спокойно ;-).

Читайте также:

Пожалуйста, не занимайтесь самолечением!
При симпотмах заболевания - обратитесь к врачу.

Copyright © Иммунитет и инфекции