Если сайт начал работать медленнее, появились неизвестные файлы или хостинг сообщил о вредоносной активности, первым делом возникает вопрос:
Где искать вирус?
К сожалению, универсальной кнопки «Найти всё вредоносное» не существует.
Современные веб-шеллы и бэкдоры стараются выглядеть как обычный программный код. Но даже у них есть характерные признаки.
Разберём наиболее распространённые примеры.
Почему найти вирус вручную становится всё сложнее
Ещё десять лет назад вредоносный код часто выглядел очевидно:
eval(base64_decode('...'));
Сегодня злоумышленники используют:
- разбиение строк;
- динамический вызов функций;
- шифрование;
- загрузку кода с удалённых серверов;
- использование легальных PHP-функций в опасных комбинациях.
Поэтому поиск по одному слову уже редко помогает.
Подозрительный признак №1. Выполнение динамического кода
Если вы видите конструкции, которые исполняют данные как код, стоит внимательно разобраться, зачем они используются.
Например:
$fn = 'someFunction';
$fn($data);
или
call_user_func($handler, $input);
Подобные конструкции сами по себе не являются вредоносными — они применяются во многих фреймворках. Но если имя функции формируется из внешних данных или скрыто сложной логикой, это повод для дополнительной проверки.
Подозрительный признак №2. Кодировка и длинные непонятные строки
Если в файле встречаются огромные последовательности символов, это не всегда вирус.
Но стоит насторожиться, если одновременно присутствуют:
- длинные строки;
- несколько этапов преобразования данных;
- динамическое выполнение результата.
Во многих случаях это попытка скрыть реальную логику программы.
Подозрительный признак №3. Удалённая загрузка данных
Иногда модуль неожиданно начинает обращаться к неизвестным серверам.
Например:
- получает PHP-код;
- загружает JavaScript;
- скачивает дополнительные файлы;
- получает инструкции для дальнейших действий.
Если это не официальный сервер разработчика или обновлений — необходимо выяснить причину таких обращений.
Подозрительный признак №4. Необычные файлы в привычных папках
Особенно внимательно стоит проверить каталоги:
/uploads
/cache
/tmp
/images
/assets
/storage
Если там внезапно появились PHP-файлы, это повод провести аудит.
Для большинства проектов такие каталоги предназначены для хранения пользовательских данных, а не исполняемого кода.
Подозрительный признак №5. Неожиданные изменения системных файлов
Иногда заражается вовсе не новый файл.
Изменяется существующий:
index.php
bootstrap.php
config.php
functions.php
autoload.php
Причём злоумышленники часто добавляют всего несколько строк в самый конец файла.
Из-за этого изменение легко пропустить при визуальной проверке.
Подозрительный признак №6. Необъяснимые права доступа
Если внезапно появляются файлы с необычными правами или владелец отличается от остальных файлов проекта, стоит выяснить причину.
Такие изменения сами по себе не доказывают наличие вируса, но нередко сопровождают компрометацию сайта.
Подозрительный признак №7. Неизвестные пользователи
После взлома злоумышленники нередко создают:
- нового администратора CMS;
- дополнительный FTP-аккаунт;
- SSH-пользователя;
- новую cron-задачу.
Даже если вирус уже удалён, такие способы доступа могут остаться.
Что искать в журналах сервера
Очень часто ответ находится не в коде, а в логах.
Обратите внимание на:
- массовые запросы к несуществующим файлам;
- обращения к административным разделам;
- попытки загрузки файлов;
- резкое увеличение количества ошибок;
- необычные POST-запросы;
- обращения к резервным копиям и конфигурационным файлам.
Такие события помогают понять, когда и каким способом произошло проникновение.
Почему ручной поиск редко даёт полный результат
Представьте проект объёмом 150–300 тысяч строк кода.
Даже опытный разработчик не сможет быстро проверить каждый файл.
Кроме того, современные угрозы используют:
- маскировку под легальные библиотеки;
- случайные имена файлов;
- разделение логики между несколькими файлами;
- скрытую активацию только при определённых условиях.
Поэтому отсутствие очевидных признаков не означает, что сайт полностью безопасен.
Как автоматизировать поиск
Современные системы анализа кода проверяют гораздо больше, чем просто наличие отдельных функций.
Они способны:
- анализировать опасные конструкции;
- искать признаки веб-шеллов;
- обнаруживать известные сигнатуры вредоносного кода;
- выявлять подозрительные последовательности вызовов;
- отслеживать изменения файлов;
- сопоставлять найденные участки с базами известных угроз;
- выявлять потенциальные уязвимости ещё до их эксплуатации.
Именно такой подход позволяет находить проблемы, которые практически невозможно обнаружить вручную.
Частые ошибки при самостоятельной проверке
Самые распространённые ошибки:
- искать только одно ключевое слово;
- проверять только недавно изменённые файлы;
- удалять подозрительный код без анализа причин его появления;
- забывать проверить журналы сервера;
- считать отсутствие предупреждений антивируса доказательством безопасности.
Комплексная проверка всегда эффективнее точечного поиска.
Итоги
Ручной анализ кода остаётся важным навыком, но современные угрозы становятся всё более сложными. Вредоносные изменения могут быть незаметны при беглом просмотре файлов и проявляться только спустя недели или месяцы после заражения.
Поэтому лучший результат обычно достигается сочетанием ручного аудита и автоматизированной проверки, которая анализирует структуру проекта, изменения файлов, опасные конструкции и известные сигнатуры угроз.
Проверка кода в реальном времени с Inspector Pro Security Shield
Если проект активно развивается и в код постоянно вносятся изменения, ручная проверка становится практически невозможной.
Inspector Pro Security Shield помогает автоматизировать этот процесс:
- анализирует PHP-код в режиме реального времени;
- проверяет новые и изменённые файлы при каждом сканировании;
- обнаруживает веб-шеллы, бэкдоры и вредоносные вставки;
- выявляет опасные конструкции и потенциальные уязвимости (SAST-анализ);
- сопоставляет результаты с регулярно обновляемой базой сигнатур;
- контролирует целостность файлов и сообщает о любых неожиданных изменениях;
- формирует подробный отчёт с указанием проблемных участков и рекомендациями по их устранению.
Такой подход позволяет находить угрозы ещё до того, как они приведут к компрометации сайта или утечке данных.