Suhosin, proteção e segurança em ambientes PHP

Atualizado
clique aqui

Introdução

Suhosin é um módulo avançado de segurança para PHP, que foi desenvolvido para proteger os hosts de possíveis vulnerabilidades que podem estar presentes nas aplicações desenvolvidas utilizando a plataforma PHP ou no próprio core da linguagem.


O módulo Suhosin é compatível com as instalações padrão do PHP e com os módulos disponíveis da plataforma, não apresentando incompatibilidades com outros módulos comumente utilizados, incluindo Zend Optimizer e Source Guardian.

O módulo Suhosin realiza de filtragem de dados em tempo real, contra ataques do tipo “DOS”, “SQL Injection” e a execução de scripts maliciosos sobre o protocolo http. Um de seus recursos interessantes é a encriptação transparente de cookies e dados de sessão, o que evita ataques do tipo “session hijacking”, comuns hoje em dia na internet.


Para servir aplicações em PHP com muita segurança, para o ambiente e para a infraestrutura, com um código bem auditado e em um ambiente controlado sem apresentar perda de performance, este módulo é bastante útil.


Dependências


redhat-like:
yum install php-devel php httpd gcc cpp

debian-like:
aptitude install apache2 php5 build-essential

Instalação


Os fontes da ultima versão podem ser encontrados em http://www.hardened-php.net/suhosin/download.html.

No momento da criação deste artigo a versão corrente, poderia ser baixado em: http://download.suhosin.org/suhosin-0.9.33.tgz.

Siga os procedimentos:
cd
wget http://download.suhosin.org/suhosin-0.9.33.tgz

Instalação Redhat-like


Suhosin compilado sobre PHP5 e RHEL/CentOS/Scientific Linux/Fedora
tar xvzf suhosin-0.9.33.tgz -C /usr/src
cd /usr/src/suhosin-0.9.33
phpize
./configure
make
make install


Instalação Debian-like

aptitude install php5-suhosin

Configuração Suhosin

Para realizar a configuração do módulo em sua plataforma Linux, é necessário apenas adicionar uma linha contendo 'extension=suhosin.so' no arquivo de inicializaão do PHP, php-cgi.ini ou php.ini, da seguinte forma:


Redhat-like:
ln -vs /usr/src/suhosin-0.9.33/suhosin.ini /etc/php.d/; ou
echo 'extension=suhosin.so' > /etc/php.ini
Debian-like:
verifique a existencia do arquivo: /etc/php5/conf.d/suhosin.ini

Verificação da Instalação Suhosin


Em linha de comando digite:
# php -v

PHP 5.3.3 (cli) (built: Jan 11 2012 15:13:19)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
with Suhosin v0.9.33, Copyright (c) 2007-2012, by SektionEins GmbH


Aplicando as mudanças

Para aplicar a mudanças faz-se necessário reiniciar o servidor Web.

Para httpd:
service httpd restart

Para lighttpd:
service lighttpd restart

Para apache2:
service apache2 restart; ou
/etc/init.d/apachd2 restart

Referências

http://www.cyberciti.biz/faq/rhel-linux-install-suhosin-php-protection/
http://blog.locaweb.com.br/produtos/seguranca-em-php-suhosin/
http://www.howtoforge.com/suhosin_php_debian_etch_ubuntu_p2

Comentários