Недавно был взломан клиентский веб-сайт, и мы анализируем ущерб и уязвимость от атаки. Мы нашли сценарий, который «звонит домой» по URL-адресу, который мы можем легко найти в журнале, но регистрируется ли он в журнале и где?
/usr/local/apache/logs/access_log
Исходящие соединения (от file_get_contents
с оболочкой URL, например HTTP), зарегистрированной в этом файле или где-нибудь?
Вы можете изменить suhosin для режима симуляции, который фактически имитирует, а затем занести в черный список команды, используемые для открытия внешних соединений. На днях я опубликовал исправление кода, но тема была удалена.
Строка 1588 файла suhosin-0.9.27 / execute.c, закомментируйте goto execute_internal_bailout;
if(SUHOSIN_G(func_blacklist) != NULL) {
if(zend_hash_exists(SUHOSIN_G(func_blacklist), lcname, function _name_strlen+1)) {
suhosin_log(S_EXECUTOR, "function within blacklist called: %s()", lcname);
// goto execute_internal_bailout;
}
}
(вики исказила этот код, не тратя времени на попытки разобраться в этом)
Режим моделирования по умолчанию:
suhosin.simulation = on
suhosin.executor.func.blacklist = include,include_once,require_once,open,file_get_contents
добавьте любые дополнительные команды, которые вы хотите зарегистрировать. Вы получите такую запись в журнале:
24 июня 06:32:07 machinexx suhosin [1086]: ALERT-SIMULATION - функция из черного списка называется: exec () (атакующий '11 .22.71.67 ', файл' /var/www/domain.com/tp/top_thumb.php ' , строка 283)
Оттуда, по крайней мере, у вас есть набор целевых файлов, на которые можно посмотреть. Я не рекомендую использовать сухосин таким образом, но, когда вы ищете иголку в стоге сена, иногда вам нужно заставить инструменты работать так, как они должны.
yeap php и apache не регистрируют никаких исходящих подключений .. В любом случае для запуска php-скрипта вам необходимо получить запрос от пользователя. Вы всегда можете увидеть, кто запустил скрипт. Чтобы отслеживать исходящие соединения, вы можете настроить брандмауэр и регистрировать все, что выходит за рамки ограничений, а затем настроить систему журналов для отслеживания исходящих соединений из каждого пакета, который вы хотите.
Если ваши приложения / веб-сайты на PHP не имеют системы журналирования, вы не сможете увидеть, кто что сделал.
Apache или PHP не ведут журнал исходящих подключений.