Como configurar o Apache com OWASP

Apache

O Apache http server é um dos principais servidores web utilizados no mercado.O OWASP (Open Web Application Security Project) é uma comunidade aberta dedicada a permitir que as organizações desenvolvam, adquiram e mantenham aplicações e APIs confiáveis. As configurações a seguir permite a tratar algumas questões levantadas pelo OWASP.

O primeiro passo para efetuar a configuração do apache é identificar o que precisa ser configurado, para isso há duas ferramentas que ajudam muito: mozilla observatory e owasp zap.

Mozilla Observatory

Mozilla Observatory

O Observatory do mozilla é uma ferramenta online que faz um scan no seu site e cria um score para seu ele, quanto maior o score melhor. Ele depois associa uma letra para este score que vai de F até A+ . Além disso para cada item que é avaliado há uma descrição detalhada do que pode ser feito.

Owasp ZAP

O Owasp Zed Attack Proxy é um das ferramentas de segurança mais populares que pode ajudar em encontrar vulnerabilidades em suas aplicações web. Ele vai além Mozilla Observatory identificando diversas vulnerabilidades que não são vistas pelo observatory, porém ele demora muito mais tempo para dar um relatório. Ele também classifica as vulnerabilidades encontradas , indo de baixo risco até alto risco.

Configuração do Apache

Após você executar as ferramentas você vai ter uma visão de quais riscos o seu site esta vulnerável e conforme suas necessidades você pode fazer as configurações adequadas.

Uma destas configurações você pode fazer nos arquivos de configuração de /etc/apache2/sites-available/*.conf :

1
2
3
4
5
6
7
8
Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains;"
Header always set X-Frame-Options DENY
Header set Access-Control-Allow-Origin "https://fabio.recife.br "
Header set X-Content-Type-Options nosniff
Header always set X-Xss-Protection "1; mode=block"
Header set Cache-Control "no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires 0

Com estas configurações podemos conseguir um B do mozilla observatory:

B mozilla observatory

Entretanto para você conseguir um A vai ter que fazer a configuração do CSP, exemplo::

1
2
Header set Content-Security-Policy "default-src 'self' https://www.google.com https://www.google-analytics.com/; script-src 'unsafe-eval' https://fabio-recife-br.disqus.com/ 'self' https://www.google-analytics.com/analytics.js; img-src 'self' https:;style-src 'self' "

Coloquei a configuração do Content-Security-Policy em separada pois ela vai precisar de uma atenção especial uma vez que você tem que alterar para as demandas especificas do seu site. Nesse momento o Mozilla Observatory pode ajudar uma vez que podemos identificar rapidamente o problema no CSP.

Um processo para configurar o apache é abrir o site e visualizar na aba de Console do Developer Tools do Chrome identificar quais recursos não foram carregados e o motivo que não foi carregado, então edite o Header do CSP com a informação que está faltando, reinicie o apache e execute o processo novamente.

Em algum momento você vai conseguir tirar um A do mozilla:

A mozilla observatory

Isso não significa que seu site está totalmente seguro , mas apenas que você melhorou significativamente a segurança do mesmo.

Para saber mais

Content Security Policy Reference

CSP site mozilla