modsecurity: firewall opensource para a plicações w eb (waf)

37
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP Foundation OWASP http://www.owasp.org ModSecurity: Firewall OpenSource para Aplicações Web (WAF) Klaubert Herr da Silveira Consultor em segurança [email protected] 30/10/2009

Upload: zenobia-rafal

Post on 13-Mar-2016

65 views

Category:

Documents


0 download

DESCRIPTION

ModSecurity: Firewall OpenSource para A plicações W eb (WAF). Klaubert Herr da Silveira Consultor em segurança [email protected]. 30/10/2009. Agenda. Firewall de Aplicação Web (WAF); ModSecurity; Console do ModSecurity; Implantação do ModSecurity;. Firewall de Aplicação Web (WAF). - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: ModSecurity: Firewall OpenSource para A plicações W eb (WAF)

Copyright © The OWASP FoundationPermission is granted to copy, distribute and/or modify this document under the terms of the OWASP License.

The OWASP Foundation

OWASP

http://www.owasp.org

ModSecurity: Firewall OpenSource para Aplicações Web (WAF)

Klaubert Herr da SilveiraConsultor em seguranç[email protected]

30/10/2009

Page 2: ModSecurity: Firewall OpenSource para A plicações W eb (WAF)

OWASP

Agenda

1. Firewall de Aplicação Web (WAF);2. ModSecurity;3. Console do ModSecurity;4. Implantação do ModSecurity;

Page 3: ModSecurity: Firewall OpenSource para A plicações W eb (WAF)

OWASP

Firewall de Aplicação Web (WAF)

• Firewall (camada 7) especializado em aplicações Web;

• Conhecem os protocolos da Web: HTTP/S (Header, Cookies), HTML (POST, GET, Upload), XML, SOAP, entre outros;

• Efetivo mesmo com criptografia (SSL);• Ciente de sessão;• Implementados como software ou

appliance;• Detecção e Bloqueio a ataques;

Page 4: ModSecurity: Firewall OpenSource para A plicações W eb (WAF)

OWASP

Elementos de segurança para Web

FirewallFirewall IPSIPS WAFWAFControle de acesso AlgumAlgum AlgumAlgum SimSimDetecção de protocolo HTTP AlgumAlgum SimSim SimSimBloqueio de DoS (sob HTTP) AlgumAlgum AlgumAlgum AlgumAlgumIdentificação de ataques Web NãoNão AlgumAlgum SimSimDetecta ataques em sessão HTTP (múltiplas requisições) NãoNão NãoNão SimSim

Suporte a tráfego criptografado (SSL) Não Não NãoNão SimSim

Monitoração de erros do servidor web NãoNão NãoNão SimSim

Transcrição das sessões http(s) NãoNão AlgumAlgum SimSim

Page 5: ModSecurity: Firewall OpenSource para A plicações W eb (WAF)

OWASP

Por que usar um WAF?

• Bloqueio de ataques conhecidos;• Sites web: foco de ataques direto e

indireto;• Correções rápidas/emergenciais;• Controle de mensagens de erro;• Controle customizável, por URL;• Log de ataques e de erros;• Monitoração de segurança;• PCI DSS 1.2 – requisito 6.6;

Page 6: ModSecurity: Firewall OpenSource para A plicações W eb (WAF)

OWASP

PCI DSS 1.2

6.6 Verifique se um firewall de aplicativos da Web estáimplementado diante dos aplicativos da Web voltadosao público para detectar e impedir ataques baseadosna Web.

Page 7: ModSecurity: Firewall OpenSource para A plicações W eb (WAF)

OWASP

Lembre-se

Um Firewall de Aplicação Web (WAF) é mais uma camada de segurança, ele não é

garantia de segurança para as aplicações.

1.Design seguro;2.Codificação segura;3.Revisão do código;4.Análise de vulnerabilidade;5.Firewall de aplicação Web;

Page 8: ModSecurity: Firewall OpenSource para A plicações W eb (WAF)

OWASP

WAF e o desenvolvedor web

• Permite ao desenvolvedor ver o erro da aplicação como o usuário recebeu;

• Facilita a detecção de erros na aplicação;

• Permite a criação de correções emergenciais;

• Facilita a interação com a equipe de segurança;

Page 9: ModSecurity: Firewall OpenSource para A plicações W eb (WAF)

OWASP

ModSecurity

Firewall Open Source para Aplicações Web Módulo do Apache (*nix ou Windows); Diversos (e crescentes) recursos; Muito flexível; Conjunto de regras (Core Rules: um

projeto OWASP desde de Agosto/09); Criado por Ivan Ristic, e agora pela Breach

Security; Licenciamento duplo: GPL e comercial;

Page 10: ModSecurity: Firewall OpenSource para A plicações W eb (WAF)

OWASP

Características do ModSecurity

• Módulo para Apache– Embutido;– Proxy Reverso;

• Modos: apenas detecção ou bloqueio;• Inspeciona o cabeçalho e corpo da

requisição;• Inspeciona o cabeçalho e corpo da

resposta;• Redução do vazamento de informação;• Definição de regras bastante

completa/complexa, usando RegExp e Aho-Corasick;

Page 11: ModSecurity: Firewall OpenSource para A plicações W eb (WAF)

OWASP

Características do ModSecurity (cont.)

• Controle com GeoIP e RBL;• Normalização, decodificação;• Extensível: execução de scripts LUA

internamente ou scripts externos;• Log completo do tráfego (incluindo

POST);• Pode inspecionar uploads (anti-vírus);• Alterar a resposta (Append/Prepend);• Validação de XML;• Ataques podem ser bloqueados,

redirecionados, logados etc;

Page 12: ModSecurity: Firewall OpenSource para A plicações W eb (WAF)

OWASP

ModSecurity Core Rule Set (CRS)

• 460 regras (09/2009);• Otimizadas para performance;• Testes com tráfego real para garantir

qualidade;• Detecção genérica de ataques:

– Melhor performance;– Menos updates;

• Plug and play:– Alguns ajustes poderão ser necessários;

Page 13: ModSecurity: Firewall OpenSource para A plicações W eb (WAF)

OWASP

ModSecurity Core Rule Set (CRS)Categorias• Conformidade de protocolos:

– Validação de requisições HTTP (RFC);– Anomalias do protocolo HTTP;– Restrições globais;– Política de uso;

• Detecção de ataques:– Detecção de ataques genéricos;– Detecção de Trojans e Backdoors;

• Outras:– Detecção de erros;– Proteção de XML;

Page 14: ModSecurity: Firewall OpenSource para A plicações W eb (WAF)

OWASP

Fases de Processamento

1. Request headers;2. Request body;3. Response headers;4. Response body;5. Logging;

Page 15: ModSecurity: Firewall OpenSource para A plicações W eb (WAF)

OWASP

Fases de Processamento

1. Request headers;2. Request body;3. Response headers;4. Response body;5. Logging;

POST /app/?id=123&pref=none HTTP/1.1Host: 192.168.249.128User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pt-BR; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 GTB5 FirePHP/0.3Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8Accept-Language: pt-br,pt;q=0.8,en-us;q=0.5,en;q=0.3Accept-Encoding: gzip,deflateAccept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7Cookie: NID=27=OBP_7aEMkW_20_VG3kk4PKeep-Alive: 300Connection: keep-alive

1.REQUEST_COOKIES2.REQUEST_FILENAME3.REQUEST_HEADERS

1.QUERY_STRING2.REQUEST_PROTOCOL3.REQUEST_METHOD

Page 16: ModSecurity: Firewall OpenSource para A plicações W eb (WAF)

OWASP

Fases de Processamento

2. Request body;count=1&req0_type=i&req0_time=754341&req0_evtype=click&req0__sc=c

1.REQUEST_BODY2.FILES_TMPNAMES (@inspectFile)

Page 17: ModSecurity: Firewall OpenSource para A plicações W eb (WAF)

OWASP

Fases de Processamento

3. Response headers;HTTP/1.1 200 OKCache-control: must-revalidateContent-Length: 6589Connection: closeContent-Type: text/html;charset=utf-8

1.RESPONSE_HEADERS2.RESPONSE_STATUS3.RESPONSE_CONTENT_LENGTH

Page 18: ModSecurity: Firewall OpenSource para A plicações W eb (WAF)

OWASP

Fases de Processamento

4. Response body;<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"> <head> <title> Test App </title> <link rel="search" href="/app" /> <link rel="help" href="/app" /> <link rel="alternate" href="/app" title="Plain Text" />...</body></html>

1.RESPONSE_BODY

Page 19: ModSecurity: Firewall OpenSource para A plicações W eb (WAF)

OWASP

Fases de Processamento

5. LoggingMessage: Warning. Pattern match "^[\d\.]+$" at REQUEST_HEADERS:Host. [file "/etc/httpd/modsecurity.d/modsecurity_crs_21_protocol_anomalies.conf"] [line "60"] [id "960017"] [msg "Host header is a numeric IP address"] [severity "CRITICAL"] [tag "PROTOCOL_VIOLATION/IP_HOST"]Apache-Handler: mod_pythonStopwatch: 1253311105441030 1021989 (14209 19300 1018538)Response-Body-Transformed: DechunkedProducer: ModSecurity for Apache/2.5.7 (http://www.modsecurity.org/); core ruleset/1.6.1.Server: Apache/2.2.3 (Red Hat)

Page 20: ModSecurity: Firewall OpenSource para A plicações W eb (WAF)

OWASP

Implantando o ModSecurity

Modo Embutido (local);• Baseado em rede (proxy reverso);

Page 21: ModSecurity: Firewall OpenSource para A plicações W eb (WAF)

OWASP

Implantando o ModSecurity: Modo Embutido (Local)• Somente para Apache (até o momento);• Instalado no próprio servidor web;• Sem mudança na topologia de rede;• Escalabilidade herdada do servidor web;• Gerencia de segurança e do servidor

web compartilhada;

Page 22: ModSecurity: Firewall OpenSource para A plicações W eb (WAF)

OWASP

Implantando o ModSecurity: Baseado em rede (proxy reverso);• Apache como Proxy Reverso;• Qualquer servidor web pode ser um

backend;• Pode abranger vários servidores;• Vira o front-end para o(s) site(s),

alterando a topologia da rede;• Necessita de solução de alta-

disponibilidade e/ou escalabilidade própria;

• Separa o gerenciamento de segurança do gerenciamento do servidor web;

Page 23: ModSecurity: Firewall OpenSource para A plicações W eb (WAF)

OWASP

ModSecurity: Modelos de segurança

• Modelo Positivo:– As regras definem o que pode ser

requisitado/respondido;– As regras precisam ser escritas para cada

aplicação;– A demais requisições são bloqueadas;– Ferramentas: Remo e mod_profiler

• Modelo Negativo:– Conjuntos genérico de regras, ex. XSS,

SQL Injection, fora dos padrões etc, (ajustes podem ser necessário);

– As demais requisições são permitidas;

Page 24: ModSecurity: Firewall OpenSource para A plicações W eb (WAF)

OWASP

ModSecurity: Modelos de segurança (cont.)• Modelo Híbrido:– Aplica as regras para bloquear os ataques

conhecidos (modelo Negativo) para o site todo;

– Cria regras específicas para cada aplicação (modelo Positivo);

Page 25: ModSecurity: Firewall OpenSource para A plicações W eb (WAF)

OWASP

Virtual Patching

• Definição de regras para impedir a exploração de uma vulnerabilidade conhecida, sem alteração da aplicação;

• Reduz o tempo de exposição;• Permite “corrigir” falhas de segurança

em aplicações escritas por terceiros;• Não deve ser considerado como a

“solução” para correção de vulnerabilidade;

Page 26: ModSecurity: Firewall OpenSource para A plicações W eb (WAF)

OWASP

Gerenciamento: ModSecurity Console

• ModSecurity Community Console, escrita pela Breach Security;

• Grátis para até 3 sensores;• Código fechado;• Centraliza os eventos;• Simples e funcional para a monitoração

dos eventos;• Pouco escalável;• Desenvolvimento parado a 1 ano, sem

planos para melhorias;

Page 27: ModSecurity: Firewall OpenSource para A plicações W eb (WAF)

OWASP

Gerenciamento: WAF∙FLE

• Console OpenSource em desenvolvimento;• Deve atender a todas as funcionalidades

existentes na ModSecurity Community Console;

• Significativo ganho de performance;• Sem limite para sensores;• Desenvolvimento em pleno curso;• Contribuições serão muito bem-vindas;• Liberação do código inicial em breve,

checar:• http://klaubert.wordpress.com;• Mailing-list do ModSecurity

Page 28: ModSecurity: Firewall OpenSource para A plicações W eb (WAF)

OWASP

Demonstração

Page 29: ModSecurity: Firewall OpenSource para A plicações W eb (WAF)

OWASP

Entendendo os eventos

Page 30: ModSecurity: Firewall OpenSource para A plicações W eb (WAF)

OWASP

Entendendo os eventos

Page 31: ModSecurity: Firewall OpenSource para A plicações W eb (WAF)

OWASP

Falso positivos

• Regras que são disparadas indevidamente, o evento parece um ataque, mas não é;

• Podem ser muito ruidosos no início de uma implantação;

• Devem ser analisados, e as regras ajustadas para eliminá-los;

Page 32: ModSecurity: Firewall OpenSource para A plicações W eb (WAF)

OWASP

Ajuste fino das regras

• Desabilitar regras;

• Desabilitar regras para <Location...> específicos

• Alterar/Corrigir a aplicação;• Ajustar partes de uma regra:

– Cookies; - Headers;– POST; - Response Body;

SecRuleRemoveById 950009

<Location /path/to/foo.php> SecRuleRemoveById 950009</Location>

Page 33: ModSecurity: Firewall OpenSource para A plicações W eb (WAF)

OWASP

Performance

• Inspecionar as respostas (SecResponseBodyAccess) pode afetar a performance;

• Inspecione somente as requisições relevantes (ex. conteúdo dinâmico, html, xml, txt);

• Não inspecione conteúdo estático;• A quantidade de regras influencia a

performance:• Desative regras desnecessárias;

• Habilite o mod_cache;

Page 34: ModSecurity: Firewall OpenSource para A plicações W eb (WAF)

OWASP

Customização

• Crie suas próprias regras;• Modifique as regras existentes;• Intercepte e customize as páginas de

erro;• Use a criatividade;

Page 35: ModSecurity: Firewall OpenSource para A plicações W eb (WAF)

OWASP

Cuidados e fatores de sucesso na implantação do ModSecurity• Iniciar o uso no modo de monitoração:

• Ativar o bloqueio aplicação a aplicação;• Tamanho das respostas;

• Deixar passar o que exceder;

• Elimine os falso positivos, eles podem ser muito intensivos em:– I/O– Espaço em disco;

SecRuleEngine DetectionOnly

SecResponseBodyLimit

SecResponseBodyLimitAction = ProcessPartial

Page 36: ModSecurity: Firewall OpenSource para A plicações W eb (WAF)

OWASP

Palavas finais

• Explique aos demais envolvidos (gerentes, desenvolvedores, gestores das aplicações, service-desk) os benefícios e potenciais problemas na adoção de um WAF;

• Monitore;• Dedique tempo para ajustar seu WAF;• Dê um passo de cada vez;• Acrescente mais uma camada de

segurança à sua aplicação;

Page 37: ModSecurity: Firewall OpenSource para A plicações W eb (WAF)

OWASP

Perguntas