10 |
Estouro de buffer por meio de variáveis de ambiente
Este padrão de ataque envolve causar um buffer overflow através da manipulação das variáveis do ambiente. Quando o adversário descobre que pode modificar uma variável de ambiente, ele pode tentar transbordar os buffers associados. Este ataque alavanca a confiança implícita muitas vezes colocada nas variáveis de ambiente. Identificar aplicação alvo] O adversário identifica uma aplicação ou programa alvo para realizar o estouro de buffer. Neste ataque o adversário procura por uma aplicação que carrega o conteúdo de uma variável de ambiente em um buffer. O adversário identifica um vetor de injeção para entregar o conteúdo excessivo ao buffer da aplicação alvo. O adversário prepara o conteúdo a ser injetado. Se a intenção é simplesmente causar o travamento do software, o conteúdo só precisa consistir em uma quantidade excessiva de dados aleatórios. Se a intenção é alavancar o overflow para a execução de código arbitrário, o adversário prepara a carga de tal forma que o endereço de retorno sobrescrito é substituído por um dos escolhidos pelo adversário. Usando o vetor de injeção, o adversário injeta o conteúdo do transbordamento no buffer. |
Alto |
100 |
Buffers de transbordo
Ataques de Buffer Overflow visam a verificação de limites impróprios ou ausentes em operações de buffer, normalmente desencadeados por entradas injetadas por um adversário. Como consequência, um adversário é capaz de escrever além dos limites das regiões de buffer alocadas na memória, causando um travamento do programa ou potencial redirecionamento da execução, conforme a escolha do adversário. O adversário identifica uma aplicação ou programa alvo para executar o buffer overflow on. Os adversários frequentemente procuram aplicações que aceitam a entrada do usuário e que realizam o gerenciamento manual da memória. O adversário identifica um vetor de injeção para entregar o conteúdo excessivo ao buffer da aplicação alvo. O adversário prepara o conteúdo a ser injetado. Se a intenção é simplesmente causar o travamento do software, o conteúdo só precisa consistir em uma quantidade excessiva de dados aleatórios. Se a intenção é alavancar o overflow para a execução de código arbitrário, o adversário prepara a carga de tal forma que o endereço de retorno sobrescrito é substituído por um dos escolhidos pelo adversário. Usando o vetor de injeção, o adversário injeta o conteúdo do transbordamento no buffer. |
Muito alto |
123 |
Manipulação de buffer
Um adversário manipula a interação de um aplicativo com um buffer na tentativa de ler ou modificar dados aos quais eles não deveriam ter acesso. Os ataques de buffer são diferenciados por ser o próprio espaço do buffer o alvo do ataque, e não qualquer código responsável pela interpretação do conteúdo do buffer. Em praticamente todos os ataques de buffer, o conteúdo colocado no buffer é imaterial. Em vez disso, a maioria dos ataques de buffer envolve a recuperação ou o fornecimento de mais entrada do que pode ser armazenado no buffer alocado, resultando na leitura ou substituição de outra memória de programa indesejada. |
Muito alto |
14 |
Excesso de amortecedor induzido por injeção do lado do cliente
Este tipo de ataque explora uma vulnerabilidade de buffer overflow em software cliente alvo através da injeção de conteúdo malicioso a partir de um serviço hostil personalizado. Este serviço hostil é criado para fornecer o conteúdo correto ao software cliente. Por exemplo, se o aplicativo do lado do cliente for um navegador, o serviço hospedará uma página da Web que o navegador carrega. O adversário identifica um aplicativo do lado do cliente de destino para executar o buffer overflow on. Os mais comuns são os navegadores. Se houver uma vulnerabilidade conhecida do navegador, o adversário pode ser o alvo. O adversário identifica um vetor de injeção para entregar o conteúdo excessivo ao buffer da aplicação alvo. [Criar serviço hostil] O adversário cria um serviço hostil que irá entregar o conteúdo para a aplicação do lado do cliente. Se a intenção é simplesmente causar o travamento do software, o conteúdo só precisa consistir em uma quantidade excessiva de dados aleatórios. Se a intenção é aproveitar o transbordamento para execução de código arbitrário, o adversário elabora a carga de tal forma que o endereço de retorno sobrescrito é substituído por um dos escolhidos pelo adversário. Usando o vetor de injeção, o adversário entrega o conteúdo à aplicação do lado do cliente usando o serviço hostil e transborda o buffer. |
Alto |
24 |
Falha de filtro por estouro de buffer
Neste ataque, a ideia é fazer com que um filtro activo falhe, causando uma transacção demasiado grande. Um atacante pode tentar alimentar o programa com cadeias de entrada muito longas, numa tentativa de sobrecarregar o filtro (causando um buffer overflow) e esperando que o filtro não falhe com segurança (ou seja, a entrada do usuário é deixada no sistema sem filtragem). O atacante faz um levantamento da aplicação alvo, possivelmente como um usuário válido e autenticado [Tentativas de injeção] Tenta alimentar o sistema com dados excessivamente longos. Isto pode ser feito manualmente ou uma ferramenta dinâmica (caixa preta) pode ser usada para automatizar isto. Um atacante também pode usar um script personalizado para esse fim. [Monitorar respostas] Preste atenção a qualquer indicação de falha que ocorra. Observe cuidadosamente para ver o que aconteceu quando a falha no filtro ocorreu. Os dados entraram? Um atacante escreve um script para induzir a falha no filtro de forma consistente. |
Alto |
42 |
Conversão MIME
Um atacante explora uma fraqueza na rotina de conversão MIME para causar um buffer overflow e ganhar controle sobre a máquina do servidor de e-mail. O sistema MIME é projetado para permitir que vários formatos diferentes de informação sejam interpretados e enviados via e-mail. Existem pontos de ataque quando os dados são convertidos para um formato compatível com MIME e vice-versa. O adversário identifica um servidor de e-mail alvo que ele deseja atacar. Determinar a viabilidade do ataque] Determinar se o servidor de e-mail não está remendado e se é potencialmente vulnerável a um dos conhecidos estouros de conversão MIME (por exemplo, Sendmail 8.8.3 e 8.8.4). Identificar locais no sistema onde rotinas vulneráveis de conversão MIME podem ser usadas. O adversário envia mensagens de e-mail com cabeçalhos especiais que irão causar um buffer overflow para a rotina de conversão de MIME vulnerável. A intenção deste ataque é aproveitar o overflow para execução de código arbitrário e obter acesso à máquina do servidor de e-mail, de modo que o adversário crie um e-mail que não apenas transborde o buffer alvo, mas o faça de modo que o endereço de retorno sobrescrito seja substituído por um dos escolhidos pelo adversário. Enviar mensagens de e-mail para o sistema alvo com cabeçalhos especialmente criados que acionam o buffer overflow e executam o código da shell. |
Alto |
44 |
Arquivo de recursos binários de transbordo
Um ataque deste tipo explora uma vulnerabilidade de buffer overflow no manuseio de recursos binários. Os recursos binários podem incluir arquivos de música como MP3, arquivos de imagem como JPEG, e qualquer outro arquivo binário. Estes ataques podem passar despercebidos para a máquina cliente através do uso normal de ficheiros, tais como um browser a carregar um ficheiro JPEG aparentemente inocente. Isto pode permitir ao adversário o acesso à pilha de execução e executar código arbitrário no processo alvo. O adversário identifica o software que utiliza arquivos binários externos de alguma forma. Isto pode ser um upload de arquivo, download de um arquivo de um local compartilhado, ou outro meio. O adversário cria um arquivo binário malicioso alterando o cabeçalho para fazer o arquivo parecer mais curto do que ele é. Bytes adicionais são adicionados ao final do arquivo a ser colocado no local de transbordo. O adversário então implanta o arquivo no software para determinar se um estouro de buffer foi bem sucedido. Uma vez que o adversário tenha determinado que este ataque é viável, ele irá especialmente criar o arquivo binário de uma forma que atinja o comportamento desejado. Se o código fonte estiver disponível, o adversário pode criar cuidadosamente o arquivo malicioso para que o endereço de retorno seja sobrescrito para um valor pretendido. Se o código-fonte não estiver disponível, o adversário irá alterar iterativamente o arquivo a fim de sobrescrever o endereço de retorno corretamente. Uma vez que o adversário tenha construído um arquivo que irá efetivamente transbordar o software alvo da forma pretendida. O arquivo é implantado no software, seja servindo-o diretamente ao software ou colocando-o em um local compartilhado para que uma vítima carregue no software. |
Muito alto |
45 |
Buffer Overflow via links simbólicos
Este tipo de ataque alavanca o uso de links simbólicos para causar estouros de buffer. Um adversário pode tentar criar ou manipular um arquivo de link simbólico de tal forma que seu conteúdo resulte em dados fora dos limites. Quando o software alvo processa o arquivo de link simbólico, ele pode potencialmente transbordar os buffers internos com verificação insuficiente dos limites. O adversário identifica uma aplicação ou programa alvo que pode carregar em certos arquivos para a memória. O adversário identifica um vetor de injeção para entregar o conteúdo excessivo ao buffer da aplicação alvo. [Sobrecarga do conteúdo do arquivo de sobrecarga] O adversário elabora o conteúdo a ser injetado. Se a intenção é simplesmente causar o travamento do software, o conteúdo só precisa consistir em uma quantidade excessiva de dados aleatórios. Se a intenção é alavancar o overflow para a execução de código arbitrário, o adversário prepara a carga de tal forma que o endereço de retorno sobrescrito é substituído por um dos escolhidos pelo adversário. Usando o conteúdo do arquivo especialmente criado, o adversário cria um link simbólico do recurso identificado para o arquivo malicioso, causando um ataque de sobrecarga do buffer. |
Alto |
46 |
Variáveis e tags de estouro
Este tipo de ataque alavanca o uso de tags ou variáveis de um dado de configuração formatado para causar o buffer overflow. O adversário cria uma página HTML maliciosa ou um arquivo de configuração que inclui strings oversized, causando assim um overflow. O adversário identifica uma aplicação ou programa alvo para realizar o estouro do buffer. Os adversários procuram aplicações ou programas que aceitam arquivos formatados, como arquivos de configuração, como entrada. O adversário identifica um vetor de injeção para entregar o conteúdo excessivo ao buffer da aplicação alvo. O adversário elabora o conteúdo a ser injetado. Se a intenção é simplesmente causar o travamento do software, o conteúdo só precisa consistir em uma quantidade excessiva de dados aleatórios. Se a intenção é alavancar o overflow para a execução de código arbitrário, o adversário prepara a carga de tal forma que o endereço de retorno sobrescrito é substituído por um dos escolhidos pelo adversário. O adversário carregará o arquivo criado para a aplicação, causando um estouro de buffer. |
Alto |
47 |
Buffer Overflow via Parameter Expansion
Neste ataque, o software alvo recebe um input que o adversário sabe que será modificado e expandido em tamanho durante o processamento. Este ataque depende da falha do software alvo em prever que os dados expandidos podem exceder algum limite interno, criando assim um buffer overflow. O adversário identifica uma aplicação ou programa alvo para executar o buffer overflow on. Os adversários frequentemente procuram aplicações que aceitam a entrada do usuário e que realizam o gerenciamento manual da memória. O adversário identifica um vetor de injeção para entregar o conteúdo excessivo ao buffer da aplicação alvo. O adversário elabora o input a ser dado ao programa. Se a intenção é simplesmente causar o travamento do software, a entrada só precisa expandir para uma quantidade excessiva de dados aleatórios. Se a intenção é alavancar o overflow para execução de código arbitrário, o adversário irá criar um input que se expande de forma que não só transborde o buffer alvo, mas o faça de tal forma que o endereço de retorno sobrescrito seja substituído por um dos adversários, escolhendo quais pontos do código injetado pelo adversário. Usando o vetor de injeção, o adversário dá o input trabalhado para o programa, transbordando o buffer. |
Alto |
8 |
Estouro de buffer em uma chamada de API
Este ataque tem como alvo bibliotecas ou módulos de código compartilhado que são vulneráveis a ataques de buffer overflow. Um adversário que tenha conhecimento de bibliotecas vulneráveis conhecidas ou de código compartilhado pode facilmente ter como alvo software que faça uso dessas bibliotecas. Todos os clientes que fazem uso da biblioteca de código tornam-se assim vulneráveis por associação. Isto tem um efeito muito amplo na segurança de um sistema, geralmente afetando mais de um processo de software. O adversário, com conhecimento de bibliotecas vulneráveis ou módulos de código compartilhado, identifica uma aplicação ou programa alvo que faz uso delas. O adversário tenta usar a API, e se eles podem enviar uma grande quantidade de dados para ver se o ataque de buffer overflow realmente funciona. O adversário elabora o conteúdo a ser injetado com base em seu conhecimento da vulnerabilidade e do resultado desejado. Se a intenção é simplesmente causar o colapso do software, o conteúdo só precisa consistir em uma quantidade excessiva de dados aleatórios. Se a intenção é alavancar o excesso para a execução de código arbitrário, o adversário irá criar um conjunto de conteúdo que não só transborda o buffer alvo, mas o faz de tal forma que o endereço de retorno sobrescrito é substituído por um dos adversários que escolhe o código injetado pelo adversário. Usando a API como vetor de injeção, o adversário injeta o conteúdo de sobrecarga no buffer. |
Alto |
9 |
Estouro de buffer em utilitários de linha de comando locais
Este ataque visa utilitários de linha de comando disponíveis em vários shells. Um adversário pode aproveitar uma vulnerabilidade encontrada em um utilitário de linha de comando para aumentar o privilégio para root. Identificar sistema alvo] O adversário primeiro encontra um sistema alvo no qual ele quer ganhar privilégios elevados. Este pode ser um sistema ao qual eles já têm algum nível de acesso ou um sistema ao qual eles ganharão acesso não autorizado a um privilégio inferior usando algum outro meio. O adversário identifica utilitários de linha de comando expostos pela máquina alvo que contêm vulnerabilidades de buffer overflow. O adversário provavelmente sabe quais utilitários têm essas vulnerabilidades e quais são as versões afetadas, então eles também obterão números de versão para esses utilitários. Uma vez que o adversário tenha encontrado um utilitário vulnerável, ele usará seu conhecimento da vulnerabilidade para criar o comando que irá explorar o buffer overflow. Usando o vetor de injeção, o adversário executa o comando crafted, ganhando privilégios elevados na máquina. |
Alto |