Weboldalak biztonsága Kertész Gábor kertesz.gabor@arek.uni-obuda.hu Óbudai Egyetem Alba Regia Egyetemi Központ http://arek.uni-obuda.hu/~kerteszg Mi a web? Gyakori tévedés: az internet és a web nem ugyanaz! Internet: világméretű hálózat Web: egy alkalmazás az interneten Tipikus használati formája: a böngészőn keresztül 1
1991: Tim Berners-Lee, CERN Kutatók együttműködését segítő rendszer létrehozásának ötlete Hypertext Browser Server Kis történelem 2
3
Statikus oldalak A HTML kód a háttérben változatlan A tartalom módosításához a forrásfájlok szerkesztése szükséges Felhasználói interakció gyakorlatilag nincs Statikus oldalak biztonsága Tömören: biztonságos A fájlok csak olvashatóak a weben keresztül A módosításhoz a kiszolgálóra való bejelentkezés szükséges A kiszolgáló operációs rendszere, fájlkiszolgálója, webkiszolgálója azonban mindig tartalmazhat hibát, amellyel hozzáférést biztosíthat jogosulatlanoknak 4
Dinamikus oldalak A webkiszolgáló megkapja a kérést, kikeresi a tárhelyén a kiszolgálandó dokumentumot A dokumentum azonban értelmezendő utasításokat tartalmazhat Ezt a programot futtatva áll elő a kiszolgálandó tartalom A böngésző és a felhasználó számára ez láthatatlan PHP Personal Home Page Tools Szerver oldali általános scriptnyelv 5
Űrlapok feldolgozása Adatbázisok a háttérben Felhasználói űrlapok direkt tárolása Tartalmak betöltése az adatbázisból Weblap online adminisztrációja Ki fér hozzá? 6
Dinamikus oldalak biztonságossága Tömören: biztonságos, ha a fejlesztő tudja a dolgát A program forrásfájljai nem elérhetőek a webről: mindig csak a futtatás eredményét kapja meg a böngésző, azaz a HTML oldalt Különlegesség, hogy a kiszolgáló szoftverei ezúttal az adatbázis kiszolgáló és az értelmező program is, bennük is lehet hiba Persze a programozó hibázhat, és hagyhat rést de erről majd később Hitelesítés, munkafolyam követés A web a tervezéséből adódóan olyan rendszer, amely nem követi, hogy kivel mi történt eddig TBL statikus dokumentum-kiszolgálásra fejlesztette ki, az autentikáció olyan funkció, amit utólag kellett beletenni Megoldás böngésző oldalról: süti Apró szöveges állomány, amely minden kéréssel elküldődik a kiszolgálónak, a feldolgozónyelv eléri a tartalmát. Szerver oldali megoldás: session A süti elvére épül, azonban a böngészőben csak egy azonosító kerül tárolásra, és ez az azonosító van továbbítva a szervernek. A szerveren az azonosítóhoz változók, értékek társíthatóak. 7
Ki a hiteles felhasználó? Adatbázis alapú hitelesítés, a webalkalmazás saját logikája alapján Hitelesítés a kiszolgáló saját felhasználói fiókjai alapján (HTTP protokoll sajátja) A hitelesítés biztonságos? Süti: önmagában különleges megoldás, a tartalmak a számítógépen vannak tárolva. Mindenki, aki a számítógépet használja, potenciálisan hozzáférhet az állományokhoz nem érdemes jelszavakat, felhasználói információkat tárolni benne. Session: alapjaiban biztonságosnak hihető, hiszen az adatok a kiszolgálón tároltak. De! Az azonosítót a böngésző küldi, és sütiben tárolja: sütilopás, sessionlopás 8
Dinamikus kód a böngészőben JavaScript Brendan Eich nevű fiatalember alkotta meg a 90- es évek közepén, mindössze 10 nap alatt! Ártalmas kódok, gyors halál, majd 2002 körül újra feltűnt A mai weboldalak nem tudnak létezni nélküle AJAX Web 2.0 Web 2.0 Tim O Reilly tollából Olyan alkalmazások, ahol a tartalmakat a felhasználó szolgáltatja, nem a webszerkesztő. Technikai ismeretekre nincs szükség Facebook, Youtube, Wikipedia, Twitter, Tumblr, Blogok, Amazon, ebay, stbstb 9
JavaScript kódok biztonsága Tömören: kicsit sem biztonságos! A kódok a HTML forrásában vannak, komolyabb technikai tudás nélkül is olvashatóak ezek Kis ügyeskedéssel módosíthatóak Ha hitelesítés, vagy tartalom validálása van a kliens-oldalon végezve, akkor kellemetlen tapasztalataink lehetnek A böngészők különféle szinteken támogatják a nyelvet, lehet, hogy nem ugyanazt a viselkedést produkálja(!) 10
Támadási, betörési módok Hálózat hiányosságaira alapozott Ember-alapú módszerek Technológia hibáját kihasználó módszer A szolgáltatás elérését korlátozó módszerek Programozó hibájából eredő veszélyek Hálózat hiányosságaira alapozott Man in the middle A vonal lehallgatása, a bejelentkezési információk ellopása A vonal lehallgatása, az átmenő utasítások, és a visszaadott oldalak módosítása Megoldás: Titkosítás, digitális aláírás, csomagok ellenőrző számmal 11
Ember-alapú módszerek Social engineering Emberek bizalmára alapozott információszerzés E-mail jelszó a szolgáltatótól Shoulder Surfing Dumpster Diving Ál-oldalak Az eredetivel megegyező kinézetű, de más viselkedésű oldalak, amelyek esetleg tárolják a belépési infokat Phishing Megtévesztő e-mail címről küldött üzenetek, amelyek vagy hivatkozásra kattintást, vagy választ várnak Technológia hibáját kihasználó módszer Exploit Egy biztonsági rés hibáját kiaknázó program Vírus, trójai faló Gyakori hibák helye az operációs rendszer, a kiszolgáló vagy az adatbázis Megoldás Patch, hivatalos frissítés, javítás JavaScript-beli hiba Rosszindulatú kódok jogosulatlanul elérhetnek privát információkat Böngészőfrissítés szükséges! 12
Pingflood A szolgáltatás elérését korlátozó módszerek A kiszolgálót egy adott típusú kéréssel leterheli az ügyfél, aki képtelen lesz felelni, és leszakad a hálózatról DOS Denial Of Service, szolgáltatásmegtagadás Kiszolgáló terhelése többféle kéréssel, netán általános de gyakori kérésekkel, hogy nehezebben legyen kiszűrhető Distributed DOS Elosztott szolgáltatásmegtagadás Sok gép által, együttesen indított támadás Botnet Nagyon elterjedt, még a nagyok is nehezen élik túl És persze az emberi tényező: a szerver áramellátásának vagy a kapcsolatának szabotálása Programozó hibájából eredő veszélyek SQL Injection Adatbázis utasítások módosítása a beviteli űrlapon keresztül SQL utasítás módosítása, és a viselkedés alapjaiban megváltozik 13
Programozó hibájából eredő veszélyek XSS Cross Site Scripting Beviteli mezőn bevitt tartalom valójában JavaScript kód, amely betöltéskor lefut Védekezés? Ha a programozó nem tette meg, és a felhasználó belefut, akkor nehézkes NoScript Webes biztonság A támadások általánosságban összetettek, több módszert alkalmaznak Hazai kötődésű mintapélda: chat.hu jelszólopás XSS-résen keresztül, ál-oldallal http://www.youtube.com/watch?v=sxsx0hqnla0 14
Köszönöm a figyelmet! E-mail: kertesz.gabor@arek.uni-obuda.hu Web: http://arek.uni-obuda.hu/~kerteszg 15