OWASP Top 10 Flashcards

1
Q

Sobre OWASP

A

O Open Web Application Security Project (OWASP) é uma comunidade aberta dedicada a capacitar as organizações a desenvolver, adquirir e manter aplicações e APIs que podem ser confiáveis.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

A01:2021 – Quebra de Controle de Acesso

A

O controle de acesso impõe a política de modo que os usuários não possam agir fora de suas permissões pretendidas. As falhas normalmente levam à divulgação, modificação ou destruição de informações não autorizadas de todos os dados ou ao desempenho de uma função comercial fora dos limites do usuário.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

A01:2021 – Quebra de Controle de Acesso - Como Prevenir

A

1- Exceto para recursos públicos, negar por padrão.

2- Implemente mecanismos de controle de acesso uma vez e reutilize-os em todo o aplicativo, incluindo a minimização do uso de Cross-Origin Resource Sharing (CORS).

3- Os controles de acesso ao modelo devem impor a propriedade do registro em vez de aceitar que o usuário possa criar, ler, atualizar ou excluir qualquer registro.

4- Os requisitos de limite de negócios de aplicativos exclusivos devem ser impostos por modelos de domínio.

5- Desative a lista de diretórios do servidor da web e certifique-se de que os metadados do arquivo (por exemplo, o .git) e os arquivos de backup não estejam presentes nas raízes da web (web roots).

6- Registrar falhas de controle de acesso e alertar os administradores quando apropriado (por exemplo, falhas repetidas).

7- Limite de taxa o acesso da API e do controlador para minimizar os danos do conjunto de ferramentas de ataque automatizado.

8- Os identificadores de sessão com estado devem ser invalidados no servidor após o logout. Os tokens JWT sem estado devem ter vida curta, para que a janela de oportunidade para um invasor seja minimizada. Para JWTs de longa duração, é altamente recomendável seguir os padrões OAuth para revogar o acesso.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

A02:2021 – Falhas Criptográficas

A

A primeira coisa é determinar as necessidades de proteção dos dados em trânsito e armazenados. Por exemplo, senhas, número de cartão de crédito, registros de saúde, informações pessoas e segredos de negócios que requerem proteção extra, principalmente se esses dados se enquadrarem nas leis de privacidade, alguns exemplos são a da Europa General Data Protection Regulation (GDPR) ou regulamentos de proteção de dados financeiros, como PCI Data Security Standard (PCI DSS).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

A02:2021 – Falhas Criptográficas - Como Prevenir

A

1- Certifique-se de criptografar todos os dados confidenciais armazenados.
2- Aplique os controles de segurança necessários de acordo com a classificação de dados.
3- Não armazene dados confidenciais desnecessariamente. Descarte-o o mais rápido possível ou use tokenização compatível com PCI DSS ou mesmo truncamento. Os dados não retidos não podem ser roubados.Como Prevenir

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

A03:2021 – Injeção

A

Uma aplicação é vulnerável a ataques quando:

1- Os dados fornecidos pelo usuário não são validados, filtrados ou higienizados pelo aplicativo.
2- Consultas dinâmicas ou chamadas não parametrizadas sem escape ciente do contexto são usadas diretamente no interpretador.
3- Dados hostis são usados nos parâmetros de pesquisa de mapeamento relacional de objeto (ORM) para extrair registros confidenciais adicionais.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

A03:2021 – Injeção - Prevenção

A

1- A opção preferida é usar uma API segura, que evita usar o interpretador inteiramente, fornece uma interface parametrizada ou migra para uma ferramenta de Mapeamento Relacional de Objeto (ORMs).
Nota: Mesmo quando parametrizados, os procedimentos armazenados ainda podem introduzir injeção de SQL se PL/SQL ou T-SQL concatenar consultas e dados ou executar dados hostis com EXECUTE IMMEDIATE ou exec().

2- Use validação de entrada positiva ou “safelist” do lado do servidor. Esta não é uma defesa completa, pois muitos aplicativos requerem caracteres especiais, como áreas de texto ou APIs para aplicativos móveis.

3- Para quaisquer consultas dinâmicas residuais, escape os caracteres especiais usando a sintaxe de escape específica para esse interpretador..
Nota: Estruturas SQL, como nomes de tabelas, nomes de colunas e assim por diante, não podem ter escape e, portanto, nomes de estruturas fornecidos pelo usuário são perigosos. Este é um problema comum em software de elaboração de relatórios.

4- Use LIMIT e outros SQL de controle em consultas para evitar a divulgação em massa de registros no caso de injeção de SQL.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

A04:2021 – Design Inseguro

A

O design inseguro é uma categoria ampla que representa diferentes pontos fracos, expressos como “design de controle ausente ou ineficaz”. O design inseguro não é a fonte de todas as outras 10 categorias principais de risco de segurança. Há uma diferença entre design inseguro e implementação insegura. Nós diferenciamos entre falhas de design e defeitos de implementação por um motivo, eles têm diferentes causas raízes e remediação. Um design seguro ainda pode ter defeitos de implementação que levam a vulnerabilidades que podem ser exploradas. Um design inseguro não pode ser corrigido por uma implementação perfeita, pois, por definição, os controles de segurança necessários nunca foram criados para a defesa contra ataques específicos. Um dos fatores que contribuem para um design inseguro é a falta de perfis de risco de negócios inerentes ao software ou sistema que está sendo desenvolvido e, portanto, a falha em determinar o nível de design de segurança necessário.

design seguro
O design seguro é uma cultura e metodologia que avalia constantemente as ameaças e garante que o código seja desenvolvido e testado de forma robusta para evitar métodos de ataque conhecidos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

A04:2021 – Design Inseguro - Prevenção

A

1- Estabeleça e use um ciclo de vida de desenvolvimento seguro com profissionais de AppSec para ajudar a avaliar e projetar controles relacionados à segurança e privacidade.

2- Estabeleça e use bibliotecas de padrões de projeto seguros ou componentes de paved road prontos para usar.

3- Use Modelagem de Ameaças para autenticação crítica, controle de acesso, lógica de negócios e fluxos de chaves.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

A05:2021 – Configuração Incorreta de Segurança

A

1- Falta de proteção de segurança apropriada em qualquer parte da stack das aplicações ou permissões configuradas incorretamente em serviços em nuvem.

2- Recursos desnecessários são ativados ou instalados (por exemplo, portas, serviços, páginas, contas ou privilégios desnecessários).

3- As contas padrão e suas senhas ainda estão ativadas e inalteradas.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

A05:2021 – Configuração Incorreta de Segurança - Prevenção

A

1- Um processo de proteção repetível torna mais rápido e fácil implantar outro ambiente que esteja devidamente bloqueado. Os ambientes de desenvolvimento, controle de qualidade e produção devem ser todos configurados de forma idêntica, com credenciais diferentes usadas em cada ambiente. Este processo deve ser automatizado para minimizar o esforço necessário para configurar um novo ambiente seguro.

2- Uma plataforma mínima sem recursos, componentes, documentação e outros desnecessários. Remova ou não instale recursos e estruturas não utilizados.

3- Uma tarefa para revisar e atualizar as configurações apropriadas para todas as notas de segurança, atualizações e patches como parte do processo de gerenciamento de patch (consulte A06: 2021-Componentes Vulneráveis e Desatualizados). Revise as permissões de armazenamento em nuvem (por exemplo, S3 bucket permissions).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

A06:2021 – Componentes Vulneráveis e Desatualizados

A

Você provavelmente está vulnerável:

1- Se você não souber as versões de todos os componentes que usa (tanto do lado do cliente quanto do lado do servidor). Isso inclui componentes que você usa diretamente, bem como dependências aninhadas.

2- Se o software for vulnerável, sem suporte ou desatualizado. Isso inclui o sistema operacional, servidor web/application, sistema de gerenciamento de banco de dados (DBMS), aplicações, APIs e todos os componentes, ambientes de tempo de execução e bibliotecas.

3- Se você não faz a varredura de vulnerabilidades regularmente e não assina os boletins de segurança relacionados aos componentes que você usa.

4- Se você não corrigir ou atualizar a plataforma, as estruturas e as dependências subjacentes de maneira oportuna e baseada em riscos. Isso geralmente acontece em ambientes em que a correção é uma tarefa mensal ou trimestral sob controle de alterações, deixando as organizações abertas a dias ou meses de exposição desnecessária a vulnerabilidades corrigidas.

5- Se os desenvolvedores de software não testarem a compatibilidade de bibliotecas atualizadas, atualizações ou com patches.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

A06:2021 – Componentes Vulneráveis e Desatualizados - Prevenção

A

Deve haver um processo de gerenciamento de dependências para:

1- Remova dependências não utilizadas, recursos, componentes, arquivos e documentação desnecessários.
2- Atualizar continuamente um inventário com as versões dos componentes do lado do cliente e do lado do servidor e suas dependências usando ferramentas como versions, OWASP Dependency Check, retire.js, etc.
3- Obtenha componentes apenas de fontes oficiais por meio de links seguros.
4- Monitore bibliotecas e componentes sem manutenção ou que não criem patches de segurança para versões anteriores. Se o patch não for possível, considere implantar um patch virtual para monitorar, detectar ou proteger contra o problema descoberto.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

A07:2021 – Falhas de identificação e autenticação

A

Confirmação da identidade, autenticação e sessão do usuário gerenciamento é fundamental para proteger contra autenticação relacionada ataques. Pode haver pontos fracos de autenticação se o aplicativo:

1- Permite ataques automatizados, como preenchimento de credenciais, onde o invasor tem uma lista de nomes de usuários e senhas válidos.

2- Permite força bruta ou outros ataques automatizados.

3- Permite senhas padrão, fracas ou conhecidas, como “Senha1” ou “admin/admin”.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

A07:2021 – Falhas de identificação e autenticação - Prevenção

A

1- Sempre que possível, implemente a autenticação multifator para evitar preenchimento automatizado de credenciais, força bruta e credenciais roubadas

2- Não permita ou implante nenhuma credencial padrão, especialmente para usuários administradores.

3- Implementar verificações de senha fraca, como testar novas ou alteradas contra a lista das 10.000 piores senhas.

4- Alinhe o comprimento da senha, a complexidade e as políticas de rotação com Instituto Nacional de Padrões e Tecnologia (NIST) as diretrizes do 800-63b na seção 5.1.1 para segredos memorizados ou outras políticas de senha modernas e baseadas em evidências.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

A08:2021 – Falhas de Software e Integridade de Dados

A

Falhas na integridade de software e dados estão relacionadas a código e infraestrutura que não protegem contra violações de integridade. Um exemplo disso é quando um aplicativo depende de plugins, bibliotecas ou módulos de fontes, repositórios e redes de entrega de conteúdo (CDNs) não confiáveis. Um pipeline de CI/CD inseguro pode introduzir a possibilidade de acesso não autorizado, código malicioso ou comprometimento do sistema. Por último, muitos aplicativos agora incluem funcionalidade de atualização automática, onde as atualizações são baixadas sem verificação de integridade suficiente e aplicadas ao aplicativo previamente confiável. Atacantes podem potencialmente fazer upload de suas próprias atualizações para serem distribuídas e executadas em todas as instalações. Outro exemplo é quando objetos ou dados são codificados ou serializados em uma estrutura que um atacante pode ver e modificar, o que torna a deserialização insegura.

17
Q

A08:2021 – Falhas de Software e Integridade de Dados - Prevenção

A

1- Use assinaturas digitais ou mecanismos similares para verificar se o software ou os dados são provenientes da fonte esperada e não foram alterados.

2- Certifique-se de que as bibliotecas e dependências, como npm ou Maven, estão consumindo repositórios confiáveis. Se você tiver um perfil de risco mais alto, considere hospedar um repositório interno conhecido como bom que foi examinado.

3- Certifique-se de que haja um processo de revisão para mudanças de código e configuração para minimizar a chance de que código ou configuração maliciosos possam ser introduzidos no seu pipeline de software.

4- Certifique-se de que seu pipeline de CI/CD tenha uma segregação adequada, configuração e controle de acesso para garantir a integridade do código que flui através dos processos de construção e implantação.

18
Q

A09:2021 – Falhas de registro e monitoramento de segurança

A

Retornando à lista OWASP Top 10 de 2021, essa categoria ajuda a detectar, escalonar e responder a violações ativas. Sem o monitoramento e registro, as violações não podem ser detectadas. A falta de registro, detecção, monitoramento e resposta ativa ocorre sempre que:

1- Eventos auditáveis, como logins, logins falhos e transações de alto valor, não são registrados.

2- Avisos e erros geram mensagens de log inexistentes, inadequadas ou confusas.

3- Logs de aplicativos e APIs não são monitorados quanto a atividades suspeitas.

4- Logs são armazenados apenas localmente.

5- Limiares de alerta apropriados e processos de escalonamento de resposta não estão em vigor ou são eficazes.

6- Testes de penetração e varreduras por ferramentas de teste de segurança de aplicativos dinâmicos (DAST), como OWASP ZAP, não acionam alertas.

7- A aplicação não pode detectar, escalonar ou alertar para ataques ativos em tempo real ou quase em tempo real.

19
Q

A09:2021 – Falhas de registro e monitoramento de segurança - Prevenção

A

Garantir que todas as falhas de login, controle de acesso e validação de entrada no lado do servidor possam ser registradas com contexto de usuário suficiente para identificar contas suspeitas ou maliciosas e mantidas por tempo suficiente para permitir análise forense atrasada.

Garantir que os logs sejam gerados em um formato que as soluções de gerenciamento de logs possam facilmente consumir.

Garantir que os dados de log sejam codificados corretamente para evitar injeções ou ataques nos sistemas de registro ou monitoramento.

Garantir que transações de alto valor tenham uma trilha de auditoria com controles de integridade para evitar adulteração ou exclusão, como tabelas de banco de dados somente para adição ou similares.

As equipes de DevSecOps devem estabelecer monitoramento e alerta efetivos para que atividades suspeitas sejam detectadas e respondidas rapidamente.

Estabelecer ou adotar um plano de resposta e recuperação de incidentes, como o National Institute of Standards and Technology (NIST) 800-61r2 ou posterior.

20
Q

A10:2021 – Falsificação de Solicitação do Lado do Servidor (SSRF)

A

As falhas de SSRF ocorrem sempre que um aplicativo da web busca um recurso remoto sem validar a URL fornecida pelo usuário. Ele permite que um invasor force o aplicativo a enviar uma solicitação criada para um destino inesperado, mesmo quando protegido por um firewall, VPN ou outro tipo de lista de controle de acesso à rede (ACL).

Como os aplicativos da web modernos fornecem aos usuários finais recursos convenientes, buscar uma URL se torna um cenário comum. Como resultado, a incidência de SSRF está aumentando. Além disso, a gravidade do SSRF está se tornando mais alta devido aos serviços em nuvem e à complexidade crescente das arquiteturas.

21
Q

A10:2021 – Falsificação de Solicitação do Lado do Servidor (SSRF) - Prevenção

A

Os desenvolvedores podem evitar o SSRF implementando alguns ou todos os seguintes controles de defesa em profundidade:

Para a Camada de Rede:
Segmente a funcionalidade de acesso a recursos remotos em redes separadas para reduzir o impacto de SSRF;
Imponha políticas de firewall para “negar por padrão” ou regras de controle de acesso à rede para bloquear todo o tráfego da intranet, exceto o essencial.

Para a Camada de Aplicação:
Higienize e valide todos os dados de entrada fornecidos pelo cliente;
Aplique o esquema de URL, porta e destino com uma lista de permissões positiva;
Não envie a resposta crua ao cliente
Desabilite redirecionamentos de HTTP;
Tenha cuidado com a consistência URL contra ataques que mirem a resolução de nomes através do DNS e CWE-367.
Não reduza o SSRF por meio do uso de uma lista de negação ou expressão regular. Os invasores têm listas gigantes de possíveis entradas, ferramentas e habilidades para contornar as listas de negação.

22
Q
A