A hét elején megérkezett az iOS 9.2.1-es verziója, amely elég kevés változtatást rejt magában. Mindenképpen érdemes azonban telepíteni ezt a frissítést, ugyanis egy kritikus biztonsági hibát javít, amelyet még 2013 júniusában fedeztek fel független biztonsági szakértők.
A probléma megoldása annyira bonyolult volt, hogy az Apple csak mostanra tudta teljes mértékben véghezvinni. Az iOS 9.2.1 ezen kívül még kisebb biztonsági hibajavításokat is tartalmaz.
CVE-2016-1730
A Skycure mobilbiztonsági és -adatvédelmi kutatócég pentesterei még 2013-ban találtak rá a CVE-2016-1730 jelzésű hibára a Safari és az alkalmazásokba beépített bizonyos böngészőablakok (web view) kezelésében. Idén január 19-én kiadott cikkükben elég részletesen tárgyalják a hiba mibenlétét.
Valójában nemcsak egyetlen sérülékenységről van szó, hanem több tényező szerencsétlen együttállásáról. A két legfontosabb faktor az úgynevezett captive Wi-Fi bejelentkezőképernyőkkel kapcsolatos. Ilyen képernyőkkel akkor találkozhatunk, amikor egy bejelentkezéshez kötött – akár fizetős, akár ingyenes – Wi-Fi-hálózathoz csatlakozunk, amelyeket például kávézókban, gyorséttermekben, hotelekben, repülőtereken találhatunk. Az iOS, ha találkozik egy ilyen hálózattal, automatikusan feldob egy ablakot, amely betölti a – Wi-Fi-hálózat tulajdonosa által megadott – bejelentkezési oldalt. Ez már önmagában sem túl szerencsés döntés, hiszen így tetszőleges HTTP lekérdezéseket és JavaScript kódot futtathatnak a készüléken, gyakorlatilag minimális felhasználói interakcióval vagy teljesen anélkül.
A nagyobb probléma viszont az, hogy ez a captive ablak összeköttetésben áll a Safari böngészővel. Pontosabban fogalmazva, ugyanazt a tárhelyet használják megosztva a HTTP cookie-k (sütik) tárolására. A sütik olyan rövid szövegfájlok, amelyek bizonyos weboldalak meglátogatásakor tárolódnak az oldal kérésére, és a felhasználóról vagy a készülékéről tartalmaznak adatokat. A böngésző ezeket visszaküldi a szerver felé, így a szerver képes azonosítani a felhasználót. A sütik egy jellemző felhasználása a regisztrációhoz, bejelentkezéshez kötött oldalakon a bejelentkezési adatok, méginkább egy azokból generált titkos kulcs (session cookie, access token vagy hasonló azonosítók) eltárolása, amely kényelmesebbé teszi a böngészést azáltal, hogy a felhasználónak nem kell a böngésző bezárása után bejelentkeznie.
Ebből már sejthetjük, hogy miért probléma az, ha a Safari és a captive Wi-Fi-ablakok közös helyen tárolják a cookie-kat. Az automatikusan felugró captive ablakokban rosszindulatú kód futtatható, amely a megosztott cookie-kat ellophatja, így lehetővé teszik a támadó számára, hogy a felhasználó bőrébe bújjon (ez a támadási mód “identity theft” néven lehet ismerős). Ami még rosszabb, az az, hogy a cookie-k megváltoztatásával a támadó még arra is kényszerítheti – tudta nélkül – a felhasználót, hogy például egy, a támadó által birtokolt felhasználói fiókba jelentkezzen be. (Nem akarunk ötleteket adni, de ilyen módon például rá lehet kenni az ártatlan áldozatra egy online elkövetett bűncselekményt…)
Az erőszakosan, automatikusan felugró captive portálok még a megosztott cookie-k nélkül is használhatók a gyanútlanabb mobileszköz-tulajdonosok félrevezetésére. A 2013-as Ethical Hacking konferencián Tomcsányi Domonkos biztonsági szakértő már be is mutatott többek között egy egyszerű social engineering technikát, amellyel App Store-os jelszavakat lehet ellopni:
CVE-2016-1722
A Zimperium mobilbiztonsági tanácsadó cég zLabs kutatócsoportja egy másik veszélyes (ám lényegesen egyszerűbben befoltozható) biztonsági hibát is talált (CVE-2016-1722), amelyet szintén orvosol az iOS 9.2.1. A hiba felfedezői Nikias Bassen (@pimskeks, az ismert iOS-hacker) és Joshua Drake (@jduck).
Ez a hiba egy puffertúlcsordulás az egyébként rootként futó syslogd processzben, amely a loggolásért, naplózásért, és különféle debug üzenetek tárolásáért felelős. A hibát elemző blogbejegyzés feltárja, hogy a hiba oka rendkívül prózai és egyszerűen elkövethető egy fáradt, dekoncentrált programozó számára.
Mi is történik pontosan? A syslogd az egyik memóriaallokálás során túl kevés memóriát foglal egy dinamikus tömbnek, egy hiányzó zárójelpárnak köszönhetően:
global.lockdown_session_fds = reallocf( global.lockdown_session_fds, global.lockdown_session_count + 1 * sizeof(int) );
A kód írójának szándéka nyilvánvalóan az volt, hogy global.lockdown_session_count + 1 darab egésznek (int) foglaljon memóriát, ám az összeadás köré elfelejtett zárójelet tenni, így a szorzás nagyobb precedenciája miatt valójában csak hozzáadott egy int-nyi méretet a foglalandó memóriához. Ez azt jelenti, hogy legalább kételemű lockdown_session_fds tömb esetén az abba való írás túlcsorduláshoz vezet, amely miatt a syslogd elcrashelhet, és az is elképzelhető, hogy egy támadó a memória nem allokált részeibe való írással átveszi a hatalmat a syslogd processz fölött, és így root jogokat szerez.
Érdemes tehát mihamarabb frissíteni az iOS 9.2.1-es verziójára, és azt is jegyezzük meg, hogy nemcsak ebben az egy esetben fontos a kisebb szoftverfrissítéseket is telepíteni, mind mobileszközeinkre, mind asztali gépünkre, vagy akár okos kenyérpirítóinkra is, mert sohasem tudhatjuk, hogy milyen obskurus, apró hibát használnak ki az esetleges támadók.
24 Comments
Koszi a cikket. A videó nagyon király. 😀
Köszönjük!
(A moderálási elveinknek megfelelően a cikkeknél minden OFF-topic hozzászólást törlünk. Kérünk, használd a keresőt, vagy ha az nem ad eredményt, a Gyakran Ismételt Kérdések cikknél tedd fel a kérdésed!)
“…kritikus biztonsági hibát javít, amelyet még 2013 júniusában fedeztek fel független biztonsági szakértők.”
az ios7 -óta tudnak a hibáról és csak most javítjál ki? érdekes…
@rossifumi: ott van a cikkben a kép után közvetlenül az is, hogy:
@Jadeye: Azt hogy külön tárolja a cookie-kat? Erre 3 év kemény kódolás kellett? 🙂
@dnp: gondolod, hogy ha ez ilyen piszok mód egyszerű dolog lenne, akkor direkt 3 évet szórakoznak vele?
A hiba okának ennyit írtak 🙂 ezt kb 2 perc fixálni… aki ért hozzá.
Akkor is beetetés ! Ti az apple ,dolgozói " vagytok! Hajrá Fiuk! Csak igy tovább!
@steve195614: közülünk senki nem dolgozik az Apple-nek. az esetleges problémáiddal fordulj az Apple-höz, mert mi nem fogjuk tudni orvosolni azokat, hiába rajtunk vezeted le az esetleges frusztrációdat. megértem, ha idegesít ez vagy az az Apple kapcsán, de nem mi vagyunk azok sajnos, akik ezt meg tudnák oldani. http://szifon.com/2015/01/18/gyakori-kerdesek-hogyan-kuldheto-visszajelzes-az-apple-nek/
De nekem nem az apple-val van bajom hanem Veletek az az oldal működtetőivel! Csak annyit akarok még hogy saját honfitársatokat ne ugrassatok bele a frissitésekbe! Legyetek szivesek megirni hogy bizonyos frissítés melyik telóra ajánlott! DE IGAZÁBÓL!!!!!!
@steve195614: ha nem tudod értelmezni, hogy egy frissítés miért fontos (vagy ajánlott), akkor nem fogunk tudni sosem olyan választ adni a kérdésedre, ami neked megfelel. az egyes frissítések utáni tapasztalatokat mindig elolvashatod a hozzászólásokban. ha nem vagy biztos abban, hogy frissítenél, akkor várj pár napot, amíg mindenki más megteszi helyetted. de ez teljesen magától értetődő dolog, így felesleges minden egyes alkalommal újból és újból leírni. senki nem ugrat bele senkit semmibe. az adott iOS-verzió megjelenéséről szóló cikk nem kötelez arra, hogy frissíts. a frissítés a te saját döntésed. nem a mi dolgunk ezt helyetted eldönteni.
@steve195614: Ok, innentől az ehhez kapcsolódó hozzászólásaidat törölni fogom.
Lehet a hivas bug is 3ev lesz 😛
Nem tudom, hogy a biztonsági vonatkozások miatt van-e, vagy ez most az új divat, de az új iOS kurva agresszíven szeretne települni, iszonyú irritáló!
“Hé haver, kicsit hibás a rakétaindító rendszer szoftvere, úgy vagy két éve… Nem baj ne parázz csak nem nyúl bele valami tálib harcos addig…” Komolyan mondom nonszensz, 2007 óta csak iphone-t veszek, de egyre többször, kacérkodom a gondolattal hogy Samsung S6 vagy majd az új S7 csere. Na de csöbörből vödörbe? 🙂 Apropó nincs valakinek egy eladó nokia 2110i-je vagy valami hasonnló? 🙂 Az még talán most is hibátlanul teszi a dolgát. Bocsánat ha valakit untattam, de tény egyre gázabb amit almáéknál művelnek, ez a rengeteg update is, (jó tudom tudom értünk van ha nem lenne azért “sírna” a szám, vagy talán mégsem. No mindegy is mindenkinek szoftver hibamentes kellemes estét.
@Jadeye: Az iPhone birtokosok 70 százaléka olyan elfogult, hogy a hozzászólásba akkor is azt írja be hogy villánygyors ha két mp alatt nyitja meg neki a kontaktokat! 😀
Nem az a vitatott, hogy fontos-e a frissítés, mert az! Csak nem biztos, hogy megéri feláldozni érte a telefon gyorsaságát. És az a beugratás a részetekről, hogy a belassúlásról sose írtok egy szót se. Ennyi.. De szerintem te is pontosan tudod.
@gabor.: *villám
@gabor.: a hozzászólásokban tökéletesen kirajzolódik, hogy mik a tapasztalatok. aki attól tart, hogy belassul a készüléke, az várjon vele pár napot, amíg helyette kipróbálják mások, és el tudja dönteni. a cikk az új iOS-verzió megjelenéséről szól, nem a tapasztalatokról (azt a hozzászólásokból szűrheted le), elvégre a megjelenés időpontjának pillanatában sem azt nem lehet tudni, hogy milyen az akkuhasználat, sem azt, hogy mi lesz a telepítés után. attól, hogy X számú felhasználó lassulást tapasztal, annak rendszeresen ellentmond az, hogy Y számú felhasználó meg nem. nézd meg a hozzászólásokat, ott van feketén-fehéren.
ráadásul mivel mostanában már napokban(!) mérhető az, ameddig még aláírja az Apple az aktuálisan legfrissebbnél eggyel korábbi verziót, így ha valaki kipróbálja az új frissítést, és X okból lassúnak érzi, akkor vissza tudja tenni azt, ami az eggyel korábbi volt. (jó, nyilván ez nem segít azokon, akik mondjuk 5.0-ról frissítettek, de azért jellemzően nem ebből van sok.)
Nagyon köszi ezt a videót, nekem kimaradt eddig, de tetszett
9.1.2 ota ha Safariban ranyomok a cimsavra, osszeomlik a bongeszo. Jelentettem almaeknak, de rohadtul kelemetlen hiba. Mas talalkozott esetleg vele? Nekem csak ez kiatt le kellett toltseg egy firefoxot…
@tribi: igen, erről van külön cikk is: http://szifon.com/2016/01/27/osszeomlik-a-safari-ios-en-es-os-x-en/
@Jadeye: igen, mar latom, koszi
Sziasztok, szuksegem lenne egy kis segitsegre. Megcsinaltam a frissitest iphone 5s-re. Ezek utan az osszes jegyzetem eltunt.
Mit tudok ebben az esteben csinalni hogy ujra meglegyen?