2009. augusztus 15., szombat

Forensic vizsgálatok 6. - Szteganográfia

A betörési tesztelés mellett a nyomelemző munkák területe az a témakör, amelyről sok szakmabeli is csak homályos képpel rendelkezik, holott meglehetősen szerteágazó és szövevényes világról van szó. Több posztból álló sorozatunkban igyekszünk felvillantani néhány érdekesebb momentumot nyomelemzős munkáinkról.

A szteganográfia a maszkírozás művészete: olyan módszereket jelöl a tudományág, amivel adatot lehet rejteni olyan helyekre, ahol "normális" esetben nem (vagy nem úgy) szokott adat lenni: képek, mp3-ak, videók, szöveg, akármi. Az adatrejtés használata egy nyilvánvaló előnnyel bír a hagyományos titkosítások használatával szemben: nevezetesen azzal, hogy nem árulkodik ránézésre a média arról, hogy titkos (feltehetőleg fontos) üzenetet tartalmaz.

A szteganográfiai módszerek kétféle megközelítést alkalmaznak:
  • azok a módszerek, amikor nem végzünk előzetes titkosítást az elrejteni kívánt adatokon,
  • azok a módszerek, amikor igen.
Pusztán technológiai szempontból nézve a módszereknek mindegy, hogy melyiket választjuk, viszont detektálhatóság felől nézve a dolgot már messze nem egyenértékű a kettő: a jó titkosítás zajszerűvé teszi az enkriptált adatokat, ezáltal ezeket könnyebb belerejteni "zajként" pl. képekbe. Arról nem is beszélve, hogy ha valaki kinyeri a belerejtett adatokat a médiából, nem jut egyből hozzá az elrejtett információhoz is.

Elrejtett információk visszarejtéséhez tipikusan három (algoritmustól függően négy) dologra van szükségünk:
  • A rejtett adatokat tartalmazó média (kép, hang, szöveg, bármi)
  • Az adatrejtési algoritmus
  • A jelszó, amit a titkosításhoz alkalmaztak
  • Egyes algoritmusok esetén az eredeti média is kellhet (tehát amibe rejtik az adatokat)
A helyzet sajnos erősen egyenlőtlen: az adatrejtők többnyire előnyben vannak az adatkeresőkkel szemben - az esetek nagy részében fel sem merül, hogy valamilyen információ szteganográfiai módszerekkel található meg pl. egy több tízezer képet tartalmazó, elkobzott merevlemezen.

Mindazonáltal érdemes egy aranyszabályt betartani: csak minimális méretű adatot szabad szteganográfiával rejteni, ugyanis minél többet szeretnénk akármibe beletuszkolni, egyre nyilvánvalóbb lesz az adatrejtés ténye. Sok tool jelez is, ha túlzottan nagyméretű adatot szeretnénk belerejteni kedvenc képünkbe.

Fizikai szteganográfia
A legősibb. Az első dokumentált példája a szteganográfiának a kétrétegű viasztábla volt, de Hérdotosz megemlékezik egy történetről, amikor egy futár haját leborotválták, a fejbőrére tetoválták a fontos üzenetet, és amikor ismét megnőtt a fiatalember haja, elküldték a címzetthez, aki ismételt leborotválás után megkapta az igazi üzenetet.

Ugyanebbe a kategóriába tartozik a "mikropont", amivel a második világháború alatt juttattak ki német kémek közönséges postai úton információkat. A mikropont lényege az, hogy egy kedves levélben, amelyben Onkel Michael hogyléte felől érdeklődünk, az egyik mondatvégi pont egy kicsivel nagyobb, mint a többi - ebben a pontban található erős kicsinyítéssel a kicsempészni kívánt információ.

Biztosan állítható, hogy ebben a műfajban születtek a legmeghökkentőbb szteganográfiai feladatbeadások: személyes kedvencem az a módszer, amikor a levelezőlapra ragasztott bélyeg hátuljára írjuk meg a lényegi üzenetet.

Adatrejtés szövegben
Aki látta a Con Air című filmet, pontosan tudja, hogy mire gondolunk: Cyrus cellájában találtak a börtönőrök egy levelet, amire rá kellett illeszteni Michelangelo Utolsó vacsora című képét úgy, hogy Jézus és az apostolok szemeit kivágták a képből, így az eredeti levél bizonyos betűit összeolvasva kapták meg a találkahely nevét.

Hasonló elven működik a "Biblia kódja" is: az eredeti, héber nyelvű szöveg egymástól egyenlő távolságra lévő betűit összeolvasva különféle titkos üzeneteket fedhetünk fel. A dolog meglepő, ijesztő, viszont az elmélet több bírálója bemutatott hasonló mintázatokat egyéb könyvekben is, pl. a Moby Dickben (a történet igazi csattanója az, hogy Michael Drosnin, az eredeti Biblia kódja-könyv szerzője mondotta azt, hogy tessék csak ilyen mintázatokat keresni szépirodalmi könyvekben, pl. a Moby Dickben - tessék, mondták a bírálók és megjövendölték Martin Luther King meggyilkolását a Moby Dickből). A "Biblia-kód" elleni legerősebb csapást John Safran ausztrál hivatásos televíziós ateista (már ha létezik ez a műfaj) vitte véghez, amikor megjövendölte a szeptember 11-ei támadást Vanilla Ice dalszövegekből (http://en.wikipedia.org/wiki/Bible_code#Criticism_of_Michael_Drosnin)

Adatrejtés képekben
Képekben történő adatrejtés többféle módon is történhet (nyilván rengeteg mód elképzelhető, csak gondolatébresztőnek néhány):
  • Kicsinyítés. Nyilvánvaló - egy nagyméretű fényképbe belemontázsolunk egy (sokkal) kisebbet, amin a rejtendő információ van.
  • Fájlformátumokkal történő manipuláció. Képek elmentésekor egy sereg lépést elvégez a fényképezőkép, a Gimp, bármi. Ha a mentéskor/konvertáláskor használt konverziós adatokat (pl. kvantálási mátrixok) változtatjuk mininális mértékben, az a kész képen nem fog meglátszani, viszont az eredeti képet összehasonlítva a másként tömörítettel, kinyerhető a rejtett üzenet.
A képekben történő adatrejtéssel kapcsolatban fontos megjegyezni a robosztusság követelményét: ha a képet átméretezik, esetleg kivágnak belőle egy részletet(!), akkor is maradjon meg a vízjel, illetve a rejtett adat visszanyerhetőnek.

Adatrejtés videókban, zenében
A videókban történő robosztus adatrejtéssel kapcsolatban az első alkalmazások a fizetős tartalomszolgáltatók (vagy fizetőstartalom-szolgáltatók?) részéről merültek fel: tisztában voltak vele, hogy a fizetős videotartalmak előbb-utóbb kijutnak a nem-fizetős zónába, viszont ekkor a kijutott változatból meg lehet állapítani, hogy melyik felhasználó töltötte le az eredetit, és jogi lépéseket tenni ellene.

A videókban történő adatrejtés (watermarking) óriási tudományág önmagában is, érdemes vetni egy pillantást erre az áttekintésre. A legtöbb MPEG-bázisú adatrejtő algoritmus a tömörítéskor használt kvantálási mátrixokat, illetve a tömörítéskor előálló P, I és B keretek sorrendjét, elhelyezkedését manipulálják.

A hangtömörítésre is ugyanezek az alapelvek mondhatóak el: a legnépszerűbb hangtömörítő eljárás, az MPEG Layer-3, azaz MP3 és származékai hasonlóan működnek, mint a mezei JPEG.

Detektálás...?
A legtöbb, kvantálási mátrix machinálásán alapuló algoritmus több-kevesebb valószínűséggel detektálható. Képek ilyen irányú vizsgálatára a linuxos stegdetect használható a legegyszerűbben - a weboldalán lista található arról, hogy mely szteganográfiai eszközök nyomát képes detektálni, illetve törni.

A probléma az azonban, hogy a fejlettebb vízjelező algoritmusok olyan rafinált módon végzik a dolgukat, hogy a nyomaikat nagyon nehéz megtalálni.

Kissé más...
A 2007-es Black Hat-en hangzott el egy előadás, amely kilóg a BH szokásos témáitól (és kissé ezen bejegyzés témájától is elüt): Neal Krawetz arról beszélt, hogy hogyan lehet az alábbiakat megállapítani képkről, videókról az alábbiakat:
  • a vizsgált képen felfedezhetőek-e digitális utómunka nyomai (azaz fotosopolva volt-e?)
  • a vizsgált kép eredeti, vagy esetleg bizonyos elemeit utólag montírozták a képre? Ha igen, milyen sorrendben történtek a módosítások?
  • a vizsgált kép számítógéppel generált-e, vagy valódi fotó?
Kimondottan érdemes elolvasni a whitepapert (a fóliák sajnos a szöveg végigolvasása nélkül nem sokat mondanak...), amelyben egy Playboy-poszter és két Oszama Bin Laden-videó példáján mutatja be a profi képelemzők munkáját.

1 megjegyzés:

  1. A felderítés megnehezítésére általában az elfedés módszere a legjobb. Mikor elfedjük a valódi tartalmat. Pl: Nem egy kép van, hanem ezer és mindegyikbe belerejtünk valami szemetet :-) vagy egy másik példa : egy képbe - vagy több képbe belerejtünk valami random bithalmazt. De úgy, hogy azért valahogy detektálható legyen. Amíg a felderítők ezt analizálgatják, eközben a valódi információt egészen máshogy és egészen máshova rejtjük el :-) A lényeg az, hogy másnak látszódjon a dolog, mint ami. Tök egyszerű: egy primitív játékprogram valamelyik data fájljába beletesszük a hexá-ba konvertált szöveget.(binárisan felülírjuk) Aki ránéz fingja se lesz róla, hogy mit kellene látnia. Felteszünk még 20 másik játékot mellé (csak félrevezetésként) aztán lehet bit szinten analizálgatni az összes állományt. A legjobb, ha ebben az esetben az exe-ket szándékosan "elrontjuk" így mind futtathatatlan lesz -> nem derül ki, hogy a data fájlokba van a manipulálás.(Az sem lesz egyértelmű, hogy miért nem fut le, mert megmanipulálták, vagy mert hiányzik hozzá valami, esetleg olyan régi, hogy DOS3.2 kellene hozzá vagy c64-es, zx spektrumos játékok datáiba tesszük el az infót stb :) Közbe meg ott vannak a képbe rejtett random számok, amiknek megörül a "szakértő" és eltökölődik velük -> pedig abban nincs semmi lényeges :-) Az adat elrejtők lóhosszal a felderítők előtt járnak. Az ilyen rafinált módon eldugott tartalmak felderítésére egy esély van : Működés közben lefigyelni a dolgot. Kémprogramot tenni a gépre és bízni benne, hogy az adatrejtő ezt nem veszi észre és nem likvidálja idő előtt a cuccot. A kémprogram infói alapján leszűkül az érintett állományok listája és így már nagy az esély a felfedésre. Vagy kémprogram helyett billentyűzet "lehallgató" kütyüket tenni a gépre/géphez. De persze ezt is ki lehet védeni, ha valaki egérkattintgatással elő tudja állítani a cuccot. (Képernyő "lelopással" lehet ilyenkor esetleg próbálkozni) Hogy mennyire előnyben vannak a rejtők a felderítőkkel szemben erre a legjobb példa a Voynich kézirat, amit az 1450-es évek környékén készítettek, de a mai napig nem sikerült megfejteni, hogy mi van benne. Egyébként jó a cikk, kíváncsian várom a folytatást.

    VálaszTörlés

Kommentek