Pinon ylivuodon estäminen Mikko Toivonen & Antti Mattila.

Slides:



Advertisements
Samankaltaiset esitykset
Ulkoiset keskeytykset
Advertisements

Olio-ohjelmoinnin perusteet luento 3: Muuttujista ja funktioista Sami Jantunen LTY/Tietotekniikan osasto.
(Made By: Jouko ja Mikko Pynnönen)
@ Leena Lahtinen Helia TIETO JA TIETOKONEOHJELMA  TIETOKONEOHJELMA KÄSITTELEE TIETOJA  TIETOJA VOIDAAN KÄSITELLÄ OHJELMASSA VAIN SALLITUILLA.
© Jukka Harju, Viittausmuuttujat. © Jukka Harju, Viittaukset •Viittausmuuttuja sisältää tiedon siitä missä muistipaikassa olio.
PROSESSIT Tehtäviä: Limittää usean prosessin suoritus, jotta resurssien käyttö olisi tehokasta, mutta samalla taata, että kaikki prosessit etenevät mielekästä.
JavaScript (c) Irja & Reino Aarinen, 2007
Suunnitelma ohjelmiston testaukseen
Tietokone Koostuu keskusyksiköstä, näytöstä, näppäimistöstä, hiirestä sekä muista mahdollisista lisälaitteista. Pöytäkoneiden lisäksi löytyy myös kannettavia.
Linuxin rakenne ja ominaisuudet
 kieli on paitsi suussa oleva lihas myös ihmisten puhuma, kirjoittama tai viittoma merkkijärjestelmä ◦ luonnolliset kielet ◦ keinotekoiset kielet (ohjelmointikielet,
Käyttöjärjestelmien perustehtävät
Tärkeämpää kuin arvaatkaan
Julkaisukielet ja - tekniikat tMyn1 Julkaisukielet ja -tekniikat •Verkko-ohjelmointi voidaan jakaa kahteen osaan: asiakaspuolen ja palvelinpuolen ohjelmointiin.
VMware workstation. VMware •Virtual Machine •Yhtiö perustettu vuonna 1998 •1999 julkaisi ensimmäisen tuotteen: VMware for workstations •2001 tuli VMware.
Mikko Tyrväinen InSitu –Luentopalautejärjestelmän tekninen evaluointi.
C-kieli ja dynaaminen muistin varaus
Etusivun otsikko Alarivit tulevat näin lorem ipsum dolor Lorem ipsum dolor sed diam TK00507 Mikrotietokoneet I 3 opintopistettä Petri Nuutinen.
Toimisto-ohjelmat Linuxissa Atte Lukkari /OH4 Syksy 2006.
Käyttöjärjestelmät Johdanto. Kurssimateriaalista 15 lukua, jotka vastaavat enemmän tai vähemmän 15 kahden tunnin pakettia Perustuu Gary Nuttin Operating.
C-ohjelmointi, kevät 2006 Taulukot Binääritiedostot Luento
Windows NT Mika Purmonen
OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT. LUOKKA JAVA ohjelma koostuu luokista LUOKKA sisältää metodeja molemmat sisältävät attribuutteja eli muuttujia.
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
FSK-Frequency Shift Keying
A Linux -järjestelmät WINE-API SEKÄ VIRTUALISOINTIOHJELMISTOT
Konekieli.
TIETO JA TIETOKONEOHJELMA TIETOKONEOHJELMA KÄSITTELEE TIETOJA TIETOJA VOIDAAN KÄSITELLÄ OHJELMASSA VAIN SALLITUILLA MENETELMILLÄ.
 Tärkeämpää kuin arvaatkaan 1. Et ole ehkä koskaan tarvinnut varmistuksia, mutta… …ennemmin tai myöhemmin se tapahtuu sinullekin. 2PowerPoint harjoitus.
Valtteri, Simo, Mika Myllytulli, My-tlpt09E 2010
Tietokone Koostuu keskusyksiköstä, näytöstä, näppäimistöstä, hiirestä sekä muista mahdollisista lisälaitteista. Pöytäkoneiden lisäksi on kannettavia tietokoneita.
Käyttöjärjestelmien käynnistyminen
Java Java on Sun Microsystems yhtiön kehittämä laaja olio-pohjainen ohjelmointikieli, joka on laitteistoriippumaton. Laitteistoriippumattomuudessa on.
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op
Mitä kieli on?.
Tietokoneohjelman suoritus opintojakso Olioajattelu ja –ohjelmointi, osa I Hans Nieminen Syksy 2013.
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op ALU.
IDS Antti Junttila. IDS = Intrusion Detection System Suomeksi TunkeutumisenTunnistusJärjestelmä (TTJ) Tarkoitettu valvomaan verkkoa ja paljastamaan kaikenlainen.
IDS: Intrusion Detection System IPS: Intrusion Prevention System Antti Mattila Mikko Toivonen.
Osaamisen ja sivistyksen parhaaksi AIKIS -hanke Teknisen toimivuuden määrittelyt Keskustelun pohjaksi
4. Attribuutit 4.1. Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2.
CAT_TP-tiedonsiirtoprotokollan testausjärjestelmä Esittäjä: Antti Hämäläinen Päivämäärä: Työn tilaaja:Venyon Oy.
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
Testaus Testaus Testauksella pyritään löytämään virheitä, jotka sitten korjataan. Yksittäinen testi on yleensä ohjelman suoritus (tietyillä.
© Jukka Juslin1 Osio2 Olio-ohjelmointi: Merkkijonot eli Stringit Jukka Juslin.
Rinnakkaisuus Järjestelmässä, jossa voi olla useita prosesseja rinnakkain suorituksessa voi tulla tilanteita, joissa prosessien suoritusta täytyy kontrolloida.
VOIP &LINUX & SKYPE. VoIP Voice over Internet Protocol tekniikka jolla siirretään verkon yli reaaliaikaista ääntä ja kuvaa –internet tai lähiverkko.
Tiesitkö ?? Oodilla on kaksi tukipuhelinnumeroa ja kaksi sähköpostiosoitetta WinOodi -asiat: Puh WebOodi -asiat:
Kontrollirakenteet laajemmin
Merkistöstandardeista
Rautaa rajalle! Rautapalomuurit verkon reunalla
DNS ja DHCP palvelut Linuxissa
Apache - yhteisnimitys useille Pohjois- Amerikan intiaaniheimoille - yhteinen etninen ja kulttuurinen tausta - puhuvat eteläisiä athabasca- kieliä Apassipäällikkö.
Jean Danielsbacka EL3 Linux. Samba? ● Tiedosto- ja tulostuspalvelin, joka toimii lähes missä tahansa TCP/IP:tä tukevassa ympäristössä ● Samba on ilmainen.
Lähiverkot -erikoistyökurssi Linux -työ Network File System 22.4 Jarkko Pulli.
.NET ohjelmointi C#-kielellä RäsSe, lokakuu 2004.
Työpaikkaopinnot on jaksotettu:
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op Assembler.
Turvallinen PHP-ohjelmointi Kohdat joihin tulee kiinnittää erityistä huomiota: Käyttäjän syöttötiedot Ohjelmistojen haavoittuvuudet Näkyvyys julkisuuteen:
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op Assembly ja konekieli.
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op
Tietokantamoottorit Suosittuja tietokantamoottoreita: MySQL SQLite

Tietokoneen toiminnasta ja rakenteesta
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op
GNU-Ohjelmointityökalut
Riku Heino ja Milo Hakalahti
Kehitetty vuonna 1995 (Michael Widenius ja David Axmark)
Tietokoneen toiminta (2 ov)
3. TTK-91-käskykanta Symbolisen konekielen tavalliset käskyt
Esityksen transkriptio:

Pinon ylivuodon estäminen Mikko Toivonen & Antti Mattila

Menetelmät: - Rautapohjainen - Ohjelmistopohjainen

Rautapohjainen: - Muistialuiden määrittely - StackGhost

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

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

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

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

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.

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

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

- 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)

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

Lähteet: