Have an amazing solution built in RAD Studio? Let us know. Looking for discounts? Visit our Special Offers page!
Notícia

Sinalizadores de segurança RAD Studio 11.1 e Windows PE

peflags111 01

O Delphi e o C++Builder na versão 11.1 habilitam por padrão vários sinalizadores de segurança PE para aplicativos Windows, alguns dos quais já estavam disponíveis, mas um pouco ocultos.


O Delphi há muito tem suporte para ASLR e alguns dos outros sinalizadores de segurança recomendados do Windows. Na recente versão 11.1, a Embarcadero facilitou o uso desses sinalizadores no Delphi e no C++Builder, apresentando opções específicas de linker, habilitando-as por padrão e também criando pacotes e aplicativos que fazem parte do RAD Studio com esses sinalizadores habilitados .

Mais sobre esses sinalizadores do Windows PE

Prevenção de Execução de Dados (DEP)

Permite que o sistema marque uma ou mais páginas de memória como não executáveis, evitando que o código seja executado nessas regiões de memória, dificultando a exploração de estouros de buffer. Você pode ler mais sobre isso na  documentação da Microsoft aqui .

Randomização de layout de espaço de endereço (ASLR)

Organiza aleatoriamente as posições do espaço de endereço das principais áreas de dados de um processo, incluindo a base do executável e as posições da pilha, heap e bibliotecas. Impede a exploração de vulnerabilidades de corrupção de memória. Você pode ler  mais sobre ASLR  na Wikipedia.

ASLR de 64 bits de alta entropia (somente em aplicativos de 64 bits)

Permite que o ASLR use todo o espaço de endereço de 64 bits, como você pode  ler aqui .

Serviços de terminal

Crie aplicativos com reconhecimento de Terminal Server (TSAWARE). Isso não está relacionado à segurança e é coberto pela Microsoft  aqui .

Suporte aprimorado do RAD Studio

Embora  os sinalizadores do compilador existissem antes , o RAD Studio IDE agora expõe esses sinalizadores como opções de vinculador. Você pode ver abaixo as configurações para compiladores Delphi e C++ Windows (obrigado pelas imagens a Jim McKeeth )

peflags111_01-2313780

peflags111_02-3606655

Um par de advertências

A configuração do compilador ASLR funciona conforme o esperado para aplicativos Delphi que usam o pacote de tempo de execução. Para programas que vinculam bibliotecas no executável, há um conflito com a maneira como os programas se referem a funções de DLL carregadas com atraso, o que impede o comportamento esperado. Este é um problema que a Embarcadero encontrou após o lançamento e forneceria uma correção em um futuro (próximo).

Como você pode ver abaixo, para um aplicativo com pacotes de tempo de execução, você obtém a configuração adequada, conforme mostrado pelo SysInternals Process Explorer:

peflags111_03-9363841

Em geral, observe que esses sinalizadores reforçam a segurança e há uma chance de que um aplicativo usando código de baixo nível não funcione mais. Por exemplo, descobrimos que alguns controles ActiveX antigos não funcionam mais no IDE, devido a um conflito com o sinalizador DEP.

Se você encontrar algum problema em seus aplicativos, poderá desabilitar esses sinalizadores, mas recomendamos examinar o problema subjacente, pois algumas empresas começam a exigir que todo o software que usam seja criado com todos os sinalizadores de segurança recomendados pela Microsoft habilitados.

See What's New in 12.2 Athens See What's New in 12.2 Athens Dev Days of Summer 2-24

Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder.
Design. Code. Compile. Deploy.
Start Free Trial   Upgrade Today

   Free Delphi Community Edition   Free C++Builder Community Edition

Leave a Reply

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.

IN THE ARTICLES