Adatbázis kezelő szoftverek biztonsága Vasi Sándor sanyi@halivud.com G-3S8 2006.
Egy kis ismétlés... Adatbázis(DB): integrált adatrendszer több különböző egyed előfordulásainak adatait adatmodell szerinti struktúrában, (...) tárolja a kapcsolat leíró elemek mellett Ember Autó DB
Egy kis ismétlés... Adatbázis Kezelő (DBMS): Feladata: az adatbázishoz történő szabályozott hozzáférés biztosítása az adatbázis belső karbantartási műveleteinek végrehajtása Védelem Naplózás Integritás ellenőrzés Optimalizálás Párhuzamos hozzáférés ellenőrzés DB DBMS
és amiről ma szó lesz... DBMS DB A felhasználói szoftver, ami mindezeket használja
és amiről ma szó lesz... És a felhasználó, ( aki ezekben megpróbál kárt tenni... :) DBMS DB
A rendszerkomponensek viszonya I.
A rendszerkomponensek viszonya I. A DBMS, a Felhasználó, és a Program 1 helyen vannak (pl. Pascal cipőnyilvántartó program) Nincs hálózati forgalom, nem lehet feltörni Gyors az adatkapcsolat Egy felhasználós progam Másolható a szoftver, és az adatbázis is A forrás kéznél van, bárki átírhatja, visszafejtheti
A rendszerkomponensek viszonya II.
A rendszerkomponensek viszonya II. A DBMS és a Program egy szerveren fut, a felhasználó egy terminál előtt ül SZERVER (DBMS + app.) VS felhasználó (pl. Webmail, vagy a Neptun) Több felhasználós Nem kell telepíteni (ezért plattform független) A kapcsolat WEB-en lehet titkosított (HTTPS) vagy RDP protokollon keresztül (szintén titkosított) A rendszerhez nem lehet közvetlenül hozzáférni Lassú (Neptun, iwiw,... ) Nem túl interaktív a web miatt
A rendszerkomponensek viszonya III.
A rendszerkomponensek viszonya III. A DBMS egy szerveren fut, A Program egy kliensen fut A Felhasználó a kliens előtt ül SZERVER (DBMS) VS Felhasználó + App. A kapcsolat gyors Az adatbázishoz nem lehet közvetlenül hozzáférni Több felhasználós A kliensprogram visszafejthető Az adatkapcsolat nem biztonságos A rendszergazdák nem szeretik, ha a DBMS-re localhost - on kívül mást is be kell engedni...
A rendszerkomponensek viszonya IV. SSL Tunnel
A rendszerkomponensek viszonya IV. A DBMS egy szerveren fut, A Program egy kliensen fut A Felhasználó a klienseket használja SZERVER (DBMS) VS Felhasználó + App. Titkosított adatkapcsolat A kapcsolat még gyors (ugyan a titkosítás időt vesz el) Az adatbázishoz nem lehet közvetlenül hozzáférni Több felhasználós A kliensprogram visszafejthető
A visszafejtés veszélye mennyire reális? Bármely futtatható program visszaalakítható assembly kóddá. ennek a visszafejtése nagy szakértelmet kíván, és sokszor nem éri meg a fáradtságot!
Mi a helyzet a alkalmazásokkal? A.NET programok kódja visszafejthető, ezzel minden.net programozónak tisztában kell lennie! Hogyan lehet visszafejteni a kódot? Ingyenes.NET visszafejtő programok a Microsoft tól: Reflector for.net ( visual basic-re, C# -re visszafordít bármit ) Anakrino ( Bővebben lásd: www.goddotnet.com ) Itt kell megjegyeznem, hogy nem csak a.net, hanem a JAVA alkalmazások is ugyanilyen veszélynek vannak kitéve!
Reflector for.net működés közben
Hogyan lehet védekezni ellene? A Microsoft javaslata:.net Obfuscator A változókat olyan szavakra cseréli, melyek emberek számára érthetetlenek A program ugyanazt csinálja, mint eddig, csak a forrás megértghetetlen lesz Én inkább ezt csinálnám: - Tegyük ki a jelszavakat olyan DLL fájlokba, amik nem.net nyelveiben készültek. - Még jobb: használjuk a két módszert egyszerre
SSL Tunnel AZ SSL Tunnel egy olyan alkalmazás, amely lehetővé teszi, hogy tetszés szerinti TCP kapcsoaltot SSL (Secure Sockets Layer) rétegen keresztül létesítsünk. Az SSL Tunnel segítségével nem SSL képes protokollokat is (pl. POP, IMAP, LDAP ) titkosítani lehet anélkül, hogy a daemon program kódján változtatni kellene. Kiválló megvalósítása a GNU licensz alá tartozó STunnel (www.stunnel.org)
Egy példa az SSL Tunnel működésére
SSL a biztonságos csatlakozó réteg - 1995 Netscape Communication Corp. Mit is nyújt valójában? 1. Paraméterek egyeztetése az ügyfél és kiszolgáló között 2. Kölcsönös hitelesítés az ügyfél és a kiszolgáló között 3. Titkos kommunikáció 4. Az adatok sértetlenségének a biztosítása
SSL a biztonságos csatlakozó réteg Az SSL segítségével böngésző otthoni felhaasználó által használt rétegek, és protokollok Alkalmazási Réteg (HTTP) Bitonsági réteg (SSL) Szállítási réteg (TCP) Hálózati réteg (IP) Adatkapcsolati réteg (PPP) Fizikai réteg (modem, ADSL, kábeltv)
Még többet az SSL protokollról! Az SSL protokoll két alprotokollból áll: 1. Biztonságos összeköttetésért felelős alprotokoll 2. Az összeköttetés használatát megvalósító alprotokoll
1.- AZ SSL összeköttetés kiépítő alprotokollja 1.- SSL verzió, előnyben részesített beállítások, R A 2.- SSL verzió, választások, R B 3.- X.509 tanusítványlánc 4.- Kiszolgáló rész Aliz 5.- E B (előzetes kulcs) 6.-Válts kódot Bob 7.-Kész 8.- Válts kódot 9.- Kész
2.- Az összeköttetést használó alprotokoll 1. legfeljebb 16 KB-os egységekre darabolás 2. (ha engedélyezett) akkor minden egységet külön tömörítenek 3. titkos kulcs: R A & R B & E B titkos kulcs + tömörített szöveg konkatenációja 4. Az eredméyből hash-t készítenek (pl. MD5) ez a MAC (message authentication code) 5. A MAC-et minden részhez hozzáfűzik 6. Szimmetrikus titkosítás 7. Végül fejrészt az egyes részekhez -> TCP
Adatátvitel SSL segítségével Üzenet a böngészőből Darabolás 1. rész 2. rész Tömörítés MAC hozzáadva Titkosítás Fejléchez hozzáadva
Köszönöm a figyelmet!