no dia 22/02/2014 foi anunciado que o PHP Suhosin, o patch de hardening para PHP, é compatível com a versão 5.4 do PHP. (Só estou aguardando o mesmo anúncio para versão 5.5).

Para quem não conhece, o php suhosin é um patch para o php que quando aplicado, aumento e muito a segurança do seu ambiente web, mitigando assim uma série de vulnerabilidades.

A sua instalação e configuração são bem simples.

Para o mundo CentOS/RedHat, basta executar o seguinte comando: (os repositórios do ubuntu já estão com a versão 5.5 do PHP, por isso não foi possível passar o mesmo passo a passo para esta distribuição).

yum install php-suhosin -y

Depois, rodar o comando php -v para ter certeza que o patch foi implementado com sucesso.

[root@localhost ~]# php -v
PHP 5.4.25 (cli) (built: Feb 10 2014 08:04:23)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies
with Suhosin v0.9.34-dev, Copyright (c) 2007-2012, by SektionEins GmbH
[root@localhost ~]#

A instalação deste patch cria o arquivo /etc/php.d/suhosin.ini, onde ficam armazenadas todas as configurações de hardening do seu ambiente.

É importante frisar que há necessidade da realização do restart do seu servidor web, seja ele apache ou nginx, além do php5-fpm, quando instalado, para que toda e qualquer alteração no suhosin.ini surta efeito.

abaixo, seguem alguns parâmetros que são configurados neste arquivo e que servem para aumentar a segurança do seu ambiente PHP: ( o seguinte link possui a lista completa de todos os parâmetros válidos, como também explicações de como configurá-los e para que cada um serve) e não saia dando um control+c + contorl+v nas configurações abaixo para o seu ambiente de produção antes de saber se vc precisa mesmo disto que foi indicado.

Limitar a quantidade de directory transversals (../../../): suhosin.executor.include.max_traversal=4

Desabilitar o /e no preg_replace, que normalmente é utilizado de forma insegura, já que esse parâmetro permite a execução de funções do PHP: suhosin.executor.disable_emodifier=Off

Proteger formulários de e-mail contra ataque de spammers: suhosin.mail.protect=2

Configurar limite de memória, pois quando o safe_mode está desabilitado, usuários podem utilizar o ini_set para alterar seu limite de memória: suhosin.memory_limit=256M — Cuidado com este parâmetro. Há blogs em que alocamos mais de 512MB, chegando a 1GB de memória para o PHP. Por isso que ele deverá acompanhar a mesma quantidade de memória alocada para o PHP

Qual ação o Suhosin executará ao filtrar algo (a opção 402 fará com que o código não seja executado e retornse uma resposta HTTP): suhosin.filter.action=402

Limite máximo de tamanho para variáveis vindas de COOKIE, POST e GET: suhosin.request.max_array_depth=4096 suhosin.request.max_array_index_length=2048 suhosin.request.max_name_length=2048 suhosin.request.max_value_length=650000 suhosin.request.max_vars=4096 suhosin.post.max_array_depth=8048 suhosin.post.max_array_index_length=1024 suhosin.post.max_name_length=2048 suhosin.post.max_totalname_length=8048 suhosin.post.max_vars=4096

Máximo upload de arquivos em um script: suhosin.upload.max_uploads=100

Desabilitar qualquer include, curl, fpassthru, base64_encode, mail e outras opções na função eval(). Funciona muito bem quando um atacante pode fazer o upload de um script malicioso, cujo conteúdo normalmente é um código obfuscado a partir da base64 e passado para a eval().

suhosin.executor.eval.blacklist=include, include_once, require, require_once, curl_init, fpassthru, file, base64_encode, base64_decode, mail, exec, system, proc_open, leak, syslog, pfsockopen, shell_exec, ini_restore,symlink, stream_socket_server, proc_nice ,popen, proc_get_status, dl, pcntl_exec, pcntl_fork, pcntl_signal, pcntl_waitpid, pcntl_wexitstatus, pcntl_wifexited, pcntl_wifsignaled, pcntl_wifstopped, pcntl_wstopsig, pcntl_wtermsig, socket_accept, socket_bind, socket_connect, socket_create, socket_create_listen, socket_create_pair, link, register_shutdown_function, register_tick_function

Desabilitar eval() por completo, caso não precise dessa função em suas aplicações:

suhosin.executor.disable_eval=Off

Filtra bloqueando todas as funções que não estejam na opção abaixo, separadas por vírgula:

suhosin.executor.func.whitelist=

É o equivalente ao disable_functions no php.ini: suhosin.executor.func.blacklist=

Armazenar em log todas as ações, além das queries SQL que falharam, com o syslog:suhosin.log.syslog = S_ALL & ~S_SQL

Desabilitar a possibilidade de fazer o upload de binários: suhosin.upload.disallow_binary=Off

Desabilitar a possibilidade realizar o upload de arquivos ELF: suhosin.upload.disallow_elf=Off

 P.S.: Não há previsão para o lançamento do patch para versão 5.5 e todos as dicas acima serão vistas de forma mais detalhada no treinamento de hardening 2.0 que será anunciado nos próximos dias, aqui mesmo no blog.

Compartilhar:

Deixe uma resposta

Fechar Menu