Bezpečnostní záplata linuxového jádra Ochrana přístupu k paměti Nabízí: podporu nespustitelných stránek randomizaci adresního prostoru (ASLR)

Podobné dokumenty
Operační systémy. Jednoduché stránkování. Virtuální paměť. Příklad: jednoduché stránkování. Virtuální paměť se stránkování. Memory Management Unit

Přednáška. Správa paměti II. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Srovnání Linuxu a BSD z pohledu jádra. Jan Dyrczyk

MS WINDOWS II. Jádro. Správa objektů. Správa procesů. Zabezpečení. Správa paměti

IUJCE 07/08 Přednáška č. 6

Princip funkce počítače

Práce s knihovnami. Karel Richta a kol. katedra počítačů FEL ČVUT v Praze. Karel Richta, Martin Hořeňovský, Aleš Hrabalík, 2016

Vývoj programů. ÚVOD DO OPERAČNÍCH SYSTÉMŮ

Základy informatiky. Operační systémy

Metody připojování periferií BI-MPP Přednáška 2

Operační systémy. Přednáška 8: Správa paměti II

Alpine Linux: minimalistická distribuce nejen na server

Vulnerabilities - Zranitelnosti

09. Memory management. ZOS 2006, L.Pešička

Systém adresace paměti

Operační systémy. Přednáška 7: Správa paměti I

monolitická vrstvená virtuální počítač / stroj modulární struktura Klient server struktura

Strojový kód k d a asembler procesoru MIPS SPIM. MIPS - prostředí NMS NMS. 32 ks 32bitových registrů ( adresa registru = 5 bitů).

Linux CryptoFS. Petr Novický

Pár odpovědí jsem nenašla nikde, a tak jsem je logicky odvodila, a nebo jsem ponechala odpověď z pefky, proto je možné, že někde bude chyba.

Procesor z pohledu programátora

První kroky s METEL IEC IDE

IT ESS II. 1. Operating Systém Fundamentals

Činnost počítače po zapnutí

Pamět ová hierarchie, virtuální pamět. doc. Ing. Róbert Lórencz, CSc.

VirtualBox desktopová virtualizace. Zdeněk Merta

Návod k obsluze. Platforma RouterBoard s přeinstalovaným RouterOS Mikrotik. i4wifi a.s.

Security Enhanced Linux (SELinux)

Virtualizace. Lukáš Krahulec, KRA556

Real Time programování v LabView. Ing. Martin Bušek, Ph.D.

Uklízení odpadků a analýza úniku

Instalace Debianu pomocí debootstrap

Diplomová práce. Zvýšení bezpečnosti Linuxu

2010/2011 ZS P i r i nc č py po ít č čů a PAMĚŤOVÝ ĚŤ SUBSYSTÉM z pohledu OS OS

Profesionální služby kolem Linuxu

Uživatelská příručka pro práci s Portálem VZP. Nefunkční podpis certifikátem

Výpočet v módu jádro. - přerušení (od zařízení asynchronně) - výjimky - softvérové přerušení. v důsledku událostí

Hardware. Příklad převodu čísla: =1*32+0*16+0*8+1*4+0*2+1*1= Převod z dvojkové na desítkovou Sčítání ve dvojkové soustavě

Memory Management vjj 1

Úvod do Linuxu SŠSI Tábor 1

v. 2425a Jak si na PC vypěstovat HTTP (WWW, Web) server a jak ho používat (snadno a rychle) by: Ing. Jan Steringa

HelenOS ARM port. Pavel Jančík Michal Kebrt Petr Štěpán

Instalace OS, nastavení systému

Operační systémy. Přednáška 1: Úvod

Operační systémy. Tomáš Vojnar IOS 2009/2010. Vysoké učení technické v Brně Fakulta informačních technologií Božetěchova 2, Brno

Operační systémy. Správa paměti (SP) Požadavky na SP. Spojování a zavedení programu. Spojování programu (linking) Zavádění programu (loading)

Hacking Team - exploity a zranitelnosti v programech. Petr Hanáček Fakulta informačních technologií, VUT v Brně

Téma 8: Konfigurace počítačů se systémem Windows 7 IV

Základní pojmy informačních technologií

Program Computer Setup

Přednáška. Vstup/Výstup. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Monitorování sítě pomocí OpenWrt

Chyby v prohlížečích, které v nich byly klidně deset let. Jiří Nápravník

INFORMACE. Postup vytvoření virtuálního PC. Zpracoval: Ing. Emil Kajer Datum vydání:

Příloha č. I: Schéma zapojení vývojové desky PVK-PRO

Přednáška. Správa paměti I. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Přidělování paměti I Mgr. Josef Horálek

Při překrývání se využívá toho, že ne všechny moduly programu jsou vyžadovány současně. Jakmile skončí využívání jednoho

Instalace a konfigurace OpenAdmin tool na M$ a Linuxu

Memory Management vjj 1

Úvod Seznámení s předmětem Co je.net Vlastnosti.NET Konec. Programování v C# Úvodní slovo 1 / 25

Výukový materiál Hardware je zaměřený především na výuku principů práce hardwaru a dále uvádí konkrétní příklady použití.

Přednáška 2. Systémy souborů OS UNIX. Nástroje pro práci se souborovým systémem. Úvod do Operačních Systémů Přednáška 2

Cloud pro utajované informace. OIB BO MV 2012, Karel Šiman

Bootkity v teorii a praxi. Martin Dráb martin.drab@ .cz

Architektura a koncepce OS OS a HW (archos_hw) Architektura a koncepce OS Jádro OS (archos_kernel) Architektura a koncepce OS Typy OS (archos_typy)

Knot DNS workshop. CZ.NIC Labs Daniel Salzman / daniel.salzman@nic.cz Jan Kadlec / jan.kadlec@nic.cz

Když se Linux nevejde. Jiné operační systémy Lenka Kosková Třísková, LinuxDays2018

Pokročilé architektury počítačů

Matematika v programovacích

Nastavení Java pro aplikaci G-Client Str. 1/8

Změna vlastností kódem

Základní uspořádání pamětí MCU

C2115 Praktický úvod do superpočítání

MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY

Platforma x64 a přechod na 64 bitů. Aleš Keprt Univerzita Palackého, Olomouc

Open Network Linux. Směrované a přepínané sítě. Jiří Macek (MAC0378) Jiri.Macek.st@vsb.cz

Pohled do nitra mikroprocesoru Josef Horálek

Přidělování paměti II Mgr. Josef Horálek

Struktura programu v době běhu

Ukázka zkouškové písemka OSY

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Instalace Linux Debian ve VirtualBoxu JAKUB MAZUCH BŘEZEN 2018

Základní deska (1) Parametry procesoru (2) Parametry procesoru (1) Označována také jako mainboard, motherboard

Operační systémy 2. Přednáška číslo 2. Přidělování paměti

Pokročilé architektury počítačů

TÉMATICKÝ OKRUH Softwarové inženýrství

Stavba operačního systému

PicoBlaze lekce 1: assembler, C překladač a simulační prostředí Jiří Svozil, Leoš Kafka, Jiří Kadlec svozil@utia.cas.cz

Manuál pro práci s kontaktním čipem karty ČVUT

Software Operaèní systém autorské dílo licenci multilicenci Aplikaèní software Komerèní programy upgrade OEM software Demoverze a zku ební verze

Software Operaèní systém autorské dílo licenci multilicenci Aplikaèní software Komerèní programy upgrade OEM software Demoverze a zku ební verze

Software Operaèní systém autorské dílo licenci multilicenci Aplikaèní software Komerèní programy upgrade OEM software Demoverze a zku ební verze

BI-AWD. Administrace Webového a Databázového serveru Instalace webového serveru Apache httpd

POKYNY K INSTALACI JAVA PLUGINU A ELEKTRONICKÉHO PODPISU V SYSTÉMU ELZA. Stav ke dni verze 1.0

Management procesu I Mgr. Josef Horálek

Stručná instalační příručka SUSE Linux Enterprise Server 11

Úvod 2 Snížení intervalu pro automatický import zásilek 3 Možnost použít jiné jméno odesílatele na štítku 4 Podporujeme i webový prohlížeč Opera

LINUX ADRESÁŘOVÁ STRUKTURA. Co to, hrome, je? V této lekci se budeme brouzdat adresáři. SPŠ Teplice - 3.V

Transkript:

Veronika Dudová

Bezpečnostní záplata linuxového jádra Ochrana přístupu k paměti Nabízí: podporu nespustitelných stránek randomizaci adresního prostoru (ASLR)

Označuje: datovou paměť jako nespustitelnou programovou paměť jako nezapisovatelnou a náhodně ji uspořádává Tím efektivně zabraňuje mnoha bezpečnostním exploitům, jako jsou např. některé druhy přetečení zásobníku Činí útoky return-to-libc (ret2libc) těžko zneužitelné Nepředchází variables a pointers overwriting

Označit paměťové stránky jako nespustitelné metadata stránek rozšířit o bit X (RW > RWX) Pokud do takové stránky umístí útočník svůj kód a pokusí se jej vykonat, procesor mu to nedovolí No-eXecute bit (NX) je do procesorů implementován od roku 2004 Kde není, PaX ho dokáže SW emulovat

Využívá nebo emuluje NX bit TLB jednotky - data (DTLB), instrukce (ITLB) procesory Intel Pentium a výš, AMD Athlon/Duron Nastaví supervisor bit, při přístupu na stránku dojde k výpadku stránky ITLB ukončení procesu DTLB dočasné odstranění supervisor bitu, uložení hodnot do DTLB

Segmentace: data segment, code segment Rozdělení adresního prostoru na polovinu, dolní pro data, horní pro code Zrcadlení virtuálního prostoru duplikace každé spustitelné (executable) stránky v dolní polovině adresního prostoru do horní poloviny Instrukce chce přistoupit na adresy v datovém segmentu, které nemají žádný kód umístěný v jeho zrcadlené adrese výpadek stránky, PaX ho obslouží a ukončí proces

Zabraňuje programům změnit stav stránek paměti na spustitelné (executable), když tak nebyly vytvořeny udělat ze spustitelných stránek určených jen ke čtení (read-only) zapisovatelné (writable) vytvoření spustitelných stránek z anonymní paměti

PAGEEXEC + velikost adresního prostoru aplikace nezměněna - větší dopad na výkon (častější výpadky stránek) SEGMEXEC + velmi nízký (téměř nulový) dopad na výkon - omezení velikosti adresního prostoru aplikace na 1,5 GB z původních 3 GB - nekompatibilita s některými aplikacemi Java, wine

Proti útokům vyžadujícím znalost adresního prostoru (return-to-libc) Kód není na adresách, které předem známe Randomizace Stack 24 bits Mmap 16 bits Executable 16 bits Heap 12 bits (or 24 bits if executable is randomized also) PaX nabízí techniky RANDMMAP a RANDEXEC

Náhodný výběr 16 bitů adresy při hledání paměťového regionu pro systémové volání mmap() I randomizace základní adresy z programové hlavičky ELF binárního programu Velmi kvalitní ochrana ALE: programy musí být kompilovány s dostatkem informací pro relokaci (ET_DYN) většina programů je ET_EXEC, nutno znovu zkompilovat Distribuce Adamantix obsahuje ET_DYN programy standardně

Ochrana i pro ET_EXEC, ale není tak spolehlivá, může způsobit falešné poplachy Nahraje program na náhodnou adresu a zrcadlí na adresu původní Sleduje vazby mezi oběma částmi při pokusu o spuštění kódu snaha detekovat netypické návratové adresy (normální vede do rand. části) Tento mechanismus není zapínán standardně pomocí utility paxctl lze zapnout pro určené programy

Nejnovější verze homepage: 2008, linux 2.6.27 grsecurity: 2010, linux 2.6.36 PaX je součástí grsecurity V distribucích Adamantix (Trusted Debian), Hardened Gentoo V OpenBSD Kompatibilní s všemi distribucemi nutný patch jádra

Stažení jádra a patche (pax.grsecurity.net) Aplikace patche patch p1 < pax-linux-2.6.36.patch --dry-run Konfigurace jádra (PaX) make menuconfig Kompilace jádra Instalace jádra

Zajímá nás konfigurace PaX, nalezneme v Security Options PaX

Konfigurace PaX Control CONFIG_PAX_ SOFTMODE - mechanismy nebudou defaultně používané - musí se povolit PT_PAX_FLAGS EI_PAX - chpax - deprecated PT_PAX_FLAGS - paxctl

Konfigurace Non-executable pages CONFIG_PAX_ NOEXEC PAGEEXEC SEGMEXEC EMUTRAMP - Y paxctl, povolení trampolín u programů - N paxctl, vypnutí PAGEEXEC a SEGMEXEC MPROTECT ELFRELOCS -N když jen PIC ELF - readelf S (.rel.text) - Allow x Disallow

Konfigurace ASLR CONFIG_PAX_ RANDKSTACK RANDUSTACK - ve 2 krocích - druhý může udělat velký posun na vrcholu zásobníku problém u programů které potřebují hodně paměti (víc jak 2.5GB nebo 1.25GB) - paxctl RANDMMAP

Konfigurace MISCS CONFIG_PAX_ MEMORY_SANITIZE - vymazání stránek paměti jakmile jsou uvolněny - dopad na výkon MEMORY_UDEREF - virtualizace - velké zpomalení REFCOUNT - memory leak USERCOPY - zanedbatelný dopad na výkon

Ubuntu 10.10 s jádrem 2.6.35 patch jádra PaX verze jádra a patche 2.6.35.9, 2.6.36.1 previously applied patch detected: Assume R? konfigurace PaX (viz. předchozí) kompilace OK, nabootování NE patch jádra grsecurity jádro a patch 2.6.32 hotový balíček

Debian 5.0 s jádrem 2.6.26 hotový balíček obsahuje grsec 2.1.12 dep http://debian.cr0.org/repo/ kernel-security/ apt-get install linux-image-2.6.27.29-4-grsec PaX softmode, disable MPROTECT, pemrs upravený balíček linux-source-2.6.27.29-4-grsec make menuconfig upravit konfiguraci podle svého kompilace, instalace

paxctl disable/enable PAGEEXEC (-p), EMUTRMAP (-e), MPROTECT (-m), RANDMMAP (-r), RANDEXEC (-x), SEGMEXEC (s) view flags (-v) File does not have a PT_PAX_FLAGS program header, try conversion (-c, -C)

pspax součástí pax-utils zobrazí ELF/PaX informace o běžících procesech paxtest otestování konfigurace PaX pokus o spuštění kódu na zásobníku či datovém segmentu, pokus o simulaci return-to-libc útoku atd.

Kvalitní ochrana paměti proti různým bezpečnostním exploitům Použít grsecurity Patch jádra Utility paxctl, paxtest

http://pax.grsecurity.net/ http://grsecurity.net http://en.wikipedia.org/wiki/pax http://www.gentoo.org/proj/en/hardened/