Internet Explorer 10

Este conceito básico de protecção foi aperfeiçoado em cada nova versão do Visual Studio:
A última versão do Enhanced / GS, usada pelo Internet Explorer 9 +, inclui heurística bastante para proteger os mais funções, incluindo não-ponteiro matrizes e estruturas de dados puros.
Além disso, a optimização melhorada eliminou controlos desnecessários, diminuindo o custo de desempenho de defesa.

A bandeira / SAFESEH é uma opção de vinculador que fornece um mecanismo para manipuladores de um aplicativo de exceção registrados sejam armazenados em uma tabela de pesquisa em uma localização de memória seguro.

No caso de uma exceção, os endereços de exceção manipulador na pilha do aplicativo são validados contra a tabela de pesquisa. Se os valores não coincidirem, o processo será encerrado.

Um problema com o sinalizador / SAFESEH é que ele exige que todos os módulos DLL para opt-in para a proteção confiável para proteger o processo.

Enquanto o SDL exige que todo o código da Microsoft ser compilado com SAFESEH, de terceiros add-ons não pode ser compilado com a bandeira.

A bandeira / DYNAMICBASE é uma opção de vinculador que opta por um aplicativo em uma atenuação do sistema operacional conhecido como Address Space Layout Randomization (ASLR), discutido em detalhes mais adiante neste post.

Da mesma forma que a limitação / SAFESEH, um problema com o sinalizador / DYNAMICBASE é que qualquer módulo DLL que não opt-in para essa proteção reduz o valor da ASLR como uma mitigação exploit.

Qualquer módulo em um local previsível pode ser alvo de um atacante, e uma exploração só pode exigir um alvo tão previsível.
Navegador de destino Muitos recente exploits add-ons que não opt-in para a protecção da ASLR. Por exemplo, um Adobe Reader e Acrobat 0-day explorar no ano passado contou com a localização previsível de funções dentro de um módulo chamado icucnv36.dll que não opt-in para ASLR.

Executar mitigações tempo:

Reduções de tempo de execução que o sistema operacional para ajudar a participar em manter o processo seguro.

DEP / NX é um atenuante sistema operacional que depende de características chave de segurança (Data Execution Prevention or No eXecute) de processadores modernos.

Esta atenuação permite páginas de memória para ser marcado como não-executável (Data), o processador irá se recusar a executar o código em uma página de memória tão marcante.

Na segunda etapa de um exploit de memória, um atacante pode tentar executar o seu próprio código que foi adicionado a uma página de dados na memória.

Em cenários onde a página de dados foi marcado como não-executável, o código do atacante vai deixar de correr e o processo será encerrado com segurança.

DEP / NX suporte foi habilitado por padrão no IE8, e continua a ser habilitado no IE10:
SEHOP é uma redução de tempo de execução que prevê uma excepção manipulador de mecanismo de proteção de tamper muito parecido com o sinalizador do compilador / SAFESEH.

Essa proteção funciona inserindo um registro de exceção simbólica como o registro de cauda no segmento lista manipulador de exceção.
No caso de uma excepção, a lista manipulador excepção é orientado para assegurar que o registo simbólico pode ser alcançado.
Se não pode ser alcançado, isto indica que a cadeia manipulador excepção é interrompida eo processo será seguramente terminada ao contrário SafeSEH, SEHOP não requer cada módulo individual de opt-in, e, portanto, fornece proteção, mesmo se add-ons não foram compilados com as bandeiras mais seguros.

SEHOP foi habilitado no IE9 e continua a ser habilitado no IE10:
 
Address Space Layout Randomization foi introduzido pela primeira vez no Windows Vista e tem sido bastante melhorado no Windows 8.

ASLR atribui as aplicações um endereço de memória aleatório base quando eles são inicialmente carregados na memória.
Além disso, estruturas de memória, tais como os blocos de processo Ambiente (PEB), blocos de Tópicos Ambiente (TEB), pilhas e pilhas também são atribuídos a locais aleatórios na memória.

Randomização a localização de objetos e funções na memória ajuda a impedir que um invasor descobrir onde eles estão, que ajuda a prevenir uma técnica chamada Programação Orientada retorno.

Este randomização pode ser pensada como garantia de carga do atacante com um cadeado. Se um atacante não tem a combinação, eles só tem um palpite.




Defendendo o Navegador:

Tecnologias de proteção de memória fornecem uma linha de frente da defesa para bloquear os atacantes de atingir seus objetivos.

Estas tecnologias existem para tornar vulnerabilidades exploram mais difíceis, menos fiável, e em alguns casos impossíveis.
Proteções de memória visam segurança encerrar um processo navegador sob ataque antes de uma vulnerabilidade pode ser explorada com sucesso para executar o código do invasor.
Em muitos casos, proteções de permitir que os vendedores tempo para produzir e distribuir uma correção antes de uma vulnerabilidade pode ser explorada para causar danos.

As tecnologias de memória de mitigação empregadas pelo Internet Explorer têm evoluído ao longo do tempo para ajudar a defender contra novas técnicas de ataque como eles são desenvolvidos e popularizados.

Muitas defesas, como o sinalizador / GS compilador, têm sido utilizados pelas versões anteriores do Internet Explorer, mas são atualizada e aprimorada ao longo do tempo.
Algumas defesas, como ForceASLR (descrito em breve) é novo para IE10 e contar com novas funcionalidades do sistema operacional.

Compilar mitigações tempo:

Mitigações compilador estão disponíveis para desenvolvedores de software e deve ser aplicada como parte de uma melhor prática de desenvolvimento.

A equipe do Internet Explorer inclui esses atenuantes durante o desenvolvimento do Internet Explorer como uma exigência do nosso Ciclo de Vida de Desenvolvimento de Segurança.
Encorajamos desenvolvedores de software para adotar seu próprio processo de SDL que incluem a implementação destas reduções de tempo de compilação.

Sinalizador / GS foi introduzido pela primeira vez no Visual Studio. NET 2002 e tem sido usado por todas as versões do IE suportados.

É uma tecnologia de compilação, que acrescenta um buffer capacidade de detecção de saturação de pilha de uma aplicação. Segredos de segurança conhecido como “canários” são adicionados aos limites de aplicação da pilha em tempo de execução.
Por exemplo, um canário colocado entre um buffer de pilha e um endereço de retorno, será substituído por um ataque de estouro de buffer alvo o endereço de retorno.
Uma exceção será levantada eo processo pode ser seguramente encerrado antes o código do invasor é executado.

Proteções de memória em IE10:
Internet Explorer 10 introduz melhorias significativas na proteção de memória para ajudar a tornar mais difícil de explorar vulnerabilidades, ajudando a manter os usuários seguros na Web por vezes hostil.
Essas melhorias vão aumentar o custo dificuldade e desenvolvimento de exploits, tornando a vida mais difícil para os bandidos.

Embora o malware socialmente engenharia é a principal maneira que os bandidos obter o seu código nos computadores das vítimas, que é em grande parte porque vulnerabilidades do browser têm se tornado menos comum e mais difícil de explorar ao longo dos últimos anos.

No entanto, como mais e mais usuários atualizar para o IE9 e se beneficiar da proteção fornecida pelo Filtro do SmartScreen, bandidos têm um interesse renovado em atacar o navegador e seus add-ons diretamente.

No post de hoje, eu explico o ambiente de ameaças, levantamento das proteções existentes disponíveis no IE9, e explicar como novas proteções IE10 de memória proporcionar ainda mais segurança.

Atacar Navegadores Web:

O objetivo de um atacante explorar uma vulnerabilidade de memória relacionada é fazer com que o caminho do navegador de execução de código em código para desviar de escolher o bandido.

Eles precisam ter o código disponível na máquina das vítimas que deseja executar. As técnicas usadas para obter um código de tal podem ser agrupados em duas classes.
Um atacante pode colocar o seu próprio código malicioso na memória usando técnicas como a pilha de pulverização ou um atacante pode selecionar o código para executar que já está presente na memória usando uma técnica chamada Programação Orientada retorno.

O atacante também precisa ser capaz de explorar uma vulnerabilidade que permite o fluxo de execução de código a ser alterado desde a concepção, como uma vulnerabilidade de buffer overflow.

Em seguida, eles podem mudar o caminho de código para “ir para” o endereço do código que eles querem executado.

Em um ataque típico estouro de buffer, um cuidadosamente elaborado conjunto de dados é colocado na pilha do thread, transbordando seu buffer atribuído ea substituição de estruturas de dados outros.

Atacantes tentam substituir estruturas como registros de exceção manipulador, ou o endereço de retorno da função, o que lhes permitiria alterar o fluxo de código para um local em memória de sua escolha.

Outros tipos de ataques incluem o uso após livre de vulnerabilidades, em que o pedido é levado a acessar um objeto lançado cuja memória foi reutilizada para outro fim.

Comente!

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s