Olá! Sejam muito bem-vindos! Meu nome é Gabriel, sou especialista em cibersegurança e análise de aplicações web.
Audiodescrição: Gabriel é um homem que está em um estúdio com iluminação em tons de roxo e azul. Atrás dele, há uma estante preta com objetos decorativos, como vasos, plantas, livros e uma luminária amarela acesa. Ele veste uma camisa polo escura e fala de frente para a câmera.
Aplicações em Python estão presentes em diversos contextos, desde pequenos scripts até grandes aplicações corporativas. No entanto, se não forem desenvolvidas com segurança desde o início, podem abrir portas para ataques. Neste curso, utilizaremos o OWASP Proactive Controls como referência para entender como falhas surgem e, principalmente, como explorá-las para demonstrar seu impacto real. O objetivo é mostrar a importância de aplicar segurança desde o código.
Neste curso, nós aprenderemos a mapear vulnerabilidades comuns relacionadas a cinco controles da OWASP. Exploraremos falhas como injeção, autenticação, exposição de dados e erros de configuração. Também entenderemos como cada vulnerabilidade se conecta com práticas inseguras no desenvolvimento e como traduzir descobertas técnicas em evidências claras de riscos cibernéticos.
Ao longo do curso, exploraremos uma aplicação vulnerável desenvolvida em Python, onde será possível verificar algumas falhas ligadas aos OWASP Proactive Controls. Além das aulas em vídeo, teremos atividades para praticar conceitos e ataques, fortalecendo nosso raciocínio ofensivo. Segurança não é apenas sobre proteger, mas também saber como atacar para prevenir.
Neste curso, teremos uma visão mais clara das vulnerabilidades em Python e aprenderemos a explorá-las de forma ética e controlada. Contamos com vocês nessa jornada!
É importante definir alguns conceitos inicialmente. O primeiro deles é entender e conhecer a OASP. A OASP, que é a sigla de Open Web Application Security Project (Projeto de Segurança de Aplicações Web Abertas), é uma comunidade global, sem fins lucrativos, dedicada a melhorar a segurança de software de forma geral para o mundo inteiro. Ela oferece recursos, ferramentas e metodologias de mercado para pessoas desenvolvedoras e empresas ao redor do mundo.
O OASP Proactive Controls, ou melhor, o OASP Top Ten Proactive Controls, é uma lista de práticas de segurança que podem ser integradas dentro de um ciclo de desenvolvimento de software para prevenir vulnerabilidades comuns. Trata-se de uma lista de melhores práticas, composta por dez controles no total. Vamos abordar cinco controles durante este curso. Essa lista possui uma documentação oficial que pode ser acessada através da referência no final desta aula.
O primeiro controle é dividido em dez itens. O C1 representa o controle um, e o C10, o último controle. A documentação é breve e está dividida em descrição, que aborda um pouco sobre o tipo de falha e a categoria de falha de controle de acesso; as ameaças, que indicam o que um atacante poderia explorar em relação àquela categoria de falha específica; e a implementação, que descreve o que pode ser feito e quais são as melhores práticas. Isso não se refere a uma linguagem de programação específica, mas sim a algo mais amplo. A ideia é implementar boas práticas para prevenir vulnerabilidades que podem ser ocasionadas e exploradas através dessa categoria de falha.
O objetivo dessa documentação é apresentar esse Top 10, destacando os 10 itens principais. Vamos entrar em detalhes sobre cada um deles, começando pela parte de controle de acesso, que é o tema desta aula.
Por que a segregação de perfis de usuário dentro de uma aplicação é importante? É fundamental garantir que cada usuário possa acessar apenas aquilo para o qual lhe foi concedida permissão. Isso assegura a confidencialidade, que é um dos princípios da segurança da informação. A confidencialidade faz parte da tríade de segurança, juntamente com a integridade e a disponibilidade. Um controle de acesso bem implementado garante que esse princípio seja seguido da melhor forma possível.
Vamos considerar dois exemplos de aplicações comuns no nosso dia a dia. O primeiro é um sistema de gerenciamento de conteúdo, conhecido como CMS, como o WordPress ou o Blogger. O segundo exemplo é uma plataforma de e-commerce. Quantos perfis de acesso diferentes essas aplicações podem ter? Elas podem ter desde dois perfis até cinco, dez, dependendo do nível de complexidade da aplicação.
No caso do CMS, temos os administradores, que possuem acesso total ao sistema; os editores, que podem publicar e editar conteúdo específico no blog; os autores, que criam conteúdo próprio; os assinantes, que têm acesso premium ao conteúdo do blog; e os visitantes, que acessam pela internet e conseguem visualizar conteúdo público. Esses são alguns dos perfis de acesso que um CMS, como o WordPress, pode ter. O número de perfis pode variar, dependendo do CMS.
No caso de um e-commerce, a situação não é muito diferente. Existem os administradores, que, como na maioria das aplicações, têm um perfil de acesso que geralmente permite realizar quase todas as ações. No e-commerce, há também os gerentes, que têm acesso a relatórios e à gestão de produtos; os vendedores, que gerenciam seus próprios produtos; e os clientes, que compram e acessam seus próprios dados dentro da plataforma. Além disso, há os visitantes públicos, que podem navegar e buscar alguns produtos. Cada um desses perfis possui uma série de restrições e permissões dentro do sistema específico, como exemplificado no caso de um e-commerce e de um CMS.
A transcrição discute falhas comuns de controle de acesso em aplicações web, destacando duas principais: o acesso a URLs restritas e o IDOR (Insecure Direct Object Reference). Vamos explorar essas falhas com exemplos práticos.
A primeira falha ocorre quando uma aplicação não verifica adequadamente se a pessoa usuária tem permissão para acessar uma URL específica. Por exemplo, considere a URL:
https://exemplo.com/admin/painel
Se uma pessoa usuária comum, como um visitante, conseguir acessar essa URL diretamente e acessar o recurso, isso representa uma falha significativa. Essa é uma das falhas comuns que pode ocorrer em uma aplicação onde o controle de acesso não foi bem definido.
A segunda falha é o IDOR, que permite que a pessoa usuária acesse recursos, principalmente objetos de outras pessoas usuárias, manipulando identificadores, como parâmetros. Por exemplo, considere a URL:
https://exemplo.com/perfil?id=123
Se a pessoa usuária decidir alterar esse parâmetro para o CPF de outra pessoa, como mudar id=123
para id=124
, e conseguir acessar o objeto que não deveria, isso se enquadra nesse tipo de falha. Essa falha é extremamente comum, especialmente em APIs.
As consequências dessas falhas para uma aplicação web podem ser significativas. Por exemplo, uma pessoa usuária pode, ao combinar essas falhas, realizar o que chamamos de escalação de privilégios. Isso significa que a pessoa usuária, com uma permissão dentro de um sistema, consegue aumentar sua permissão dentro da aplicação específica.
Capital One (2019): Uma violação de dados causada por uma falha de controle de acesso na AWS, onde um atacante explorou uma vulnerabilidade de server-side request forgery e obteve acesso a dados sensíveis de mais de 100 milhões de clientes.
GitHub (2012): Uma vulnerabilidade de Mass Assignment permitiu que um usuário alterasse repositórios dentro do GitHub, causando um impacto significativo.
Esses casos ilustram a importância do controle de acesso adequado e as graves consequências que podem resultar de sua falha, incluindo impactos financeiros, reputacionais, legais e operacionais.
O curso Python e OWASP: explorando vulnerabilidades e implementando defesas possui 191 minutos de vídeos, em um total de 54 atividades. Gostou? Conheça nossos outros cursos de Python em Programação, ou leia nossos artigos de Programação.
Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:
Impulsione a sua carreira com os melhores cursos e faça parte da maior comunidade tech.
1 ano de Alura
Matricule-se no plano PLUS e garanta:
Mobile, Programação, Front-end, DevOps, UX & Design, Marketing Digital, Data Science, Inovação & Gestão, Inteligência Artificial
Formações com mais de 1500 cursos atualizados e novos lançamentos semanais, em Programação, Inteligência Artificial, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.
A cada curso ou formação concluído, um novo certificado para turbinar seu currículo e LinkedIn.
No Discord, você participa de eventos exclusivos, pode tirar dúvidas em estudos colaborativos e ainda conta com mentorias em grupo com especialistas de diversas áreas.
Faça parte da maior comunidade Dev do país e crie conexões com mais de 120 mil pessoas no Discord.
Acesso ilimitado ao catálogo de Imersões da Alura para praticar conhecimentos em diferentes áreas.
Explore um universo de possibilidades na palma da sua mão. Baixe as aulas para assistir offline, onde e quando quiser.
Acelere o seu aprendizado com a IA da Alura e prepare-se para o mercado internacional.
1 ano de Alura
Todos os benefícios do PLUS e mais vantagens exclusivas:
Luri é nossa inteligência artificial que tira dúvidas, dá exemplos práticos, corrige exercícios e ajuda a mergulhar ainda mais durante as aulas. Você pode conversar com a Luri até 100 mensagens por semana.
Aprenda um novo idioma e expanda seus horizontes profissionais. Cursos de Inglês, Espanhol e Inglês para Devs, 100% focado em tecnologia.
Para estudantes ultra comprometidos atingirem seu objetivo mais rápido.
1 ano de Alura
Todos os benefícios do PRO e mais vantagens exclusivas:
Mensagens ilimitadas para estudar com a Luri, a IA da Alura, disponível 24hs para tirar suas dúvidas, dar exemplos práticos, corrigir exercícios e impulsionar seus estudos.
Envie imagens para a Luri e ela te ajuda a solucionar problemas, identificar erros, esclarecer gráficos, analisar design e muito mais.
Escolha os ebooks da Casa do Código, a editora da Alura, que apoiarão a sua jornada de aprendizado para sempre.
Conecte-se ao mercado com mentoria personalizada, vagas exclusivas e networking estratégico que impulsionam sua carreira tech para o próximo nível.