Alura > Cursos de Programação > Cursos de Python > Conteúdos de Python > Primeiras aulas do curso Python e OWASP: explorando vulnerabilidades e implementando defesas

Python e OWASP: explorando vulnerabilidades e implementando defesas

Fundamentos de Segurança e Controle de Acesso (C1) - Apresentação

Apresentando o instrutor e o curso

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.

Introduzindo a importância da segurança em aplicações Python

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.

Explorando vulnerabilidades e práticas inseguras

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.

Praticando conceitos e ataques em uma aplicação vulnerável

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.

Convidando para a jornada de exploração ética

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!

Fundamentos de Segurança e Controle de Acesso (C1) - OWASP | Controle de Acesso

Introduzindo a OASP e seus objetivos

É 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.

Explorando os controles proativos da OASP

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.

Discutindo a importância da segregação de perfis de usuário

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.

Exemplificando perfis de acesso em CMS e e-commerce

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.

Fundamentos de Segurança e Controle de Acesso (C1) - C1: Entendendo Controle de Acesso

Discutindo falhas comuns de controle de acesso

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.

Falha 1: acesso a URLs restritas

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.

Falha 2: IDOR (Insecure Direct Object Reference)

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.

Explorando as consequências das falhas

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.

Analisando casos reais de falhas de controle de acesso

  1. 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.

  2. 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.

Sobre o curso Python e OWASP: explorando vulnerabilidades e implementando defesas

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:

Escolha a duração do seu plano e aproveite até 44% OFF

Conheça os Planos para Empresas