Ситуация, когда стабильно работающий обмен между 1С:Комплексная автоматизация (или другими конфигурациями) и сайтом на 1С-Битрикс внезапно прерывается странной ошибкой, может поставить в тупик даже опытного специалиста. Особенно странно выглядит ситуация, когда в логах 1С появляется текст «Недостаточно средств на аккаунте. Работа сайта приостановлена. Джино», при том что ваш сайт физически не располагается на хостинге Jino.
В этой статье мы подробно разберем, почему возникает эта ошибка, как провести диагностику и как полностью вычистить систему от причины сбоя — вредоносного ПО, нацеленного на кражу ваших данных.
Обычно проблема проявляется следующим образом: в узлах обмена 1С статус выгрузки меняется на «Выгрузка на сайт не выполнена». При попытке выполнить обмен вручную система выдает ошибку авторизации. Однако самым интересным является «ответ сервера», который часто приходит в некорректной кодировке (кракозябрах). Если перевести этот текст в читаемый вид (например, из UTF-8 в Windows-1251), мы увидим следующее сообщение:
Недостаточно средств РЅР° аккаунте... Джино превращается в «Недостаточно средств на аккаунте. Работа сайта приостановлена. Джино».
При этом сам сайт через браузер открывается абсолютно нормально, административная панель доступна, а разработчики сайта и системные администраторы утверждают, что никаких изменений в настройки серверов не вносилось.
Разберем механику процесса. Ошибка возникает не из-за настроек вашего сервера, а из-за деятельности вредоносного скрипта (Credential Stealer), который внедрился в код вашего сайта. Когда 1С обращается к файлу /bitrix/admin/1c_exchange.php для авторизации, этот скрипт перехватывает логин и пароль пользователя обмена.
Далее вирус пытается отправить украденные данные на сервер злоумышленников. В данном случае сервер злоумышленников был зарегистрирован на хостинге Jino.ru. Поскольку злоумышленники не оплатили услуги хостинга, сервер Jino вместо приема данных выдал стандартную страницу-заглушку «Недостаточно средств». Этот HTML-код страницы-заглушки был «подмешан» в ответ вашего сайта, что сбило алгоритм 1С и привело к ошибке авторизации.
Прежде чем приступать к поиску вируса, исключим стандартные сетевые проблемы, которые могут вызывать похожие симптомы:
hosts на сервере, где установлена 1С. Иногда системные администраторы или разработчики прописывают там жесткие соответствия IP и домена для тестов. Путь к файлу: C:\Windows\System32\drivers\etc\hosts.RewriteRule), которые могут перенаправлять POST-запросы на сторонние ресурсы.Если эти проверки не дали результата, значит, проблема кроется внутри программного кода «1С-Битрикс».
Как показывает практика, вредоносный код чаще всего внедряется в файлы, которые инициализируются при каждом запросе к системе. Рассмотрим основные места внедрения.
Шаг 1: Проверка файлов конфигурации и инициализации
В первую очередь проверим файлы init.php. В Битриксе их может быть несколько. Нам нужно просмотреть их содержимое на предмет использования функции curl_init, file_get_contents со сторонними URL или наличия странных зашифрованных строк (base64_decode, eval).
Проанализируем следующие пути:
/local/php_interface/init.php/bitrix/php_interface/init.php/bitrix/php_interface/dbconn.phpПример подозрительного кода, который может быть обнаружен:
class MyClass336278 {
public function sendData($url, $data) {
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
return $response;
}
}
// И далее вызов этого класса при событии OnBeforeUserLogin или в начале файла
Шаг 2: Анализ «полезной нагрузки»
Злоумышленники часто маскируют код под служебные классы. Обратим внимание на классы с названиями вроде MyClass, BitrixExchangeHelper или просто случайные наборы цифр. Внутри будет логика, которая собирает данные из массива $_POST или $_REQUEST и отправляет их с помощью curl на внешний домен (который и ведет на Jino).
Шаг 3: Проверка базы данных
Если в файлах ничего не найдено, проанализируем таблицу агентов в базе данных Битрикса. Вирусный код может храниться в таблице b_agent и исполняться через функцию eval(). Выполним SQL-запрос для поиска подозрительных записей:
SELECT * FROM b_agent WHERE NAME LIKE '%eval%' OR NAME LIKE '%base64%';
Важно понимать, почему такие инструменты как ImunifyAV, Virusdie или встроенный в Битрикс Bitrix.XScan могут не обнаружить проблему. Дело в том, что использование функций curl или init.php само по себе является легитимным. С точки зрения антивируса, это может выглядеть как обычная кастомная интеграция, написанная сторонним разработчиком. Поэтому ручной аудит кода в данном случае является наиболее эффективным методом.
После того как мы нашли и удалили вредоносный код, работа не заканчивается. Поскольку данные авторизации были скомпрометированы (перехвачены), необходимо выполнить следующие действия:
OPcache на сервере, перезагрузим PHP-FPM или Apache.access.log веб-сервера, чтобы определить, как именно произошла загрузка или модификация файлов. Это поможет закрыть уязвимость (например, обновить устаревший модуль или закрыть дыру в FTP).Таким образом, мы выяснили, что странная ошибка с упоминанием хостинга Jino — это классический признак перехвата данных на стороне сайта. Будьте бдительны и регулярно проверяйте целостность критически важных файлов вашего веб-проекта.