Common Software and Hardware Vulnerability
📈 O número de vulnerabilidades divulgadas está aumentando. Você pode se manter atualizado assinando feeds de vulnerabilidades e verificando repositórios públicos como o National Vulnerability Database (NVD).
🛡️ Identificadores CVE: As vulnerabilidades são identificadas por identificadores de Vulnerabilidades e Exposições Comuns (CVE), mantidos pela MITRE. Eles são utilizados por profissionais de segurança e pesquisadores ao redor do mundo. Saiba mais sobre os CVEs e pesquise vulnerabilidades no site do CVE.
💻 Tipos de Vulnerabilidades: As principais categorias incluem vulnerabilidades de injeção, como injeção SQL, injeção de HTML e injeção de comandos. Essas vulnerabilidades exploram fraquezas ao injetar código malicioso, o que pode levar a vazamento de dados, manipulação de informações e ataques de negação de serviço.
Tipos de injeção de código mais comuns:
SQL Injection: Permite que um atacante execute comandos SQL maliciosos em um banco de dados, o que pode permitir a visualização, alteração ou exclusão de dados.
HTML Script Injection: Injeta scripts maliciosos em páginas HTML, o que pode comprometer a segurança do navegador do usuário.
Dynamic Code Evaluation: O atacante insere código que é executado dinamicamente pelo aplicativo, podendo realizar ações não autorizadas.
Object Injection: Permite que um atacante injete objetos maliciosos em uma aplicação, o que pode levar a execuções de código não autorizadas.
Remote File Inclusion: Injeta arquivos remotos em uma aplicação, que podem ser executados para comprometer o sistema.
Uncontrolled Format String: Explora falhas no tratamento de strings de formato, o que pode permitir a execução de código ou vazamento de dados.
Shell Injection: Permite que um atacante execute comandos do sistema operacional, como se estivessem no terminal, podendo comprometer o sistema.
1. SQL Injection
O Que é? Vulnerabilidade que permite que um atacante insira comandos SQL maliciosos em um aplicativo.
Como Funciona? O atacante injeta SQL através de campos de entrada ou URLs, manipulando o banco de dados para ver, inserir, alterar ou excluir registros.
Para simular um ataque de SQL Injection, você pode utilizar o WebGoat.
1.1 Tipos de Ataques de SQL Injection
In-band SQL Injection: O atacante injeta código SQL e vê os resultados na mesma página da web.
Out-of-band SQL Injection: O atacante recebe os dados injetados por outro meio, como e-mail ou mensagem.
Blind SQL Injection: O atacante não vê os dados diretamente, mas deduz as informações com base na resposta da aplicação.
2. HTML Injection
HTML Injection acontece quando alguém consegue inserir código HTML não autorizado em um site. Isso pode permitir que o invasor veja informações privadas de outros usuários, como cookies de sessão, ou mude o que é exibido na página da web. Essa vulnerabilidade pode também levar a um ataque chamado Cross-Site Scripting (XSS).
3. Command Injection
A injeção de comandos é um tipo de ataque onde alguém engana uma aplicação vulnerável para executar comandos que não deveria. Isso acontece quando uma aplicação não verifica corretamente as informações fornecidas pelos usuários, como em formulários ou cookies.
A caixa mágica:
- Imagine que o aplicação é como uma caixa mágica que pode fazer tarefas para você. Se a caixa não for cuidadosa com o que você pede, alguém pode inserir comandos que fazem a caixa realizar ações que não deveria, como abrir portas secretas ou executar tarefas não autorizadas.
4. Vulnerabilidades baseadas em autenticação
Vulnerabilidades baseadas em autenticação ocorrem quando alguém consegue acessar um sistema sem permissão usando métodos como força bruta, sequestro de sessão ou exploração de credenciais fracas.
4.1 Ataques mais comuns baseados em autenticação:
Força Bruta: Tentar várias combinações de nomes de usuário e senhas até encontrar a correta. Pode ser:Online: Tentativas diretas em um site, mais fácil de detectar.
Offline: Acesso a dados criptografados ou senhas, mais difícil de detectar.
Sequestro de Sessão: Roubar uma sessão ativa para se passar por outro usuário.
Exploração de Credenciais Fracas: Usar senhas simples ou padrões.
Exploração de Vulnerabilidades: Aproveitar falhas no sistema de autenticação, como o Kerberos.