Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

Pinon ylivuodon estäminen Mikko Toivonen & Antti Mattila.

Samankaltaiset esitykset


Esitys aiheesta: "Pinon ylivuodon estäminen Mikko Toivonen & Antti Mattila."— Esityksen transkriptio:

1 Pinon ylivuodon estäminen Mikko Toivonen & Antti Mattila

2 Menetelmät: - Rautapohjainen - Ohjelmistopohjainen

3 Rautapohjainen: - Muistialuiden määrittely - StackGhost

4 Muistialueiden määrittely - Määritellään muistialueet sen mukaan onko siellä suoritettavaa koodia vai pelkkää dataa. - Data-alueiksi merkityiltä alueilta ei sallita koodin suorittamista. - Näin voidaan estää hakkerin koodin suorittaminen vaikka hän saisikin pinon ylivuodon avulla omaa koodiaan järjestelmään

5 StackGhost - Löytyy ainostaan Sunin Sparc ja Sparc64-prosessoreista - Käyttää hyväkseen prosessoriin rakennettua pinon paluu- osoitteiden tarkistusta.

6 Ohjelmistopohjainen: - IDS - Stack-smashing protection - Executable space protection - Safe libraries - Ohjelmointikielen valinta

7 IDS (Intrusion Detection System) - Menetelmä tunnistaa mahdolliset yritykset aiheuttaa pinon ylivuoto. - Estää paketit, jotka sisältävät suuren määrän NoP (No Operation) dataa

8 Stack Smashing Protection - Tunnistaa muistin ylivuodot tarkkailemalla pinon paluuosoitetta. Jos pinossa on tapahtunut muutos tietyn tapahtuman yhteydessä, lopetetaan ohjelman toiminta. - Tarkkailu suoritetaan tallentamalla pinoon paluuosoitteen eteen sattunnainen muuttuja (“canary”), joka tallennetaan myös erilliseen muistipaikkaan. Haettaessa paluuosoitetta verrataan sen yhteydessä ollutta muuttujaa erilleen tallennettuun muuttujaan.

9 - Jos pinossa on tapahtunut ylivuoto ja paluuosoite on muuttunut on myös sen yhteydessä ollut satunnaismuuttujakin muuttunut. Tällöin ohjelma keskeytetään.

10 Executable Space Protection - Estetään pinon ylivuoto satunnaistamalla käytetty muistialue. - Varmistetaan, että muistialueeseen ei ole kirjoitus- ja suoritusoikeuksia. - Linuxissa tämän hoitaa: - PaX - Exec-Shield

11 - Windowsissa (2003 Server) hoidetaan MS:n oman DEP-tekniikan avulla. Tässä asetetaan muistialuieta suoritus-kielto tilaan, eli ks. muistialueelta ei voida suorittaa komentoja. - Toteutusta varten tarvitaan yhteensopivaa rautaa, joka osaa merkita muistialueita DEP:n ohjeiden mukaan, erityisellä merkki-bitillä. - Prosessori tarkistaa NX-bitin tilan ja suhtautuu pinossa olevaan dataan sen mukaisesti, bitin ollessa aktiivinen pinossa olevia käskyä ei suoriteta. (AMD NX No- Execute, Intel XD Execute-Disable)

12 Ohjelmointikielen oikea valinta - C ja C++ -kielillä ei tehdä datatarkistusta, mikä estäisi puskurin ylivuodon. - Esim. Java ja Pascal tarkastavat datan, jotta puskurin ylivuotoja ei pääse syntymään

13 Lähteet: http://en.wikipedia.org/wiki/Buffer_overflow


Lataa ppt "Pinon ylivuodon estäminen Mikko Toivonen & Antti Mattila."

Samankaltaiset esitykset


Iklan oleh Google