terça-feira, 11 de março de 2008

Estratégia de Segurança que Funciona para a Web

Fiz a tradução do interessante post do Jeremiah Grossman, no qual ele dá uma visão geral da segurança em aplicações web e as alterativas corrente para lidar com esse problema.

Dentro de uma empresa vive um profissional de segurança de TI responsável pela segurança de sites web. Ele precisa levar seu trabalho muito à sério, sob a pena de receber uma ligação tarde da noite de seu chefe, caso o site de sua empresa seja atacado. Uma boa parte do trabalho requer educação dos desenvolvedores acerca da importância de codificação segura e reporte aos proprietários do negócio sobre os riscos relativos à segurança Web. Ele precisa fazer isso, pois nenhuma quantidade de patching ou firewalling conseguirá frear um atacante com um browser. Mesmo que use tudo que esteja em seu poder, ainda existe uma total falta de controle na proteção dos sites sob sua responsabilidade. Ele não pode corrigir as vulnerabilidades em website(s) quando elas são identificadas sem o envolvimento do desenvolvedor.

Essa situação lhe soa familiar? Eu ouço essa frustração à todo momento. O problema é que quando uma vulnerabilidade é identificada, quer seja pelo pen-tester, desenvolvedor, outsider ou quem quer que seja essas são as sofridas opções:

  1. Parar o site.
  2. Reverter para uma versão anterior do site/código (caso seja segura).
  3. Continuar a funcionar apesar da exposição.

Nada é melhor que não ter um problema, mas vulnerabilidades aparecerão independente do ciclo de desenvolvimento de software. A opção #1 é tipicamente reservada para ocasiões onde um incidente tenha ocorrido e a opção 2# quando uma atualização do produto não possa ser devolvida para o desenvolvimento, que futuramente venha a ser sobrescrita. Até agora a história mostra que a grande maioria escolhe a opção #3 e assume o risco, ao invés de parar o negócio com atualizações.

É claro que são necessárias mais opções – algo que permita a mitigação de vulnerabilidades sem provocar impacto na operação do negócio.

Isto é importante, pois 9 entre 10 (ou mais) sites web possuem vulnerabilidades como resultado de serem produzidos por aqueles que não sabiam ou experimentaram a severidade dos ataques de hoje. Adicionalmente, eu poderia dizer que a maioria dos sites de comércio eletrônico populares foram desenvolvidos ou antes do descobrimento de vulnerabilidades prevalentes como o XSS, injeção SQL, CSRF, etc. ou antes deles se tornarem conhecidos. Consequentemente, estamos vulneráveis por 15 anos de códigos inseguro de sites em circulação e é pouco provável que esse código seja reescrito somente por “razões de segurança”. Ao longo da próxima década sua substituição acontecerá naturalmente de forma a atender os objetivos de negócio enquanto se aproveitando das tecnologias emergentes e frameworks mais seguros.

O que significa que quando você realiza uma análise honesta acerca da segurança do website, você terá duas estratégias de segurança possíveis:

  1. Segurança ao longo do SDLC (ciclo de vida de desenvolvimento de software)
  2. Avaliação de vulnerabilidade + WAF (Firewall de Aplicação Web)

A estratégia #1 se aplica mais à sites a serem construídos ou que estejam em fase de redefinição. Um programa de segurança Web combinando patrocínio executivo, frameworks modernos de desenvolvimento, treinamento de conscientização e segurança considerada no design e QA (garantia de qualidade) funciona. Por outro lado, esta estratégia é sempre difícil e cara para se implementar em sites existentes onde nenhuma atividade semelhante foi realizada anteriormente. Mesmo depois das vulnerabilidades identificadas é consome-se tempo a alocação de pessoal, QA / testes de regressão da correção e agendamento de versões de produção. Independente da maturidade do SDLC, isto demanda pelo menos dias, em alguns casos meses e mesmo meses para as falhas serem corrigidas. Este é o cenário mais comum hoje. O que tornará a conformidade com o PCI 6.6 (Payment Card Industry) um grande desafio, quando ela entrar em vigor.

Está é a razão pela qual a estratégia #2 é mais apropriada para websites existentes. A integração tecnológica demandada pela avaliação de vulnerabilidades é imediatamente importada para um WAF, criando uma “atualização virtual”. A integração fecha o ciclo entre identificação e mitigação de vulnerabilidade habilitando a oportunidade de endereçar as causa raízes assim que o tempo e o orçamento permitir. O desafio aqui é caso a fonte de dados seja imprecisa, de forma que a atualização virtual possa causar o WAF rejeitar trafego válido, permitir tráfego malicioso ou interromper inteiramente. Com dados verificados, a empresa é capaz de realizar por completo seu investimento de avaliação de vulnerabilidade em tempo real, confiando no modo de bloqueio do WAF e fornecendo aos profissionais de TI o controle até agora ausente. E isto é relativo ao tempo também!

Caso essa solução lhe soar familiar, pode ser pelo fato dessa idéia ter sido usado no passado, nunca em segurança de aplicações web. Kavado tentou na era 2002-2003, em 2003-2004 muitos outros fornecedores tentaram usar o AVDL e estou certo que tiveram outros, mas ultimamente todas as tentativas se comprovaram falíveis, devido às razões mencionadas anteriormente. Só recentemente que a tecnologia de scanneamento de vulnerabilidades e WAP está se materializando e decisões de negócio necessitam ser realizadas, possuir uma variedade de opções disponíveis é algo muito muito bom.


quarta-feira, 13 de fevereiro de 2008

A pescaria já não é mais a mesma de antigamente

Pescaria é uma tradição no Brasil. Quem nunca participou, certamente tem algum parente, amigo, vizinho que já foi e não vê a hora de repetir a experiência. A autêntica pescaria brasileira sugere s seguinte combinação: uma turma de amigos, sendo pelo menos um violeiro, muita bebida (vale qualquer tipo, mas a cerveja e a cachaça são fundamentais), a tralha de pesca (barco, vara, etc.) e um maço de dinheiro para, na falta da "sorte", não chegar em casa de mão abanando.

Apesar de ser esta a mais famosa para nós brasileiros, é outra pescaria que tem ganhado destaque na área de segurança mundo afora. Essa pescaria apesar de ser análoga à tradicional, não preserva seus elementos fundamentais. Aquele clima amistoso de diversão e confraternização já era! Até a bebida foi abandonada! O rio agora nem água tem mais, o que se vê é bit. O peixe agora corresponde à informação sigilosa espalhada nesse rio de bit, que vira dinheiro tão logo o "pescador" resolva apropriar-se de recuros financeiros espalhados pelos bancos que usam essa via, a partir do "peixe".

E nessa nova pescaria, referida amplamente como fishing, o Brasil vem recebendo internacionalmente mais reconhecimento que na tradicional! Duvida? Confira aqui.

quarta-feira, 6 de fevereiro de 2008

SecBuemba! Nova técnica de medir qualidade de código revisado

Acaba de ser lançada uma nova técnica de medição da qualidade de código revisado, cuja efetividade nunca havia sido alcançada. Confira em detalhes a aplicação da WFT aqui.

terça-feira, 5 de fevereiro de 2008

A contribuição do Fuzzing para o Software Seguro

Já foi mencionado aqui técnicas para localizar vulnerabilidades, com uma rápida menção à técnica conhecida como Fuzzing. Tudo bem que o objetivo não era explicá-la em detalhes, mas considerar várias delas. Mas pelo papel determinante que vem ocupando no chão de fábrica do desenvolvimento de código seguro, ela merece mais destaque. Com essa mesma opinião, a revista eletrônica DarkReading nos fez o favor de publicar recentemente um artigo com detalhes sobre a técnica, com comparação entre ferramentas, além de apontar para outras fontes de pesquisa, como o blog Scott Lambert, do Microsoft’s Security Engineering Tools Team, e o livro que será lançado em maio "Fuzzing for Software Security: Robustness Testing for Quality Assurance and Vulnerability".
Para os mais anciosos, já existe um livro sobre o assunto, chamado
"Fuzzing: Brute Force Vulnerability Discovery".

quinta-feira, 31 de janeiro de 2008

Acesso grátis aos livros da OWASP

A OWASP está disponibilizando alguns de seus livros para download sem custo (de graça). Duvida? Acesse aqui e aproveite. Para aqueles que resistem ao ebook, podem adquirir as versões impressas por um valor simbólico, que varia de 5 a 18 dólares.

quinta-feira, 10 de janeiro de 2008

Top 10 Vulnerabilities traduzido para o português

Com o intuito de facilitar o acesso à documentação sobre segurança no desenvolvimento fizemos a tradução do documento conhecido como Top 10 Vulnerabilities da OWASP. Ele concentra informações sobre as dez vulnerabilidades mais relevantes para as aplicações web, bem como alternativas combatê-las.

Aproveitem!

quinta-feira, 18 de outubro de 2007

Lições aprendidas em segurança pela Microsoft

A revista MSDS Magazine de novembro 2007 traz um artigo elaborado pelo Michael Howard, onde são compartilhadas 10 lições aprendidas pela Microsoft ao longo dos cinco anos de investimento em desenvolvimento de código seguro. Vale a pena conferir!

Lessons Learned from Five Years of Building More Secure Software