Introdução
Última atualização em: 30 de dezembro de 2024
Editar esta página no GitHubÚltima atualização em: 30 de dezembro de 2024
Editar esta página no GitHubContribuintes
Michał “czesiek” Czyżewski (https://czesiek.net)
Yana Ghahramanyan
Há muitas maneiras de os invasores tentarem atacar sites, incluindo:
A segurança de aplicativos web é um domínio profundo de conhecimento técnico com muitas áreas de especialização. Esta trilha de aprendizagem fornecerá a você uma compreensão geral das vulnerabilidades de aplicativos web e como funcionam algumas das mais comuns. Ele vai ajudar você a entender os tipos de vulnerabilidades que normalmente existem nos aplicativos web, os recursos que essas vulnerabilidades oferecem aos invasores e como, em geral, eliminar ou atenuar essas vulnerabilidades.
O que é um aplicativo web?
Os aplicativos web referem-se a uma categoria mais ampla de software que executa serviços dinâmicos disponíveis na web. Uma página da web é um tipo de aplicativo web, embora uma página HTML estática geralmente não seja considerada um aplicativo. Os aplicativos web geralmente envolvem algum tipo de processamento, armazenamento e recuperação de dados do lado do cliente e/ou do lado do servidor, com conteúdo dinâmico. Eles geralmente dependem de infraestrutura, como bancos de dados, servidores adicionais ou serviços em nuvem (incluindo ‘código sem servidor’). Plataformas CMS comuns, como WordPress ou Drupal, são aplicativos web. Muitas organizações utilizam diversos aplicativos para atender a funcionalidades internas ou externas, como um banco de dados de membros, uma ferramenta de gestão de relacionamento com clientes, um sistema de informações de saúde, um sistema de emissão de tickets, ferramentas operacionais internas, entre outros. Algumas organizações desenvolvem seus próprios aplicativos web personalizados, adequados às suas próprias finalidades. As principais plataformas de serviços da internet, como MailChimp, Slack, Canva, X etc. também são aplicativos web e sua segurança também afeta seus usuários. No entanto, essas grandes entidades têm suas próprias equipes de segurança e programas de recompensa por bugs que conduzem ou incentivam análises profissionais de segurança de aplicativos web para elas. Por outro lado, as organizações menores para as quais você pode estar trabalhando geralmente não têm os recursos para realizar análises de segurança de aplicativos web e você pode ser o primeiro a fazer isso.
O que são vulnerabilidades?
Há muitos tipos de falhas que podem aparecer em qualquer sistema complicado. Normalmente, pensamos nelas como bugs regulares em que o sistema permite que seus usuários façam menos do que o pretendido. Algo como “quando clico em ‘adicionar ao carrinho’, o site simplesmente mostra uma página de erro”. No entanto, algumas falhas permitem que os usuários façam mais do que o pretendido. Quando essas falhas afetam negativamente o sistema ou seus outros usuários, consideramos essas falhas como vulnerabilidades. Exemplos de vulnerabilidades incluem falhas que permitiriam que um usuário lesse ou modificasse os dados de outros usuários, assumisse o controle da infraestrutura subjacente de um site, negasse o uso de um sistema para outros usuários etc. Ao pensar em vulnerabilidades, é útil agrupá-las por tipo. Esta trilha de aprendizagem oferece uma visão geral das classes de vulnerabilidades comuns de aplicativos web e como um invasor pode usá-las para prejudicar um site ou seus usuários.
Os profissionais aprenderão os conceitos fundamentais de segurança de aplicativos web, com a base necessária para a pesquisa de outros tópicos sobre segurança de aplicativos web. Os profissionais serão capazes de compreender os principais conceitos de segurança de aplicativos web, incluindo:
Para completar essa trilha de aprendizagem, usaremos um site chamado DVWA (Damn Vulnerable Web App). O DVWA é um aplicativo web que é intencionalmente exposto a várias vulnerabilidades. Requer uma configuração mínima para ser usado e está disponível online para uma experiência de configuração zero.
Há várias maneiras de executar o DVWA. As melhores instruções atuais de instalação podem ser encontradas no repositório DVWA GitHub. Conforme destacado na seção Aviso dessa página, o DVWA não deve ser instalado de forma a expô-lo à internet aberta. As opções para executá-lo incluem:
sudo apt-get install dvwa
.Antes de iniciar qualquer um dos exercícios, lembre-se de fazer login no DVWA (as credenciais padrão são admin / password) e certifique-se de que o nível de segurança está configurado como “Baixo”.
Um exercício prático exige que você instale e use uma ferramenta conhecida como rainbowcrack. Devido aos altos requisitos de sistema e ao fato de que a ferramenta só funciona no Linux e no Windows, optamos por tornar esse exercício opcional. Como o objetivo principal desse exercício é ilustrar um conceito de segurança, os alunos que não puderem ou não quiserem concluí-lo ainda poderão terminar toda a trilha de aprendizagem.
Um exercício opcional requer conhecimentos básicos de Python e uma instalação do Python. Este exercício pode ser ignorado por alunos que não estejam familiarizados com o Python ou que não o tenham instalado em seus sistemas.
Essa trilha de aprendizagem fornece um guia interno consistente e independente para a segurança de aplicativos web. Ela deve ser lida em poucas sessões e fornece a base necessária para aprofundar o aprendizado sobre segurança de aplicativos web. As trilhas de aprendizagem de acompanhamento sugeridas incluem:
Parabéns por ter concluído a introdução!
Clique na caixa de seleção para confirmar que você leu a introdução e continuar para o próximo módulo.
Marca a introdução como concluída e salva o progresso do usuário.
Você completou todos os módulos desta trilha de aprendizagem.