1 00:00:00,000 --> 00:00:02,610 >> [Seminar] [Obrana Iza uređaja: Mobile Application Security] 2 00:00:02,610 --> 00:00:04,380 [Chris Wysopal] [Sveučilište Harvard] 3 00:00:04,380 --> 00:00:07,830 [To je CS50.] [CS50.TV] 4 00:00:07,830 --> 00:00:10,360 >> Dobar dan. Moje ime je Chris Wysopal. 5 00:00:10,360 --> 00:00:13,360 Ja sam CTO i suosnivač Veracode. 6 00:00:13,360 --> 00:00:15,880 Veracode je primjena zaštitarske tvrtke. 7 00:00:15,880 --> 00:00:18,230 Mi smo testirali sve vrste različitih aplikacija, 8 00:00:18,230 --> 00:00:25,060 i što ću govoriti danas je mobilni aplikacija sigurnost. 9 00:00:25,060 --> 00:00:28,630 Moja pozadina je sam radio sigurnosni istraživanja 10 00:00:28,630 --> 00:00:31,970 već jako dugo vremena, vjerojatno oko dokle god bilo tko. 11 00:00:31,970 --> 00:00:35,000 Počeo sam sredinom 90-ih godina, 12 00:00:35,000 --> 00:00:37,370 i bilo je vrijeme da je bio prilično zanimljiv, jer 13 00:00:37,370 --> 00:00:39,220 imali smo promjenu paradigme u sredinom 90-ih godina. 14 00:00:39,220 --> 00:00:43,520 Sve je odjednom svako računalo je zakačen na internetu, 15 00:00:43,520 --> 00:00:46,550 i onda smo imali početke web aplikacija, 16 00:00:46,550 --> 00:00:49,330 i to je ono što sam usredotočen na puno onda. 17 00:00:49,330 --> 00:00:51,160 To je zanimljivo. 18 00:00:51,160 --> 00:00:53,930 Sada imamo još jednu promjenu paradigme događa s računalstvo, 19 00:00:53,930 --> 00:00:58,710 što je pomak za mobilne aplikacije. 20 00:00:58,710 --> 00:01:03,680 >> Osjećam nekako je sličan vremena pa ga je u kasnim 90-ih godina 21 00:01:03,680 --> 00:01:07,650 kada smo istraživali web aplikacije i pronalaženje nedostataka poput 22 00:01:07,650 --> 00:01:11,800 Upravljanje prijave pogreške i SQL injection 23 00:01:11,800 --> 00:01:14,940 koji zapravo nije postojao prije, i odjednom su bili posvuda 24 00:01:14,940 --> 00:01:19,360 u web aplikacija, a sada puno vremena provodim 25 00:01:19,360 --> 00:01:27,950 se gleda na mobilnim aplikacijama i gleda na ono što se događa vani na u divljini. 26 00:01:27,950 --> 00:01:32,060 Mobilne aplikacije stvarno će biti dominantna computing platforme, 27 00:01:32,060 --> 00:01:35,060 tako da stvarno trebate potrošiti puno vremena, ako ste u sigurnosnoj industriji 28 00:01:35,060 --> 00:01:39,280 s naglaskom na web aplikacija. 29 00:01:39,280 --> 00:01:43,420 Bilo je 29 milijardi mobilne aplikacije preuzete u 2011. 30 00:01:43,420 --> 00:01:47,920 On je predvidio da će 76 milijardi aplikacija do 2014. 31 00:01:47,920 --> 00:01:54,040 Tu je 686 milijuna uređaja koji će biti kupljen ove godine, 32 00:01:54,040 --> 00:01:57,060 pa ovo je mjesto gdje će ljudi biti događaj 33 00:01:57,060 --> 00:01:59,600  Većina njihov klijent računalstvo ide naprijed. 34 00:01:59,600 --> 00:02:04,220 >> Sam u razgovoru s potpredsjednik Fidelity Investments 35 00:02:04,220 --> 00:02:08,780 Prije par mjeseci, a on je rekao da upravo vidjeli više prometa 36 00:02:08,780 --> 00:02:12,610 radi financijske transakcije iz baze klijenata 37 00:02:12,610 --> 00:02:16,230 na njihovom mobilne aplikacije nego na njihovim web stranicama, 38 00:02:16,230 --> 00:02:20,610 pa zajedničko korištenje na Webu u prošlosti bio 39 00:02:20,610 --> 00:02:23,800 provjere svoje burzovne kotacije, upravljanju svoj portfelj, 40 00:02:23,800 --> 00:02:28,060 i mi zapravo vidimo da je u 2012 prebaciti 41 00:02:28,060 --> 00:02:30,960 biti dominantniji na mobilne platforme. 42 00:02:30,960 --> 00:02:34,530 Dakako, ako će biti bilo kakve kriminalne aktivnosti, 43 00:02:34,530 --> 00:02:38,900 bilo zlonamjerne aktivnosti, to će za početak biti usmjerena na mobilne platforme 44 00:02:38,900 --> 00:02:44,210 s vremenom kako ljudi prelaze na to. 45 00:02:44,210 --> 00:02:48,320 Ako pogledate na mobilne platforme, 46 00:02:48,320 --> 00:02:54,380 pogledati rizika platforme da je korisno da ga razbiti u različitim slojevima, 47 00:02:54,380 --> 00:02:59,010 baš kao što će to učiniti na stolnom računalu, 48 00:02:59,010 --> 00:03:02,860 i što mislite o različitim slojevima, softver, operativni sustav, 49 00:03:02,860 --> 00:03:07,730 mrežni sloj, hardver sloj, i naravno, tu je ranjivosti na svim tim slojevima. 50 00:03:07,730 --> 00:03:10,510 >> Ista stvar se događa na mobitelu. 51 00:03:10,510 --> 00:03:14,880 No, mobitel, čini se da su neki od tih slojeva su lošije. 52 00:03:14,880 --> 00:03:19,840 Za jednu, mrežni sloj je više problematično na mobitelu 53 00:03:19,840 --> 00:03:25,650 jer puno ljudi ima u svom uredu ili kod kuće 54 00:03:25,650 --> 00:03:30,780 vezama ili imaju sigurne Wi-Fi veze, 55 00:03:30,780 --> 00:03:36,530 i sa puno mobilne uređaje očito si izvan kuće 56 00:03:36,530 --> 00:03:40,520 ili izvan ureda puno, a ako koristite Wi-Fi postoji 57 00:03:40,520 --> 00:03:42,820 možda koristite nesigurno Wi-Fi veze, 58 00:03:42,820 --> 00:03:45,570 nešto što je javni Wi-Fi veze, 59 00:03:45,570 --> 00:03:48,840 pa kad razmišljamo o mobilnim aplikacijama moramo uzeti u obzir 60 00:03:48,840 --> 00:03:53,770 da mrežno okruženje je rizičnije za prijave 61 00:03:53,770 --> 00:03:57,640 kada je Wi-Fi se koristi. 62 00:03:57,640 --> 00:04:02,410 A kad sam se u više od mobilnih rizika primjene 63 00:04:02,410 --> 00:04:04,910 vidjet ćete zašto je to važnije. 64 00:04:04,910 --> 00:04:09,710 Postoje rizici na razini hardvera na mobilnim uređajima. 65 00:04:09,710 --> 00:04:11,670 To je područje u tijeku istraživanja. 66 00:04:11,670 --> 00:04:15,910 Ljudi zovu ove širokopojasne napada ili baseband napadi 67 00:04:15,910 --> 00:04:21,870 gdje ste napadaju firmware koji sluša na radiju. 68 00:04:21,870 --> 00:04:25,430 >> To su doista zastrašujuće, jer napadi 69 00:04:25,430 --> 00:04:27,280 korisnik ne mora ništa raditi. 70 00:04:27,280 --> 00:04:30,760 Možete pogoditi puno uređaja unutar raspona RF 71 00:04:30,760 --> 00:04:36,690 odjednom, i čini se kao da svaki put kad je ovo istraživanje pršti 72 00:04:36,690 --> 00:04:40,750 to se brzo dobiva klasificirana gdje 73 00:04:40,750 --> 00:04:46,600 ljudi obrušiti u oko i reći: "Evo, recite nam o tome, i molim vas, prestanite govoriti o tome." 74 00:04:46,600 --> 00:04:49,460 Postoji neka istraživanja događa u širokopojasnom području, 75 00:04:49,460 --> 00:04:51,980 ali čini se da je vrlo Hush Hush. 76 00:04:51,980 --> 00:04:56,910 Mislim da je to više od nacionalne države vrstu istraživanja što se događa. 77 00:04:56,910 --> 00:05:02,140 Područje aktivnog istraživanja, iako je sloj operativni sustav, 78 00:05:02,140 --> 00:05:08,910 i opet, ovo je drugačije nego u računalne svijetu 79 00:05:08,910 --> 00:05:14,840 jer u mobilnom prostoru imate ove timove ljudi nazivaju jailbreakers, 80 00:05:14,840 --> 00:05:18,670 i jailbreakers su drugačiji od običnih istraživačima ranjivosti. 81 00:05:18,670 --> 00:05:21,970 Pokušavaju pronaći ranjivosti u operacijskom sustavu, 82 00:05:21,970 --> 00:05:27,000 ali razlog što pokušavaju pronaći ranjivosti nije 83 00:05:27,000 --> 00:05:31,810 provaliti u tuđi stroj i kompromitirati ga. 84 00:05:31,810 --> 00:05:34,280 To je provaliti u vlastitom računalu. 85 00:05:34,280 --> 00:05:38,820 >> Oni žele provaliti u vlastiti mobitel, modificirati operacijski sustav vlastitoj Mobilea 86 00:05:38,820 --> 00:05:41,050 tako da oni mogu pokrenuti programe prema vlastitom izboru 87 00:05:41,050 --> 00:05:44,510 i promijeniti stvari s punim administrativnim dozvolama, 88 00:05:44,510 --> 00:05:49,050 i oni ne žele reći prodavatelja o tome. 89 00:05:49,050 --> 00:05:52,960 Oni ne vole sigurnosni istraživač koji je bijeli šešir sigurnosni istraživač 90 00:05:52,960 --> 00:05:56,600 što će učiniti odgovornu otkrivanje i reći prodavatelja o tome. 91 00:05:56,600 --> 00:06:01,270 Žele napraviti ovo istraživanje, a oni žele da zapravo ga objaviti 92 00:06:01,270 --> 00:06:06,400 u iskorištavati ili rootkit ili jailbreak broj, 93 00:06:06,400 --> 00:06:10,010 i žele to napraviti strateški, kao i odmah nakon 94 00:06:10,010 --> 00:06:13,570 prodavatelj isporučuje novi operativni sustav. 95 00:06:13,570 --> 00:06:16,350 Imate ovaj optužni odnos 96 00:06:16,350 --> 00:06:19,000 s OS-razine ranjivosti na mobitelu, 97 00:06:19,000 --> 00:06:23,150 što mislim da je vrlo zanimljiva, a jedno mjesto mi to vidimo 98 00:06:23,150 --> 00:06:29,210 se to čini tako da postoji dobra objavljen exploit koda vani 99 00:06:29,210 --> 00:06:31,750 za kernel razini ranjivosti, 100 00:06:31,750 --> 00:06:35,040 i vidjeli smo one zapravo biti korišten od strane zlonamjernih pisaca. 101 00:06:35,040 --> 00:06:38,450 To je malo drugačije nego u PC svijetu. 102 00:06:38,450 --> 00:06:42,530 I onda Završni sloj je gornji sloj, sloj primjene. 103 00:06:42,530 --> 00:06:45,250 To je ono što ću govoriti o danas. 104 00:06:45,250 --> 00:06:48,970 >> Postoje ostalih slojeva, a ostali slojevi igraju u njemu 105 00:06:48,970 --> 00:06:53,310 ali ja sam uglavnom ćemo govoriti o tome što se događa u aplikacijskom sloju 106 00:06:53,310 --> 00:06:55,560 gdje kod se izvodi u pješčaniku. 107 00:06:55,560 --> 00:06:58,670 To nema administratorske ovlasti. 108 00:06:58,670 --> 00:07:02,170 To mora koristiti API-uređaja, 109 00:07:02,170 --> 00:07:06,970 ali ipak, puno zlonamjernih aktivnosti i puno rizika može dogoditi u tom sloju 110 00:07:06,970 --> 00:07:09,220 jer to je sloj u kojem su sve informacije. 111 00:07:09,220 --> 00:07:12,330 Aplikacije mogu pristupiti sve informacije o uređaju 112 00:07:12,330 --> 00:07:15,390 ako imaju prave ovlasti, 113 00:07:15,390 --> 00:07:17,540 i oni mogu pristupiti različite senzore na uređaju, 114 00:07:17,540 --> 00:07:23,950 GPS senzor, mikrofon, kamera, što si. 115 00:07:23,950 --> 00:07:27,380 Iako smo samo pričaju na aplikacijskom sloju 116 00:07:27,380 --> 00:07:33,700 imamo puno rizika postoji. 117 00:07:33,700 --> 00:07:38,450 Druga je stvar da je drugačije o mobilnom okruženju 118 00:07:38,450 --> 00:07:45,060 se svi igrači operativnog sustava, bilo da je BlackBerry ili Android 119 00:07:45,060 --> 00:07:53,410 ili iOS ili Windows Mobile, oni svi imaju finozrnatih modela dopuštenje, 120 00:07:53,410 --> 00:07:56,990 i to je jedan od načina na koje su ugrađene u operativni sustav 121 00:07:56,990 --> 00:08:01,230 Ideja da to nije tako rizično kao što mislite. 122 00:08:01,230 --> 00:08:04,550 Iako imate sve svoje kontakte na tu, sve vaše osobne podatke, 123 00:08:04,550 --> 00:08:09,080 imate svoje fotografije, imate svoje mjesto tamo, 124 00:08:09,080 --> 00:08:14,820 ti si spremanje svoj bankovni pin za auto prijavu postoji, to je sigurno, jer 125 00:08:14,820 --> 00:08:19,430 aplikacije moraju imati određene dozvole da se na pojedinim dijelovima 126 00:08:19,430 --> 00:08:25,080 informacija o uređaju, a korisnik mora biti prisutan sa 127 00:08:25,080 --> 00:08:29,230 ove dozvole i reći ok. 128 00:08:29,230 --> 00:08:32,590 >> Problem s njim je korisnik uvijek kaže ok. 129 00:08:32,590 --> 00:08:35,240 Kao sigurnosni osobi, znam da može zatražiti od korisnika, 130 00:08:35,240 --> 00:08:40,100 reći nešto jako loše će se dogoditi, ne želite da se to dogodi? 131 00:08:40,100 --> 00:08:44,680 A ako ste u žurbi ili postoji nešto stvarno mami na drugoj strani da se, 132 00:08:44,680 --> 00:08:47,760 kao igra će biti instaliran da su čekali, 133 00:08:47,760 --> 00:08:50,860 oni će kliknuti ok. 134 00:08:50,860 --> 00:08:56,630 Zato sam i rekao na moj slide ovdje samo neka mi baciti ptice na svinje već, 135 00:08:56,630 --> 00:09:03,150 i možete vidjeti na slajdu ovdje postoji primjeri BlackBerry kutiji dopuštenje. 136 00:09:03,150 --> 00:09:05,990 Ona kaže: "Molim te postaviti BlackBerry Putovanja aplikacija dopuštenja 137 00:09:05,990 --> 00:09:09,720 nakon klika gumb ispod ", a zapravo samo korisnik će reći 138 00:09:09,720 --> 00:09:12,240 postavili dozvole i spasiti. 139 00:09:12,240 --> 00:09:18,010 Evo Android redak u kojem se pokazuje stvari, 140 00:09:18,010 --> 00:09:20,260 i to je zapravo stavlja nešto što je gotovo izgleda kao upozorenje. 141 00:09:20,260 --> 00:09:25,090 To je dobio neku vrstu prinosa znak da govore mrežnu komunikaciju, telefonski poziv, 142 00:09:25,090 --> 00:09:28,120 ali korisnik će se klikom instalirati, zar ne? 143 00:09:28,120 --> 00:09:32,940 I onda je jedan Apple je potpuno bezopasan. 144 00:09:32,940 --> 00:09:34,300 To ne bi bilo kakve upozorenja. 145 00:09:34,300 --> 00:09:37,380 To je samo Apple bi željeli koristiti svoj trenutni položaj. 146 00:09:37,380 --> 00:09:39,670 Naravno da ćeš kliknite ok. 147 00:09:39,670 --> 00:09:42,260 >> Bilo je to fino zrnatog Model dozvolu, 148 00:09:42,260 --> 00:09:45,890 i aplikacije moraju imati manifest datoteku gdje su se izjasniti 149 00:09:45,890 --> 00:09:49,410 dopuštenja im je potrebno, te da će se prikazati korisniku, 150 00:09:49,410 --> 00:09:53,480 a korisnik će morati reći Dajem te dozvole. 151 00:09:53,480 --> 00:09:55,080 No, budimo iskreni. 152 00:09:55,080 --> 00:09:58,400 Korisnici samo će uvijek reći ok. 153 00:09:58,400 --> 00:10:04,460 Uzmimo brzi pogled na dozvole da ove aplikacije se traže 154 00:10:04,460 --> 00:10:06,850 i neke dopuštenja tamo. 155 00:10:06,850 --> 00:10:09,950 Ova tvrtka pretorska je anketu u prošloj godini 156 00:10:09,950 --> 00:10:14,170 od 53.000 zahtjeva analiziranih u Android Market i 3rd party tržištima, 157 00:10:14,170 --> 00:10:16,770 pa to je sve Android. 158 00:10:16,770 --> 00:10:19,670 A prosječni app zatražio tri dozvole. 159 00:10:19,670 --> 00:10:23,370 Neke aplikacije zatražio 117 dozvola, 160 00:10:23,370 --> 00:10:27,480 pa očito su jako fino zrnatog i način previše složen za korisnika da razumije 161 00:10:27,480 --> 00:10:31,600 ako oni prezentirani s ovom aplikacijom koja treba tih 117 dozvola. 162 00:10:31,600 --> 00:10:37,270 To je poput licencnog ugovora krajnjeg korisnika u koji je 45 stranica. 163 00:10:37,270 --> 00:10:40,240 Možda uskoro će imati opciju gdje je kao 164 00:10:40,240 --> 00:10:43,100 ispisati dozvole i poslati mi e-mail. 165 00:10:43,100 --> 00:10:45,480 >> Ali, ako pogledate neke od najboljih zanimljivih dozvole 166 00:10:45,480 --> 00:10:50,840 24% od aplikacija koje su preuzete iz 53.000 167 00:10:50,840 --> 00:10:57,230 zatražio GPS podatke iz uređaja. 168 00:10:57,230 --> 00:10:59,810 8% pročitajte kontakte. 169 00:10:59,810 --> 00:11:03,770 4% je poslao SMS, a 3% dobio SMS. 170 00:11:03,770 --> 00:11:07,730 2% bilježi zvuk. 171 00:11:07,730 --> 00:11:11,210 1% obrađeno odlazne pozive. 172 00:11:11,210 --> 00:11:13,140 Ne znam. 173 00:11:13,140 --> 00:11:17,520 Ne mislim 4% od aplikacija u App Store stvarno treba slati SMS poruke, 174 00:11:17,520 --> 00:11:21,410 pa mislim da je to naznaka da se nešto nepovoljan se događa. 175 00:11:21,410 --> 00:11:24,350 8% od apps morati pročitati svoj popis kontakata. 176 00:11:24,350 --> 00:11:26,510 To je vjerojatno nije potrebno. 177 00:11:26,510 --> 00:11:30,990 Jedan od drugih zanimljivih stvari o dozvolama je 178 00:11:30,990 --> 00:11:36,740 ako se link u zajedničkim knjižnicama u svoj program 179 00:11:36,740 --> 00:11:39,780 oni nasljeđuju dozvole primjene, 180 00:11:39,780 --> 00:11:46,570 tako da ako vaša aplikacija treba popis kontakata ili treba GPS lokacije funkcionirati 181 00:11:46,570 --> 00:11:49,940 i povezati u reklamne knjižnica, primjerice, 182 00:11:49,940 --> 00:11:53,170 da oglas knjižnica će biti u mogućnosti pristupiti kontakte 183 00:11:53,170 --> 00:11:57,630 i isto tako biti u mogućnosti pristupiti GPS položaja, 184 00:11:57,630 --> 00:12:01,990 i developer app ne zna ništa o kodu koji je pokrenut u ad knjižnici. 185 00:12:01,990 --> 00:12:05,370 Oni samo povezuje da u jer žele unovčiti svoj app. 186 00:12:05,370 --> 00:12:09,820 >> Ovo je mjesto gdje i ja ću govoriti o nekim primjerima to s 187 00:12:09,820 --> 00:12:13,930 Aplikacija se zove Pandora gdje aplikacija razvijen 188 00:12:13,930 --> 00:12:18,910 možda nesvjesno se curenje informacija 189 00:12:18,910 --> 00:12:24,580 od svojih korisnika, jer knjižnica koju su vezani u. 190 00:12:24,580 --> 00:12:30,110 Promatrajući krajolik vani, gledajući u sve različite aplikacije 191 00:12:30,110 --> 00:12:34,310 koje su iskazane u vijestima kao zlonamjerne ili radite nešto korisnici nisu htjeli 192 00:12:34,310 --> 00:12:39,360 a onda uvidom puno apps-radimo puno statičkog binarnom analize na mobilnim aplikacijama, 193 00:12:39,360 --> 00:12:42,010 pa smo ih pregledati i pogledao kod sebe- 194 00:12:42,010 --> 00:12:49,640 došli smo do onoga što mi zovemo naš top 10 popis rizičnih ponašanja u aplikacijama. 195 00:12:49,640 --> 00:12:54,180 I to je oborio u dva dijela, zlonamjernog koda, 196 00:12:54,180 --> 00:12:57,600 tako da su to loše stvari koje su aplikacije možda se radi da 197 00:12:57,600 --> 00:13:06,520 vjerojatno će biti nešto što zlonamjerni pojedinac 198 00:13:06,520 --> 00:13:10,060 je posebno staviti u primjeni, ali to je malo nejasni. 199 00:13:10,060 --> 00:13:13,300 To bi moglo biti nešto što misli da je u redu developer, 200 00:13:13,300 --> 00:13:16,350 ali to završi što misli kao zlonamjerni korisnik. 201 00:13:16,350 --> 00:13:19,830 >> I onda drugi dio je ono što mi zovemo kodiranja ranjivosti, 202 00:13:19,830 --> 00:13:24,600 i to su stvari u kojima programer u osnovi je griješiti 203 00:13:24,600 --> 00:13:27,200 ili jednostavno ne razumije kako napisati aplikaciju sigurno, 204 00:13:27,200 --> 00:13:30,260  i da je stavljajući app korisnik u opasnosti. 205 00:13:30,260 --> 00:13:34,060 Ja ću proći kroz njih u detalje i dati neke primjere. 206 00:13:34,060 --> 00:13:39,620 Za usporedbu, ja sam htjela da se stavi na OWASP mobilni top 10 liste. 207 00:13:39,620 --> 00:13:43,590 To su 10 pitanja koja grupa na OWASP, 208 00:13:43,590 --> 00:13:48,900 Open Web Application Security Project, oni imaju radnu skupinu 209 00:13:48,900 --> 00:13:50,620 radi na mobilnom top 10 liste. 210 00:13:50,620 --> 00:13:54,600 Oni imaju vrlo poznati web top 10 liste, koje su top 10 211 00:13:54,600 --> 00:13:57,180 najrizičnijih stvari koje možete imati u web aplikaciju. 212 00:13:57,180 --> 00:13:59,090 Oni rade istu stvar za mobitel, 213 00:13:59,090 --> 00:14:01,750 i njihov popis je malo drugačija od naše. 214 00:14:01,750 --> 00:14:03,670 6 iz 10 su isti. 215 00:14:03,670 --> 00:14:06,020 Imaju četiri koji su različiti. 216 00:14:06,020 --> 00:14:10,550 Mislim da oni imaju malo drugačiji odvesti na 217 00:14:10,550 --> 00:14:14,490 Rizik u mobilnim aplikacijama gdje je puno svojih pitanja 218 00:14:14,490 --> 00:14:20,490 su stvarno kako primjena komunicira s back-end poslužitelja 219 00:14:20,490 --> 00:14:23,100 ili ono što se događa na back-end poslužitelja, 220 00:14:23,100 --> 00:14:29,220 Ne toliko aplikacije koje imaju rizično ponašanje koje samo jednostavne klijent aplikacije. 221 00:14:29,220 --> 00:14:36,640 >> One crveno Ovdje su razlike između dva popisa. 222 00:14:36,640 --> 00:14:40,740 A neki od mojih istraživačkog tima zapravo pridonijeli ovom projektu, 223 00:14:40,740 --> 00:14:44,570 pa ćemo vidjeti što će se dogoditi tijekom vremena, ali mislim da takeaway ovdje 224 00:14:44,570 --> 00:14:47,550 mi zapravo ne znamo što se top 10 popis je u mobilne aplikacije, jer 225 00:14:47,550 --> 00:14:50,510 oni 'stvarno samo oko za 2 ili 3 godine, 226 00:14:50,510 --> 00:14:57,750 i nije bilo dovoljno vremena da se stvarno istražiti operativne sustave 227 00:14:57,750 --> 00:15:00,450 i što su sposobni, a nije bilo dovoljno vremena 228 00:15:00,450 --> 00:15:06,870 za zlonamjernog zajednice, ako hoćete, da je proveo dovoljno vremena 229 00:15:06,870 --> 00:15:12,910 pokušava napasti korisnike putem mobilne aplikacije, tako da očekujem ove liste za promjenu malo. 230 00:15:12,910 --> 00:15:18,720 No, za sada, su top 10 stvari koje treba brinuti. 231 00:15:18,720 --> 00:15:24,150 Možda se pitate o mobilnom strani gdje se zlonamjerni mobitel kodnog 232 00:15:24,150 --> 00:15:28,880 kako to dobiti na uređaju? 233 00:15:28,880 --> 00:15:35,210 North Carolina State ima projekt nazvan Mobile Malware Genome Project 234 00:15:35,210 --> 00:15:39,520 gdje su prikupljanje što više mobilni malware jer oni mogu i analizu, 235 00:15:39,520 --> 00:15:45,270 i oni 'oborio injekcija vektora koji mobilni malware koristi, 236 00:15:45,270 --> 00:15:51,490 i 86% koriste tehniku ​​nazvanu prepakiranje 237 00:15:51,490 --> 00:15:54,160 i to je samo na Android platformi 238 00:15:54,160 --> 00:15:56,720 Možete li stvarno to učiniti preoblikovanja. 239 00:15:56,720 --> 00:16:03,100 >> Razlog je Android code je izgrađen s 240 00:16:03,100 --> 00:16:08,130 Java bajt kod nazvao Dalvik što je lako decompilable. 241 00:16:08,130 --> 00:16:12,460 Što negativac može učiniti je 242 00:16:12,460 --> 00:16:16,590 potrajati Android aplikaciju, rastavljati ga, 243 00:16:16,590 --> 00:16:20,120 ubaciti svoju malicioznog koda, kompilirati ga, 244 00:16:20,120 --> 00:16:28,070 i onda ga staviti u App Store koje ukazuju da se nova verzija tog programa, 245 00:16:28,070 --> 00:16:30,330 ili samo možda mijenja naziv programa. 246 00:16:30,330 --> 00:16:35,140 Ako je to bila neka vrsta igre, promijeniti ime malo, 247 00:16:35,140 --> 00:16:42,860 i tako to Prepakiravanje je kako 86% od mobilnog malware dobiva distribuira. 248 00:16:42,860 --> 00:16:45,810 Postoji još jedna tehnika zove nadogradnja koja je 249 00:16:45,810 --> 00:16:50,030 vrlo sličan prepakiranje, ali zapravo ne stavi malicioznog koda u. 250 00:16:50,030 --> 00:16:52,870 Ono što trebate učiniti je da stavite u malom mehanizme obnove. 251 00:16:52,870 --> 00:16:56,660 Možete dekompilirati, stavite u mehanizme obnove, a vi ga kompilirati, 252 00:16:56,660 --> 00:17:02,360 i onda kada app je trčanje povlači niz zlonamjernih programa na uređaj. 253 00:17:02,360 --> 00:17:06,300 >> Do sada se većina su one dvije tehnike. 254 00:17:06,300 --> 00:17:12,710 Tu zapravo nije puno preuzimanje Drive-bys ili drive-by download na mobitelu, 255 00:17:12,710 --> 00:17:15,890 koji bi mogao biti poput phishing napada. 256 00:17:15,890 --> 00:17:18,200 Hej, check out this stvarno super web stranicu, 257 00:17:18,200 --> 00:17:21,020 ili morate ići na ovu stranicu i ispunite 258 00:17:21,020 --> 00:17:24,420 držati dalje radi nešto. 259 00:17:24,420 --> 00:17:26,230 Oni su phishing napada. 260 00:17:26,230 --> 00:17:28,160 Ista stvar se može dogoditi na mobilne platforme, gdje su 261 00:17:28,160 --> 00:17:33,830 ukazuju na mobilne aplikacije za preuzimanje, reći: "Bok, ova je Bank of America." 262 00:17:33,830 --> 00:17:36,070 "Vidimo da koristite ovu aplikaciju." 263 00:17:36,070 --> 00:17:38,540 "Trebali biste preuzeti ovu drugu aplikaciju." 264 00:17:38,540 --> 00:17:41,170 Teoretski, to bi moglo upaliti. 265 00:17:41,170 --> 00:17:48,610 Možda je to samo se ne koristi dovoljno da bi se utvrdilo da li je uspješna ili ne, 266 00:17:48,610 --> 00:17:51,680 ali su otkrili da je manje od 1% od vremena koje se tehnika koristi. 267 00:17:51,680 --> 00:17:56,130 Većinu vremena to je stvarno prepakirao code. 268 00:17:56,130 --> 00:17:58,710 >> Postoji još jedna kategorija naziva samostalni 269 00:17:58,710 --> 00:18:01,420 gdje je netko upravo gradi potpuno novi zahtjev. 270 00:18:01,420 --> 00:18:04,020 Oni su napraviti aplikaciju koja pretendira da bude nešto. 271 00:18:04,020 --> 00:18:07,360 To nije preoblikovanja nešto drugo, i da ima zloćudni kod. 272 00:18:07,360 --> 00:18:11,230 To se koristi 14% vremena. 273 00:18:11,230 --> 00:18:17,880 Sad želim govoriti o tome što je zlonamjerni kod radi? 274 00:18:17,880 --> 00:18:23,070 Jedan od prvih zlonamjernih vani 275 00:18:23,070 --> 00:18:25,490 mogli razmotriti spyware. 276 00:18:25,490 --> 00:18:27,620 To u osnovi špijuni na korisnika. 277 00:18:27,620 --> 00:18:30,470 Ona prikuplja e-mailove, SMS poruke. 278 00:18:30,470 --> 00:18:32,340 Ispada na mikrofon. 279 00:18:32,340 --> 00:18:37,330 To berbi kontaktnih knjigu, i to ga šalje off nekome drugome. 280 00:18:37,330 --> 00:18:40,870 Ova vrsta spyware postoji na PC-u, 281 00:18:40,870 --> 00:18:46,200 tako da ima smisla da ljudi pokušavaju to učiniti na mobilnim uređajima. 282 00:18:46,200 --> 00:18:53,230 >> Jedan od prvih primjera toga je program pod nazivom Secret SMS replikator. 283 00:18:53,230 --> 00:18:56,250 Bilo je to u Android Marketplace prije par godina, 284 00:18:56,250 --> 00:18:59,960 a ideja je bila da ste imali pristup nečijem Android telefon 285 00:18:59,960 --> 00:19:03,450 da ste htjeli da izvidi na, pa možda je to vaš suprug 286 00:19:03,450 --> 00:19:07,600 ili udvoje, a vi želite da izvidi na njihovim SMS poruka, 287 00:19:07,600 --> 00:19:11,200 mogli preuzeti ovaj app i instalirati ga i konfigurirati ga 288 00:19:11,200 --> 00:19:16,540 poslati SMS poruku na vas s kopijom 289 00:19:16,540 --> 00:19:21,710 svakog SMS poruke koje je dobio. 290 00:19:21,710 --> 00:19:27,220 To očito je kršenje App Store uvjete pružanja usluge, 291 00:19:27,220 --> 00:19:32,040 a to je uklonjen iz Android Marketplace u roku od 18 sati da se tamo, 292 00:19:32,040 --> 00:19:36,760 tako da je vrlo mali broj ljudi koji su bili u opasnosti zbog toga. 293 00:19:36,760 --> 00:19:42,510 Sada, mislim da, ako je program pod nazivom nešto možda malo manje provokativna 294 00:19:42,510 --> 00:19:48,690 kao Secret SMS replikator to bi vjerojatno radio puno bolje. 295 00:19:48,690 --> 00:19:52,870 No, to je vrsta očito. 296 00:19:52,870 --> 00:19:58,680 >> Jedna od stvari koje možemo učiniti kako bi se utvrdilo je li aplikacije imaju taj problem da mi ne želite 297 00:19:58,680 --> 00:20:01,410 je pregledati kod. 298 00:20:01,410 --> 00:20:06,250 To je zapravo jako jednostavno za napraviti na Androidu, jer smo se rastavljaju aplikacije. 299 00:20:06,250 --> 00:20:11,050 Na iOS možete koristiti rastavljanja poput IDA Pro 300 00:20:11,050 --> 00:20:17,190 pogledati što Apis app se zove i što radi. 301 00:20:17,190 --> 00:20:20,680 Napisali smo vlastitu binarni statički analizator za naš koda 302 00:20:20,680 --> 00:20:24,940 a mi smo to učinili, i tako što možete učiniti je da bi mogao reći: 303 00:20:24,940 --> 00:20:30,490 znači uređaj učiniti sve što je u osnovi špijuniranje na mene ili me pratite? 304 00:20:30,490 --> 00:20:33,360 I ja imam neke primjere ovdje na iPhone. 305 00:20:33,360 --> 00:20:41,440 Ovo je prvi primjer je kako pristupiti UUID na telefonu. 306 00:20:41,440 --> 00:20:47,060 To je zapravo nešto što Apple je upravo zabranjen za nove aplikacije, 307 00:20:47,060 --> 00:20:52,540 ali stare aplikacije koje ste možda prikazuju na telefonu još uvijek može to učiniti, 308 00:20:52,540 --> 00:20:56,500 i tako da jedinstveni identifikator može koristiti za vas pratiti 309 00:20:56,500 --> 00:21:00,440 u mnogo raznih aplikacija. 310 00:21:00,440 --> 00:21:07,180 >> Na Android, imam jedan primjer ovdje za dobivanje položaja uređaja. 311 00:21:07,180 --> 00:21:10,310 Možete vidjeti da ako je API poziv je tu da app prati, 312 00:21:10,310 --> 00:21:15,000 i možete vidjeti da li je sve u redu mjesto ili grubo mjesto. 313 00:21:15,000 --> 00:21:18,860 A onda se na dnu ovdje, imam primjer kako na BlackBerry 314 00:21:18,860 --> 00:21:25,130 aplikacija može pristupiti e-mail poruke u vaš inbox. 315 00:21:25,130 --> 00:21:27,660 To su vrste stvari koje možete pregledati vidjeti 316 00:21:27,660 --> 00:21:32,360 ako app radi takve stvari. 317 00:21:32,360 --> 00:21:38,320 Druga velika kategorija zlonamjernog ponašanja, a to je vjerojatno najveća kategorija sada, 318 00:21:38,320 --> 00:21:43,950 je neovlašteno biranja, neovlašteno premium SMS poruke 319 00:21:43,950 --> 00:21:46,080 ili neovlaštene isplate. 320 00:21:46,080 --> 00:21:48,930 Još jedna stvar koja je jedinstveno u telefonu 321 00:21:48,930 --> 00:21:52,700 je uređaj zakačen na račun za naplatu, 322 00:21:52,700 --> 00:21:55,960 a kad aktivnosti dogoditi na telefon 323 00:21:55,960 --> 00:21:58,510 to može stvoriti optužbe. 324 00:21:58,510 --> 00:22:00,700 Možete kupiti stvari preko telefona, 325 00:22:00,700 --> 00:22:04,390 a kad šaljete premium SMS SMS poruke koju je zapravo davanje novca 326 00:22:04,390 --> 00:22:11,590 za komitenta telefonskog broja na drugoj strani. 327 00:22:11,590 --> 00:22:17,420 Oni su postavili kako bi dobili burzovne kotacije ili dobiti svoj dnevni horoskop ili drugih stvari, 328 00:22:17,420 --> 00:22:21,680 ali oni se mogu postaviti naručiti proizvod slanjem SMS tekst. 329 00:22:21,680 --> 00:22:26,970 Ljudi daju novac za Crveni križ slanjem SMS poruke. 330 00:22:26,970 --> 00:22:30,650 Možete dati 10 dolara na taj način. 331 00:22:30,650 --> 00:22:34,190 >> Napadači su, što su učinili je oni postavili 332 00:22:34,190 --> 00:22:38,750 račune u stranim zemljama, a oni ugradili u malware 333 00:22:38,750 --> 00:22:42,840 koji telefon će poslati premium SMS poruke, 334 00:22:42,840 --> 00:22:47,700 kažu, nekoliko puta na dan, a na kraju mjeseca, shvatite da ste proveli 335 00:22:47,700 --> 00:22:52,090 desetke ili možda čak i stotine dolara, a oni hoda s novcem. 336 00:22:52,090 --> 00:22:57,280 To je dobio tako loše da je to vrlo prva stvar koja Android 337 00:22:57,280 --> 00:23:00,760 Marketplace ili Google mjesto-to je Android Marketplace na vrijeme, 338 00:23:00,760 --> 00:23:04,430 i to je sada Google Play-prva stvar koju je Google počeo provjeravati. 339 00:23:04,430 --> 00:23:08,700 Kada je Google započeo je s distribucijom Android aplikacije u App Store 340 00:23:08,700 --> 00:23:11,350 rekli su da ne idu na provjeru ništa. 341 00:23:11,350 --> 00:23:15,630 Mi ćemo povući aplikacije jednom smo bili obaviješteni su pobjegli naše uvjete pružanja usluge, 342 00:23:15,630 --> 00:23:17,520 ali mi se ne ide na check za ništa. 343 00:23:17,520 --> 00:23:24,350 Pa, prije otprilike godinu dana ga je dobio tako loše s ovim premium SMS poruke malware 344 00:23:24,350 --> 00:23:28,030 da je to vrlo prva stvar što su počeli provjeravati. 345 00:23:28,030 --> 00:23:31,770 Ako app mogu slati SMS poruke 346 00:23:31,770 --> 00:23:34,750 oni dodatno ručno proučiti taj program. 347 00:23:34,750 --> 00:23:38,770 Oni traže API koji pozivaju to, 348 00:23:38,770 --> 00:23:40,580 a sada od tada Google je proširio, 349 00:23:40,580 --> 00:23:46,900 ali ovo je prva stvar koja se počela tražiti. 350 00:23:46,900 --> 00:23:50,690 >> Neke druge aplikacije koje jesu neke SMS poruke, 351 00:23:50,690 --> 00:23:56,980 to Android Qicsomos, mislim da se zove. 352 00:23:56,980 --> 00:24:02,670 Bilo je to trenutni događaj na mobitelu gdje to CarrierIQ je izlazio 353 00:24:02,670 --> 00:24:07,720 kao spyware staviti na uređaju od strane prijevoznika, 354 00:24:07,720 --> 00:24:10,820 pa ljudi htjeli znati ako njihov telefon bio ranjiv na to, 355 00:24:10,820 --> 00:24:13,890 a to je besplatna aplikacija koja testira da. 356 00:24:13,890 --> 00:24:17,520 Pa, naravno, ono što ovaj app učinio je to poslala premium SMS poruke, 357 00:24:17,520 --> 00:24:20,090 tako da testira da li ste zaraženi spyware 358 00:24:20,090 --> 00:24:24,930 što učita zlonamjernih programa na svojem uređaju. 359 00:24:24,930 --> 00:24:27,310 Vidjeli smo ista stvar dogoditi na posljednjem Super Bowlu. 360 00:24:27,310 --> 00:24:33,180 Tu je lažna verzija Madden nogometnu igru 361 00:24:33,180 --> 00:24:38,320 koji je poslao premium SMS poruka. 362 00:24:38,320 --> 00:24:45,750 To je zapravo pokušao stvoriti bot mreže previše na uređaju. 363 00:24:45,750 --> 00:24:48,090 Ovdje imam neke primjere. 364 00:24:48,090 --> 00:24:52,640 Zanimljivo, Apple je prilično pametna, 365 00:24:52,640 --> 00:24:58,470 a oni ne dopuštaju aplikacijama slanje SMS poruke na sve. 366 00:24:58,470 --> 00:25:00,350 Ne app može to učiniti. 367 00:25:00,350 --> 00:25:03,530 To je sjajan način za dobivanje riješiti cijeli razred ranjivosti, 368 00:25:03,530 --> 00:25:09,040 ali na Androidu možete to učiniti, i naravno, na BlackBerry možete to učiniti previše. 369 00:25:09,040 --> 00:25:13,060 Zanimljivo je da je na BlackBerry sve što je potrebno je internet dozvole 370 00:25:13,060 --> 00:25:18,370 poslati SMS poruku. 371 00:25:18,370 --> 00:25:21,580 >> Druga stvar stvarno da ćemo tražiti 372 00:25:21,580 --> 00:25:24,780 kada smo u potrazi za vidjeti ako je nešto zlonamjerni je samo bilo koje vrste 373 00:25:24,780 --> 00:25:28,100 neovlaštene aktivnosti mreže, kao i pogledati na mrežnoj aktivnosti 374 00:25:28,100 --> 00:25:31,570 app je trebao imati svoju funkcionalnost, 375 00:25:31,570 --> 00:25:35,380 i pogled na ove druge aktivnosti mreže. 376 00:25:35,380 --> 00:25:43,380 Možda app, raditi, mora doći do podataka preko HTTP, 377 00:25:43,380 --> 00:25:47,500 ali ako to radi stvari preko e-maila ili SMS-a ili Bluetootha ili nešto slično 378 00:25:47,500 --> 00:25:52,890 sad kad app mogao potencijalno biti zloban, pa je to još jedna stvar koju možete pregledajte. 379 00:25:52,890 --> 00:26:00,430 I na ovom slajdu ovdje imam neke primjere koji. 380 00:26:00,430 --> 00:26:05,950 Još jedna zanimljiva stvar koju smo vidjeli sa malware dogodilo natrag u 2009, 381 00:26:05,950 --> 00:26:07,600 i to se dogodilo u velikom način. 382 00:26:07,600 --> 00:26:11,390 Ja ne znam je li to dogodilo toliko toga od tada, ali to je app 383 00:26:11,390 --> 00:26:15,140 koji je oponašao drugu aplikaciju. 384 00:26:15,140 --> 00:26:21,700 Tu je set aplikacija, i to je bio nazvan napad 09Droid, 385 00:26:21,700 --> 00:26:29,770 i netko je odlučio da je bilo puno malih, regionalnih, srednjih banaka 386 00:26:29,770 --> 00:26:32,260 koja nije imala online bankarske aplikacije, 387 00:26:32,260 --> 00:26:36,870 pa što su učinili je izgradili su oko 50 on-line bankarstva aplikacija 388 00:26:36,870 --> 00:26:39,410 da je sve što su učinili je uzeti korisničko ime i lozinku 389 00:26:39,410 --> 00:26:42,190 i preusmjeriti vas da se na web stranici. 390 00:26:42,190 --> 00:26:47,470 I tako su stavili ove sve gore u Google Marketplace, 391 00:26:47,470 --> 00:26:51,530 u Android Marketplace, a kad je netko tražio da vidi je li njihova banka 392 00:26:51,530 --> 00:26:56,000 je zahtjev da bi pronašli lažnu prijavu, 393 00:26:56,000 --> 00:27:01,230 koje prikupljaju njihove vjerodajnice, a zatim ih preusmjeriti na svoje web stranice. 394 00:27:01,230 --> 00:27:06,640 Način na koji to zapravo postao-aplikacije uvijek bile tamo za nekoliko tjedana, 395 00:27:06,640 --> 00:27:09,050 i tu su tisuće i tisuće preuzimanja. 396 00:27:09,050 --> 00:27:12,910 >> Način to je došlo na vidjelo je netko imao problem 397 00:27:12,910 --> 00:27:15,740 s jednim od aplikacija, te su pozvali svoju banku, 398 00:27:15,740 --> 00:27:18,390 te su pozvali za podršku klijentima liniju svoje banke i rekao: 399 00:27:18,390 --> 00:27:21,180 "Imam problema sa svojom mobilnom bankarskog primjene." 400 00:27:21,180 --> 00:27:23,460 "Možete li mi pomoći?" 401 00:27:23,460 --> 00:27:26,540 A oni rekoše: "Mi nemamo mobilnog bankarstva prijavu." 402 00:27:26,540 --> 00:27:28,120 To je započeo istragu. 403 00:27:28,120 --> 00:27:31,200 To je banka pod nazivom Google, a zatim Google pogledao i rekao: 404 00:27:31,200 --> 00:27:37,220 "Wow, isti autor napisao je 50 prijava, bankovne," i uzeo ih sve dolje. 405 00:27:37,220 --> 00:27:43,410 No, sigurno to ne ponovi. 406 00:27:43,410 --> 00:27:51,790 Tu je popis svih različitih banaka ovdje 407 00:27:51,790 --> 00:27:55,870 koji su bili dio ove prijevare. 408 00:27:55,870 --> 00:28:02,050 Druga stvar app može učiniti je prisutna UI druge aplikacije. 409 00:28:02,050 --> 00:28:06,430 Iako je trčanje moglo bi se pojaviti na Facebook UI. 410 00:28:06,430 --> 00:28:09,540 Ona kaže da morate staviti na svoje korisničko ime i lozinku za nastavak 411 00:28:09,540 --> 00:28:15,090 ili staviti bilo korisničko ime i lozinku UI za web stranicu 412 00:28:15,090 --> 00:28:18,420 da možda korisnik koristi samo pokušati izigrati korisnik 413 00:28:18,420 --> 00:28:21,340 u stavljajući svoje vjerodajnice u. 414 00:28:21,340 --> 00:28:25,590 Ovo je stvarno ravno paralelno od e-phishing napada 415 00:28:25,590 --> 00:28:28,210 gdje vam netko pošalje poruku e-pošte 416 00:28:28,210 --> 00:28:33,050 i daje vam osnovi lažnog sučelje za web stranicu 417 00:28:33,050 --> 00:28:37,320 da imate pristup. 418 00:28:37,320 --> 00:28:41,590 >> Druga je stvar što tražiti u malicioznog koda je sustav modifikacija. 419 00:28:41,590 --> 00:28:48,160 Možete tražiti sve API poziva koje zahtijevaju root privilegije 420 00:28:48,160 --> 00:28:50,870 pravilno izvršavanje. 421 00:28:50,870 --> 00:28:56,160 Promjena uređaja web proxy će biti nešto što primjena 422 00:28:56,160 --> 00:28:59,530 ne bi trebao biti u mogućnosti to učiniti. 423 00:28:59,530 --> 00:29:03,030 Ali, ako program ima kod u za tu namjenu 424 00:29:03,030 --> 00:29:05,960 vi znate da je to vjerojatno zlonamjerni program 425 00:29:05,960 --> 00:29:09,620 ili vrlo vrlo vjerojatno da će biti zlonamjerni program, 426 00:29:09,620 --> 00:29:13,910 i tako što će se dogoditi je da app će imati neki način eskalira privilegiju. 427 00:29:13,910 --> 00:29:17,200 To bi imati neke privilegije eskalacija iskorištavati 428 00:29:17,200 --> 00:29:20,730 u primjeni, a zatim nakon što je eskaliralo privilegije 429 00:29:20,730 --> 00:29:23,800 to će učiniti ove izmjene sustava. 430 00:29:23,800 --> 00:29:28,010 Možete naći malware koji ima eskalaciju privilegija 431 00:29:28,010 --> 00:29:32,550 u tome čak i ne znajući kako je eskalaciju privilegija 432 00:29:32,550 --> 00:29:37,960 iskorištavati će se dogoditi, a to je lijepo, jednostavan način 433 00:29:37,960 --> 00:29:41,220 tražiti malware. 434 00:29:41,220 --> 00:29:46,030 DroidDream je vjerojatno najpoznatiji komad Android malware. 435 00:29:46,030 --> 00:29:50,530 Mislim da je to utjecalo oko 250.000 korisnika tijekom nekoliko dana 436 00:29:50,530 --> 00:29:52,810 prije nego što je nađeno. 437 00:29:52,810 --> 00:29:56,890 Oni prepakirao 50 lažne aplikacije, 438 00:29:56,890 --> 00:30:00,370 stavite ih u Android App Store, 439 00:30:00,370 --> 00:30:10,940 i bitno je nekad Android jailbreak kod eskalirati privilegije 440 00:30:10,940 --> 00:30:16,380 i tada uvesti zapovjedništvo i kontrolu i okrenuti sve žrtve 441 00:30:16,380 --> 00:30:20,690 u bot mrežu, ali mogli su otkrivena ova 442 00:30:20,690 --> 00:30:24,170 ako su skeniranjem aplikaciju i samo traže 443 00:30:24,170 --> 00:30:32,230 API poziva da zahtijeva root dopuštenje za izvršiti ispravno. 444 00:30:32,230 --> 00:30:40,150 >> I tu je primjer ovdje imam koji mijenja proxy, 445 00:30:40,150 --> 00:30:46,380 a to je zapravo dostupna samo na Android. 446 00:30:46,380 --> 00:30:49,070 Možete vidjeti Dajem ti puno primjera na Androidu 447 00:30:49,070 --> 00:30:53,990 jer ovo je mjesto gdje najaktivniji malware ekosustav 448 00:30:53,990 --> 00:30:58,690 jer to je stvarno lako za napadača dobiti malicioznog koda 449 00:30:58,690 --> 00:31:01,470 u Android Marketplace. 450 00:31:01,470 --> 00:31:06,480 To nije tako jednostavno za napraviti da u Apple App Store 451 00:31:06,480 --> 00:31:10,250 jer Apple zahtijeva programerima da se identificiraju 452 00:31:10,250 --> 00:31:12,790 i potpisati kod. 453 00:31:12,790 --> 00:31:20,340 Oni su zapravo provjeriti tko ste, i Apple je zapravo provjeri aplikacije. 454 00:31:20,340 --> 00:31:27,450 Ne vidim puno pravog malware gdje je uređaj uzimajući ugrožena. 455 00:31:27,450 --> 00:31:32,250 Ja ću govoriti o nekim primjerima gdje je stvarno privatnost da je dobivanje ugrožena, 456 00:31:32,250 --> 00:31:38,460 i to je ono što se stvarno događa na Apple uređaja. 457 00:31:38,460 --> 00:31:44,090 Još jedna stvar koju treba tražiti malicioznog koda, rizično kod u uređaje 458 00:31:44,090 --> 00:31:50,300 je logika ili tempirane bombe, a tempirane bombe su vjerojatno 459 00:31:50,300 --> 00:31:53,370 mnogo lakše tražiti od logičkih bombi. 460 00:31:53,370 --> 00:31:57,030 No, s vremenom su bombe, što možete učiniti je da možete tražiti 461 00:31:57,030 --> 00:32:04,760 mjesta u kodu gdje je testirano vrijeme i apsolutni put je tražio 462 00:32:04,760 --> 00:32:08,190 Prije određene funkcije u app dogodi. 463 00:32:08,190 --> 00:32:14,200 A to može biti učinjeno kako bi sakrili tu aktivnost od korisnika, 464 00:32:14,200 --> 00:32:17,510 pa to se događa kasno u noć. 465 00:32:17,510 --> 00:32:24,350 DroidDream učinio sve svoje djelovanje 11:00-08:00 po lokalnom vremenu 466 00:32:24,350 --> 00:32:30,650 pokušati to učiniti dok se korisnik ne može biti koristeći svoj uređaj. 467 00:32:30,650 --> 00:32:38,680 >> Drugi razlog za to je, ako se ljudi koriste ponašanja analizu zahtjeva, 468 00:32:38,680 --> 00:32:43,430 trčanje app u pješčaniku da se vidi što je ponašanje zahtjeva, 469 00:32:43,430 --> 00:32:51,090 oni mogu koristiti vremenski-based logiku učiniti aktivnost 470 00:32:51,090 --> 00:32:54,640 kada app nije u pješčaniku. 471 00:32:54,640 --> 00:33:01,520 Na primjer, app store poput Applea 472 00:33:01,520 --> 00:33:07,940 pokreće aplikaciju, ali vjerojatno ne izvoditi svaki zahtjev za, recimo, 30 dana 473 00:33:07,940 --> 00:33:10,550 Prije odobravanja, tako da možete staviti 474 00:33:10,550 --> 00:33:14,120 Logika u svojoj prijavi da je rekao, u redu, samo da se nešto loše 475 00:33:14,120 --> 00:33:20,490 Nakon 30 dana je prošao i nakon 30 dana nakon objavljivanja datuma podnošenja zahtjeva, 476 00:33:20,490 --> 00:33:27,020 i da može pomoći malicioznog koda sakriti od ljudi inspekciju za to. 477 00:33:27,020 --> 00:33:30,050 Ako su anti-virus tvrtki radi stvari u sandboxes 478 00:33:30,050 --> 00:33:36,370 ili APP same priče su to može pomoći 479 00:33:36,370 --> 00:33:39,260 sakriti da se od tog pregleda. 480 00:33:39,260 --> 00:33:43,020 Sad, druga strana je to da je lako naći s statičke analize, 481 00:33:43,020 --> 00:33:46,170 pa zapravo provjerom kod možete pogledati na svim mjestima 482 00:33:46,170 --> 00:33:54,010 u kojoj je zahtjev testovi vremena i pregledati na taj način. 483 00:33:54,010 --> 00:33:58,850 I ovdje imam neke primjere tih 3 različite platforme 484 00:33:58,850 --> 00:34:05,640 kako vrijeme može se provjeriti za koju app za kavu 485 00:34:05,640 --> 00:34:10,520 tako da znate što tražiti ako ste inspekciju aplikaciju statički. 486 00:34:10,520 --> 00:34:14,570 >> Upravo sam prošao kroz cijelu hrpu raznih zlonamjernih aktivnosti 487 00:34:14,570 --> 00:34:18,969 koje smo vidjeli u divljini, ali one koji su najčešći? 488 00:34:18,969 --> 00:34:23,940 Iste studija iz North Carolina State Mobile Genome Project 489 00:34:23,940 --> 00:34:28,560 objavljeno neke podatke, a bilo je u osnovi 4 područja 490 00:34:28,560 --> 00:34:32,850 da su vidjeli gdje je bilo puno aktivnosti. 491 00:34:32,850 --> 00:34:35,370 37% od aplikacije učinio eskalaciju privilegija, 492 00:34:35,370 --> 00:34:38,429 tako da su imali neku vrstu bjekstvo iz zatvora kod tamo 493 00:34:38,429 --> 00:34:42,070 gdje su pokušali eskalirati povlastice, tako da su mogli 494 00:34:42,070 --> 00:34:48,360 nemojte API naredbe radi kao operativni sustav. 495 00:34:48,360 --> 00:34:52,520 45% od aplikacije vani je premium SMS, 496 00:34:52,520 --> 00:34:57,260 , tako da je veliki postotak koji pokušava izravno ostvaruju. 497 00:34:57,260 --> 00:35:02,640 93% je daljinski upravljač, pa su pokušali postaviti bot net, mobilni bot mrežu. 498 00:35:02,640 --> 00:35:08,990 A 45% dobivenih identifikacijske podatke 499 00:35:08,990 --> 00:35:16,230 kao što su telefonski brojevi, UUIDs, GPS lokacije, korisničkih računa, 500 00:35:16,230 --> 00:35:22,870 a to dovodi do više od 100, jer je većina malware pokušava napraviti neke od tih stvari. 501 00:35:22,870 --> 00:35:27,070 >> Ću se prebaciti na drugu polovicu i razgovarati o kodu ranjivosti. 502 00:35:27,070 --> 00:35:29,480 Ovo je druga polovica rizične aktivnosti. 503 00:35:29,480 --> 00:35:33,450 Ovo je mjesto gdje u biti programer čini pogreške. 504 00:35:33,450 --> 00:35:37,210 Legitimna developer pisanje legitiman app 505 00:35:37,210 --> 00:35:41,830 čini pogreške ili je u neznanju o rizicima mobilne platforme. 506 00:35:41,830 --> 00:35:44,780 Oni jednostavno ne znaju kako to napraviti sigurnu mobilnu aplikaciju, 507 00:35:44,780 --> 00:35:47,700 ili ponekad programer ne zanima staviti korisnika u opasnosti. 508 00:35:47,700 --> 00:35:50,850 Ponekad dio njihovog poslovnog modela moglo biti 509 00:35:50,850 --> 00:35:54,610 berbu korisnika osobne podatke. 510 00:35:54,610 --> 00:35:58,090 To je neka vrsta druge kategorije, i to je razlog zašto su neki od ovaj zlonamjerni 511 00:35:58,090 --> 00:36:03,200 u odnosu na legitimne počinje krvariti više jer postoji razlika u mišljenjima 512 00:36:03,200 --> 00:36:10,440 između onoga što korisnik želi i što korisnik smatra rizičnim 513 00:36:10,440 --> 00:36:13,050 i što aplikacija razvijen smatra rizičnim. 514 00:36:13,050 --> 00:36:18,380 Naravno, to nije data je aplikacija razvijen je u većini slučajeva. 515 00:36:18,380 --> 00:36:22,030 >> I onda napokon, drugi put se to dogodi je developer mogla povezati u 516 00:36:22,030 --> 00:36:28,600 zajednička knjižnica koja ima propusta ili ovo rizično ponašanje u njemu 517 00:36:28,600 --> 00:36:32,480 Bez znanja njih. 518 00:36:32,480 --> 00:36:37,060 Prva kategorija je osjetljiva curenja podataka, 519 00:36:37,060 --> 00:36:40,030 a to je kada app prikuplja podatke 520 00:36:40,030 --> 00:36:44,980 kao mjesto, informacije adresar, vlasnik informacija 521 00:36:44,980 --> 00:36:48,000 i šalje da isključivanje uređaja. 522 00:36:48,000 --> 00:36:53,050 I nakon što je isključen uređaja, ne znamo što se događa s tim informacijama. 523 00:36:53,050 --> 00:36:57,170 To bi mogao biti pohranjeni nesigurno aplikacijski programer. 524 00:36:57,170 --> 00:37:02,070 Vidjeli smo aplikacija programerima dobiti ugrožena, 525 00:37:02,070 --> 00:37:05,820 i podataka koje oni spremanje netko oduzme. 526 00:37:05,820 --> 00:37:10,970 To se dogodilo prije nekoliko mjeseci s developer na Floridi 527 00:37:10,970 --> 00:37:21,660 gdje je veliki broj-to je iPad UUIDs i imena uređaja 528 00:37:21,660 --> 00:37:25,270 su procurile jer je netko, mislim da je bilo anonimno, 529 00:37:25,270 --> 00:37:29,460 tvrdio da to učinite, provalio u razvojnom poslužiteljima 530 00:37:29,460 --> 00:37:34,920 i ukrao milijune ipad UUIDs 531 00:37:34,920 --> 00:37:37,390 i računalnih imena. 532 00:37:37,390 --> 00:37:40,260 Ne najrizičnijih informacije, 533 00:37:40,260 --> 00:37:46,820 ali što ako je to bio pohranu korisničkih imena i lozinki 534 00:37:46,820 --> 00:37:48,170 i kućne adrese? 535 00:37:48,170 --> 00:37:51,100 Ima puno aplikacija koje čuvaju takve informacije. 536 00:37:51,100 --> 00:37:53,230 Rizik postoji. 537 00:37:53,230 --> 00:37:56,620 >> Druga stvar koja se može dogoditi je da programer ne brine 538 00:37:56,620 --> 00:38:01,370 osigurati podatkovni kanal, i to je još jedan veliki propust ću govoriti o, 539 00:38:01,370 --> 00:38:05,160 da se podaci šalju u jasan. 540 00:38:05,160 --> 00:38:09,040 Ako je korisnik na javnom Wi-Fi mreže 541 00:38:09,040 --> 00:38:12,330 ili netko njuška internet negdje 542 00:38:12,330 --> 00:38:19,260 na putu je da su izloženi da podaci. 543 00:38:19,260 --> 00:38:23,790 Jedan vrlo poznati slučaj ovog curenja informacija dogodilo s Pandore, 544 00:38:23,790 --> 00:38:27,250 i to je nešto što smo istraživali na Veracode. 545 00:38:27,250 --> 00:38:33,200 Čuli smo da je-mislim da je Federal Trade Commission 546 00:38:33,200 --> 00:38:35,310 Istraga događa s Pandore. 547 00:38:35,310 --> 00:38:39,830 Rekli smo: "Što se događa tamo? Počnimo kopanje u Pandora primjene." 548 00:38:39,830 --> 00:38:46,690 I ono što smo utvrdili je Pandora prijava prikupljeni 549 00:38:46,690 --> 00:38:51,270 vaš spol i svoju dob, 550 00:38:51,270 --> 00:38:56,660 i to je također pristupiti GPS položaj, a Pandora aplikaciju 551 00:38:56,660 --> 00:39:00,200 nije to za što su rekli su opravdani razlozi. 552 00:39:00,200 --> 00:39:05,360 Glazba koja se igraju-Pandora je streaming glazbe app- 553 00:39:05,360 --> 00:39:07,530 glazba koju su svirali je licenciran samo u Sjedinjenim Američkim Državama, 554 00:39:07,530 --> 00:39:13,020 pa su morali provjeriti u skladu sa svojim licencnim ugovorima koji su imali 555 00:39:13,020 --> 00:39:17,240 za glazbu koja je korisnik bio u Sjedinjenim Američkim Državama. 556 00:39:17,240 --> 00:39:25,070 Također su željeli biti u skladu s roditeljskim savjetodavne 557 00:39:25,070 --> 00:39:33,790 oko jezika za odrasle u glazbi, 558 00:39:33,790 --> 00:39:37,500 pa to je dobrovoljni program, ali oni su htjeli da se u skladu s tim 559 00:39:37,500 --> 00:39:43,010 i ne igraju eksplicitne tekstove na djecu 13 i ispod. 560 00:39:43,010 --> 00:39:46,280 >> Imali su legitimne razloge za prikupljanje tih podataka. 561 00:39:46,280 --> 00:39:49,160 Njihov app imao ovlasti za to učiniti. 562 00:39:49,160 --> 00:39:52,000 Korisnici mislio da je to legitimno. No, ono što se dogodilo? 563 00:39:52,000 --> 00:39:55,810 Oni su povezani u 3 ili 4 različite knjižnice oglasa. 564 00:39:55,810 --> 00:39:59,140 Sada sve je odjednom sve te oglasne knjižnicama 565 00:39:59,140 --> 00:40:02,970 uzimajući pristup tom istom informacija. 566 00:40:02,970 --> 00:40:05,830 Ad knjižnice, ako pogledate koda u knjižnicama ad 567 00:40:05,830 --> 00:40:08,430 što rade je svaki oglas knjižnica, kaže 568 00:40:08,430 --> 00:40:11,340 "Ima li moj app dozvolu za preuzimanje GPS položaja?" 569 00:40:11,340 --> 00:40:14,890 "Oh, to ne? Ok, reci mi GPS položaja." 570 00:40:14,890 --> 00:40:16,620 Svaki oglas knjižnica ne radi, 571 00:40:16,620 --> 00:40:19,740 a ako app nema GPS dozvolu 572 00:40:19,740 --> 00:40:23,460 to neće biti u stanju da ga se, ali ako se to dogodi, to će ga dobiti. 573 00:40:23,460 --> 00:40:26,240 Ovo je mjesto gdje poslovni model od knjižnicama ad 574 00:40:26,240 --> 00:40:31,160 protivi privatnost korisnika. 575 00:40:31,160 --> 00:40:34,980 I tu je bio studij vani koji će reći: ako znate u dobi 576 00:40:34,980 --> 00:40:38,430 osobe, a vi znate svoje mjesto 577 00:40:38,430 --> 00:40:42,530 gdje spavati noću, jer imate svoje GPS koordinate 578 00:40:42,530 --> 00:40:46,030 a što možda spava, znate točno tko je ta osoba 579 00:40:46,030 --> 00:40:50,230 jer možete odrediti koji član tog kućanstva je ta osoba. 580 00:40:50,230 --> 00:40:54,780 Stvarno je to identificiranje za oglašivače 581 00:40:54,780 --> 00:40:59,530 točno tko si, a izgleda da je to bila legitimna. 582 00:40:59,530 --> 00:41:02,800 Samo želim svoj streaming glazbe, a to je jedini način da ga dobijete. 583 00:41:02,800 --> 00:41:05,370 >> Pa, izloženi smo to. 584 00:41:05,370 --> 00:41:08,030 To smo pisali u nekoliko blogu, 585 00:41:08,030 --> 00:41:13,280 , a ispostavilo se da je netko iz magazina Rolling Stone 586 00:41:13,280 --> 00:41:18,810 pročitao jednu od naših blogu i napisao svoj blog u magazinu Rolling Stone o tome, 587 00:41:18,810 --> 00:41:22,120 a već sljedećeg dana Pandora je mislio da je dobra ideja 588 00:41:22,120 --> 00:41:27,600 ukloniti knjižnice oglase od njihove primjene. 589 00:41:27,600 --> 00:41:31,270 Koliko ja znam oni su se samo-im treba pohvaliti. 590 00:41:31,270 --> 00:41:35,770 Mislim da su samo freemium vrsta app koji je to učinio. 591 00:41:35,770 --> 00:41:38,660 Svi ostali freemium aplikacije imaju tu isto ponašanje, 592 00:41:38,660 --> 00:41:41,780 pa moraš razmišljati o tome što vrste podataka koju daje 593 00:41:41,780 --> 00:41:48,330 ove freemium aplikacije, jer sve ide na oglašivače. 594 00:41:48,330 --> 00:41:53,390 Pretorska također je studiju o zajedničkim knjižnicama i rekao: 595 00:41:53,390 --> 00:41:57,100 "Pogledajmo što dijeli knjižnice su top dijeljene biblioteke," i to je bio podaci. 596 00:41:57,100 --> 00:41:59,420 >> Analizirali su 53.000 aplikacija, 597 00:41:59,420 --> 00:42:01,900 i broj 1. zajednička knjižnica je AdMob. 598 00:42:01,900 --> 00:42:06,060 Bilo je to zapravo u 38% aplikacija vani, 599 00:42:06,060 --> 00:42:08,800 tako da 38% od aplikacija koju koristite 600 00:42:08,800 --> 00:42:11,250 su vjerojatno berbu vaše osobne podatke 601 00:42:11,250 --> 00:42:16,650 i slanje na oglasne mreže. 602 00:42:16,650 --> 00:42:19,350 Apache i Android su 8% i 6%, 603 00:42:19,350 --> 00:42:22,960 i onda ove druge one dolje na dnu, Google oglasi, nalet, 604 00:42:22,960 --> 00:42:26,600 Mob Grad i Milenijskih Media, 605 00:42:26,600 --> 00:42:30,500 to su sve oglasne tvrtki, a onda, zanimljivo, 606 00:42:30,500 --> 00:42:33,500 4% vezan na Facebooku knjižnici 607 00:42:33,500 --> 00:42:38,870 vjerojatno to učiniti autentikaciju putem Facebooka 608 00:42:38,870 --> 00:42:40,810 pa app mogao provjeriti autentičnost Facebook. 609 00:42:40,810 --> 00:42:44,660 No, to također znači da je korporacija Facebook kontrolira kod 610 00:42:44,660 --> 00:42:49,010 koji je pokrenut u 4% Android mobilne aplikacije vani, 611 00:42:49,010 --> 00:42:53,490 i imaju pristup svim podacima koji app koji ima dozvolu za dobivanje na. 612 00:42:53,490 --> 00:42:57,170 Facebook suštini pokušava prodati reklamni prostor. 613 00:42:57,170 --> 00:43:00,120 To je njihov poslovni model. 614 00:43:00,120 --> 00:43:02,920 >> Ako pogledate cijeli ovaj ekosustav s tim dozvolama 615 00:43:02,920 --> 00:43:07,740 i zajedničke knjižnice počnete da se vidi da 616 00:43:07,740 --> 00:43:13,850 imate puno rizika u navodno legitimne primjene. 617 00:43:13,850 --> 00:43:19,360 Isto slična stvar koja se dogodila s Pandore 618 00:43:19,360 --> 00:43:22,340 dogodilo s nekim programom pod nazivom Put, 619 00:43:22,340 --> 00:43:27,660 i put mislili da su se korisnim, prijateljski programeri. 620 00:43:27,660 --> 00:43:32,160 Oni su samo pokušava vam dati veliku korisničko iskustvo, 621 00:43:32,160 --> 00:43:37,810 , a ispostavilo se da je bez pitanja korisniku ili objasniti korisniku ništa- 622 00:43:37,810 --> 00:43:40,400 a to se dogodilo na iPhone i Android, 623 00:43:40,400 --> 00:43:44,420 Pandora app bio na iPhone i Android- 624 00:43:44,420 --> 00:43:48,890 koji je put primjene grabbing cijeli adresar 625 00:43:48,890 --> 00:43:52,830 i upload na put samo kad ste instalirali i vodio program, 626 00:43:52,830 --> 00:43:55,840 i nisu vam reći o tome. 627 00:43:55,840 --> 00:43:58,750 Mislili su da je jako korisno za vas 628 00:43:58,750 --> 00:44:04,040 da bi mogli podijeliti sa svim ljudima u adresar 629 00:44:04,040 --> 00:44:06,920 da koristite Put prijavu. 630 00:44:06,920 --> 00:44:09,490 >> Pa, očito je put mislio da je to super za njihovu tvrtku. 631 00:44:09,490 --> 00:44:13,510 Nije tako velika korisniku. 632 00:44:13,510 --> 00:44:19,020 Morate mislim da je jedna stvar, ako možda tinejdžer 633 00:44:19,020 --> 00:44:23,700 koristi ovu aplikaciju i njihovi desetine prijatelji su tu, 634 00:44:23,700 --> 00:44:29,360 ali što ako je to predsjednik Uprave tvrtke koja instalira put 635 00:44:29,360 --> 00:44:33,170 a onda odjednom cijelu svoju adresar je tamo gore? 636 00:44:33,170 --> 00:44:38,310 Ti ćeš dobiti puno potencijalno vrijedne podatke za kontakt 637 00:44:38,310 --> 00:44:40,920 za puno ljudi. 638 00:44:40,920 --> 00:44:44,500 Novinar New York Timesa, možda ćete biti u mogućnosti da biste dobili broj telefona 639 00:44:44,500 --> 00:44:47,380 za bivše predsjednike iz njihova adresara, 640 00:44:47,380 --> 00:44:54,780 tako da je očito puno osjetljivih informacija dobiva prenose s nečim kao što je ovaj. 641 00:44:54,780 --> 00:44:58,090 Bilo je kao veliki flap o tome da je put ispričao. 642 00:44:58,090 --> 00:45:01,610 Oni su promijenili svoju aplikaciju, i to čak utjecali Apple. 643 00:45:01,610 --> 00:45:06,950 Apple je rekao: "Mi ćemo natjerati app prodavač potaknuti korisnike 644 00:45:06,950 --> 00:45:12,650 ako oni će skupiti svoju cijelu adresar. " 645 00:45:12,650 --> 00:45:15,360 >> Izgleda da je ono što se ovdje događa je 646 00:45:15,360 --> 00:45:19,430 kada postoji jedna velika kršenje privatnosti i čini novinare 647 00:45:19,430 --> 00:45:21,680 vidimo promjenu vani. 648 00:45:21,680 --> 00:45:23,230 Ali naravno, ima i drugih stvari vani. 649 00:45:23,230 --> 00:45:27,440 LinkedIn aplikacije berbi kalendarske zapise, 650 00:45:27,440 --> 00:45:34,530 ali Apple ne bi korisnik se zatraži o tome. 651 00:45:34,530 --> 00:45:38,030 Stavke kalendara može imati osjetljive informacije u njima previše. 652 00:45:38,030 --> 00:45:40,000 Gdje ćeš povući crtu? 653 00:45:40,000 --> 00:45:43,960 To je zapravo vrsta evoluira mjesto 654 00:45:43,960 --> 00:45:47,640 tamo gdje stvarno nema dobar standard vani 655 00:45:47,640 --> 00:45:51,990 za korisnike da razumiju kad im se informacije će biti u opasnosti 656 00:45:51,990 --> 00:45:57,820 a kad oni će znati što se poduzima. 657 00:45:57,820 --> 00:46:03,040 Napisali smo aplikaciju na Veracode zove Adios, 658 00:46:03,040 --> 00:46:08,350 i bitno je dopustio da pokažete aplikaciju na svoj iTunes katalog 659 00:46:08,350 --> 00:46:12,550 i pogled na sve aplikacije koje su žetvu svoju punu adresar. 660 00:46:12,550 --> 00:46:19,760 I kao što možete vidjeti na ovom popisu ovdje, Angry Birds, 661 00:46:19,760 --> 00:46:21,590 AIM, AroundMe. 662 00:46:21,590 --> 00:46:24,050 Zašto Angry Birds potrebno adresar? 663 00:46:24,050 --> 00:46:29,160 Ne znam, ali to ipak nekako. 664 00:46:29,160 --> 00:46:32,310 >> To je nešto što mnoge, mnoge aplikacije učiniti. 665 00:46:32,310 --> 00:46:34,780 Možete provjeriti kod za to. 666 00:46:34,780 --> 00:46:38,660 Tu je dobro definirane API za iPhone, Android i BlackBerry 667 00:46:38,660 --> 00:46:42,120 da se u adresar. 668 00:46:42,120 --> 00:46:48,520 Možete stvarno lako provjeriti za to, a to je ono što smo učinili u našoj Adios primjene. 669 00:46:48,520 --> 00:46:52,320 Sljedeća kategorija, Opasan Sensitive pohrana podataka, 670 00:46:52,320 --> 00:46:55,670 je nešto gdje programeri uzeti nešto poput pin ili broj računa 671 00:46:55,670 --> 00:46:58,530 ili lozinku i spremite je u jasno na uređaju. 672 00:46:58,530 --> 00:47:02,310 Što je još gore, oni to pohraniti u području na telefon 673 00:47:02,310 --> 00:47:06,820 koji je globalno dostupan, kao i na SD karticu. 674 00:47:06,820 --> 00:47:11,320 Možete to vidjeti češće na Androidu, jer Android omogućuje SD karticu. 675 00:47:11,320 --> 00:47:13,200 IPhone uređaja ne. 676 00:47:13,200 --> 00:47:17,900 No, čak smo vidjeli to dogodilo u Citigroup primjene. 677 00:47:17,900 --> 00:47:25,450 Njihova online bankarstva aplikacije pohranjene brojeve računa nesigurno, 678 00:47:25,450 --> 00:47:28,120 samo u jasna, pa ako ste izgubili svoj uređaj, 679 00:47:28,120 --> 00:47:30,670 bitno da ste izgubili svoj bankovni račun. 680 00:47:30,670 --> 00:47:36,000 To je razlog zašto ja osobno ne radim bankarstva na moj iPhone. 681 00:47:36,000 --> 00:47:43,710 Mislim da je previše riskantno upravo sada učiniti ove vrste aktivnosti. 682 00:47:43,710 --> 00:47:45,950 >> Skype učinio istu stvar. 683 00:47:45,950 --> 00:47:49,870 Skype, naravno, ima račun platne bilance, korisničko ime i lozinku 684 00:47:49,870 --> 00:47:51,030 da je pristup tu ravnotežu. 685 00:47:51,030 --> 00:48:00,080 Oni su spremanje sve te podatke na jasan na mobilnom uređaju. 686 00:48:00,080 --> 00:48:05,760 Imam neke primjere ovdje stvaranja datoteke 687 00:48:05,760 --> 00:48:10,310 da nemaju pravo dopuštenja ili pisanje na disk 688 00:48:10,310 --> 00:48:17,260 a ne da bilo enkripcija dogoditi za to. 689 00:48:17,260 --> 00:48:20,190 Ovaj sljedeći područje, Opasan Sensitive prijenosa podataka, 690 00:48:20,190 --> 00:48:24,450 Ja sam aludirao na to nekoliko puta, a zbog javne Wi-Fi 691 00:48:24,450 --> 00:48:27,770 to je nešto što apps apsolutno treba učiniti, 692 00:48:27,770 --> 00:48:31,250 i to je vjerojatno ono što vidimo pogriješiti najviše. 693 00:48:31,250 --> 00:48:34,920 Ja bih rekao-zapravo, mislim da imam stvarne podatke, 694 00:48:34,920 --> 00:48:38,120 ali to je blizu pola mobilne aplikacije 695 00:48:38,120 --> 00:48:41,780 zeznuti radi SSL. 696 00:48:41,780 --> 00:48:43,910 Oni jednostavno ne koriste API ispravno. 697 00:48:43,910 --> 00:48:47,970 Mislim, sve što moraš učiniti je slijediti upute i koristite API-ja, 698 00:48:47,970 --> 00:48:54,720 ali oni takve stvari ne bi provjeriti da li postoji valjan certifikat na drugom kraju, 699 00:48:54,720 --> 00:49:02,120 Ne provjerite je li drugi kraj pokušava napraviti protokol unazaditi napad. 700 00:49:02,120 --> 00:49:07,200 >> Programeri, oni žele da se njihov okvir, zar ne? 701 00:49:07,200 --> 00:49:11,910 Njihov zahtjev je da koristite ovu prodati. Oni su koristili to prodati. 702 00:49:11,910 --> 00:49:14,800 Uvjet je da ne koriste ova prodati sigurno, 703 00:49:14,800 --> 00:49:19,680 pa to je razlog zašto sve aplikacije koje koriste SSL za siguran prijenos podataka 704 00:49:19,680 --> 00:49:23,470 kao da je u tijeku prijenos off uređaj doista treba pregledati 705 00:49:23,470 --> 00:49:28,950 kako bi bili sigurni da je pravilno proveden. 706 00:49:28,950 --> 00:49:32,850 I ovdje imam neke primjere gdje možete vidjeti prijavu 707 00:49:32,850 --> 00:49:37,400 možda koristi HTTP umjesto HTTPS. 708 00:49:37,400 --> 00:49:40,510 U nekim slučajevima aplikacije će se vratiti na HTTP 709 00:49:40,510 --> 00:49:44,250 ako HTTPS ne radi. 710 00:49:44,250 --> 00:49:49,070 Imam još jedan poziv ovdje na Android gdje ste onemogućen ček certifikat, 711 00:49:49,070 --> 00:49:51,700 pa čovjek-in-the-middle napad može dogoditi. 712 00:49:51,700 --> 00:49:56,370 Valjan certifikat će biti prihvaćena. 713 00:49:56,370 --> 00:50:01,920 Sve su to slučajevi u kojima napadači su idući u biti u mogućnosti da biste dobili na 714 00:50:01,920 --> 00:50:07,150 Isto Wi-Fi veze kao korisnika i pristup svim podacima 715 00:50:07,150 --> 00:50:11,650 koji je poslan preko interneta. 716 00:50:11,650 --> 00:50:15,970 >> I na kraju, zadnja kategorija Imam ovdje je hardcore lozinkom i tipke. 717 00:50:15,970 --> 00:50:21,470 Mi zapravo vidjeti puno programere koristiti isti stil kodiranja 718 00:50:21,470 --> 00:50:25,900 da oni kad su gradili web poslužitelja aplikacija, 719 00:50:25,900 --> 00:50:29,700 pa oni izgradnji Java poslužitelj aplikacija, a oni hardcoding tipku. 720 00:50:29,700 --> 00:50:31,940 Pa, ako ste izgradnju server aplikacija, yeah, 721 00:50:31,940 --> 00:50:34,240 hardcoding ključ nije dobra ideja. 722 00:50:34,240 --> 00:50:36,290 To ga čini teško promijeniti. 723 00:50:36,290 --> 00:50:40,700 No, to i nije tako loše na strani poslužitelja, jer tko ima pristup strani poslužitelja? 724 00:50:40,700 --> 00:50:43,140 Samo administratori. 725 00:50:43,140 --> 00:50:48,100 No, ako se uzme isti kod i da ga izlio preko mobilne aplikacije 726 00:50:48,100 --> 00:50:52,550 Sada svatko tko ima taj mobilnih aplikacija ima pristup tom ključu hardcore, 727 00:50:52,550 --> 00:50:56,380 i doista vidimo to puno puta, a ja imam neke statistike 728 00:50:56,380 --> 00:51:00,920 o tome koliko često vidimo se to dogoditi. 729 00:51:00,920 --> 00:51:04,940 To je zapravo bio primjer koda koji MasterCard objavljenom 730 00:51:04,940 --> 00:51:06,850 o tome kako koristiti njihove usluge. 731 00:51:06,850 --> 00:51:11,860 Primjer koda su pokazali kako bi samo uzeti lozinku 732 00:51:11,860 --> 00:51:14,850 i staviti ga u hardcore nizu tamo, 733 00:51:14,850 --> 00:51:19,380 a znamo kako programeri vole kopirati i zalijepiti koda 734 00:51:19,380 --> 00:51:22,360 kad pokušavamo nešto napraviti, tako da kopirate i zalijepite isječak koda 735 00:51:22,360 --> 00:51:28,450 da je dao kao primjer koda, a vi imate nesiguran prijavu. 736 00:51:28,450 --> 00:51:31,490 >> A ovdje imamo neke primjere. 737 00:51:31,490 --> 00:51:35,840 Ovaj prvi je onaj koji smo vidjeli puno gdje su hardcode 738 00:51:35,840 --> 00:51:40,510 Pravo podataka u URL koji se šalju. 739 00:51:40,510 --> 00:51:45,120 Ponekad vidimo string password = lozinku. 740 00:51:45,120 --> 00:51:49,060 To je prilično lako otkriti, ili string password na BlackBerry i Android. 741 00:51:49,060 --> 00:51:53,680 To je zapravo prilično lako provjeriti, jer gotovo uvijek 742 00:51:53,680 --> 00:51:57,030 povjerenik za razvoj imena varijabla koja drži lozinku 743 00:51:57,030 --> 00:52:02,290 neke varijacije lozinkom. 744 00:52:02,290 --> 00:52:05,200 Spomenuo sam da ćemo napraviti statičku analizu na Veracode, 745 00:52:05,200 --> 00:52:11,790 tako smo analizirali nekoliko stotina Android i iOS aplikacije. 746 00:52:11,790 --> 00:52:15,160 Mi smo izgradili puni modele njih, a mi smo u mogućnosti da ih skenirati 747 00:52:15,160 --> 00:52:19,280 za različite ranjivosti, posebno ranjivosti sam pričao, 748 00:52:19,280 --> 00:52:21,050 i ja imam neke podatke ovdje. 749 00:52:21,050 --> 00:52:24,320 68,5% od Android aplikacija smo gledali 750 00:52:24,320 --> 00:52:28,590 provalio kriptografski kôd, 751 00:52:28,590 --> 00:52:33,240 koji je za nas, ne možemo otkriti ako ste napravili svoj kripto rutinu, 752 00:52:33,240 --> 00:52:38,980 Nije da je to dobra ideja, ali to je zapravo koristi objavljene API 753 00:52:38,980 --> 00:52:42,530 koji su na platformi, ali ih radi na takav način 754 00:52:42,530 --> 00:52:46,680 da kripto će biti ranjiv, 68.5. 755 00:52:46,680 --> 00:52:49,870 A to je za ljude koji su nam šalju svoje zahtjeve, jer zapravo 756 00:52:49,870 --> 00:52:53,730 oni misle da je dobra ideja da sigurnost ispitivanje. 757 00:52:53,730 --> 00:52:56,960 To su već ljudi koji su vjerojatno misleći sigurno, 758 00:52:56,960 --> 00:52:59,540 tako da je vjerojatno još gore. 759 00:52:59,540 --> 00:53:02,690 >> Nisam govoriti o kontrolnom linije injekcije hrane. 760 00:53:02,690 --> 00:53:07,640 To je nešto što smo provjerili, ali to nije to rizično problem. 761 00:53:07,640 --> 00:53:15,390 Curenje informacija, ovo je mjesto gdje osjetljivi podaci se šalju s uređaja. 762 00:53:15,390 --> 00:53:19,270 Otkrili smo da u 40% prijava. 763 00:53:19,270 --> 00:53:23,540 Vrijeme i stanje, to su utrke tipa uvjet pitanja, obično prilično teško iskoristiti, 764 00:53:23,540 --> 00:53:26,170 pa nisam o tome pričati, ali smo gledali na njega. 765 00:53:26,170 --> 00:53:28,750 23% je SQL injection pitanja. 766 00:53:28,750 --> 00:53:32,020 Puno ljudi ne zna da je puno aplikacija 767 00:53:32,020 --> 00:53:35,880 koristiti mali malo SQL baza podataka na njihovim leđima kraju za pohranu podataka. 768 00:53:35,880 --> 00:53:40,430 Pa, ako su podaci koje ste grabbing preko mreže 769 00:53:40,430 --> 00:53:43,800 ima SQL injection napad konce u njemu 770 00:53:43,800 --> 00:53:45,970 netko može ugroziti uređaja kroz koji, 771 00:53:45,970 --> 00:53:49,800 pa mislim da smo pronašli oko 40% web aplikacije imaju ovaj problem, 772 00:53:49,800 --> 00:53:52,840 što je ogromna epidemija problem. 773 00:53:52,840 --> 00:53:55,740 Smatramo da je 23% vremena u mobilnim aplikacijama 774 00:53:55,740 --> 00:54:02,030 i to je vjerojatno zato što mnogo više web aplikacije koriste SQL nego mobitel. 775 00:54:02,030 --> 00:54:05,580 >> I onda mi još vidjeti neki Cross-Site Scripting, pitanja ovlaštenje, 776 00:54:05,580 --> 00:54:09,400 a zatim uvjerenje za upravljanje, to je mjesto gdje imate svoj hardcore lozinku. 777 00:54:09,400 --> 00:54:14,540 U 5% aplikacija vidimo da. 778 00:54:14,540 --> 00:54:17,970 I onda imamo neke podatke o iOS. 779 00:54:17,970 --> 00:54:20,180 81% ima problema rukovanje pogreškama. 780 00:54:20,180 --> 00:54:23,130 To je više od problema je kod kvalitete, 781 00:54:23,130 --> 00:54:28,010 ali 67% je kriptografske pitanja, pa nije baš tako loše kao android. 782 00:54:28,010 --> 00:54:32,440 Možda API-ji su malo lakše, primjer koda malo bolje na iOS. 783 00:54:32,440 --> 00:54:35,420 No, i dalje je vrlo visok postotak. 784 00:54:35,420 --> 00:54:39,040 Imali smo 54% sa curenja informacija, 785 00:54:39,040 --> 00:54:42,080 oko 30% u puferu za upravljanje pogreške. 786 00:54:42,080 --> 00:54:45,930 To je mjesto gdje postoji potencijalno mogao biti problem korupcije memorije. 787 00:54:45,930 --> 00:54:50,350 Ispada da to nije tako mnogo problema za eksploataciju 788 00:54:50,350 --> 00:54:56,450 na iOS, jer sve kod mora biti potpisan, 789 00:54:56,450 --> 00:55:02,210 tako da je teško za napadaču izvršavanje proizvoljnog koda na iOS. 790 00:55:02,210 --> 00:55:07,880 Kvaliteta Code, imenik obuhvaćanje, ali onda vjerodajnice za upravljanje ovdje na 14,6%, 791 00:55:07,880 --> 00:55:09,250 pa gore nego na Androidu. 792 00:55:09,250 --> 00:55:13,240 Imamo ljudi ne postupa ispravno lozinke. 793 00:55:13,240 --> 00:55:15,790 A onda su brojčane pogreške i buffer overflow, 794 00:55:15,790 --> 00:55:22,680 one su više će biti kod pitanja kvalitete na iOS. 795 00:55:22,680 --> 00:55:26,110 >> To je to za moju prezentaciju. Ja ne znam je li mi više vremena ili ne. 796 00:55:26,110 --> 00:55:29,540 Ja ne znam da li postoji bilo kakva pitanja. 797 00:55:29,540 --> 00:55:33,220 [Muško] brzo pitanje oko fragmentacije i Android Marketa. 798 00:55:33,220 --> 00:55:36,240 Apple barem posjeduje krpanje. 799 00:55:36,240 --> 00:55:40,780 Oni napraviti dobar posao uzimajući ga vani dok je manje u Android prostora. 800 00:55:40,780 --> 00:55:44,280 Gotovo da trebate jailbreak telefona ostati u tijeku 801 00:55:44,280 --> 00:55:46,660 s trenutnom verzijom Android. 802 00:55:46,660 --> 00:55:50,960 Da, to je veliki problem i tako, ako mislite o tome- 803 00:55:50,960 --> 00:55:52,280 [Muško] Zašto ne možete to ponoviti? 804 00:55:52,280 --> 00:55:55,610 >> Oh, zar ne, pa je pitanje je što o fragmentacija 805 00:55:55,610 --> 00:56:00,410 operativnog sustava na Android platformi? 806 00:56:00,410 --> 00:56:05,890 Kako to utječe na rizičnosti tih uređaja? 807 00:56:05,890 --> 00:56:09,700 I to je zapravo veliki problem, jer ono što se događa je 808 00:56:09,700 --> 00:56:15,110 stariji uređaji, kad netko dolazi s jailbreak za taj uređaj, 809 00:56:15,110 --> 00:56:19,960 u biti to je privilegija eskalacija, a dok se to operativni sustav ažuriran 810 00:56:19,960 --> 00:56:25,350 bilo malware onda možete koristiti tu ranjivost u potpunosti kompromitirati uređaja, 811 00:56:25,350 --> 00:56:30,200 i ono što vidimo na Android je kako bi se novi operativni sustav 812 00:56:30,200 --> 00:56:34,690 Google mora ugasiti operacijski sustav, a zatim proizvođača hardvera 813 00:56:34,690 --> 00:56:39,390 ima da ga prilagoditi, a zatim prijevoznik mora prilagoditi i dostaviti. 814 00:56:39,390 --> 00:56:43,070 Imate osnovi 3 pokretnih dijelova ovdje, 815 00:56:43,070 --> 00:56:47,210 i to je izlaskom da prijevoznici ne zanima, 816 00:56:47,210 --> 00:56:50,400 i proizvođači hardvera ne zanima, a Google nije ih Ispitivao dovoljno 817 00:56:50,400 --> 00:56:54,430 učiniti ništa, pa u biti više od polovice uređaja vani 818 00:56:54,430 --> 00:57:00,590 imaju operativne sustave koji imaju ove eskalacije privilegija ranjivosti u njima, 819 00:57:00,590 --> 00:57:08,440 i tako, ako ste dobili malware na Android uređaju to je puno više problema. 820 00:57:08,440 --> 00:57:10,350 >> Ok, puno ti hvala. 821 00:57:10,350 --> 00:57:12,310 [Aplauz] 822 00:57:12,310 --> 00:57:14,310 [CS50.TV]