Filtro de segurança

O filtro de segurança é um ficheiro php único, que protege os seus sites ao bloquear determinados ataques relacionados a falhas de segurança. Este sistema permite reagir muito rapidamente quando um problema é descoberto, corrigindo a falha sem ter de atualizar todo o seu site ou aplicar um “patch” complexo.

Versão atual: 1.6.3

Filosofia

Ao descobrir ou ser informada de uma “brecha” de segurança, a equipa de desenvolvimento do SPIP esforça-se por corrigir o problema o mais rapidamente possível na sua versão de desenvolvimento e nas suas versões estáveis, para não mais distribuir códigos defeituosos.

No entanto, a maioria dos utilizadores nem sempre tem tempo ou possibilidade de atualizar e tende a pesar os prós e os contras contra o risco de ter, mesmo durante uma atualização mínima, incompatibilidades ou discrepâncias com o código testado e validado a rodar on-line.

Para um host, a informação relativa a um problema de segurança tem também dois gumes: por um lado não quer deixar um "buraco" num dos seus sites alojados, por outro lado nem sempre tem permissão para modificar os sites. E colocá-los offline geralmente não é uma opção, exceto com hosts baratos ou paranóicos.

O filtro de segurança existe para resolver esse problema. Este é um ficheiro php único e separado do SPIP, que pode ser atualizado independentemente do restante código e é compatível com todas as versões do SPIP, mesmo as mais antigas.

Este ficheiro não substitui uma atualização real da sua versão do SPIP, mas pode ajudar a bloquear determinados ataques enquanto espera por uma migração adequada.

Na verdade, este filtro pode ser ativado ao nível do servidor, para todos os scripts php (SPIP ou não), e garante, se estiver atualizado, que todas as falhas conhecidas em qualquer versão do SPIP são impossíveis de explorar. Daí o seu nome “filtro”: é colocado entre o visitante e o SPIP e verifica se o visitante não está a tentar explorar um ataque conhecido.

Quando uma nova falha é descoberta, basta atualizar este filtro para evitar qualquer ataque através dessa falha; Isto dá-lhe tempo para atualizar os scripts SPIP com tranquilidade e no momento oportuno.

Transferência

Baixe o filtro de segurança:
https://git.spip.net/spip-contrib-o...

O código deste filtro pode ser consultado no link a seguir:
https://git.spip.net/spip-contrib-o...

Também pode recuperá-lo e sincronizá-lo com o GIT:
git clone https://git.spip.net/spip-contrib-outils/securite.git

O ficheiro chama-se ecran_securite.php

Instalação

Há vários métodos possíveis para a instalação deste filtro:

Ao nível de um site SPIP específico:

Basta colocar o ficheiro ecran_securite.php no directório config/ do site para que seja tido em conta automaticamente.

Ao nível do servidor:

Colocar este ficheiro num directório legível por todos os sites (por exemplo /usr/share/php/ecran_securite/).

Alterar o php.ini, acrescentando as linhas a seguir:

auto_prepend_file '/usr/share/php/ecran_securite/ecran_securite.php'

Ou modifique o httpd.conf, acrescentando:

php_admin_value auto_prepend_file '/usr/share/php/ecran_securite/ecran_securite.php'

Neste dois casos, o filtro é incluído a cada «hit» PHP antes de iniciar o script normal, podendo, assim, bloquear qualquer chamada «maliciosa».

Configuração

Além da segurança, o filtro tem a capacidade de modular o acesso dos robots indexadores aos scripts PHP, de forma a avisar para “voltarem mais tarde”, quando o servidor estiver saturado.

Para as versões recentes, este comportamento é configurável, indicando no ficheiro ecran_securite_options.php:

<?php
define('_ECRAN_SECURITE_LOAD', X);

Esta configuração ativa a proteção anti-robots quando a carga do servidor (load) exceder o valor X. O valor padrão é 4; para desativar, defina como 0.

Nota:
Não confunda carga de 4 e carga de CPU de 400%: não há correspondência direta.
Em particular, a carga reflete processos de espera, o que não se deve necessariamente à CPU (por vezes é a I/O - nomeadamente de um NFS -. cf Load_average)

Além disso, o valor de _ECRAN_SECURITE_LOAD não deve ser avaliado apenas em termos do número de processadores na máquina.
Especialmente porque o mecanismo de redução do filtro de segurança é ativado gradualmente à medida que a carga excede o valor limite: na carga 4.01 quase não haverá 503 enviados.

O 4 representa um bom valor: permite manter um desempenho satisfatório do servidor e evita fazer o visitante esperar.

Funcionamento do filtro

O filtro intervém o menos possível, apenas bloqueia variáveis ​​que sabemos que foram, num determinado momento da história do SPIP, mal controladas e que podem, por isso, dar origem a um ataque. Por isso, é compatível com todas as versões do SPIP.

No entanto, o filtro bloqueia sistematicamente determinadas variáveis. Assim, por exemplo, as variáveis ​​denominadas id_xxx são todas verificadas como sendo necessariamente valores numéricos inteiros, de forma a evitar qualquer injeção de código SQL através deste tipo de variável muito comum.

Além disso, bloqueia o acesso, apenas para robots, a páginas que contenham várias paginações em simultâneo (pois a combinação resultante de várias paginações pode implicar em grande número de solicitações).

Verificação e teste

Para verificar a execução correta do script, chame o site público adicionando ao URL ?test_ecran_securite=1 ou &test_ecran_securite=1.

O resultado exibido deverá ser:

Error 403
You are not authorized to view this page (test 1.6.3)

Autor Ricardo Porto Publié le :

Traductions : عربي, català, corsu, English, Español, فارسى, français, Nederlands, Português