Exploitation possibilities of memory related vulnerabilities

Slides:



Advertisements
Hasonló előadás
Getting started with intercultural dialogue - perspectives from HungaryAvviare il dialogo interculturale – prospettive nei musei ungheresiGetting started.
Advertisements

Bevezető Innovációs területek S+S Epilógus. pptPlex Section Divider Bevezető The slides after this divider will be grouped into a section and given the.
Merényi Ádám Microsoft Magyarország
English version A sablon nyelvének választása: /Format/Slide Design /majd jobb oldalt válaszd a másik be- ágyazott sablont! Projekt logó beállítása: /View/Master.
Tester Developer Architect Project Manager Business Analyst Designer Database Professional.
Mintacím szerkesztése •Mintaszöveg szerkesztése •Második szint •Harmadik szint •Negyedik szint •Ötödik szint D modelling in the terrestrial.
Nyereményjátékok és a Facebook - aki mer, az nyer!?”
Richter Elek Technikai terméktámogatási felelős Microsoft Magyarország.
2 3.NET Framework 3.0 Visual Studio Extensions for WF Visual Studio Extensions for WCF/WPF CTP ASP.NET AJAX 1.0 Ajax Toolkit.NET Framework 3.5 Visual.
21 Years of Partnership and Innovation 1989 Citrix Systems founded 2010 Citrix signed licensing agreement with Microsoft for NT Server Introduced Independent.
Nyugdíjreform folyt. köv.? Pension Reform To Be Continued? Bodor András “PENSION REFORM IN HUNGARY: DO WE NEED ONE (PILLAR) MORE?” symposium Washington.
System Statistical Functions. CPU Tesztelése SELECT AS busy Vissza adja milliszekundumban, mennyi időt töltött munkával a szerverünk indítás.
ENEREA - Észak –Alföld Regional Energy Agency Gábor Vámosi Managing director.
Secondary studies in foreign languages Tanulmányok idegen nyelven Opportunities in Debrecen Debreceni lehetőségek.
Árvai Zoltán Számalk Oktató központ.
VHDL Fő témakörök: VHDL-en alapuló áramkörtervezés VHDL alapok
Bevezetés a tárgyakhoz Tárgyak  Objects are the containers for values of a specified type  Objects are either signals, variables or constants  Once.
FelültöltésVHDL Felültöltés (Overloading) n Áttekintés n Példák.
Neo4j bevezető Rácz Gábor
Basics A few things one must know. Slides Insert a title slide Put a title on it.
Image készítés Windows AIK segítségével
TRANZIENS ADATTÁROLÁS State objektum Egy alkalmazásszintű gyűjtemény (Dictionary), mely Tombstone esetén megőrzi tartalmát a memóriában kulcs/érték párokként.
„21. századi közoktatás – fejlesztés, koordináció” TÁMOP / számú kiemelt projekt eTwinning: a digital touch in teacher training Klaudia.
Az erőátviteli rendszer
Infokommunikációs rendszerek 12
Infokom. rendsz. 11. előadás nov Kommunikációs rendszerek alapjai 11. előadás Rádiós adathálózatok Bluetooth, ZigBee, WiFi, WiMAX, Takács.
Infokommunikációs rendszerek 11
Course Situation and Event Driven Models for Multilevel Abstraction Based Virtual Engineering Spaces Óbuda University John von Neumann Faculty of Informatics.
Course Situation and Event Driven Models for Multilevel Abstraction Based Virtual Engineering Spaces Óbuda University John von Neumann Faculty of Informatics.
Oracle multimédia Kiss Attila Információs Rendszerek Tanszék
Magyarország pénzügyi megítélése nemzetközi aspektusból László Csaba október 12.
Fénynél sebesebben? Kísérleti kétségek és remények ELTE, 2011 október 5.
Európai Neutronkutató Központ létesítése Magyarországon
A megértés körei Binzberger Viktor Budapest Műszaki és Gazdaságtudományi Egyetem Filozófia és Tudománytörténet Tanszék.
PHP VI Adatbázisok, MySQL
Multimédiás programok készítése Macromedia Director fejlesztői környezetben 4. előadás Készítette: Kosztyán Zsolt
„MICROSOFT IT ÜZLETI INTELLIGENCIA MEGOLDÁS BEMUTATÓ” Avagy az IT adat vizualizációs lehetőségi egyéb szervezeti egységek felé („ablak” a nagyvilágra)
Alertet indíthat egy: SQL Server esemény (LOG) SQL Server performancia érték WMI events Alert végezhet: Operátor értesítést JOB indítás (válasz az eseményre)
Projektmunka az NI-nál
Alkalmazások és operációs rendszerek optimizálása „Babeş-Bolyai” Tudományegyetem, Matematika-Informatika Kar Windows NT driverek fejlesztése: Virtuális.
Elektroanalitikához segédábrák Az ábrák több, részben szerzői jogokkal védett műből, oktatási célra lettek kivéve. Csak az intranetre tehetők, továbbmásolásuk,
Szervező program Pénzügy figyelő, számlázó program Legújabb alkalmazás.NET Framework 2.0 WSE.NET Framework 4.0 WCF Régebbi, jól bevált alkalmazás.
Egy GAZDAG HIBAJELENTÉS elég információt tartalmaz ahhoz, hogy AZONNALI LÉPÉSEKET lehessen tenni, a javítás érdekében.
Biometria I. SANB_BI1019 Pearson-féle Chi-négyzet (χ2) teszt Molnár Péter Állattani Tanszék
Null Hypothesis (H 0 ) is true He truly is not guilty Alternative Hypothesis (H 1 ) is true He truly is guilty Accept Null Hypothesis Acquittal Right decision.
Atomerőművi reaktor töltettervezése, fűtőelem átrakás, reaktorfizikai korlátok, indítási mérések Nemes Imre, Beliczai Botond PA Zrt.
EGEE-II INFSO-RI Enabling Grids for E-sciencE EGEE and gLite are registered trademarks P-GRADE Portal gyakorlat ismertető Gergely.
Hasznos ismeretek Hogyan bővítsük ismereteinket AVRDUDEflags -E noreset.
Teachers as key stakeholders of ICT in Hungarian schools Andrea Karpati, Eotvos University, Budapest
Tanulni, tanulni, tanulni Értékesítői képességek, a személyzet képzése.
Könyvtár, csomag és alprogramokVHDL Könyvtár, csomag és alprogram n Library és use n Package n Alprogramok –Procedure –Function –Resolution function Egy.
Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke 1 Tokozások termikus tesztje, minősítése.
Multilingual websites in Hungary Gabriella Szalóki Egy előadás könnyen vitára ösztönözheti a hallgatóságot. A PowerPoint bemutatók használatával azonban.
 Map  Reduce  Scan  Histogram  Compact const size_t dataSize = 1024; cl_kernel mapKernel = cl.createKernel(clProgram, "map"); float* hData = new.
Készült az ERFP – DD2002 – HU – B – 01 szerzősésszámú projekt támogatásával Chapter 6 / 1 C h a p t e r 6 Elastic Critical Plate Buckling Loads.
Készült az ERFP – DD2002 – HU – B – 01 szerzősésszámú projekt támogatásával Chapter 1 / 1 C h a p t e r 1 Introduction.
A magyar nyelv nagyszótára ‘Comprehensive Dictionary of Hungarian’ (Dictionary of the Academy) A brief history Tamás Péter Szabó Department of Lexicography.
3. lesson made by Gönczi Zsófia. You can sit down only, if you say the following words correct!
EUDOC Database System in the Hungarian National Assembly Eszter Kertészné-Gérecz ECPRD/2006. Vilnius.
© 2013, LogMeIn, Inc. | The Capability Cloud TM Git használata Visual Studio-ból.
TALÁLTAM EGY OLDALT AHOL EZEKET A “TOJÁSOKAT” LEHET LÁTNI. NAGY MÛVÉSZNEK KELLET LENNI, HOGY ILYEN SZÉPEN TUDTA FORMÁZNI A TOJÁSOK HÉJÁT, DE SZERINTEM.
New Horizons in Brain Research & Gendered Innovation VALÉRIA CSÉPE Brain Imaging MTA RCNS, Budapest.
P árhuzamos és Elosztott Rendszerek Operációs Rendszerei Rövid András
Department of Applied Mechanics – Budapest University of Technology and Economics Magas röptű robotok a mennyezeten Magas röptű robotok a mennyezeten Stépán.
Web Application 1 Web Application 3 Web Application 2 Web Application 4 Shared Service Provider 1 Shared Service Provider 2 Excel Services1 Search1.
Design Thinking módszertan Juhász Dániel UI Designer / DT Coach Buday Balázs Product Owner / DT Coach.
1 KÖZÖSSÉG AZ ÚJ TESTAMENTUMBAN Romans 12:10Romans 12:10 Romans 12:16Romans 12:16 Romans 15:14Romans 15:14 1 Corinthians 11:331 Corinthians 11:33 2 Corinthians.
Systems Hardware Business challenge
TECHNICAL TRAINING December 2012.
Developing, understanding and using nutrient boundaries
Előadás másolata:

Exploitation possibilities of memory related vulnerabilities ISCD2013, 2-3. September 2013 Exploitation possibilities of memory related vulnerabilities László ERDŐDI, PhD, CEH, SSCP Óbuda University, John von Neumann Faculty of Informatics, Department of Software Technology

Memory corruption vulnerabilities since 2002 CVE 2013-4974 CVE 2013-4206 CVE 2013-3348 400 300 200 100 2002 2005 2008 2011

Virtual address space Virtual memory Physical memory Local variables, method parameters, exception handling data, return adresses Virtual memory Physical memory Dynamically linked shared libraries (libc) Dynamic variables Global variables Compiled code

Main causes and exploitation methods Lack of input validation within methods (strcpy, gets, etc): stack based overflow (placing harmful code to the stack, ROP, JOP) Dynamic memory allocation problems (use after free, double free vulnerabilities) heap overflow (function pointer overwrite + heap spray) Exception handling errors (SEH overwrite) Others

Classic example of buffer overflow Stack … Method1(a) { d : fixed size array copy a to d } Method2() Method(a); a Code segment d

Avoiding memory execution protection (return to libc)

Avoiding DEP: Return oriented programming (ROP) Shacham, 2007 Executable code will not be placed on the stack only series of memory addresses and parameters Memory addr 1 Memory addr 2 Parameter 1 Parameter 2 Memory addr 3 Parameter 4 Instruction 1 ret Instruction 3 ret Instruction 2 ret

Jump oriented programming (JOP) Bletsch, Jiang, Freeh 2011 Attack execution without using stack (not sensible for stack cookie-ra and returnless kernel, it can be used in the case of register machines) Dispatcher gadget Increasing the index pointer Jumping to current address Instruction 1 jmp Instruction 2 jmp Dispatcher table: Memory addr1 Memory addr2 Parameter 1 Parameter 2 Memory addr3 Parameter4 Instruction 3 jmp

Protection against memory corruption SEH chain rewrite + Return address checking? +control flow integrity? ROP JOP ? Heap overflow (double free, use after free) Unhandled exceptions Stack overflow Return to libc

Jump Oriented Programming – dispatcher gadgets in shared libraries (Erdődi, 2013)

Jump Oriented Programming – WinExec example for Win32 X86

Return and Jump Oriented Programing requirements of Turing-completeness Kornau: ARM 2009, Buchanen, Roemer: RISC 2008 Arbitrary code execution Loading variables from memory Writing variables to memory Branches Cycles Method calls

Example: How to carry out conditional statements with return-oriented programming? Method 1: Writing the addresses of the false branch and true branch into the writeable memory, setting of the esp according to indirect addressing. 31 gadgets Method 2: Loading the distance between the address of the false branch and true branch in the memory into a register, adding to esp that value if the condition is true 17 gadgets Method 3: Applying gadget which carries out the condition evaluation and jumps at the same time 5 gadgets Instruction 1 ret Instruction 3 ret Instruction 2 ret

Description language for return- and jump- oriented programming write: e.g placing „net user add user passw” to the data segment gadget1: pop reg1 gadget1: pop reg1 write4:address:value gadget2: pop reg2 gadget2: pop reg2 gadget3: mov [reg1], reg2 gadget3: add reg1, reg2 gadget4: pop reg3 gadget5: pop reg4 gadget6: add reg3, reg4 gadget7: mov [reg1], reg3 write4:00400000:net write4:00400004:user write4:00400008: add write:00400000:net user add user passwd write4:0040000c: use write4:00400010:r pa write3:00400014:ssw

Description language for return- and jump- oriented programming write:address:value call:address:param1:param2: … paramn e.g call:fopen address:filenamestring:filemod if:condition:address_true:address_false

Description language for return- and jump- oriented programming sample program: 1: write:dataseg_addr1:filename_string write:00400000:try.txt 2: call:fopen_address:dataseg_addr1:filemod call:7c560122:00400000:0 3: if:address_of_gadget_cmp eax,0:6:4 if:77c7d230:6:4 4: write:dataseg_addr2:name of executable write:00400010:cmd.exe 5:call:winexec_addr:dataseg_addr2 call:7d77501c:0400010 6:call:exitprocess_addr call:7c210254

Summary Memory related vulnerabilities are extremly dangerous and developing quickly The tendency is the legitimate code-reuse for attacking (ROP, JOP) Several open questions still to solve

ROP mai alkalmazásai Főként a védelem kikapcsolása a cél No execute bit átállítása Új szegmens allokálása írható és végrehajtható jellemzőkkel Visszevezetés stack overflowra „egyszerű” utasítássorozatok végrehajtása Elérhető programok: https://github.com/JonathanSalwan/ROPgadget http://www.vnsecurity.net/2010/08/ropeme-rop-exploit- made-easy/

ROP elleni védekezés Stack cookie-val nagyon szigorú visszatérési cím felülírási védelem Ret utasítás nélküli kernelek használata (Chen 2009) „Control flow” figyelés (Davi, 2009) Bletsch, 2009

A legújabb memória korrupciós sérülékenységek

Memória korrupciós hibák kiaknázása „Control flow” megtörése - Input adat ellőnérzés hiánya - túlcsordulás Saját kód futtatása Metódus visszatérési cím felülírása Metóduscímek memóriarész felülírása Kivételkezelő kód címének felülírása Heap láncolt lista címének felülírása Memória egy más részének felülírása

Stack security cookie

A security cookie megkerülése MS08-067 – netapi32 vulnerability A/B/C/../../E -> A/E MS07-017 – ANI file parsing vulnerability

Heap túlcsordulás – security cookie

Memória manipuláció elleni védekezések Kivételkezelő kód szoftveres ellenőrzése (Szoftver DEP) Memória szegmensek hardveres megjelölése csak írhatónak vagy csak végrehajthatónak (Hardver DEP) Memória szegmensek random elhelyezése (ASLR) Csak írható Csak végrehajtható Csak írható Csak írható Csak végrehajtható

DEP megkerülése VirtualAlloc metódushívás HeapCreate metódushívás SetProcessDEPPolicy metódushívás NtSetInformationProcess metódushívás VirtualProtect metódushívás WriteProcessMemory metódushívás

Címtér randomizálás (ASLR) megkerülése Memória cím kiszivárogtatás Nem teljesen véletlenszerű szegmenselhelyezés