Mostrando postagens com marcador OWASP. Mostrar todas as postagens
Mostrando postagens com marcador OWASP. Mostrar todas as postagens

terça-feira, 2 de outubro de 2012

Common Criteria como Fonte de Conteúdo para Logging


O Commom Criteria (CC) ou ISO 15408 continua sendo a principal referencia para certificação de segurança de sistemas. Eu particularmente não penso que essa referência auxilie muito quando se trata de segurança de aplicações. 

Ouso dizer que o OWASP Top 10 sozinho fez e faz muito mais diferença para comunidade de desenvolvimento de software que deseja mudar a realidade de suas aplicações em termos de segurança. Se considerarmos outros ativos da OWASP como os cheat sheets, ASVS, Test Guide a disputa passa a ser covardia. Penso que o CC esteja mais alinhado com outro modelo o SSE-CMM, que se tornou um ilustre desconhecido para a comunidade de segurança em SDLC. 

Mas mesmo que no todo o CC se revele inapropriado para appsec, seus controles continuam sendo muito pertinentes e podem inspirar em muito a discussão sobre oportunidades de melhoria de segurança. Para ilustrar essa minha impressão, resolvi mapear eventos que o CC recomenda que sejam monitorados pelo serviço de logging, que compartilho a seguir:

  • Ações empreendidas pela aplicação em decorrência de violações de segurança. 
  • Ativação ou desativação de mecanismos de análise de auditoria. A aplicação pode ser instrumentalizada com mecanismo que analisem ostensivamente seu comportamento, na tentativa de reconhecer ações suspeitas. Tais mecanismos podem variar de um conjunto de regras fixas de eventos suspeitos até heurísticas avançadas que revele ações suspeitas pela correção de múltiplos eventos associados a cenários de ataque. 
  • Os eventos devem estar relacionados a identidade do usuário, para que a responsabilização pela execução do evento seja garantida.
  • Ações empreendidas pela aplicação quando ao exceder os limites relacionados ao armazenamento de registros (ex. rotação de arquivo por data, dimensão do arquivo).
  • Ações empreendidas pela aplicação em decorrência de falha do receptor dos registros de logging.
  • Requisições bem sucedidas de operação em objetos sensíveis da aplicação.
  • Todas as requisições de operação em objetos sensíveis da aplicação.
  • Os atributos de segurança usados para verificação do direito de acesso a objetos sensíveis.
  • Verificações bem sucedidas de autenticidade de informação consumida pela aplicação.
  • Todas as verificações de autenticidade de informação consumida pela aplicação.
  • Execução com sucesso de rotinas de exportação de dados da aplicação.
  • Todos os tipos de execução de rotinas de exportação de dados da aplicação.
  • Superação do limite estabelecido pelas tentativas de autenticação, a ação decorrente (ex.  bloqueio da senha), e restauração do estado normal (ex. desbloqueio da senha).
  • Rejeição de segredo fornecido a aplicação (ex. senha, frase).
  • Rejeição e aceite de segredo fornecido a aplicação (ex. senha, frase).
  • Mudança nas métricas de qualidade de segredos.
  • Uso mal sucedido de determinado mecanismo de autenticação
  • Todos os usos do mecanismo de autenticação
  • Tentativa mal sucedida de associar os atributos de segurança de determinada identidade ao respectivo sujeito (ex. criação do sujeito).
  • Tentativa mal ou bem sucedida de associar os atributos de segurança de determinada identidade ao respectivo sujeito (ex. sucesso ou falha na criação do sujeito).
  • Uso de mecanismo de anonimização de sessão.
  • Rejeição de nova sessão ou suspensão de sessão ativa em decorrência da superação do número máximo de sessões concorrentes.
  • Suspensão da sessão do usuário em decorrência de período de inatividade superior ao permitido.
  • Início de sessão do usuário.

Como pode ser observado, o CC sugere eventos muito interessantes a serem monitorados pelo serviço de logging. Considerando que uma das atividades mais complexas do projeto de logging é a definição dos eventos que ameaçam a aplicação, e por consequência serão monitorados pelo serviço, essa lista não pode ser ignorada. Ainda, a sua simples existência revela o potencial do modelo CC, como fonte de pesquisa para controles de segurança.

terça-feira, 24 de julho de 2012

OWASP Brasília


Há quase 1 ano, registrei neste post as minhas impressões sobre a realidade da segurança de aplicações na perspectiva da conscientização do desenvolvedor no mercado de Brasília. Na ocasião, em mais de 180 desenvolvedores treinados em segurança de software, NENHUM havia ouvido falar na OWASP, e alguns tinham visto o termo XSS em alguma manchete de TI.

Na oportunidade, joguei luz sobre algumas questões inerentes a liderança de um Capítulo da OWASP que poderiam não estar na ordem do dia de algum líder.

Infelizmente neste ano que se passou, nada mudou na condução do Capítulo Brasília da OWASP, apesar de ter havido nesse ínterim a mudança da liderança. Muito provavelmente, os desenvolvedores continuam ignorando a existência da OWASP, bem como das técnicas que poderiam impor mais dificuldade aos atacantes aí fora.

Convictos dessa realidade adversa e dos desafios para liderar um Capítulo da OWASP e disseminar a segurança de aplicação, resolvemos (@Klaubert, @Br3n0S1lv4, @DiogoRispoli e eu) reativar o Capítulo Brasília.

Compartilho com vocês essa novidade e peço a sua ajuda para disseminar a segurança de aplicação na capital federal. 

Como você pode ajudar? Sua organização possui equipe de desenvolvimento de software? Organize um evento interno ou externo que trate do tema segurança de aplicação. A OWASP Brasília levará o palestrante. Segue uma lista de palestras pré-definidas para facilitar.

### Palestras ###

OWASP Top 10
O OWASP Top 10 é um projeto desenvolvido pela OWASP com o objetivo de disseminar o conhecimento sobre os 10 maiores riscos de segurança que as aplicações web estão suscetíveis. Nesta palestra apresentaremos a metodologia usada para classificar tais riscos, os detalhes relativos aos 10 maiores riscos e suas vulnerabilidades e os respectivos controles para dificultar a sua exploração.

Codificação Defensiva
Seria impossível ensinar para um motorista todas as possibilidades de acidentes que ele poderia vivenciar antes dele assumir o volante pela primeira vez, dado a infinita combinação de cenários que poderiam decorrer em um sinistro. Apesar disso, uma abordagem bastante usada é a direção defensiva, pela qual o motorista aprenda técnicas curinga que poderiam ser aplicadas a um conjunto de situações de risco. A codificação defensiva, tema desta palestra, se baseia no mesmo princípio, preparando o desenvolvedor para instrumentar seu código para que a aplicação esteja preparada para se defender de diversos riscos, mesmo que o desenvolvedor não tenha o conhecimento detalhado sobre cada um deles.

OpenSAMM
Como nenhuma organização tem recursos ilimitados para investir em segurança de aplicações, necessariamente ela necessitará priorizar as ações que lhe deem o maior retorno. Esta palestra apresenta o modelo OpenSAMM, cujo objetivo é auxiliar as organizações a estruturar um programa de melhoria contínua do SDLC (ciclo de vida de desenvolvimento de software) para incorporar práticas de segurança mais apropriadas, considerando as suas particularidades.

ModSecurity: Firewall OpenSource para Aplicações Web (WAF)
Com a crescente complexidade e importância das aplicações web, prazos curtos para desenvolvimento, novas técnicas de ataque, regulações, busca por melhores práticas e a falta de atenção e/ou foco do desenvolvedor com a segurança, torna-se necessário adicionar uma nova camada de segurança para aplicações web, os "firewall de aplicações web" ou WAF's. Esta apresentação introduzirá os conceitos de WAF, e em especial o ModSecurity, Firewall OpenSource para Aplicações Web, uma poderosa ferramenta desenhada para entender e proteger as aplicações web nos seus mais variados tipos. Serão apresentadas suas funcionalidades, bem como ele pode ajudar no dia a dia de um site web, seja na monitoração, proteção ou mesmo na depuração das aplicações web. Também será apresentada o WAF-FLE, console open source para visualização de eventos para o ModSecurity

Usando protocol Hmac-Based para reduzir superfície de ataque.
Proteger uma aplicação web é uma tarefa que envolve uma estratégia de defesa em profundidade. Aplicações web possuem características como sua grande superfície de ataque, que favorecem os atacantes. Reduzir essa superfície não é uma tarefa fácil, porém importante para aumentar o nível de segurança desse tipo de aplicação. Nesta apresentação será descrito um protocolo baseado em um algoritmo criptográfico chamado HMAC que pode ser utilizado para proteger e reduzir significativamente a superfície de ataque de aplicações web, sem a necessidade de modificá-las. Durante a apresentação serão realizadas demonstrações de uma implementação do palestrante, open source e publicamente disponível.

quarta-feira, 17 de agosto de 2011

A OWASP, você e a segurança de software

Na última semana concluímos uma maratona de treinamento introdutório em segurança de software. Foram 9 turmas, alcançando 183 profissionais, envolvendo programadores, analistas de teste, analista de infraestrutura, arquitetos e outros. A experiência foi parte de um programa de segurança de software orientado pelas práticas do Build Security In Maturity Model (BSIMM). Neste caso, atendendo as seguintes atividades da prática Treinamento:
  • T1.1 - Forneça treinamento de conscientização.
  • T2.2 - Crie/use material específico da história da empresa.
  • T3.2 - Forneça treinamento para fornecedores e profissionais terceirizados.
Ao longo do treinamento procurei registrar o estado da turma acerca da segurança de software observando as seguintes questões:
  • Quem já vivenciou algum treinamento em segurança de software? Ressaltando que treinamento em segurança da informação, apesar de muito oportuno, não é a mesma coisa.
  • Quem conhecia Injeção de SQL?
  • Quem conhecia Cross Site Scripting (XSS)?
  • Quem conhecia a OWASP?
Dos 183 alunos, 14(7,65%) já haviam participado de treinamento em segurança de software, 32 (17,5%) conheciam Injeção de SQL, 1(0,5%) conhecia XSS e nenhum aluno conhecia o termo OWASP.

Os dados em si, não são muito reveladores, uma vez que é amplamente difundida a defasagem dos profissionais do mercado em segurança de software (aqui). Mesmo tendo isso em mente, surpreende o fato de nenhuma pessoa ter sequer ouvido falar no termo OWASP.

É preocupante, pois a OWASP está ai fora há quase 10 anos e isso (desconhecimento) pode impedir que ela alcance o seu propósito: “Be the thriving global community that drives visibility and evolution in the safety and security of the world’s software.” (aqui).

Talvez seja esse o principal desafio para o próximo board (aqui) da OWASP. Eu, particularmente, tenho plena convicção que os desenvolvedores podem promover mudanças sensíveis na segurança do seu software, a partir de simples sensibilização e instrução de técnicas de defesa. Não há, no meu entendimento, outro movimento/canal no momento, com maior concentração e organização de conteúdo sobre a segurança de software. O maior problema é que a mensagem de segurança não chega até o desenvolvedor.

Uma vez que o problema está exposto, o que podemos fazer para mudar esse cenário? Seguem duas sugestões, pra começar:
  • Sustente - Você que consome o conteúdo OWASP, qual foi a última vez que você divulgou o projeto? Por que não falar para o desenvolvedor que se encontra do seu lado, ou aquele colega de universidade sobre a segurança de software e a OWASP para sua pesquisa? Estabeleça sua meta de disseminação. Obviamente, você pode contribuir, produzir conteúdo, traduzir, etc.
  • Fiscalize - Você que está associado a algum capítulo da OWASP, conhece o board? Você sabia que a OWASP recomenda fortemente que haja pelo menos dois líderes para que as atividades sejam distribuídas (aqui)? Qual foi o último evento promovido pelo seu capítulo? O board do seu capítulo está comprometido com a OWASP ou somente com a sua autopromoção? Qual a disponibilidade do board para as atividades do capítulo? Seu capítulo é considerado ativo (>5 eventos ano)? Cobre!

E você, o que tem a sugerir? Escreva ai embaixo!