Regisztráció és bejelentkezés

Applikációk közötti kommunikáción alapuló sérülékenységek vizsgálata Android operációs rendszeren

Napjainkban személyes adataink biztonsága kiemelt szerepet kap az élet minden területén. Különösen fontos ezen adatok védelme egy olyan rendszer esetén, amelyet napról napra egyre többen vesznek igénybe, ezáltal folyamatosan nő a potenciális áldozatok száma. Dolgozatomban az Android operációs rendszer által biztosított biztonsági architektúra bizonyos aspektusainak feltérképezésével, ezen architektúra korlátaival és hiányosságaival foglalkozom. Az Android mindenki számára nyílt fejlesztőkörnyezetet biztosít, így gyakorlatilag bárki készíthet applikációkat, és ezeket elérhetővé teheti a célközönség számára. Fontos tehát a biztonsági megoldások megvizsgálása, az esetleges hibák feltárása, hogy ezeknek kihasználását minél hamarabb megakadályozzuk. A biztonságtechnikai rendszer sérülékenységét az inter-process communication (IPC), vagyis a különböző folyamatok közötti kommunikáció oldaláról mutatom be. Megmutatom, hogy a biztonsági architektúra nem eléggé átgondolt, könnyen kijátszható: mivel a felhasználó egy applikáció telepítésekor biztosít jogosultságot különféle erőforrások felhasználására, így telepítés után a folyamatok közötti kommunikáció már nincs ellenőrizve, ezáltal személyes adatok juttathatóak el egy olyan programhoz, melynek alapvetően nem lenne erre jogosultsága. Dolgozatom elején rövid áttekintést adok az operációs rendszer alapvető felépítéséről, sajátosságairól, külön figyelmet fordítva a biztonsági rendszer működésére, jellegzetességeire. Ezt követően az ezzel a témával kapcsolatos publikációk, tanulmányok eredményeit mutatom be, majd saját tapasztalataimat a különféle IPC lehetőségek terén. Megvizsgálom maga az Android által biztosított kommunikációs lehetőségeket, majd alternatív módszerek működését is kipróbálom. Fontos az egyik legalapvetőbb, fejlesztőrendszer által biztosított eszköz, az Intentek vizsgálata: mind az implicit, mind az explicit Intentek komoly biztonsági réseket fedhetnek fel, melynek hatására privát felhasználói adatok eltulajdonítására kerülhet sor, ha a fejlesztő nem megfelelően használja azokat. Szintén az alkalmazások közötti információcserére szolgál a shared user ID, azaz a megosztott felhasználói azonosító, amely segítségével korlátlanul hozzáférhetnek különböző applikációk egymás fájljaihoz. Mivel az Android alapja a Linux, természetesen e természeténél fogva is meg kell vizsgálnunk a működését, az esetleges biztonsági hibák kihasználásának lehetőségét. Fontos szerepet kap itt a socket, melynek segítségével akár hálózati kapcsolat nélkül is adattovábbításra van lehetőség, illetve ide tartozik a signal is, mely szintén potenciális veszélyforrásnak minősülhet. Dolgozatom fontos állomása egy side-channel megoldás, melynek során a Linux eszközeit felhasználva, a különböző applikációk folyamatainak monitorozásával valósítható meg korlátozott sebességű adatátvitel. Egy másik alternatív megoldást kínál az a tény, hogy alapesetben különböző applikációk a másik által létrehozott fájlokat nem érik el, mégis egy-egy fájl létezésének tényét meg tudják állapítani, így ezen a módon is információt tudnak biztosítani egymásnak. A dolgozatom fő célja tehát annak demonstrálása, hogy a biztonsági rendszer kijátszható az általam vizsgált megoldásokkal, így sérülhet a felhasználó személyes adatainak biztonsága.

szerző

  • Juhász Ferenc
    mérnökinformatikus
    nappali

konzulens

  • Dr. Holczer Tamás
    adjunktus, Hálózati Rendszerek és Szolgáltatások Tanszék

helyezés

VIK Hallgatói Képviselet II. helyezett