logo
Web
Черушев Никита
Черушев Никита
Разработка сайтов

Как лечить сайт от вирусов самостоятельно

Вирусов бывает много, но в рамках этой статьи мы поговорим о трех распространенных видах: Obfuscated.Globals, Trojan.Inject и вредоносные JavaScript инъекции (его часто помечают как “подозрительный JavaScript код”).

Как лечить сайт от вирусов самостоятельно

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

  • Умение ориентироваться в файлах сайта
  • Хорошо владеть основами управления хостингом;
  • Знание HTML;
  • Быть уверенным пользователем SSH;
  • На базовом уровне владеть PHP*
  • На базовом уровне владеть JavaScript*

*Когда мы говорим “на базовом”, то имеем в виду, что Вы сможете отличить PHP код от JavaScript, знаете, что такое переменные, функции, условия и понимаете с каких строк начинается тот или иной язык.

P.S: Иногда файлы бывают конкретно так повреждены, что приходится переписывать весь файл на том или ином языке программирования (чаще всего это PHP).

Как вылечить сайт от вирусов

Итак, приступим. Сначала нужно определить какой же из трех видов вируса подхватил Ваш сайт: Obfuscated.Globals, Trojan.Inject или вредоносный JavaScript код. С этим пунктом Вам поможет лишь антивирус.

Вредоносный или подозрительный JavaScript код

Чаще всего самый легкий вариант для лечения. Обычно легко внедряется в виде подгружаемого из вне скрипта во всякие CMS, где есть кеш – Битрикс, Webasyst. Выглядеть может так:

лечим самостоятельно java script инъекцию

Естественно, это не код от Google Analytics, хотя неопытного пользователя это может ввести в заблуждение. Обычно вирусы просто маскируют таким образом. Всегда можно вырезать код из тега src=”” и кинуть ссылку в Google.

Как найти

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

ищем вирус с помощью ssh

Команда grep -rn “искомый текст” отлично подойдет. Если будете указывать ссылку на скрипт с HTML атрибутами, не забывайте про экранирование кавычек. Также, с помощью того же терминала можно запустить проверку всех файлов и показать какие из них были добавлены или изменены за месяц. Например, find -type f -mtime -30 ! -mtime -1.

За подробными описаниями этих команд просим проследовать в Google. Ибо если сейчас это тут объяснять может уйти еще килотонна букв (когда-нибудь мы напишем свою статью про работу с терминалом).

Как вылечить

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

Еще можно воспользоваться бэкапом (многие хостинги дают аж до 30 резервных копий на каждый день месяца). Вдруг 2 недели назад вируса не было? Но запомните, Ваши все изменения на сайте могут пропасть, будьте внимательны!

Важно: иногда антивирусы принимают за “вредоносный JavaScript код” вполне нормальные скрипты, например, код от JivoSite или Callibri. Хотя антивирусы внутри хостинга reg.ru, nic, netangels почти не допускают таких ошибок.

Trojan.Inject

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

Trojan.Inject пример

Как найти

Иногда, если достаточно личного опыта, можно просто найти “странный” файл, лазая по папкам сайта. Например, автор этой статьи как-то увидел на своем новеньком сайте непонятный файл, который не свойственен CMS ModX. Естественно, появились вопросы.

Если антивирус показал только строчки кода или название файла, можно воспользоваться терминалом и командами grep -rn (искать строчки кода с нужными словами) или find -name (искать файл по имени).

Как вылечить

Здесь есть два стула…

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

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

декодированный Trojan.Inject

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

пример Trojan.Inject в php коде сайта
Опытный пользователь поймет, что это лишь искусственно воссозданный пример. Конечно, что-то подобное можно увидеть и в реальной жизни.

Если Вы нашли зашифрованную инъекцию, просто удалите ее начиная с <? и заканчивая ?>.

Obfuscated.Globals

Обфускация – процесс превращения очевидного в неочевидное.

Почти любой вирус проходит через обфускацию, поэтому, когда антивирус не уверен в содержимом файла, то он дает ему обозначение Obfuscated.Globals.

Через обфускацию проходит Doubt.Obfuscated.Globals, иногда Doubt.PHP.Spaces (более гениальное решение, стоит проскролить нормальный код направо и за кучей пробелов находишь “подвох”.) и даже Eval.gz.b64.short, хотя это закодированный base64, но автору статьи все равно. Ибо на первый взгляд это какие-то каракули.

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

Как найти

Все такие же способы как с Trojan.Inject. Если известен только кусок кода или имя файла, включаем SSH и начинаем: grep -rn или find -name. Можно через терминал сравнивать все измененные файлы.

Как лечить

Здесь только два пути.

Первый. Делаем бекап всего сайта или нужного файла до состояния, когда он был “нормальным”.

Второй. Если бэкапа нет или он не помог. Идем в “злой” файл и ищем вредоносный код, а далее, как на скриншоте выше, удаляем его начиная с <? и заканчивая ?>. Если весь наш файл зашифрован, то добро пожаловать в ад. Читаем, декодируем, удаляем ненужное или просто переписываем весь файл.

Итог

Если Вы удалили вирус, то нет смысла радоваться. Он ведь как-то попал на сайт, поэтому включите голову и ищите дырку! Возможно, обычное обновление Вашей CMS сможет закрыть этот вопрос. Если имеете дело с самописным движком, то проверьте корневые файлы сайта. Может, в каком-нибудь router.php реализация маршрутизатора URL сделана на школьном уровне. Кто знает, кто знает, дыр может быть много.

Оставьте комментарий

Нажимая на кнопку, вы даете согласие на обработку персональных данных и соглашаетесь c политикой конфиденциальности

Нет комментариев