iOS App Security 15. – Az iOS és a wifi

Ez a cikk legalább 1 éve frissült utoljára. A benne szereplő információk a megjelenés idején pontosak voltak, de mára elavultak lehetnek.

Az alábbi cikket Ys. írta a 0×90 blogon, és mivel a cikksorozata kapcsolódik az iPhone-hoz, mi érdekesnek gondoljuk a számotokra is, így ezeket engedelmével egymás után át is emelnénk ide, a Szifonra.

***

Egy iOS-szel szerelt eszköz életében a wifi központi szerepet játszik, lévén az eszközön nincs fizikai hálózati csatlakozó: ami hálózati adat, az vagy mobilhálózaton, vagy wifin jön. Az igazi nagy truvájt (ami ennek a bejegyzésnek a fő üzenete is egyben) az eszközünk meg is mondja előre, okosan, amint rábökünk a wifi beállításaira:

Tehát az eszközünkkel egyszer csatlakoztunk egy hálózathoz, beütöttük a jelszavát, az eszközünk pedig amint nem érzékel a lába alatt talajt, folyamatosan kiabálni fog az ismert wifi-hálózatok SSID-i után. Ez nagyon hasznos dolog egy támadó szempontjából, ugyanis az eszköz hálózati forgalmához akkor is hozzáférést enged általános esetben, ha az iOS screen lockját nem tudjuk feloldani. Amennyire tudom, ezt a beállítást nem lehet megváltoztatni (de simán lehet, hogy rosszul tudom, javítsatok ki kommentben). De hát mi a pék ez az “Ask to Join Networks” checkbox? Ez nem véd meg minket? Nos… a checkbox lehetőséget ad a júzernek arra, hogy még lejjebb tegye az eszköz wifi-re vonatkozó beállításainak szintjét az insecure as hell by default szintről.

A lényeg az, hogy az eszközünk mindenképpen visítani fog az ismert hálózatai után, mint csecsemő az anyatejért:

Támadóként pedig annyi dolgunk van, hogy megszemélyesítsük valamelyik hőn áhított hálózatot – minden háziasszony tudja, hogy a legmegfelelőbb eszköz erre az aircrack-ng csomag. Az eszköz tehát rábukik, mint gyöngytyúk a takonyra csatlakozik a csali wifi-hálózatunkhoz, és amint ismerős közegbe kerül, veszettül elkezd forgalmazni.

Legelőször is mindenkit jól értesít arról ARP üzenetekkel, hogy oké, akkor én most itt vagyok, aztán hazatelefonál:

GET /library/test/success.html HTTP/1.0
Host: www.apple.com
User-Agent: CaptiveNetworkSupport-168 wispr
Connection: close

HTTP/1.0 200 OK
Cteonnt-Length: 127
Content-Type: text/html; charset=UTF-8
Server: Apache/2.2.3 (Oracle)
Cache-Control: max-age=509
Expires: Mon, 02 Jul 2012 11:04:05 GMT
Date: Mon, 02 Jul 2012 10:55:36 GMT
Content-Length: 127
Connection: close




.Success


Success

Innét tudja az iOS, hogy megérkezett, van internet, öröm van és bódottág. Ezek után jöhet a “van valami push-üzenet a csőben?”:

Küldi:

00000000  16 03 01 00 99 01 00 00  95 03 01 4f f1 7e 1c de …….. …O.~..
00000010  fe 08 08 39 e7 d3 9e ec  7e c9 cd 5b d8 f8 26 bc …9…. ~..[..&.
00000020  21 23 d8 d9 cd 35 54 86  9b 4a cc 00 00 3a c0 0a !#…5T. .J…:..
00000030  c0 09 c0 07 c0 08 c0 13  c0 14 c0 11 c0 12 c0 04 …….. ……..
00000040  c0 05 c0 02 c0 03 c0 0e  c0 0f c0 0c c0 0d 00 2f …….. ……./
00000050  00 05 00 04 00 35 00 0a  00 09 00 03 00 08 00 33 …..5.. …….3
00000060  00 39 00 16 00 15 00 14  01 00 00 32 00 00 00 1c .9…… …2….
00000070  00 1a 00 00 17 63 6f 75  72 69 65 72 2e 70 75 73 …..cou rier.pus
00000080  68 2e 61 70 70 6c 65 2e  63 6f 6d 2e 00 0a 00 08 h.apple. com…..
00000090  00 06 00 17 00 18 00 19  00 0b 00 02 01 00       …….. ……

Válaszul jön:

00000000  16 03 01 00 34 02 00 00  30 03 01 4f f1 7e 28 00 ….4… 0..O.~(.
00000010  4b 3a be bc e6 63 76 1c  89 a9 36 cc 6b f2 39 94 K:…cv. ..6.k.9.
00000020  45 77 14 01 bc 19 c9 b6  3d 5f b4 00 c0 0e 00 00 Ew…… =_……
00000030  08 00 0b 00 04 03 00 01  02 16 03 01 09 92 0b 00 …….. ……..
00000040  09 8e 00 09 8b 00 04 8f  30 82 04 8b 30 82 03 73 …….. 0…0..s
00000050  a0 03 02 01 02 02 04 4c  1c 55 d3 30 0d 06 09 2a …….L .U.0…*
00000060  86 48 86 f7 0d 01 01 05  05 00 30 81 b1 31 0b 30 .H…… ..0..1.0
00000070  09 06 03 55 04 06 13 02  55 53 31 16 30 14 06 03 …U…. US1.0…
00000080  55 04 0a 13 0d 45 6e 74  72 75 73 74 2c 20 49 6e U….Ent rust, In
00000090  63 2e 31 39 30 37 06 03  55 04 0b 13 30 77 77 77 c.1907.. U…0www
000000A0  2e 65 6e 74 72 75 73 74  2e 6e 65 74 2f 72 70 61 .entrust .net/rpa
000000B0  20 69 73 20 69 6e 63 6f  72 70 6f 72 61 74 65 64  is inco rporated
000000C0  20 62 79 20 72 65 66 65  72 65 6e 63 65 31 1f 30  by refe rence1.0
000000D0  1d 06 03 55 04 0b 13 16  28 63 29 20 32 30 30 39 …U…. (c) 2009
000000E0  20 45 6e 74 72 75 73 74  2c 20 49 6e 63 2e 31 2e  Entrust , Inc.1.
000000F0  30 2c 06 03 55 04 03 13  25 45 6e 74 72 75 73 74 0,..U… %Entrust
00000100  20 43 65 72 74 69 66 69  63 61 74 69 6f 6e 20 41  Certifi cation A
00000110  75 74 68 6f 72 69 74 79  20 2d 20 4c 31 43 30 1e uthority  – L1C0.
00000120  17 0d 31 32 30 33 30 32  30 31 34 39 35 39 5a 17 ..120302 014959Z.
00000130  0d 31 34 30 31 30 31 31  36 32 31 35 32 5a 30 81 .1401011 62152Z0.
00000140  87 31 0b 30 09 06 03 55  04 06 13 02 55 53 31 13 .1.0…U ….US1.
00000150  30 11 06 03 55 04 08 13  0a 43 61 6c 69 66 6f 72 0…U… .Califor
00000160  6e 69 61 31 12 30 10 06  03 55 04 07 13 09 43 75 nia1.0.. .U….Cu
00000170  70 65 72 74 69 6e 6f 31  13 30 11 06 03 55 04 0a pertino1 .0…U..
00000180  13 0a 41 70 70 6c 65 20  49 6e 63 2e 31 19 30 17 ..Apple  Inc.1.0.
00000190  06 03 55 04 0b 13 10 69  54 4d 53 20 45 6e 67 69 ..U….i TMS Engi
000001A0  6e 65 65 72 69 6e 67 31  1f 30 1d 06 03 55 04 03 neering1 .0…U..
000001B0  13 16 63 6f 75 72 69 65  72 2e 70 75 73 68 2e 61 ..courie r.push.a
000001C0  70 70 6c 65 2e 63 6f 6d  30 81 9b 30 10 06 07 2a pple.com 0..0…*

[…]

Még némi infó diszklózsör MDNS-en. Hasznos fícsör – ha valaki olyan fantáziadús, hogy a fehér iPhone-jára a white iPhone nevet aggatja, nem pedig a difót John Smith’s iPhone-t, akkor megússza, hogy az eszköze mindenkinek elmondja büszkén a gazdija nevét:

104    98.664984    fe80::52ea:d6ff:fe1a:9f0b    ff02::fb    MDNS    148    Standard query ANY white-iPhone.local, “QU” question ANY white-iPhone.local, “QU” question

Ezeken felül még mindenki, aki telepítve van az eszközre és hálózaton szeretne kommunikálni, nekikezd a munkának: VoIP kliensek, gTalk, ilyesmik gazdagon forgalmazni kezdenek.

Hogy tudunk támadóként ártani az eszköznek? Csak néhány ötlet – a konkrét helyzethez/alkalmazáshoz ilyesmihez hasonló eszközökben érdemes gondolkodni:

  1. Mi adjuk a DNS-t, ezáltal transzparens proxyként működünk minden hálózati forgalom számára, a DNS kontrollálása fölöslegessé teszi azt, hogy a DHCP válaszban megadjuk a http proxy-t.
  2. SSL-es forgalmat is elég egyszerűen dönthetünk egy SSL proxy segítségével – ha az alkalmazás fejlesztői nem gondoltak arra, hogy ellenőrizzék a tanúsítványt és bármilyen self-signed certet elfogadnak, akkor tulajdonképpen az egyes pont lép életbe.
  3. Ha az eszközünkön nyitva van az SSH port, akkor az remek hír, ugyanis további tornázás nélkül hozzáférünk mindenhez, ami rajta van.
  4. Lehet játszani azzal, hogy Faraday-kalitkába tesszük az eszközt, ezáltal elvágjuk minden hálózati kommunikációtól. Ez egyébként csak elsőre tűnik kontraintuitívnek, ugyanis az iOS értesíti az arra kíváncsi alkalmazásokat arról, hogy van-e működő hálózati kapcsolat. Ha mondjuk egy napig benne tartjuk a kalitkában és utána engedjük csak hálózathoz, akkor az addig békésen szunnyadó alkalmazások, amiknek mondjuk lejárt az authentikációs tokenjük, nagy buzgón belogolnak megint, mi pedig (ha a fejlesztők nem figyeltek nagyon az SSL használatánál) hozzáférünk mindenhez a levegőből.
  5. Az iOS-es SSL-kezelés eléggé hektikus volt a 4-es API verzióval bezárólag, egy csomó gyenge ciphert támogatott letilthatatlan módon a oprendszer – ez már az iOS5-tel már változott.

Ezek még érdekelhetnek:


  1. Számomra (mint laikusra) kissé nem egyértelmű a cikk. Ha biztonságos jelszóval védett hálózaton vagyok, akkor a fenti veszély nem vonatkozik rám, nem? Csak akkor, ha elmegyek a jelszóval védett hálózat hatóköréből és az iPhone-on bekapcsolva maradt a Wi-Fi kapcsolat?

  2. @norbesz74: Mi az,hogy miért íródott?Azért mert érdekes a téma és a cikk írója úgy gondolta,hogy megosztja velünk.

    Jailbreak iOS 6.0-ra meg csak A4 vagy korábbi processzorral felszerelt készülékekre van és az is csak (semi-)tethered.

  3. Sziasztok! Tudom, hogy IOS 6 alatt sokan panaszkodnak WIFI problémáról, de nekem kicsit más a gondom. A frissítés óta az Iphone 4 telefonom wifi jel vétele gyakorlatilag nullára csökkent. Ezt úgy kell érteni, hogy pár méterre a routertől (Time capsule) már nem érzékel jelet. Biztos, hogy nem a roterrel van a gond, mert az iPad2 készülékemmel (iOS6) semmi gond, Apple TV semmi gond, fiam iphone 4S készüléke semmi gond.

    Már csináltam hálózati restore-t, de tegnap egy teljes restore-t is, de nem javult meg. A készülék a frissítés előtt sem volt jailbrakelt.

    Valakinek valamilyen ötlete?

Írd le a véleményedet! (Moderációs elveinket ide kattintva olvashatod.)

Hozzászólás írásához be kell jelentkezned!