15
2013.11.27. 1 Weboldalak biztonsága Kertész Gábor [email protected] Ó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

Weboldalak biztonságausers.nik.uni-obuda.hu/kerteszg/files/webes_biztonsag.pdf · Wikipedia, Twitter, Tumblr, Blogok, Amazon, eBay, stbstb . 2013.11.27. 10 JavaScript kódok biztonsága

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Weboldalak biztonságausers.nik.uni-obuda.hu/kerteszg/files/webes_biztonsag.pdf · Wikipedia, Twitter, Tumblr, Blogok, Amazon, eBay, stbstb . 2013.11.27. 10 JavaScript kódok biztonsága

2013.11.27.

1

Weboldalak biztonsága

Kertész Gábor

[email protected]

Ó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

Page 2: Weboldalak biztonságausers.nik.uni-obuda.hu/kerteszg/files/webes_biztonsag.pdf · Wikipedia, Twitter, Tumblr, Blogok, Amazon, eBay, stbstb . 2013.11.27. 10 JavaScript kódok biztonsága

2013.11.27.

2

Kis történelem

• 1991: Tim Berners-Lee, CERN

• Kutatók együttműködését segítő rendszer létrehozásának ötlete

– Hypertext

– Browser

– Server

Page 3: Weboldalak biztonságausers.nik.uni-obuda.hu/kerteszg/files/webes_biztonsag.pdf · Wikipedia, Twitter, Tumblr, Blogok, Amazon, eBay, stbstb . 2013.11.27. 10 JavaScript kódok biztonsága

2013.11.27.

3

Page 4: Weboldalak biztonságausers.nik.uni-obuda.hu/kerteszg/files/webes_biztonsag.pdf · Wikipedia, Twitter, Tumblr, Blogok, Amazon, eBay, stbstb . 2013.11.27. 10 JavaScript kódok biztonsága

2013.11.27.

4

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

Page 5: Weboldalak biztonságausers.nik.uni-obuda.hu/kerteszg/files/webes_biztonsag.pdf · Wikipedia, Twitter, Tumblr, Blogok, Amazon, eBay, stbstb . 2013.11.27. 10 JavaScript kódok biztonsága

2013.11.27.

5

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

Page 6: Weboldalak biztonságausers.nik.uni-obuda.hu/kerteszg/files/webes_biztonsag.pdf · Wikipedia, Twitter, Tumblr, Blogok, Amazon, eBay, stbstb . 2013.11.27. 10 JavaScript kódok biztonsága

2013.11.27.

6

Ű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á?

Page 7: Weboldalak biztonságausers.nik.uni-obuda.hu/kerteszg/files/webes_biztonsag.pdf · Wikipedia, Twitter, Tumblr, Blogok, Amazon, eBay, stbstb . 2013.11.27. 10 JavaScript kódok biztonsága

2013.11.27.

7

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.

Page 8: Weboldalak biztonságausers.nik.uni-obuda.hu/kerteszg/files/webes_biztonsag.pdf · Wikipedia, Twitter, Tumblr, Blogok, Amazon, eBay, stbstb . 2013.11.27. 10 JavaScript kódok biztonsága

2013.11.27.

8

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

Page 9: Weboldalak biztonságausers.nik.uni-obuda.hu/kerteszg/files/webes_biztonsag.pdf · Wikipedia, Twitter, Tumblr, Blogok, Amazon, eBay, stbstb . 2013.11.27. 10 JavaScript kódok biztonsága

2013.11.27.

9

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

Page 10: Weboldalak biztonságausers.nik.uni-obuda.hu/kerteszg/files/webes_biztonsag.pdf · Wikipedia, Twitter, Tumblr, Blogok, Amazon, eBay, stbstb . 2013.11.27. 10 JavaScript kódok biztonsága

2013.11.27.

10

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

Page 11: Weboldalak biztonságausers.nik.uni-obuda.hu/kerteszg/files/webes_biztonsag.pdf · Wikipedia, Twitter, Tumblr, Blogok, Amazon, eBay, stbstb . 2013.11.27. 10 JavaScript kódok biztonsága

2013.11.27.

11

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

Page 12: Weboldalak biztonságausers.nik.uni-obuda.hu/kerteszg/files/webes_biztonsag.pdf · Wikipedia, Twitter, Tumblr, Blogok, Amazon, eBay, stbstb . 2013.11.27. 10 JavaScript kódok biztonsága

2013.11.27.

12

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!

Page 13: Weboldalak biztonságausers.nik.uni-obuda.hu/kerteszg/files/webes_biztonsag.pdf · Wikipedia, Twitter, Tumblr, Blogok, Amazon, eBay, stbstb . 2013.11.27. 10 JavaScript kódok biztonsága

2013.11.27.

13

A szolgáltatás elérését korlátozó módszerek

• Pingflood – 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

Page 14: Weboldalak biztonságausers.nik.uni-obuda.hu/kerteszg/files/webes_biztonsag.pdf · Wikipedia, Twitter, Tumblr, Blogok, Amazon, eBay, stbstb . 2013.11.27. 10 JavaScript kódok biztonsága

2013.11.27.

14

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