Atualização do OWASP TOP 10 – Conheça os 10 atuais e principais riscos de segurança em aplicações web

Screen Shot 2017-12-12 at 15.38.59

Owasp Top 10! Um padrão respeitado a mais de 10 anos e sempre atento às mudanças tecnológicas e comerciais da internet. As novidades da nova versão incluem riscos sobre Entidades Externas XML, Desserialização Insegura e Monitoração e registro ineficientes de Logs.

Também traz mais do que uma visão técnica e estatística das aplicações web. Ao incluir sugestões baseadas na experiência diária e na visão de longo prazo dos envolvidos, relacionando-as com questões sobre codificação, infraestrutura e monitoração do ambiente, a versão 2017 do Owasp Top 10 mostra que as características humanas não podem ser esquecidas por quem trabalha com segurança cibernética. Somos o imponderável da equação!

Essa versão, mesmo que indiretamente, fortalece os vínculos com outros padrões de mercado. Por exemplo, a boa gestão de um projeto, seja tradicional ou ágil, e a Gestão de Riscos para definição de prioridades. Infelizmente, conceitos básicos ainda ignorados por quem desenvolve e/ou administra aplicações web. Planejar, já pensando em como as vulnerabilidades podem ser exploradas pelo atacante, considerando os riscos, permite que as equipes de desenvolvimento e de testes simulem os ataques e reduzam a probabilidades de exploração das vulnerabilidades.

Entendido o contexto da mudança, vamos a ela, começando pelo quadro comparativo com a versão anterior. Posteriormente, apresento uma descrição do OWASP Top 10 – 2017.

Screen Shot 2017-12-12 at 15.49.16

Os itens A8 e A10 da versão 2013 foram excluídos. Isso não quer dizer que não existam mais. CSRF está com a prevenção em alta. Codifique e implante corretamente e, seu ambiente não apresentará esta vulnerabilidade. Porém, ela ainda existe nos ambientes atuais. Para não entrar na estatística de sites com esta vulnerabilidade, siga essas recomendações: OWASP CSRF

Redirecionamentos e Encaminhamentos Inválidos também passou para o grupo de “outras vulnerabilidades”. Assim como CSRF, ainda atinge uma porcentagem considerável de aplicações web, mas, em tendência de baixa, pois, a exploração de outras vulnerabilidades, como a nova A4 (XXE) surtem maior efeito e entregam mais informações (e possíveis lucros) aos atacantes.

OWASP TOP 10 2017

A1: Injeção – Ainda a campeã. Na prática, você pode perder a propriedade da aplicação web para o invasor. A invasão ocorre quando dados não confiáveis são enviados para um interpretador como parte de um comando ou query. Vale ressaltar que as técnicas de prevenção são conhecidas e divulgadas no site oficial OWASP.

A2: Falhas de Autenticação – Lá no curso básico de segurança da informação fomos apresentados ao “triplo A”. Vulnerabilidades no primeiro deles escancaram a porta do segundo para os criminosos virtuais. Não identificar cada acesso permite que atacantes comprometam senhas, chaves, e tokens de sessão ou, ainda, explorem a falha da implementação e assumam a identidade de outro usuário.

A3: Exposição de Dados Sensíveis – Cada empresa precisa classificar suas informações com base nas suas próprias necessidades de negócio e, os dados fornecidos através de aplicações web tendem a ter alto valor financeiro, pois, envolvem dados cadastrais e de pagamento. Dessa forma, dados sensíveis sem proteção, como o uso de criptografia em repouso ou em trânsito, podem ser comprometidos, prejudicando a empresa e os usuários da aplicação web.

A4: Entidades Externas XML – Envolve configuração fora das recomendações de mercado, utilização de softwares ultrapassados e codificação não atualizada. As entidades externas podem ser usadas para divulgar arquivos e compartilhamentos de arquivos internos, realizar varredura de portas internas, executar código remoto e realizar ataques de negação de serviço. O aparecimento desta vulnerabilidade alerta sobre o perigo de não atualizar as aplicações, algo que já deveria ser comum. Mais informações em:  OWASP Prevenção XXE

A5: Controle de Acesso Ineficiente – O conceito de gestão de acesso trata das concessões e restrições sobre o que os usuários autenticados são autorizados, ou não, a fazer. Também é um conceito básico de segurança da informação. As falhas nesse controle podem permitir, entre outras, a exploração das 4 (quatro) vulnerabilidades anteriores. A importância da gestão de acessos fica clara no fato de esta vulnerabilidade ser a combinação de 2 (duas) das 10 (dez) Top 10 2013: Referência Insegura (A4) e Falta de Controle de Acesso (A7).

A6: Má Configuração de Segurança – Desde 2006 ouço e lembro: nada de “next next finish”. Configurações padrão inseguras (às vezes de fábrica), configurações incompletas das aplicações e de seus componentes, armazenamento em nuvem aberta (economia “de baixa inteligência”), cabeçalhos HTTP mal configurados e mensagens de erro contendo informações confidenciais não possuem justificativa aceitável, pois, violam os 3 (três) pilares da SI diretamente.

A7: Cross-Site Scripting (XSS) – Outra velha conhecida que pode ser prevenida no projeto, durante a codificação. Ainda persiste em muitas aplicações apesar de ser sabido que permite (1) o “roubo” de credenciais e sessões e (2) a interação com o navegador do usuário pelo atacante, caso este tenha o conhecimento para isso. Ocorre sempre que uma aplicação recebe dados não confiáveis e os envia para o navegador sem que os tenha validado ou feito o escape necessário. Por padrão, vários campos disponíveis aos usuários podem permitir este ataque, se a prevenção for deixada de lado durante as fases de codificação e testes do projeto ou das mudanças em produção.

A8: Desserialização Insegura – A primeira das novidades desta lista é uma porta de entrada para a aplicação, facilitando a exploração das demais vulnerabilidades. Aplicações ou APIs serão vulneráveis se elas desserializarem objetos hostis ou alterados pelo atacante. Neste ataque o atacante modifica a lógica da aplicação ou consegue realizar a execução arbitrária de código remoto. O padrão de arquitetura seguro não aceita objetos serializados de fontes não-confiáveis ou usa serialização média para permitir somente dados primitivos. Um exemplo desta vulnerabilidade pode ser encontrado em: Anúncio Struts 05/09/2017 e Correção S2-052

A9: Usar Componentes com Vulnerabilidades Conhecidas – Esta é a melhor definição cibernética para a palavra preguiça que você encontrará. Na prática, ela ordena: se dê ao trabalho de fazer o mínimo esperado pelo teu salário. Utilizar aplicativos e APIs, que contenham componentes com vulnerabilidades conhecidas, na execução de um projeto prejudica as defesas ao permitir que a aplicação entre em produção suscetível a vários ataques simultâneos ao ambiente, incluindo os executados por “script kiddies”. Não utilize esses componentes. Pesquise e desenvolva sem vulnerabilidades conhecidas. Nos casos em que a vulnerabilidade é descoberta posteriormente, talvez até um “0-day”, utilize o processo de atualização de softwares ou tecnologias como “patch virtual”.

A10: Registro e Monitoração Ineficientes – Jamais existirá a aplicação web livre de erros e vulnerabilidades, pois, elas são produzidas por seres imperfeitos. Monitorar a aplicação, os acessos a ela e o ambiente que a hospeda permite que os ataques sejam detectados antes que causem impactos ao negócio. A ausência de reação rápida permite que os atacantes acessem os sistemas, permaneçam nos mesmos e executem movimentos laterais com a finalidade de modificar, extrair ou destruir dados da empresa. A vinculação da monitoração com o processo de gestão de incidentes pode reduzir os impactos causados por um ataque.

Conheça o BART: Gestão Centralizada de Vulnerabilidades

Conheça o Octopus SIEM

Apesar da lista OWASP ser Top 10, não esqueça que ela não é exaustiva. Outras vulnerabilidades ainda persistem e podem ser exploradas pelos atacantes.

Para um maior entendimento de cada uma das vulnerabilidades apresentadas, acesse: OWASP Top 10 – 2017

Estude este e os outros materiais OWASP. Invista no seu conhecimento e previna-se!

Mais informações em Atualização do OWASP TOP 10 – Técnicas e soluções para tratar as 10 principais vulnerabilidades em aplicações web