Защита скриптов с помощью Suhosin
Уязвимости в различных CMS, форума etc отходят и найти банальную SQL-injection, RFI, LFI или XSS довольно таки сложно, а если обновления выходят незамедлительно, практически сводятся к нулю. В таком случае необходимо искать баги уже в программном обеспечении. Иногда при удачной эксплуатации баги в интерпретаторе бывает достаточно чтобы провести vendor:)
Проект Suhosin
Простой защиты с помощью php иногда бывает недостаточно и тут на помощь приходит патч к PHP, который предназначен для более надежной защиты скриптов.
Suhosin представляет собой систему защиты PHP скриптов. Он был разработан для защиты серверов и пользователей от известных и неизвестных недостатков PHP приложений.
Suhosin поставляется в двух независимых частей, которые могут быть использованы отдельно или в комбинации. Первая часть может быть использованна как дополнение к ядру PHP для защиты от bufferoverflows или «уязвимость строки форматирования», а вторая часть является мощным расширением PHP, которая реализует все другие формы защиты.
В некоторых *NIX системах патч уже идет по умолчанию к PHP
Тут приведен список основных возможностей suhosin:
- Защита от переполнения буфер.
- Защита от нарушения Zend hash table.
- Защита от format string.
- Симулирует работу скриптов.
- Добавляет поддержку sha1 в ядро PHP (php < 4.3.0).
- Добавляет ключ Blowfish к функции crypt
- Выключает поддержку функции phpinfo
- Защищает от SQL-injection
- Шифрация Cookie
- Запрещяет подключение загруженных файлов.
- Запрещяет инклюд удаленных и локальных файлов.
- Отключает моодификатор /e у preg_replace.
- Есть возможность отключть eval (eval не единственная опасная функция)
- Фильтрует разделенные Http запросы.
- Не позволяет перезаписывать переменные.
- Фильтрация для функции mail (в PHP была бага с этим.)
Более подробное описание возможностей есть в офф документации
http://www.hardened-php.net/suhosin/configuration.html
При все этом стоит отметить и обратную сторону медали. Также как и в любом программном продукте есть баги, suhosin не является исключением. Стоит посмотреть на bugtruck list.
Ссылки
Офф. сайт — http://www.hardened-php.net/suhosin/download.html
Небольшая заметка про suhosin — http://baron.su/archives/75-OstoroZhno,_Suhosin!.html