# Data Execution Prevention

Data Execution Prevention (DEP) (Prevenção da Execução de Dados) é um recurso de segurança incluído nos sistemas operacionais Microsoft Windows. Este recurso destina-se a impedir a execução de códigos de uma região da memória não-executável em um aplicativo ou serviço. No que ajuda a evitar decorrentes explorações que armazenam código via um vazamento de informações de um buffer, por exemplo. A DEP é executado em dois modos, no de hardware: a DEP é configurada para computadores que podem salvar páginas de memória como não-executável; e na de software: a DEP, tem uma configuração de prevenção limitada para computadores que não têm suporte de hardware para a DEP, como dito anteriormente. A DEP quando configurada para a proteção por software, não protege contra execução de código em páginas de dados, mas em vez de outro tipo de ataque.
A DEP foi adicionada no Windows XP Service Pack 2 e está incluído no Windows XP Tablet PC Edition da versão 2005, Windows Server 2003 Service Pack 1 e o Windows Vista. Versões posteriores dos sistemas operacionais citados também oferecem suporte ao DEP.

## Proteção por Hardware

A DEP funcionando por hardware, permite que o Bit NX nos computadores compatíveis, através do uso automático do núcleo PAE no Windows de 32 bits e o suporte nativo nos núcleos de 64 bits. No Windows Vista, a DEP funciona marcando determinadas partes da memória conforme o esperado, mantém somente os dados, que o recurso NX ou xd bit tem como ativado do processador, e entende como não-executável. Isso ajuda a impedir ataques de estouro de buffer enquanto o computador estiver em funcionamento.
Em alguns casos, DEP pode ter a consequência involuntárias, impedindo a execução de um software legítimo, ou em boas condições melhor dizendo. Nesses casos, o programa afetado precisa ser sinalizado como um programa que possui permissão para executar seus código nessas partes da memória, mas isto leva a um possível ataque, se o aplicativo não conter dados rigorosos na validação de dados, que são passados para uma região de memória que é marcada como executável.
Se o processador x86 e aceitar este recurso no hardware, em seguida, os recursos do NX são automaticamente ativados no Windows, por padrão. Se o recurso não for suportado pelo processador x86, em seguida, nenhuma proteção receberá. Fora da arquitetura x86, há uma versão do NX para a arquitetura de uma Intel IA-64 suportada pelo Windows.

## Proteção por Software

A DEP, enquanto não é compatível para o Bit NX, A Microsoft chama sua aplicação de " uma segurança estruturada excepcionalmente para controlar ". O software DEP/SafeSEH simplesmente verifica quando há uma excepção apresentada para se certificar que a mesma é registrada em uma tabela, para o aplicativo e que requer que o programa seja criado com ela. No entanto, mesmo que ela crie uma ideia de que o software e a DEP esta relacionada a prevenção de execução de código em páginas de dados, ela é uma forma separada de proteção.

## Limitações

Diferentemente da proteção semelhante aos esquemas disponíveis em outros sistemas operacionais, a DEP não fornece um layout de espaço de endereço (ASLR, um recurso agora disponível no Windows Vista), que pode permitir ataques, que poderiam viabilizar ele para ser usado para desativar a DEP durante um ataque decorrido.

## Conflitos com software

Ocasionalmente, a DEP é a causa de problemas de software, geralmente com softwares mais antigos. No entanto, ela também corrige problemas de alguns jogos, como o Age of Mythology.
Os usuários têm encontrou problemas usando Tcl/TK para distribuição do Windows no estado de ativação, ao usar a extensão esperada para gerar sessões na Telnet. A DEP cancela o processo matriz da sessão Telnet, fornecendo um erro: "processo principal finalizado de forma anormal", ou algo parecido a essa frase.
Geralmente, esses problemas podem ser resolvidos desativando os recursos da DEP. A DEP pode ser desativada em uma base por software, ou desativado completamente a DEP para todos os programas do Windows, sendo eles não-essenciais, e serviços também.
O erro que às vezes é recebido no Windows Vista, enquanto estiver exibindo pastas de mídia, pode ser corrigido, desativando a DEP para o DLLHOST.exe. Este erro tem muita tendência a ocorrer no Windows Vista, porque não são muitos codecs de áudio e vídeo que são totalmente compatíveis com o novo sistema operacional. Esse problema, geralmente pode ser resolvido na atualização dos codecs instalados para suas versões mais recentes, realizando o chamado upgrade.

## Configuração do software

A configuração da DEP para o sistema é controlada pelas opções no arquivo Boot.ini. A DEP pode ser configurada usando o Painel de controle.
As configurações do arquivo Boot.ini são as seguintes: /noexecute = Policy_level. Mas Policy_level é definido como AlwaysOn, AlwaysOff, OptIn ou OptOut.
OptIn: Esta configuração é a configuração padrão para o Windows XP. Em sistemas com processadores que podem implementar a DEP imposta por hardware, a DEP estará ativada por padrão para os limitados binários do sistema e programas. Com essa opção, apenas os binários do sistema do Windows são abordados pela DEP por padrão.
OptOut: Esta configuração é a configuração padrão para o Windows Server 2003 SP1. A DEP está ativada por padrão para todos os processos. Uma lista de programas específicos que não devem ter a DEP aplicada pode ser inserida usando a caixa de diálogo, localizada no Painel de controle. Os administradores de rede podem usar o Application Compatibility Toolkit para um eventual consentimento de uma sáida para um ou mais programas da proteção DEP. Correções de compatibilidade do sistema, ou shims, para a DEP, possuem efeito. é importante obesrvar que Windows ocultamente desabilita a DEP para determinadas tarefas, como aqueles compactados com ASPack.
AlwaysOn: Esta configuração fornece a execução completa da DEP para o sistema inteiro. Todos os processos sempre executam com a DEP aplicada. A lista de exceções para programas insentos da DEP, em modo específico, não está disponível. Correções de compatibilidade de sistema para DEP não terão efeito. Programas que tiverem sido opted-out usando o Application Compatibility Toolkit executaram normalmente com a DEP aplicada.
AlwaysOff: Esta configuração não fornece qualquer proteção da DEP para qualquer parte do sistema, independentemente do suporte DEP por hardware.