Teste de invasão: Exploração de falhas – Parte 2

Os ataques a aplicações web estão se tornando mais elaborados e cada vez mais fazendo uso de métodos automatizados de exploração de vulnerabilidades. Segundo o OWASP, a principal causa dessas vulnerabilidades está ainda na etapa de desenvolvimento, como falta de validação correta dos campos de entrada de aplicações web.

Neste post, vamos discutir as 10 principais vulnerabilidades listadas no OWASP top ten 2017. Confira!

Considerando este cenário, o OWASP (Open Web Application Security Project), uma organização internacional que tem como objetivo promover pesquisas para auxiliar na melhoria da segurança das aplicações web, disponibiliza o projeto Top Ten, no qual publica uma lista considerando as dez principais vulnerabilidades web em todo o mundo. Nesta lista, é possível encontrar a descrição de cada vulnerabilidade e sugestões de como evitá-la.

A seguir, serão discutidas cada uma dessas vulnerabilidades, com base na versão publicada oficialmente em 2017:

exploração de falhas top ten owasp

A1 – Injection

As falhas de injeção de código ocorrem quando dados são fornecidos pelo atacante para enganar o interpretador, fazendo com que este execute os comandos inseridos. São frequentemente encontrados em SQL, LDAP, XPath, ou consultas NoSQL; Comandos do sistema operacional; Analisadores XML, SMTP, cabeçalhos, argumentos de programa, etc. Considerando a lista das 10 principais vulnerabilidades de OWASP, esta vulnerabilidade foi classificada com o nível fácil de exploração, com base no fato de que o atacante realiza o ataque com o envio de texto simples, explorando a sintaxe do interpretador.

Já o impacto causado é considerado de nível grave, visto que sua exploração pode ter diversas consequências, como a perda ou corrupção de dados, negação de acesso, etc. Segundo o OWASP, existem formas para evitar essa vulnerabilidade: a primeira opção sugerida é utilizar uma API segura que evite a utilização de intérprete e a validação de entrada de campos.

A2 – Broken Authentication

As falhas de quebra de autenticação e gerenciamento de sessão ocorrem quando atacantes conseguem roubar contas de outros usuários, conseguindo acesso sem ter, às vezes, que descobrir as credenciais de usuário. Isso ocorre quando as credenciais de acesso e tokens de sessão não são protegidos corretamente. Essa falha é considerada de nível médio com relação à possibilidade de exploração, no qual os atacantes utilizam vazamentos ou falhas na autenticação ou no gerenciamento de sessão.

Com isso, o impacto dessa vulnerabilidade é considerado como grave, visto que a exploração dessas falhas pode permitir que, através de contas de usuários, os atacantes consigam acesso privilegiado e a possibilidade de fazer tudo o que o usuário poderia.

A3 – Sensitive Data Exposure

Esta falha está relacionada ao fato de muitas aplicações permitirem que dados sensíveis sejam acessados sem autorização. A exposição de dados sensíveis pode ocorrer, por exemplo, quando dados não criptografados são trafegados ou armazenados em servidores, bem como quando a utilização de criptografia é realizada, mas com a geração fraca de chaves.

Considerando tanto ameaças internas quanto externas, esta vulnerabilidade é considerada de difícil exploração, sendo necessário a quebra de criptografia diretamente. O impacto que esta vulnerabilidade pode causar é considerado grave, pois compromete todos os dados sensíveis com os quais a aplicação lida.

Considerando este cenário, é recomendado certificar-se de que todos os dados considerados sensíveis estão criptografados, com a utilização de algoritmos padrão e chaves fortes. É recomendado também realizar uma análise para verificar quais dados sensíveis precisam realmente ser armazenados.

A4 – XML External Entities (XXE)

Muitos processadores XML mais antigos ou mal configurados avaliam referências de entidades externas dentro do XML documentos. Entidades externas podem ser usadas para divulgar arquivos internos usando o manipulador de URI de arquivo, compartilhamentos de arquivos internos, varredura de porta interna, execução remota de código e ataques de negação de serviço.

A5 – Broken Access Control

Foi um merge de: Insecure Direct Object ReferencesMissing Function Level Access Control da versão de 2013. Esta vulnerabilidade está ligada às restrições sobre o que os usuários autenticados podem fazer normalmente e que não estejam aplicadas corretamente. Os invasores podem explorar essas falhas para acessar funcionalidades e/ou dados não autorizados, como acesso a contas de outros usuários, visualizar arquivos confidenciais, modificar dados de outros usuários, alterar direitos de acesso, etc.

A6 – Security Misconfiguration

Esta vulnerabilidade está relacionada à má configuração de servidores web, considerando tanto atacantes externos como internos com o objetivo de disfarçar ações. Esta falha, segundo o OWASP, pode ser considerada como fácil para ser explorada, visto que o atacante busca acessar páginas não atualizadas, arquivos protegidos, etc, para conseguir acesso não autorizado no sistema.

Uma configuração incorreta de segurança pode ser detectada através de scanners automatizados, possibilitando a identificação de erros de configuração, uso de contas padrão, etc. Para evitar esse tipo de falha, o OWASP recomenda estabelecer um processo automatizado que permita que ambientes sejam criados de forma padronizada e mais rapidamente. Além disso, outra recomendação é manter um processo de implantação de atualizações e patches em tempo hábil.

A7 – Cross-Site Scripting (XSS)

As falhas de cross site scripting ocorrem quando a aplicação recebe informações inseridas pelo usuário e enviadas novamente ao navegador sem a realização de validação ou codificação do conteúdo. Para explorar esta vulnerabilidade, os atacantes executam scripts no navegador do usuário, permitindo que seja possível roubar sessões do usuário, introduzir worms, etc. Essa vulnerabilidade é considerada, com relação à possibilidade de ser explorada, de nível médio. Essa falha acontece quando uma aplicação inclui dados vindos dos usuários em uma página e enviados para o navegador sem serem validados.

Segundo o OWASP, existem dois tipos de falhas de cross site scripting: armazenados e refletida, sendo que podem ocorrer no servidor ou no cliente. A detecção dessa falha é realizada através de testes ou por análise de código. A vulnerabilidade cross site scripting é considerada de impacto médio, visto que os atacantes podem executar scripts no navegador da vítima para obter as sessões de usuários, sequestrar navegador, etc.

Para prevenir esse tipo de falha, é recomendado manter separados os dados não confiáveis dos confiáveis. No documento do OWASP, são realizadas algumas sugestões de como escapar corretamente todos os dados não confiáveis com base no contexto HTML no qual os dados serão inseridos, além de validação de entrada do lado do servidor quanto à quantidade de caracteres, padrões e regras de negócio.

A8 – Insecure Deserialization

A desserialização insegura geralmente leva à execução remota de código. Mesmo se as falhas de desserialização não resultarem na execução remota de código, eles podem ser usados para executar ataques, incluindo ataques de repetição, ataques de injeção e ataques de escalonamento de privilégios.

A9 – Using Components with Known Vulnerabilities

Existem diversos componentes disponíveis com código aberto que podem ser utilizados por desenvolvedores. Entretanto, é necessário estar atento às vulnerabilidades presentes neles. Esta vulnerabilidade é considerada de nível médio com relação à possibilidade de exploração, pois somente através de digitalização ou análise manual, o atacante consegue identificar uma falha que possa ser explorada, sendo mais difícil caso este componente que possui a falha seja utilizado mais internamente na aplicação.

Esse problema ocorre por conta de equipes de desenvolvimento que não conhecem os componentes que utilizam, considerando versões e dependências. Considerando este cenário, o OWASP (2013) considera o impacto causado por esta falha como moderado, visto que pode ocorrer comprometimento de dados.

Para evitar a existência desta vulnerabilidade, é recomendado não utilizar componentes que não tenham sido desenvolvidos por equipe de desenvolvimento internas — mas, quando for necessária a utilização de componentes de terceiros, é imprescindível realizar a análise de código e ter atenção às atualizações.

A10 – Insufficient Logging & Monitoring

Esta vulnerabilidade está relacionada a registro e monitoramento insuficientes, associados à integração ausente ou ineficaz de incidentes. Ela permite aos atacantes: atacar sistemas, manter a persistência, girar para mais sistemas e adulterar, extrair ou destruir dados. A maioria dos estudos sobre violações mostra como tempo para detectar uma violação 200 dias, normalmente detectados por partes externas em vez de processos internos ou monitoramento.

Neste post, discutimos sobre a lista das 10 vulnerabilidades do OWASP. Para mais detalhes sobre cada uma delas, clique aqui!

 

Referências: Testes de Invasão: Uma Introdução Prática ao Hacking – Georgia Weidman; Segredos do Hacker Ético – Marcos Flávio Assunção;Curso Fundamentos de Ethical Hacking: curso prático – Marcos Flávio Assunção; OWASP top ten

Sobre o(a) autor(a)

Samantha Morais Nunes
Samantha Morais Nunes

Formada em Ciência da Computação pela PUC Minas e pós-graduada em Segurança da Informação pela UNA. Iniciou a carreira na área de QA em 2011 como estagiária e hoje atua como analista de qualidade de software na Take. Participou com Letícia (QA), André (QA) e Rhamon (PO), do STWC 2014, conquistando o 4º lugar na etapa South America e o prêmio Most Useful Test Report. Fez parte da equipe de organização do Minas Testing Conference, um evento sobre qualidade de software que ocorre em Belo Horizonte e atualmente faz parte da equipe de organização dos meetups de Segurança da Informação 0x0d1a e Machine Learning BH.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Você pode usar as seguintes tags e atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

by Take ® 2015 | Todos os direitos reservados.linkedin