1 00:00:00,000 --> 00:00:02,610 >> [Seminář] [Obrana Za zařízení: Mobile Application Security] 2 00:00:02,610 --> 00:00:04,380 [Chris Wysopal] [Harvard University] 3 00:00:04,380 --> 00:00:07,830 [To je CS50.] [CS50.TV] 4 00:00:07,830 --> 00:00:10,360 >> Dobrý den. Jmenuji se Chris Wysopal. 5 00:00:10,360 --> 00:00:13,360 Jsem CTO a spoluzakladatel Veracode. 6 00:00:13,360 --> 00:00:15,880 Veracode je bezpečnostní aplikace společnosti. 7 00:00:15,880 --> 00:00:18,230 Testujeme všechny druhy různých aplikací, 8 00:00:18,230 --> 00:00:25,060 a co já budu mluvit o dnes je bezpečnost mobilních aplikací. 9 00:00:25,060 --> 00:00:28,630 Moje pozadí je jsem dělal výzkum v oblasti bezpečnosti 10 00:00:28,630 --> 00:00:31,970 po velmi dlouhou dobu, asi tak dlouho, jako všichni. 11 00:00:31,970 --> 00:00:35,000 Jsem začal v polovině 90. let, 12 00:00:35,000 --> 00:00:37,370 a to byl čas, to bylo docela zajímavé, protože 13 00:00:37,370 --> 00:00:39,220 jsme měli změnu paradigmatu v polovině 90. let. 14 00:00:39,220 --> 00:00:43,520 Všechny počítače náhlé každého byl připojený k internetu, 15 00:00:43,520 --> 00:00:46,550 a pak jsme měli začátky webových aplikací, 16 00:00:46,550 --> 00:00:49,330 a to je to, co jsem se zaměřil na hodně pak. 17 00:00:49,330 --> 00:00:51,160 To je zajímavé. 18 00:00:51,160 --> 00:00:53,930 Nyní máme další změnu paradigmatu se děje s počítači, 19 00:00:53,930 --> 00:00:58,710 což je posun na mobilních aplikací. 20 00:00:58,710 --> 00:01:03,680 >> Mám pocit, že je to trochu podobné dobu, pak to bylo v druhé polovině 90. let 21 00:01:03,680 --> 00:01:07,650 když jsme byli vyšetřování webových aplikací a hledání závad, jako jsou 22 00:01:07,650 --> 00:01:11,800 Chyby správu relace a SQL injection 23 00:01:11,800 --> 00:01:14,940 která opravdu neexistoval předtím, a najednou byli všude 24 00:01:14,940 --> 00:01:19,360 ve webových aplikacích, a teď hodně času trávím 25 00:01:19,360 --> 00:01:27,950 se dívá na mobilních aplikací a při pohledu na to, co se děje tam venku ve volné přírodě. 26 00:01:27,950 --> 00:01:32,060 Mobilní aplikace jsou skutečně bude dominantní výpočetní platformy, 27 00:01:32,060 --> 00:01:35,060 takže jsme opravdu muset strávit spoustu času, pokud jste v bezpečnostním průmyslu 28 00:01:35,060 --> 00:01:39,280 se zaměřením na webové aplikace. 29 00:01:39,280 --> 00:01:43,420 Tam bylo 29 miliard mobilní aplikace stažené v roce 2011. 30 00:01:43,420 --> 00:01:47,920 Je odhadováno na 76 miliard apps do roku 2014. 31 00:01:47,920 --> 00:01:54,040 K dispozici je 686 milionů zařízení, které se chystáte být zakoupeny v letošním roce, 32 00:01:54,040 --> 00:01:57,060 tak to je místo, kde lidé budou dělat 33 00:01:57,060 --> 00:01:59,600  Většina jejich klienta na počítači i do budoucna. 34 00:01:59,600 --> 00:02:04,220 >> Mluvil jsem viceprezident Fidelity Investments 35 00:02:04,220 --> 00:02:08,780 před pár měsíci, a on řekl, že právě viděl větší návštěvnost 36 00:02:08,780 --> 00:02:12,610 dělat finanční transakce od jejich zákazníků 37 00:02:12,610 --> 00:02:16,230 na jejich mobilní aplikace, než na svých internetových stránkách, 38 00:02:16,230 --> 00:02:20,610 takže společné použití pro web v minulosti bylo 39 00:02:20,610 --> 00:02:23,800 kontrolu své kurzy akcií, správu portfolia, 40 00:02:23,800 --> 00:02:28,060 a my jsme vlastně vidět, že v roce 2012 přepínači přes 41 00:02:28,060 --> 00:02:30,960 být více dominantní na mobilní platformě. 42 00:02:30,960 --> 00:02:34,530 Jistě, pokud se to bude jakákoliv trestná činnost, 43 00:02:34,530 --> 00:02:38,900 jakákoli škodlivá aktivita, bude to začít být zaměřena na mobilní platformě 44 00:02:38,900 --> 00:02:44,210 v průběhu času, jak lidé přepnout na to. 45 00:02:44,210 --> 00:02:48,320 Podíváte-li se na mobilní platformu, 46 00:02:48,320 --> 00:02:54,380 podívat se na rizika platformy je užitečné rozčlenit do různých vrstev, 47 00:02:54,380 --> 00:02:59,010 stejně jako byste to na stolním počítači, 48 00:02:59,010 --> 00:03:02,860 a ty si myslíš o různých vrstvách, software, operační systém, 49 00:03:02,860 --> 00:03:07,730 síťová vrstva, hardware vrstva, a samozřejmě, je tu slabá místa ve všech těchto vrstvách. 50 00:03:07,730 --> 00:03:10,510 >> Totéž se děje na mobil. 51 00:03:10,510 --> 00:03:14,880 Ale mobilní, zdá se, že některé z těchto vrstev jsou na tom hůř. 52 00:03:14,880 --> 00:03:19,840 Pro jednoho, síťové vrstvy je problematičtější na mobil 53 00:03:19,840 --> 00:03:25,650 protože spousta lidí, kteří mají ve své kanceláři nebo doma 54 00:03:25,650 --> 00:03:30,780 kabelové připojení nebo mají zabezpečené připojení Wi-Fi, 55 00:03:30,780 --> 00:03:36,530 a s mnoha mobilních zařízení jste zřejmě mimo domov 56 00:03:36,530 --> 00:03:40,520 nebo mimo kancelář hodně, a pokud používáte Wi-Fi připojení na internet tam 57 00:03:40,520 --> 00:03:42,820 můžete používat nezabezpečené Wi-Fi připojení, 58 00:03:42,820 --> 00:03:45,570 něco, co je veřejné Wi-Fi připojení k internetu, 59 00:03:45,570 --> 00:03:48,840 takže když si myslíme, že o mobilních aplikací musíme vzít v úvahu 60 00:03:48,840 --> 00:03:53,770 že síťové prostředí je rizikovější pro ty aplikace, 61 00:03:53,770 --> 00:03:57,640 pokud je Wi-Fi používá. 62 00:03:57,640 --> 00:04:02,410 A když jsem se dostal do více mobilních rizik aplikace 63 00:04:02,410 --> 00:04:04,910 uvidíte, proč je to mnohem důležitější. 64 00:04:04,910 --> 00:04:09,710 Existují rizika na úrovni hardwaru na mobilních zařízeních. 65 00:04:09,710 --> 00:04:11,670 To je oblast pokračujícího výzkumu. 66 00:04:11,670 --> 00:04:15,910 Lidé říkají tyto širokopásmové útoky nebo útoky základního pásma 67 00:04:15,910 --> 00:04:21,870 kam útočí na firmware, který poslouchá v rádiu. 68 00:04:21,870 --> 00:04:25,430 >> Ty jsou opravdu děsivé útoky, protože 69 00:04:25,430 --> 00:04:27,280 uživatel nemusí nic dělat. 70 00:04:27,280 --> 00:04:30,760 Můžete hit spoustu zařízení v RF rozsahu 71 00:04:30,760 --> 00:04:36,690 najednou, a vypadá to, že když tento výzkum bubliny 72 00:04:36,690 --> 00:04:40,750 to rychle dostane zařazen kde 73 00:04:40,750 --> 00:04:46,600 lidé vrhnout se kolem a řekl: "Tady, řekněte nám o tom, prosím, a přestat mluvit o tom." 74 00:04:46,600 --> 00:04:49,460 Tam je nějaký výzkum se děje v oblasti broadbandu, 75 00:04:49,460 --> 00:04:51,980 ale zdá se, že velmi Hush Hush. 76 00:04:51,980 --> 00:04:56,910 Myslím, že je to spíš typ národ státní výzkumu, co se děje. 77 00:04:56,910 --> 00:05:02,140 Oblast aktivního výzkumu, i když je operační systém vrstva, 78 00:05:02,140 --> 00:05:08,910 a opět, tohle je něco jiného, ​​než na ploše světě výpočetní techniky 79 00:05:08,910 --> 00:05:14,840 protože v mobilním prostoru máte tyto týmy lidí zvaných Jailbreakers, 80 00:05:14,840 --> 00:05:18,670 a Jailbreakers jsou jiné než pravidelné výzkumníky zranitelnosti. 81 00:05:18,670 --> 00:05:21,970 Snaží se najít slabá místa v operačním systému, 82 00:05:21,970 --> 00:05:27,000 ale důvod, proč se snažíte najít slabá místa není 83 00:05:27,000 --> 00:05:31,810 proniknout do přístroje někoho jiného, ​​a ohrozit ji. 84 00:05:31,810 --> 00:05:34,280 Je to proniknout do jejich vlastního počítače. 85 00:05:34,280 --> 00:05:38,820 >> Chtějí proniknout do jejich vlastní mobilní telefon, změnit operační systém, své vlastní mobile 86 00:05:38,820 --> 00:05:41,050 aby mohli spouštět aplikace dle svého výběru 87 00:05:41,050 --> 00:05:44,510 a změnit věci s plnými oprávněními správce, 88 00:05:44,510 --> 00:05:49,050 a nechtějí říct dodavatele o tom. 89 00:05:49,050 --> 00:05:52,960 Už ne jako bezpečnostní výzkumník, který je bílý klobouk bezpečnostní výzkumník 90 00:05:52,960 --> 00:05:56,600 která se chystá udělat odpovědné zveřejňování a říct dodavatele o tom. 91 00:05:56,600 --> 00:06:01,270 Chtějí to udělat výzkum, a chtějí, aby skutečně zveřejní jej 92 00:06:01,270 --> 00:06:06,400 ve využití nebo rootkit nebo útěk z vězení kódu, 93 00:06:06,400 --> 00:06:10,010 a chtějí, aby to strategicky, jako hned po 94 00:06:10,010 --> 00:06:13,570 dodavatele lodě nový operační systém. 95 00:06:13,570 --> 00:06:16,350 Máte tento kontradiktorní vztah 96 00:06:16,350 --> 00:06:19,000 s zranitelnosti na mobilní OS na úrovni, 97 00:06:19,000 --> 00:06:23,150 což myslím, že je docela zajímavé, a jedno místo, kde bychom ho vidět 98 00:06:23,150 --> 00:06:29,210 Je to dělá to tak, že je tu dobrá zveřejněn kód zneužití je venku 99 00:06:29,210 --> 00:06:31,750 pro kernel-level zranitelnosti, 100 00:06:31,750 --> 00:06:35,040 a my jsme viděli ty vlastně být používán malware spisovatelů. 101 00:06:35,040 --> 00:06:38,450 Je to trochu jiné než na PC světě. 102 00:06:38,450 --> 00:06:42,530 A potom finální vrstva je horní vrstva, aplikační vrstva. 103 00:06:42,530 --> 00:06:45,250 To je to, co já budu mluvit o dnes. 104 00:06:45,250 --> 00:06:48,970 >> Ostatní vrstvy existují, a další vrstvy hrát na to, 105 00:06:48,970 --> 00:06:53,310 ale já jsem hlavně mluvit o tom, co se děje na aplikační vrstvě 106 00:06:53,310 --> 00:06:55,560 kde je kód běžící v karanténě. 107 00:06:55,560 --> 00:06:58,670 To nemá oprávnění správce. 108 00:06:58,670 --> 00:07:02,170 Má se používat rozhraní API z přístroje, 109 00:07:02,170 --> 00:07:06,970 ale stále hodně nebezpečné činnosti a spousta nebezpečí se může stát v té vrstvě 110 00:07:06,970 --> 00:07:09,220 protože to je vrstva, kde jsou všechny informace. 111 00:07:09,220 --> 00:07:12,330 Aplikace mohou přistupovat všechny informace o zařízení 112 00:07:12,330 --> 00:07:15,390 pokud mají správné oprávnění, 113 00:07:15,390 --> 00:07:17,540 a budou mít přístup různé senzory na přístroji, 114 00:07:17,540 --> 00:07:23,950 Senzor GPS, mikrofon, kamera, co mají ti. 115 00:07:23,950 --> 00:07:27,380 I když mluvíme jen o na aplikační vrstvě 116 00:07:27,380 --> 00:07:33,700 máme spoustu rizik tam. 117 00:07:33,700 --> 00:07:38,450 Další věc, která je odlišná o mobilním prostředí 118 00:07:38,450 --> 00:07:45,060 jsou všechny použité operační systém hráči, ať už je to BlackBerry nebo Android 119 00:07:45,060 --> 00:07:53,410 nebo iOS nebo Windows Mobile, všichni mají jemnozrnné modelu oprávnění, 120 00:07:53,410 --> 00:07:56,990 a toto je jeden ze způsobů, jak se zabudovaných do operačního systému 121 00:07:56,990 --> 00:08:01,230 Myšlenka, že to není tak riskantní, jak si myslíte. 122 00:08:01,230 --> 00:08:04,550 I když budete mít všechny své kontakty na tu, všechny vaše osobní údaje, 123 00:08:04,550 --> 00:08:09,080 máte své fotky, můžete mít své místo tam, 124 00:08:09,080 --> 00:08:14,820 jste ukládání bankovní PIN pro automatické přihlášení na tam, že je to bezpečné, protože 125 00:08:14,820 --> 00:08:19,430 aplikace musí mít určité oprávnění, aby se v některých částech 126 00:08:19,430 --> 00:08:25,080 informace o zařízení, a uživatel musí být prezentovány s 127 00:08:25,080 --> 00:08:29,230 tato oprávnění a říkat v pořádku. 128 00:08:29,230 --> 00:08:32,590 >> Problém s ním je uživatel vždy říká, že ano. 129 00:08:32,590 --> 00:08:35,240 Jako bezpečnostní osobu, vím, že můžete vyzvat uživatele, 130 00:08:35,240 --> 00:08:40,100 říci, něco opravdu špatného se stane, chceš aby se to stalo? 131 00:08:40,100 --> 00:08:44,680 A pokud jste ve spěchu, nebo je tu něco, co opravdu lákavá na druhé straně, že 132 00:08:44,680 --> 00:08:47,760 jako hra se bude instalována, že jste čekali, 133 00:08:47,760 --> 00:08:50,860 jdou na tlačítko pořádku. 134 00:08:50,860 --> 00:08:56,630 To je důvod, proč říkám, na mém snímku sem dej mi hodit ptáků u prasat již, 135 00:08:56,630 --> 00:09:03,150 a můžete vidět na snímku, tady je příklady BlackBerry povolení krabici. 136 00:09:03,150 --> 00:09:05,990 To říká, že "Prosím nastavte oprávnění BlackBerry Travel aplikací 137 00:09:05,990 --> 00:09:09,720 Po kliknutí na tlačítko níže, "a v podstatě se uživatel právě chystá říct, 138 00:09:09,720 --> 00:09:12,240 nastavit oprávnění a ušetřete. 139 00:09:12,240 --> 00:09:18,010 Zde je Android řádku, kde se ukazuje věci, 140 00:09:18,010 --> 00:09:20,260 a to vlastně dává něco, co skoro vypadá jako varování. 141 00:09:20,260 --> 00:09:25,090 Je tu jakýsi výnos tam cedulí s nápisem síťové komunikace, telefonního hovoru, 142 00:09:25,090 --> 00:09:28,120 ale uživatel bude klepněte na tlačítko nainstalovat, ne? 143 00:09:28,120 --> 00:09:32,940 A pak ten Apple je zcela neškodný. 144 00:09:32,940 --> 00:09:34,300 To nedává žádný druh varování. 145 00:09:34,300 --> 00:09:37,380 Je to jen Apple by chtěl použít svou aktuální polohu. 146 00:09:37,380 --> 00:09:39,670 Samozřejmě, že se chystáte na tlačítko pořádku. 147 00:09:39,670 --> 00:09:42,260 >> Tam je to jemnozrnný modelu povolení, 148 00:09:42,260 --> 00:09:45,890 a aplikace musí mít soubor manifestu, kde prohlašují, 149 00:09:45,890 --> 00:09:49,410 oprávnění, které potřebují, a že bude se zobrazí uživateli, 150 00:09:49,410 --> 00:09:53,480 a uživatel bude muset říct, že jsem udělit tato oprávnění. 151 00:09:53,480 --> 00:09:55,080 Ale buďme upřímní. 152 00:09:55,080 --> 00:09:58,400 Uživatelé se právě chystá vždycky říkám v pořádku. 153 00:09:58,400 --> 00:10:04,460 Pojďme se rychle podívat na oprávnění, která tyto aplikace žádají 154 00:10:04,460 --> 00:10:06,850 a některé z oprávnění, které tam jsou. 155 00:10:06,850 --> 00:10:09,950 Tato společnost Praetorian dělal průzkum v loňském roce 156 00:10:09,950 --> 00:10:14,170 z 53.000 aplikací, analyzovaných v Android Marketu a třetí strany trhů, 157 00:10:14,170 --> 00:10:16,770 tak to je vše Android. 158 00:10:16,770 --> 00:10:19,670 A průměrný aplikace požaduje 3 oprávnění. 159 00:10:19,670 --> 00:10:23,370 Některé aplikace požaduje 117 oprávnění, 160 00:10:23,370 --> 00:10:27,480 tak samozřejmě se jedná o velmi jemnozrnné a příliš složité pro uživatele, aby pochopili, 161 00:10:27,480 --> 00:10:31,600 v případě, že jsou prezentovány s touto aplikací, která potřebuje těchto 117 oprávnění. 162 00:10:31,600 --> 00:10:37,270 Je to jako koncový uživatel licenční smlouvy, která je 45 stran dlouho. 163 00:10:37,270 --> 00:10:40,240 Možná, že brzy budou mít možnost, kde to je, 164 00:10:40,240 --> 00:10:43,100 vytisknout oprávnění a pošlete mi e-mail. 165 00:10:43,100 --> 00:10:45,480 >> Ale když se podíváte na některé z nejlepších zajímavých oprávnění 166 00:10:45,480 --> 00:10:50,840 24% z aplikací, které jsou staženy z 53000 167 00:10:50,840 --> 00:10:57,230 požadované GPS informace ze zařízení. 168 00:10:57,230 --> 00:10:59,810 8% si kontakty. 169 00:10:59,810 --> 00:11:03,770 4% odeslaných SMS a 3% přijaté SMS. 170 00:11:03,770 --> 00:11:07,730 2% zaznamenaný zvuk. 171 00:11:07,730 --> 00:11:11,210 1% zpracované odchozí hovory. 172 00:11:11,210 --> 00:11:13,140 Nevím. 173 00:11:13,140 --> 00:11:17,520 Nemyslím si, že 4% z aplikací v App Store opravdu potřebujete odesílat textové zprávy SMS, 174 00:11:17,520 --> 00:11:21,410 takže si myslím, že je to náznak, že se něco neobvyklého děje. 175 00:11:21,410 --> 00:11:24,350 8% z aplikací je třeba číst seznam kontaktů. 176 00:11:24,350 --> 00:11:26,510 Je to asi není nutné. 177 00:11:26,510 --> 00:11:30,990 Jedním z dalších zajímavých věcí, o oprávnění je 178 00:11:30,990 --> 00:11:36,740 pokud odkazují na sdílených knihoven do aplikace 179 00:11:36,740 --> 00:11:39,780 které dědí oprávnění z aplikace, 180 00:11:39,780 --> 00:11:46,570 takže pokud vaše aplikace potřebuje seznamu kontaktů nebo třeba umístění GPS fungovat 181 00:11:46,570 --> 00:11:49,940 a propojení v reklamní knihovny, například, 182 00:11:49,940 --> 00:11:53,170 že reklama knihovna bude také moci přistupovat kontakty 183 00:11:53,170 --> 00:11:57,630 a také být schopen získat přístup k umístění GPS, 184 00:11:57,630 --> 00:12:01,990 a vývojář aplikace neví nic o kódu, který je spuštěn v reklamní knihovně. 185 00:12:01,990 --> 00:12:05,370 Jsou to právě propojení, které do systému, protože chtějí zpeněžit své aplikace. 186 00:12:05,370 --> 00:12:09,820 >> To je místo, kde, a já budu mluvit o některých příkladech to s 187 00:12:09,820 --> 00:12:13,930 aplikace s názvem Pandora, kde vývojář aplikace 188 00:12:13,930 --> 00:12:18,910 může být bezděky únik informací 189 00:12:18,910 --> 00:12:24,580 od svých uživatelů, protože knihoven že jsem propojených palců 190 00:12:24,580 --> 00:12:30,110 Geodetické krajinu tam, díval se na všech různých aplikací 191 00:12:30,110 --> 00:12:34,310 , které byly hlášeny v médiích jako škodlivý nebo dělat něco, co uživatelé nechtěli 192 00:12:34,310 --> 00:12:39,360 a kontrolu hodně aplikací, děláme hodně statické binární analýzy na mobilních aplikací, 193 00:12:39,360 --> 00:12:42,010 takže jsme je kontrolována a podíval se na samotného kódu- 194 00:12:42,010 --> 00:12:49,640 jsme přišli s tím, co nazýváme naše top 10 seznam rizikového chování v aplikacích. 195 00:12:49,640 --> 00:12:54,180 A je to rozdělené do 2 částí, škodlivého kódu, 196 00:12:54,180 --> 00:12:57,600 takže se jedná o špatné věci, že aplikace by mohlo být dělat, že 197 00:12:57,600 --> 00:13:06,520 je pravděpodobné, že bude něco, co se zlými úmysly individuální 198 00:13:06,520 --> 00:13:10,060 výslovně dát do aplikace, ale je to trochu rozmazaný. 199 00:13:10,060 --> 00:13:13,300 Mohlo by to být něco, co developer si myslí, že je v pořádku, 200 00:13:13,300 --> 00:13:16,350 ale to skončí je myšlenka jako nebezpečný uživatelem. 201 00:13:16,350 --> 00:13:19,830 >> A pak druhá část je to, co nazýváme kódování zranitelnosti, 202 00:13:19,830 --> 00:13:24,600 a to jsou věci, kde v podstatě developer se dělat chyby 203 00:13:24,600 --> 00:13:27,200 nebo prostě nechápe, jak napsat aplikaci bezpečně, 204 00:13:27,200 --> 00:13:30,260  a to je uvedení app uživatele na riziko. 205 00:13:30,260 --> 00:13:34,060 Chystám se jít přes tyto v detailu a dát nějaké příklady. 206 00:13:34,060 --> 00:13:39,620 Pro srovnání, chtěl jsem, aby se na OWASP mobilní top 10 seznamu. 207 00:13:39,620 --> 00:13:43,590 Jedná se o 10 otázek, které skupina na OWASP, 208 00:13:43,590 --> 00:13:48,900 Projekt Open Web Application Security, mají pracovní skupinu 209 00:13:48,900 --> 00:13:50,620 pracuje na mobilním top 10 seznamu. 210 00:13:50,620 --> 00:13:54,600 Mají velmi slavný web Top 10 seznamu, které jsou top 10 211 00:13:54,600 --> 00:13:57,180 nejrizikovějšími věci, které můžete mít ve webové aplikaci. 212 00:13:57,180 --> 00:13:59,090 Dělají to samé pro mobilní telefony, 213 00:13:59,090 --> 00:14:01,750 a jejich seznam je trochu jiný, než ten náš. 214 00:14:01,750 --> 00:14:03,670 6 z 10 jsou stejné. 215 00:14:03,670 --> 00:14:06,020 Mají 4, které jsou odlišné. 216 00:14:06,020 --> 00:14:10,550 Myslím, že mají trochu odlišný pohled na 217 00:14:10,550 --> 00:14:14,490 Riziko v mobilních aplikacích, kde mnoho jejich otázek 218 00:14:14,490 --> 00:14:20,490 jsou opravdu, jak aplikace komunikuje na serveru back-end 219 00:14:20,490 --> 00:14:23,100 nebo to, co se děje na serveru back-end, 220 00:14:23,100 --> 00:14:29,220 není tolik aplikací, které mají rizikové chování, které jsou jen prostá klientské aplikace. 221 00:14:29,220 --> 00:14:36,640 >> Ty červeně jsou zde rozdíly mezi seznamy 2. 222 00:14:36,640 --> 00:14:40,740 A někteří z mého výzkumného týmu se vlastně přispěl k tomuto projektu, 223 00:14:40,740 --> 00:14:44,570 takže uvidíme, co se stane v průběhu času, ale myslím, že stánek s jídlem je zde 224 00:14:44,570 --> 00:14:47,550 jsme opravdu nevím, co top 10 seznam je v mobilních aplikacích, protože 225 00:14:47,550 --> 00:14:50,510 že jsem opravdu jen asi 2 nebo 3 let, 226 00:14:50,510 --> 00:14:57,750 a tam nebylo dost času, aby skutečně zkoumat operační systémy 227 00:14:57,750 --> 00:15:00,450 a co jsou schopni, a tam nebylo dost času 228 00:15:00,450 --> 00:15:06,870 pro škodlivý společenství, chcete-li, aby strávili dost času 229 00:15:06,870 --> 00:15:12,910 snaží zaútočit uživatelům prostřednictvím mobilních aplikací, takže očekávám, že tyto seznamy měnit trochu. 230 00:15:12,910 --> 00:15:18,720 Ale teď, to jsou top 10 věcí, které dělat starosti. 231 00:15:18,720 --> 00:15:24,150 Možná se divíte, na mobilním straně, kde nemá škodlivý mobilního kódu 232 00:15:24,150 --> 00:15:28,880 jak se dostat k zařízení? 233 00:15:28,880 --> 00:15:35,210 North Carolina State má projekt Genome Project Mobile Malware 234 00:15:35,210 --> 00:15:39,520 kde jsou shromažďování co nejvíce mobilní malware, jak mohou a analyzování, 235 00:15:39,520 --> 00:15:45,270 a že jsem v členění vstřikovací vektory, které mobilní malware používá, 236 00:15:45,270 --> 00:15:51,490 a 86% použít techniku ​​zvanou přebalování, 237 00:15:51,490 --> 00:15:54,160 a to je jen na platformě Android 238 00:15:54,160 --> 00:15:56,720 můžete opravdu udělat přebalování. 239 00:15:56,720 --> 00:16:03,100 >> Důvod, proč je Android kód je postaven s 240 00:16:03,100 --> 00:16:08,130 byte kód Javy s názvem Dalvik, který je snadno decompilable. 241 00:16:08,130 --> 00:16:12,460 Co špatný člověk může udělat, je 242 00:16:12,460 --> 00:16:16,590 se systémem Android aplikaci, dekompilovat ji, 243 00:16:16,590 --> 00:16:20,120 vložte svůj škodlivý kód, překompilovat to, 244 00:16:20,120 --> 00:16:28,070 a pak ji v App Store, která se prohlásí nová verze této aplikace, 245 00:16:28,070 --> 00:16:30,330 nebo jen možná změna názvu aplikace. 246 00:16:30,330 --> 00:16:35,140 Kdyby to byla nějaká hra, změnit název mírně, 247 00:16:35,140 --> 00:16:42,860 , a to tak, jak je přebalení 86% mobilní malware dostane distribuován. 248 00:16:42,860 --> 00:16:45,810 Je tu další techniku ​​zvanou aktualizace, která je 249 00:16:45,810 --> 00:16:50,030 velmi podobný přebalení, ale ve skutečnosti nechcete dát škodlivý kód palců 250 00:16:50,030 --> 00:16:52,870 Co děláte, je dáte do malé aktualizační mechanismus. 251 00:16:52,870 --> 00:16:56,660 Můžete dekompilovat, můžete dát do aktualizačního mechanismu, a to překompilovat, 252 00:16:56,660 --> 00:17:02,360 a pak, když aplikace běží to stáhne malware na zařízení. 253 00:17:02,360 --> 00:17:06,300 >> Zdaleka většina z nich jsou ty dvě techniky. 254 00:17:06,300 --> 00:17:12,710 Tam opravdu není moc ke stažení pohon-bys, nebo automatickým stahováním na mobilní telefony, 255 00:17:12,710 --> 00:17:15,890 které by mohly být jako phishing. 256 00:17:15,890 --> 00:17:18,200 Ahoj, podívejte se na tento fakt super stránky, 257 00:17:18,200 --> 00:17:21,020 nebo budete muset jít na tuto stránku a vyplňte tento formulář 258 00:17:21,020 --> 00:17:24,420 aby i nadále něco dělat. 259 00:17:24,420 --> 00:17:26,230 Ti, kteří jsou phishingové útoky. 260 00:17:26,230 --> 00:17:28,160 To samé se může stát na mobilní platformu, kde se 261 00:17:28,160 --> 00:17:33,830 poukazují na mobilní aplikace ke stažení, říkat "Ahoj, tady je Bank of America." 262 00:17:33,830 --> 00:17:36,070 "Vidíme, že používáte tuto aplikaci." 263 00:17:36,070 --> 00:17:38,540 "Byste měli stáhnout tuto jinou aplikaci." 264 00:17:38,540 --> 00:17:41,170 Teoreticky, to by mohlo fungovat. 265 00:17:41,170 --> 00:17:48,610 Možná, že to prostě není používán tak, aby se zjistilo, zda je úspěšný, nebo ne, 266 00:17:48,610 --> 00:17:51,680 ale zjistili, že se používá méně než 1% z času, který techniky. 267 00:17:51,680 --> 00:17:56,130 Většina času je to opravdu přebalit kód. 268 00:17:56,130 --> 00:17:58,710 >> Je tu další kategorie tzv. standalone 269 00:17:58,710 --> 00:18:01,420 kde se někdo právě staví zbrusu nové aplikaci. 270 00:18:01,420 --> 00:18:04,020 Mají vytvořit aplikaci, která údajného něco. 271 00:18:04,020 --> 00:18:07,360 Není to přebalení něco jiného, ​​a že má škodlivý kód. 272 00:18:07,360 --> 00:18:11,230 To je použito 14% času. 273 00:18:11,230 --> 00:18:17,880 Teď chci mluvit o tom, co je škodlivý kód dělá? 274 00:18:17,880 --> 00:18:23,070 Jeden z prvních malware tam 275 00:18:23,070 --> 00:18:25,490 byste mohli zvážit spyware. 276 00:18:25,490 --> 00:18:27,620 Je to v podstatě špehuje uživatele. 277 00:18:27,620 --> 00:18:30,470 To sbírá e-maily, SMS zprávy. 278 00:18:30,470 --> 00:18:32,340 Ukazuje na mikrofon. 279 00:18:32,340 --> 00:18:37,330 To sklízí kontaktní knihu, a odešle ji na někoho jiného. 280 00:18:37,330 --> 00:18:40,870 Tento typ spyware existuje na PC, 281 00:18:40,870 --> 00:18:46,200 tak to dává smysl, aby se lidé snaží dělat na mobilních zařízeních to. 282 00:18:46,200 --> 00:18:53,230 >> Jeden z prvních příkladů tohoto byl program s názvem Secret SMS Replicator. 283 00:18:53,230 --> 00:18:56,250 Bylo to v Android Marketplace před pár lety, 284 00:18:56,250 --> 00:18:59,960 a myšlenka byla, kdyby jste měli přístup k něčí Android telefonu 285 00:18:59,960 --> 00:19:03,450 že jste chtěl špehovat, takže možná je to váš manžel 286 00:19:03,450 --> 00:19:07,600 nebo vaše dalších významných a chcete špehovat své textové zprávy, 287 00:19:07,600 --> 00:19:11,200 si můžete stáhnout tuto aplikaci a nainstalujte ji a nastavit 288 00:19:11,200 --> 00:19:16,540 odeslat textovou zprávu SMS na Vás s kopií 289 00:19:16,540 --> 00:19:21,710 každé textové SMS zprávy, které dostali. 290 00:19:21,710 --> 00:19:27,220 To je samozřejmě v porušování App Store, pokud jde o služby, 291 00:19:27,220 --> 00:19:32,040 a toto bylo odstraněno z trhu Android během 18 hodin je, že tam, 292 00:19:32,040 --> 00:19:36,760 tak velmi malý počet lidí, kteří byli v ohrožení, protože toto. 293 00:19:36,760 --> 00:19:42,510 Teď si myslím, že v případě, že byl program s názvem něco možná trochu méně provokativní 294 00:19:42,510 --> 00:19:48,690 jako Secret SMS Replicator by pravděpodobně fungovalo mnohem lépe. 295 00:19:48,690 --> 00:19:52,870 Ale to bylo docela jasné. 296 00:19:52,870 --> 00:19:58,680 >> Jedna z věcí, které můžeme udělat pro to, zjistit, zda aplikace má toto chování, které nechceme 297 00:19:58,680 --> 00:20:01,410 je kontrolovat kód. 298 00:20:01,410 --> 00:20:06,250 To je opravdu velmi snadné udělat na Androidu, protože můžeme dekompilovat aplikace. 299 00:20:06,250 --> 00:20:11,050 Na iOS můžete použít disassembler, jako je IDA Pro 300 00:20:11,050 --> 00:20:17,190 podívat se na to, co Apis aplikace volá a co to dělá. 301 00:20:17,190 --> 00:20:20,680 Napsali jsme naše vlastní binární statický analyzátor pro našeho kódu 302 00:20:20,680 --> 00:20:24,940 a děláme to, a tak to, co byste mohli udělat, je by se dalo říct 303 00:20:24,940 --> 00:20:30,490 má zařízení dělat cokoliv, co je v podstatě mě špehoval nebo sledování mě? 304 00:20:30,490 --> 00:20:33,360 A mám nějaké příklady zde na iPhone. 305 00:20:33,360 --> 00:20:41,440 Tento první příklad je, jak přistupovat k UUID na telefonu. 306 00:20:41,440 --> 00:20:47,060 To je skutečně něco, co Apple právě zakázán pro nové aplikace, 307 00:20:47,060 --> 00:20:52,540 ale staré aplikace, které jste mohli běžící na vašem telefonu může ještě udělat, 308 00:20:52,540 --> 00:20:56,500 a tak, že jedinečný identifikační kód může být použit pro vás sledovat 309 00:20:56,500 --> 00:21:00,440 v mnoha různých aplikacích. 310 00:21:00,440 --> 00:21:07,180 >> Na Android, mám příklad zde, jak se dostat polohu zařízení. 311 00:21:07,180 --> 00:21:10,310 Můžete vidět, že v případě, že volání API je tam, že aplikace je sledování, 312 00:21:10,310 --> 00:21:15,000 a vidíte, zda je to stále jemné umístění nebo hrubé umístění. 313 00:21:15,000 --> 00:21:18,860 A pak na dně tady, mám příklad, jak na BlackBerry 314 00:21:18,860 --> 00:21:25,130 aplikace může přistupovat k e-mailové zprávy ve složce Doručená pošta. 315 00:21:25,130 --> 00:21:27,660 Jedná se o druh věcí, které můžete prohlédnout vidět 316 00:21:27,660 --> 00:21:32,360 v případě, že aplikace dělá tyhle věci. 317 00:21:32,360 --> 00:21:38,320 Druhá velká kategorie škodlivého chování, a to je pravděpodobně největší kategorii teď, 318 00:21:38,320 --> 00:21:43,950 je zakázáno vytáčení, neoprávněné prémiové textové zprávy SMS 319 00:21:43,950 --> 00:21:46,080 nebo neoprávněné platby. 320 00:21:46,080 --> 00:21:48,930 Další věc, která je jedinečná v tom telefonu 321 00:21:48,930 --> 00:21:52,700 je přístroj připojený do fakturačního účtu, 322 00:21:52,700 --> 00:21:55,960 a při činnosti se stalo na telefonu 323 00:21:55,960 --> 00:21:58,510 je možné vytvořit poplatků. 324 00:21:58,510 --> 00:22:00,700 Můžete si koupit věci po telefonu, 325 00:22:00,700 --> 00:22:04,390 a při odeslání premium SMS textovou zprávu, že jste skutečně dávat peníze 326 00:22:04,390 --> 00:22:11,590 majiteli účtu telefonního čísla na straně druhé. 327 00:22:11,590 --> 00:22:17,420 Ty byly zřízeny, aby se ceny akcií, nebo si svůj denní horoskop, nebo jiné věci, 328 00:22:17,420 --> 00:22:21,680 ale může být nastaven tak, aby produkt objednat zasláním SMS s textem. 329 00:22:21,680 --> 00:22:26,970 Lidé dávají peníze na Červený kříž zasláním textové zprávy. 330 00:22:26,970 --> 00:22:30,650 Můžete dát 10 dolarů tímto způsobem. 331 00:22:30,650 --> 00:22:34,190 >> Útočníci, co jsem udělal, je, že nastavení 332 00:22:34,190 --> 00:22:38,750 účty v cizích zemích, a vložit do malware 333 00:22:38,750 --> 00:22:42,840 , že telefon bude odeslání Premium SMS textovou zprávu, 334 00:22:42,840 --> 00:22:47,700 říci, několikrát denně, a na konci měsíce si uvědomíte, že jste strávili 335 00:22:47,700 --> 00:22:52,090 desítky nebo dokonce stovky dolarů, a oni odejít s penězi. 336 00:22:52,090 --> 00:22:57,280 To bylo tak špatné, že to byl úplně první věc, která pro Android 337 00:22:57,280 --> 00:23:00,760 Marketplace nebo místo, to byl Google Tržiště Android v té době, 338 00:23:00,760 --> 00:23:04,430 a to je nyní Google Play-první věc, že ​​Google začal kontrolu. 339 00:23:04,430 --> 00:23:08,700 Když Google začal distribuovat Android aplikace na jejich app store 340 00:23:08,700 --> 00:23:11,350 oni říkali, že nebude kontrolovat na cokoliv. 341 00:23:11,350 --> 00:23:15,630 Dáme aplikace, jakmile jsme byli upozorněni, že jsem porušil naše podmínky služby, 342 00:23:15,630 --> 00:23:17,520 ale nebudeme kontrolovat na cokoliv. 343 00:23:17,520 --> 00:23:24,350 No, asi před rokem to bylo tak špatné, s tímto premium SMS textových zpráv malware 344 00:23:24,350 --> 00:23:28,030 že je to první věc, kterou začali kontrole. 345 00:23:28,030 --> 00:23:31,770 Pokud aplikace umožňuje odesílat textové zprávy SMS 346 00:23:31,770 --> 00:23:34,750 se dále ručně zkoumat tuto žádost. 347 00:23:34,750 --> 00:23:38,770 Vypadají pro rozhraní API, které vyžadují tento, 348 00:23:38,770 --> 00:23:40,580 a teď, protože pak Google rozšířil, 349 00:23:40,580 --> 00:23:46,900 ale to byla první věc, která se začala hledat. 350 00:23:46,900 --> 00:23:50,690 >> Některé další aplikace, které dělal nějaké textové zprávy SMS, 351 00:23:50,690 --> 00:23:56,980 Tento Android Qicsomos, myslím, že to je voláno. 352 00:23:56,980 --> 00:24:02,670 Bylo to aktuální události na mobilní telefon, kde tento Carrier vyšel 353 00:24:02,670 --> 00:24:07,720 jako spyware dát na přístroji dopravci, 354 00:24:07,720 --> 00:24:10,820 tak lidé chtěli vědět, zda jejich telefon byl vystaven to, 355 00:24:10,820 --> 00:24:13,890 a to bezplatná aplikace, která zkouší to. 356 00:24:13,890 --> 00:24:17,520 No, samozřejmě, to, co tato aplikace udělala, bylo, že poslal prémiových textových zpráv SMS, 357 00:24:17,520 --> 00:24:20,090 tak tím testováním, zda jste napaden spywarem 358 00:24:20,090 --> 00:24:24,930 jste vložili malware do vašeho zařízení. 359 00:24:24,930 --> 00:24:27,310 Viděli jsme to samé se stalo v poslední Super Bowl. 360 00:24:27,310 --> 00:24:33,180 Tam byl falešný verze Madden fotbal 361 00:24:33,180 --> 00:24:38,320 který poslal prémiové textové zprávy SMS. 362 00:24:38,320 --> 00:24:45,750 Je to vlastně pokusil se vytvořit bot síť příliš na zařízení. 363 00:24:45,750 --> 00:24:48,090 Tady mám pár příkladů. 364 00:24:48,090 --> 00:24:52,640 Je zajímavé, že Apple byl dost chytrý, 365 00:24:52,640 --> 00:24:58,470 a neumožňují aplikacím odesílat textové zprávy SMS vůbec. 366 00:24:58,470 --> 00:25:00,350 Žádná aplikace může udělat. 367 00:25:00,350 --> 00:25:03,530 To je skvělý způsob, jak se zbavit celé třídy zranitelnosti, 368 00:25:03,530 --> 00:25:09,040 ale na Android, můžete to udělat, a samozřejmě, na BlackBerry, můžete to udělat taky. 369 00:25:09,040 --> 00:25:13,060 Je zajímavé, že na BlackBerry vše, co potřebujete, je internet oprávnění 370 00:25:13,060 --> 00:25:18,370 odeslat textovou zprávu SMS. 371 00:25:18,370 --> 00:25:21,580 >> Další věc, opravdu, že se podíváme na 372 00:25:21,580 --> 00:25:24,780 když se díváme, zda je něco škodlivého, je jen nějaký druh 373 00:25:24,780 --> 00:25:28,100 neoprávněná činnost sítí, jako dívat se na činnosti sítě 374 00:25:28,100 --> 00:25:31,570 aplikace má mít jeho funkčnost, 375 00:25:31,570 --> 00:25:35,380 a podívat se na tuto jiné síťové aktivitě. 376 00:25:35,380 --> 00:25:43,380 Možná aplikace, pracovat, musí získat data přes HTTP, 377 00:25:43,380 --> 00:25:47,500 ale pokud to dělá věci, přes e-mail nebo SMS nebo Bluetooth, nebo něco takového 378 00:25:47,500 --> 00:25:52,890 Nyní, že aplikace by mohly být nebezpečné, takže to je další věc, kterou si můžete prohlédnout na. 379 00:25:52,890 --> 00:26:00,430 A na tomto snímku zde mám několik příkladů, které. 380 00:26:00,430 --> 00:26:05,950 Další zajímavá věc, kterou jsme viděli s malware se stalo v roce 2009, 381 00:26:05,950 --> 00:26:07,600 a stalo se to ve velkém stylu. 382 00:26:07,600 --> 00:26:11,390 Já nevím, jestli se to stalo, tak od té doby, ale to bylo app 383 00:26:11,390 --> 00:26:15,140 že se vydával za jinou aplikaci. 384 00:26:15,140 --> 00:26:21,700 Tam byla řada aplikací, a to bylo nazváno útok 09Droid, 385 00:26:21,700 --> 00:26:29,770 a někdo se rozhodl, že tam bylo mnoho malých, regionálních, středně velké banky 386 00:26:29,770 --> 00:26:32,260 že neměl on-line bankovní aplikace, 387 00:26:32,260 --> 00:26:36,870 takže to, co udělal, bylo, že postaveno asi 50 on-line bankovní aplikace 388 00:26:36,870 --> 00:26:39,410 že vše, co udělal, bylo, mít uživatelské jméno a heslo 389 00:26:39,410 --> 00:26:42,190 a přesměrovat vás na internetových stránkách. 390 00:26:42,190 --> 00:26:47,470 A tak dali to vše v Google Marketplace, 391 00:26:47,470 --> 00:26:51,530 v Android Marketplace, a když někdo hledal, aby zjistili, zda jejich banka 392 00:26:51,530 --> 00:26:56,000 Měl aplikace, které by se najít falešné žádosti, 393 00:26:56,000 --> 00:27:01,230 které shromažďují své přihlašovací údaje a pak přesměrován do jejich webových stránkách. 394 00:27:01,230 --> 00:27:06,640 Způsobem, že to vlastně stalo, že aplikace se tam na pár týdnů, 395 00:27:06,640 --> 00:27:09,050 a tam byly tisíce a tisíce stažení. 396 00:27:09,050 --> 00:27:12,910 >> Způsob, jak to přišlo ke světlu byl někdo má problém 397 00:27:12,910 --> 00:27:15,740 s jednou z aplikací, a nazvali svou banku, 398 00:27:15,740 --> 00:27:18,390 a oni volali zákaznické lince jejich banky a řekl, 399 00:27:18,390 --> 00:27:21,180 "Mám problém s vaším mobilním bankovnictví." 400 00:27:21,180 --> 00:27:23,460 "Můžeš mi pomoct?" 401 00:27:23,460 --> 00:27:26,540 A oni řekli: "Nemáme bankovní aplikace pro mobilní." 402 00:27:26,540 --> 00:27:28,120 To začalo vyšetřování. 403 00:27:28,120 --> 00:27:31,200 Že banka s názvem Google, a pak Google podíval a řekl: 404 00:27:31,200 --> 00:27:37,220 "Wow, stejný autor napsal 50 bankovních aplikací," a vzal je všechny dolů. 405 00:27:37,220 --> 00:27:43,410 Ale určitě se to mohlo stát znovu. 406 00:27:43,410 --> 00:27:51,790 Tady je seznam všech různých bank zde 407 00:27:51,790 --> 00:27:55,870 které byly součástí tohoto podvodu. 408 00:27:55,870 --> 00:28:02,050 Další věc, kterou aplikace může udělat, je přítomen UI z jiné aplikace. 409 00:28:02,050 --> 00:28:06,430 I když je to běh by to mohlo vyskočí na Facebook UI. 410 00:28:06,430 --> 00:28:09,540 To říká, že budete muset dát do svého uživatelského jména a hesla, aby i nadále 411 00:28:09,540 --> 00:28:15,090 nebo dát do libovolné uživatelské jméno a heslo uživatelské rozhraní pro webové stránky 412 00:28:15,090 --> 00:28:18,420 že možná uživatel používá jen k pokusu oklamat uživatele 413 00:28:18,420 --> 00:28:21,340 do uvedení svých přihlašovacích údajů palců 414 00:28:21,340 --> 00:28:25,590 To je opravdu rovně paralelně z e-mailové útoky typu phishing 415 00:28:25,590 --> 00:28:28,210 kde vám někdo pošle e-mailovou zprávu 416 00:28:28,210 --> 00:28:33,050 a poskytuje v podstatě falešné rozhraní pro webové stránky 417 00:28:33,050 --> 00:28:37,320 že máte přístup. 418 00:28:37,320 --> 00:28:41,590 >> Další věc, kterou hledáme škodlivého kódu je modifikace systému. 419 00:28:41,590 --> 00:28:48,160 Můžete se podívat na všechna volání API, které vyžadují oprávněním root 420 00:28:48,160 --> 00:28:50,870 provést správně. 421 00:28:50,870 --> 00:28:56,160 Změna web proxy daného zařízení by bylo něco, co aplikace 422 00:28:56,160 --> 00:28:59,530 by neměl být schopen dělat. 423 00:28:59,530 --> 00:29:03,030 Ale v případě, že aplikace má kód tam k tomu, že 424 00:29:03,030 --> 00:29:05,960 víte, že je to pravděpodobně škodlivý aplikace 425 00:29:05,960 --> 00:29:09,620 nebo velmi vysoce pravděpodobné, že se jedná o nebezpečnou aplikaci, 426 00:29:09,620 --> 00:29:13,910 a tak co by se stalo, je, že aplikace bude mít nějaký způsob, jak stupňující privilegium. 427 00:29:13,910 --> 00:29:17,200 Měla by mít nějaké zvýšení úrovně oprávnění využívat 428 00:29:17,200 --> 00:29:20,730 v aplikaci, a pak ještě jednou to eskaloval oprávnění 429 00:29:20,730 --> 00:29:23,800 že by to tyto systémové změny. 430 00:29:23,800 --> 00:29:28,010 Najdete malware, který má oprávnění eskalaci 431 00:29:28,010 --> 00:29:32,550 v něm i bez znalosti, jak se zvýšení úrovně oprávnění 432 00:29:32,550 --> 00:29:37,960 využití se bude dít, a to je pěkné, snadný způsob, 433 00:29:37,960 --> 00:29:41,220 hledat malware. 434 00:29:41,220 --> 00:29:46,030 DroidDream byl pravděpodobně nejslavnější kus Android malware. 435 00:29:46,030 --> 00:29:50,530 Myslím, že to ovlivnilo asi 250.000 uživatelů po dobu několika dní 436 00:29:50,530 --> 00:29:52,810 před tím, než bylo zjištěno. 437 00:29:52,810 --> 00:29:56,890 Oni přebalit 50 falešné aplikace, 438 00:29:56,890 --> 00:30:00,370 dát do Android App Store, 439 00:30:00,370 --> 00:30:10,940 a v podstatě je použit Android jailbreak kód eskalovat privilegia 440 00:30:10,940 --> 00:30:16,380 a pak nainstalovat velení a řízení a zapněte všechny oběti 441 00:30:16,380 --> 00:30:20,690 do bot sítě, ale mohli jste objevili tento 442 00:30:20,690 --> 00:30:24,170 pokud jste skenování aplikace a jen hledáte 443 00:30:24,170 --> 00:30:32,230 API volání, které vyžaduje povolení root spustit správně. 444 00:30:32,230 --> 00:30:40,150 >> A tady je příklad tady mám, který se mění proxy, 445 00:30:40,150 --> 00:30:46,380 a to ve skutečnosti je k dispozici pouze na Android. 446 00:30:46,380 --> 00:30:49,070 Můžete vidět Dávám vám hodně příkladů na Android 447 00:30:49,070 --> 00:30:53,990 protože to je místo, kde nejaktivnější malware ekosystém je 448 00:30:53,990 --> 00:30:58,690 protože je to pro útočníka velmi snadné se dostat škodlivý kód 449 00:30:58,690 --> 00:31:01,470 do Android Marketplace. 450 00:31:01,470 --> 00:31:06,480 Není to tak snadné, že v Apple App Store 451 00:31:06,480 --> 00:31:10,250 protože Apple vyžaduje, aby vývojářům poznat sebe 452 00:31:10,250 --> 00:31:12,790 a podepsat kód. 453 00:31:12,790 --> 00:31:20,340 Jsou to vlastně zjistit, kdo jste, a Apple je vlastně posouzení žádostí. 454 00:31:20,340 --> 00:31:27,450 Nechceme vidět hodně skutečné malware, kde je zařízení stále ohrožena. 455 00:31:27,450 --> 00:31:32,250 Budu mluvit o některých příkladech, kde je to opravdu soukromí, které je stále ohrožena, 456 00:31:32,250 --> 00:31:38,460 a to je to, co se skutečně děje na zařízení Apple. 457 00:31:38,460 --> 00:31:44,090 Další věc, kterou se podívat na výskyt škodlivého kódu, riskantní kód zařízení 458 00:31:44,090 --> 00:31:50,300 Je logické nebo časované bomby a časované bomby jsou pravděpodobně 459 00:31:50,300 --> 00:31:53,370 mnohem jednodušší hledat, než logických bomb. 460 00:31:53,370 --> 00:31:57,030 Ale s časovaných bomb, co můžete udělat, je se můžete podívat na 461 00:31:57,030 --> 00:32:04,760 místa v kódu, kde je testována čas nebo absolutní čas se hledá 462 00:32:04,760 --> 00:32:08,190 Před určité funkce v aplikaci děje. 463 00:32:08,190 --> 00:32:14,200 A to by mohlo být provedeno skrýt tuto činnost od uživatele, 464 00:32:14,200 --> 00:32:17,510 tak se to děje pozdě v noci. 465 00:32:17,510 --> 00:32:24,350 DroidDream dělal veškerou svou činnost mezi dvacet tři hodin a 8 hodin ráno místního času 466 00:32:24,350 --> 00:32:30,650 pokusit se udělat to, když uživatel nemusí používat jejich zařízení. 467 00:32:30,650 --> 00:32:38,680 >> Další důvod k tomu je, pokud jsou lidé používají behaviorální analýzu aplikace, 468 00:32:38,680 --> 00:32:43,430 spuštění aplikace do karantény, aby viděli, co chování aplikace je, 469 00:32:43,430 --> 00:32:51,090 mohou využít čas na základě logiky udělat aktivitu 470 00:32:51,090 --> 00:32:54,640 když aplikace není na pískovišti. 471 00:32:54,640 --> 00:33:01,520 Například, App Store jako Apple 472 00:33:01,520 --> 00:33:07,940 spustí aplikaci, ale pravděpodobně nejsou v rozporu každou žádost, řekněme, 30 dnů 473 00:33:07,940 --> 00:33:10,550 před jejím schválením, takže si můžete dát 474 00:33:10,550 --> 00:33:14,120 logika v aplikaci, který řekl, v pořádku, jen udělat špatnou věc 475 00:33:14,120 --> 00:33:20,490 po 30 dnech je pryč, nebo po 30 dnech po publikování datu podání žádosti, 476 00:33:20,490 --> 00:33:27,020 a které mohou pomoci škodlivého kódu kůži z lidí inspekci na to. 477 00:33:27,020 --> 00:33:30,050 Je-li anti-virus společnosti jsou spuštěny věci v pískovišť 478 00:33:30,050 --> 00:33:36,370 nebo app samotné obchody jsou to může pomoci 479 00:33:36,370 --> 00:33:39,260 skrýt, že z této prohlídky. 480 00:33:39,260 --> 00:33:43,020 Nyní, odvrácenou stranou, že je to snadné najít s statickou analýzu, 481 00:33:43,020 --> 00:33:46,170 takže vlastně inspekci kód můžete podívat na všechna místa, 482 00:33:46,170 --> 00:33:54,010 kde se aplikace testuje čas a zkontrolujte, že tak. 483 00:33:54,010 --> 00:33:58,850 A tady mám nějaké příklady na těchto 3 různých platformách 484 00:33:58,850 --> 00:34:05,640 jak může být čas zkontrolovat pomocí app výrobce 485 00:34:05,640 --> 00:34:10,520 takže víte, na co se zaměřit, pokud jste kontrolu aplikace staticky. 486 00:34:10,520 --> 00:34:14,570 >> Jsem prošel spoustu různých škodlivých aktivit 487 00:34:14,570 --> 00:34:18,969 které jsme viděli ve volné přírodě, ale které z nich jsou nejčastější? 488 00:34:18,969 --> 00:34:23,940 To samé studie z North Carolina State Mobile Genome Project 489 00:34:23,940 --> 00:34:28,560 zveřejněny některé údaje, a tam byly v podstatě čtyři oblasti 490 00:34:28,560 --> 00:34:32,850 že viděli tam, kde byla spousta aktivit. 491 00:34:32,850 --> 00:34:35,370 37% z aplikací dělal oprávnění eskalaci, 492 00:34:35,370 --> 00:34:38,429 aby měli nějaký druh jailbreak kódu tam 493 00:34:38,429 --> 00:34:42,070 kde se snažili stupňovat oprávnění, aby mohli 494 00:34:42,070 --> 00:34:48,360 se příkazy API běží jako operační systém. 495 00:34:48,360 --> 00:34:52,520 45% z aplikací tam dělal Premium SMS, 496 00:34:52,520 --> 00:34:57,260 tak to je velké procento, které se snaží přímo zpeněžit. 497 00:34:57,260 --> 00:35:02,640 93% ano dálkové ovládání, takže se snažili nastavit bot síť, mobilního bot síť. 498 00:35:02,640 --> 00:35:08,990 A 45% sklizené identifikační údaje 499 00:35:08,990 --> 00:35:16,230 jako jsou telefonní čísla, UUID, umístění GPS, uživatelských účtů, 500 00:35:16,230 --> 00:35:22,870 a to přidává až na více než 100, protože většina malware se snaží dělat některé z těchto věcí. 501 00:35:22,870 --> 00:35:27,070 >> Chystám se přejít do druhé poloviny a mluvit o zranitelnosti kódu. 502 00:35:27,070 --> 00:35:29,480 Toto je druhá polovina riskantní činnosti. 503 00:35:29,480 --> 00:35:33,450 To je místo, kde v podstatě je developer dělat chyby. 504 00:35:33,450 --> 00:35:37,210 Legitimní developer psát legitimní aplikace 505 00:35:37,210 --> 00:35:41,830 dělá chyby, nebo je neznalý o rizicích mobilní platformy. 506 00:35:41,830 --> 00:35:44,780 Oni prostě nevědí, jak se učinit bezpečné mobilní aplikace, 507 00:35:44,780 --> 00:35:47,700 nebo někdy developer se nestará o uvedení uživatele v ohrožení. 508 00:35:47,700 --> 00:35:50,850 Někdy je součástí jejich obchodního modelu by mohlo být 509 00:35:50,850 --> 00:35:54,610 sklizeň osobní údaje uživatele. 510 00:35:54,610 --> 00:35:58,090 To je něco jako druhé kategorie, a to je důvod, proč některé z těchto škodlivý 511 00:35:58,090 --> 00:36:03,200 proti legitimní začne krvácet konce, protože tam je rozdíl názorů 512 00:36:03,200 --> 00:36:10,440 mezi tím, co uživatel chce a co uživatel považuje za riskantní 513 00:36:10,440 --> 00:36:13,050 a to, co vývojář aplikace považuje za riskantní. 514 00:36:13,050 --> 00:36:18,380 Samozřejmě, že to není dat vývojáře aplikací je ve většině případů. 515 00:36:18,380 --> 00:36:22,030 >> A nakonec, jiný způsob, jak se to stane, je developer může spojit v 516 00:36:22,030 --> 00:36:28,600 sdílená knihovna, která má slabá místa nebo toto rizikové chování v něm 517 00:36:28,600 --> 00:36:32,480 unbeknownst k nim. 518 00:36:32,480 --> 00:36:37,060 První kategorie je citlivý úniku dat, 519 00:36:37,060 --> 00:36:40,030 , a to je, když aplikace shromažďuje informace 520 00:36:40,030 --> 00:36:44,980 jako je umístění, adresáře, informace vlastníka 521 00:36:44,980 --> 00:36:48,000 a vysílá, že mimo zařízení. 522 00:36:48,000 --> 00:36:53,050 A jakmile je to mimo zařízení, nevíme, co se děje s těmito informacemi. 523 00:36:53,050 --> 00:36:57,170 Mohlo by to být uloženy nejistě vývojář aplikace. 524 00:36:57,170 --> 00:37:02,070 Viděli jsme vývojáři aplikací se ohrožena, 525 00:37:02,070 --> 00:37:05,820 a údaje, které oni ukládání dostane přijata. 526 00:37:05,820 --> 00:37:10,970 To se stalo před několika měsíci na developera na Floridě 527 00:37:10,970 --> 00:37:21,660 kde obrovské množství, to byl iPad UUID a názvy zařízení 528 00:37:21,660 --> 00:37:25,270 byla propuštěna proto, že někdo, myslím, že to byl anonymní, 529 00:37:25,270 --> 00:37:29,460 prohlašoval, že to, vloupal do serverů tohoto vývojáře 530 00:37:29,460 --> 00:37:34,920 a ukradl miliony iPad UUID 531 00:37:34,920 --> 00:37:37,390 a názvy počítačů. 532 00:37:37,390 --> 00:37:40,260 Ne nejrizikovější informace, 533 00:37:40,260 --> 00:37:46,820 ale co když to bylo ukládání uživatelských jmen a hesel 534 00:37:46,820 --> 00:37:48,170 a adresy domů? 535 00:37:48,170 --> 00:37:51,100 Je tu spousta aplikací, které ukládají tento druh informací. 536 00:37:51,100 --> 00:37:53,230 Riziko je zde. 537 00:37:53,230 --> 00:37:56,620 >> Další věc, která se může stát, je-li developer nebude starat 538 00:37:56,620 --> 00:38:01,370 zabezpečit datový kanál, a to je další velká zranitelnost budu mluvit, 539 00:38:01,370 --> 00:38:05,160 že data jsou odesílána do jasné. 540 00:38:05,160 --> 00:38:09,040 Pokud uživatel na veřejné síti Wi-Fi 541 00:38:09,040 --> 00:38:12,330 nebo někdo čichání internet někde 542 00:38:12,330 --> 00:38:19,260 po cestě, která data jsou vystaveny. 543 00:38:19,260 --> 00:38:23,790 Jeden velmi slavný případ tohoto úniku informací se stalo s Pandora, 544 00:38:23,790 --> 00:38:27,250 a to je něco, co jsme zkoumali na Veracode. 545 00:38:27,250 --> 00:38:33,200 Slyšeli jsme, že to tam bylo, myslím, že to byl Federal Trade Commission 546 00:38:33,200 --> 00:38:35,310 Vyšetřování se děje s Pandoře. 547 00:38:35,310 --> 00:38:39,830 Řekli jsme si, "Co se to tam děje? Pojďme začít kopat do aplikace Pandora." 548 00:38:39,830 --> 00:38:46,690 A to, co jsme zjistili, byla aplikace Pandora shromažďovány 549 00:38:46,690 --> 00:38:51,270 vaše pohlaví a váš věk, 550 00:38:51,270 --> 00:38:56,660 a také přístup k vaší GPS polohy a aplikace Pandora 551 00:38:56,660 --> 00:39:00,200 udělal to, co říkali, bylo oprávněné důvody. 552 00:39:00,200 --> 00:39:05,360 Hudba, kterou hráli, Pandora je streamování hudby app- 553 00:39:05,360 --> 00:39:07,530 hudba, kterou hráli byla licencována pouze ve Spojených státech, 554 00:39:07,530 --> 00:39:13,020 tak museli zkontrolovat, v souladu s jejich licenčními dohodami, které měly 555 00:39:13,020 --> 00:39:17,240 pro hudbu, aby uživatel byl ve Spojených státech. 556 00:39:17,240 --> 00:39:25,070 Chtěli také, aby v souladu s Parental Advisory 557 00:39:25,070 --> 00:39:33,790 kolem dospělý jazyk v hudbě, 558 00:39:33,790 --> 00:39:37,500 a tak je to dobrovolný program, ale chtěli, aby v souladu s tím 559 00:39:37,500 --> 00:39:43,010 a ne hrát explicitní texty pro děti 13 a pod. 560 00:39:43,010 --> 00:39:46,280 >> Měli legitimní důvody pro sběr těchto dat. 561 00:39:46,280 --> 00:39:49,160 Jejich aplikace měl oprávnění, jak to udělat. 562 00:39:49,160 --> 00:39:52,000 Uživatelé myslel, že toto bylo legitimní. Ale co se stalo? 563 00:39:52,000 --> 00:39:55,810 Jsou spojeny do 3 nebo 4 různých reklamních knihoven. 564 00:39:55,810 --> 00:39:59,140 Teď najednou všech těchto reklamních knihovny 565 00:39:59,140 --> 00:40:02,970 jsou stále přístup k těmto stejným informacím. 566 00:40:02,970 --> 00:40:05,830 AD knihovny, když se podíváte na kód v reklamních knihovnách 567 00:40:05,830 --> 00:40:08,430 to, co dělají, je umístěn v každém inzerátu knihovna říká 568 00:40:08,430 --> 00:40:11,340 "Má moje app mít oprávnění získat polohu GPS?" 569 00:40:11,340 --> 00:40:14,890 "Ach, to? Dobře, řekni mi GPS polohu." 570 00:40:14,890 --> 00:40:16,620 Každý ad knihovna dělá, 571 00:40:16,620 --> 00:40:19,740 a v případě, že aplikace nemá oprávnění GPS 572 00:40:19,740 --> 00:40:23,460 nebude moci dostat, ale pokud ano, bude to dostat. 573 00:40:23,460 --> 00:40:26,240 To je místo, kde obchodní model inzerátu knihoven 574 00:40:26,240 --> 00:40:31,160 je protichůdný k soukromí uživatele. 575 00:40:31,160 --> 00:40:34,980 A tam bylo studie, že tam bude říkat, pokud víte, věk 576 00:40:34,980 --> 00:40:38,430 osoby a znáte-li jejich umístění 577 00:40:38,430 --> 00:40:42,530 kde se v noci spát, protože máte své GPS souřadnice 578 00:40:42,530 --> 00:40:46,030 zatímco oni možná spí, budete přesně vědět, kdo ta osoba je 579 00:40:46,030 --> 00:40:50,230 protože si můžete určit, který člen této domácnosti je osoba. 580 00:40:50,230 --> 00:40:54,780 Opravdu je to identifikace pro inzerenty 581 00:40:54,780 --> 00:40:59,530 přesně, kdo jste, a vypadá to, že to bylo legitimní. 582 00:40:59,530 --> 00:41:02,800 Chci jen můj streaming hudby, a to je jediný způsob, jak jej získat. 583 00:41:02,800 --> 00:41:05,370 >> No, jsme vystaveni to. 584 00:41:05,370 --> 00:41:08,030 To jsme psali v několika příspěvcích, 585 00:41:08,030 --> 00:41:13,280 a ukázalo se, že někdo z časopisu Rolling Stone 586 00:41:13,280 --> 00:41:18,810 přečtěte si jednu z našich blogů a napsal své vlastní blog v Rolling Stone o tom, 587 00:41:18,810 --> 00:41:22,120 a hned další den Pandora si myslel, že je to dobrý nápad 588 00:41:22,120 --> 00:41:27,600 odstranit reklamní knihoven z jejich použití. 589 00:41:27,600 --> 00:41:31,270 Pokud je mi známo, jsou-oni jen je třeba pochválit. 590 00:41:31,270 --> 00:41:35,770 Myslím, že jsou jen freemium typ aplikace, která to učinila. 591 00:41:35,770 --> 00:41:38,660 Všechny ostatní Freemium aplikace mají stejný chování, 592 00:41:38,660 --> 00:41:41,780 tak musíš přemýšlet o tom, jaký druh dat dáváte 593 00:41:41,780 --> 00:41:48,330 Tyto Freemium aplikace, protože je to všechno děje k inzerentům. 594 00:41:48,330 --> 00:41:53,390 Praetorian také dělal studii o sdílených knihoven a řekl, 595 00:41:53,390 --> 00:41:57,100 "Pojďme se podívat na to, co Sdílené knihovny jsou top sdílené knihovny," a to, že údaje. 596 00:41:57,100 --> 00:41:59,420 >> Analyzovali 53.000 aplikací, 597 00:41:59,420 --> 00:42:01,900 a číslo 1 sdílená knihovna byla AdMob. 598 00:42:01,900 --> 00:42:06,060 Bylo to vlastně v 38% aplikací tam, 599 00:42:06,060 --> 00:42:08,800 tak 38% z aplikací, kterou používáte 600 00:42:08,800 --> 00:42:11,250 je pravděpodobné, sklizeň vaše osobní údaje 601 00:42:11,250 --> 00:42:16,650 a předat jej do reklamních sítí. 602 00:42:16,650 --> 00:42:19,350 Apache a Android bylo 8% a 6%, 603 00:42:19,350 --> 00:42:22,960 a pak tyto jiné ty dole ve spodní části, Google reklamy, Flurry, 604 00:42:22,960 --> 00:42:26,600 Mob City a Millennial Media, 605 00:42:26,600 --> 00:42:30,500 to vše jsou reklamní společnosti, a pak, je dost zajímavé, 606 00:42:30,500 --> 00:42:33,500 4% se váže v knihovně Facebook 607 00:42:33,500 --> 00:42:38,870 Pravděpodobně k tomu ověřování přes Facebook 608 00:42:38,870 --> 00:42:40,810 aby aplikace mohla ověřit na Facebook. 609 00:42:40,810 --> 00:42:44,660 Ale to také znamená, že společnost Facebook ovládá kód 610 00:42:44,660 --> 00:42:49,010 že běží v 4% z Android mobilních aplikací tam, 611 00:42:49,010 --> 00:42:53,490 a mají přístup ke všem údajům, že aplikace má oprávnění se dostat na. 612 00:42:53,490 --> 00:42:57,170 Facebook v podstatě se snaží prodat reklamní prostor. 613 00:42:57,170 --> 00:43:00,120 To je jejich obchodní model. 614 00:43:00,120 --> 00:43:02,920 >> Když se podíváte na celý tento ekosystém s těmito oprávněními 615 00:43:02,920 --> 00:43:07,740 a sdílené knihovny začnete vidět, že 616 00:43:07,740 --> 00:43:13,850 Máte spoustu rizik v údajně legitimní aplikace. 617 00:43:13,850 --> 00:43:19,360 Stejný podobné, co se stalo s Pandora 618 00:43:19,360 --> 00:43:22,340 Stalo se aplikace s názvem Cesta, 619 00:43:22,340 --> 00:43:27,660 a Path si mysleli, že jsou vstřícní, přátelští vývojáři. 620 00:43:27,660 --> 00:43:32,160 Oni se jen snaží, aby vám skvělý uživatelský zážitek, 621 00:43:32,160 --> 00:43:37,810 a ukázalo se, že bez vyzvání uživatele, nebo musí uživateli sdělit, něco, 622 00:43:37,810 --> 00:43:40,400 a to se stalo na iPhone a Android, 623 00:43:40,400 --> 00:43:44,420 Pandora app byla na iPhone a Android- 624 00:43:44,420 --> 00:43:48,890 že žádost Cesta byla chytil celý adresář 625 00:43:48,890 --> 00:43:52,830 a nahrát ji do cesty ve chvíli, kdy jste nainstalovali a spustili aplikaci, 626 00:43:52,830 --> 00:43:55,840 a neřekl ti o tom. 627 00:43:55,840 --> 00:43:58,750 Mysleli si, že to bylo opravdu užitečné pro vás 628 00:43:58,750 --> 00:44:04,040 aby bylo možné sdílet se všemi lidmi ve vašem adresáři 629 00:44:04,040 --> 00:44:06,920 že jste pomocí aplikace Path. 630 00:44:06,920 --> 00:44:09,490 >> No, samozřejmě Cesta myslel, že toto bylo skvělé pro jejich společnost. 631 00:44:09,490 --> 00:44:13,510 Není to tak velký uživateli. 632 00:44:13,510 --> 00:44:19,020 Musíte si myslet, že to je jedna věc, pokud možná teenager 633 00:44:19,020 --> 00:44:23,700 se pomocí této aplikace a jejich desítky přátel jsou tam, 634 00:44:23,700 --> 00:44:29,360 ale co když je to generální ředitel společnosti, která instaluje cesta 635 00:44:29,360 --> 00:44:33,170 a pak najednou jejich celého adresáře je tam? 636 00:44:33,170 --> 00:44:38,310 Budeš mít spoustu potenciálně cenné kontaktní informace 637 00:44:38,310 --> 00:44:40,920 pro mnoho lidí. 638 00:44:40,920 --> 00:44:44,500 Reportér z New York Times, měli byste být schopni získat telefonní číslo 639 00:44:44,500 --> 00:44:47,380 bývalých prezidentů z jejich adresáře, 640 00:44:47,380 --> 00:44:54,780 tak samozřejmě hodně citlivých informací je převedena s něčím, jako je tento. 641 00:44:54,780 --> 00:44:58,090 Tam byla taková velká klapka o tom, že cesta se omluvil. 642 00:44:58,090 --> 00:45:01,610 Oni změnili si jejich aplikaci, a to dokonce i dopad Apple. 643 00:45:01,610 --> 00:45:06,950 Řekl, Apple, "Chystáme se nutit app dodavatele vyzvat uživatele 644 00:45:06,950 --> 00:45:12,650 v případě, že se chystáte sbírat celý svůj adresář. " 645 00:45:12,650 --> 00:45:15,360 >> Vypadá to, že to, co se tady děje, je 646 00:45:15,360 --> 00:45:19,430 když je tu jeden velký porušení soukromí a to dělá tisku 647 00:45:19,430 --> 00:45:21,680 vidíme změnu tam venku. 648 00:45:21,680 --> 00:45:23,230 Ale samozřejmě, je tu další věci tam venku. 649 00:45:23,230 --> 00:45:27,440 Aplikace LinkedIn sklízí své záznamy kalendáře, 650 00:45:27,440 --> 00:45:34,530 ale Apple nedělá uživatel vyzván o tom. 651 00:45:34,530 --> 00:45:38,030 Záznamy v kalendáři mohou mít citlivé informace v nich taky. 652 00:45:38,030 --> 00:45:40,000 Kam se chystáte na čáru? 653 00:45:40,000 --> 00:45:43,960 To je opravdu druh vyvíjející místo 654 00:45:43,960 --> 00:45:47,640 tam, kde to opravdu není dobré standardní venku 655 00:45:47,640 --> 00:45:51,990 pro uživatele k pochopení, když se jejich informace bude v ohrožení 656 00:45:51,990 --> 00:45:57,820 a když budeš vědět, že je přijímána. 657 00:45:57,820 --> 00:46:03,040 Psali jsme o aplikaci na Veracode názvem Adios, 658 00:46:03,040 --> 00:46:08,350 a v podstatě je povoleno můžete upozornit aplikaci na vašem adresáři iTunes 659 00:46:08,350 --> 00:46:12,550 a podívat se na všechny žádosti, které byly sklizeň své celé adresáře. 660 00:46:12,550 --> 00:46:19,760 A jak můžete vidět na tomto seznamu tady, Angry Birds, 661 00:46:19,760 --> 00:46:21,590 AIM, AroundMe. 662 00:46:21,590 --> 00:46:24,050 Proč Angry Birds potřebujete adresáře? 663 00:46:24,050 --> 00:46:29,160 Já nevím, ale to dělá nějak. 664 00:46:29,160 --> 00:46:32,310 >> To je něco, co mnoho, mnoho aplikací dělat. 665 00:46:32,310 --> 00:46:34,780 Můžete si prohlédnout kód pro tento. 666 00:46:34,780 --> 00:46:38,660 K dispozici je dobře definované rozhraní API pro iPhone, Android a BlackBerry 667 00:46:38,660 --> 00:46:42,120 aby se v adresáři. 668 00:46:42,120 --> 00:46:48,520 Můžete opravdu snadno kontrolovat na to, a to je to, co jsme udělali v našem Adios aplikaci. 669 00:46:48,520 --> 00:46:52,320 Další kategorie, Nebezpečný Sensitive Data Storage, 670 00:46:52,320 --> 00:46:55,670 je něco, kde vývojáři brát něco jako pin nebo číslo účtu 671 00:46:55,670 --> 00:46:58,530 nebo hesla a uložte je v jasné na zařízení. 672 00:46:58,530 --> 00:47:02,310 Ještě horší je, může se ukládat je v oblasti na telefonu 673 00:47:02,310 --> 00:47:06,820 který je celosvětově přístupný, stejně jako na SD kartu. 674 00:47:06,820 --> 00:47:11,320 Vidíte to častěji na Androidu, protože Android umožňuje na paměťovou kartu SD. 675 00:47:11,320 --> 00:47:13,200 IPhone zařízení ne. 676 00:47:13,200 --> 00:47:17,900 Ale my jsme ještě viděli to stalo v aplikaci Citigroup. 677 00:47:17,900 --> 00:47:25,450 Jejich on-line bankovní aplikace uložena čísla účtů nejistě, 678 00:47:25,450 --> 00:47:28,120 právě jasné, takže pokud jste ztratili zařízení, 679 00:47:28,120 --> 00:47:30,670 v podstatě jste ztratili svůj bankovní účet. 680 00:47:30,670 --> 00:47:36,000 To je důvod, proč jsem osobně nedělám bankovnictví na mém iPhone. 681 00:47:36,000 --> 00:47:43,710 Myslím, že teď je to příliš riskantní dělat tyto druhy činností. 682 00:47:43,710 --> 00:47:45,950 >> Skype udělal to samé. 683 00:47:45,950 --> 00:47:49,870 Skype, samozřejmě, má zůstatek na účtu, uživatelské jméno a heslo 684 00:47:49,870 --> 00:47:51,030 že přístup k této rovnováhy. 685 00:47:51,030 --> 00:48:00,080 Byli ukládání všechny tyto informace v jasné, na mobilním zařízení. 686 00:48:00,080 --> 00:48:05,760 Mám několik příkladů zde o vytváření souborů 687 00:48:05,760 --> 00:48:10,310 že nemají správné oprávnění nebo zápis na disk 688 00:48:10,310 --> 00:48:17,260 a nemají jakékoliv šifrování stalo za to. 689 00:48:17,260 --> 00:48:20,190 Tato další oblast, Nebezpečný Sensitive Přenos dat, 690 00:48:20,190 --> 00:48:24,450 Jsem se zmiňoval o to několikrát, a protože veřejné Wi-Fi připojení na internet 691 00:48:24,450 --> 00:48:27,770 to je něco, co Apps nezbytně potřebují k tomu, 692 00:48:27,770 --> 00:48:31,250 a to je asi to, co vidíme pokazit nejvíce. 693 00:48:31,250 --> 00:48:34,920 Řekl bych, opravdu, myslím, že mám aktuální data, 694 00:48:34,920 --> 00:48:38,120 ale je to blízko na polovinu mobilních aplikací 695 00:48:38,120 --> 00:48:41,780 šroub se dělá SSL. 696 00:48:41,780 --> 00:48:43,910 Oni prostě nemají správně používat rozhraní API. 697 00:48:43,910 --> 00:48:47,970 Myslím, že všechno, co musíš udělat, je řídit se pokyny a používat rozhraní API, 698 00:48:47,970 --> 00:48:54,720 ale oni se věci, jako je nekontroluje, zda je neplatný certifikát na druhém konci, 699 00:48:54,720 --> 00:49:02,120 ne zkontrolujte, zda je druhý konec se snaží udělat protokol downgrade útoku. 700 00:49:02,120 --> 00:49:07,200 >> Vývojáři, chtějí, aby si jejich zaškrtávací políčko, hned? 701 00:49:07,200 --> 00:49:11,910 Jejich požadavek je použít k prodeji. Už používal toto k prodeji. 702 00:49:11,910 --> 00:49:14,800 Tento požadavek je nepoužívat to bezpečně prodat, 703 00:49:14,800 --> 00:49:19,680 a tak to je důvod, proč všechny aplikace, které používají protokol SSL pro zabezpečení dat 704 00:49:19,680 --> 00:49:23,470 jak je to se přenáší mimo zařízení skutečně musí být kontrolovány 705 00:49:23,470 --> 00:49:28,950 Ujistěte se, že byl správně implementován. 706 00:49:28,950 --> 00:49:32,850 A tady mám několik příkladů, kde můžete vidět aplikace 707 00:49:32,850 --> 00:49:37,400 mohou být pomocí protokolu HTTP místo HTTPS. 708 00:49:37,400 --> 00:49:40,510 V některých případech aplikace spadne zpět do HTTP 709 00:49:40,510 --> 00:49:44,250 pokud HTTPS nefunguje. 710 00:49:44,250 --> 00:49:49,070 Mám další hovor tady na Androidu, kde jsem vypnutou kontrolou certifikátu, 711 00:49:49,070 --> 00:49:51,700 takže se může stát, útok man-in-the-middle. 712 00:49:51,700 --> 00:49:56,370 Budou přijímány neplatný certifikát. 713 00:49:56,370 --> 00:50:01,920 Jedná se o všechny případy, kdy útočníci se bude moci dostat na 714 00:50:01,920 --> 00:50:07,150 stejné Wi-Fi připojení jako uživatel a přístup všech dat 715 00:50:07,150 --> 00:50:11,650 který je odesílán přes internet. 716 00:50:11,650 --> 00:50:15,970 >> A konečně poslední kategorie I zde je napevno heslo a klíče. 717 00:50:15,970 --> 00:50:21,470 Ve skutečnosti jsme vidět mnoho vývojářů používat stejné kódování styl 718 00:50:21,470 --> 00:50:25,900 že oni dělali, když stavěli web serverových aplikací, 719 00:50:25,900 --> 00:50:29,700 takže stavíte Java aplikační server, a oni kódujete klíč. 720 00:50:29,700 --> 00:50:31,940 No, když stavíte serverovou aplikaci, jo, 721 00:50:31,940 --> 00:50:34,240 kódujete klíč není dobrý nápad. 722 00:50:34,240 --> 00:50:36,290 To je obtížné změnit. 723 00:50:36,290 --> 00:50:40,700 Ale není to tak špatné, na straně serveru, protože kdo má přístup na straně serveru? 724 00:50:40,700 --> 00:50:43,140 Pouze správci. 725 00:50:43,140 --> 00:50:48,100 Ale pokud budete mít stejný kód a můžete ji vylije na mobilní aplikace 726 00:50:48,100 --> 00:50:52,550 Nyní každý, kdo má, že mobilní aplikace má přístup k tomuto hardcoded klíč, 727 00:50:52,550 --> 00:50:56,380 a my jsme vlastně vidět mnohokrát, a mám nějaké statistiky 728 00:50:56,380 --> 00:51:00,920 na tom, jak často vidíme to stalo. 729 00:51:00,920 --> 00:51:04,940 Ve skutečnosti to bylo v příkladu kódu, který MasterCard zveřejněného 730 00:51:04,940 --> 00:51:06,850 o tom, jak využít jejich služeb. 731 00:51:06,850 --> 00:51:11,860 Příklad kódu ukazuje, jak byste prostě vzít heslo 732 00:51:11,860 --> 00:51:14,850 a vložte jej do hardcoded řetězce tam, 733 00:51:14,850 --> 00:51:19,380 a my víme, jak vývojáři rádi zkopírovat a vložit kód, který umístíte 734 00:51:19,380 --> 00:51:22,360 když se snažíte něco udělat, tak si zkopírujte a vložte fragment kódu 735 00:51:22,360 --> 00:51:28,450 že dal jako příklad kódu, a máte nejistý aplikace. 736 00:51:28,450 --> 00:51:31,490 >> A tady máme pár příkladů. 737 00:51:31,490 --> 00:51:35,840 První z nich je ta, kterou jsme vidět hodně, kde se napevno 738 00:51:35,840 --> 00:51:40,510 dat přímo do adresy URL, která se dostane poslal. 739 00:51:40,510 --> 00:51:45,120 Někdy vidíme řetězec password = heslo. 740 00:51:45,120 --> 00:51:49,060 To je docela snadné odhalit, nebo řetězec heslo na BlackBerry a Android. 741 00:51:49,060 --> 00:51:53,680 Je to vlastně docela snadné zkontrolovat, protože téměř vždy 742 00:51:53,680 --> 00:51:57,030 jména developer proměnných, které se drží hesla 743 00:51:57,030 --> 00:52:02,290 nějaká změna hesla. 744 00:52:02,290 --> 00:52:05,200 Zmínil jsem se, že budeme dělat statické analýzy na Veracode, 745 00:52:05,200 --> 00:52:11,790 takže jsme analyzovali několik set aplikací Android a iOS. 746 00:52:11,790 --> 00:52:15,160 Vytvořili jsme veškeré modely z nich, a jsme schopni je kontrolovat 747 00:52:15,160 --> 00:52:19,280 pro různé zranitelnosti, zejména zranitelnost jsem mluvil, 748 00:52:19,280 --> 00:52:21,050 a mám některé údaje zde. 749 00:52:21,050 --> 00:52:24,320 68,5% z Android aplikací jsme se podívali na 750 00:52:24,320 --> 00:52:28,590 porušil kryptografický kód, 751 00:52:28,590 --> 00:52:33,240 které pro nás, nemůžeme zjistit, zda jste se svou vlastní šifrovací rutiny, 752 00:52:33,240 --> 00:52:38,980 ne, že je to dobrý nápad, ale je to vlastně s použitím publikovaných rozhraní API 753 00:52:38,980 --> 00:52:42,530 které jsou na platformě, ale dělat je takovým způsobem, 754 00:52:42,530 --> 00:52:46,680 že crypto by být zranitelný, 68.5. 755 00:52:46,680 --> 00:52:49,870 A to je pro lidi, kteří jsou nám zašlete své žádosti ve skutečnosti, protože 756 00:52:49,870 --> 00:52:53,730 si myslí, že je to dobrý nápad udělat testování zabezpečení. 757 00:52:53,730 --> 00:52:56,960 Jedná se již lidé, kteří jsou pravděpodobně bezpečně myšlení, 758 00:52:56,960 --> 00:52:59,540 takže je to asi ještě horší. 759 00:52:59,540 --> 00:53:02,690 >> Nemluvil jsem o linky injekčního podávání ovládání. 760 00:53:02,690 --> 00:53:07,640 Je to něco, co zkontrolovat, ale to není tak riskantní záležitost. 761 00:53:07,640 --> 00:53:15,390 Úniku informací, to je místo, kde se citlivá data odesílána mimo zařízení. 762 00:53:15,390 --> 00:53:19,270 Zjistili jsme, že v 40% žádostí. 763 00:53:19,270 --> 00:53:23,540 Čas a stát, to jsou otázky, závod typu stav, obvykle dost těžko využít, 764 00:53:23,540 --> 00:53:26,170 tak jsem se o tom mluvit, ale my jsme se na to díval. 765 00:53:26,170 --> 00:53:28,750 23% mělo problémy s SQL injection. 766 00:53:28,750 --> 00:53:32,020 Mnoho lidí neví, že mnoho aplikací 767 00:53:32,020 --> 00:53:35,880 použít malý malý SQL databáze na svém zadním konci pro ukládání dat. 768 00:53:35,880 --> 00:53:40,430 No, v případě, že údaje, které jste chytil přes síť 769 00:53:40,430 --> 00:53:43,800 má SQL injection útok řetězce v něm 770 00:53:43,800 --> 00:53:45,970 někdo může ohrozit zařízení přes to, 771 00:53:45,970 --> 00:53:49,800 a tak myslím, že jsme si asi 40% webových aplikací mají tento problém, 772 00:53:49,800 --> 00:53:52,840 , což je velký problém epidemie. 773 00:53:52,840 --> 00:53:55,740 Najdeme to 23% času v mobilních aplikacích 774 00:53:55,740 --> 00:54:02,030 a to pravděpodobně proto, že mnoho dalších webových aplikací pomocí SQL, než mobilní telefony. 775 00:54:02,030 --> 00:54:05,580 >> A pak jsme se ještě podívat na nějaké cross-site scripting, problémy autorizace, 776 00:54:05,580 --> 00:54:09,400 a pak pověření pro správu, který je místo, kde máte hardcoded heslo. 777 00:54:09,400 --> 00:54:14,540 V 5% žádostí vidíme, že. 778 00:54:14,540 --> 00:54:17,970 A pak máme nějaké údaje o iOS. 779 00:54:17,970 --> 00:54:20,180 81% mělo problémy zpracování chyb. 780 00:54:20,180 --> 00:54:23,130 To je větší problém kvality kódu, 781 00:54:23,130 --> 00:54:28,010 ale 67% mělo kryptografické problémy, takže není tak špatné, jak Android. 782 00:54:28,010 --> 00:54:32,440 Možná, že API je trochu jednodušší, že příklad kódy trochu lepší na iOS. 783 00:54:32,440 --> 00:54:35,420 Ale stále velmi vysoké procento. 784 00:54:35,420 --> 00:54:39,040 Měli jsme 54% se úniku informací, 785 00:54:39,040 --> 00:54:42,080 asi 30% s chybami správy vyrovnávací paměti. 786 00:54:42,080 --> 00:54:45,930 To je míst, kde by mohly být problém poškození paměti. 787 00:54:45,930 --> 00:54:50,350 Ukazuje se, že to není tak velký problém pro využití 788 00:54:50,350 --> 00:54:56,450 na iOS, protože celý kód musí být podepsána, 789 00:54:56,450 --> 00:55:02,210 takže je to těžké pro útočníkovi spustit libovolný kód na iOS. 790 00:55:02,210 --> 00:55:07,880 Kvalita kódu, procházení adresářů, ale pak vedení zde na 14,6% pověření, 791 00:55:07,880 --> 00:55:09,250 tak horší, než na Android. 792 00:55:09,250 --> 00:55:13,240 Máme lidé, kteří nejsou správné zpracování hesla. 793 00:55:13,240 --> 00:55:15,790 A pak numerických chyb a buffer overflow, 794 00:55:15,790 --> 00:55:22,680 ty jsou více bude kvalitní Kód problémy na iOS. 795 00:55:22,680 --> 00:55:26,110 >> Tak to bylo pro mé prezentaci. Nevím, jestli jsme mimo čas, nebo ne. 796 00:55:26,110 --> 00:55:29,540 Já nevím, jestli tam je nějaké otázky. 797 00:55:29,540 --> 00:55:33,220 [Muž] Rychlý otázku kolem fragmentace a Android Market. 798 00:55:33,220 --> 00:55:36,240 Apple alespoň vlastní záplatování. 799 00:55:36,240 --> 00:55:40,780 Dělají dobrou práci dostat ho tam, zatímco méně, takže v Android prostoru. 800 00:55:40,780 --> 00:55:44,280 Málem jsi třeba útěk z vězení váš telefon stále aktuální 801 00:55:44,280 --> 00:55:46,660 s aktuální verzí Androidu. 802 00:55:46,660 --> 00:55:50,960 Jo, to je obrovský problém, a tak, pokud si myslíte, že o- 803 00:55:50,960 --> 00:55:52,280 [Muž] Proč nemůžeš to opakovat? 804 00:55:52,280 --> 00:55:55,610 >> Oh, jo, takže otázka je to, co o fragmentaci 805 00:55:55,610 --> 00:56:00,410 operačního systému na platformě Android? 806 00:56:00,410 --> 00:56:05,890 Jak to, že vliv na rizikovost těchto zařízení? 807 00:56:05,890 --> 00:56:09,700 A ve skutečnosti je obrovský problém, protože to, co se stane, je 808 00:56:09,700 --> 00:56:15,110 starší zařízení, když někdo přijde s jailbreak pro dané zařízení, 809 00:56:15,110 --> 00:56:19,960 v podstatě to je zvýšení úrovně oprávnění, a dokud nebude operační systém je aktualizován 810 00:56:19,960 --> 00:56:25,350 jakýkoliv malware pak můžete použít toto slabé místo zabezpečení, aby zcela ohrozit zařízení, 811 00:56:25,350 --> 00:56:30,200 a to, co vidíme na Android je, aby si nový operační systém 812 00:56:30,200 --> 00:56:34,690 Google má dát z operačního systému, a pak se na výrobce hardwaru 813 00:56:34,690 --> 00:56:39,390 musí ji přizpůsobit, a pak je dopravce ji upravit a doručit ji. 814 00:56:39,390 --> 00:56:43,070 Máte v podstatě tři pohyblivé zde dílů, 815 00:56:43,070 --> 00:56:47,210 a to otáčením na to, že dopravci nezajímá, 816 00:56:47,210 --> 00:56:50,400 a výrobci hardwaru nezajímá, a Google není jejich popichování dost 817 00:56:50,400 --> 00:56:54,430 něco udělat, takže v podstatě více než polovina zařízení tam, 818 00:56:54,430 --> 00:57:00,590 mají operační systémy, které mají tyto výsady eskalace zranitelnosti v nich, 819 00:57:00,590 --> 00:57:08,440 a tak pokud máte malware ve vašem zařízení se systémem Android je to mnohem větší problém. 820 00:57:08,440 --> 00:57:10,350 >> Dobře, děkuji vám. 821 00:57:10,350 --> 00:57:12,310 [Potlesk] 822 00:57:12,310 --> 00:57:14,310 [CS50.TV]