address space layout randomization
Megjelenés
(ASLR szócikkből átirányítva)
Főnév
address space layout randomization (tsz. address space layout randomizations)
- (informatika) Address Space Layout Randomization (ASLR) – magyarul: címtér-elrendezés véletlenszerűsítése – egy biztonsági technika, amelyet modern operációs rendszerek használnak arra, hogy megvédjék a folyamatokat a memóriaalapú támadásoktól (pl. buffer overflow, return-to-libc, ROP).
🎯 1. Mi az ASLR célja?
Az ASLR lényege, hogy véletlenszerű helyre tölti be a folyamat különböző memória-szegmenseit (pl. stack, heap, shared libraries, programkód), hogy a támadók ne tudják előre kiszámítani ezek pontos helyét.
Így ha egy támadás célja például egy funkciócím meghívása a libc-ből, annak memóriacíme minden futásnál más lesz → a támadás megbukik, ha nem ismeri a címet.
🧱 2. Melyik szegmenseket véletlenít az ASLR?
- 📦 Stack (verem)
- 🧠 Heap (dinamikus memória)
- 📚 Shared libraries (pl. libc.so)
- 🧾 Memory-mapped files
- 🧮 Program entry point (ELF header vagy PE startcím)
🔐 3. Milyen támadások ellen véd?
- Buffer overflow
- Return-to-libc
- Return Oriented Programming (ROP)
- Code reuse attacks
Ezek a támadások gyakran feltételezik, hogy a támadó ismeri a memóriacímet – ASLR ezt akadályozza meg.
⚠️ 4. Korlátok
- Nem törhetetlen: egyes támadók használhatnak információszivárgást (memory leak) a címek feltárására
- 32 bites rendszeren korlátozott a címterület → kevésbé hatékony
- Néhány régi vagy rosszul fordított bináris nem támogatja az ASLR-t
- Ha a stack/heap/base address fix – az ASLR hatása csökken
🖥️ 5. ASLR támogatás operációs rendszerekben
| Rendszer | Támogatja ASLR-t? | Megjegyzés |
|---|---|---|
| Linux | ✅ (2.6.12 óta) | execstack, PaX, proc/sys/kernel/randomize_va_space |
| Windows | ✅ (Vista+ teljes ASLR) | DLL-ek is véletlenítve lehetnek |
| macOS | ✅ (10.5 Leopard óta) | Modern Apple OS-ek teljes ASLR-t használnak |
| Android | ✅ (4.0 óta) | ARM-alapú ASLR |
| iOS | ✅ | Teljes ASLR és sandboxing kombinálva |
🔧 6. Ellenőrzés Linuxon
cat /proc/sys/kernel/randomize_va_space
0: ASLR kikapcsolva1: részleges randomizálás2: teljes ASLR
🧪 7. Egyszerű demonstráció
#include <stdio.h>
int main() {
int local_var = 0;
printf("Stack address: %p\n", (void*)&local_var);
return 0;
}
Ha többször lefuttatod, az ASLR miatt minden alkalommal más lesz a cím (ha be van kapcsolva).
🧾 8. Összefoglalás
Az ASLR:
- Egy memóriacím-véletlenítési biztonsági technika
- Célja, hogy a támadók nehezen tudják kiszámítani a kritikus kódrészek memóriacímét
- Többrétegű biztonság része (DEP/NX, stack canary, sandboxing mellett)
- Nem helyettesíti a biztonságos kódolást, de jelentősen megnehezíti a kihasználásos támadásokat
- address space layout randomization - Szótár.net (en-hu)
- address space layout randomization - Sztaki (en-hu)
- address space layout randomization - Merriam–Webster
- address space layout randomization - Cambridge
- address space layout randomization - WordNet
- address space layout randomization - Яндекс (en-ru)
- address space layout randomization - Google (en-hu)
- address space layout randomization - Wikidata
- address space layout randomization - Wikipédia (angol)