Skip to content
Vol. 1 · Ed. 2026
CyberGlossary
Entry № 075

ASLR

Revisado porCybersecurity entrepreneur & security researcher

O que é ASLR?

ASLRA aleatorização do espaço de endereços torna aleatórias as localizações em memória de código, pilhas, heaps e bibliotecas, de modo que os atacantes não consigam prever de forma fiável os endereços-alvo dos seus exploits.


ASLR é uma mitigação defensiva que aleatoriza os endereços base das regiões-chave de um processo — o executável, as bibliotecas partilhadas, o heap, a pilha e a área mmap — sempre que um programa é executado. Foi pioneiramente introduzida pelo projeto PaX em 2001, integrada na linha principal do kernel Linux em 2005 (2.6.12) e hoje está presente no Windows (desde o Vista), macOS, iOS e Android. Ao tornar o layout imprevisível, o ASLR obriga o atacante a vazar primeiro um endereço antes de montar ataques de reuso de código como ROP ou ret2libc.

A sua força depende da entropia: os sistemas de 32 bits expõem apenas ~8–16 bits, um valor tão pequeno que o estudo de Shacham de 2004 conseguiu quebrar por força bruta os processos filhos do Apache em minutos, enquanto o Linux de 64 bits oferece mais de 28 bits de entropia em mmap. A cobertura importa tanto quanto isso — uma única biblioteca não-PIE, ou um binário executado com pilha ilimitada (ADDR_NO_RANDOMIZE, endurecido através da CVE-2016-3672), deixa uma âncora fixa. Em 2014, o ataque offset2lib de Marco-Gisbert e Ripoll mostrou que o GNU/Linux mapeava o executável PIE adjacente às suas bibliotecas, de modo que um único endereço da aplicação vazado des-aleatorizava todas as bibliotecas com um offset constante — derrotando o ASLR completo, o NX e os canários de pilha em menos de um segundo. A correção separou a base do executável do mmap_base.

O ASLR nunca é autónomo: combine-o com DEP/NX, canários de pilha e Integridade do Fluxo de Controlo (CFI), e lembre-se de que qualquer primitiva fiável de vazamento de informação o colapsa por completo.

flowchart TD
  E[exec / carregamento do programa] --> R{ASLR ativado?}
  R -->|No| F[Enderecos fixos e previsiveis]
  R -->|Yes| RND[Aleatorizar base de pilha, heap, mmap, PIE, bibliotecas]
  RND --> ENT{Entropia suficiente e cobertura total?}
  ENT -->|No| BF[Forca bruta / ancora nao-PIE]
  ENT -->|Yes| LEAK{O atacante tem um vazamento de info?}
  LEAK -->|Yes| BYP[Recalcular enderecos reais p. ex. offset2lib]
  LEAK -->|No| BLOCK[ROP / ret2libc pouco fiaveis]
  F --> EXP[O exploit tem sucesso]
  BF --> EXP
  BYP --> EXP

Exemplos

  1. 01

    Linux aleatoriza a pilha, o heap e a base do binário PIE a cada exec.

  2. 02

    O ASLR do Windows reposiciona kernel32.dll e ntdll.dll a cada boot.

Perguntas frequentes

O que é ASLR?

A aleatorização do espaço de endereços torna aleatórias as localizações em memória de código, pilhas, heaps e bibliotecas, de modo que os atacantes não consigam prever de forma fiável os endereços-alvo dos seus exploits. Pertence à categoria Segurança de aplicações da cibersegurança.

O que significa ASLR?

A aleatorização do espaço de endereços torna aleatórias as localizações em memória de código, pilhas, heaps e bibliotecas, de modo que os atacantes não consigam prever de forma fiável os endereços-alvo dos seus exploits.

Como se defender contra ASLR?

As defesas contra ASLR costumam combinar controles técnicos e práticas operacionais, conforme detalhado na definição acima.

Quais são outros nomes para ASLR?

Nomes alternativos comuns: Randomização do espaço de endereços, PIE.

Termos relacionados

Ver também