Osem let star hrošč v iOS omogoča telefonski DDoS
Matej Huš
11. nov 2016 ob 04:42:10
Minuli mesec je 18-letniku v Arizoni uspeli izvesti DDoS na številko v sili 911, ko je s spretno oblikovano spletno stranjo ukanil iPhone, ki so jo obiskali, da so začeli klicati omenjeno številko. Operaterji so prejeli več kot sto klicev v nekaj minutah, zaradi česar je bila zveza skoraj nedosegljiva. Raziskovalci so pokazali, da bi bilo 6000 telefonov, ki bi začeli klicati 911, dovolj za onesposobitev sistema nujne pomoči v zvezni državi Severna Karolina, 200.000 okuženih telefonov pa bi bilo dovolj, da bi v celotnih ZDA znatno otežili dostop do številke 911.
Varnostna analiza je pokazala, da gre za ostanke osem let starega hrošča. Že leta 2008 so raziskovalci pokazali, da ima Safari 3.0 hudo luknjo, saj klik na telefonsko številko na spletni strani avtomatično sproži klic nanjo. To se da izkoristiti, če pod katerokoli običajno povezavo vtaknemo meta-refresh tag, ki kaže na telefonsko številko, pa jo bo telefon začel klicati. Apple je tedaj problem rešil tako, da nas aplikacija predhodno vpraša, ali res želimo vzpostaviti klic.
Toda hrošč je ostal v komponenti iOS WebView, ki aplikacijam omogoča interni prikaz spletnih strani brez odpiranja zunanjega brskalnika. To je mogoče izkoristiti. Na spletni strani postavimo povezavo, pod katero skrijemo meta-refresh tag, ki pokliče nastavljeno številko. Načeloma je mogoče klic preklicati, a ne če telefon dovolj zaposlimo. Zato zlonamerna spletna stran istočasno odpre kopico drugih aplikacij (povezave se avtomatično odpirajo v privzetih aplikacijah), kar za kratek čas onemogoči odzivnost uporabniškega vmesnika. Nekaj (deset) sekund telefon ni odziven, a kliče.
Na ta način je mogoče raniti vsak iOS, saj potrebujemo le spletno stran, na katero mora zajadrati uporabnika iOS z aplikacijami Twitter, Facebook, LinkedIn ali kaj podobnega. Ko klikne na okuženo povezavo, telefon začasno zmrzne, vmes pa kliče nastavljeno številko. Ta je lahko bodisi 911 bodisi kakšna druga plačljiva številka. Ranljive so vse aplikacije, ki spletne strani odpirajo interno z uporabo iOS WebView, medtem ko je zunanji brskalnik (Safari) zakrpan.