Suhosin защита от атак

Suhosin — патч безопасности  к PHP,  является надежным и простым способом для защиты веб-сервера и PHP в частности,  при этом он не потребляет дополнительно ресурсов сервера, будь то память или процессор.

Сайт разработчика – http://www.hardened-php.net/suhosin/

Настрока Suhosin: инструкция на английском

Для отключения Suhosin в .htaccess (Для PHP как модуль)

php_flag suhosin.simulation 1

Для отключения в php.ini (PHP как CGI)

suhosin.simulation on

Таблица параметров Suhosin

Опция Значение по умолчанию Возможные значения Пояснение
Опции протоколирования
suhosin.log.syslog S_ALL (511) S_MEMORY, S_MISC, S_VARS, S_FILES, S_INCLUDE, S_SQL, S_EXECUTOR, S_MAIL, S_SESSION, S_ALL Указывает, какие классы тревог регистрируются в syslog. Вне зависимости от настроек S_MEMORY регистрируется всегда
suhosin.log.syslog.facility LOG_USER (9) LOG_KERN, LOG_USER, LOG_MAIL, LOG_DAEMON, LOG_AUTH LOG_SYSLOG, LOG_LPR, LOG_NEWS, LOG_UUCP, LOG_CRON, LOG_AUTHPRIV, LOG_LOCAL0 … LOG_LOCAL7 Указывает на компонент, который будет заносить сообщения в syslog
suhosin.log.syslog.priority LOG_ALERT (1) LOG_EMERG, LOG_ALERT, LOG_CRIT, LOG_WARNING, LOG_NOTICE, LOG_INFO, LOG_DEBUG, LOG_ERR Приоритет сообщения
suhosin.log.sapi S_ALL Определяет, какие классы тревог регистрируются через SAPI
suhosin.log.script 0 Какие классы тревог будут регистрироваться через внешний скрипт, S_MEMORY не может регистрироваться, так как его появление означает, что процесс, возможно, в нестабильном состоянии
suhosin.log.phpscript Какие классы тревог будут регистрироваться через PHP-скрипт, S_MEMORY также не может регистрироваться
suhosin.log.script.name Полный путь к внешнему скрипту. Скрипту будет передано два параметра. Первый – класс тревоги в буквенной нотации, второй – сообщение
suhosin.log.phpscript.name Полный путь к внешнему php-скрипту. Ему будет передано два параметра: SUHOSIN_ERRORCLASS и SUHOSIN_ERROR, назначение которых аналогично предыдущему
suhosin.log.use-x-forwarded-for 0 (отключено) Обычно IP-адрес атакующего извлекается из переменной REMOTE_ADDR, включение этой опции позволит использовать HTTP-заголовок X-Forwarded-For (например, используется прокси)
Опции исполнения
suhosin.executor.max_depth 0 (отключено) Задает максимально разрешенную глубину стека, после чего выполнение скрипта будет остановлено
suhosin.executor.include.max_traversal 0 Определяет, сколько знаков ../ в запросе будет расценено как атака
suhosin.executor.include.whitelist Разделенный запятой список разрешенных или запрещенных URL, которые можно включить в скрипт. Если не указан белый список, используется только черный, если не указаны оба, то вставка URL запрещена
suhosin.executor.include.blacklist
suhosin.executor.func.whitelist Список разрешенных или запрещенных для вызова функций. Если белый список пуст, анализируется черный, если пусты оба, то функции запрещены
suhosin.executor.func.blacklist
suhosin.executor.eval.whitelist Список функций, разделенных запятой, которые разрешено или запрещено запускать посредством eval(). Если белый список пуст, анализируется черный, если пусты оба, то вызов функции через eval() запрещено
suhosin.executor.eval.blacklist
suhosin.executor.disable_eval 0 Глобальное отключение использования eval(). В журнале будут отображены все нарушения этого правила, поэтому можно отследить все случаи использования eval()
suhosin.executor.disable_emodifier 0 Модификатор /e внутри функции preg_replace() позволяет выполнять код, разработчики рекомендуют отключить ее использование и применять preg_replace_callback()
Дополнительные опции
suhosin.simulation 0 Очень полезная опция, позволяет переводить систему в режим регистрации нарушений, то есть создав правила, вы можете некоторое время только регистрировать нарушения, чтобы затем комплексно оценить работу скриптов
suhosin.mail.protect 0 0, 1, 2 Включает защиту функции mail(). 0 – отключена, 1 – контроль Subject:, To:,
2 – дополнительно To:, CC:, BCC:
suhosin.memory_limit 0 Управление изменением memory_limit, при 0 – изменение запрещено, любое число показывает предел в Мб, при запросе скриптом большего значения его выполнение будет остановлено
Опции прозрачного шифрования
suhosin.session.encrypt 1 (включено) Разрешение/отключение шифрования сессии
suhosin.session.cryptkey Ключ для шифрования сессии
suhosin.session.cryptua 1 Зависимость ключа шифрования от полей User-Agent, Documentroot
suhosin.session.cryptdocroot
suhosin.session.cryptraddr 0 0-4 Число октетов REMOTE_ADDR, от которых будет зависить ключ шифрования
suhosin.cookie.encrypt 1 Шифрование Cookie. Значение остальных опций suhosin.cookie.cryptkey, suhosin.cookie.cryptua, suhosin.cookie.cryptdocroot, suhosin.cookie.cryptraddr аналогично
Опции фильтрации
suhosin.filter.action Определяет реакцию Suhosin на нарушение фильтров. По умолчанию переменная блокируется, 402 – останавливает скрипт и возвращает код ответа HTTP 402; [302,]http://www.site.com – перенаправляет по указанному адресу, в квадратных скобках может стоять код ответа; [402,]/var/scripts/badguy.php – перенаправляет на указанный скрипт
suhosin.cookie.max_array_depth 100 Максимальная глубина массива, зарегистрированного через cookie
suhosin.cookie.max_array_index_length 64 Определяет максимальную длину индексов массива переменных, зарегистрированных через cookie
suhosin.cookie.max_name_length 64 Определяет максимальную длину имени переменных, зарегистрированных через cookie. Для массивов это имя перед индексом
suhosin.cookie.max_totalname_length 256 Определяет максимальную длину полного имени переменных, зарегистрированных через cookie
suhosin.cookie.max_value_length 10000 Определяет максимальную длину переменной, зарегистрированную через cookie
suhosin.cookie.max_vars 100 Определяет максимальное количество переменных, зарегистрированных через cookie
suhosin.cookie.disallow_nul 1 Если 1, то символы ASCIIZ в переменных не разрешены
suhosin.get.max_array_depth 50 Максимальная глубина массива, зарегистрированного через URL Значение остальных опций (suhosin.get.max_array_index_length, suhosin.get.max_name_length, suhosin.get.max_totalname_length, suhosin.get.max_value_length, suhosin.get.max_vars, suhosin.get.disallow_nul) сопоставимы с предыдущими
suhosin.post.max_array_depth 100 Максимальная глубина массива, зарегистрированного через POST. Значение остальных опций (suhosin.post.max_array_index_length, suhosin.post.max_name_length, suhosin.post.max_totalname_length, suhosin.post.max_value_length, suhosin.post.max_vars, suhosin.post.disallow_nul) сопоставимы с предыдущими
suhosin.request.max_array_depth 100 Максимальная глубина массива, зарегистрированного через все доступные методы URL, GET , POST или COOKIE. Может быть индивидуально переопределена предыдущими опциями. Также доступны параметры suhosin.request.max_array_index_length, suhosin.request.max_totalname_length, suhosin.request.max_value_length, suhosin.request.max_vars, suhosin.request.max_varname_length, suhosin.request.disallow_nul
suhosin.upload.max_uploads 25 Максимальное число файлов, пересылаемых одним запросом
suhosin.upload.disallow_elf 1 Установка запрета на загрузку ELF-файлов
suhosin.upload.disallow_binary 0 Установка запрета на загрузку двоичных файлов
suhosin.upload.remove_binary 0 Установка удаления двоичного контента из загружаемых файлов
suhosin.upload.verification_script Путь к скрипту, который проверяет загружаемый файл. В качестве параметра он получит имя файла, для продолжения загрузки скрипт должен вывести 1 в stdout
suhosin.session.max_id_length 128 Максимальная длина идентификатора сессии, в случае превышения указанного значения будет создан новый идентификатор