1 00:00:00,000 --> 00:00:02,610 >> [Seminar] [Apărarea spatele dispozitivului: Mobile Application Security] 2 00:00:02,610 --> 00:00:04,380 [Chris Wysopal] [Universitatea Harvard] 3 00:00:04,380 --> 00:00:07,830 [Acest lucru este CS50.] [CS50.TV] 4 00:00:07,830 --> 00:00:10,360 >> Bună ziua. Numele meu este Chris Wysopal. 5 00:00:10,360 --> 00:00:13,360 Sunt CTO și co-fondator al Veracode. 6 00:00:13,360 --> 00:00:15,880 Veracode este o companie de securitate aplicație. 7 00:00:15,880 --> 00:00:18,230 Am testat toate tipurile de diferite aplicații, 8 00:00:18,230 --> 00:00:25,060 și ceea ce am de gând să vorbesc despre ziua de azi este de securitate a aplicațiilor mobile. 9 00:00:25,060 --> 00:00:28,630 Fundal mea este am făcut cercetare în domeniul securității 10 00:00:28,630 --> 00:00:31,970 pentru un timp foarte lung, probabil la fel de mult ca oricine. 11 00:00:31,970 --> 00:00:35,000 Am început la mijlocul anilor '90, 12 00:00:35,000 --> 00:00:37,370 și a fost un timp în care a fost destul de interesant, deoarece 13 00:00:37,370 --> 00:00:39,220 am avut o schimbare de paradigmă la mijlocul anilor '90. 14 00:00:39,220 --> 00:00:43,520 Toate calculator o toată lumea brusc a fost conectat la internet, 15 00:00:43,520 --> 00:00:46,550 și apoi am avut începuturile aplicatii web, 16 00:00:46,550 --> 00:00:49,330 și asta e ceea ce m-am axat pe un lot atunci. 17 00:00:49,330 --> 00:00:51,160 Este interesant. 18 00:00:51,160 --> 00:00:53,930 Acum avem o altă schimbare de paradigmă se întâmplă cu calcul, 19 00:00:53,930 --> 00:00:58,710 care este trecerea la aplicații mobile. 20 00:00:58,710 --> 00:01:03,680 >> Simt că e un fel de timp asemănător, atunci a fost la sfârșitul anilor '90 21 00:01:03,680 --> 00:01:07,650 atunci când am fost de investigare aplicații web și de a găsi defecte, cum ar fi 22 00:01:07,650 --> 00:01:11,800 erori de gestionare a sesiune si SQL injection 23 00:01:11,800 --> 00:01:14,940 care de fapt nu a existat înainte, și toate dintr-o dată au fost peste tot 24 00:01:14,940 --> 00:01:19,360 în aplicații web, și acum o mulțime de timp, mi-am petrecut 25 00:01:19,360 --> 00:01:27,950 se uita la aplicații mobile și se uită la ce se întâmplă acolo, în sălbăticie. 26 00:01:27,950 --> 00:01:32,060 Aplicații mobile sunt într-adevăr va fi platforma de calcul dominant, 27 00:01:32,060 --> 00:01:35,060 așa că avem cu adevărat nevoie să-și petreacă o mulțime de timp, dacă sunteți în industria de securitate 28 00:01:35,060 --> 00:01:39,280 concentrându-se pe aplicatii web. 29 00:01:39,280 --> 00:01:43,420 Au fost 29 miliarde de aplicații mobile descărcate în 2011. 30 00:01:43,420 --> 00:01:47,920 Este prezis să fie 76 de miliarde de aplicații până în 2014. 31 00:01:47,920 --> 00:01:54,040 Există 686 milioane dispozitive, care urmează a fi achiziționate în acest an, 32 00:01:54,040 --> 00:01:57,060 astfel încât acest lucru este în cazul în care oamenii sunt de gând să faci 33 00:01:57,060 --> 00:01:59,600  cea mai mare parte a lor de calcul client merge înainte. 34 00:01:59,600 --> 00:02:04,220 >> Am fost să vorbesc cu un vice-presedinte la Fidelity Investments 35 00:02:04,220 --> 00:02:08,780 în urmă cu câteva luni, și a spus că au văzut doar mai mult trafic 36 00:02:08,780 --> 00:02:12,610 face tranzacțiile financiare de la baza lor de clienti 37 00:02:12,610 --> 00:02:16,230 cu privire la cererea lor mobil decât pe site-ul lor, 38 00:02:16,230 --> 00:02:20,610 astfel o utilizare comună pentru Web în trecut a fost 39 00:02:20,610 --> 00:02:23,800 verificarea cotații dvs. bursiere, gestionarea portofoliului, 40 00:02:23,800 --> 00:02:28,060 și suntem de fapt, văzând că în 2012 trecerea de 41 00:02:28,060 --> 00:02:30,960 să fie dominat pe platforma mobilă. 42 00:02:30,960 --> 00:02:34,530 Desigur, în cazul în care nu va fi nici o activitate infracțională, 43 00:02:34,530 --> 00:02:38,900 orice activitate de malware, se va începe să se concentreze pe platforma de mobil 44 00:02:38,900 --> 00:02:44,210 în timp, oamenii trece peste asta. 45 00:02:44,210 --> 00:02:48,320 Dacă te uiți la platforma de mobil, 46 00:02:48,320 --> 00:02:54,380 să se uite la riscurile platformei este util să-l rupe în jos, în diferite straturi, 47 00:02:54,380 --> 00:02:59,010 la fel ca tine ar face pe un computer desktop, 48 00:02:59,010 --> 00:03:02,860 și te gândești la diferite straturi, software-ul, sistemul de operare, 49 00:03:02,860 --> 00:03:07,730 strat de rețea, strat de hardware, și, bineînțeles, există vulnerabilități pe toate acele straturi. 50 00:03:07,730 --> 00:03:10,510 >> Același lucru se întâmplă pe telefonul mobil. 51 00:03:10,510 --> 00:03:14,880 Dar mobil, se pare că unele dintre aceste straturi sunt mai rău. 52 00:03:14,880 --> 00:03:19,840 Pentru unul, stratul de rețea este mai problematică pe mobil 53 00:03:19,840 --> 00:03:25,650 pentru că o mulțime de oameni au în birou sau acasă 54 00:03:25,650 --> 00:03:30,780 fir de conexiuni sau au sigure conexiuni Wi-Fi, 55 00:03:30,780 --> 00:03:36,530 și cu o mulțime de dispozitive mobile esti, evident, în afara casei 56 00:03:36,530 --> 00:03:40,520 sau în afara biroului foarte mult, și dacă utilizați Wi-Fi acolo 57 00:03:40,520 --> 00:03:42,820 s-ar putea să fie folosind o conexiune nesigure Wi-Fi, 58 00:03:42,820 --> 00:03:45,570 ceva care este o conexiune Wi-Fi public, 59 00:03:45,570 --> 00:03:48,840 așa că atunci când ne gândim despre aplicații mobile trebuie să ia în considerare 60 00:03:48,840 --> 00:03:53,770 că mediul de rețea este mai riscant pentru acele aplicații 61 00:03:53,770 --> 00:03:57,640 atunci când este utilizat Wi-Fi. 62 00:03:57,640 --> 00:04:02,410 Și când voi ajunge în mai multe din riscurile de aplicații mobile 63 00:04:02,410 --> 00:04:04,910 veți vedea de ce e mai important. 64 00:04:04,910 --> 00:04:09,710 Există riscuri la nivel de hardware-ul de pe dispozitive mobile. 65 00:04:09,710 --> 00:04:11,670 Acesta este un domeniu de cercetare in curs de desfasurare. 66 00:04:11,670 --> 00:04:15,910 Oamenii numesc aceste atacuri de bandă largă sau atacuri de banda de 67 00:04:15,910 --> 00:04:21,870 în cazul în care te ataca firmware-ul care asculta la radio. 68 00:04:21,870 --> 00:04:25,430 >> Acestea sunt cu adevărat atacuri înfricoșătoare deoarece 69 00:04:25,430 --> 00:04:27,280 utilizatorul nu trebuie să facă nimic. 70 00:04:27,280 --> 00:04:30,760 Puteți lovi o mulțime de dispozitive în raza de RF 71 00:04:30,760 --> 00:04:36,690 la o dată, și se pare ca ori de câte ori aceasta cercetare bule sus 72 00:04:36,690 --> 00:04:40,750 ea repede se clasifică în care 73 00:04:40,750 --> 00:04:46,600 oameni năpusti în jur și spune, "Aici, spune-ne despre asta, și vă rugăm să nu mai vorbim despre asta." 74 00:04:46,600 --> 00:04:49,460 Există unele de cercetare se întâmplă în zona de bandă largă, 75 00:04:49,460 --> 00:04:51,980 dar se pare a fi foarte hush hush. 76 00:04:51,980 --> 00:04:56,910 Cred că e mai mult de un tip de stat națiune de cercetare care se întâmplă. 77 00:04:56,910 --> 00:05:02,140 Un domeniu de cercetare activ, deși, este stratul de sistem de operare, 78 00:05:02,140 --> 00:05:08,910 și, din nou, acest lucru este diferit decât în ​​lumea de calcul desktop 79 00:05:08,910 --> 00:05:14,840 pentru că în spațiul mobil aveți aceste echipe de oameni numit Jailbreakers, 80 00:05:14,840 --> 00:05:18,670 și Jailbreakers sunt diferite de cercetatori de vulnerabilitate regulate. 81 00:05:18,670 --> 00:05:21,970 Ei încearcă să găsească vulnerabilități în sistemul de operare, 82 00:05:21,970 --> 00:05:27,000 dar motivul pentru care ei încearcă să găsească vulnerabilitățile nu este acela de a 83 00:05:27,000 --> 00:05:31,810 pătrundă în mașină altcuiva și compromis o. 84 00:05:31,810 --> 00:05:34,280 Este pentru a rupe în computerul lor. 85 00:05:34,280 --> 00:05:38,820 >> Ei doresc să pătrundă în propria lor mobile, modifica sistemul de operare lor mobil 86 00:05:38,820 --> 00:05:41,050 astfel încât să poată rula aplicațiile de alegerea lor 87 00:05:41,050 --> 00:05:44,510 și de a schimba lucrurile, cu permisiuni administrative complete, 88 00:05:44,510 --> 00:05:49,050 și ei nu doresc să-i spuneți vânzătorului cu privire la acest lucru. 89 00:05:49,050 --> 00:05:52,960 Ei nu sunt ca un cercetator de securitate, care este un cercetator de securitate pălărie albă 90 00:05:52,960 --> 00:05:56,600 care este de gând să facă dezvăluirea responsabil și spune vânzătorul despre asta. 91 00:05:56,600 --> 00:06:01,270 Ei doresc să facă acest lucru de cercetare, și ei doresc să-l publice în realitate 92 00:06:01,270 --> 00:06:06,400 într-o exploata sau un rootkit sau un cod de jailbreak, 93 00:06:06,400 --> 00:06:10,010 și doresc să o fac strategic, ca imediat după 94 00:06:10,010 --> 00:06:13,570 navele furnizor noul sistem de operare. 95 00:06:13,570 --> 00:06:16,350 Ai această relație contradictorie 96 00:06:16,350 --> 00:06:19,000 cu vulnerabilități la nivel de sistem de operare de pe telefonul mobil, 97 00:06:19,000 --> 00:06:23,150 care cred că este destul de interesant, și un loc o vedem 98 00:06:23,150 --> 00:06:29,210 este o face, astfel încât nu există cod de bună publicat exploata acolo 99 00:06:29,210 --> 00:06:31,750 de vulnerabilități la nivel de kernel, 100 00:06:31,750 --> 00:06:35,040 și ne-am văzut pe cei de fapt să fie utilizate de către autorii de malware. 101 00:06:35,040 --> 00:06:38,450 Este un pic diferit de lumea PC. 102 00:06:38,450 --> 00:06:42,530 Și apoi stratul final este stratul superior, stratul de aplicație. 103 00:06:42,530 --> 00:06:45,250 Asta e ceea ce am de gând să vorbesc despre ziua de azi. 104 00:06:45,250 --> 00:06:48,970 >> Existe Celelalte straturi, iar celelalte straturi joace în ea, 105 00:06:48,970 --> 00:06:53,310 dar eu sunt cea mai mare parte de gând să vorbesc despre ceea ce se întâmplă la stratul de cerere 106 00:06:53,310 --> 00:06:55,560 în cazul în care codul se execută în cutia cu nisip. 107 00:06:55,560 --> 00:06:58,670 Ea nu are privilegii administrative. 108 00:06:58,670 --> 00:07:02,170 Ea trebuie să utilizeze API-uri ale dispozitivului, 109 00:07:02,170 --> 00:07:06,970 dar totuși, o mulțime de activități rău intenționat și o mulțime de risc se poate întâmpla la acest strat 110 00:07:06,970 --> 00:07:09,220 pentru că stratul în care toate informațiile sunt. 111 00:07:09,220 --> 00:07:12,330 Apps pot accesa toate informațiile de pe dispozitiv 112 00:07:12,330 --> 00:07:15,390 dacă au permisiunile potrivite, 113 00:07:15,390 --> 00:07:17,540 și pot accesa diferite senzorii de pe dispozitiv, 114 00:07:17,540 --> 00:07:23,950 Senzor GPS, microfon, camera foto, ceea ce ai. 115 00:07:23,950 --> 00:07:27,380 Chiar dacă vorbim doar despre la stratul de cerere 116 00:07:27,380 --> 00:07:33,700 avem o mulțime de risc acolo. 117 00:07:33,700 --> 00:07:38,450 Un alt lucru care este diferit despre mediul mobil 118 00:07:38,450 --> 00:07:45,060 este toți jucătorii sistemului de operare, fie că este vorba BlackBerry sau Android 119 00:07:45,060 --> 00:07:53,410 sau iOS sau Windows Mobile, toate au un model fin permisiune granulat, 120 00:07:53,410 --> 00:07:56,990 iar acesta este unul dintre modurile în care le-au construit în sistemul de operare 121 00:07:56,990 --> 00:08:01,230 ideea că nu este la fel de riscant ca crezi. 122 00:08:01,230 --> 00:08:04,550 Chiar dacă ai toate contactele pe acolo, toate informațiile dumneavoastră personale, 123 00:08:04,550 --> 00:08:09,080 aveți fotografii, aveți locația pe acolo, 124 00:08:09,080 --> 00:08:14,820 te stocarea PIN-ul bancar de autentificare auto pe acolo, e sigur că 125 00:08:14,820 --> 00:08:19,430 aplicații trebuie să aibă anumite permisiuni pentru a ajunge la anumite părți 126 00:08:19,430 --> 00:08:25,080 informațiilor de pe dispozitiv, iar utilizatorul trebuie să fie prezentate cu 127 00:08:25,080 --> 00:08:29,230 aceste permisiuni și spune bine. 128 00:08:29,230 --> 00:08:32,590 >> Problema cu acesta este utilizatorul întotdeauna spune bine. 129 00:08:32,590 --> 00:08:35,240 Ca o persoană de securitate, știu că pot cere utilizatorului, 130 00:08:35,240 --> 00:08:40,100 spune ceva foarte rău se va întâmpla, nu vrei să se întâmple? 131 00:08:40,100 --> 00:08:44,680 Și dacă acestea sunt într-o grabă sau nu e ceva foarte ispititor pe de altă parte de faptul că, 132 00:08:44,680 --> 00:08:47,760 ca un joc va fi instalat pe care le-am fost de așteptare pentru, 133 00:08:47,760 --> 00:08:50,860 au de gând să faceți clic pe ok. 134 00:08:50,860 --> 00:08:56,630 De aceea am spus pe diapozitiv mea aici doar ca să-mi arunca păsări la porci deja, 135 00:08:56,630 --> 00:09:03,150 și puteți vedea pe slide aici există exemple de o cutie BlackBerry permisiune. 136 00:09:03,150 --> 00:09:05,990 Acesta spune: "Vă rugăm să setați permisiunile de aplicații BlackBerry de călătorie 137 00:09:05,990 --> 00:09:09,720 după clic pe butonul de mai jos ", și, practic, utilizatorul este doar de gând să spun 138 00:09:09,720 --> 00:09:12,240 setați permisiunile și de a salva. 139 00:09:12,240 --> 00:09:18,010 Iată un prompt de Android în cazul în care arată lucrurile, 140 00:09:18,010 --> 00:09:20,260 și-l pune de fapt, ceva care arata aproape ca un avertisment. 141 00:09:20,260 --> 00:09:25,090 Are un fel de semn de randament se spune de rețea de comunicare, telefon, 142 00:09:25,090 --> 00:09:28,120 dar utilizatorul este de gând să faceți clic pe instala, corect? 143 00:09:28,120 --> 00:09:32,940 Și apoi cel Apple este complet inofensiv. 144 00:09:32,940 --> 00:09:34,300 Nu oferă nici un fel de avertisment. 145 00:09:34,300 --> 00:09:37,380 E doar Apple ar dori să utilizeze locația curentă. 146 00:09:37,380 --> 00:09:39,670 Desigur, ai de gând să faceți clic pe ok. 147 00:09:39,670 --> 00:09:42,260 >> Nu este acest model de permisiune cu granulatie fina, 148 00:09:42,260 --> 00:09:45,890 și aplicații trebuie să aibă un fișier manifest în care se declară 149 00:09:45,890 --> 00:09:49,410 permisiunile de care au nevoie, și care vor fi afișat pentru utilizator, 150 00:09:49,410 --> 00:09:53,480 iar utilizatorul va trebui să spun că am acorde aceste permisiuni. 151 00:09:53,480 --> 00:09:55,080 Dar hai sa fim sinceri. 152 00:09:55,080 --> 00:09:58,400 Utilizatorii sunt doar de gând să spun mereu bine. 153 00:09:58,400 --> 00:10:04,460 Să aruncăm o privire rapidă la permisiunile pe care aceste aplicații sunt cer 154 00:10:04,460 --> 00:10:06,850 și unele dintre permisiunile care sunt acolo. 155 00:10:06,850 --> 00:10:09,950 Aceasta companie Pretorian a făcut un sondaj de anul trecut 156 00:10:09,950 --> 00:10:14,170 de 53.000 de aplicații analizate în piețele Android Market și 3rd party, 157 00:10:14,170 --> 00:10:16,770 deci acest lucru este tot Android. 158 00:10:16,770 --> 00:10:19,670 Și aplicația mediu solicitat de 3 permisiuni. 159 00:10:19,670 --> 00:10:23,370 Unele aplicații solicitat 117 de permisiuni, 160 00:10:23,370 --> 00:10:27,480 deci, evident, acestea sunt foarte fină și mult prea complex pentru un utilizator de a înțelege 161 00:10:27,480 --> 00:10:31,600 în cazul în care acestea sunt prezentate cu această aplicație care are nevoie de aceste 117 de permisiuni. 162 00:10:31,600 --> 00:10:37,270 E ca final acordul de licență pentru utilizatorul care este de 45 de pagini. 163 00:10:37,270 --> 00:10:40,240 Poate că în curând vor avea o opțiune în cazul în care e ca si cum 164 00:10:40,240 --> 00:10:43,100 imprima permisiunile și trimite-mi un e-mail. 165 00:10:43,100 --> 00:10:45,480 >> Dar, dacă te uiți la unele dintre permisiunile de top interesante 166 00:10:45,480 --> 00:10:50,840 24% din aplicațiile pe care le descărcate din 53000 167 00:10:50,840 --> 00:10:57,230 informații GPS solicitate de aparat. 168 00:10:57,230 --> 00:10:59,810 8% citit de contact. 169 00:10:59,810 --> 00:11:03,770 4% trimis SMS-uri, iar 3% au primit SMS. 170 00:11:03,770 --> 00:11:07,730 2% înregistrată audio. 171 00:11:07,730 --> 00:11:11,210 1% prelucrate apelurile efectuate. 172 00:11:11,210 --> 00:11:13,140 Nu știu. 173 00:11:13,140 --> 00:11:17,520 Nu cred că 4% din aplicațiile din App Store într-adevăr nevoie pentru a trimite mesaje text SMS, 174 00:11:17,520 --> 00:11:21,410 deci cred că e un indiciu ca ceva nedorit se intampla. 175 00:11:21,410 --> 00:11:24,350 8% dintre aplicații au nevoie pentru a citi lista de contacte. 176 00:11:24,350 --> 00:11:26,510 Probabil nu este necesar. 177 00:11:26,510 --> 00:11:30,990 Unul dintre alte lucruri interesante despre permisiuni este 178 00:11:30,990 --> 00:11:36,740 dacă vă legați în biblioteci partajate în aplicația dumneavoastră 179 00:11:36,740 --> 00:11:39,780 cei care moștenesc permisiunile de la aplicare, 180 00:11:39,780 --> 00:11:46,570 așa că, dacă aplicația are nevoie de lista de contacte sau are nevoie de localizare GPS pentru a funcționa 181 00:11:46,570 --> 00:11:49,940 și vă link-ul într-o bibliotecă de publicitate, de exemplu, 182 00:11:49,940 --> 00:11:53,170 că biblioteca anunț va fi, de asemenea, posibilitatea de a accesa contactele 183 00:11:53,170 --> 00:11:57,630 și, de asemenea, să poată accesa locația GPS, 184 00:11:57,630 --> 00:12:01,990 și dezvoltatorul aplicației nu știe nimic despre codul care se execută în biblioteca de anunțuri. 185 00:12:01,990 --> 00:12:05,370 Ei doar conectarea că în deoarece doresc să valorificați app lor. 186 00:12:05,370 --> 00:12:09,820 >> Acest lucru este în cazul în care-și voi vorbi despre câteva exemple de acest lucru cu 187 00:12:09,820 --> 00:12:13,930 o aplicație numită Pandora, unde un dezvoltator de aplicații 188 00:12:13,930 --> 00:12:18,910 ar putea fi involuntar scurgeri de informații 189 00:12:18,910 --> 00:12:24,580 de la utilizatorii lor din cauza bibliotecilor care le-au legate de inch 190 00:12:24,580 --> 00:12:30,110 Topografie peisajul de acolo, se uită la toate diferite aplicații 191 00:12:30,110 --> 00:12:34,310 care au fost raportate în știri ca ceva ce utilizatorii de malware sau de a face nu a vrut 192 00:12:34,310 --> 00:12:39,360 și apoi inspectarea o mulțime de aplicații, facem o mulțime de analize binare statice pe aplicații mobile, 193 00:12:39,360 --> 00:12:42,010 așa că le-am inspectat și sa uitat la codul de sine- 194 00:12:42,010 --> 00:12:49,640 am venit cu ceea ce noi numim top 10 lista noastră de comportamente riscante în aplicații. 195 00:12:49,640 --> 00:12:54,180 Și este împărțit în două secțiuni, cod malitios, 196 00:12:54,180 --> 00:12:57,600 astfel încât acestea sunt lucruri rele care aplicațiile ar putea face ca 197 00:12:57,600 --> 00:13:06,520 sunt susceptibile de a fi ceva care o persoană rău intenționat 198 00:13:06,520 --> 00:13:10,060 a pus în mod specific în cererea, dar este un pic neclare. 199 00:13:10,060 --> 00:13:13,300 Ar putea fi ceva care un dezvoltator crede că este bine, 200 00:13:13,300 --> 00:13:16,350 dar se termină prin a fi gandit ca malware de către utilizator. 201 00:13:16,350 --> 00:13:19,830 >> Și apoi de-a doua secțiune este ceea ce noi numim de codificare vulnerabilități, 202 00:13:19,830 --> 00:13:24,600 și acestea sunt lucruri în care dezvoltatorul, practic, este de a face greșeli 203 00:13:24,600 --> 00:13:27,200 sau pur și simplu nu înțeleg cum să scrie aplicația în siguranță, 204 00:13:27,200 --> 00:13:30,260  și că a pune utilizatorul app la risc. 205 00:13:30,260 --> 00:13:34,060 Am de gând să treacă prin acestea în detaliu și să dea câteva exemple. 206 00:13:34,060 --> 00:13:39,620 Pentru referință, am vrut sa pus OWASP lista mobile top 10. 207 00:13:39,620 --> 00:13:43,590 Acestea sunt cele 10 probleme pe care un grup de la OWASP, 208 00:13:43,590 --> 00:13:48,900 Proiectul Open WEB aplicații de securitate, ele au un grup de lucru 209 00:13:48,900 --> 00:13:50,620 lucrează la o listă de mobil top 10. 210 00:13:50,620 --> 00:13:54,600 Ei au un foarte celebru listă de web top 10, care sunt în top 10 211 00:13:54,600 --> 00:13:57,180 mai riscante lucruri pe care le poate avea într-o aplicație web. 212 00:13:57,180 --> 00:13:59,090 Ei fac acelasi lucru pentru mobil, 213 00:13:59,090 --> 00:14:01,750 și lista lor este un pic diferit de al nostru. 214 00:14:01,750 --> 00:14:03,670 6 din 10 sunt aceleași. 215 00:14:03,670 --> 00:14:06,020 Ei au 4, care sunt diferite. 216 00:14:06,020 --> 00:14:10,550 Cred că ei au un pic de un alt ia pe 217 00:14:10,550 --> 00:14:14,490 risc în aplicații mobile în cazul în care o mulțime de problemele lor 218 00:14:14,490 --> 00:14:20,490 sunt într-adevăr modul în care cererea se comunica la un server back-end 219 00:14:20,490 --> 00:14:23,100 sau ce se întâmplă pe serverul back-end, 220 00:14:23,100 --> 00:14:29,220 nu atât de mult aplicații care au un comportament riscant, care sunt aplicații client doar simple. 221 00:14:29,220 --> 00:14:36,640 >> Cele din roșie de aici sunt diferentele dintre cele 2 liste. 222 00:14:36,640 --> 00:14:40,740 Și o parte din echipa mea de cercetare a contribuit de fapt la acest proiect, 223 00:14:40,740 --> 00:14:44,570 așa că vom vedea ce se va intampla in timp, dar cred că aici este Takeaway 224 00:14:44,570 --> 00:14:47,550 nu știm cu adevărat ce top 10 este în aplicații mobile, deoarece 225 00:14:47,550 --> 00:14:50,510 le-am fost de fapt doar în jurul valorii de 2 sau 3 ani, 226 00:14:50,510 --> 00:14:57,750 și nu a fost suficient timp pentru cercetare într-adevăr sistemele de operare 227 00:14:57,750 --> 00:15:00,450 și de ce sunt capabili de, și nu a existat suficient timp 228 00:15:00,450 --> 00:15:06,870 pentru comunitatea de malware, dacă vreți, a petrecut suficient timp 229 00:15:06,870 --> 00:15:12,910 încercarea de a ataca utilizatorii prin aplicații mobile, asa ca ma astept aceste liste pentru a schimba un pic. 230 00:15:12,910 --> 00:15:18,720 Dar pentru moment, acestea sunt primele 10 lucruri să vă faceți griji. 231 00:15:18,720 --> 00:15:24,150 S-ar putea întreba pe partea de telefonie mobilă în care face codul de-mobil malware 232 00:15:24,150 --> 00:15:28,880 cum se ajunge pe la aparat? 233 00:15:28,880 --> 00:15:35,210 Carolina de Nord de stat are un proiect numit Proiectul genomului Mobile Malware 234 00:15:35,210 --> 00:15:39,520 în cazul în care acestea sunt la fel de mult de colectare malware-ului mobil, deoarece acestea pot și analiza-l, 235 00:15:39,520 --> 00:15:45,270 și le-am defalcate vectorii de injectare care utilizează malware mobil, 236 00:15:45,270 --> 00:15:51,490 și 86% folosesc o tehnica numita de reambalare, 237 00:15:51,490 --> 00:15:54,160 și acesta este doar pe platforma Android 238 00:15:54,160 --> 00:15:56,720 se poate face într-adevăr acest lucru reambalare. 239 00:15:56,720 --> 00:16:03,100 >> Motivul este codul Android este construit cu 240 00:16:03,100 --> 00:16:08,130 un cod de octet Java numit Dalvik, care este ușor de decompilable. 241 00:16:08,130 --> 00:16:12,460 Ce tipul cel rău se poate face este 242 00:16:12,460 --> 00:16:16,590 lua o aplicație Android, ea decompila, 243 00:16:16,590 --> 00:16:20,120 introduceți codul lor malitios, ea recompila, 244 00:16:20,120 --> 00:16:28,070 și apoi pune-l în App Store care se prezintă ca o nouă versiune a acestei cereri, 245 00:16:28,070 --> 00:16:30,330 sau pur și simplu poate schimba numele aplicației. 246 00:16:30,330 --> 00:16:35,140 Dacă ar fi fost un fel de joc, schimba numele ușor, 247 00:16:35,140 --> 00:16:42,860 și așa mai departe acest lucru este modul în care reambalarea 86% din malware-ului mobil devine distribuite. 248 00:16:42,860 --> 00:16:45,810 Există o altă actualizare tehnica numita, care este 249 00:16:45,810 --> 00:16:50,030 foarte similar cu reambalare, dar tu de fapt nu pune codul malitios inch 250 00:16:50,030 --> 00:16:52,870 Ceea ce face este să vă pune într-un mecanism de actualizare mic. 251 00:16:52,870 --> 00:16:56,660 Ai separe, ai pus într-un mecanism de actualizare, și tu-l recompilați, 252 00:16:56,660 --> 00:17:02,360 și apoi când aplicația se execută o trage în jos malware pe dispozitiv. 253 00:17:02,360 --> 00:17:06,300 >> De departe cea mai mare parte sunt cele 2 tehnici. 254 00:17:06,300 --> 00:17:12,710 Nu este de descărcare într-adevăr mult drive-bys sau drive-by downloads de pe telefoane mobile, 255 00:17:12,710 --> 00:17:15,890 care ar putea fi ca un atac de tip phishing. 256 00:17:15,890 --> 00:17:18,200 Hei, a verifica afară acest site foarte cool, 257 00:17:18,200 --> 00:17:21,020 sau aveți nevoie pentru a merge la acest site și completați acest formular 258 00:17:21,020 --> 00:17:24,420 să păstreze în continuare a face ceva. 259 00:17:24,420 --> 00:17:26,230 Cei care sunt atacuri de tip phishing. 260 00:17:26,230 --> 00:17:28,160 Același lucru se poate întâmpla pe platforma de mobil în cazul în care 261 00:17:28,160 --> 00:17:33,830 indică o aplicație de telefonie mobilă pentru a descărca, spune "Bună, acesta este Bank of America." 262 00:17:33,830 --> 00:17:36,070 "Noi vedem utilizați această aplicație." 263 00:17:36,070 --> 00:17:38,540 "Ar trebui să descărcați această altă aplicație." 264 00:17:38,540 --> 00:17:41,170 Teoretic, ar putea funcționa. 265 00:17:41,170 --> 00:17:48,610 Poate că pur și simplu nu este folosit suficient pentru a determina dacă acesta este de succes sau nu, 266 00:17:48,610 --> 00:17:51,680 dar aceștia au constatat că mai puțin de 1% din momentul în care tehnica este utilizată. 267 00:17:51,680 --> 00:17:56,130 Cea mai mare parte a timpului este într-adevăr un cod reambalat. 268 00:17:56,130 --> 00:17:58,710 >> Mai este o categorie numită standalone 269 00:17:58,710 --> 00:18:01,420 în cazul în care cineva construiește doar o aplicație nou-nouț. 270 00:18:01,420 --> 00:18:04,020 Ei construiesc o aplicație care pretinde a fi ceva. 271 00:18:04,020 --> 00:18:07,360 Nu este o reambalare de altceva, și care are codul malitios. 272 00:18:07,360 --> 00:18:11,230 Care este folosit de 14% din timp. 273 00:18:11,230 --> 00:18:17,880 Acum vreau să vorbesc despre ceea ce este codul malitios faci? 274 00:18:17,880 --> 00:18:23,070 Unul dintre primele malware acolo 275 00:18:23,070 --> 00:18:25,490 ați putea lua în considerare un spyware. 276 00:18:25,490 --> 00:18:27,620 Este practic spioni pe ghidul. 277 00:18:27,620 --> 00:18:30,470 Se colectează e-mailuri, mesaje SMS. 278 00:18:30,470 --> 00:18:32,340 Se pare la microfon. 279 00:18:32,340 --> 00:18:37,330 Se recoltează carte de contact, și îl trimite pe altcineva. 280 00:18:37,330 --> 00:18:40,870 Acest tip de spyware exista pe PC-ul, 281 00:18:40,870 --> 00:18:46,200 deci are sens perfect pentru oameni de a încerca să facă acest lucru pe dispozitive mobile. 282 00:18:46,200 --> 00:18:53,230 >> Unul dintre primele exemple de acesta a fost un program numit Secret SMS Replicator. 283 00:18:53,230 --> 00:18:56,250 Acesta a fost în Android Marketplace o pereche de ani în urmă, 284 00:18:56,250 --> 00:18:59,960 iar ideea a fost dacă ați avut acces la telefon Android cuiva 285 00:18:59,960 --> 00:19:03,450 pe care ai vrut să spioneze, deci poate e soțul tău 286 00:19:03,450 --> 00:19:07,600 sau alte dvs. semnificative și pe care doriți să spioneze pe mesaje de text, 287 00:19:07,600 --> 00:19:11,200 ai putea descărca această aplicație și instalați-l și configura 288 00:19:11,200 --> 00:19:16,540 pentru a trimite un mesaj text SMS pentru a vă cu o copie 289 00:19:16,540 --> 00:19:21,710 de fiecare mesaj text SMS au primit. 290 00:19:21,710 --> 00:19:27,220 Acest lucru este în mod evident în încălcări ale App Store termenii de serviciu, 291 00:19:27,220 --> 00:19:32,040 și aceasta a fost scos din Android Marketplace în termen de 18 de ore de a fi acolo, 292 00:19:32,040 --> 00:19:36,760 astfel încât un număr foarte mic de oameni au fost la risc din cauza asta. 293 00:19:36,760 --> 00:19:42,510 Acum, cred că în cazul în care programul a fost numit ceva, poate un pic mai puțin provocatoare 294 00:19:42,510 --> 00:19:48,690 cum ar fi Secret SMS Replicator probabil că ar fi lucrat mult mai bine. 295 00:19:48,690 --> 00:19:52,870 Dar a fost un fel de evidentă. 296 00:19:52,870 --> 00:19:58,680 >> Unul dintre lucrurile pe care le putem face pentru a determina dacă aplicații au acest comportament pe care nu vrem 297 00:19:58,680 --> 00:20:01,410 este de a inspecta codul. 298 00:20:01,410 --> 00:20:06,250 Aceasta este de fapt foarte ușor să faci pe Android pentru că putem decompila aplicațiile. 299 00:20:06,250 --> 00:20:11,050 Pe iOS puteți utiliza un disassembler ca IDA Pro 300 00:20:11,050 --> 00:20:17,190 să se uite la ceea ce Apis aplicația este de asteptare si ce face. 301 00:20:17,190 --> 00:20:20,680 Am scris propriul nostru analizor statică binar pentru codul nostru 302 00:20:20,680 --> 00:20:24,940 și vom face acest lucru, și așa mai departe ceea ce ai putea face este de ai putea spune 303 00:20:24,940 --> 00:20:30,490 este dispozitivul face ceva care este, în principiu spionaj pe mine sau mă de urmărire? 304 00:20:30,490 --> 00:20:33,360 Și am câteva exemple aici pe iPhone. 305 00:20:33,360 --> 00:20:41,440 Acest prim exemplu este modul de accesare a UUID de pe telefon. 306 00:20:41,440 --> 00:20:47,060 Aceasta este de fapt ceva care Apple tocmai a interzis pentru noi aplicații, 307 00:20:47,060 --> 00:20:52,540 dar aplicațiile vechi pe care le-ar putea fi rulează pe telefonul tău poate face în continuare acest lucru, 308 00:20:52,540 --> 00:20:56,500 și pentru ca identificator unic pot fi folosite pentru a va urmări 309 00:20:56,500 --> 00:21:00,440 în multe aplicații diferite. 310 00:21:00,440 --> 00:21:07,180 >> Pe Android, am un exemplu aici de a obține locația dispozitivului. 311 00:21:07,180 --> 00:21:10,310 Puteți vedea că în cazul în care apelul API este acolo, care app este de urmărire, 312 00:21:10,310 --> 00:21:15,000 și puteți vedea dacă se face locație fin sau grosier de locație. 313 00:21:15,000 --> 00:21:18,860 Și apoi pe partea de jos de aici, am un exemplu de cât de pe BlackBerry 314 00:21:18,860 --> 00:21:25,130 o aplicație poate accesa mesajele e-mail în Inbox. 315 00:21:25,130 --> 00:21:27,660 Acestea sunt genul de lucruri pe care le poate inspecta a vedea 316 00:21:27,660 --> 00:21:32,360 dacă aplicația este de a face aceste lucruri. 317 00:21:32,360 --> 00:21:38,320 Cea de a doua mare categorie de comportament rău intenționat, și acest lucru este, probabil, cea mai mare categorie acum, 318 00:21:38,320 --> 00:21:43,950 este apelarea neautorizat, premium neautorizate mesaje text SMS 319 00:21:43,950 --> 00:21:46,080 sau plăți neautorizate. 320 00:21:46,080 --> 00:21:48,930 Un alt lucru care este unic despre telefon 321 00:21:48,930 --> 00:21:52,700 este dispozitivul este conectat la un cont de facturare, 322 00:21:52,700 --> 00:21:55,960 și atunci când activitățile se întâmplă la telefon 323 00:21:55,960 --> 00:21:58,510 se poate crea taxe. 324 00:21:58,510 --> 00:22:00,700 Puteți achiziționa lucruri la telefon, 325 00:22:00,700 --> 00:22:04,390 și atunci când trimiteți un mesaj premium SMS text pe care îl dai de fapt bani 326 00:22:04,390 --> 00:22:11,590 titularului de cont de numărul de telefon pe de altă parte. 327 00:22:11,590 --> 00:22:17,420 Acestea au fost înființate pentru a obține cotații bursiere sau a obține horoscopul de zi cu zi sau de alte lucruri, 328 00:22:17,420 --> 00:22:21,680 dar ele pot fi configurate pentru a comanda un produs prin trimiterea unui text SMS. 329 00:22:21,680 --> 00:22:26,970 Oamenii dau bani pentru a Crucii Roșii prin trimiterea unui mesaj text. 330 00:22:26,970 --> 00:22:30,650 Puteți da 10 dolari în acest fel. 331 00:22:30,650 --> 00:22:34,190 >> Atacatorii, ceea ce le-am făcut este că înființat 332 00:22:34,190 --> 00:22:38,750 conturi în țări străine, și se încorpora în malware 333 00:22:38,750 --> 00:22:42,840 că telefonul va trimite un mesaj text premium SMS, 334 00:22:42,840 --> 00:22:47,700 spun, de câteva ori pe zi, iar la sfârșitul lunii, vă dați seama că ați cheltuit 335 00:22:47,700 --> 00:22:52,090 zeci sau poate chiar sute de dolari, și au mers pe jos cu banii. 336 00:22:52,090 --> 00:22:57,280 Acest ajuns așa de rău că acest lucru a fost primul lucru pe care Android 337 00:22:57,280 --> 00:23:00,760 Piață sau Google locul-a fost Android Marketplace la momentul respectiv, 338 00:23:00,760 --> 00:23:04,430 și este acum Google Play-primul lucru pe care Google a început verificarea. 339 00:23:04,430 --> 00:23:08,700 Atunci când Google a început să distribuie aplicații Android în magazinul lor app 340 00:23:08,700 --> 00:23:11,350 au spus că nu au de gând să verifice pentru nimic. 341 00:23:11,350 --> 00:23:15,630 Vom trage aplicații odată ce am fost anunțat că au spart termenii de serviciu, 342 00:23:15,630 --> 00:23:17,520 dar noi nu vom verifica pentru nimic. 343 00:23:17,520 --> 00:23:24,350 Ei bine, despre un an în urmă a ajuns atât de rău cu acest mesaj text malware premium SMS 344 00:23:24,350 --> 00:23:28,030 că acesta este primul lucru pe care a început verificarea. 345 00:23:28,030 --> 00:23:31,770 În cazul în care o aplicație poate trimite mesaje text SMS 346 00:23:31,770 --> 00:23:34,750 se examineze în continuare manual această cerere. 347 00:23:34,750 --> 00:23:38,770 Se uita pentru API-urile care necesită acest lucru, 348 00:23:38,770 --> 00:23:40,580 și acum de atunci Google sa extins, 349 00:23:40,580 --> 00:23:46,900 dar acest lucru a fost primul lucru pe care au început să caute. 350 00:23:46,900 --> 00:23:50,690 >> Unele alte aplicații care au făcut unele mesaje text SMS, 351 00:23:50,690 --> 00:23:56,980 acest Android Qicsomos, cred că se numește. 352 00:23:56,980 --> 00:24:02,670 Nu a fost acest eveniment curent pe telefonul mobil în cazul în care acest lucru CarrierIQ a ieșit 353 00:24:02,670 --> 00:24:07,720 ca a pus spyware pe dispozitivul de către transportatorii, 354 00:24:07,720 --> 00:24:10,820 astfel încât oamenii au vrut să știe dacă telefonul lor a fost vulnerabil la acest lucru, 355 00:24:10,820 --> 00:24:13,890 și acest lucru a fost o aplicație gratuită care a testat asta. 356 00:24:13,890 --> 00:24:17,520 Ei bine, desigur, ceea ce a făcut această aplicație a fost trimis premium mesaje text SMS, 357 00:24:17,520 --> 00:24:20,090 astfel de testare pentru a vedea dacă sunteți infectat cu spyware 358 00:24:20,090 --> 00:24:24,930 încărcate malware-ului pe dispozitiv. 359 00:24:24,930 --> 00:24:27,310 Am văzut același lucru se întâmplă în ultimul Super Bowl. 360 00:24:27,310 --> 00:24:33,180 Nu a fost o versiune fals a jocului de fotbal Madden 361 00:24:33,180 --> 00:24:38,320 care a trimis premium de mesaje text SMS. 362 00:24:38,320 --> 00:24:45,750 Este de fapt, a încercat să creeze o rețea bot prea pe dispozitiv. 363 00:24:45,750 --> 00:24:48,090 Aici am câteva exemple. 364 00:24:48,090 --> 00:24:52,640 Destul de interesant, Apple a fost destul de inteligent, 365 00:24:52,640 --> 00:24:58,470 și ele nu permit aplicații pentru a trimite mesaje text SMS la toate. 366 00:24:58,470 --> 00:25:00,350 Nici o aplicație o poate face. 367 00:25:00,350 --> 00:25:03,530 Asta este o modalitate foarte bună de a scăpa de o intreaga clasa de vulnerabilitate, 368 00:25:03,530 --> 00:25:09,040 dar pe Android, puteți face acest lucru, și, desigur, pe BlackBerry poți face prea. 369 00:25:09,040 --> 00:25:13,060 Este interesant că pe BlackBerry tot ce ai nevoie este de permisiuni de internet 370 00:25:13,060 --> 00:25:18,370 pentru a trimite un mesaj text SMS. 371 00:25:18,370 --> 00:25:21,580 >> Un alt lucru pe care într-adevăr ne uităm pentru 372 00:25:21,580 --> 00:25:24,780 atunci când sunteți în căutarea pentru a vedea dacă ceva este rău intenționat este orice fel de 373 00:25:24,780 --> 00:25:28,100 activitatea de rețea neautorizate, ca uita-te la activitatea de rețea 374 00:25:28,100 --> 00:25:31,570 app ar trebui să aibă pentru a avea funcționalitatea acestuia, 375 00:25:31,570 --> 00:25:35,380 si uita-te la această altă activitate rețea. 376 00:25:35,380 --> 00:25:43,380 Poate că o aplicație, de a lucra, are pentru a obține date peste HTTP, 377 00:25:43,380 --> 00:25:47,500 dar în cazul în care se face lucrurile pe e-mail sau SMS sau Bluetooth sau ceva de genul asta 378 00:25:47,500 --> 00:25:52,890 acum că aplicația ar putea fi rău intenționat, astfel încât acesta este un alt lucru pe care il puteti inspecta pentru. 379 00:25:52,890 --> 00:26:00,430 Și pe acest slide aici am câteva exemple de asta. 380 00:26:00,430 --> 00:26:05,950 Un alt lucru interesant pe care l-am văzut cu malware sa întâmplat în 2009, 381 00:26:05,950 --> 00:26:07,600 și sa întâmplat într-un mare fel. 382 00:26:07,600 --> 00:26:11,390 Nu știu dacă sa întâmplat atât de mult de atunci, dar a fost o aplicatie 383 00:26:11,390 --> 00:26:15,140 că imitat o altă aplicație. 384 00:26:15,140 --> 00:26:21,700 Nu a fost un set de aplicații, și a fost numit atacul 09Droid, 385 00:26:21,700 --> 00:26:29,770 și cineva a decis că au existat o mulțime de bănci mici, regionale, de dimensiuni medii 386 00:26:29,770 --> 00:26:32,260 care nu au avut aplicații on-line banking, 387 00:26:32,260 --> 00:26:36,870 astfel încât ceea ce au făcut a fost au construit aproximativ 50 de aplicații on-line banking 388 00:26:36,870 --> 00:26:39,410 că tot ce au făcut a fost să ia numele de utilizator și parola 389 00:26:39,410 --> 00:26:42,190 și vă va redirecționa către site-ul web. 390 00:26:42,190 --> 00:26:47,470 Și așa au pus toate acestea în Marketplace Google, 391 00:26:47,470 --> 00:26:51,530 în Android Marketplace, iar atunci când cineva căutat pentru a vedea dacă banca lor 392 00:26:51,530 --> 00:26:56,000 a avut o aplicație care le-ar găsi aplicarea fals, 393 00:26:56,000 --> 00:27:01,230 care a colectat prerogativelor lor și apoi le redirecționat către site-ul lor. 394 00:27:01,230 --> 00:27:06,640 Modul în care acest fapt a devenit, aplicațiile au fost acolo de câteva săptămâni, 395 00:27:06,640 --> 00:27:09,050 și au existat mii și mii de download-uri. 396 00:27:09,050 --> 00:27:12,910 >> Modul în care acest a venit la lumina a fost cineva avea o problemă 397 00:27:12,910 --> 00:27:15,740 cu una din aplicațiile, și au numit banca lor, 398 00:27:15,740 --> 00:27:18,390 și au chemat linie de suport clienti banca lor și a spus, 399 00:27:18,390 --> 00:27:21,180 "Am o problemă cu aplicația de mobile banking." 400 00:27:21,180 --> 00:27:23,460 "Poți să mă ajuți?" 401 00:27:23,460 --> 00:27:26,540 Și au zis: "Noi nu avem o aplicație de mobile banking." 402 00:27:26,540 --> 00:27:28,120 Care a început ancheta. 403 00:27:28,120 --> 00:27:31,200 Că banca numit Google, și apoi Google a privit și a spus, 404 00:27:31,200 --> 00:27:37,220 "Wow, același autor a scris 50 de aplicatii bancare," și le-a luat pe toți în jos. 405 00:27:37,220 --> 00:27:43,410 Dar cu siguranță acest lucru ar putea întâmpla din nou. 406 00:27:43,410 --> 00:27:51,790 Nu este lista completă a diferitelor bănci aici 407 00:27:51,790 --> 00:27:55,870 care au făcut parte din această înșelătorie. 408 00:27:55,870 --> 00:28:02,050 Un alt lucru o aplicație poate face este prezent UI de altă aplicație. 409 00:28:02,050 --> 00:28:06,430 În timp ce se rulează s-ar putea pop-up UI Facebook. 410 00:28:06,430 --> 00:28:09,540 Se spune că trebuie să pună în numele de utilizator și parola pentru a continua 411 00:28:09,540 --> 00:28:15,090 sau pune orice nume de utilizator și o parolă UI pentru un site web 412 00:28:15,090 --> 00:28:18,420 ca poate utilizatorul folosește doar pentru a încerca să păcălească utilizatorul 413 00:28:18,420 --> 00:28:21,340 în punerea prerogativelor lor inch 414 00:28:21,340 --> 00:28:25,590 Acest lucru este într-adevăr o paralelă dreaptă a atacurilor de e-mail de tip phishing 415 00:28:25,590 --> 00:28:28,210 în cazul în care cineva vă trimite un mesaj de e-mail 416 00:28:28,210 --> 00:28:33,050 și vă oferă, practic, un UI fals pentru un site web 417 00:28:33,050 --> 00:28:37,320 că aveți acces la. 418 00:28:37,320 --> 00:28:41,590 >> Un alt lucru pe care îl căutăm în cod malitios este modificarea sistemului. 419 00:28:41,590 --> 00:28:48,160 Poti sa te uiti pentru toate apelurile API care necesită privilegii root 420 00:28:48,160 --> 00:28:50,870 pentru a executa în mod corect. 421 00:28:50,870 --> 00:28:56,160 Schimbarea proxy web a dispozitivului ar fi ceva care o cerere 422 00:28:56,160 --> 00:28:59,530 nu ar trebui să fie capabil să facă. 423 00:28:59,530 --> 00:29:03,030 Dar dacă cererea are cod în acolo pentru a face acest lucru 424 00:29:03,030 --> 00:29:05,960 știi că este, probabil, o aplicație malware 425 00:29:05,960 --> 00:29:09,620 sau foarte foarte probabil să fie o aplicație malware, 426 00:29:09,620 --> 00:29:13,910 și așa mai departe ceea ce se va întâmpla este că app ar avea un fel de escaladarea privilegiu. 427 00:29:13,910 --> 00:29:17,200 Aceasta ar avea unele escaladarea privilegiu exploata 428 00:29:17,200 --> 00:29:20,730 în cerere, și apoi după ce a escaladat privilegii 429 00:29:20,730 --> 00:29:23,800 s-ar face aceste modificări de sistem. 430 00:29:23,800 --> 00:29:28,010 Puteți găsi malware care are privilegiul de escaladare 431 00:29:28,010 --> 00:29:32,550 în ea chiar și fără să știe cum escaladarea privilegiu 432 00:29:32,550 --> 00:29:37,960 exploata se va întâmpla, și asta e un mod frumos, ușor 433 00:29:37,960 --> 00:29:41,220 pentru a căuta malware. 434 00:29:41,220 --> 00:29:46,030 DroidDream a fost, probabil, cel mai faimos piesa de malware Android. 435 00:29:46,030 --> 00:29:50,530 Cred că a afectat aproximativ 250.000 de utilizatori de peste câteva zile 436 00:29:50,530 --> 00:29:52,810 înainte de a fi găsit. 437 00:29:52,810 --> 00:29:56,890 Ei au reambalat 50 de aplicații false, 438 00:29:56,890 --> 00:30:00,370 le-a pus în App Store Android, 439 00:30:00,370 --> 00:30:10,940 și, în esență, folosit cod jailbreak Android pentru a escalada privilegii 440 00:30:10,940 --> 00:30:16,380 și apoi a instala o comandă și de control și să se întoarcă toate victimele 441 00:30:16,380 --> 00:30:20,690 într-o plasă bot, dar ai putea fi detectat acest 442 00:30:20,690 --> 00:30:24,170 dacă ați fost scanarea aplicarea și în căutarea doar pentru 443 00:30:24,170 --> 00:30:32,230 API cheamă că rădăcină permisiunea necesară pentru a executa în mod corect. 444 00:30:32,230 --> 00:30:40,150 >> Și acolo e un exemplu aici, am care se schimbă proxy, 445 00:30:40,150 --> 00:30:46,380 iar acest fapt este valabil doar pe Android. 446 00:30:46,380 --> 00:30:49,070 Puteți vedea Îți dau o mulțime de exemple de pe Android 447 00:30:49,070 --> 00:30:53,990 deoarece acest lucru este în cazul în care ecosistemul malware cel mai activ este 448 00:30:53,990 --> 00:30:58,690 pentru că este foarte ușor pentru un atacator pentru a obține cod malitios 449 00:30:58,690 --> 00:31:01,470 în Android Marketplace. 450 00:31:01,470 --> 00:31:06,480 Nu e atât de ușor să faci asta în Apple App Store 451 00:31:06,480 --> 00:31:10,250 deoarece Apple cere dezvoltatorilor să se identifice 452 00:31:10,250 --> 00:31:12,790 și să semneze codul. 453 00:31:12,790 --> 00:31:20,340 Ei verifica de fapt, cine ești, și Apple este de fapt examinarea cererilor. 454 00:31:20,340 --> 00:31:27,450 Noi nu vedem o mulțime de adevărat malware în cazul în care dispozitivul este obtinerea compromisă. 455 00:31:27,450 --> 00:31:32,250 Voi vorbi despre câteva exemple în care este într-adevăr viața privată, care este obtinerea compromis, 456 00:31:32,250 --> 00:31:38,460 și asta e ceea ce se întâmplă cu adevărat pe dispozitivul Apple. 457 00:31:38,460 --> 00:31:44,090 Un alt lucru să se uite pentru cod malware, cod riscant în dispozitivele 458 00:31:44,090 --> 00:31:50,300 este bombe logice sau de timp, și bombe cu ceas sunt, probabil, 459 00:31:50,300 --> 00:31:53,370 mult mai ușor pentru a căuta decât bombe logice. 460 00:31:53,370 --> 00:31:57,030 Dar cu bombe de timp, ceea ce poate face este poti sa te uiti pentru 461 00:31:57,030 --> 00:32:04,760 locuri în codul în care timpul este testat sau un timp absolut este privit de 462 00:32:04,760 --> 00:32:08,190 înainte de anumite funcționalități în aplicația se întâmplă. 463 00:32:08,190 --> 00:32:14,200 Și acest lucru ar putea fi făcut pentru a ascunde faptul că activitatea de utilizator, 464 00:32:14,200 --> 00:32:17,510 așa se întâmplă noaptea târziu. 465 00:32:17,510 --> 00:32:24,350 DroidDream făcut toată activitatea sa între 23 și 8 AM ora locală 466 00:32:24,350 --> 00:32:30,650 pentru a încerca să-l facă în timp ce utilizatorul ar putea să nu fie cu ajutorul unui dispozitiv lor. 467 00:32:30,650 --> 00:32:38,680 >> Un alt motiv pentru a face acest lucru este în cazul în care oamenii folosesc analiza comportamentala a unei cereri, 468 00:32:38,680 --> 00:32:43,430 rulează aplicația într-un sandbox pentru a vedea ce este comportamentul a cererii, 469 00:32:43,430 --> 00:32:51,090 ei pot folosi logica pe bază de timp pentru a face activitatea 470 00:32:51,090 --> 00:32:54,640 atunci când aplicația nu este în cutia cu nisip. 471 00:32:54,640 --> 00:33:01,520 De exemplu, un magazin app ca Apple 472 00:33:01,520 --> 00:33:07,940 rulează aplicația, dar ele probabil că nu rula fiecare aplicație de, să zicem, 30 zile 473 00:33:07,940 --> 00:33:10,550 înainte de ao aproba, astfel încât să puteți pune 474 00:33:10,550 --> 00:33:14,120 logica în aplicația care a spus, bine, doar fac ceea ce rău 475 00:33:14,120 --> 00:33:20,490 după 30 de zile a trecut prin sau după 30 de zile după data publicării cererii, 476 00:33:20,490 --> 00:33:27,020 și că poate ajuta la codul malitios ascunde de la oameni de inspecție pentru ea. 477 00:33:27,020 --> 00:33:30,050 În cazul în care companiile anti-virus se execută lucruri în nisipuri 478 00:33:30,050 --> 00:33:36,370 sau magazinele app sine sunt acest lucru poate ajuta 479 00:33:36,370 --> 00:33:39,260 ascunde faptul că de la acea inspecție. 480 00:33:39,260 --> 00:33:43,020 Acum, de cealalta parte de care este ușor de a găsi cu analiza statica, 481 00:33:43,020 --> 00:33:46,170 asa ca de fapt inspectarea codul poti sa te uiti pentru toate locurile 482 00:33:46,170 --> 00:33:54,010 în cazul în care cererea de teste de timp și de a inspecta în acest fel. 483 00:33:54,010 --> 00:33:58,850 Și aici am câteva exemple cu privire la aceste trei platforme diferite 484 00:33:58,850 --> 00:34:05,640 cât timp pot fi verificate de către producătorul app 485 00:34:05,640 --> 00:34:10,520 astfel încât să știi ce să caute, dacă sunteți inspectarea aplicația static. 486 00:34:10,520 --> 00:34:14,570 >> Tocmai am trecut printr-o grămadă de diferite activități rău intenționate 487 00:34:14,570 --> 00:34:18,969 pe care le-am văzut în sălbăticie, dar care sunt cele mai prevalente? 488 00:34:18,969 --> 00:34:23,940 Că același studiu de la North Carolina State Mobile Genome Project 489 00:34:23,940 --> 00:34:28,560 a publicat unele date, și au fost, practic, 4 zone 490 00:34:28,560 --> 00:34:32,850 că au văzut în cazul în care a existat o mulțime de activitate. 491 00:34:32,850 --> 00:34:35,370 37% dintre aplicații au privilegiilor, 492 00:34:35,370 --> 00:34:38,429 așa că a trebuit un anumit tip de cod jailbreak acolo 493 00:34:38,429 --> 00:34:42,070 în cazul în care au încercat să escaladeze privilegii, astfel încât acestea ar putea 494 00:34:42,070 --> 00:34:48,360 te comenzi API rulează ca sistem de operare. 495 00:34:48,360 --> 00:34:52,520 45% din aplicațiile de acolo a făcut SMS-uri premium, 496 00:34:52,520 --> 00:34:57,260 astfel că este un procent foarte mare, care este încercarea de a valorifica în mod direct. 497 00:34:57,260 --> 00:35:02,640 93% au făcut acest control de la distanță, așa că au încercat să înființeze o rețea bot, un bot net mobil. 498 00:35:02,640 --> 00:35:08,990 Și 45% recoltate informații de identificare 499 00:35:08,990 --> 00:35:16,230 cum ar fi numere de telefon, UUID, localizare GPS, conturi de utilizator, 500 00:35:16,230 --> 00:35:22,870 și acest lucru se adaugă până la mai mult de 100, deoarece cele mai multe malware încearcă să facă o câteva dintre aceste lucruri. 501 00:35:22,870 --> 00:35:27,070 >> Am de gând să treacă la cea de a doua jumătate a anului și a vorbi despre vulnerabilitățile cod. 502 00:35:27,070 --> 00:35:29,480 Aceasta este cea de a doua jumătate a activității de riscant. 503 00:35:29,480 --> 00:35:33,450 Acest lucru este în cazul în care, în esență, dezvoltatorul este de a face erori. 504 00:35:33,450 --> 00:35:37,210 Un dezvoltator legitim scris o aplicație legitimă 505 00:35:37,210 --> 00:35:41,830 este de a face erori sau este ignorant cu privire la riscurile de platforma de mobil. 506 00:35:41,830 --> 00:35:44,780 Ei pur și simplu nu știu cum să facă o aplicație mobilă securizată, 507 00:35:44,780 --> 00:35:47,700 sau, uneori, dezvoltatorul nu-i pasa de a pune utilizatorul în pericol. 508 00:35:47,700 --> 00:35:50,850 Uneori, o parte din modelul lor de afaceri ar putea fi 509 00:35:50,850 --> 00:35:54,610 recoltarea de informații personale ale utilizatorului. 510 00:35:54,610 --> 00:35:58,090 Asta e un fel de cealaltă categorie, și de aceea o parte din acest malware 511 00:35:58,090 --> 00:36:03,200 versus începe legitime de a sângera peste, deoarece nu există diferență de opinii 512 00:36:03,200 --> 00:36:10,440 între ceea ce utilizatorul dorește și ceea ce utilizatorul consideră riscant 513 00:36:10,440 --> 00:36:13,050 și ceea ce dezvoltatorul de aplicații consideră riscant. 514 00:36:13,050 --> 00:36:18,380 Desigur, nu e de date dezvoltator de aplicații, în cele mai multe cazuri. 515 00:36:18,380 --> 00:36:22,030 >> Și apoi în cele din urmă, un alt mod de acest lucru se întâmplă este un dezvoltator s-ar putea lega în 516 00:36:22,030 --> 00:36:28,600 o bibliotecă partajată care are vulnerabilitati sau acest comportament riscant în ea 517 00:36:28,600 --> 00:36:32,480 fără știrea lor. 518 00:36:32,480 --> 00:36:37,060 Prima categorie este scurgeri de date sensibile, 519 00:36:37,060 --> 00:36:40,030 iar acest lucru este atunci când aplicația colectează informații 520 00:36:40,030 --> 00:36:44,980 cum ar fi amplasarea, informații de carte adresa, informații despre proprietar 521 00:36:44,980 --> 00:36:48,000 și transmite că de pe dispozitivul. 522 00:36:48,000 --> 00:36:53,050 Și după ce a fost oprit aparatul, nu știm ce se întâmplă cu aceste informații. 523 00:36:53,050 --> 00:36:57,170 Acesta ar putea fi stocate nesigur de către dezvoltator de aplicații. 524 00:36:57,170 --> 00:37:02,070 Am văzut dezvoltatorii de aplicații se compromisă, 525 00:37:02,070 --> 00:37:05,820 iar datele pe care ei stocarea devine luate. 526 00:37:05,820 --> 00:37:10,970 Acest lucru sa întâmplat în urmă cu câteva luni, la un dezvoltator în Florida 527 00:37:10,970 --> 00:37:21,660 în cazul în care un număr foarte mare de-a fost iPad UUID și nume de dispozitive 528 00:37:21,660 --> 00:37:25,270 s-au scurs pentru că cineva, cred că a fost anonim, 529 00:37:25,270 --> 00:37:29,460 a pretins de a face acest lucru, a intrat în serverele acest dezvoltator 530 00:37:29,460 --> 00:37:34,920 și a furat milioane de iPad UUID 531 00:37:34,920 --> 00:37:37,390 și numele de calculator. 532 00:37:37,390 --> 00:37:40,260 Nu informațiile cele mai riscante, 533 00:37:40,260 --> 00:37:46,820 dar ceea ce în cazul în care a fost stocarea de nume de utilizator și parole 534 00:37:46,820 --> 00:37:48,170 și adresele de domiciliu? 535 00:37:48,170 --> 00:37:51,100 Există o mulțime de aplicații care stochează acest tip de informații. 536 00:37:51,100 --> 00:37:53,230 Riscul este acolo. 537 00:37:53,230 --> 00:37:56,620 >> Un alt lucru care se poate întâmpla este în cazul în care dezvoltatorul nu are grijă 538 00:37:56,620 --> 00:38:01,370 pentru a asigura canalul de date, și asta este o altă vulnerabilitate mare, am de gând să vorbesc despre, 539 00:38:01,370 --> 00:38:05,160 care datele sunt transmise în clar. 540 00:38:05,160 --> 00:38:09,040 În cazul în care utilizatorul este pe o rețea Wi-Fi publică 541 00:38:09,040 --> 00:38:12,330 sau cineva este sniffing pe internet undeva 542 00:38:12,330 --> 00:38:19,260 de-a lungul căii de date, care este expus. 543 00:38:19,260 --> 00:38:23,790 Un caz foarte celebru de această scurgere de informații sa întâmplat cu Pandora, 544 00:38:23,790 --> 00:38:27,250 și acest lucru este ceva ce am cercetat la Veracode. 545 00:38:27,250 --> 00:38:33,200 Am auzit că a existat o Cred că a fost o Comisia Federală de Comerț 546 00:38:33,200 --> 00:38:35,310 investigație întâmplă cu Pandora. 547 00:38:35,310 --> 00:38:39,830 Am spus, "Ce se întâmplă acolo? Să începem săpat în aplicația Pandora." 548 00:38:39,830 --> 00:38:46,690 Și ceea ce am stabilit a fost de aplicare Pandora colectate 549 00:38:46,690 --> 00:38:51,270 sexul și vârsta dumneavoastră, 550 00:38:51,270 --> 00:38:56,660 și-l accesat, de asemenea, locația GPS și aplicația Pandora 551 00:38:56,660 --> 00:39:00,200 a făcut acest lucru pentru ceea ce au spus motive legitime. 552 00:39:00,200 --> 00:39:05,360 Muzica pe care ei jucau-Pandora este o aplicatie-streaming de muzică 553 00:39:05,360 --> 00:39:07,530 muzica pe care o jucau a fost autorizat numai în Statele Unite, 554 00:39:07,530 --> 00:39:13,020 așa că a trebuit să verifice să respecte acordurile de licență pe care le-au avut 555 00:39:13,020 --> 00:39:17,240 pentru muzica care utilizatorul a fost în Statele Unite. 556 00:39:17,240 --> 00:39:25,070 De asemenea, au vrut să se conformeze cu Parental Advisory 557 00:39:25,070 --> 00:39:33,790 în jurul limbaj adult în muzică, 558 00:39:33,790 --> 00:39:37,500 și deci este un program de voluntariat, dar au vrut să se conformeze cu care 559 00:39:37,500 --> 00:39:43,010 și nu joacă versuri explicite pentru copii de 13 și sub. 560 00:39:43,010 --> 00:39:46,280 >> Ei au avut motive legitime pentru colectarea acestor date. 561 00:39:46,280 --> 00:39:49,160 App lor a avut permisiunea de a face acest lucru. 562 00:39:49,160 --> 00:39:52,000 Utilizatorii de crezut că acest lucru a fost legitim. Dar ce sa întâmplat? 563 00:39:52,000 --> 00:39:55,810 Ei au legat în 3 sau 4 biblioteci de anunțuri diferite. 564 00:39:55,810 --> 00:39:59,140 Acum, toate dintr-o toate aceste biblioteci bruște de anunțuri 565 00:39:59,140 --> 00:40:02,970 sunt de a avea acces la aceeași informație. 566 00:40:02,970 --> 00:40:05,830 Bibliotecile de anunțuri, dacă te uiți la codul în bibliotecile de anunțuri 567 00:40:05,830 --> 00:40:08,430 ceea ce fac ei este de fiecare bibliotecă anunț spune 568 00:40:08,430 --> 00:40:11,340 "Are app meu permisiunea de a obține localizare GPS?" 569 00:40:11,340 --> 00:40:14,890 "Oh, nu? Bine, spune-mi locația GPS." 570 00:40:14,890 --> 00:40:16,620 Fiecare bibliotecă anunț face asta, 571 00:40:16,620 --> 00:40:19,740 și dacă aplicația nu are permisiunea GPS 572 00:40:19,740 --> 00:40:23,460 ea nu va fi capabil să-l, dar dacă o face, îl va primi. 573 00:40:23,460 --> 00:40:26,240 Acest lucru este în cazul în care modelul de afaceri al bibliotecilor de anunțuri 574 00:40:26,240 --> 00:40:31,160 se opune intimitatea utilizatorului. 575 00:40:31,160 --> 00:40:34,980 Și acolo a fost studii acolo, care va spune dacă știți vârsta 576 00:40:34,980 --> 00:40:38,430 de o persoană și știți locația lor 577 00:40:38,430 --> 00:40:42,530 în cazul în care dormi la noapte, pentru că aveți coordonatele GPS 578 00:40:42,530 --> 00:40:46,030 în timp ce, probabil, dorm, știți exact cine este acea persoană 579 00:40:46,030 --> 00:40:50,230 pentru ca poti determina care membru al gospodăriei este acea persoană. 580 00:40:50,230 --> 00:40:54,780 Într-adevăr acest lucru este identificarea de agenții de publicitate 581 00:40:54,780 --> 00:40:59,530 exact cine esti, si se pare ca a fost legitim. 582 00:40:59,530 --> 00:41:02,800 Vreau doar muzica mea de streaming, și aceasta este singura modalitate de a obține. 583 00:41:02,800 --> 00:41:05,370 >> Ei bine, ne-am expus aceasta. 584 00:41:05,370 --> 00:41:08,030 Am scris asta în mai multe posturi pe blog, 585 00:41:08,030 --> 00:41:13,280 și sa dovedit că cineva de la revista Rolling Stone 586 00:41:13,280 --> 00:41:18,810 citit unul dintre mesajele de pe blogul nostru și a scris blog-ul lor în Rolling Stone despre ea, 587 00:41:18,810 --> 00:41:22,120 și a doua zi Pandora crezut că a fost o idee bună 588 00:41:22,120 --> 00:41:27,600 pentru a elimina bibliotecile de anunțuri de la aplicarea lor. 589 00:41:27,600 --> 00:41:31,270 În măsura în care știu că sunt doar acestea ar trebui să fie apreciat. 590 00:41:31,270 --> 00:41:35,770 Cred că sunt singurul tip freemium de app care a făcut acest lucru. 591 00:41:35,770 --> 00:41:38,660 Toate celelalte aplicatii freemium avea același comportament, 592 00:41:38,660 --> 00:41:41,780 așa că ai să te gândești la ce fel de date dai 593 00:41:41,780 --> 00:41:48,330 aceste aplicatii freemium, pentru că totul merge la agenții de publicitate. 594 00:41:48,330 --> 00:41:53,390 Pretorian a făcut, de asemenea, un studiu cu privire la biblioteci partajate și a spus, 595 00:41:53,390 --> 00:41:57,100 "Să ne uităm la ceea ce împărtășit bibliotecile sunt bibliotecile partajate de top", iar acest lucru a fost de date. 596 00:41:57,100 --> 00:41:59,420 >> Ei au analizat 53.000 de aplicații, 597 00:41:59,420 --> 00:42:01,900 și numărul 1 biblioteca partajată a fost AdMob. 598 00:42:01,900 --> 00:42:06,060 Acesta a fost, de fapt, în 38% din cererile de acolo, 599 00:42:06,060 --> 00:42:08,800 astfel încât 38% din cererile pe care îl utilizați 600 00:42:08,800 --> 00:42:11,250 sunt susceptibile de recoltarea informațiile personale 601 00:42:11,250 --> 00:42:16,650 și-l trimite la rețelele de anunțuri. 602 00:42:16,650 --> 00:42:19,350 Apache și Android au fost de 8% și 6%, 603 00:42:19,350 --> 00:42:22,960 și apoi aceste altele în jos în partea de jos, Google Ads, Flurry, 604 00:42:22,960 --> 00:42:26,600 Mob City și Milenare mass-media, 605 00:42:26,600 --> 00:42:30,500 acestea sunt toate companiile de anunțuri, iar apoi, destul de interesant, 606 00:42:30,500 --> 00:42:33,500 4% legat în bibliotecă Facebook 607 00:42:33,500 --> 00:42:38,870 probabil pentru a face autentificarea prin Facebook 608 00:42:38,870 --> 00:42:40,810 astfel încât aplicația poate autentifica Facebook. 609 00:42:40,810 --> 00:42:44,660 Dar asta înseamnă, de asemenea, corporația Facebook controlează cod 610 00:42:44,660 --> 00:42:49,010 care se execută în 4% din Android mobile acolo, 611 00:42:49,010 --> 00:42:53,490 și au acces la toate datele care app care are permisiunea de a ajunge la. 612 00:42:53,490 --> 00:42:57,170 Facebook încearcă, în esență, să vândă spațiu publicitar. 613 00:42:57,170 --> 00:43:00,120 Asta e modelul lor de afaceri. 614 00:43:00,120 --> 00:43:02,920 >> Dacă te uiți la tot acest ecosistem cu aceste permisiuni 615 00:43:02,920 --> 00:43:07,740 și bibliotecile partajate de a începe să vedeți că 616 00:43:07,740 --> 00:43:13,850 aveți o mulțime de risc într-o aplicație presupune legitim. 617 00:43:13,850 --> 00:43:19,360 Același lucru asemănător sa întâmplat cu Pandora 618 00:43:19,360 --> 00:43:22,340 sa întâmplat cu o aplicație numită Path, 619 00:43:22,340 --> 00:43:27,660 Cale și au crezut că au fost dezvoltatori de ajutor, prietenos. 620 00:43:27,660 --> 00:43:32,160 Ei au fost doar încercarea de a vă oferi o experiență de utilizare mare, 621 00:43:32,160 --> 00:43:37,810 și sa dovedit că fără a solicita utilizatorului sau spune utilizatorul nimic- 622 00:43:37,810 --> 00:43:40,400 și acest lucru sa întâmplat pe iPhone și pe Android, 623 00:43:40,400 --> 00:43:44,420 app Pandora a fost pe iPhone și Android- 624 00:43:44,420 --> 00:43:48,890 că cererea Path a fost hapsân întreaga agendă 625 00:43:48,890 --> 00:43:52,830 și încărcați-l la Path doar atunci când ați instalat și a fugit de aplicare, 626 00:43:52,830 --> 00:43:55,840 și nu ți-a spus despre acest lucru. 627 00:43:55,840 --> 00:43:58,750 Ei au crezut ca a fost foarte util pentru tine 628 00:43:58,750 --> 00:44:04,040 pentru a fi capabil de a împărtăși cu toate persoanele din agenda dvs. 629 00:44:04,040 --> 00:44:06,920 că sunteți utilizând aplicația Path. 630 00:44:06,920 --> 00:44:09,490 >> Ei bine, în mod evident, Calea crezut că acest lucru a fost mare pentru compania lor. 631 00:44:09,490 --> 00:44:13,510 Nu este atât de mare pentru utilizator. 632 00:44:13,510 --> 00:44:19,020 Trebuie să cred că e un lucru dacă poate un adolescent 633 00:44:19,020 --> 00:44:23,700 este folosind această aplicație și zeci de prieteni sunt acolo, 634 00:44:23,700 --> 00:44:29,360 dar ce se întâmplă dacă este CEO-ul de o companie care instalează Path 635 00:44:29,360 --> 00:44:33,170 și apoi dintr-o dată cartea lor adrese întreg este de până acolo? 636 00:44:33,170 --> 00:44:38,310 Ai de gând pentru a obține o mulțime de informații de contact potențial valoroase 637 00:44:38,310 --> 00:44:40,920 pentru o mulțime de oameni. 638 00:44:40,920 --> 00:44:44,500 Un reporter de la New York Times, s-ar putea fi capabil de a obține numărul de telefon 639 00:44:44,500 --> 00:44:47,380 președinți de ex de la cartea lor de adrese, 640 00:44:47,380 --> 00:44:54,780 deci, evident, o mulțime de informații sensibile este transferat cu ceva de genul asta. 641 00:44:54,780 --> 00:44:58,090 Nu a fost astfel de un lambou mare despre acest lucru care Cale a cerut scuze. 642 00:44:58,090 --> 00:45:01,610 Au schimbat app lor, și chiar afectate Apple. 643 00:45:01,610 --> 00:45:06,950 Apple a spus, "Mergem pentru a forța furnizorii de aplicații pentru a solicita utilizatorilor 644 00:45:06,950 --> 00:45:12,650 în cazul în care acestea sunt de gând să colecteze întreaga agendă. " 645 00:45:12,650 --> 00:45:15,360 >> Se pare ca ceea ce se întâmplă aici este 646 00:45:15,360 --> 00:45:19,430 atunci când există o mare violare a vieții private și-l face presa 647 00:45:19,430 --> 00:45:21,680 vom vedea o schimbare acolo. 648 00:45:21,680 --> 00:45:23,230 Dar, desigur, există alte lucruri acolo. 649 00:45:23,230 --> 00:45:27,440 Cererea LinkedIn recoltele înregistrările din agendă, 650 00:45:27,440 --> 00:45:34,530 dar Apple nu face utilizatorul va cere despre asta. 651 00:45:34,530 --> 00:45:38,030 Calendar intrări pot avea informații sensibile în ele prea. 652 00:45:38,030 --> 00:45:40,000 În cazul în care ai de gând să tragem linie? 653 00:45:40,000 --> 00:45:43,960 Acest lucru este într-adevăr un fel de loc de evoluție 654 00:45:43,960 --> 00:45:47,640 în cazul în care nu există cu adevărat nici un standard bun de acolo 655 00:45:47,640 --> 00:45:51,990 pentru utilizatorii să înțeleagă atunci când informațiile lor va fi la risc 656 00:45:51,990 --> 00:45:57,820 și atunci când acestea sunt de gând să știu că a fi luate. 657 00:45:57,820 --> 00:46:03,040 Am scris un app la Veracode numit Adios, 658 00:46:03,040 --> 00:46:08,350 și, în esență, a permis să vă punctul de aplicația la directorul iTunes 659 00:46:08,350 --> 00:46:12,550 si uita-te la toate aplicațiile care s-au recoltat cartea ta adresa completă. 660 00:46:12,550 --> 00:46:19,760 Și, după cum puteți vedea pe această listă aici, Angry Birds, 661 00:46:19,760 --> 00:46:21,590 AIM, AroundMe. 662 00:46:21,590 --> 00:46:24,050 De ce are nevoie de Angry Birds agenda ta? 663 00:46:24,050 --> 00:46:29,160 Nu știu, dar o face într-un fel. 664 00:46:29,160 --> 00:46:32,310 >> Aceasta este ceva care multe, multe aplicații face. 665 00:46:32,310 --> 00:46:34,780 Puteți inspecta codul pentru acest lucru. 666 00:46:34,780 --> 00:46:38,660 Există API-uri bine definite pentru iPhone, Android și BlackBerry 667 00:46:38,660 --> 00:46:42,120 pentru a ajunge la agenda. 668 00:46:42,120 --> 00:46:48,520 Puteți inspecta foarte ușor pentru aceasta, și aceasta este ceea ce am făcut în cererea noastră Adios. 669 00:46:48,520 --> 00:46:52,320 Următoarea categorie, nesigure Sensibil stocare a datelor, 670 00:46:52,320 --> 00:46:55,670 este ceva în cazul în care dezvoltatorii să ia ceva de genul un cod PIN sau un număr de cont 671 00:46:55,670 --> 00:46:58,530 sau o parolă și păstrați-l în clar pe dispozitiv. 672 00:46:58,530 --> 00:47:02,310 Chiar mai rău, ei s-ar putea stoca într-o zonă de pe telefon 673 00:47:02,310 --> 00:47:06,820 care este accesibil la nivel global, cum ar fi cardul SD. 674 00:47:06,820 --> 00:47:11,320 Veți vedea acest lucru mai des pe Android Android, deoarece permite un card SD. 675 00:47:11,320 --> 00:47:13,200 Dispozitive iPhone nu. 676 00:47:13,200 --> 00:47:17,900 Dar am văzut chiar și acest lucru se întâmplă într-o aplicație CitiGroup. 677 00:47:17,900 --> 00:47:25,450 Aplicarea lor online banking stocate numerele de cont nesigur, 678 00:47:25,450 --> 00:47:28,120 doar în clar, deci, dacă ți-ai pierdut dispozitivul dvs., 679 00:47:28,120 --> 00:47:30,670 în esență, ți-ai pierdut contul tău bancar. 680 00:47:30,670 --> 00:47:36,000 Acesta este de ce eu personal nu fac banking pe iPhone-ul meu. 681 00:47:36,000 --> 00:47:43,710 Cred că e prea riscant chiar acum pentru a face aceste tipuri de activități. 682 00:47:43,710 --> 00:47:45,950 >> Skype a făcut același lucru. 683 00:47:45,950 --> 00:47:49,870 Skype, desigur, are un sold de cont, un nume de utilizator și o parolă 684 00:47:49,870 --> 00:47:51,030 că a accesa acest echilibru. 685 00:47:51,030 --> 00:48:00,080 Ei au fost stocarea toate aceste informații în clar pe dispozitivul mobil. 686 00:48:00,080 --> 00:48:05,760 Am câteva exemple aici de creare a fișierelor 687 00:48:05,760 --> 00:48:10,310 că nu aveți permisiunile corecte sau se scrie pe disc 688 00:48:10,310 --> 00:48:17,260 și nu au nici o criptare întâmpla pentru asta. 689 00:48:17,260 --> 00:48:20,190 Această zonă următor, nesigure Sensibil Transmisii de date, 690 00:48:20,190 --> 00:48:24,450 Am făcut aluzie la acest lucru de câteva ori, și din cauza publice Wi-Fi 691 00:48:24,450 --> 00:48:27,770 acest lucru este ceva care apps absolut nevoie pentru a face, 692 00:48:27,770 --> 00:48:31,250 și acest lucru este, probabil, ceea ce vedem merge prost cel mai. 693 00:48:31,250 --> 00:48:34,920 Aș spune-de fapt, cred că am date reale, 694 00:48:34,920 --> 00:48:38,120 dar e aproape de jumătate din aplicații mobile 695 00:48:38,120 --> 00:48:41,780 bară face SSL. 696 00:48:41,780 --> 00:48:43,910 Ei pur și simplu nu folosesc corect API-urile. 697 00:48:43,910 --> 00:48:47,970 Adică, tot ce trebuie să faceți este să urmați instrucțiunile și de a folosi API-uri, 698 00:48:47,970 --> 00:48:54,720 dar ele nu lucruri ca nu a verifica dacă există un certificat nevalid la celălalt capăt, 699 00:48:54,720 --> 00:49:02,120 nu a verifica dacă celălalt capăt este încercarea de a face un atac de downgrade protocol. 700 00:49:02,120 --> 00:49:07,200 >> Dezvoltatorii, care doresc pentru a obține caseta lor, corect? 701 00:49:07,200 --> 00:49:11,910 Cerința lor este de a folosi acest lucru pentru a vinde. Ei au folosit aceasta pentru a vinde. 702 00:49:11,910 --> 00:49:14,800 Cerința nu este de a folosi aceasta pentru a vinde în siguranță, 703 00:49:14,800 --> 00:49:19,680 și astfel încât acesta este motivul pentru toate aplicațiile care folosesc SSL pentru a asigura securitatea datelor 704 00:49:19,680 --> 00:49:23,470 așa cum este transmis de pe dispozitivul într-adevăr trebuie să fie inspectate 705 00:49:23,470 --> 00:49:28,950 pentru a vă asigura că a fost pusă în aplicare în mod corect. 706 00:49:28,950 --> 00:49:32,850 Și aici am câteva exemple, unde puteți vedea o aplicație 707 00:49:32,850 --> 00:49:37,400 ar putea fi, folosind în loc de HTTP HTTPS. 708 00:49:37,400 --> 00:49:40,510 În unele cazuri, aplicațiile vor cădea înapoi la HTTP 709 00:49:40,510 --> 00:49:44,250 dacă HTTPS nu este de lucru. 710 00:49:44,250 --> 00:49:49,070 Eu am un alt apel aici, pe Android, unde le-am dezactivat verificarea certificatului, 711 00:49:49,070 --> 00:49:51,700 astfel încât un atac man-in-the-mijloc se poate întâmpla. 712 00:49:51,700 --> 00:49:56,370 Un certificat nevalid vor fi acceptate. 713 00:49:56,370 --> 00:50:01,920 Acestea sunt toate cazurile în care atacatorii sunt de gând să fie în măsură de a obține pe 714 00:50:01,920 --> 00:50:07,150 aceeași conexiune Wi-Fi ca utilizatorul și acces la toate datele 715 00:50:07,150 --> 00:50:11,650 care a fost trimis pe internet. 716 00:50:11,650 --> 00:50:15,970 >> Și, în sfârșit, ultima categorie am aici este parola hardcoded și cheile. 717 00:50:15,970 --> 00:50:21,470 Vedem de fapt, o mulțime de dezvoltatorii folosesc același stil de codificare 718 00:50:21,470 --> 00:50:25,900 care au făcut atunci când au fost construirea de aplicații de server web, 719 00:50:25,900 --> 00:50:29,700 astfel încât acestea să construiesc o aplicație server Java, și ei hardcoding cheia. 720 00:50:29,700 --> 00:50:31,940 Ei bine, atunci când sunteți construirea o aplicație server, da, 721 00:50:31,940 --> 00:50:34,240 hardcoding cheia nu este o idee bună. 722 00:50:34,240 --> 00:50:36,290 Este dificil să se schimbe. 723 00:50:36,290 --> 00:50:40,700 Dar nu e așa de rău pe partea de server pentru că cine are acces la partea de server? 724 00:50:40,700 --> 00:50:43,140 Numai administratorii. 725 00:50:43,140 --> 00:50:48,100 Dar dacă luați același cod și îl toarnă peste la o aplicație mobilă 726 00:50:48,100 --> 00:50:52,550 acum toată lumea care are ca aplicație de telefonie mobilă are acces la acea cheie hardcoded, 727 00:50:52,550 --> 00:50:56,380 și vom vedea de fapt, aceasta o mulțime de ori, și am unele statistici 728 00:50:56,380 --> 00:51:00,920 pe cât de des vom vedea acest lucru. 729 00:51:00,920 --> 00:51:04,940 Acesta a fost de fapt în exemplul de cod care MasterCard a publicat 730 00:51:04,940 --> 00:51:06,850 cu privire la modul de a utiliza serviciul lor. 731 00:51:06,850 --> 00:51:11,860 Codul de exemplu, a arătat modul în care s-ar lua doar parola 732 00:51:11,860 --> 00:51:14,850 și pune-l într-un șir hardcoded chiar acolo, 733 00:51:14,850 --> 00:51:19,380 și știm cum dezvoltatorii place să copiați și inserați fragmente de cod 734 00:51:19,380 --> 00:51:22,360 atunci când ei încearcă să facă ceva, astfel încât să copiați și inserați fragmentul de cod 735 00:51:22,360 --> 00:51:28,450 pe care le-a dat ca exemplu de cod, și aveți o aplicație nesigur. 736 00:51:28,450 --> 00:51:31,490 >> Și aici avem câteva exemple. 737 00:51:31,490 --> 00:51:35,840 Aceasta prima una este unul vom vedea o mulțime în cazul în care hardcode 738 00:51:35,840 --> 00:51:40,510 dreptul de date într-un URL care este trimis. 739 00:51:40,510 --> 00:51:45,120 Uneori, vom vedea parola șir = parola. 740 00:51:45,120 --> 00:51:49,060 Asta e destul de ușor de a detecta, sau parolă șir pe BlackBerry si Android. 741 00:51:49,060 --> 00:51:53,680 Este de fapt destul de ușor pentru a verifica pentru că aproape întotdeauna 742 00:51:53,680 --> 00:51:57,030 numele dezvoltator variabila care se deține parola 743 00:51:57,030 --> 00:52:02,290 o variantă a parolei. 744 00:52:02,290 --> 00:52:05,200 Am menționat că vom face analiza statica la Veracode, 745 00:52:05,200 --> 00:52:11,790 așa că ne-am analizat mai multe sute de aplicații Android și iOS. 746 00:52:11,790 --> 00:52:15,160 Ne-am construit modele pline de ei, și noi suntem în stare să le scaneze 747 00:52:15,160 --> 00:52:19,280 pentru diferite vulnerabilități, în special vulnerabilitățile care vorbeam, 748 00:52:19,280 --> 00:52:21,050 și am unele date aici. 749 00:52:21,050 --> 00:52:24,320 68,5% dintre aplicații Android ne-am uitat la 750 00:52:24,320 --> 00:52:28,590 au spart codul de criptare, 751 00:52:28,590 --> 00:52:33,240 care pentru noi, nu putem detecta dacă ați făcut propria rutina cripto, 752 00:52:33,240 --> 00:52:38,980 nu că este o idee bună, dar acest lucru este, de fapt, folosind API-uri publicate 753 00:52:38,980 --> 00:52:42,530 care sunt pe platforma ci le face în așa fel 754 00:52:42,530 --> 00:52:46,680 ca cripto-ar fi vulnerabil, 68,5. 755 00:52:46,680 --> 00:52:49,870 Și acest lucru este pentru oameni care sunt ne trimite cererile lor de fapt, deoarece 756 00:52:49,870 --> 00:52:53,730 ei cred că este o idee bună de a face teste de securitate. 757 00:52:53,730 --> 00:52:56,960 Acestea sunt deja oameni care sunt, probabil, de gândire în siguranță, 758 00:52:56,960 --> 00:52:59,540 așa că, probabil, chiar mai rău. 759 00:52:59,540 --> 00:53:02,690 >> Nu am vorbit despre controlul linie de injecție de alimentare. 760 00:53:02,690 --> 00:53:07,640 E ceva ce verifica, dar nu e riscant ca o problemă. 761 00:53:07,640 --> 00:53:15,390 Scurgere de informații, acest lucru este în cazul în care datele sensibile sunt trimise de pe dispozitiv. 762 00:53:15,390 --> 00:53:19,270 Am constatat că în 40% din cererile. 763 00:53:19,270 --> 00:53:23,540 Timp și de stat, acestea sunt probleme de tip stare de rasă, de obicei, destul de greu de a exploata, 764 00:53:23,540 --> 00:53:26,170 așa că nu am vorbit despre asta, dar ne-am uitat la ea. 765 00:53:26,170 --> 00:53:28,750 23% au avut probleme de SQL injection. 766 00:53:28,750 --> 00:53:32,020 O mulțime de oameni nu știu că o mulțime de aplicații 767 00:53:32,020 --> 00:53:35,880 folositi un mic baze de date SQL puțin pe sfârșitul lor înapoi pentru a stoca date. 768 00:53:35,880 --> 00:53:40,430 Ei bine, în cazul în care datele pe care sunteți hapsân în rețea 769 00:53:40,430 --> 00:53:43,800 are siruri de atac SQL injection în ea 770 00:53:43,800 --> 00:53:45,970 cineva poate compromite dispozitivul prin care, 771 00:53:45,970 --> 00:53:49,800 și așa cred că vom găsi aproximativ 40% din aplicații web au această problemă, 772 00:53:49,800 --> 00:53:52,840 care este o problemă uriașă epidemie. 773 00:53:52,840 --> 00:53:55,740 Ne pare 23% din timp în aplicații mobile 774 00:53:55,740 --> 00:54:02,030 și că este, probabil, pentru că mult mai multe aplicatii web folosesc SQL decât mobil. 775 00:54:02,030 --> 00:54:05,580 >> Și apoi vom vedea încă unele cross-site scripting, aspecte de autorizare, 776 00:54:05,580 --> 00:54:09,400 și apoi management acreditare, care este în cazul în care aveți parola hardcoded. 777 00:54:09,400 --> 00:54:14,540 În 5% din cererile vedem că. 778 00:54:14,540 --> 00:54:17,970 Și apoi ne-am unele date cu privire la iOS. 779 00:54:17,970 --> 00:54:20,180 81% au avut probleme de eroare de manipulare. 780 00:54:20,180 --> 00:54:23,130 Acest lucru este mai mult o problemă de calitate cod, 781 00:54:23,130 --> 00:54:28,010 dar 67% au avut probleme criptografice, deci nu la fel de rău ca și Android. 782 00:54:28,010 --> 00:54:32,440 Poate că API-urile sunt un pic mai ușor, codurile de exemplu un pic mai bine pe iOS. 783 00:54:32,440 --> 00:54:35,420 Dar, totuși, un procent foarte mare. 784 00:54:35,420 --> 00:54:39,040 Am avut 54% cu scurgeri de informații, 785 00:54:39,040 --> 00:54:42,080 aproximativ 30% cu erorile de management tampon. 786 00:54:42,080 --> 00:54:45,930 Asta-i locuri unde nu ar putea fi o problemă de corupere a memoriei. 787 00:54:45,930 --> 00:54:50,350 Se pare că nu-i la fel de mult de o problemă de exploatare 788 00:54:50,350 --> 00:54:56,450 pe iOS pentru că tot codul trebuie să fie semnat, 789 00:54:56,450 --> 00:55:02,210 asa ca e greu pentru un atacator sa execute cod arbitrar pe iOS. 790 00:55:02,210 --> 00:55:07,880 Calitate de cod, director traversarea, dar apoi management acreditările aici, la 14,6%, 791 00:55:07,880 --> 00:55:09,250 așa mai rău decât pe Android. 792 00:55:09,250 --> 00:55:13,240 Avem oameni care nu se manipulează parolele corect. 793 00:55:13,240 --> 00:55:15,790 Și apoi erorile numerice și buffer overflow, 794 00:55:15,790 --> 00:55:22,680 cei care sunt mai mult vor fi probleme de calitate cod pe iOS. 795 00:55:22,680 --> 00:55:26,110 >> Asta a fost tot pentru prezentarea mea. Nu știu dacă mai avem timp sau nu. 796 00:55:26,110 --> 00:55:29,540 Nu știu dacă există întrebări. 797 00:55:29,540 --> 00:55:33,220 [MALE] O întrebare rapidă în jurul fragmentarea și pe piața Android. 798 00:55:33,220 --> 00:55:36,240 Apple a cel puțin detine patch-uri. 799 00:55:36,240 --> 00:55:40,780 Ei fac o treabă bună de a obține o acolo, în timp ce mai puțin în spațiul Android. 800 00:55:40,780 --> 00:55:44,280 Aproape nevoie pentru a jailbreak telefonul a rămâne la curent 801 00:55:44,280 --> 00:55:46,660 cu versiunea curentă de Android. 802 00:55:46,660 --> 00:55:50,960 Da, asta este o problemă foarte mare și, deci, dacă vă gândiți- 803 00:55:50,960 --> 00:55:52,280 [MALE] De ce nu-l repet? 804 00:55:52,280 --> 00:55:55,610 >> Oh, da, așa că întrebarea a fost ceea ce cu privire la fragmentarea 805 00:55:55,610 --> 00:56:00,410 a sistemului de operare pe platforma Android? 806 00:56:00,410 --> 00:56:05,890 Cum care afectează gradul de risc al acestor dispozitive? 807 00:56:05,890 --> 00:56:09,700 Și de fapt este o problemă uriașă, deoarece ceea ce se întâmplă este 808 00:56:09,700 --> 00:56:15,110 dispozitivele mai vechi, atunci când cineva vine cu un jailbreak pentru acel dispozitiv, 809 00:56:15,110 --> 00:56:19,960 în esență, că e privilegiu escaladarea, și până la faptul că sistemul de operare este actualizat 810 00:56:19,960 --> 00:56:25,350 orice malware poate folosi apoi ca vulnerabilitate a compromite total dispozitivul, 811 00:56:25,350 --> 00:56:30,200 și ceea ce vedem pe Android este, în scopul de a obține un nou sistem de operare 812 00:56:30,200 --> 00:56:34,690 Google are pentru a pune sistemul de operare, iar apoi producătorul hardware-ului 813 00:56:34,690 --> 00:56:39,390 trebuie să-l personaliza, iar apoi transportatorul trebuie să-l personaliza și dă-l. 814 00:56:39,390 --> 00:56:43,070 Aveți practic trei părți în mișcare aici, 815 00:56:43,070 --> 00:56:47,210 și este de cotitură că transportatorii nu-mi pasă, 816 00:56:47,210 --> 00:56:50,400 și producătorii de hardware nu-mi pasă, iar Google nu le este suficient de prodding 817 00:56:50,400 --> 00:56:54,430 să facă ceva, așa că, în esență, mai mult de jumătate dintre dispozitivele de acolo 818 00:56:54,430 --> 00:57:00,590 au sisteme de operare care nu au aceste vulnerabilități escaladarea privilegiu în ele, 819 00:57:00,590 --> 00:57:08,440 și, deci, dacă aveți malware pe dispozitiv Android este mult mai mult de o problemă. 820 00:57:08,440 --> 00:57:10,350 >> Bine, vă mulțumesc foarte mult. 821 00:57:10,350 --> 00:57:12,310 [Aplauze] 822 00:57:12,310 --> 00:57:14,310 [CS50.TV]