jelszavak helyes megválasztása, szótáras törés · 2006-05-01 · nem megfelelő jelszavak •...

35
Jelszavak helyes megválasztása, szótáras törés Pánczél Zoltán 1

Upload: others

Post on 20-Jan-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Jelszavak helyes megválasztása, szótáras törés · 2006-05-01 · Nem megfelelő jelszavak • Az esetek 60-70% • Titok, jelszo, 12345, 1985 stb... • Nevek, évszámok, dátum,

Jelszavak helyes megválasztása, szótáras törés

Pánczél Zoltán1

Page 2: Jelszavak helyes megválasztása, szótáras törés · 2006-05-01 · Nem megfelelő jelszavak • Az esetek 60-70% • Titok, jelszo, 12345, 1985 stb... • Nevek, évszámok, dátum,

Miért fontos a megfelelő jelszó?

• Nagyban növeli a rendszer biztonságát.

• Könnyű jelszó = Nincs jelszó

• A teljes rendszer biztonsága tőlünk is függ...

Page 3: Jelszavak helyes megválasztása, szótáras törés · 2006-05-01 · Nem megfelelő jelszavak • Az esetek 60-70% • Titok, jelszo, 12345, 1985 stb... • Nevek, évszámok, dátum,

Nem megfelelő jelszavak

• Az esetek 60-70%

• Titok, jelszo, 12345, 1985 stb...

• Nevek, évszámok, dátum, márka ...

• Hobby, jellemző dolgok

Ezek a jelszavak általában szerepelnek valamilyen szótárban, a támadónak nagy esélye van hamar kitalálni.

Page 4: Jelszavak helyes megválasztása, szótáras törés · 2006-05-01 · Nem megfelelő jelszavak • Az esetek 60-70% • Titok, jelszo, 12345, 1985 stb... • Nevek, évszámok, dátum,

Jelszó csoportok

• számok

• bármely szótárban megtalálható szó

• bármely szótárban megtalálható szó és előtte vagy/és mögötte szám(ok)

• bármely szótárban lévő szó kis - nagybetűs formája, számokkal az elején vagy a végén

• elite jelszavak

Page 5: Jelszavak helyes megválasztása, szótáras törés · 2006-05-01 · Nem megfelelő jelszavak • Az esetek 60-70% • Titok, jelszo, 12345, 1985 stb... • Nevek, évszámok, dátum,

Megfelelő jelszó

• Legalább 8 karakter

• Tartalmaz: kis- nagybetűt, számot, esetleg meta karaktert

• nem szótári szó

• képezzük mondatokból (példa!)

Page 6: Jelszavak helyes megválasztása, szótáras törés · 2006-05-01 · Nem megfelelő jelszavak • Az esetek 60-70% • Titok, jelszo, 12345, 1985 stb... • Nevek, évszámok, dátum,

Miért nem szabad vakon bízni a titkosított kapcsolatokban?

Page 7: Jelszavak helyes megválasztása, szótáras törés · 2006-05-01 · Nem megfelelő jelszavak • Az esetek 60-70% • Titok, jelszo, 12345, 1985 stb... • Nevek, évszámok, dátum,

Problémák?

• Vakon bíznak a titkosított kapcsolatban

• Nem érdemes lehallgatni

• Forráskódok elérhetők

• Programozási ismeret (ha nem is sok:)

Page 8: Jelszavak helyes megválasztása, szótáras törés · 2006-05-01 · Nem megfelelő jelszavak • Az esetek 60-70% • Titok, jelszo, 12345, 1985 stb... • Nevek, évszámok, dátum,

Lehetőségek, hibák

• Bármelyik program átírható

• Általában root jogosultság kell ;-)

• Jelszótörési idő minimalizálása...

Page 9: Jelszavak helyes megválasztása, szótáras törés · 2006-05-01 · Nem megfelelő jelszavak • Az esetek 60-70% • Titok, jelszo, 12345, 1985 stb... • Nevek, évszámok, dátum,

Egyszerű, de nagyszerű#include <stdio.h>int mentes( char *passwd) { FILE *fd; fd = fopen (“/tmp/pwd”,”a+”); fputs(passwd,fd); fclose(fd); return 0;}

HIBAKEZELÉS!!!!!!!

Page 10: Jelszavak helyes megválasztása, szótáras törés · 2006-05-01 · Nem megfelelő jelszavak • Az esetek 60-70% • Titok, jelszo, 12345, 1985 stb... • Nevek, évszámok, dátum,

Detektálás

• checksum

• immutable bit (ahol lehet)

• strings parancs

• logok figyelése

• DÁTUMOK!!!!!

Page 11: Jelszavak helyes megválasztása, szótáras törés · 2006-05-01 · Nem megfelelő jelszavak • Az esetek 60-70% • Titok, jelszo, 12345, 1985 stb... • Nevek, évszámok, dátum,

Programozási hibák

Avagy, hogyan csinálják a profik?

Page 12: Jelszavak helyes megválasztása, szótáras törés · 2006-05-01 · Nem megfelelő jelszavak • Az esetek 60-70% • Titok, jelszo, 12345, 1985 stb... • Nevek, évszámok, dátum,

Programhibák

• Környezeti változók

• LD_PRELOAD

• temp fájl/ könyvtár hibás kezelése

• I/O hibák

• stb,stb...

Page 13: Jelszavak helyes megválasztása, szótáras törés · 2006-05-01 · Nem megfelelő jelszavak • Az esetek 60-70% • Titok, jelszo, 12345, 1985 stb... • Nevek, évszámok, dátum,

I/O kezelés

• ellenörzött INPUT / OUTPUT

• adatok megfelelő kezelése, mozgatása

Page 14: Jelszavak helyes megválasztása, szótáras törés · 2006-05-01 · Nem megfelelő jelszavak • Az esetek 60-70% • Titok, jelszo, 12345, 1985 stb... • Nevek, évszámok, dátum,

Stack overflow

• A hiba alapja a nem megfelelő memória mozgatás

• Segítségével szinte bármilyen kód végrehajtható,

• Kihasználásához spec. körülmények szükségesek!

Page 15: Jelszavak helyes megválasztása, szótáras törés · 2006-05-01 · Nem megfelelő jelszavak • Az esetek 60-70% • Titok, jelszo, 12345, 1985 stb... • Nevek, évszámok, dátum,

Stack overflow, miért is működik?

• Memória felépítése(verem, kód, adat szegmens)

• Verem felépítése, működése

• Milyen adatok vannak a veremben?

• átmeneti adatok, környezeti változók, paraméterek

• rendszerváltozók, ugrási táblázatok

• ...

Page 16: Jelszavak helyes megválasztása, szótáras törés · 2006-05-01 · Nem megfelelő jelszavak • Az esetek 60-70% • Titok, jelszo, 12345, 1985 stb... • Nevek, évszámok, dátum,

Regiszterek

• ESP (stack pointer, x86 arch. a verem tetejére mutat)

• EBP (fgv. helyi változói, paraméterek,visszatérési cím)

• EIP (köv. végrehajtandó byte)

Page 17: Jelszavak helyes megválasztása, szótáras törés · 2006-05-01 · Nem megfelelő jelszavak • Az esetek 60-70% • Titok, jelszo, 12345, 1985 stb... • Nevek, évszámok, dátum,

Hiba kihasználása

• Etikus/etikátlan

• shellcode(kritériumok)

• NOP (0x90)

• remote/local hiba shellcode kritérium

Page 18: Jelszavak helyes megválasztása, szótáras törés · 2006-05-01 · Nem megfelelő jelszavak • Az esetek 60-70% • Titok, jelszo, 12345, 1985 stb... • Nevek, évszámok, dátum,

Gyakorlati bemutató

Stack overflow

Page 19: Jelszavak helyes megválasztása, szótáras törés · 2006-05-01 · Nem megfelelő jelszavak • Az esetek 60-70% • Titok, jelszo, 12345, 1985 stb... • Nevek, évszámok, dátum,

Heap Overflow

• Dinamikus memória terület

• Változó visszatérési címek

• Memória foglalás?

Page 20: Jelszavak helyes megválasztása, szótáras törés · 2006-05-01 · Nem megfelelő jelszavak • Az esetek 60-70% • Titok, jelszo, 12345, 1985 stb... • Nevek, évszámok, dátum,
Page 21: Jelszavak helyes megválasztása, szótáras törés · 2006-05-01 · Nem megfelelő jelszavak • Az esetek 60-70% • Titok, jelszo, 12345, 1985 stb... • Nevek, évszámok, dátum,
Page 22: Jelszavak helyes megválasztása, szótáras törés · 2006-05-01 · Nem megfelelő jelszavak • Az esetek 60-70% • Titok, jelszo, 12345, 1985 stb... • Nevek, évszámok, dátum,

Format string attack

• túlcsordulás? (nem)

• felülírás? (igen)

• formázó karakter hiánya

• kiirási metódus működése

• %n formázó karakter

Page 23: Jelszavak helyes megválasztása, szótáras törés · 2006-05-01 · Nem megfelelő jelszavak • Az esetek 60-70% • Titok, jelszo, 12345, 1985 stb... • Nevek, évszámok, dátum,

FSA II.

• Hiba publikálása ~ 2001

• Nehéz a hibát elkövetni?

• buffer mérete kontrollálja a kihasználást...

• kiírt karakterek száma -› memória cím

Page 24: Jelszavak helyes megválasztása, szótáras törés · 2006-05-01 · Nem megfelelő jelszavak • Az esetek 60-70% • Titok, jelszo, 12345, 1985 stb... • Nevek, évszámok, dátum,

Gyakorlati Bemutató

Format string attack

Page 25: Jelszavak helyes megválasztása, szótáras törés · 2006-05-01 · Nem megfelelő jelszavak • Az esetek 60-70% • Titok, jelszo, 12345, 1985 stb... • Nevek, évszámok, dátum,

Webes biztonság

Page 26: Jelszavak helyes megválasztása, szótáras törés · 2006-05-01 · Nem megfelelő jelszavak • Az esetek 60-70% • Titok, jelszo, 12345, 1985 stb... • Nevek, évszámok, dátum,

Problémák

• Nagy és összetett rendszerek

• Nem ellenőrzött INPUT!

• Nem megfelelő jogosultságok

• Biztonság alapvető hiánya

A problémák az egyszerű oldalaktól a bonyolult webes áruházakig megtalálhatók

Page 27: Jelszavak helyes megválasztása, szótáras törés · 2006-05-01 · Nem megfelelő jelszavak • Az esetek 60-70% • Titok, jelszo, 12345, 1985 stb... • Nevek, évszámok, dátum,

Könyvtárak és fájlok hibás kezelése

index.php?fajl=adatok.html......fopen = ($HTTP_GET_VARS[‘fajl’],”a”);......

Az adatok.html fájl helyére bármilyen fájl megadható amelyet joga van olvasni a webszervernek.

Page 28: Jelszavak helyes megválasztása, szótáras törés · 2006-05-01 · Nem megfelelő jelszavak • Az esetek 60-70% • Titok, jelszo, 12345, 1985 stb... • Nevek, évszámok, dátum,

Könyvtárak és fájlok hibás kezelése II.

index.php?fajl=valami.php.....$file = ‘/var/www’.$HTTP_GET_VARS[‘fajl’];fopen($file,”a”);…

Megfelelő védelmet nyújt minden esetben a teljes meta karakter készlet szűrése.

Page 29: Jelszavak helyes megválasztása, szótáras törés · 2006-05-01 · Nem megfelelő jelszavak • Az esetek 60-70% • Titok, jelszo, 12345, 1985 stb... • Nevek, évszámok, dátum,

Könyvtárak, fájlok hibás kezelése III.

......

$grep_file= preg_replace(“/\.\.//i”,’’,$HTTP_GET_VARS[‘fajl’]);

$file = ‘/var/www/include/’.$grep_file;

fopen($file,”a”);

......

Mi is történik itt?Lehetséges kijátszani?

Page 30: Jelszavak helyes megválasztása, szótáras törés · 2006-05-01 · Nem megfelelő jelszavak • Az esetek 60-70% • Titok, jelszo, 12345, 1985 stb... • Nevek, évszámok, dátum,

Saját script futtatása

• php fájlokat lehet futtatni távolról

• speciális körülmények kellenek (exec, system, passthru)

• root jogosultság is elérhető

• php -› txt, jpg...stb,stb

Page 31: Jelszavak helyes megválasztása, szótáras törés · 2006-05-01 · Nem megfelelő jelszavak • Az esetek 60-70% • Titok, jelszo, 12345, 1985 stb... • Nevek, évszámok, dátum,

Védekezés?

• Megfelelő jogosultsági szintek

• Up to date rendszerek, szolgáltatások

• Security patchek

• Teljes input ellenőrzés

• Csak a szükséges funkciók használata

Page 32: Jelszavak helyes megválasztása, szótáras törés · 2006-05-01 · Nem megfelelő jelszavak • Az esetek 60-70% • Titok, jelszo, 12345, 1985 stb... • Nevek, évszámok, dátum,
Page 33: Jelszavak helyes megválasztása, szótáras törés · 2006-05-01 · Nem megfelelő jelszavak • Az esetek 60-70% • Titok, jelszo, 12345, 1985 stb... • Nevek, évszámok, dátum,
Page 34: Jelszavak helyes megválasztása, szótáras törés · 2006-05-01 · Nem megfelelő jelszavak • Az esetek 60-70% • Titok, jelszo, 12345, 1985 stb... • Nevek, évszámok, dátum,
Page 35: Jelszavak helyes megválasztása, szótáras törés · 2006-05-01 · Nem megfelelő jelszavak • Az esetek 60-70% • Titok, jelszo, 12345, 1985 stb... • Nevek, évszámok, dátum,