Implementace systémů HIPS: historie a současnost. Martin Dráb

Podobné dokumenty
Implementace systémů HIPS: ve znamení 64bitových platforem. Martin Dráb

Zranitelnosti ovladačů jádra v praxi Martin Dráb martin.drab@ .cz

Security-portal konference

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

S ovladačem do jádra! Martin Dráb

- kvalitní dokumentace k SW je vyžadovaným STANDARDEM. vzájemná provázanost SW (IS) ve velkých společnostech. aktuální přehledná srozumitelná

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

Procesy a vlákna (Processes and Threads)

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

Vlákno (anglicky: thread) v informatice označuje vlákno výpočtu neboli samostatný výpočetní tok, tedy posloupnost po sobě jdoucích operací.

Virtualizace. Lukáš Krahulec, KRA556

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií

Novinky. Autodesk Vault helpdesk.graitec.cz,

Prostředí pro výuku vývoje PCI ovladačů do operačního systému GNU/Linux

Stavba operačního systému

MS WINDOWS I. řada operačních systémů firmy Microsoft *1985 -? Historie. Práce ve Windows XP. Architektura. Instalace. Spouštění

Informační Systém pro Psychiatrii HIPPO

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

Informační Systém PINEL plus

.NET Framework verze Program pro připojení ke vzdálené ploše (RDC) verze

úvod Historie operačních systémů

Architektura rodiny operačních systémů Windows NT Mgr. Josef Horálek

Architektura Intel Atom

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

Ukazky Zdroje:... 17

Základy programování Operační systémy (UNIX) doc. RNDr. Petr Šaloun, Ph.D. VŠB-TUO, FEI (přednáška připravena z podkladů Ing. Michala Radeckého)

Tomáš Kantůrek. IT Evangelist, Microsoft

RadioBase 3 Databázový subsystém pro správu dat vysílačů plošného pokrytí

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

Bezpečná autentizace přístupu do firemní sítě

Extrémně silné zabezpečení mobilního přístupu do sítě.

Roury a zprávy Mgr. Josef Horálek

Novinky. Autodesk Vault helpdesk.graitec.cz,

Testovací protokol USB Token Cryptomate

Management procesu I Mgr. Josef Horálek

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

Principy operačních systémů. Lekce 5: Multiprogramming a multitasking, vlákna

Identifikátor materiálu: ICT-1-17

Souborové systémy Mgr. Josef Horálek

9. Sítě MS Windows. Distribuce Windows. Obchodní označení. Jednoduchý OS pro osobní počítače, pouze FAT, základní podpora peer to peer sítí,

Systémová volání Mgr. Josef Horálek

Autodesk AutoCAD 2018

TC-502L TC-60xL. Tenký klient

1. SYSTÉMOVÉ POŽADAVKY / DOPORUČENÁ KONFIGURACE HW A SW Databázový server Webový server Stanice pro servisní modul...

Obsah. Nastavení elektronické komunikace v IS PREMIER

Struktura programu v době běhu

TC-502L. Tenký klient

FPGA + mikroprocesorové jádro:

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í

Úvod. Programovací paradigmata

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

Sísyfos Systém evidence činností

CineStar Černý Most Praha

APS 400 nadministrator

ČESKÉ VYSOKÉ UČENÍ TECHNIKÉ Fakulta elektrotechnická. Microsoft Sharepoint 2007 Workflows Průmyslové informační systémy

TECHNICKÁ DOKUMENTACE

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

Testovací protokol čipová karta ACOS5

Postup přechodu na podporované prostředí. Přechod aplikace BankKlient na nový operační systém formou reinstalace ze zálohy

Modulární monitorovací systém Gradient Digitální systém pro záznam, archivaci a vyhodnocení telefonie.

1.2 Operační systémy, aplikace

Dílčí projekt: Systém projektování textilních struktur 1.etapa: tvorba systému projektování vlákno - příze - tkanina

Školící dokumentace administrátorů IS KRIZKOM (úroveň KRAJ) (role manager, administrátor )

Ope p r e a r čn č í s ys y té t m é y y Windo d w o s Stručný přehled

INSTALACE SW PROID+ V OS LINUX

Bc. Martin Majer, AiP Beroun s.r.o.

verze GORDIC spol. s r. o.

Název školy: Základní škola a Mateřská škola Žalany

ADMINISTRACE POČÍTAČOVÝCH SÍTÍ. OPC Server

Obsah. Kapitola 1 Hardware, procesory a vlákna Prohlídka útrob počítače...20 Motivace pro vícejádrové procesory...21

NAS 107 Seznámení s Control Center

GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER. váš partner na cestě od dat k informacím

Instalace a první spuštění programu.

Zakázka Vnitřní integrace úřadu v rámci PROJEKTU Rozvoj služeb egovernmentu ve správním obvodu ORP Rosice

1. Informace a informatika

produktů. produkty: AutoCAD Mechanical Showcase Autodesk Autodesk Designer SketchBook Autodesk Mudbox Vault Autodesk Ultimate Intel Xeon Intel Core

Nové jazykové brány do Caché. Daniel Kutáč

SÁM O SOBĚ DOKÁŽE POČÍTAČ DĚLAT JEN O MÁLO VÍC NEŽ TO, ŽE PO ZAPNUTÍ, PODOBNĚ JAKO KOJENEC PO PROBUZENÍ, CHCE JÍST.

STUDIJNÍ MATERIÁL PRO TECHNICKOU CERTIFIKACI ESET Business Edition, ESET Remote Administrator

Instalace a základní administrátorské nastavení 602LAN SUITE 5 Groupware

Ukončení podpory některých verzí Windows a starších přístrojů KTS ve spojení s ESI[tronic] ke konci roku 2017

INSTALACE SOFTWARE PROID+ NA MS WINDOWS

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Emulátory. Autor: Martin Fiala. Spouštění programů a her z jiných OS nebo jiných platforem. InstallFest

Architektura procesoru ARM

Vstupně - výstupní moduly

Semestrální práce z předmětu Speciální číslicové systémy X31SCS

Příloha č. 1 zadávací dokumentace - Specifikace předmětu plnění veřejné zakázky

Ovladače pro Windows. Ovladače Windows A4M38KRP. Str. 1

A G O N O T. RNDr. Filip Zavoral, Ph.D. Počet řešitelů: 4 5. Termín dokončení: červen 2013 ORGANIZÁ TOR TU R NA JŮ

Middleware eop. Instalační příručka pro práci s eop v prostředí MS Windows

Autodesk AutoCAD LT 2019

Školící dokumentace administrátorů IS KRIZKOM (úroveň ÚSÚ) role ( administrátor )

IT ESS II. 1. Operating Systém Fundamentals

České vysoké učení technické, Fakulta elektrotechnická Úvodní studie semestrálního projektu z X36SIN

Matematika v programovacích

Architektura počítačů

Činnost počítače po zapnutí

Transkript:

Implementace systémů HIPS: historie a současnost Martin Dráb martin.drab@secit.sk

HIPS: základní definice Majoritně používané operační systémy disponují bezpečnostními modely, které dovolují jednotlivým uživatelům určit, co smějí a co nesmějí. V případě Windows je většina domácích uživatelů zvyklá pracovat neustále s oprávněním administrátora, což činí bezpečnostní model značně neefektivní. Systémy HIPS programy, které monitorují, oznamují (a blokují) podezřelé aktivity v operačním systému.

Čemu se budeme věnovat Různým technikám použitelným při implementaci systémů HIPS a jejich problůmům Rozhraním, která pro ulehčení (a umožnění) implementace poskytuje Microsoft. Složitostí realizace ochrany určitého aspektu systému (souborového systému, registru, procesů, GUI...)

Na které techniky se zaměříme Modifikace kódu (neomezený dosah) Modifikace tabulek systémových volání (neomezený dosah) Direct Kernel Object Hooking (objekty jádra) OB Filtering Model (procesy, vlákna) Monitorování a ochrana registru Windows Filtering Platform (síť)

Architektura systému

Modifikace kódu Součást systému HIPS pozmění kód rutin zajišťujících operace, které chce sysystém monitorovat, popř. Blokovat (přístup k procesům, změny nastavení OS...). Cílová rutina je obvykle upravena tak, že se při jejím zavolání stane následující: Volání je přesměrováno do modulu systému HIPS Pokud se HIPS rozhodne, že operaci blokovat nebude, je vykonán kód původní rutiny. Před předáním řízení volajícímu může proběhnout úprava výsledků operace.

Modifikace kódu Výhody: Lze provádět prakticky kdekoliv (v knihovnách, v jádře, přímo v aplikaci) Prakticky neomezená oblast působnosti Nevýhody: Závislé na architektuře procesoru Přepisuje se cizí kód, což není vždy dovoleno Možný zdroj nestability (zvláště když se více entit pokusí modifikovat stejnou funkci)

Systémová volání Kód aplikací (a jimi používaných knihoven) je vykonáván v uživatelském režimu procesoru Pro některé operace je potřeba mít vyšší oprávnění O provedení takových operací musí aplikace požádat jádro operačního systému. Vyslání požadavku = systémové volání Jádro může danou operaci provést, ale může také odmítnout (např. Kvůli bezpečnostnímu modelu).

Průběh systémového volání Aplikace zavolá knihovní funkci Knihovna (může jich být i více) překonvertuje volání dané funkce na požadavek pro jádro Vykoná se speciální instrukce pro přechod do režimu jádra Operační systém předá řízení rutině uvedené na daném místě v tabulce systémových volání Rutina se pokusí zkopírovat obsah argumentů sytémového volání do režimu jádra. Následně se pokusí provést zadanou operaci

Průběh systémového volání

Modifikace tabulky systémových volání

Problémy při modifikaci tabulek systémových volání Rutina systému HIPS převezme řízení před příslušnou funkcí jádro operačního systému. Obsah argumentů systémového volání ještě není překopírován do paměti jádra Rutina systému HIPS tedy musí provádět vlastní ověřování platnosti argumentů a kopírovat jejich obsah do paměti jádra, aby s nimi mohla bezpečně pracovat Pokud HIPS příslušnou operaci povolí, jeho rutina předá řízení funkci původně zapsané v tabulce systémových volání

Problémy při modifikaci tabulek systémových volání Původní rutina neví o tom, že se již obsah argumentů volání nachází v paměti jádra a znovu jej kopíruje z uživatelského režimu Dochází tedy k dvojímu kopírování obsahu argumentů z paměti uživatelského režimu. Mezi těmito dvěma operacemi se ale obsah argumentů může změnit (jde o paměť přístupnou aplikaci)! Tento problém se v minulosti objevil již několikrát a pod různými jmény: TOCTOU, argument switch attack, KHOBE...

KHOBE V r. 2010 existoval u mnoha bezpečnostních balíků, aktuální situaci neznám Objevuje se hlavně na 32bitových verzích Windows, kde se modifikace kódu a tabulek systémových volání hodně používaly Není mi známo, že by byl zneužit ITW S nástupem 64bitových Windows zmizí, ačkoliv možná se dočkáme znovuzrození

Modifikace tabulek systémových volání Výhody: Dovoluje kontrolovat skoro každý aspekt života aplikací (zdánlivě) jednoduchá implementace Nevýhody: Závislé na konkrétní verzi Windows Závislé na architektuře procesoru Ověřování obsahu argumentů, KHOBE Praxe: na 32bitových Windows téměř každý bezpečnostní balík

Direct Kernel Object Hooking (DKOH) Jádro Windows reprezentuje mnoho entit (procesy, vlákna, klíče registru, otevřené soubory...) jednotným způsobem; entitou zvanou objekt jádra (kernel object) Jednotná reprezentace dává těmto entitám například možnost pojmenování či nastavení ochrany v rámci bezpečnostního modelu. Aplikace s objekty jádra pracují prostřednictvím nepřímých odkazů handle. Každé handle v sobě nese zakódovanou informaci o cílovém objektu a o tom, co skrz něj může s objektem aplikace dělat.

Direct Kernel Object Hooking (DKOH) Každý objekt jádra ve své struktuře má i odkaz na tzv. objekt typu, který udává základní charakteristiky pro daný druh entit (např. Procesy). Součástí každého objektu typu jsou adresy několika rutin, které jádro vykoná při určitých událostech. Například: Při pokusu o vytvoření nového handle Při rušení existujícího handle Při odstraňování objektu z paměti Při získávání jména objektu

Direct Kernel Object Hooking (DKOH)

Direct Kernel Object Hooking (DKOH) Některé z těchto rutin lze využít pouze pro monitorovací účely. Jiné (například tu, vykonávanou při vytváření nového handle) lze využít i k blokování příslušných operací. Použitím této techniky tak systém HIPS má kontrolu například nad přístupy k objektům jádra určitého typu.

Direct Kernel Object Hooking (DKOH) Výhody: Imunní proti KHOBE Není nutné kopírovat data z uživatelského režimu Nevýhody: Definice rutin se často mění Čekání na odpověď uživatele je problematické Nelze použít na 64bitových systémech Praxe: SandboxIE, Rootkit Unhooker

OB Filtering Model nadstavba nad DKOH přímo od Microsoftu Funguje i na 64bitových verzích Windows Dovoluje monitorovat (někdy i blokovat či měnit) přístup k objektům jádra Zatím podporovány pouze procesy a vlákna Dává jistou kontrolu pouze nad vytvářením handle, ostatní operace nejsou podporovány. Dostupné od Windows Vista SP1

OB Filtering Model Výhody: Funguje i na 64bit systémech Legální Teoretická možnost ručního rozšíření i na další druhy objektů Nevýhody: Podporuje pouze procesy a vlákna Dovoluje kontrolovat pouze tvorbu handle Ne vždy lze přístup blokovat

Ochrana registru Dříve nebyla jiná možnost než modifikace tabulek systémových volání Ve Windows XP se objevilo rozhraní, které dovolovalo ovladačům monitorovat či blokovat některé operace Rozhraní postupně vylepšováno v následujících verzích operačního systému a v rámci aktualizací Service Pack Podpora dalších operací s registry Větší možnost ovlivňování výsledků operací Pohodlnější implementace

Ochrana registru Princip: ovladač zaregistruje jednu rutinu, kterou jádro volá při každé operaci nad registrem. Rutina může operaci blokovat vrácením hodnoty indikující chybu. Windows Server 2003 tento koncept rozšiřuje tak, že každá úspěšná operace nad registrem znamená dvě volání zaregistrovaných rutin. Pre notifikace: informuje o tom, co se bude dít Post notifikace: informuje o tom, co proběhlo

Ochrana registru Výhody: Relativně jednoduché použití, zvláště pro novější verze OS (Vista, 7) Dovoluje nejen blokování, ale i změnu výsledků operace. Použitelné i na 64bitových systémech Nevýhody: Implementace kompatibilní se všemi verzemi rozhraní není triviální