|
Fontos információ: az Ördöglakaton kivitelezhető támadások nem jöhettek volna létre, ha a weblap készítői komoly mérnöki munkával meg nem oldják, hogy az IIS6 olyasmit csináljon, amire biztonsági okokból nem hajlandó: a CMD.EXE szerveroldali futtatása egyáltalán nem volt triviális feladat!
A lyukak mesterségesek, emiatt a támadások, legyenek azok bármilyen rosszindulatúak, vagy hatásúak, nem minket minősítenek, hanem a támadót!
1. biztonsági incidens
Kezdődátum: 2007. 12. 06. 14:34:21
Záródátum: 2007. 12. 06. 16:41:18
|
A támadás típusa: Denial of Service
|
|
Károk: 1 óra 7 perc szolgáltatáskiesés, az annyi mint 23.678.921 $
|
Megoldás: Ütemezett feladat, mely 10 percenként kilövi az NC.EXE-ket
|
Az eset leírása:
2007. Mikulás napján délután három óra felé kaptuk az első telefonos bejelentést az Ördöglakat elérhetetlenségéről. Mivel ekkor a fő rendszergazda házonkívül volt, további egy óra telt el a hathatós intézkedésig. Az első jelekből arra lehetett következtetni, hogy sikeres Denial of Service támadást hajtottak végre a webhely ellen, amit a későbbi vizsgálatok igazoltak is. A rendszert közel tízperces megfeszített munkával, 16:41:18-kor tudtuk ismét elérhetővé tenni.
2. biztonsági incidens
Kezdődátum: 2007. 12. 08. 22:31:00
Záródátum: 2007. 12. 08. 22:31:00
|
A támadás típusa: SQL Injection
|
|
Károk: 10-es faktorú leégés, az annyi mint 73.437.191 $
|
Megoldás: Server.HtmlEncode() minden injektált mező kiíratása köré.
|
Az eset leírása:
2007. december 8-án 22:31-kor kaptuk az alábbi - stílszerűen Ördöglakat meghívóként megkomponált - hibajelentést, amely arról tájékoztat, hogy a diplomamegjelenítő nem lett eléggé átgondolva, mert ez is egy Deface-pálya, ha a játékos HTML-kódot injektál be az SQL-táblába!
3. biztonsági incidens
Kezdődátum: 2007. 12. 12. 0:00:00
Záródátum:
|
A támadás típusa: Jelszóváltoztatás az SQL Serveren
|
|
Károk: Éjszaka nem ment az Ördöglakat, az annyi mint 12.487.537 $
|
Megoldás:
|
Az eset leírása:
2007. december 12-én reggel az Ördöglakaton az a hibaüzenet fogadott, hogy az Ordoglakat nevű felhasználó nem tudott belépni az SQL Serverbe. Már vártuk ezt a fajta támadást, ami tulajdonképpen elkerülhetetlen, HA az ember idegeneket enged be a gépére. Miről is van szó? Elsőre talán azt gondolnánk, hogy az SQL Injection pályán változtatható meg a jelszó, hisz ott is "be vagyok engedve", egy SQL-felhasználó vagyok, nyilván jogom van a saját jelszavam megváltoztatására. Azonban ha valaki kipróbálja az ALTER LOGIN (korábbi nevén sp_password) parancsot, láthatja, hogy egy normál felhasználónak nincs joga megváltoztatni a saját jelszavát. (Ahhoz ALTER ANY LOGIN jogosultság kellene.)
4. biztonsági incidens
Kezdődátum: 2007. 12. 12. 19:31:00
Záródátum:
|
A támadás típusa: Adatlopási kísérlet
|
|
Károk: Nyilvános pánik a köbön, eszeveszett kapkodás, az annyi mint 5.234.921 $
|
Megoldás: Az előző incidenssel együtt megoldódott.
|
Az eset leírása:
2007. december 15. Rutinellenőrzés során gyanús fájlokat találtunk a .net Temp könyvtárában. Első közelítésre a végrehajtható fájl egy SpyWare-nek tűnt, de később kiderült, hogy csak egy átnevezett NetCat.EXE. A másik fájl viszont egyértelműen az Ördöglakat adatbázis mentése, amiben az a gáz, hogy ebben bent van az összes regisztrált felhasználó neve, emailcíme és jelszóhash-e. A legnagyobb kár akkor ért volna bennünket, ha az emailcímek kikerülnek, illetve ha az egyik emailcím alapján kiderül, hogy az egyik játékosunk milliárdos, mert annak azért érdemes lett volna a jelszavát fetörni. Ilyenkor térül meg, hogy annak idején úgy döntöttünk: mindenki random jelszót kap. Így legalább csak azoknak lett azonos a felhasználóneve és jelszava bármi mással, ha ezért tevékenyen tett, küzdött, és ő maga lecserélte a jelszavát valami "kényelmesre".
5. biztonsági incidens
Kezdődátum: 2007. 12. 16. 0:00:00
Záródátum:
|
A támadás típusa: Keylogger kísérlet
|
|
Károk: 0 $
|
Megoldás: DELETE *.* /Y /S
|
Az eset leírása:
2007. 16-án rutinellenőrzés során gusztustalan programokat találtuk a Backdoor pályán engedélyezett felhasználó számára is írható C:\WMPUB könyvtárban.
6. biztonsági incidens
Kezdődátum: 2007. 12. 06. 14:44:00
Záródátum:
|
A támadás típusa: Denial of Service
|
|
Károk: 1 perc szolgáltatáskiesés, az annyi mint 546.456 $
|
Megoldás: Leszámolás a Network Service-illúzióval
|
Az eset leírása:
2007. december 16. 14:44-kor az Ördöglakat leesett a hálózatról. Rövid vizsgálat kiderítette, hogy az egyik játékos az általunk beengedett Network Service felhasználóval (az ominózus Backdoor pálya már megint) kipróbálta, fel tud-e venni statikus bejegyzést az ARP cache-be. Szégyen és gyalázat: igen! És persze mi történik, ha hülyeségeket visz be az ARP Cache-be? Azonnali teljes megvakulás az adott cím(ek) felé. Ő nem aprózta el, a Default Gateway címét ütötte felül egy véletlenszerű MAC Addressel: Az alatta lévő parancsról meg ne is beszéljünk :-( Hogy fordulhatott elő ez a hiba? Úgy, hogy a határidő szorításában senki nem tesztelte végig, mit is tud pontosan a Network Service. A marketing bullshit szerint ez egy gyenge felhasználó, direkt abból a célból, hogy ha ezzel fut egy szolgáltatás, de megborítják, a támadónak ne legyen semmiféle rongálási joga. Idézet innen:
The Network Service account is a special, built-in account that is similar to an authenticated user account. The Network Service account has the same level of access to resources and objects as members of the Users group. This limited access helps safeguard your system if individual services or processes are compromised.
A tapasztalat nem ezt igazolta. A Network Service röpült, hogy a lába nem érte a földet.
Mellékhatás: a Backdoor pálya bedöglött, mivel per pillanat annyira gyenge felhasználóval fut az IIS, hogy annak nincs joga processt indítani. A probléma megoldásán, a pálya kijavításán dolgozunk, lesz itt ismét Backdoor!
7. biztonsági incidens
Kezdődátum: 2007. 12. 16. 0:00:00
Záródátum: 2007. 12. 17. 0:00:00
|
A támadás típusa: a programozó téved
|
|
Károk: Elérhetetlen weblapok, sérült pályák, hiányzó CSS stb. Az annyi mint: 123.123.123.123.123 $
|
Megoldás: Küzdelmes áttérés
|
Az eset leírása:
2007. december 16. Az Ördöglakat mindenféle idióta hibaüzenettel szórakoztatja a játékosokat. Missing LINQ.DLL és hasonlók. Néha a fekete alap fehérré változik. A Deface pálya és a Diploma hibaüzenetet ad.
A probléma oka: az egyik fejelsztő, aki áttért Visual Studio 2008-ra, eszement módon "Yes"-t nyomott arra a fenyegető kérdésre, hogy "Áttérjünk-e .net Framework 3.5-re?". A hülyeség bekövetkezésének esélyét nagyban növelte az akut adatlopási pánik (Incidens IV.). Ha az nem lett volna, bizonyára ez a gomb sem nyomódott volna meg.
A projekt átállt. A szerver meg nem. A hatás nem maradt el, mivel ez a Framework verzió nincs is feltelepítve az Ördöglakatra :)
Az Ördöglakat azért van, hogy tanuljunk a hibákból...
8. biztonsági incidens
Kezdődátum: 2008. 08. 09. 0:00:00
Záródátum:
|
A támadás típusa: a programozó téved
|
|
Károk: kihagyható páylák az Ördöglakaton! Megőrülök! A kár: felbecsülhetetlen $
|
Megoldás: asp.net kód átnyálazása
|
Az eset leírása:
2008. augusztus 9, szép nyári nap. Egyik játékosunk egy árnyas fa alatt ülve az Ördöglakatot kínozza. Hiába, általában dögunalom a nyaralás, fel kell dobni valamivel :-) Játékosunk türelmetlen, azon agyal, hogyan léphetne előre a diploma felé kicsit nagyobb léptekkel, mint ahogy azt a Tervezők tervezték, anélkül, hogy vére folyna (életerő). Rövid (!) próbálkozás utánn sikerrel jár! Jaj!
Az eljárás menete: Juss el egy játékosoddal bármi áron a bármelyik szintre. Mindegy, hogy milyen lassan és bénán, mekkora életerővel, mert ez a játékos csak töri az utat. Használd fel az összes hintet bátran. Regisztálj egy másik néven. Lépj be az agyongyötört felhasználóddal, melynek már szinte semmi élete sincs, de jól előrejutott. Menj a legmagasabb pályára, ahová a másik, friss játékosoddal repülni akarsz. Lépj ki a ronccsal, lépj be az újjal, és tádá! Egyből azon a szinten vagy, ahol a kolléga "haldoklik" A "hiba" oka az, ahogyan az asp.net alapból kezeli a ki- és bejelentkezéseket. Alapjában véve nem igazi hiba, hanem inkább kényelmi szolgáltatás, hogy ha kijelentkezünk, azonnal és automatikusan eldob a login lapra, mégpedig úgy, hogy ha sikerül a bejelentkezés, visszadob ugyanoda, ahonnan jöttünk. Ez a mi esetünkben hiba, mert ugyanaz a lap nem feltétlenül érhető el az új felhasználó számára. Lássuk, hogyan történik ez. A "kijelentkezés" link megnyomása eldob minket a login.aspx lapra, ahol megfigyelhető, hog az eredeti lap elérési útja hozzáfűződik az URL végéhez, vagyis alapból feltöltődik annak a lapnak a címével, ahonnan a kijelenkezést kezteményeztük (ReturnUrl paraméter).
A megoldást az jelenti, ha a "kijelentkezés" link teljesen kidob a főoldalra. Szerencsére erre az asp.net fejlesztői is gondoltak, ezért további két paraméter megadásával, programozás nélkül be tudtuk foltozni a biztonsági rést.
Many thanks to Diamont Ágoston
9. biztonsági incidens
Kezdődátum: 2008. 12. 17. 0:00:00
Záródátum:
|
A támadás típusa: a programozó ismét téved
|
|
Károk: már megint kihagyható páylák az Ördöglakaton! A kár: felbecsülhetetlen $
|
Megoldás: asp.net kód átnyálazása
|
Az eset leírása:
2008. december eleje-közepe, készülődés a nyugodt-békés karácsonyra. Egyszer csak levél jön, hogy már megint meg lehet kerülni a pályákat! Az eszem megáll! Ez meg hogy lehet már megint?! Hát úgy, hogy minden szoftver garantáltan bugos! Az Ördöglakat is! Most éppen az volt a baja, hogy a kolléga, aki a többnyelvesítést végezte, a saját kényelme érdekében kikommentezett egy létfontosságú csalásdetektort, ami megakadályozta, hogy olyan pályára lépjen bárki, ami még nem jár neki. A kikommentezést nem dokumentálta, el is felejtette. A kódot ezzel a "kisebb" módosítással véglegesítettük december tizenvalahanyadikán. Nem kellett hozzá egy hét, hogy valaki rátaláljon a biztonsági résre!
Az eljárás menete majdnem ugyanaz, mint augusztusban: Juss el egy játékosoddal bármi áron a bármelyik szintre. Mindegy, hogy milyen lassan és bénán, mekkora életerővel, mert ez a játékos csak töri az utat. Használd fel az összes hintet bátran. Regisztálj egy másik néven. Lépj be az agyongyötört felhasználóddal, melynek már szinte semmi élete sincs, de jól előrejutott. Menj a legmagasabb pályára, ahová a másik, friss játékosoddal repülni akarsz. Kopizd ki az URL-t, és másold be a friss felhasználónál. A pálya kicsit betegen jön be, de a továbbjutási kérdés látszik, a gomb ottvan, add meg a helyes választ, és továbblépsz! A hiba oka egyetlen sor kimommentezése volt.
Many thanks to Blackpro921
|