Alkalmazások biztonsága Op.rendszerek és alkalmazások Biztonsági környezet Adatvesztés elleni védelem hardver és szoftverhibák emberi hibák bennfentes kutakodás pénzügyi alkalmazások Támadás, behatolás elleni védelem felhasználók kiváncsisága ipari és katonai kémkedés 2
Védelem és biztonság Védelem er!források hozzáférésének vezérlésére szolgáló mechanizmusok biztonsági el!írások érvényesítésének eszköze bels! környezeti kérdés Biztonság rendszer és adatainak integritási confidenciája küls! környezetben 3 Mechanizmusok és el!írások Mechanizmusok Rendszer nyújtotta megoldások Hogyan kell és lehet valamit megcsinálni? El!írások (policy) Rendszerben rögzített és m"ködtetésre, menedzsmentre vonatkozó el!írás Mit lehet csinálni? Összefüggések szeparálás - általános mechanizmusok 4
Tervezési elvek Biztonságos rendszerek tervezése nyílvános tervek jogosultságú hozzáférés szint" elégséges jogosultságok alapértelmezésben legalacsonyabb jogosultságok ellen!rzése és aktualizálása folyamatok számára a legalacsonyabb alacsonyszintre beépített egyszer" védelmi mechanizmus pszichológiailag elfogadható védelmi séma 5 Biztonsági osztályok Trusted Computer Systems Evaluation Criteria (US DoD) D- minimális védelem C1- felhasználó azonosítás, felhasználók adatainak elkülönítése C2- egyéni jogok, er!forrás izoláció B1- érzékenységi címkék, elkülönült címterek B2- érz. címkék minden rendszer er!forráshoz B3- referencia monitor, aut. behatolás detektálás A1- formális tervezés és verifikálás 6
Felhasználó azonosítás Belépéskor (login) a felhasználó azonosítása felhasználó-hoszt autentikáció ismeret, birtok vagy biometriai azonosítás Jelszavak jelszavas autentikációs mechanizmusok Támadások lehallgatás találgatás jelszófájl bruteforce feltörése 7 Jelszó sózás o#ine dictionary attack megnehezítése Tárolás Jelszó fájl Ellen!rzés Kódolt jelszó Felh. név Felh. név Hash fv. Felh. név random érték Hash fv. Jelszó Jelszó Random érték Összehasonlítás OK? 8
UNIX jelszavak (példa) #include <stdio.h> #include <crypt.h> main(int argc, char *argv[]){ printf("%s\n",crypt(argv[1],argv[2])); } alap DES, max. 8 char jelszavak, ha salt $1$...$ MD5, max. 22 char jelszavak john the ripper kimenet: O.lbRAWSemeX2:123456 y.vhnolq415l2:123456 /0w761zn8iV6I:123456 n1tfkcjixpa9w:123456 v0x5f0ypc28ec:123456 T0NNpNd16Oxic:123456 33QvMQsjxkn3w:123456 d2oeqjnbec7uk:123456 FZE2VCEqc0iWY:123456 E3CBJP3YfGfXs:123456 m37ojgyep3fls:123456 G2RmZsYcg96Vg:123456 /4CheC43dRNM6:123456 BarSCnhOSrV.c:123456 BbObdqqbcK/aU:123456 AaSH7rW1mVKYA:123456 CbJgCeB/b3kiU:123456 LaW2D47gTdKxs:123456 Na/7WNiZrpdsQ:123456 PaQCRKB.FyAdE:123456 56Xh0RAeByXi.:123456 d6f1o2yfgtymu:123456 9 Biometrikus azonosítás Elvárások fizikai jellemz! ne változzon legyen egyedi hatékonyan lehessen mérni keletkez! adatok legyenek egyszer"en feldolgozhatók 10
Biometrikus azonosítás (folyt.) Technikák ujjlenyomat kézgeometria tenyér véna mintázat retina érhálózat kép írisz kép arc felismerés aláírás hangelemzés 11 Védelmi mechanizmusok folyamatok, objektumok (sw,hw), m"veletek védelmi tartományok folyamatokhoz rendelve (statikus, dinamikus) hozzáférési jogok objektumokhoz <objektum,jog halmaz> pl. <fájl F,{read,write}> nem feltétlenül diszjunktak 12
Védelmi tartományok Tartományok realizálása felhasználókhoz kötve folyamatokhoz kötve eljárásokhoz kötve D 1 D 2 D 3 <O 1,{read,write}> <O 2,{execute}> <O 3,{read,write}> <O 2,{wite}> <O 4,{print}> <O 1,{execute}> <O 3,{read}> 13 Védelmi mátrix Tartományok, objektumok, hozzáférési jogok nyílvántartása F1 F2 F3 printer D1 D2 D3 D4 D1 read read switch D2 print switch switch D3 read exec D4 read write read write switch nagy és ritka mátrix => implementálás ACL-ekként (Access Control List) 14
ACL-ek Objektumokhoz rendelve <domain,jog halmaz> default set domainhez rendelve Képességi listák (capability list) <típus, objektum, jog halmaz> speciális védelemre van szükség Folyamatok felhasználói és kernel módban 15 UNIX állományrendszer Fájlok, I/O eszközök Felhasználók, csoportok i-node ACL user, group, other read, write, execute setuid bit chown, chgrp, chmod, passwd 16
UNIX folyamatok Tartományok felhasználóhoz kötve valódi és e$ektív felhasználó uid, guid setuid fork, exec felhasználói és kernel rész 17 Input validálás Aktív támadások speciális, rosszándékkal el!állított inputtal Sebezhet!ség format string bugs meta characters code injection SQL injection bu$er overflow Formátum és tartalom ellen!rzés szükséges! 18
Kihasználás Stack pu$er túlcsordulás változó értékének megváltoztatása visszatérési cím megváltoztatása Sebezhet! magasabb jogosultságokkal rendelkez! program támadása (pl. setuides prg.) shellcode spec. kódolás nop sled 19 Pu"er túlcsordulás (szemléltetés) 20
Pu"er túlcsordulás (szemléltetés) 21