Partilhar via


Barra de bugs de segurança SDL (exemplo)

Nota: Este documento de exemplo é apenas para fins ilustrativos. O conteúdo apresentado abaixo descreve critérios básicos a serem considerados ao criar processos de segurança. Não se trata de uma lista exaustiva de atividades ou critérios e não deve ser tratada como tal.

Consulte as definições de termos nesta secção.

Servidor

Consulte a Matriz de Negação de Serviço para obter uma matriz completa de cenários de DoS do servidor.

A barra do servidor geralmente não é apropriada quando a interação do usuário faz parte do processo de exploração. Se uma vulnerabilidade Crítica existir apenas em produtos de servidor e for explorada de uma forma que exija a interação do usuário e resulte no comprometimento do servidor, a gravidade poderá ser reduzida de Crítica para Importante de acordo com a definição NEAT/data de interação extensiva do usuário apresentada no início do pivô de gravidade do cliente.

Servidor

Crítico

Resumo do servidor: worms de rede ou casos inevitáveis em que o servidor é "proprietário".

  • Elevação de privilégio: a capacidade de executar código arbitrário ou obter mais privilégios do que os autorizados

    • Usuário anônimo remoto

      • Exemplos:

        • Acesso não autorizado ao sistema de arquivos: gravação arbitrária no sistema de arquivos

        • Execução de código arbitrário

        • Injeção de SQL (que permite a execução de código)

    • Todas as violações de acesso de gravação (AV), AVs de leitura exploráveis ou estouros de inteiros em código remoto chamável anonimamente

Importante

Resumo do servidor: Cenários críticos não padrão ou casos em que existem atenuações que podem ajudar a evitar cenários críticos.

  • Negação de serviço: Deve ser "fácil de explorar" enviando uma pequena quantidade de dados ou ser induzida rapidamente

    • Anónimo

      • DoS persistente

        • Exemplos:

          • O envio de um único pacote TCP malicioso resulta em uma Tela Azul da Morte (BSoD)

          • Enviar um pequeno número de pacotes que causa uma falha de serviço

      • DoS temporária com amplificação

        • Exemplos:

          • Enviar um pequeno número de pacotes que faz com que o sistema fique inutilizável por um período de tempo

          • Um servidor Web (como o IIS) inativo por um minuto ou mais

          • Um único cliente remoto consumindo todos os recursos disponíveis (sessões, memória) em um servidor, estabelecendo sessões e mantendo-as abertas

    • Autenticado

      • DoS persistente contra um ativo de alto valor

        • Exemplo:

          • Envio de um pequeno número de pacotes que causa uma falha de serviço para um ativo valioso em funções de servidor (servidor de certificado, servidor Kerberos, controlador de domínio), como quando um utilizador autenticado no domínio pode executar um DoS em um controlador de domínio.

  • Elevação de privilégio: a capacidade de executar código arbitrário ou obter mais privilégios do que o pretendido

    • Usuário autenticado remotamente

    • Usuário autenticado local (Terminal Server)

      • Exemplos:

        • Acesso não autorizado ao sistema de arquivos: gravação arbitrária no sistema de arquivos

        • Execução de código arbitrário

    • Todos os AVs de gravação, AVs de leitura exploráveis ou transbordo de inteiros em código que possa ser acessível a utilizadores autenticados remotamente ou localmente que não são administradores (os cenários administrativos, por definição, não levantam preocupações de segurança, mas ainda representam problemas de fiabilidade.)

  • Divulgação de informações (direcionada)

    • Casos em que o invasor pode localizar e ler informações de qualquer lugar no sistema, incluindo informações do sistema que não foram destinadas ou projetadas para serem expostas

      • Exemplos:

        • Divulgação de informações de identificação pessoal (PII)

          • Divulgação de PII (endereços de e-mail, números de telefone, informações de cartão de crédito)

          • O invasor pode coletar PII sem o consentimento do usuário ou de forma dissimulada

  • Falsificação

    • Uma entidade (computador, servidor, usuário, processo) é capaz de se disfarçar como uma entidade específica (usuário ou computador) de sua escolha.

      • Exemplos:

        • O servidor Web usa autenticação de certificado de cliente (SSL) incorretamente para permitir que um invasor seja identificado como qualquer usuário de sua escolha

        • O novo protocolo foi projetado para fornecer autenticação de cliente remoto, mas existe uma falha no protocolo que permite que um usuário remoto mal-intencionado seja visto como um usuário diferente de sua escolha

  • Adulteração

    • Modificação de quaisquer dados de "ativos de alto valor" num cenário comum ou padrão em que a modificação persiste após reiniciar o software afetado

    • Modificação permanente ou persistente de quaisquer dados do utilizador ou do sistema utilizados num cenário comum ou predefinido

      • Exemplos:

        • Modificação de arquivos de dados de aplicativos ou bancos de dados em um cenário comum ou padrão, como injeção de SQL autenticada

        • Envenenamento de cache de proxy em um cenário comum ou padrão

        • Modificação das configurações do sistema operacional ou do aplicativo sem o consentimento do usuário em um cenário comum ou padrão

  • Elementos de segurança: Quebrar ou ignorar qualquer elemento de segurança fornecido.
    Observe que uma vulnerabilidade em um recurso de segurança é classificada como "Importante" por padrão, mas a classificação pode ser ajustada com base em outras considerações, conforme documentado na barra de bugs SDL.

    • Exemplos:

      • Desativar ou ignorar um firewall sem informar os usuários ou obter consentimento

      • Reconfigurando um firewall e permitindo conexões com outros processos

Moderado
  • Negação de serviço

    • Anónimo

      • DoS temporário sem amplificação em uma instalação padrão/comum.

        • Exemplo:

          • Vários clientes remotos consumindo todos os recursos disponíveis (sessões, memória) em um servidor, estabelecendo sessões e mantendo-as abertas

    • Autenticado

      • DoS persistente

        • Exemplo:

          • Um utilizador do Exchange com sessão iniciada pode enviar uma mensagem de email específica e causar a falha do Exchange Server, e a falha não é devida a um AV de gravação, AV de leitura explorável, ou a um estouro de número inteiro.

      • DoS temporário com amplificação em uma instalação padrão/comum

        • Exemplo:

          • O usuário comum do SQL Server executa um procedimento armazenado instalado por algum produto e consome 100% da CPU por alguns minutos

  • Divulgação de informações (direcionada)

    • Casos em que o invasor pode facilmente ler informações sobre o sistema de locais específicos, incluindo informações do sistema, que não foram intencionadas/projetadas para serem expostas.

      • Exemplo:

        • Divulgação seletiva de dados anónimos

        • Divulgação direcionada da existência de um dossiê

        • Divulgação específica de um número de versão de um ficheiro

  • Falsificação

    • Uma entidade (computador, servidor, usuário, processo) é capaz de se disfarçar como uma entidade diferente e aleatória que não pode ser especificamente selecionada.

      • Exemplo:

        • O cliente autentica-se corretamente no servidor, mas o servidor devolve uma sessão de outro utilizador aleatório que está conectado ao servidor ao mesmo tempo.

  • Adulteração

    • Modificação permanente ou persistente de quaisquer dados do utilizador ou do sistema num cenário específico

      • Exemplos:

        • Modificação de arquivos de dados de aplicativos ou bancos de dados em um cenário específico

        • Envenenamento de cache de proxy num cenário específico

        • Modificação das configurações do sistema operacional/aplicativo sem o consentimento do usuário em um cenário específico

    • Modificação temporária de dados em um cenário comum ou padrão que não persiste após reiniciar o sistema operacional/aplicativo-/sessão

  • Garantias de segurança:

    • Uma garantia de segurança é um recurso de segurança ou outro recurso/função do produto que os clientes esperam oferecer proteção de segurança. As comunicações enviaram mensagens (explícitas ou implícitas) de que os clientes podem confiar na integridade do recurso, e é isso que o torna uma garantia de segurança. Os boletins de segurança serão lançados devido a uma deficiência em uma garantia de segurança que abale a confiança ou fiabilidade do cliente.

      • Exemplos:

        • Os processos executados com privilégios normais de "usuário" não podem ganhar privilégios de "administrador", a menos que a senha/credenciais de administrador tenham sido fornecidas por meio de métodos intencionalmente autorizados.

        • O JavaScript baseado na Internet em execução no Internet Explorer não pode controlar nada do sistema operacional host, a menos que o usuário tenha alterado explicitamente as configurações de segurança padrão.

Baixo
  • Divulgação de informações (não direcionada)

    • Informações sobre o tempo de execução

      • Exemplo:

        • Fuga de memória heap aleatória

  • Adulteração

    • Modificação temporária de dados em um cenário específico que não persiste após reiniciar o sistema operacional/aplicativo

Cliente

A ação extensiva do usuário é definida como:

  • A "interação do usuário" só pode acontecer no cenário orientado ao cliente.

  • Ações normais e simples do usuário, como visualizar e-mails, visualizar pastas locais ou compartilhamentos de arquivos, não são uma interação extensiva do usuário.

  • "Extensivo" inclui usuários navegando manualmente para um site específico (por exemplo, digitando um URL) ou clicando em uma decisão sim/não.

  • "Não extensivo" inclui utilizadores clicando em links de correio eletrónico.

  • Qualificador NEAT (aplica-se apenas a avisos). Comprovadamente, o UX é:

    • Necessary (O utilizador realmente precisa ser confrontado com a decisão?)

    • Explained (O UX apresenta todas as informações que o utilizador precisa para tomar essa decisão?)

    • Executável (Existe um conjunto de passos que os utilizadores podem seguir para tomar boas decisões em cenários benéficos e maliciosos?)

    • Tested (O aviso foi revisto por várias pessoas, para garantir que as pessoas entendam como responder ao aviso?)

  • Esclarecimento: Observe que o efeito da interação extensiva do usuário não é uma redução de um nível na gravidade, mas é e tem sido uma redução na gravidade em certas circunstâncias em que a frase interação extensiva do usuário aparece na barra de bugs. A intenção é ajudar os clientes a diferenciar os ataques de propagação rápida e wormable daqueles em que, como o usuário interage, o ataque é retardado. Esta ferramenta de notificação de erro não permite reduzir a elevação de privilégio abaixo do nível Importante devido à interação com o utilizador.

Cliente

Crítico

Resumo do cliente:

  • Worms de rede ou cenários inevitáveis de navegação/uso comum em que o cliente é "proprietário" sem avisos ou prompts.

  • Elevação de privilégio (remoto): A capacidade de executar código arbitrário ou obter mais privilégios do que o pretendido

    • Exemplos:

      • Acesso não autorizado ao sistema de arquivos: gravando no sistema de arquivos

      • Execução de código arbitrário sem ação extensiva do usuário

      • Todos os AVs de gravação, AVs de leitura exploráveis, estouros de pilha ou estouros de inteiros em código chamável remotamente (sem ação extensiva do usuário)

Importante

Resumo do cliente:

  • Cenários comuns de navegação/uso em que o cliente é "controlado" através de avisos ou prompts, ou através de ações extensivas sem prompts. Observe que isto não discrimina a qualidade/usabilidade de um prompt e a probabilidade de um utilizador clicar no mesmo, mas apenas que um prompt de alguma forma existe.

  • Escalada de privilégio (remoto)

    • Execução de código arbitrário com ação extensiva do usuário

      • Todos os AVs de gravação, AVs de leitura exploráveis ou estouros de inteiros em código chamável remoto (com ação extensiva do usuário)

  • Elevação de privilégio (local)

    • O usuário local de baixo privilégio pode se elevar a outro usuário, administrador ou sistema local.

      • Todos os AVs de escrita, AVs de leitura exploráveis, ou estouros de inteiros em código chamável local

  • Divulgação de informações (direcionada)

    • Casos em que o invasor pode localizar e ler informações no sistema, incluindo informações do sistema que não foram destinadas ou projetadas para serem expostas.

    • Exemplo:

      • Acesso não autorizado ao sistema de arquivos: leitura do sistema de arquivos

      • Divulgação de PII

        • Divulgação de PII (endereços de e-mail, números de telefone)

      • Cenários de Phone Home

  • Negação de serviço

    • DoS de corrupção do sistema requer a reinstalação do sistema e/ou componentes.

      • Exemplo:

        • Visitar uma página da Web causa corrupção de registro que torna a máquina não inicializável

    • Ataque DoS sem ser detectado (Drive-by DoS)

      • Critérios:

        • DoS do sistema sem autenticação

        • Posição em risco por incumprimento

        • Sem recursos de segurança padrão ou mitigações de limites (firewalls)

        • Sem interação do usuário

        • Nenhuma pista de auditoria e punição

        • Exemplo:

          • Sistema de ataque por Bluetooth Drive-by para DoS ou SMS num telemóvel.

  • Falsificação

    • Capacidade do invasor de apresentar uma interface do usuário diferente, mas visualmente idêntica à interface do usuário na qual os usuários devem confiar para tomar decisões de confiança válidas em um cenário padrão/comum. Uma decisão de confiança é definida como toda vez que o usuário toma uma ação acreditando que alguma informação está sendo apresentada por uma entidade específica — seja o sistema ou alguma fonte local ou remota específica.

      • Exemplos:

        • Exibição de um URL diferente na barra de endereço do navegador do URL do site que o navegador está realmente exibindo em um cenário padrão/comum

        • Exibição de uma janela sobre a barra de endereço do navegador que parece idêntica a uma barra de endereço, mas exibe dados falsos em um cenário padrão/comum

        • Exibindo um nome de arquivo diferente em um "Deseja executar este programa?" do que a do ficheiro que realmente será carregado num cenário padrão/comum

        • Exibir um prompt de login "falso" para coletar credenciais de usuário ou conta

  • Adulteração

    • Modificação permanente de quaisquer dados do usuário ou dados usados para tomar decisões de confiança em um cenário comum ou padrão que persista após reiniciar o sistema operacional/aplicativo.

      • Exemplos:

        • Envenenamento de cache do navegador da Web

        • Modificação de configurações significativas do sistema operacional/aplicativo sem o consentimento do usuário

        • Modificação dos dados do utilizador

  • Elementos de segurança: Quebrar ou ignorar qualquer elemento de segurança fornecido

    • Exemplos:

      • Desativar ou contornar uma firewall informando o utilizador ou obtendo consentimento

      • Reconfigurando um firewall e permitindo a conexão com outros processos

      • Usando criptografia fraca ou mantendo as chaves armazenadas em texto sem formatação

      • Desvio do AccessCheck

      • Desvio Bitlocker; por exemplo, não criptografar parte da unidade

      • Syskey bypass, uma maneira de decodificar o syskey sem a senha

Moderado
  • Negação de serviço

    • DoS permanente requer reinicialização a frio ou causa Blue Screen/Bug Check.

      • Exemplo:

        • Abrir um documento do Word faz com que o sistema apresente a tela azul/verificação de erro.

  • Divulgação de informações (direcionada)

    • Casos em que o invasor pode ler informações no sistema de locais conhecidos, incluindo informações do sistema que não foram destinadas ou projetadas para serem expostas.

      • Exemplos:

        • Existência de ficheiro alvo

        • Número da versão do arquivo de destino

  • Falsificação

    • Capacidade do invasor de apresentar uma interface do usuário diferente, mas visualmente idêntica à interface do usuário na qual os usuários estão acostumados a confiar em um cenário específico. "Acostumado a confiar" é definido como qualquer elemento com o qual um utilizador esteja normalmente familiarizado devido à interação habitual com o sistema operativo ou aplicação, mas que geralmente não considera como uma "escolha de confiança".

      • Exemplos:

        • Envenenamento de cache do navegador da Web

        • Modificação de configurações significativas do sistema operacional/aplicativo sem o consentimento do usuário

        • Modificação dos dados do utilizador

Baixo
  • Negação de serviço

    • DoS temporário requer a reinicialização do aplicativo.

      • Exemplo:

        • Abrir um documento HTML faz com que o Internet Explorer falhe

  • Falsificação

    • Capacidade do invasor de apresentar uma interface do usuário diferente, mas visualmente idêntica à interface do usuário , que é uma única parte de um cenário de ataque maior.

      • Exemplo:

        • O usuário tem que ir a um site "malicioso", clicar em um botão na caixa de diálogo falsificada e, em seguida, é suscetível a uma vulnerabilidade com base em um bug diferente do navegador

  • Adulteração

    • Modificação temporária de quaisquer dados que não persistam após reiniciar o SO/aplicação.

    • Divulgação de informações (não direcionada)

      • Exemplo:

        • Fuga de memória heap aleatória

Definição de Termos

autenticado
Qualquer ataque que tenha de incluir a autenticação pela rede. Isso implica que o registro de algum tipo deve ser capaz de ocorrer para que o invasor possa ser identificado.

Anônimo
Qualquer ataque que não precise se autenticar para ser concluído.

client
Software que é executado localmente em um único computador ou software que acessa recursos compartilhados fornecidos por um servidor através de uma rede.

padrão/comum
Todos os recursos que estão ativos logo à partida ou que atingem mais de 10% dos usuários.

cenário
Quaisquer recursos que exijam personalização especial ou casos de uso para habilitar, atingindo menos de 10% dos usuários.

servidor
Computador configurado para executar software que aguarda e atende a solicitações de processos de cliente executados em outros computadores.

Crítico
Uma vulnerabilidade de segurança que seria classificada como tendo o maior potencial de dano.

Importante
Uma vulnerabilidade de segurança que seria classificada como tendo um potencial significativo de danos, mas inferior a Crítica.

Moderado
Uma vulnerabilidade de segurança que seria classificada como tendo um potencial moderado de danos, mas inferior a Importante.

Baixo
Uma vulnerabilidade de segurança que seria classificada como tendo baixo potencial de dano.

divulgação de informações direcionadas
Capacidade de selecionar intencionalmente (direcionar) as informações desejadas.

DoS temporário
Uma DoS temporária é uma situação em que os seguintes critérios são atendidos:

  • O alvo não pode executar operações normais devido a um ataque.

  • A resposta a um ataque é aproximadamente da mesma magnitude que o tamanho do ataque.

  • O alvo retorna ao nível normal de funcionalidade logo após o ataque ser concluído. A definição exata de "brevemente" deve ser avaliada para cada produto.

Por exemplo, um servidor não responde enquanto um invasor está constantemente enviando um fluxo de pacotes através de uma rede, e o servidor retorna ao normal alguns segundos após o fluxo de pacotes parar.

interrupção temporária de serviço (DoS) com amplificação

Uma DoS temporária com amplificação é uma situação em que os seguintes critérios são atendidos:

  • O alvo não pode executar operações normais devido a um ataque.

  • A resposta a um ataque é magnitudes além do tamanho do ataque.

  • O alvo retorna ao nível normal de funcionalidade depois que o ataque é concluído, mas leva algum tempo (talvez alguns minutos).

Por exemplo, se tu podes enviar um pacote mal-intencionado de 10 bytes e causar uma resposta de 2048k na rede, estás a realizar um ataque de negação de serviço (DoS) à largura de banda, amplificando assim o esforço do ataque.

DoS permanente

Um DoS permanente é aquele que requer um administrador para iniciar, reiniciar ou reinstalar todo ou parte do sistema. Qualquer vulnerabilidade que reinicie automaticamente o sistema também é um DoS permanente.

Matriz de negação de serviço (servidor)

Ataque autenticado vs. anônimo Padrão/Comum vs. Cenário DoS Temporário vs. Permanente Avaliação
Autenticado Predefinido/Comum Permanente Moderado
Autenticado Padrão/Comum DoS temporária com amplificação Moderado
Autenticado Padrão/Comum DoS temporário Baixo
Autenticado Cenário Permanente Moderado
Autenticado Cenário DoS temporária com amplificação Baixo
Autenticado Cenário DoS temporário Baixo
Anónimo Padrão/Comum Permanente Importante
Anónimo Padrão/Comum DoS temporária com amplificação Importante
Anónimo Padrão/Comum DoS temporário Moderado
Anónimo Cenário Permanente Importante
Anónimo Cenário DoS temporária com amplificação Importante
Anónimo Cenário DoS temporário Baixo

Isenção de Responsabilidade de Conteúdo

Esta documentação não é uma referência exaustiva sobre as práticas SDL na Microsoft. O trabalho de garantia adicional pode ser realizado pelas equipes de produto (mas não necessariamente documentado) a seu critério. Como resultado, este exemplo não deve ser considerado como o processo exato que a Microsoft segue para proteger todos os produtos.

Esta documentação é fornecida "no estado em que se encontra". As informações e opiniões expressas neste documento, incluindo URL e outras referências a sites da Internet, podem ser alteradas sem aviso prévio. Você assume o risco de usá-lo.

Esta documentação não fornece quaisquer direitos legais sobre qualquer propriedade intelectual em qualquer produto da Microsoft. Poderá copiar e utilizar o presente documento para efeitos de referência pessoal a título interno.

© 2018 Microsoft Corporation. Todos os direitos reservados.

Licenciado sobCreative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported