SlideShare uma empresa Scribd logo
ModSecurity: Firewall
          OpenSource para Aplicações
          Web (WAF)


                  Klaubert Herr da Silveira
                  klaubert @gmail.com



OWASP
08/2012

             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
             http://www.owasp.org
Agenda

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




                                        OWASP
Klaubert Herr

• Consultor em segurança da informação a 13
  anos;
• Tópicos atuais:
     – (D)DoS
     – WAF
• Atuação com ferramentas open source e
  comerciais;
• Desenvolvedor do WAF-FLE, console para o
  ModSecurity
• http://waf-fle.org
• http://klaubert.wordpress.com
                                       OWASP
Firewall de Aplicação Web - WAF




                                  OWASP
Firewall de Aplicação Web - WAF

•   Firewall (camada 7) especializado em
    aplicações Web;
•   Conhece 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;
•   Detecta e Bloqueia ataques;


                                       OWASP
Elementos de segurança para Web

                                          Firewall     IPS        WAF
Controle de acesso                        Sim        Algum      Sim
Detecção de protocolo HTTP                Algum      Sim        Sim
Bloqueio de DoS (sob HTTP)                Algum      Algum      Algum
Identificação/Bloqueio de ataques Web
                                          Não        Algum      Sim
(XSS, SQLi, CSRF etc)

Ciente de autenticação formulário
                                          Não        Não        Sim
e sessão HTTP (cookies)
Suporte a tráfego criptografado (SSL)     Não        Não        Sim

Monitoração de erros do servidor web      Não        Não        Sim

Transcrição das sessões http(s)           Não        Algum      Sim
Interceptação de vazamento (ex. Erro) /
                                          Não        Algum      Sim
reescrita da resposta
                                                             OWASP
Por que usar um WAF?

•       Segurança
    •   Ponto único de controle
    •   Gerenciado pela equipe de segurança
    •   Múltiplas camadas de segurança
    •   Ativado continuamente
    •   Sites web: foco de ataques direto ou vetor de ataque;
    •   Virtual patching
    •   Bloqueio de ataques conhecidos;
    •   Controle de mensagens de erro;
    •   Controle customizável, por URL;
    •   Monitoração e Logs de ataques e de erros;
                                                   OWASP
Por que usar um WAF?

•    Compliance/Auditoria
    • PCI DSS 1.2+ – requisito 6.6;
    • <Coloque a sua aqui>




                                      OWASP
PCI DSS 1.2



              6.6 Verifique se um firewall de aplicativos da Web está
              implementado diante dos aplicativos da Web voltados
              ao público para detectar e impedir ataques baseados
              na Web.




                                                         OWASP
Lembre-se

   Um Firewall de Aplicação Web (WAF) é uma
    importante camada de segurança, mas 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;

                                         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;




                                         OWASP
ModSecurity




              OWASP
ModSecurity

 Firewall Open Source para Aplicações Web
 Módulo para Apache (*nix ou Windows);
 Novos módulos para: IIS e Nginx;
 Muito flexível;
 Conjunto de regras Core Rule Set, um projeto
  OWASP desde de Agosto/09;
 Criado por Ivan Ristic;
 Hoje da Trustwave, mantido pelo Breno Silva;
 Licenciamento: Apache License 2.0;

                                         OWASP
Características do ModSecurity

•   Módulo para Apache
     –   Embutido;
     –   Proxy Reverso;
•   Modos: detecção ou bloqueio;
•   Inspeciona o cabeçalho e corpo da requisição;
•   Inspeciona o cabeçalho e corpo da resposta;
•   Definição de regras bastante completa/
    complexa;



                                         OWASP
Características do ModSecurity (cont.)

•  Normalização, decodificação;
  • Base64
  • compressWhitespace;
  • htmlEntityDecode;
  • removeCommentsChar;
•  RBL (Reputação) e GeoIP;
•  Extensível: execução de scripts LUA
   internamente ou scripts externos;
•  Log completo do tráfego (incluindo POST);

                                        OWASP
Características do ModSecurity (cont.)

• Pode inspecionar uploads (anti-vírus);
• Alterar a resposta (Append/Prepend/ Replace);
• Ataques podem ser bloqueados, redirecionados,
  logados etc;
• Dados persistentes usados entre requisições
  diferentes:
  •   IP;
  •   Sessão;
  •   Username;
  •   Resource;
  •   Global;
                                       OWASP
Características recentes

• Metadado para regras: ver, maturity, accuracy;
• Sanitização de SSN, CC, CPF -> evitar
  vazamento;
• Desativação de compressão com o backend;
• SecEncryption*: cria um token criptografado de
  href/frame src/iframe scr/form action; (2.7RC)




                                        OWASP
Implantando o ModSecurity

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




                                       OWASP
Implantando o ModSecurity:
Modo Embutido (Local)
•   Apache (IIS e Nginx a caminho);
•   Instalado no próprio servidor web;
•   Sem mudança na topologia de rede;
•   Escalabilidade herdada do servidor web;
•   Algum impacto em performance pode ocorrer;
•   Gerencia de segurança e do servidor web
    compartilhada;




                                       OWASP
Implantando o ModSecurity:
Baseado em rede (proxy reverso);
•   Apache como Proxy Reverso (breve Nginx);
•   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;
•   Alta-disponibilidade e/ou escalabilidade
    própria;
•   Separa o gerenciamento de segurança do
    gerenciamento do servidor web;
                                            OWASP
ModSecurity: Modelos de segurança

•   Modelo Positivo
•   Modelo Negativo
•   Modelo Híbrido




                                    OWASP
Modelo Positivo

•   As regras definem o que pode ser requisitado e
    respondido;
•   As regras precisam ser definidas para cada aplicação,
    para cada URI ou conjunto de URI’s;
•   Alterações na aplicação precisam refletir na política do
    WAF(!);
•   Quanto mais complexa a aplicação, mas complexo
    será definir a política
•   Campos muito abrangentes (livres) terão uma política
    frágil;
•   As demais requisições são bloqueadas;
•   Ferramentas: Remo e mod_profiler (abandonadas)
                                                  OWASP
Modelo Negativo

–   Conjuntos genérico de regras, ex. XSS, SQL Injection,
    fora dos padrões etc;
–   Exceções precisam ser tratadas pontualmente;
–   As demais requisições são permitidas;
–   Atualizações nas regras precisam ser novamente
    validadas no tráfego real;




                                                OWASP
Modelo Híbrido

•   Usa o definido no modelo positivo;
    ... se passar...
•   Aplica as regras negativas para bloquear
    ataques genéricos;




                                          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;



                                          OWASP
ModSecurity Core Rule Set (CRS)

•   2319 regras (08/2012);
     • Regras próprias;
     • Conversão de outras assinaturas:
         PHPIDS, Emerging Threats,
•   Testes com tráfego real;
•   Detecção genérica de ataques:
     –   Melhor performance;
     –   Menos updates;
•   Plug and play:
     –   Ok, leia o README primeiro... 
     –   Ajustes poderão ser necessários;
                                            OWASP
ModSecurity Core Rule Set (CRS)
Modo de Operação
–   Self-Contained
     – Caso ocorra o match de uma requisição com
           uma regra a ação de regra é executada;
–   Collaborative Detection
     – A cada match de regra um score é
           incrementado
          – Pontuação de acordo com a criticidade;
          – Pontuação específica para tipos de ataque;
     – Ao final da avaliação das regras, é verificada a
        pontuação, podendo: permitir ou bloquear;
          • Maior segurança no bloqueio;

                                                 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:
     –   Mitigação de Slow DoS;
     –   XSS, SQLi, Buffer Overflow, etc;
     –   Detecção de Trojans e Backdoors;
•   Outras:
     –   Detecção de erros;
     –   Proteção de XML;                       OWASP
Como o Modsecurity atua

•    Fases de Processamento
    1.Request headers;
    2.Request body;
    3.Response headers;
    4.Response body;
    5.Logging;




                              OWASP
Fases de Processamento




                         OWASP
Fases de Processamento

1. Request headers;
2. /teste2.php?%3Cscript%3Ealert(%22xss%22)%3C/script%3E
GET Request body;
HTTP/1.0
3. Response headers;
Host: waf-fle.org
Connection: close
4. Response body;
User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.1
5. Logging; Chrome/21.0.1180.60 Safari/537.1
(KHTML, like Gecko)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*
Accept-Encoding: gzip,deflate,sdch
Accept-Language: pt-BR,pt;q=0.8,en-US;q=0.6,en;q=0.4
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
Cookie: PHPSESSIONID=JFNDECOIPLMDODKEDBAFPC

1.REQUEST_COOKIES                 1.QUERY_STRING
2.REQUEST_FILENAME                2.REQUEST_PROTOCOL
3.REQUEST_HEADERS                 3.REQUEST_METHOD

                                                          OWASP
Fases de Processamento

2.    Request body (POST, PUT);
count=1&req0_type=i&req0_time=754341' OR 'x'='x


•     SecRequestBodyAccess ->On;
     • application/x-www-form-urlencoded – Dados de formulários
     • multipart/form-data – Ttransferência de arquivos
     • text/xml – Dados em XML


1.REQUEST_BODY
2.ARGS (ARGS_POST, ARGS_COMBINED_SIZE)
3.FILES_TMPNAMES (@inspectFile)

                                                         OWASP
Fases de Processamento

3.   Response headers;
HTTP/1.1 403 Forbidden
Accept-Ranges: bytes
Connection: close
Content-Type: text/html; charset=iso-8859-1
              text/html
Content-Language: pt-br
Expires: Wed, 22 Aug 2012 23:19:52 GMT



1.RESPONSE_HEADERS
2.RESPONSE_STATUS
3.RESPONSE_CONTENT_LENGTH
4.RESPONSE_CONTENT_TYPE

                                              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
2.rsub
                                                                 OWASP
Fases de Processamento

5.    Logging
Message: Pattern match "< ?scriptb" at
ARGS_NAMES:<script>alert("xss")</script>. [file
"/etc/mod_security/modsecurity_crs_41_xss_attacks.conf"] [id "958051"] [rev
"2.1.1"] [msg "Cross-site Scripting (XSS) Attack"] [data "<script"] [severity
"CRITICAL"] [tag "WEB_ATTACK/XSS"] [tag "WASCTC/WASC-8"] [tag
"WASCTC/WASC-22"] [tag "OWASP_TOP_10/A2"] [tag "OWASP_AppSensor/IE1"]
[tag "PCI/6.5.1"]
Message: Warning. Operator GE matched 19 at TX:inbound_anomaly_score. [file
"/etc/mod_security/modsecurity_crs_60_correlation.conf"] [msg "Inbound Anomaly
Score Exceeded (Total Inbound Score: 48, SQLi=, XSS=48): IE XSS Filters - Attack
                                                XSS=48
Detected"]
Action: Intercepted (phase 2)
...
Producer: ModSecurity for Apache/2.6.2 ...; core ruleset/2.1.1.
Server: Apache


                                                                  OWASP
Logs

•   Logs detalhados dos eventos;
•   Muito log se...
  • Muitas aplicações
  • Múltiplos servidores (1,2,4 … 1.000 ...)
  • DoS
  • Robôs
  • Falsos positivos
•   Opções para visualização dos logs
    • Grep            • Splunk for modSecurity
    • WAF-FLE         • SIEM’s
    • AuditConsole                          OWASP
WAF∙FLE

• Console centralizadora de logs para modsecurity
• http://waf-fle.org;
• Disponível na Versão 0.5 -> Breve 0.6
• Suporta regras nos modos “Self-Containend” e
  “Collaborative Detection”;
• Recebe eventos em tempo real ou em batch,
  com mlogc
    • mlog2waffle na versão 0.6
• Sem limite de sensores
• PHP e Mysql DB
• Open Source: GPL v2
                                         OWASP
WAF∙FLE

• Dashboard
  •   Eventos ao longo do dia
  •   Top Sources
  •   Top Sensors
  •   Top Severity
  •   Top Rules
  •   Top Targets
  •   Status http
  •   Top countries (0.6)
  •   Top ASN’s (0.6)
  •   Path (0.6)
                                OWASP
WAF∙FLE

• Filtros Drill-Down
   • Cada campo deve ser uma pesquisa
   • Invertidos (not)
   • A partir do dashboard (atualizando o dashboard,
     0.6);
   • Por faixa de rede
   • Por score
   • Por regra
   • Path
   • Hostname
   • etc

                                                OWASP
Falso positivos

•   Regras que são disparadas indevidamente, o
    evento é identificado como um ataque;
•   Podem ser muito ruidosos no início de uma
    implantação;
•   Devem ser analisados, e as regras ajustadas
    para eliminá-los;




                                         OWASP
Ajuste fino das regras

•   Desabilitar regras;
      SecRuleRemoveById 950009
       SecRuleRemoveById 950009

•   Desabilitar regras para <Location...>
    específicos
      <Location /path/to/foo.php>
       <Location /path/to/foo.php>
        SecRuleRemoveById 950009
         SecRuleRemoveById 950009
      </Location>
       </Location>
•   Ajustar partes de uma regra:
     –   Cookies;        - Headers;
     –   POST;           - Response Body;

                                            OWASP
Ajuste fino das regras

•    Alterando as regras pelo ID
SecRuleUpdateTargetById 981260 !REQUEST_COOKIES:UserPref
 SecRuleUpdateTargetById 981260 !REQUEST_COOKIES:UserPref

SecRule REQUEST_URI “@streq /mail/” “phase:1,t:none,
 SecRule REQUEST_URI “@streq /mail/” “phase:1,t:none,
nolog,pass,ctl:ruleUpdateTargetById=950901;
 nolog,pass,ctl:ruleUpdateTargetById=950901;
!REQUEST_COOKIES:/^UserPref/”
 !REQUEST_COOKIES:/^UserPref/”

•    Alterar/Corrigir a aplicação;




                                                         OWASP
Performance

•       Inspecionar as respostas pode afetar a
        performance (SecResponseBodyAccess);
•       Inspecione somente as requisições relevantes
        (ex. conteúdo dinâmico, html, xml, json);
•       Não inspecione conteúdo estático;
•       A quantidade de regras influencia a
        performance:
    •     Desative regras desnecessárias;
•       Habilite o mod_cache;
•       Coloque um cache na frente (Nginx/Varnish);

                                             OWASP
Customização

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




                                          OWASP
Cuidados e fatores de sucesso na
implantação do ModSecurity
•   Iniciar o uso no modo de monitoração:
    SecRuleEngine DetectionOnly
     SecRuleEngine DetectionOnly
•   Ativar o bloqueio aplicação a aplicação;
•   Tamanho das respostas;
    SecResponseBodyLimit
     SecResponseBodyLimit
•   Deixar passar o que exceder;
    SecResponseBodyLimitAction ==ProcessPartial
     SecResponseBodyLimitAction ProcessPartial
•   Elimine os falso positivos, eles podem ser
    muito intensivos em:
     –    I/O
     –    Espaço em disco;                        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, refine as regras;
•   Dedique tempo para ajustar seu WAF;
•   Dê um passo de cada vez;
•   Acrescente mais uma camada de segurança à
    sua aplicação;


                                      OWASP
Demonstração




               OWASP
Perguntas




            OWASP
Obrigado

Klaubert @gmail.com




                      OWASP

Mais conteúdo relacionado

PDF
AppSec Brazil 2010 - Utilizando a ESAPI para prover Segurança em Aplicações W...
PDF
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
PDF
Introducao WAF Tchelinux 2012
PDF
Segurança em desenvolvimento de software
PPT
Monitoramento de Redes com Zabbix
PDF
Além do HTTPS - Como (tentar) Aumentar a Segurança de seu Website e Aplicação...
PDF
Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...
PDF
O poder do x v.1.1
AppSec Brazil 2010 - Utilizando a ESAPI para prover Segurança em Aplicações W...
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
Introducao WAF Tchelinux 2012
Segurança em desenvolvimento de software
Monitoramento de Redes com Zabbix
Além do HTTPS - Como (tentar) Aumentar a Segurança de seu Website e Aplicação...
Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...
O poder do x v.1.1

Mais procurados (20)

PDF
OWASP Top 10 - A web security cookbook
PDF
"Técnicas e Ferramentas para Auditorias Testes de Invasão"
PPTX
OWASP - Ferramentas
PDF
Ferranentas OWASP
PDF
Site invadido
PDF
Monitoramento da rede de A a ZABBIX - Daniel Bauermann
PPT
Direct Web Remoting Sun Tech Days2007
PDF
Monitorando ativos com Zabbix
PDF
Introducão a Web Applications Firewalls
PPT
Experiência e Cases com Auditorias Teste de Invasão em Redes e Sistemas
PDF
Validando a Segurança de Software
PPTX
Apresentação Werneck - MeSeg RNP 2017 - Natal RN - Importância do monitoramen...
PDF
Monitoração avançada com Zabbix 2
PDF
Palestra - Darkmira Tour PHP 2016 - A ilusão das referências sobre desenvolv...
PDF
Gerenciamento de Vulnerabilidades em Redes Corporativas - CNASI - DF
PDF
Apresentacao_Zabbix
PPTX
Monitoramento de Bancos de Dados MS SQL Server com Zabbix - SQL Technology Da...
PDF
Introdução à SQL Injection
PDF
Segurança Através de Gerência de Configurações
PPTX
2014 roadsec-slides-palestra
OWASP Top 10 - A web security cookbook
"Técnicas e Ferramentas para Auditorias Testes de Invasão"
OWASP - Ferramentas
Ferranentas OWASP
Site invadido
Monitoramento da rede de A a ZABBIX - Daniel Bauermann
Direct Web Remoting Sun Tech Days2007
Monitorando ativos com Zabbix
Introducão a Web Applications Firewalls
Experiência e Cases com Auditorias Teste de Invasão em Redes e Sistemas
Validando a Segurança de Software
Apresentação Werneck - MeSeg RNP 2017 - Natal RN - Importância do monitoramen...
Monitoração avançada com Zabbix 2
Palestra - Darkmira Tour PHP 2016 - A ilusão das referências sobre desenvolv...
Gerenciamento de Vulnerabilidades em Redes Corporativas - CNASI - DF
Apresentacao_Zabbix
Monitoramento de Bancos de Dados MS SQL Server com Zabbix - SQL Technology Da...
Introdução à SQL Injection
Segurança Através de Gerência de Configurações
2014 roadsec-slides-palestra
Anúncio

Destaque (6)

DOCX
O endian firewall community
PPTX
Curso de Endian Firewall v3.0.5 - Aula 4
PDF
NetSol - Next Generation Firewall
PDF
Endian firewall community
PDF
Endian firewall
PPTX
Curso Endian Firewall v3.0.5 - Aula 1
O endian firewall community
Curso de Endian Firewall v3.0.5 - Aula 4
NetSol - Next Generation Firewall
Endian firewall community
Endian firewall
Curso Endian Firewall v3.0.5 - Aula 1
Anúncio

Semelhante a OWASP_BSB_20120827_mod_security_KLAUBERTHERR (20)

PDF
ENSOL 2011 - OWASP e a Segurança na Web
PDF
Analysis of vulnerabilities in web applications - LinuxCon Brazil 2010
PPT
Tratando as vulnerabilidades do Top 10 do OWASP by Wagner Elias
PPTX
AppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEE
PDF
OWASP_BSB_20120827_TOP10_ISMAELROCHA
PPT
Tratando as vulnerabilidades do Top 10 com php
PDF
Introdução ao OWASP
PDF
Global AppSec LATAM 2011 Conference - Segurança de Aplicações, para sua organ...
PDF
OWASP Top Ten 2004
PDF
Apresentação OWASP - UBI, Covilhã
PDF
Apresentação Ismael Rocha e Fabricio Braz
PPTX
Owasp Chapter Belo Horizonte
PPTX
CJR Apresenta: OWASP TOP10
PDF
A OWASP e a Segurança Aplicacional para a Web
PDF
Antar ferreira
PDF
Webgoat como ferramenta de aprendizado
PDF
Slides do Treinamento - OWASP TOP 10 (Em português)
PDF
OWASP @ ISCTE-IUL, OWASP e OWASP Portugal
PDF
CiberSegurança em Aplicações Web- WTI RedDragons 2025.pdf
PDF
Owasp top 10_2013_pt-br
ENSOL 2011 - OWASP e a Segurança na Web
Analysis of vulnerabilities in web applications - LinuxCon Brazil 2010
Tratando as vulnerabilidades do Top 10 do OWASP by Wagner Elias
AppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEE
OWASP_BSB_20120827_TOP10_ISMAELROCHA
Tratando as vulnerabilidades do Top 10 com php
Introdução ao OWASP
Global AppSec LATAM 2011 Conference - Segurança de Aplicações, para sua organ...
OWASP Top Ten 2004
Apresentação OWASP - UBI, Covilhã
Apresentação Ismael Rocha e Fabricio Braz
Owasp Chapter Belo Horizonte
CJR Apresenta: OWASP TOP10
A OWASP e a Segurança Aplicacional para a Web
Antar ferreira
Webgoat como ferramenta de aprendizado
Slides do Treinamento - OWASP TOP 10 (Em português)
OWASP @ ISCTE-IUL, OWASP e OWASP Portugal
CiberSegurança em Aplicações Web- WTI RedDragons 2025.pdf
Owasp top 10_2013_pt-br

Último (11)

PPTX
Viasol Energia Solar -Soluções para geração e economia de energia
PPTX
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
PDF
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
PPTX
Tipos de servidor em redes de computador.pptx
PDF
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PDF
Manejo integrado de pragas na cultura do algodão
PDF
Jira Software projetos completos com scrum
PPTX
Eng. Software - pontos essenciais para o início
PPTX
Utilizando code blockes por andre backes
PPT
Conceitos básicos de Redes Neurais Artificiais
Viasol Energia Solar -Soluções para geração e economia de energia
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
Tipos de servidor em redes de computador.pptx
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Manejo integrado de pragas na cultura do algodão
Jira Software projetos completos com scrum
Eng. Software - pontos essenciais para o início
Utilizando code blockes por andre backes
Conceitos básicos de Redes Neurais Artificiais

OWASP_BSB_20120827_mod_security_KLAUBERTHERR

  • 1. ModSecurity: Firewall OpenSource para Aplicações Web (WAF) Klaubert Herr da Silveira klaubert @gmail.com OWASP 08/2012 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 http://www.owasp.org
  • 2. Agenda 1. Firewall de Aplicação Web (WAF); 2. ModSecurity; 3. Console do ModSecurity; 4. Implantação do ModSecurity; OWASP
  • 3. Klaubert Herr • Consultor em segurança da informação a 13 anos; • Tópicos atuais: – (D)DoS – WAF • Atuação com ferramentas open source e comerciais; • Desenvolvedor do WAF-FLE, console para o ModSecurity • http://waf-fle.org • http://klaubert.wordpress.com OWASP
  • 4. Firewall de Aplicação Web - WAF OWASP
  • 5. Firewall de Aplicação Web - WAF • Firewall (camada 7) especializado em aplicações Web; • Conhece 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; • Detecta e Bloqueia ataques; OWASP
  • 6. Elementos de segurança para Web Firewall IPS WAF Controle de acesso Sim Algum Sim Detecção de protocolo HTTP Algum Sim Sim Bloqueio de DoS (sob HTTP) Algum Algum Algum Identificação/Bloqueio de ataques Web Não Algum Sim (XSS, SQLi, CSRF etc) Ciente de autenticação formulário Não Não Sim e sessão HTTP (cookies) Suporte a tráfego criptografado (SSL) Não Não Sim Monitoração de erros do servidor web Não Não Sim Transcrição das sessões http(s) Não Algum Sim Interceptação de vazamento (ex. Erro) / Não Algum Sim reescrita da resposta OWASP
  • 7. Por que usar um WAF? • Segurança • Ponto único de controle • Gerenciado pela equipe de segurança • Múltiplas camadas de segurança • Ativado continuamente • Sites web: foco de ataques direto ou vetor de ataque; • Virtual patching • Bloqueio de ataques conhecidos; • Controle de mensagens de erro; • Controle customizável, por URL; • Monitoração e Logs de ataques e de erros; OWASP
  • 8. Por que usar um WAF? • Compliance/Auditoria • PCI DSS 1.2+ – requisito 6.6; • <Coloque a sua aqui> OWASP
  • 9. PCI DSS 1.2 6.6 Verifique se um firewall de aplicativos da Web está implementado diante dos aplicativos da Web voltados ao público para detectar e impedir ataques baseados na Web. OWASP
  • 10. Lembre-se Um Firewall de Aplicação Web (WAF) é uma importante camada de segurança, mas 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; OWASP
  • 11. 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; OWASP
  • 12. ModSecurity OWASP
  • 13. ModSecurity  Firewall Open Source para Aplicações Web  Módulo para Apache (*nix ou Windows);  Novos módulos para: IIS e Nginx;  Muito flexível;  Conjunto de regras Core Rule Set, um projeto OWASP desde de Agosto/09;  Criado por Ivan Ristic;  Hoje da Trustwave, mantido pelo Breno Silva;  Licenciamento: Apache License 2.0; OWASP
  • 14. Características do ModSecurity • Módulo para Apache – Embutido; – Proxy Reverso; • Modos: detecção ou bloqueio; • Inspeciona o cabeçalho e corpo da requisição; • Inspeciona o cabeçalho e corpo da resposta; • Definição de regras bastante completa/ complexa; OWASP
  • 15. Características do ModSecurity (cont.) • Normalização, decodificação; • Base64 • compressWhitespace; • htmlEntityDecode; • removeCommentsChar; • RBL (Reputação) e GeoIP; • Extensível: execução de scripts LUA internamente ou scripts externos; • Log completo do tráfego (incluindo POST); OWASP
  • 16. Características do ModSecurity (cont.) • Pode inspecionar uploads (anti-vírus); • Alterar a resposta (Append/Prepend/ Replace); • Ataques podem ser bloqueados, redirecionados, logados etc; • Dados persistentes usados entre requisições diferentes: • IP; • Sessão; • Username; • Resource; • Global; OWASP
  • 17. Características recentes • Metadado para regras: ver, maturity, accuracy; • Sanitização de SSN, CC, CPF -> evitar vazamento; • Desativação de compressão com o backend; • SecEncryption*: cria um token criptografado de href/frame src/iframe scr/form action; (2.7RC) OWASP
  • 18. Implantando o ModSecurity  Modo Embutido (local);  Baseado em rede (proxy reverso); OWASP
  • 19. Implantando o ModSecurity: Modo Embutido (Local) • Apache (IIS e Nginx a caminho); • Instalado no próprio servidor web; • Sem mudança na topologia de rede; • Escalabilidade herdada do servidor web; • Algum impacto em performance pode ocorrer; • Gerencia de segurança e do servidor web compartilhada; OWASP
  • 20. Implantando o ModSecurity: Baseado em rede (proxy reverso); • Apache como Proxy Reverso (breve Nginx); • 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; • Alta-disponibilidade e/ou escalabilidade própria; • Separa o gerenciamento de segurança do gerenciamento do servidor web; OWASP
  • 21. ModSecurity: Modelos de segurança • Modelo Positivo • Modelo Negativo • Modelo Híbrido OWASP
  • 22. Modelo Positivo • As regras definem o que pode ser requisitado e respondido; • As regras precisam ser definidas para cada aplicação, para cada URI ou conjunto de URI’s; • Alterações na aplicação precisam refletir na política do WAF(!); • Quanto mais complexa a aplicação, mas complexo será definir a política • Campos muito abrangentes (livres) terão uma política frágil; • As demais requisições são bloqueadas; • Ferramentas: Remo e mod_profiler (abandonadas) OWASP
  • 23. Modelo Negativo – Conjuntos genérico de regras, ex. XSS, SQL Injection, fora dos padrões etc; – Exceções precisam ser tratadas pontualmente; – As demais requisições são permitidas; – Atualizações nas regras precisam ser novamente validadas no tráfego real; OWASP
  • 24. Modelo Híbrido • Usa o definido no modelo positivo; ... se passar... • Aplica as regras negativas para bloquear ataques genéricos; OWASP
  • 25. 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; OWASP
  • 26. ModSecurity Core Rule Set (CRS) • 2319 regras (08/2012); • Regras próprias; • Conversão de outras assinaturas: PHPIDS, Emerging Threats, • Testes com tráfego real; • Detecção genérica de ataques: – Melhor performance; – Menos updates; • Plug and play: – Ok, leia o README primeiro...  – Ajustes poderão ser necessários; OWASP
  • 27. ModSecurity Core Rule Set (CRS) Modo de Operação – Self-Contained – Caso ocorra o match de uma requisição com uma regra a ação de regra é executada; – Collaborative Detection – A cada match de regra um score é incrementado – Pontuação de acordo com a criticidade; – Pontuação específica para tipos de ataque; – Ao final da avaliação das regras, é verificada a pontuação, podendo: permitir ou bloquear; • Maior segurança no bloqueio; OWASP
  • 28. 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: – Mitigação de Slow DoS; – XSS, SQLi, Buffer Overflow, etc; – Detecção de Trojans e Backdoors; • Outras: – Detecção de erros; – Proteção de XML; OWASP
  • 29. Como o Modsecurity atua • Fases de Processamento 1.Request headers; 2.Request body; 3.Response headers; 4.Response body; 5.Logging; OWASP
  • 31. Fases de Processamento 1. Request headers; 2. /teste2.php?%3Cscript%3Ealert(%22xss%22)%3C/script%3E GET Request body; HTTP/1.0 3. Response headers; Host: waf-fle.org Connection: close 4. Response body; User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.1 5. Logging; Chrome/21.0.1180.60 Safari/537.1 (KHTML, like Gecko) Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/* Accept-Encoding: gzip,deflate,sdch Accept-Language: pt-BR,pt;q=0.8,en-US;q=0.6,en;q=0.4 Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3 Cookie: PHPSESSIONID=JFNDECOIPLMDODKEDBAFPC 1.REQUEST_COOKIES 1.QUERY_STRING 2.REQUEST_FILENAME 2.REQUEST_PROTOCOL 3.REQUEST_HEADERS 3.REQUEST_METHOD OWASP
  • 32. Fases de Processamento 2. Request body (POST, PUT); count=1&req0_type=i&req0_time=754341' OR 'x'='x • SecRequestBodyAccess ->On; • application/x-www-form-urlencoded – Dados de formulários • multipart/form-data – Ttransferência de arquivos • text/xml – Dados em XML 1.REQUEST_BODY 2.ARGS (ARGS_POST, ARGS_COMBINED_SIZE) 3.FILES_TMPNAMES (@inspectFile) OWASP
  • 33. Fases de Processamento 3. Response headers; HTTP/1.1 403 Forbidden Accept-Ranges: bytes Connection: close Content-Type: text/html; charset=iso-8859-1 text/html Content-Language: pt-br Expires: Wed, 22 Aug 2012 23:19:52 GMT 1.RESPONSE_HEADERS 2.RESPONSE_STATUS 3.RESPONSE_CONTENT_LENGTH 4.RESPONSE_CONTENT_TYPE OWASP
  • 34. 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 2.rsub OWASP
  • 35. Fases de Processamento 5. Logging Message: Pattern match "< ?scriptb" at ARGS_NAMES:<script>alert("xss")</script>. [file "/etc/mod_security/modsecurity_crs_41_xss_attacks.conf"] [id "958051"] [rev "2.1.1"] [msg "Cross-site Scripting (XSS) Attack"] [data "<script"] [severity "CRITICAL"] [tag "WEB_ATTACK/XSS"] [tag "WASCTC/WASC-8"] [tag "WASCTC/WASC-22"] [tag "OWASP_TOP_10/A2"] [tag "OWASP_AppSensor/IE1"] [tag "PCI/6.5.1"] Message: Warning. Operator GE matched 19 at TX:inbound_anomaly_score. [file "/etc/mod_security/modsecurity_crs_60_correlation.conf"] [msg "Inbound Anomaly Score Exceeded (Total Inbound Score: 48, SQLi=, XSS=48): IE XSS Filters - Attack XSS=48 Detected"] Action: Intercepted (phase 2) ... Producer: ModSecurity for Apache/2.6.2 ...; core ruleset/2.1.1. Server: Apache OWASP
  • 36. Logs • Logs detalhados dos eventos; • Muito log se... • Muitas aplicações • Múltiplos servidores (1,2,4 … 1.000 ...) • DoS • Robôs • Falsos positivos • Opções para visualização dos logs • Grep • Splunk for modSecurity • WAF-FLE • SIEM’s • AuditConsole OWASP
  • 37. WAF∙FLE • Console centralizadora de logs para modsecurity • http://waf-fle.org; • Disponível na Versão 0.5 -> Breve 0.6 • Suporta regras nos modos “Self-Containend” e “Collaborative Detection”; • Recebe eventos em tempo real ou em batch, com mlogc • mlog2waffle na versão 0.6 • Sem limite de sensores • PHP e Mysql DB • Open Source: GPL v2 OWASP
  • 38. WAF∙FLE • Dashboard • Eventos ao longo do dia • Top Sources • Top Sensors • Top Severity • Top Rules • Top Targets • Status http • Top countries (0.6) • Top ASN’s (0.6) • Path (0.6) OWASP
  • 39. WAF∙FLE • Filtros Drill-Down • Cada campo deve ser uma pesquisa • Invertidos (not) • A partir do dashboard (atualizando o dashboard, 0.6); • Por faixa de rede • Por score • Por regra • Path • Hostname • etc OWASP
  • 40. Falso positivos • Regras que são disparadas indevidamente, o evento é identificado como um ataque; • Podem ser muito ruidosos no início de uma implantação; • Devem ser analisados, e as regras ajustadas para eliminá-los; OWASP
  • 41. Ajuste fino das regras • Desabilitar regras; SecRuleRemoveById 950009 SecRuleRemoveById 950009 • Desabilitar regras para <Location...> específicos <Location /path/to/foo.php> <Location /path/to/foo.php> SecRuleRemoveById 950009 SecRuleRemoveById 950009 </Location> </Location> • Ajustar partes de uma regra: – Cookies; - Headers; – POST; - Response Body; OWASP
  • 42. Ajuste fino das regras • Alterando as regras pelo ID SecRuleUpdateTargetById 981260 !REQUEST_COOKIES:UserPref SecRuleUpdateTargetById 981260 !REQUEST_COOKIES:UserPref SecRule REQUEST_URI “@streq /mail/” “phase:1,t:none, SecRule REQUEST_URI “@streq /mail/” “phase:1,t:none, nolog,pass,ctl:ruleUpdateTargetById=950901; nolog,pass,ctl:ruleUpdateTargetById=950901; !REQUEST_COOKIES:/^UserPref/” !REQUEST_COOKIES:/^UserPref/” • Alterar/Corrigir a aplicação; OWASP
  • 43. Performance • Inspecionar as respostas pode afetar a performance (SecResponseBodyAccess); • Inspecione somente as requisições relevantes (ex. conteúdo dinâmico, html, xml, json); • Não inspecione conteúdo estático; • A quantidade de regras influencia a performance: • Desative regras desnecessárias; • Habilite o mod_cache; • Coloque um cache na frente (Nginx/Varnish); OWASP
  • 44. Customização • Crie suas próprias regras; • Modifique as regras existentes; • Intercepte e customize as páginas de erro; • Use a criatividade; OWASP
  • 45. Cuidados e fatores de sucesso na implantação do ModSecurity • Iniciar o uso no modo de monitoração: SecRuleEngine DetectionOnly SecRuleEngine DetectionOnly • Ativar o bloqueio aplicação a aplicação; • Tamanho das respostas; SecResponseBodyLimit SecResponseBodyLimit • Deixar passar o que exceder; SecResponseBodyLimitAction ==ProcessPartial SecResponseBodyLimitAction ProcessPartial • Elimine os falso positivos, eles podem ser muito intensivos em: – I/O – Espaço em disco; OWASP
  • 46. 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, refine as regras; • Dedique tempo para ajustar seu WAF; • Dê um passo de cada vez; • Acrescente mais uma camada de segurança à sua aplicação; OWASP
  • 47. Demonstração OWASP
  • 48. Perguntas OWASP