I CAPTCHA!!! Ember embernek farkasa
Hír küldése
Szaporodtak a cikkek a különféle captchák feltöréséről, de most került ki a legrészletesebb analízis egy ilyen támadásról.
Kezdjük azzal, hogy mi is az a captcha: egy szép köznevesült angol betűszó, a "Completely Automated Turing-test to tell Computers and Humans Apart" nem túl rövid kifejezés (kb. teljesen automatizált Turing-teszt számítógépek és emberek megkülönböztetésére) összevonásából származik. A Turing-teszt elnevezés Alan Turingra, a második világháborúban a szövetségesek győzelméhez az Enigma feltörésében játszott kulcsszerepével nagyban hozzájáruló, szomorú sorsú angol kriptográfus-matematikusra utal. Az ő ötlete volt, hogy lehetséges találni olyan feladatokat, amiket egy ember könnyedén, pillanatok alatt megold, egy gépnek viszont szinte lehetetlen nehézséget jelentenek, és hogy az ilyen kérdéseket effektív módon fel lehet használni arra, hogy eldöntsük, egy géppel vagy egy hús-vér személlyel állunk-e szemben.
Fél évszázadnak kellett eltelnie ötletének első publikálása óta, hogy a mesterségesintelligencia-kutatókon túl immár a fél világ elkezdje a módszert használni. Manapság leggyakrabban weboldalakon alkalmazzák, hogy megakadályozzák az automatizált használatot, ami segítségével könnyedén lehetne pl. accountok százait generálni és azokról spamek milliárdjait indítani. Legjellemzőbb előfordulási formája, amikor pár eltorzított betű felismerésére és begépelésére kérik a felhasználót - ez egy algoritmusokkal klasszikusan nehezen megoldható probléma, de az emberi agy működéséből fakadóan mi ezeket minden erőfeszítés nélkül meg tudjuk válaszolni. Vannak viccesebb megoldások is: van, ahol azt kérdezik tőlünk, milyen nap van épp az országunkban, hogy három képből melyik ábrázol macskát vagy épp melyiken van a szebb hölgy... ezek biztonsága inkább egyediségükből fakad, de azért az ilyen kérdések számítógépesített megválaszolása sem magától értetődő feladat.
Az egyik triviális sebezhetősége a hasonló módszereknek a kérdések véges számából fakad. Egy tipikus betűfelismerős captcha-implementáció nem véletlenszerű betűkkel operál, hanem rövid érthető szavakat irattat be a felhasználóval (az emberi agy azon további tulajdonságát kihasználva, hogy sokkal könnyebben ismeri fel a "kiskutya" betűsort az "ahs3Eina"-nál). Egy átlagos ilyen rendszer 5-10000 szavas szótárral dolgozik: ezt emberi rásegítéssel vagy akár szimplán próbálgatással - ha elég nagy a csábítás - gond nélkül lehetséges és megéri felépíteni támadói oldalon is.
Járható út lehet még egyre jobb algoritmusokat készíteni és egyre olcsóbban beszerezhető egyre nagyobb számítási kapacitást állítani az eredetileg nehéznek és drágán megoldhatónak gondolt probléma megoldására. A captchák első megjelenése óta a betűfelismerő (OCR) technológia elképesztő mértékben fejlődött: anno elég volt kicsit megdönteni a betűket jobbra-balra, míg ma a védettebb oldalakon néha már a mi emberi fejünket is vakarni kell, hogy kibogozzuk a feliratot, annyi hajlítás-döntés-áthúzás hivatott nehezíteni az automatizált felismerést. De segíthetnek a tanulásra képes, pl. neurális algoritmusok is - némi tanítgatás után megtalálhatják azt a pár paramétert, ami alapján könnyedén eldönthetik, hogy macskát látunk-e a képen.
De a harmadik, egyben legijesztőbb megközelítés a problémamegoldás exportálása: a támadó meg sem próbálja géppel megoldatni a problémát, ehelyett egyszerűen az eredeti környezetéből kiemelve egy másik embernek teszi fel a kérdést és az ő emberi válaszát használja fel. Ennek ezernyi változata lehetséges, a különféle (többnyire felnőtt tartalmakhoz köthető) játékoktól kezdve, amikben a megfelelő betűk "kitalálása" esetén léphetünk szintet egészen a kérdések megoldásáért rendesen pénzt fizető "munkahelyekig". Hogy ebben mi az ijesztő? Hogy az egész eddigi koncepciót semmissé teszi: ebben az esetben egy Turing-teszt nyilván pozitív eredményt ad, hisz emberek válaszolnak a kérdéseinkre. A támadó sikere a védelemmel szemben abból fakad, hogy képes központosítani a problémamegoldást és ezzel egy válaszra eső költségét egy számára üzletileg elfogadható határ alá csökkenteni.
Az első két fajta támadás ellen pár jó ötlettel, gondos implementációval és gondolkodással lehetséges védekezni - bár az egyre növekedő elérhető számítási kapacitás mellett egyre nehezebben, de valószínűleg mindig lehet majd találni olyan problémákat, amiket az emberi agy sokkal effektívebben old meg, mint egy számítógép és a feladatok megfelelő variálása és a szótár kellő bővítése is csak technológiai kérdés. A központosított emberi megoldás viszont más megközelítést igényel. Két érdek feszül itt egymás ellen feloldhatatlanul: egyrészről az egyszeri felhasználónak nem szabad, hogy fárasztó akadályt jelentsen a védelmünk, másrészről viszont nem akarjuk, hogy megfelelően szervezve játszi könnyedséggel lehessen ezrével megválaszolni a feltett kérdésünket.
A problémát a koncepció megváltoztatása oldhatja fel. Ha a felhasználót ritkábban (ideális esetben egyetlen egyszer "online élete" során) kényszerítjük emberi mivolta bizonyítására, akkor megtehetjük, hogy az eddig megszokottaktól jóval többet kérünk tőle. Valami olyan dolgot, ami csak embernek van, és tömegesen mennyiségben hamisítani nem éri meg. Ezen a szinten már nem is kell feltétlenül szigorúan vett logikai problémákra vagy megválaszolandó kérdésekre gondolni - inkább valami olyasmire, ami a fizikai világunkkal kapcsolatos. Ilyen lehet egy SMS-ben vagy papíralapú levélben elküldött kód visszaküldése: a támadó számára egy új telefonszám vagy levélcím megnyitása már a legtöbb esetben meghaladja azt a munkát, amit egy hamis account ér. Egy ilyen biztonsági rendszert azonban a szolgáltatók külön-külön nem tudnak kiépíteni, mert egyrészt túl sok teher lenne nekik, másrészt a felhasználók nem fognak minden egyes online szolgáltatáshoz ennyi energiát befektetni. A megoldás a központi identitáskezelés lehetne, amivel kapcsolatban most éppen újra optimisták lehetünk, hiszen itt kopogtat az OpenID.
A Websense néhány napja publikált elemzése a biztonság iránt érdeklődőknek egy igazi érdekesség: részletesen, logokkal, screenshotokkal, hálózati dumpokkal együtt végignézhetjük, ahogy az utolsó eleméig visszakövettek egy, a Google ellen irányuló captcha-törő támadást. A támadók itt több támadási módszert kombinálnak: algoritmusokkal, adatbázisépítéssel és emberi munka felhasználásával építettek egy nagyjából 20%-os sikerességi rátát elérő, szemlátomást gondosan és profin megtervezett rendszert.
A labda fel van dobva, a fiktív accountok jönnek létre ezrével most is. Hogy a világ legnagyobb koponyáit módszeresen gyűjtő Google mit fog kitalálni? Ez valószínűleg a tavasz egyik legérdekesebb biztonságtechnikai ötletei közé fog tartozni.
A hozzászólásokat a szerző a BalaBit IT Security Blog oldalra várja.



Hozzászólások