1 00:00:00,000 --> 00:00:02,610 >> [Семинар] [Защитаващият Зад устройството: 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 [Това е CS50.] [CS50.TV] 4 00:00:07,830 --> 00:00:10,360 >> Добър ден. Моето име е Крис Wysopal. 5 00:00:10,360 --> 00:00:13,360 Аз съм главен технически директор и съосновател на Veracode. 6 00:00:13,360 --> 00:00:15,880 Veracode е компания за сигурността на приложенията. 7 00:00:15,880 --> 00:00:18,230 Ние тестваме всички видове различни приложения, 8 00:00:18,230 --> 00:00:25,060 и това, което аз отивам да се говори за сигурност днес е мобилно приложение. 9 00:00:25,060 --> 00:00:28,630 Моето образование е, че сме били прави изследвания на сигурността 10 00:00:28,630 --> 00:00:31,970 за много дълго време, вероятно за толкова дълго, колкото и всички останали. 11 00:00:31,970 --> 00:00:35,000 Аз започнах в средата на 90-те години, 12 00:00:35,000 --> 00:00:37,370 и това беше едно време, което беше доста интересно, защото 13 00:00:37,370 --> 00:00:39,220 имахме промяна на парадигмата в средата на 90-те години. 14 00:00:39,220 --> 00:00:43,520 Всички компютър внезапно всеки е закачен до интернет, 15 00:00:43,520 --> 00:00:46,550 и след това имахме наченки на уеб приложения, 16 00:00:46,550 --> 00:00:49,330 и това е, което се фокусира върху много след това. 17 00:00:49,330 --> 00:00:51,160 Това е интересно. 18 00:00:51,160 --> 00:00:53,930 Сега имаме друга промяна на парадигмата се случва с компютри, 19 00:00:53,930 --> 00:00:58,710 която е преминаването към мобилни приложения. 20 00:00:58,710 --> 00:01:03,680 >> Аз чувствам, че е нещо подобно време след това беше в края на 90-те години 21 00:01:03,680 --> 00:01:07,650 когато бяхме разследва уеб приложения и намиране на дефекти като 22 00:01:07,650 --> 00:01:11,800 грешки за управление на сесията и SQL инжекция 23 00:01:11,800 --> 00:01:14,940 което наистина не е съществувал преди, и изведнъж те бяха навсякъде 24 00:01:14,940 --> 00:01:19,360 в уеб приложения, и сега много от времето прекарвам 25 00:01:19,360 --> 00:01:27,950 търси в мобилни приложения и гледаше какво става там, в дивата природа. 26 00:01:27,950 --> 00:01:32,060 Мобилните приложения са наистина ще бъде доминиращ изчислителна платформа, 27 00:01:32,060 --> 00:01:35,060 така че ние наистина трябва да прекарват много време, ако сте в охранителната индустрия 28 00:01:35,060 --> 00:01:39,280 с акцент върху уеб приложения. 29 00:01:39,280 --> 00:01:43,420 Налице са 29 млрд. мобилни приложения изтеглени през 2011 година. 30 00:01:43,420 --> 00:01:47,920 Това е да се прогнозира, 76000000000 приложения до 2014. 31 00:01:47,920 --> 00:01:54,040 Има 686 милиона устройства, които ще бъдат закупени тази година, 32 00:01:54,040 --> 00:01:57,060 така че това е мястото, където хората отиват да се прави 33 00:01:57,060 --> 00:01:59,600  по-голямата част от техния клиент изчислителни върви напред. 34 00:01:59,600 --> 00:02:04,220 >> Аз говорех за вицепрезидент на Fidelity Investments 35 00:02:04,220 --> 00:02:08,780 преди няколко месеца, и той каза, че те просто видях повече трафик 36 00:02:08,780 --> 00:02:12,610 прави финансови транзакции от базата на клиентите си 37 00:02:12,610 --> 00:02:16,230 на тяхното мобилно приложение, отколкото на техния уебсайт, 38 00:02:16,230 --> 00:02:20,610 така широко се използват за уеб в миналото е бил 39 00:02:20,610 --> 00:02:23,800 проверка на вашите борсови котировки, управлението на вашия портфейл, 40 00:02:23,800 --> 00:02:28,060 и ние всъщност виждаме, че през 2012 г. превключване 41 00:02:28,060 --> 00:02:30,960 да бъде по-доминиращ на подвижната платформа. 42 00:02:30,960 --> 00:02:34,530 Разбира се, ако има ще бъде всяка престъпна дейност, 43 00:02:34,530 --> 00:02:38,900 всички злонамерен дейност, тя ще започне да се фокусира върху мобилна платформа 44 00:02:38,900 --> 00:02:44,210 с течение на времето, тъй като хората преминат към това. 45 00:02:44,210 --> 00:02:48,320 Ако се вгледате в мобилна платформа, 46 00:02:48,320 --> 00:02:54,380 да погледнем на рисковете от платформата, че е полезно да го съборят в различните слоеве, 47 00:02:54,380 --> 00:02:59,010 точно като теб ще го направя на настолен компютър, 48 00:02:59,010 --> 00:03:02,860 и си мислиш за различните слоеве, софтуер, операционна система, 49 00:03:02,860 --> 00:03:07,730 мрежовия слой, хардуер слой, и разбира се, има уязвимости на всички тези слоеве. 50 00:03:07,730 --> 00:03:10,510 >> Същото нещо се случва на мобилния. 51 00:03:10,510 --> 00:03:14,880 Но мобилни, изглежда, че някои от тези слоеве са по-зле. 52 00:03:14,880 --> 00:03:19,840 От една страна, на мрежовия слой е по-проблематична на мобилния 53 00:03:19,840 --> 00:03:25,650 защото много хора имат в своя офис или у дома 54 00:03:25,650 --> 00:03:30,780 кабелни връзки или имат сигурни Wi-Fi връзки, 55 00:03:30,780 --> 00:03:36,530 и с много мобилни устройства, вие очевидно сте извън дома 56 00:03:36,530 --> 00:03:40,520 или извън офиса много, а ако използвате Wi-Fi има 57 00:03:40,520 --> 00:03:42,820 може да се използва един несигурен Wi-Fi връзка, 58 00:03:42,820 --> 00:03:45,570 нещо, което е публична Wi-Fi връзка, 59 00:03:45,570 --> 00:03:48,840 Така че, когато ние мислим за мобилни приложения, ние трябва да вземем под внимание 60 00:03:48,840 --> 00:03:53,770 че мрежовата среда е по-рисковано за тези приложения 61 00:03:53,770 --> 00:03:57,640 , когато се използва Wi-Fi. 62 00:03:57,640 --> 00:04:02,410 И когато стигнем до повече от мобилните рисковете за кандидатстване 63 00:04:02,410 --> 00:04:04,910 ще разберете защо това е по-важно. 64 00:04:04,910 --> 00:04:09,710 Съществуват рискове на ниво хардуер за мобилни устройства. 65 00:04:09,710 --> 00:04:11,670 Това е област на текущите научни изследвания. 66 00:04:11,670 --> 00:04:15,910 Хората наричат ​​тези широколентови атаки или бейсбенд атаки 67 00:04:15,910 --> 00:04:21,870 къде атакува фърмуер, който слуша по радиото. 68 00:04:21,870 --> 00:04:25,430 >> Това са наистина страшни атаки, защото 69 00:04:25,430 --> 00:04:27,280 потребителят не трябва да правиш нищо. 70 00:04:27,280 --> 00:04:30,760 Можете да се удари много устройства в RF обхват 71 00:04:30,760 --> 00:04:36,690 наведнъж, и тя изглежда като всеки път, когато това изследване мехурчета 72 00:04:36,690 --> 00:04:40,750 тя бързо получава класифицирана където 73 00:04:40,750 --> 00:04:46,600 хора се спуснат в около и казват: "Ето, ни разказват за това, и моля да спрат да говорят за това." 74 00:04:46,600 --> 00:04:49,460 Има някои изследвания се случва в областта на широколентовия достъп, 75 00:04:49,460 --> 00:04:51,980 но тя изглежда да е много тихо затишие. 76 00:04:51,980 --> 00:04:56,910 Мисля, че това е повече от един тип нация състояние на научните изследвания, което се случва. 77 00:04:56,910 --> 00:05:02,140 На площ от активна изследователска дейност, обаче, е операционна система слой, 78 00:05:02,140 --> 00:05:08,910 и отново, това е различно, отколкото в света на настолните компютри 79 00:05:08,910 --> 00:05:14,840 защото в мобилното пространство имате тези екипи от хора, наречени Jailbreakers, 80 00:05:14,840 --> 00:05:18,670 и Jailbreakers са различни от обикновените изследователи уязвимост. 81 00:05:18,670 --> 00:05:21,970 Те се опитват да намерят уязвимости в операционната система, 82 00:05:21,970 --> 00:05:27,000 но причината те се опитват да намерят слаби места не е да 83 00:05:27,000 --> 00:05:31,810 пробие в машина на някой друг и да го компрометира. 84 00:05:31,810 --> 00:05:34,280 Това е да пробие в собствената си компютър. 85 00:05:34,280 --> 00:05:38,820 >> Те искат да пробие в собствения си мобилен, модифицира операционната система собствената си мобилен е 86 00:05:38,820 --> 00:05:41,050 така че те могат да работят приложенията, по техен избор 87 00:05:41,050 --> 00:05:44,510 и да промените нещата с пълни административни права, 88 00:05:44,510 --> 00:05:49,050 и те не искат да кажа на продавача за това. 89 00:05:49,050 --> 00:05:52,960 Те не си като изследовател по сигурността, която е бяла шапка изследовател сигурност 90 00:05:52,960 --> 00:05:56,600 което ще направи отговорен разкриване и кажи на продавача за това. 91 00:05:56,600 --> 00:06:01,270 Те искат да правят това изследване, а те всъщност искат да я публикувам 92 00:06:01,270 --> 00:06:06,400 в експлойт или руткит или код, Jailbreak, 93 00:06:06,400 --> 00:06:10,010 и те искат да го направят стратегически, като веднага след 94 00:06:10,010 --> 00:06:13,570 продавачът кораби на новата операционна система. 95 00:06:13,570 --> 00:06:16,350 Имате тази състезателна отношения 96 00:06:16,350 --> 00:06:19,000 с уязвимости OS ниво на мобилния, 97 00:06:19,000 --> 00:06:23,150 което мисля, че е доста интересна, и едно място, ние го виждаме 98 00:06:23,150 --> 00:06:29,210 е то го прави така, че има добра публикувани използват код там 99 00:06:29,210 --> 00:06:31,750 за уязвимости на ниво ядро, 100 00:06:31,750 --> 00:06:35,040 и видяхме тези, които действително се използват от хакерите. 101 00:06:35,040 --> 00:06:38,450 Това е малко по-различно от света на персоналните компютри. 102 00:06:38,450 --> 00:06:42,530 И след това на крайния слой е най-горния слой, приложния слой. 103 00:06:42,530 --> 00:06:45,250 Това е, което аз отивам да говоря днес. 104 00:06:45,250 --> 00:06:48,970 >> Другите слоеве съществуват и други слоеве играят в играта, 105 00:06:48,970 --> 00:06:53,310 но аз съм най-вече ще говорим за това, което се случва в приложния слой 106 00:06:53,310 --> 00:06:55,560 където код работи в пясъчника. 107 00:06:55,560 --> 00:06:58,670 Тя не разполага с административни привилегии. 108 00:06:58,670 --> 00:07:02,170 Тя трябва да използва API-тата на устройството, 109 00:07:02,170 --> 00:07:06,970 но все пак, много от зловреден дейност и много риск може да се случи в този слой 110 00:07:06,970 --> 00:07:09,220 защото това е слой, където цялата информация е. 111 00:07:09,220 --> 00:07:12,330 Apps могат да имат достъп до цялата информация за устройството 112 00:07:12,330 --> 00:07:15,390 ако те имат правилните разрешения, 113 00:07:15,390 --> 00:07:17,540 и те могат да имат достъп до различни сензорите на устройството, 114 00:07:17,540 --> 00:07:23,950 GPS сензор, микрофон, камера, това, което имате. 115 00:07:23,950 --> 00:07:27,380 Въпреки, че ние сме само говори за най-приложния слой 116 00:07:27,380 --> 00:07:33,700 ние имаме много на риск там. 117 00:07:33,700 --> 00:07:38,450 Другото нещо, което е различно за мобилна среда 118 00:07:38,450 --> 00:07:45,060 е всички играчи на операционната система, било то BlackBerry или Android 119 00:07:45,060 --> 00:07:53,410 или IOS или Windows Mobile, всички те имат възможност за фина модел разрешение, 120 00:07:53,410 --> 00:07:56,990 и това е един от начините, по които те са вградени в операционната система 121 00:07:56,990 --> 00:08:01,230 идеята, че това не е толкова рисковано, колкото си мислиш. 122 00:08:01,230 --> 00:08:04,550 Въпреки, че имате всичките си контакти там, цялата си лична информация, 123 00:08:04,550 --> 00:08:09,080 имате вашите снимки, имате си местоположение там, 124 00:08:09,080 --> 00:08:14,820 сте съхраняване банковата си щифт за автоматично влизане там, че е безопасно, защото 125 00:08:14,820 --> 00:08:19,430 приложения трябва да имат определени права, за да получите в определени части 126 00:08:19,430 --> 00:08:25,080 на информация за устройството, и потребителят трябва да бъде представен с 127 00:08:25,080 --> 00:08:29,230 тези разрешения и казват нищо. 128 00:08:29,230 --> 00:08:32,590 >> Проблемът с него е, потребителят винаги казва нищо. 129 00:08:32,590 --> 00:08:35,240 Като човек, сигурността, знам, че може да напомни на потребителя, 130 00:08:35,240 --> 00:08:40,100 кажа нещо наистина лошо ще се случи, искаш това да се случи? 131 00:08:40,100 --> 00:08:44,680 И ако те са в треска, или има нещо, което наистина примамливо от другата страна на това, 132 00:08:44,680 --> 00:08:47,760 като игра ще бъде инсталиран, че те чаках, 133 00:08:47,760 --> 00:08:50,860 те ще кликнете наред. 134 00:08:50,860 --> 00:08:56,630 Ето защо аз казвам на моя слайд тук само за да ме хвърлят на птиците при прасета, 135 00:08:56,630 --> 00:09:03,150 и можете да видите на слайда тук има примери за BlackBerry разрешение кутия. 136 00:09:03,150 --> 00:09:05,990 Той казва: "Моля, задайте разрешенията за кандидатстване BlackBerry Travel 137 00:09:05,990 --> 00:09:09,720 след като щракнете върху бутона по-долу, "и в общи линии на потребителя е просто ще кажа, 138 00:09:09,720 --> 00:09:12,240 задаване на разрешения и спаси. 139 00:09:12,240 --> 00:09:18,010 Ето един бърз Android, където тя показва неща, 140 00:09:18,010 --> 00:09:20,260 и тя всъщност поставя нещо, което изглежда почти като предупреждение. 141 00:09:20,260 --> 00:09:25,090 Тя има един вид добив знак там казват мрежова комуникация, телефонно обаждане 142 00:09:25,090 --> 00:09:28,120 но потребителят ще кликнете инсталирате, нали? 143 00:09:28,120 --> 00:09:32,940 И тогава един Apple е напълно безвреден. 144 00:09:32,940 --> 00:09:34,300 Тя не дава каквито и да било предупреждение. 145 00:09:34,300 --> 00:09:37,380 Това е просто Apple би искал да използва текущото ви местоположение. 146 00:09:37,380 --> 00:09:39,670 Разбира се, че започваш да кликнете наред. 147 00:09:39,670 --> 00:09:42,260 >> Налице е този фин модел разрешение, 148 00:09:42,260 --> 00:09:45,890 и приложения трябва да имат явна файл, в който те декларират 149 00:09:45,890 --> 00:09:49,410 разрешенията, които са им необходими, и че ще се показва на потребителя, 150 00:09:49,410 --> 00:09:53,480 и потребителят ще трябва да кажа, че предоставят тези разрешения. 151 00:09:53,480 --> 00:09:55,080 Но нека бъдем честни. 152 00:09:55,080 --> 00:09:58,400 Потребителите просто ще кажа, винаги добре. 153 00:09:58,400 --> 00:10:04,460 Нека хвърлим един бърз поглед на разрешенията, че тези приложения са подали заявление за 154 00:10:04,460 --> 00:10:06,850 и някои от разрешенията, които са там. 155 00:10:06,850 --> 00:10:09,950 Тази компания Praetorian направихме проучване през миналата година 156 00:10:09,950 --> 00:10:14,170 от 53 000 приложения, анализирани в Android Market и трети страни, пазарите, 157 00:10:14,170 --> 00:10:16,770 така че всичко това е Android. 158 00:10:16,770 --> 00:10:19,670 И средната ап поиска три разрешения. 159 00:10:19,670 --> 00:10:23,370 Някои приложения поискани 117 разрешения, 160 00:10:23,370 --> 00:10:27,480 така че явно това са много фина зърнеста или твърде сложна за потребителя да разбере 161 00:10:27,480 --> 00:10:31,600 ако те са представени с този апартамент, който се нуждае от тези 117 разрешения. 162 00:10:31,600 --> 00:10:37,270 Това е като на лицензионното споразумение с краен потребител, който е дълъг 45 страници. 163 00:10:37,270 --> 00:10:40,240 Може би скоро те ще имат възможност, когато това е като 164 00:10:40,240 --> 00:10:43,100 отпечатване на разрешенията и да ми изпратите имейл. 165 00:10:43,100 --> 00:10:45,480 >> Но ако се вгледате в някои от най-интересните разрешения 166 00:10:45,480 --> 00:10:50,840 24% от приложения, които са изтеглени от 53000 167 00:10:50,840 --> 00:10:57,230 поисканата информация от GPS устройството. 168 00:10:57,230 --> 00:10:59,810 8% четат контактите. 169 00:10:59,810 --> 00:11:03,770 4% изпраща SMS, а 3% получил SMS. 170 00:11:03,770 --> 00:11:07,730 2% аудио сигнал, записан. 171 00:11:07,730 --> 00:11:11,210 1% обработени изходящи повиквания. 172 00:11:11,210 --> 00:11:13,140 Не знам. 173 00:11:13,140 --> 00:11:17,520 Не мисля, че 4% от приложенията в магазина App наистина трябва да изпратите SMS текстови съобщения, 174 00:11:17,520 --> 00:11:21,410 така че аз мисля, че това е намек, че нещо нередно се случва. 175 00:11:21,410 --> 00:11:24,350 8% от приложенията трябва да се чете вашия списък с контакти. 176 00:11:24,350 --> 00:11:26,510 Това вероятно не е необходимо. 177 00:11:26,510 --> 00:11:30,990 Една от другите интересни неща за разрешения е 178 00:11:30,990 --> 00:11:36,740 Ако свържете в споделени библиотеки в молбата си 179 00:11:36,740 --> 00:11:39,780 тези, които наследяват разрешенията на заявлението, 180 00:11:39,780 --> 00:11:46,570 така че, ако приложението ви се нуждае списъка с контакти или се нуждае от местоположението GPS да функционира 181 00:11:46,570 --> 00:11:49,940 и в който се свържете с рекламна библиотека, например, 182 00:11:49,940 --> 00:11:53,170 че рекламата библиотека също ще бъде в състояние за достъп до контактите 183 00:11:53,170 --> 00:11:57,630 и също така да бъде в състояние за достъп до местоположението GPS, 184 00:11:57,630 --> 00:12:01,990 и на разработчика на приложението, не знае нищо за кода, който се кандидатира в рекламната библиотеката. 185 00:12:01,990 --> 00:12:05,370 Те просто свързване, че в тъй като те искат да се реализират техните ап. 186 00:12:05,370 --> 00:12:09,820 >> Това е мястото, където и аз ще говоря за някои примери за това с 187 00:12:09,820 --> 00:12:13,930 приложение, наречено Pandora където разработчик заявление 188 00:12:13,930 --> 00:12:18,910 може несъзнателно да има изтичане на информация 189 00:12:18,910 --> 00:12:24,580 от своите потребители, защото на библиотеките като са свързани инча 190 00:12:24,580 --> 00:12:30,110 Проучване на пейзажа там, гледайки всички различни приложения 191 00:12:30,110 --> 00:12:34,310 , които са били докладвани в новините като злонамерени или правят потребителите нещо, което не са искали 192 00:12:34,310 --> 00:12:39,360 и след извършване на проверка на много приложения-правим много статичен двоичен анализ на мобилни приложения, 193 00:12:39,360 --> 00:12:42,010 така че ние сме ги инспектира и погледна кода себе си- 194 00:12:42,010 --> 00:12:49,640 стигнахме до това, което ние наричаме нашия топ 10 списък на рискови поведения в приложения. 195 00:12:49,640 --> 00:12:54,180 И това е разбит на две секции, зловреден код, 196 00:12:54,180 --> 00:12:57,600 така че това са лоши неща, че приложенията могат да се правят, че 197 00:12:57,600 --> 00:13:06,520 има вероятност да бъде нещо, което един злонамерен индивид 198 00:13:06,520 --> 00:13:10,060 е специално поставени в заявлението, но това е малко по-размита. 199 00:13:10,060 --> 00:13:13,300 Тя може да бъде нещо, което разработчик мисли е добре, 200 00:13:13,300 --> 00:13:16,350 но в крайна сметка се мисли като злонамерен от страна на потребителя. 201 00:13:16,350 --> 00:13:19,830 >> И след втората част е това, което ние наричаме кодиране уязвимости, 202 00:13:19,830 --> 00:13:24,600 и това са неща, където предприемачът основно се правят грешки 203 00:13:24,600 --> 00:13:27,200 или просто не може да разбере как да пише ап сигурно, 204 00:13:27,200 --> 00:13:30,260  и това е пускането на ползвателя на ап на риск. 205 00:13:30,260 --> 00:13:34,060 Отивам да мине през тях в подробности и да дава някои примери. 206 00:13:34,060 --> 00:13:39,620 За справка, аз исках да се поставят на OWASP мобилен топ 10 на списъка. 207 00:13:39,620 --> 00:13:43,590 Това са въпроси 10, че група на OWASP, 208 00:13:43,590 --> 00:13:48,900 Проектът на Open Web Application Security, те имат работна група 209 00:13:48,900 --> 00:13:50,620 работи върху мобилен топ 10 списък. 210 00:13:50,620 --> 00:13:54,600 Те имат един много известен в Мрежата топ 10 списък, които са в топ 10 211 00:13:54,600 --> 00:13:57,180 рискови неща, които могат да имат в уеб приложение. 212 00:13:57,180 --> 00:13:59,090 Те правят едно и също нещо за мобилни, 213 00:13:59,090 --> 00:14:01,750 и списъка им е малко по-различна от нашата. 214 00:14:01,750 --> 00:14:03,670 6 от 10 са едни и същи. 215 00:14:03,670 --> 00:14:06,020 Те имат четири, които са различни. 216 00:14:06,020 --> 00:14:10,550 Мисля, че те имат по-малко от един различен подход на 217 00:14:10,550 --> 00:14:14,490 на риска в областта на мобилните приложения, където много от техните проблеми 218 00:14:14,490 --> 00:14:20,490 са наистина как заявлението се съобщава на гърба в края на сървъра 219 00:14:20,490 --> 00:14:23,100 или това, което се случва на гърба в края на сървъра, 220 00:14:23,100 --> 00:14:29,220 не толкова много приложения, които имат рисково поведение, че са само обикновени приложения клиент. 221 00:14:29,220 --> 00:14:36,640 >> Тези в червено тук са разликите между списъците 2. 222 00:14:36,640 --> 00:14:40,740 И някои от моите изследвания екип е всъщност допринесоха за този проект, 223 00:14:40,740 --> 00:14:44,570 така че ще видим какво се случва с течение на времето, но мисля, че тук е храна за вкъщи 224 00:14:44,570 --> 00:14:47,550 ние наистина не знам какво топ 10 списъка е в мобилни приложения, защото 225 00:14:47,550 --> 00:14:50,510 те са наистина само около продължение на 2 или 3 години, 226 00:14:50,510 --> 00:14:57,750 и не е имало достатъчно време наистина да проучи операционните системи 227 00:14:57,750 --> 00:15:00,450 и това, което те са в състояние да, и не е имало достатъчно време 228 00:15:00,450 --> 00:15:06,870 за злонамерен общност, ако щете, да са прекарали достатъчно време 229 00:15:06,870 --> 00:15:12,910 се опитва да атакува потребители чрез мобилни приложения, така че аз очаквам тези списъци, за да се променят малко. 230 00:15:12,910 --> 00:15:18,720 Но за сега, това са най-добрите 10 неща, които да се тревожим. 231 00:15:18,720 --> 00:15:24,150 Може би се чудите на мобилния страна, където прави злонамерен мобилен код- 232 00:15:24,150 --> 00:15:28,880 как ги пуснем на устройството? 233 00:15:28,880 --> 00:15:35,210 North Carolina State има проект, наречен Genome Project на Mobile Malware 234 00:15:35,210 --> 00:15:39,520 където те се събират най-много мобилен зловреден софтуер, тъй като те може и да го анализира, 235 00:15:39,520 --> 00:15:45,270 и те са разбити векторите инжекционни че мобилният зловреден софтуер използва, 236 00:15:45,270 --> 00:15:51,490 и 86% използват техника, наречена препакетиране, 237 00:15:51,490 --> 00:15:54,160 и това е само за Android платформата 238 00:15:54,160 --> 00:15:56,720 наистина може да се направи това преопаковане. 239 00:15:56,720 --> 00:16:03,100 >> Причината е Android код е изграден с 240 00:16:03,100 --> 00:16:08,130 на Java байт код, наречен Dalvik, който е лесно decompilable. 241 00:16:08,130 --> 00:16:12,460 Какво лошо момче може да направите, е да 242 00:16:12,460 --> 00:16:16,590 вземат Android приложение, декомпилира него, 243 00:16:16,590 --> 00:16:20,120 поставете им зловреден код, компилирате него, 244 00:16:20,120 --> 00:16:28,070 и след това го сложи в магазина App, което претендира да бъде нова версия на тази заявка, 245 00:16:28,070 --> 00:16:30,330 или просто може би промяна на името на приложението. 246 00:16:30,330 --> 00:16:35,140 Ако това беше някаква игра, да промените името леко, 247 00:16:35,140 --> 00:16:42,860 и така това преопаковане е как 86% от мобилен зловреден софтуер получава разпределени. 248 00:16:42,860 --> 00:16:45,810 Има и друга техника, наречена актуализация, която е 249 00:16:45,810 --> 00:16:50,030 много подобен на преопаковане, но всъщност не поставяме зловреден код инча 250 00:16:50,030 --> 00:16:52,870 Това, което правя е да ви постави в малка механизъм актуализация. 251 00:16:52,870 --> 00:16:56,660 Можете декомпилира, ще ви постави в механизъм за актуализация, и ти го прекомпилирате, 252 00:16:56,660 --> 00:17:02,360 и след това, когато приложението работи, той дърпа надолу зловреден софтуер върху устройството. 253 00:17:02,360 --> 00:17:06,300 >> До момента по-голямата част са тези две техники. 254 00:17:06,300 --> 00:17:12,710 Там не е наистина много свалени DRIVE-засади или устройството, които се изтеглят на мобилни телефони, 255 00:17:12,710 --> 00:17:15,890 което би могло да бъде като фишинг атака. 256 00:17:15,890 --> 00:17:18,200 Хей, вижте това наистина готин сайт, 257 00:17:18,200 --> 00:17:21,020 или ще трябва да отидете на този уеб сайт и попълнете този формуляр 258 00:17:21,020 --> 00:17:24,420 да запазите продължава правиш нещо. 259 00:17:24,420 --> 00:17:26,230 Тези, които са фишинг атаки. 260 00:17:26,230 --> 00:17:28,160 Същото може да се случи на подвижната платформа, където те 261 00:17:28,160 --> 00:17:33,830 сочи към мобилно приложение, за да изтеглите, кажете "Здравейте, това е банка на Америка." 262 00:17:33,830 --> 00:17:36,070 "Ние виждаме, че използвате това приложение." 263 00:17:36,070 --> 00:17:38,540 "Трябва да изтеглите този друго приложение." 264 00:17:38,540 --> 00:17:41,170 Теоретично, че може да работи. 265 00:17:41,170 --> 00:17:48,610 Може би тя просто не се използва достатъчно, за да определи дали тя е успешна или не, 266 00:17:48,610 --> 00:17:51,680 но те открили, че се използва по-малко от 1% от времето на тази техника. 267 00:17:51,680 --> 00:17:56,130 По-голямата част от времето, което е наистина преопаковани код. 268 00:17:56,130 --> 00:17:58,710 >> Има и друга категория, наречена самостоятелен 269 00:17:58,710 --> 00:18:01,420 когато някой просто изгражда чисто ново заявление. 270 00:18:01,420 --> 00:18:04,020 Те изграждат приложение, което претендира да бъде нещо. 271 00:18:04,020 --> 00:18:07,360 Това не е препакетиране на нещо друго, и че има зловреден код. 272 00:18:07,360 --> 00:18:11,230 Това се използва 14% от времето. 273 00:18:11,230 --> 00:18:17,880 Сега аз искам да говоря за това, което е най-злонамерен код правиш? 274 00:18:17,880 --> 00:18:23,070 Един от първите зловреден софтуер там 275 00:18:23,070 --> 00:18:25,490 вие може да обмисли един шпионски софтуер. 276 00:18:25,490 --> 00:18:27,620 По същество това шпионира потребителя. 277 00:18:27,620 --> 00:18:30,470 Тя събира имейли, SMS съобщения. 278 00:18:30,470 --> 00:18:32,340 Тя се включва микрофона. 279 00:18:32,340 --> 00:18:37,330 Тя жъне книгата за контакт, и тя го праща на някой друг. 280 00:18:37,330 --> 00:18:40,870 Този тип шпионски софтуер съществува на компютъра, 281 00:18:40,870 --> 00:18:46,200 така че това прави перфектни смисъл за хората да се опитват да направят това на мобилните устройства. 282 00:18:46,200 --> 00:18:53,230 >> Един от първите примери за това е програма, наречена тайна SMS репликатор. 283 00:18:53,230 --> 00:18:56,250 Тя беше в Android Marketplace преди няколко години, 284 00:18:56,250 --> 00:18:59,960 и идеята беше, ако сте имали достъп до нечий Android телефон 285 00:18:59,960 --> 00:19:03,450 че искаш да шпионира, така че може би това е вашият съпруг 286 00:19:03,450 --> 00:19:07,600 или вашият значими други и искате да шпионира текстови съобщения си, 287 00:19:07,600 --> 00:19:11,200 можете да изтеглите това приложение и да го инсталирате и да го конфигурирате 288 00:19:11,200 --> 00:19:16,540 да изпратите SMS текстово съобщение до вас с копие 289 00:19:16,540 --> 00:19:21,710 на всеки SMS текстово съобщение, което имам. 290 00:19:21,710 --> 00:19:27,220 Това очевидно е в нарушение на условията за ползване на App Store, 291 00:19:27,220 --> 00:19:32,040 и това бе отстранен от Android Marketplace в рамките на 18 часа да е там, 292 00:19:32,040 --> 00:19:36,760 толкова много малък брой хора са изложени на риск заради това. 293 00:19:36,760 --> 00:19:42,510 Сега, мисля, че ако програмата се нарича нещо, може би малко по-малко провокативен 294 00:19:42,510 --> 00:19:48,690 като Secret SMS Replicator то вероятно щеше да работи много по-добре. 295 00:19:48,690 --> 00:19:52,870 Но това беше нещо очевидно. 296 00:19:52,870 --> 00:19:58,680 >> Едно от нещата, които можем да направим, за да се определи дали приложения имат това поведение, че ние не искаме 297 00:19:58,680 --> 00:20:01,410 е да се запознаят кода. 298 00:20:01,410 --> 00:20:06,250 Това всъщност е много лесно да се направи на Android, защото можем да декомпилира приложения. 299 00:20:06,250 --> 00:20:11,050 На IOS можете да използвате Disassembler като IDA Pro 300 00:20:11,050 --> 00:20:17,190 да погледнем какво АПИС приложението се обажда и какво прави. 301 00:20:17,190 --> 00:20:20,680 Писахме нашата собствена двоичен статичен анализатор за нашия код 302 00:20:20,680 --> 00:20:24,940 и ние правим това, и какво от това бихте могли да направите, е да може да се каже 303 00:20:24,940 --> 00:20:30,490 се устройството прави нищо, което е основно шпионира мен или ме проследяване? 304 00:20:30,490 --> 00:20:33,360 И аз имам няколко примера тук на iPhone. 305 00:20:33,360 --> 00:20:41,440 Този първи пример за това е как да получите достъп до UUID на телефона. 306 00:20:41,440 --> 00:20:47,060 Това всъщност е нещо, което Apple е просто забранена за нови приложения, 307 00:20:47,060 --> 00:20:52,540 но стари приложения, които може да са работещи на телефона ви все още могат да направят това, 308 00:20:52,540 --> 00:20:56,500 и така, че уникален идентификатор може да се използва за да следите 309 00:20:56,500 --> 00:21:00,440 в много различни приложения. 310 00:21:00,440 --> 00:21:07,180 >> На Android, имам тук един пример за получаване на място на устройството. 311 00:21:07,180 --> 00:21:10,310 Можете да видите, че ако това API повикване е там, че ап е проследяване, 312 00:21:10,310 --> 00:21:15,000 и можете да видите дали това е все чудесно местоположение или груби място. 313 00:21:15,000 --> 00:21:18,860 И след това на дъното тук, аз имам един пример за това как на BlackBerry 314 00:21:18,860 --> 00:21:25,130 приложение може да има достъп до имейл съобщения в пощенската си кутия. 315 00:21:25,130 --> 00:21:27,660 Те са от вида на неща, които могат да се запознаят, за да видите 316 00:21:27,660 --> 00:21:32,360 ако приложението се правят тези неща. 317 00:21:32,360 --> 00:21:38,320 Втората голяма категория от злонамерено поведение, и това е може би най-голямата категория сега, 318 00:21:38,320 --> 00:21:43,950 е неоторизирано набиране, неразрешено премия SMS текстови съобщения 319 00:21:43,950 --> 00:21:46,080 или неоторизирани плащания. 320 00:21:46,080 --> 00:21:48,930 Друго нещо, което е уникално за телефона 321 00:21:48,930 --> 00:21:52,700 се, че устройството е закачен към сметка на сметките, 322 00:21:52,700 --> 00:21:55,960 и тогава, когато дейностите се случват по телефона 323 00:21:55,960 --> 00:21:58,510 тя може да създаде такси. 324 00:21:58,510 --> 00:22:00,700 Можете да закупите неща по телефона, 325 00:22:00,700 --> 00:22:04,390 и когато изпращате премия SMS текстово съобщение, което всъщност дава пари 326 00:22:04,390 --> 00:22:11,590 на титуляра на сметката на телефонния номер, от друга страна. 327 00:22:11,590 --> 00:22:17,420 Те са създадени, за да получите борсови котировки или да получите своя дневен хороскоп или други неща, 328 00:22:17,420 --> 00:22:21,680 но те могат да бъдат създадени, за да поръчате продукт чрез изпращане на SMS текст. 329 00:22:21,680 --> 00:22:26,970 Хората дават пари на Червения кръст чрез изпращане на текстово съобщение. 330 00:22:26,970 --> 00:22:30,650 Можете да дам $ 10 за начин. 331 00:22:30,650 --> 00:22:34,190 >> Нападателите, това, което са направили, е учредено от тях, 332 00:22:34,190 --> 00:22:38,750 сметки в чужди страни, и те вгради в зловреден софтуер 333 00:22:38,750 --> 00:22:42,840 че телефонът ще изпрати премия SMS текстово съобщение, 334 00:22:42,840 --> 00:22:47,700 се каже, по няколко пъти на ден, а в края на месеца, ти осъзнаваш, че си прекарал 335 00:22:47,700 --> 00:22:52,090 десетки или може би дори стотици долари, и те си тръгне с парите. 336 00:22:52,090 --> 00:22:57,280 Това стана толкова лошо, че това е най-първото нещо, че Android 337 00:22:57,280 --> 00:23:00,760 Marketplace или Google място-това е Android Marketplace в момента, 338 00:23:00,760 --> 00:23:04,430 и това е сега Google Play-първото нещо, което Google започна проверка за. 339 00:23:04,430 --> 00:23:08,700 Когато Google започна разпространението на Android приложения в техния App Store 340 00:23:08,700 --> 00:23:11,350 те казаха, че не са били ще проверява за нищо. 341 00:23:11,350 --> 00:23:15,630 Ще дърпам приложения веднъж сме били уведомени, че са разбити нашите условия на услугата, 342 00:23:15,630 --> 00:23:17,520 но ние няма да се проверява за нищо. 343 00:23:17,520 --> 00:23:24,350 Е, преди около година тя стана толкова лошо с тази премия SMS текстово съобщение на зловреден софтуер 344 00:23:24,350 --> 00:23:28,030 че това е най-първото нещо, което те започнаха проверка за. 345 00:23:28,030 --> 00:23:31,770 Ако едно приложение може да изпрати SMS текстови съобщения 346 00:23:31,770 --> 00:23:34,750 те допълнително ръчно контролират това приложение. 347 00:23:34,750 --> 00:23:38,770 Те изглеждат за APIs, че наричат ​​това, 348 00:23:38,770 --> 00:23:40,580 и сега, тъй като след това Google е разширен, 349 00:23:40,580 --> 00:23:46,900 но това беше първото нещо, което те започнаха да търсят. 350 00:23:46,900 --> 00:23:50,690 >> Някои други приложения, които направиха някои SMS текстови съобщения, 351 00:23:50,690 --> 00:23:56,980 този Android Qicsomos, предполагам, че се обади. 352 00:23:56,980 --> 00:24:02,670 Имаше този ток събитие по мобилния си телефон, когато това CarrierIQ излезе 353 00:24:02,670 --> 00:24:07,720 като шпионски софтуер постави на устройството от превозвачите, 354 00:24:07,720 --> 00:24:10,820 така че хората искаха да знаят дали си телефон е уязвима към това, 355 00:24:10,820 --> 00:24:13,890 и това е безплатно приложение, което изпитва това. 356 00:24:13,890 --> 00:24:17,520 Е, разбира се, това, което направих, беше това приложение го е изпратил Премиум SMS текстови съобщения, 357 00:24:17,520 --> 00:24:20,090 така чрез тестване, за да видите, ако сте заразени с шпионски софтуер 358 00:24:20,090 --> 00:24:24,930 сте заредили злонамерен софтуер на вашето устройство. 359 00:24:24,930 --> 00:24:27,310 Видяхме едно и също нещо се случи в последния Super Bowl. 360 00:24:27,310 --> 00:24:33,180 Имаше една фалшива версия на Madden футболен мач 361 00:24:33,180 --> 00:24:38,320 , който е изпратил Премиум SMS текстови съобщения. 362 00:24:38,320 --> 00:24:45,750 То всъщност се опита да създаде бот мрежа твърде на устройството. 363 00:24:45,750 --> 00:24:48,090 Тук имам някои примери. 364 00:24:48,090 --> 00:24:52,640 Интересно е, че Apple е доста интелигентен, 365 00:24:52,640 --> 00:24:58,470 и те не позволяват на приложенията да изпращат SMS текстови съобщения. 366 00:24:58,470 --> 00:25:00,350 Не ап може да го направи. 367 00:25:00,350 --> 00:25:03,530 Това е чудесен начин да се отърват от целия клас на уязвимост, 368 00:25:03,530 --> 00:25:09,040 но на Android можете да го направите, и разбира се, на BlackBerry можете да го направите също. 369 00:25:09,040 --> 00:25:13,060 Интересно е, че на BlackBerry всичко, което е нужно е интернет разрешения 370 00:25:13,060 --> 00:25:18,370 да изпратите SMS текстово съобщение. 371 00:25:18,370 --> 00:25:21,580 >> Другото нещо, наистина, че ние търсим 372 00:25:21,580 --> 00:25:24,780 когато търсим да видим дали нещо е злонамерен е просто някакъв вид 373 00:25:24,780 --> 00:25:28,100 неоторизиран дейността на мрежата, като погледнете в дейността на мрежата 374 00:25:28,100 --> 00:25:31,570 приложението се предполага, че трябва да има своята функционалност, 375 00:25:31,570 --> 00:25:35,380 и погледнете в тази друга мрежова активност. 376 00:25:35,380 --> 00:25:43,380 Може би един апартамент, да работи, трябва да получи данни през HTTP, 377 00:25:43,380 --> 00:25:47,500 но ако го прави нещата по имейл или SMS или Bluetooth или нещо подобно 378 00:25:47,500 --> 00:25:52,890 сега, че ап може да бъде потенциално опасен, така че това е друго нещо, което можете да инспектира за. 379 00:25:52,890 --> 00:26:00,430 И на този слайд тук имам някои примери за това. 380 00:26:00,430 --> 00:26:05,950 Друго интересно нещо, което видяхме със злонамерен софтуер се е случило през 2009 г., 381 00:26:05,950 --> 00:26:07,600 и това се случи в голяма начин. 382 00:26:07,600 --> 00:26:11,390 Аз не знам дали това се е случвало толкова много оттогава, но това е един апартамент 383 00:26:11,390 --> 00:26:15,140 че представил за друго приложение. 384 00:26:15,140 --> 00:26:21,700 Имаше един набор от приложения, и това беше наречен атаката 09Droid, 385 00:26:21,700 --> 00:26:29,770 и някой реши, че е имало много малки, регионални и средни банки 386 00:26:29,770 --> 00:26:32,260 че не са имали онлайн банкиране приложения, 387 00:26:32,260 --> 00:26:36,870 така че това, което направих, беше те построяват около 50 онлайн банкови приложения 388 00:26:36,870 --> 00:26:39,410 че всички те направих, беше да вземе потребителското име и паролата 389 00:26:39,410 --> 00:26:42,190 и ви пренасочи към сайта. 390 00:26:42,190 --> 00:26:47,470 И така, те поставят всички тези нагоре в Google Marketplace, 391 00:26:47,470 --> 00:26:51,530 в Android Marketplace, и когато някой търси да се види дали тяхната банка 392 00:26:51,530 --> 00:26:56,000 имаше заявление, че ще се намери фалшив заявление, 393 00:26:56,000 --> 00:27:01,230 който събира на техните пълномощия и след това да ги пренасочва към уебсайта си. 394 00:27:01,230 --> 00:27:06,640 Начинът, по който това става в действителност-приложения са били там в продължение на няколко седмици, 395 00:27:06,640 --> 00:27:09,050 и там са хиляди и хиляди сваляния. 396 00:27:09,050 --> 00:27:12,910 >> Начинът това излезе на бял свят беше някой е имал проблем 397 00:27:12,910 --> 00:27:15,740 с едно от приложенията, и те наричат ​​своята банка, 398 00:27:15,740 --> 00:27:18,390 и те призоваха за поддръжка на клиенти онлайн банката си и каза: 399 00:27:18,390 --> 00:27:21,180 "Аз съм като проблем с мобилния си телефон банкиране." 400 00:27:21,180 --> 00:27:23,460 "Можеш ли да ми помогнеш?" 401 00:27:23,460 --> 00:27:26,540 И те казаха: "Ние не разполагат с мобилно банкиране приложение." 402 00:27:26,540 --> 00:27:28,120 Това започна разследването. 403 00:27:28,120 --> 00:27:31,200 Тази банка, наречена Google, а след това Google погледна и каза: 404 00:27:31,200 --> 00:27:37,220 "Уау, на същия автор е написал 50 банкови приложения", и да ги свали. 405 00:27:37,220 --> 00:27:43,410 Но със сигурност това може да се случи отново. 406 00:27:43,410 --> 00:27:51,790 Има списък на всички различни банки тук 407 00:27:51,790 --> 00:27:55,870 , които са били част от тази измама. 408 00:27:55,870 --> 00:28:02,050 Другото нещо, което един апартамент може да направите, е да присъства на ПС на друго приложение. 409 00:28:02,050 --> 00:28:06,430 Докато той се движи тя може да се появи на Facebook UI. 410 00:28:06,430 --> 00:28:09,540 Тя казва, че трябва да се сложи в потребителското си име и парола, за да продължи 411 00:28:09,540 --> 00:28:15,090 или представени всяко потребителско име и парола UI за уебсайт 412 00:28:15,090 --> 00:28:18,420 че може би потребителят използва само за да се опита да подвежда потребителя 413 00:28:18,420 --> 00:28:21,340 в поставянето на техните пълномощия инча 414 00:28:21,340 --> 00:28:25,590 Това е наистина една права, успоредна на имейл фишинг атаки 415 00:28:25,590 --> 00:28:28,210 когато някой ви изпрати имейл съобщение 416 00:28:28,210 --> 00:28:33,050 и ви дава основно фалшив UI за уебсайт 417 00:28:33,050 --> 00:28:37,320 , че имате достъп до. 418 00:28:37,320 --> 00:28:41,590 >> Другото нещо, което търсим в злонамерен код е модификация на системата. 419 00:28:41,590 --> 00:28:48,160 Можете да търсите за всички API разговори, които изискват корен привилегия 420 00:28:48,160 --> 00:28:50,870 да се изпълни правилно. 421 00:28:50,870 --> 00:28:56,160 Промяна на уеб прокси на устройството ще бъде нещо, което заявление 422 00:28:56,160 --> 00:28:59,530 не трябва да бъде в състояние да направи. 423 00:28:59,530 --> 00:29:03,030 Но ако заявлението е код в там, за да направи това 424 00:29:03,030 --> 00:29:05,960 вие знаете, че това вероятно е злонамерено приложение 425 00:29:05,960 --> 00:29:09,620 или много голяма вероятност да бъде злонамерено приложение, 426 00:29:09,620 --> 00:29:13,910 и така, какво ще се случи, е, че ап ще има някакъв начин на ескалацията привилегия. 427 00:29:13,910 --> 00:29:17,200 Тя ще има някаква ескалация привилегия експлоатира 428 00:29:17,200 --> 00:29:20,730 в заявлението, и след това, след като тя ескалира привилегии 429 00:29:20,730 --> 00:29:23,800 той ще направи тези промени системата. 430 00:29:23,800 --> 00:29:28,010 Можете да намерите зловреден софтуер, който има ескалация привилегия 431 00:29:28,010 --> 00:29:32,550 в него дори без да знае как ескалацията привилегия 432 00:29:32,550 --> 00:29:37,960 подвиг ще се случи, и това е хубаво, лесен начин 433 00:29:37,960 --> 00:29:41,220 да търсят зловреден софтуер. 434 00:29:41,220 --> 00:29:46,030 DroidDream е може би най-известната част на Android зловреден софтуер. 435 00:29:46,030 --> 00:29:50,530 Мисля, че той се отразява на около 250 000 потребители в продължение на няколко дни 436 00:29:50,530 --> 00:29:52,810 преди това е намерено. 437 00:29:52,810 --> 00:29:56,890 Те преопаковани 50 фалшиви приложения, 438 00:29:56,890 --> 00:30:00,370 ги поставя в Android App Store, 439 00:30:00,370 --> 00:30:10,940 и по същество той използва Android Jailbreak код, за да ескалира привилегии 440 00:30:10,940 --> 00:30:16,380 и след това да инсталирате на командването и контрола и да се обърнат всички жертви 441 00:30:16,380 --> 00:30:20,690 в бот мрежа, но може да са открили тази 442 00:30:20,690 --> 00:30:24,170 ако сте били сканиране на заявлението и просто търсите 443 00:30:24,170 --> 00:30:32,230 API повиквания, на които се изисква корен разрешение да изпълни правилно. 444 00:30:32,230 --> 00:30:40,150 >> И там е един пример тук имам който се променя на пълномощника, 445 00:30:40,150 --> 00:30:46,380 и това действително е достъпна само за Android. 446 00:30:46,380 --> 00:30:49,070 Можете да видите, аз ти давам много примери за Android 447 00:30:49,070 --> 00:30:53,990 защото това е мястото, където най-активния зловреден софтуер екосистема е 448 00:30:53,990 --> 00:30:58,690 защото това е много лесно за един хакер да получи зловреден код 449 00:30:58,690 --> 00:31:01,470 в Android Marketplace. 450 00:31:01,470 --> 00:31:06,480 Това не е толкова лесно да се направи, че в App Store Apple 451 00:31:06,480 --> 00:31:10,250 защото Apple изисква разработчиците да се идентифицират 452 00:31:10,250 --> 00:31:12,790 и да се запишете кода. 453 00:31:12,790 --> 00:31:20,340 Те всъщност се провери кой си, и Apple е всъщност щателно разглеждане на молбите. 454 00:31:20,340 --> 00:31:27,450 Ние не виждаме много вярно зловреден софтуер, когато устройството е все компрометирана. 455 00:31:27,450 --> 00:31:32,250 Аз ще говоря за някои примери, когато това е наистина, че неприкосновеността на личния живот става все компрометирана, 456 00:31:32,250 --> 00:31:38,460 и това е, което наистина се случва на устройството Apple. 457 00:31:38,460 --> 00:31:44,090 Друго нещо, което да изглежда за злонамерен код, рисковано код в устройства 458 00:31:44,090 --> 00:31:50,300 е логически или времеви бомби, бомби със закъснител и вероятно са 459 00:31:50,300 --> 00:31:53,370 много по-лесно да се търси от логически бомби. 460 00:31:53,370 --> 00:31:57,030 Но с бомби със закъснител, какво можете да направите, е да можете да погледнете за 461 00:31:57,030 --> 00:32:04,760 места в кода, където се изпитва с време или абсолютна време се търсят 462 00:32:04,760 --> 00:32:08,190 преди определена функционалност в приложението се случва. 463 00:32:08,190 --> 00:32:14,200 И това може да се направи, за да се скрие тази дейност от страна на потребителя, 464 00:32:14,200 --> 00:32:17,510 така че това се случва късно през нощта. 465 00:32:17,510 --> 00:32:24,350 DroidDream направил цялата си дейност между 23:00 и 8 часа местно време 466 00:32:24,350 --> 00:32:30,650 да се опитам да го направя, докато потребителят не може да се използва тяхното устройство. 467 00:32:30,650 --> 00:32:38,680 >> Друга причина за това е, ако хората използват поведенчески анализ на заявление, 468 00:32:38,680 --> 00:32:43,430 използвате приложението в пясък, за да видите какво е поведението на заявлението, 469 00:32:43,430 --> 00:32:51,090 те могат да използват времето, базирани логика да направим дейността 470 00:32:51,090 --> 00:32:54,640 когато приложението не е в пясъчника. 471 00:32:54,640 --> 00:33:01,520 Например, един апартамент, магазин като Apple 472 00:33:01,520 --> 00:33:07,940 работи на заявлението, но те вероятно не тичам всяка молба за, да речем 30 дни 473 00:33:07,940 --> 00:33:10,550 преди одобряването му, така че можете да сложите 474 00:33:10,550 --> 00:33:14,120 логика в кандидатурата си, че каза, добре, само ги вършат лошо нещо 475 00:33:14,120 --> 00:33:20,490 след 30 дни е отишло от или след 30 дни след датата на публикуване на заявлението, 476 00:33:20,490 --> 00:33:27,020 и че може да помогне на злонамерен код се скрие от хората проверяващите за него. 477 00:33:27,020 --> 00:33:30,050 Ако анти-вирусни компании вървят нещата в пясъчници 478 00:33:30,050 --> 00:33:36,370 или ап самите магазини са това може да помогне 479 00:33:36,370 --> 00:33:39,260 крия, че от тази проверка. 480 00:33:39,260 --> 00:33:43,020 Сега, на обратната страна на това е, че е лесно да се намери с статичен анализ, 481 00:33:43,020 --> 00:33:46,170 Така че всъщност проверка на кода можете да търсите за всички места 482 00:33:46,170 --> 00:33:54,010 когато прилагането тества времето и да инспектира този начин. 483 00:33:54,010 --> 00:33:58,850 И тук имам няколко примера на тези три различни платформи 484 00:33:58,850 --> 00:34:05,640 как може да се провери времето за по-мейкъра ап 485 00:34:05,640 --> 00:34:10,520 така че да знаете какво да търсите, ако сте проверка на приложението статично. 486 00:34:10,520 --> 00:34:14,570 >> Аз просто премина през куп от различни злонамерени действия 487 00:34:14,570 --> 00:34:18,969 които сме виждали в дивата природа, но кои от тях са най-разпространени? 488 00:34:18,969 --> 00:34:23,940 Това същото проучване от North Carolina State Mobile Genome Project 489 00:34:23,940 --> 00:34:28,560 публикува някои данни, и там са основно четири области 490 00:34:28,560 --> 00:34:32,850 , че те видях, където имаше голяма активност. 491 00:34:32,850 --> 00:34:35,370 37% от приложенията направих ескалация привилегия, 492 00:34:35,370 --> 00:34:38,429 така че те са имали някакъв вид Jailbreak код вътре 493 00:34:38,429 --> 00:34:42,070 когато те се опитаха да ескалира привилегии, така че те биха могли 494 00:34:42,070 --> 00:34:48,360 API команди се изпълняват като операционната система. 495 00:34:48,360 --> 00:34:52,520 45% от приложенията там направих премия SMS, 496 00:34:52,520 --> 00:34:57,260 така че това е огромен процент, който се опитва директно да осребрите. 497 00:34:57,260 --> 00:35:02,640 93% направих дистанционно управление, така че те се опитаха да се създаде бот мрежа, мобилен бот мрежа. 498 00:35:02,640 --> 00:35:08,990 И 45% събрани идентифицираща информация 499 00:35:08,990 --> 00:35:16,230 като телефонни номера, UUID на, GPS местоположение, потребителски акаунти, 500 00:35:16,230 --> 00:35:22,870 и това добавя до повече от 100, защото повечето зловреден софтуер се опитва да направи някои от тези неща. 501 00:35:22,870 --> 00:35:27,070 >> Отивам да преминете към втората половина и да поговорим за уязвимости в кода. 502 00:35:27,070 --> 00:35:29,480 Това е втората половина на рискова дейност. 503 00:35:29,480 --> 00:35:33,450 Това е мястото, където по същество разработчик прави грешки. 504 00:35:33,450 --> 00:35:37,210 A законен разработчик написването на законен ап 505 00:35:37,210 --> 00:35:41,830 прави грешки или е невеж на рисковете от мобилната платформа. 506 00:35:41,830 --> 00:35:44,780 Те просто не знаят как да направят сигурна мобилно приложение, 507 00:35:44,780 --> 00:35:47,700 или понякога разработчикът не му пука за въвеждане на потребителя в риск. 508 00:35:47,700 --> 00:35:50,850 Понякога част от техния бизнес модел може да бъде 509 00:35:50,850 --> 00:35:54,610 прибирането на лична информация на потребителя. 510 00:35:54,610 --> 00:35:58,090 Това е нещо като друга категория, и това е защо някои от този злонамерен 511 00:35:58,090 --> 00:36:03,200 срещу законните започва да кърви над защото има разлика в мненията 512 00:36:03,200 --> 00:36:10,440 между това, което потребителят иска и това, което потребителят счита рисковано 513 00:36:10,440 --> 00:36:13,050 и какво прилагането разработчик счита рисковано. 514 00:36:13,050 --> 00:36:18,380 Разбира се, това не е данни на разработчика приложение в повечето случаи. 515 00:36:18,380 --> 00:36:22,030 >> И накрая, друг начин това се случва, е един разработчик може да се свърже в 516 00:36:22,030 --> 00:36:28,600 споделена библиотека, която има слаби места или това рисково поведение в него 517 00:36:28,600 --> 00:36:32,480 без знанието на тях. 518 00:36:32,480 --> 00:36:37,060 Първата категория е чувствителен изтичане на информация, 519 00:36:37,060 --> 00:36:40,030 и това е, когато приложението събира информация 520 00:36:40,030 --> 00:36:44,980 като местоположение, информация, адресна книга, информация собственик 521 00:36:44,980 --> 00:36:48,000 и го изпраща на разстояние от устройството. 522 00:36:48,000 --> 00:36:53,050 И след като тя е на разстояние от устройството, ние не знаем какво се случва с тази информация. 523 00:36:53,050 --> 00:36:57,170 Тя може да се съхранява несигурно от разработчика на приложението. 524 00:36:57,170 --> 00:37:02,070 Виждали сме разработчиците на приложения да се излага на риск, 525 00:37:02,070 --> 00:37:05,820 и данните, които те са съхраняване получава взети. 526 00:37:05,820 --> 00:37:10,970 Това се случи преди няколко месеца, за да разработчик във Флорида 527 00:37:10,970 --> 00:37:21,660 където огромен брой-е UUID на IPad и имена на устройства 528 00:37:21,660 --> 00:37:25,270 бяха пропускам, защото някой, мисля, че е анонимен, 529 00:37:25,270 --> 00:37:29,460 претендира да направите това, е проникнал в сървърите на това на разработчика 530 00:37:29,460 --> 00:37:34,920 и е откраднал милиони IPAD UUID на 531 00:37:34,920 --> 00:37:37,390 и компютърни имена. 532 00:37:37,390 --> 00:37:40,260 Не е най-рисковано информацията, 533 00:37:40,260 --> 00:37:46,820 но какво ще стане ако това е съхранението на потребителски имена и пароли 534 00:37:46,820 --> 00:37:48,170 и домашни адреси? 535 00:37:48,170 --> 00:37:51,100 Има много приложения, които съхраняват такава информация. 536 00:37:51,100 --> 00:37:53,230 Рискът е там. 537 00:37:53,230 --> 00:37:56,620 >> Другото нещо, което може да се случи е, ако предприемачът не се грижи 538 00:37:56,620 --> 00:38:01,370 за осигуряване на канала за данни, и това е още една голяма уязвимост аз отивам да се говори за, 539 00:38:01,370 --> 00:38:05,160 че данните се изпраща в ясен. 540 00:38:05,160 --> 00:38:09,040 Ако потребителят е в обществена Wi-Fi мрежа 541 00:38:09,040 --> 00:38:12,330 или някой се душат в интернет някъде 542 00:38:12,330 --> 00:38:19,260 по пътя, който данни е изложена. 543 00:38:19,260 --> 00:38:23,790 Един много известен случай на изтичане на информация, това се е случило с Pandora, 544 00:38:23,790 --> 00:38:27,250 и това е нещо, което ние проучени при Veracode. 545 00:38:27,250 --> 00:38:33,200 Чухме, че е имало, мисля, че беше на Federal Trade Commission 546 00:38:33,200 --> 00:38:35,310 разследване става с Пандора. 547 00:38:35,310 --> 00:38:39,830 Ние казахме: "Какво става там? Нека започнем копаят в прилагането на Пандора." 548 00:38:39,830 --> 00:38:46,690 И това, което е определено е заявлението Pandora събрана 549 00:38:46,690 --> 00:38:51,270 пола и възрастта си, 550 00:38:51,270 --> 00:38:56,660 и тя също преглеждана вашия GPS местоположение, както и прилагането на Пандора 551 00:38:56,660 --> 00:39:00,200 Направих това, за което те казаха бяха основателни причини. 552 00:39:00,200 --> 00:39:05,360 Музиката, която те играеха-Pandora е стрийминг на музика ап- 553 00:39:05,360 --> 00:39:07,530 музиката те играеха е лицензирана само в Съединените щати, 554 00:39:07,530 --> 00:39:13,020 така че те трябваше да се провери, за да се съобразят с техните лицензионни споразумения, които те са имали 555 00:39:13,020 --> 00:39:17,240 за музика, която потребителят е в Съединените щати. 556 00:39:17,240 --> 00:39:25,070 Те също искаха да се съобразят с родителски консултативен 557 00:39:25,070 --> 00:39:33,790 около език за възрастни в областта на музиката, 558 00:39:33,790 --> 00:39:37,500 и така тя е доброволна програма, но те искаха да се съобразят с това 559 00:39:37,500 --> 00:39:43,010 и не играе изрични текстове за деца на 13 и по-малко. 560 00:39:43,010 --> 00:39:46,280 >> Те имаха основателни причини за събиране на тези данни. 561 00:39:46,280 --> 00:39:49,160 Тяхното приложение е имал разрешения да го направя. 562 00:39:49,160 --> 00:39:52,000 Потребители, че това е законно. Но какво се е случило? 563 00:39:52,000 --> 00:39:55,810 Те свързани в три или четири различни рекламни библиотеки. 564 00:39:55,810 --> 00:39:59,140 Сега всички изведнъж всички тези рекламни библиотеки 565 00:39:59,140 --> 00:40:02,970 получавате достъп до същата тази информация. 566 00:40:02,970 --> 00:40:05,830 Рекламни библиотеки, ако се вгледате в кода в рекламните библиотеки 567 00:40:05,830 --> 00:40:08,430 това, което те правят, е посочена във всяка обява библиотека казва 568 00:40:08,430 --> 00:40:11,340 "Дали ми ап разрешение да получи GPS местоположение?" 569 00:40:11,340 --> 00:40:14,890 "О, тя не? Добре, кажи ми местоположението GPS." 570 00:40:14,890 --> 00:40:16,620 Всяка една реклама библиотека прави това, 571 00:40:16,620 --> 00:40:19,740 и ако приложението не разполага с GPS разрешение 572 00:40:19,740 --> 00:40:23,460 тя няма да бъде в състояние да го получи, но ако това се случи, то ще го получи. 573 00:40:23,460 --> 00:40:26,240 Това е мястото, където бизнес моделът на рекламните библиотеки 574 00:40:26,240 --> 00:40:31,160 се противопоставя на личния живот на потребителя. 575 00:40:31,160 --> 00:40:34,980 И е имало проучвания там, че ще кажете, ако знаете, че възрастта 576 00:40:34,980 --> 00:40:38,430 на лице, и вие знаете, тяхното местоположение 577 00:40:38,430 --> 00:40:42,530 където те спят през нощта, защото имат своите GPS координати 578 00:40:42,530 --> 00:40:46,030 докато те може би са заспали, вие знаете точно кой е този човек е 579 00:40:46,030 --> 00:40:50,230 защото може да се определи кой член от домакинство е, че този човек. 580 00:40:50,230 --> 00:40:54,780 Наистина това е идентифицирането на рекламодателите 581 00:40:54,780 --> 00:40:59,530 точно кой сте, и тя изглежда като че ли е законен. 582 00:40:59,530 --> 00:41:02,800 Аз просто искам моя стрийминг на музика, и това е единственият начин да го получи. 583 00:41:02,800 --> 00:41:05,370 >> Е, ние се насочихме това. 584 00:41:05,370 --> 00:41:08,030 Написахме това в няколко блог постове, 585 00:41:08,030 --> 00:41:13,280 и се оказа, че някой от списание Rolling Stone 586 00:41:13,280 --> 00:41:18,810 прочетете един от нашите блог постове и е написал свой собствен блог в Rolling Stone за него, 587 00:41:18,810 --> 00:41:22,120 и още на следващия ден Pandora, че това е добра идея 588 00:41:22,120 --> 00:41:27,600 за премахване на рекламни библиотеки от тяхното прилагане. 589 00:41:27,600 --> 00:41:31,270 Доколкото знам, те са най-те само трябва да бъдат похвалени. 590 00:41:31,270 --> 00:41:35,770 Мисля, че те са единствената Freemium вида на приложение, което е сторил това. 591 00:41:35,770 --> 00:41:38,660 Всички други Freemium приложения имат същото това поведение, 592 00:41:38,660 --> 00:41:41,780 така че сте се погрижили да се мисли за какъв вид данни, което дава 593 00:41:41,780 --> 00:41:48,330 тези Freemium приложения, защото това е всичко ще рекламодатели. 594 00:41:48,330 --> 00:41:53,390 Praetorian също е направил проучване за споделени библиотеки и каза: 595 00:41:53,390 --> 00:41:57,100 "Нека да погледнем какво сподели библиотеки са най-добрите споделени библиотеки," и това беше данните. 596 00:41:57,100 --> 00:41:59,420 Те анализират >> 53 000 приложения, 597 00:41:59,420 --> 00:42:01,900 и номер 1 споделена библиотека е AdMob. 598 00:42:01,900 --> 00:42:06,060 Това беше всъщност в 38% от приложенията там, 599 00:42:06,060 --> 00:42:08,800 така че 38% от приложенията, които използвате 600 00:42:08,800 --> 00:42:11,250 са вероятно прибиране на вашата лична информация 601 00:42:11,250 --> 00:42:16,650 и да го изпратите на рекламните мрежи. 602 00:42:16,650 --> 00:42:19,350 Apache и Android са били 8% и 6%, 603 00:42:19,350 --> 00:42:22,960 и след това тези други хора надолу към дъното, Google обяви, вихрушка, 604 00:42:22,960 --> 00:42:26,600 Mob City и Millennial Media, 605 00:42:26,600 --> 00:42:30,500 това са всички рекламни фирми, и след това, достатъчно интересно, 606 00:42:30,500 --> 00:42:33,500 4% свързан в Facebook библиотеката 607 00:42:33,500 --> 00:42:38,870 вероятно да се направи идентификация чрез Facebook 608 00:42:38,870 --> 00:42:40,810 така че приложението може да удостовери във Facebook. 609 00:42:40,810 --> 00:42:44,660 Но това също така означава, корпорацията Facebook контролира код 610 00:42:44,660 --> 00:42:49,010 че бяга в 4% от Android мобилни приложения там, 611 00:42:49,010 --> 00:42:53,490 и те да имат достъп до всички данни, че това приложение има разрешение да получите на адрес. 612 00:42:53,490 --> 00:42:57,170 Facebook по същество се опитва да продават рекламно пространство. 613 00:42:57,170 --> 00:43:00,120 Това е техния бизнес модел. 614 00:43:00,120 --> 00:43:02,920 >> Ако се вгледате в цялата тази екосистема с тези разрешения 615 00:43:02,920 --> 00:43:07,740 и споделени библиотеки ви започват да се види, че 616 00:43:07,740 --> 00:43:13,850 имате много на риск в предполагаемо легитимна кандидатура. 617 00:43:13,850 --> 00:43:19,360 Същото нещо подобно, което се случи с Pandora 618 00:43:19,360 --> 00:43:22,340 случило с приложение, наречено Path, 619 00:43:22,340 --> 00:43:27,660 и път, че те са били полезни, приятелски разработчици. 620 00:43:27,660 --> 00:43:32,160 Те са просто се опитва да ви даде по-голямо потребителско изживяване, 621 00:43:32,160 --> 00:43:37,810 и се оказа, че без подканване на потребителя или казва на потребителя нещо- 622 00:43:37,810 --> 00:43:40,400 и това се случи на iPhone и Android, 623 00:43:40,400 --> 00:43:44,420 на Пандора ап е на iPhone и Android- 624 00:43:44,420 --> 00:43:48,890 че прилагането на Path се измъкна цялата си адресна книга 625 00:43:48,890 --> 00:43:52,830 и да го качите на Path само когато сте инсталирали и изтича на заявлението, 626 00:43:52,830 --> 00:43:55,840 и те не ви кажа за това. 627 00:43:55,840 --> 00:43:58,750 Те мислеха, че това е наистина полезно за вас 628 00:43:58,750 --> 00:44:04,040 да бъде в състояние да споделя с всички хора в адресната книга 629 00:44:04,040 --> 00:44:06,920 че използвате приложението Path. 630 00:44:06,920 --> 00:44:09,490 >> Е, очевидно Path, че това е чудесно за тяхната компания. 631 00:44:09,490 --> 00:44:13,510 Не е толкова голяма, за потребителя. 632 00:44:13,510 --> 00:44:19,020 Трябва да се мисли, че това е едно нещо, ако може би един тийнейджър 633 00:44:19,020 --> 00:44:23,700 е използване на тази молба и техните десетки приятели са там, 634 00:44:23,700 --> 00:44:29,360 но какво ще стане ако това е изпълнителен директор на компания, която инсталира Path 635 00:44:29,360 --> 00:44:33,170 и тогава изведнъж си цялата адресна книга е там горе? 636 00:44:33,170 --> 00:44:38,310 Ще получите много потенциално ценна информация за контакт 637 00:44:38,310 --> 00:44:40,920 за много хора. 638 00:44:40,920 --> 00:44:44,500 Един репортер от New York Times, че може да сте в състояние да получи телефонния номер 639 00:44:44,500 --> 00:44:47,380 за бивши президенти от тяхната адресна книга, 640 00:44:47,380 --> 00:44:54,780 така че явно много чувствителна информация, получава прехвърлени с нещо подобно. 641 00:44:54,780 --> 00:44:58,090 Имаше такава голяма клапа за това, че Path извини. 642 00:44:58,090 --> 00:45:01,610 Те промениха своята ап, и то дори повлияха Apple. 643 00:45:01,610 --> 00:45:06,950 Apple каза: "Отиваме да принуди ап продавачите да подтикне потребителите 644 00:45:06,950 --> 00:45:12,650 ако те започват да събират цялата си адресна книга. " 645 00:45:12,650 --> 00:45:15,360 >> Тя изглежда като това, което се случва тук е 646 00:45:15,360 --> 00:45:19,430 когато има едно голямо нарушение на личния живот и го прави пресата 647 00:45:19,430 --> 00:45:21,680 ние виждаме промяна там. 648 00:45:21,680 --> 00:45:23,230 Но, разбира се, има и други неща там. 649 00:45:23,230 --> 00:45:27,440 Заявлението LinkedIn реколти вашите записи в календара, 650 00:45:27,440 --> 00:45:34,530 но Apple не прави потребителя бъдете подканени за това. 651 00:45:34,530 --> 00:45:38,030 Записи от календара може да имат чувствителна информация в тях също. 652 00:45:38,030 --> 00:45:40,000 Къде отиваш да се тегли чертата? 653 00:45:40,000 --> 00:45:43,960 Това е наистина вид на една развиваща място 654 00:45:43,960 --> 00:45:47,640 където има наистина няма по-добър стандарт там 655 00:45:47,640 --> 00:45:51,990 за потребителите да разберат, когато информацията им се случва да бъдат изложени на риск 656 00:45:51,990 --> 00:45:57,820 и когато те ще знаят, че е е приемана. 657 00:45:57,820 --> 00:46:03,040 Писахме един апартамент в Veracode наречена Adios, 658 00:46:03,040 --> 00:46:08,350 и по същество тя да ви е позволено да се отбележи приложението в директорията на вашия качи 659 00:46:08,350 --> 00:46:12,550 и гледам на всички приложения, които са били прибирането пълния си адресна книга. 660 00:46:12,550 --> 00:46:19,760 И както можете да видите на този списък тук, Angry Birds, 661 00:46:19,760 --> 00:46:21,590 AIM, AroundMe. 662 00:46:21,590 --> 00:46:24,050 Защо Angry Birds се нуждаем от вашата адресна книга? 663 00:46:24,050 --> 00:46:29,160 Аз не знам, но го прави по някакъв начин. 664 00:46:29,160 --> 00:46:32,310 >> Това е нещо, което много, много приложения го правят. 665 00:46:32,310 --> 00:46:34,780 Можете да инспектира кода за това. 666 00:46:34,780 --> 00:46:38,660 Има точно определени APIs за iPhone, Android и BlackBerry 667 00:46:38,660 --> 00:46:42,120 за да получите най-адресната книга. 668 00:46:42,120 --> 00:46:48,520 Вие наистина може лесно да проверява за това, и това е, което сме направили в нашето заявление Adios. 669 00:46:48,520 --> 00:46:52,320 Следващата категория, Unsafe Sensitive за съхранение на данни, 670 00:46:52,320 --> 00:46:55,670 е нещо, където разработчиците да вземат нещо като карфица или номер на сметка 671 00:46:55,670 --> 00:46:58,530 или парола и я съхранявайте на чисто върху устройството. 672 00:46:58,530 --> 00:47:02,310 Дори по-лошо, те биха могли да го съхранява в район по телефона 673 00:47:02,310 --> 00:47:06,820 което е глобално достъпни, като SD карта. 674 00:47:06,820 --> 00:47:11,320 Виждаш ли това по-често на Android, тъй като Android дава възможност за SD карта. 675 00:47:11,320 --> 00:47:13,200 IPhone устройства, които не го правят. 676 00:47:13,200 --> 00:47:17,900 Но ние дори видях това да се случи в приложение Ситигруп. 677 00:47:17,900 --> 00:47:25,450 Тяхната онлайн банкиране съхранява номерата на сметките несигурно, 678 00:47:25,450 --> 00:47:28,120 само на чисто, така че ако сте загубили вашето устройство, 679 00:47:28,120 --> 00:47:30,670 по същество сте загубили вашата банкова сметка. 680 00:47:30,670 --> 00:47:36,000 Ето защо аз лично не правя банкиране на моя iPhone. 681 00:47:36,000 --> 00:47:43,710 Мисля, че е твърде рисковано точно сега да правя тези видове дейности. 682 00:47:43,710 --> 00:47:45,950 >> Skype направи същото. 683 00:47:45,950 --> 00:47:49,870 Skype, разбира се, има баланс по сметка, потребителско име и парола 684 00:47:49,870 --> 00:47:51,030 че достъпът на този баланс. 685 00:47:51,030 --> 00:48:00,080 Те бяха съхраняване на цялата тази информация в ясен на мобилното устройство. 686 00:48:00,080 --> 00:48:05,760 Имам някои примери тук за създаване на файлове 687 00:48:05,760 --> 00:48:10,310 , които нямат необходимите права или писане на диск 688 00:48:10,310 --> 00:48:17,260 и не се налага всеки криптиране случи за това. 689 00:48:17,260 --> 00:48:20,190 Следващата област, Unsafe Sensitive за предаване на данни, 690 00:48:20,190 --> 00:48:24,450 Аз споменах за това на няколко пъти, и заради общественото Wi-Fi 691 00:48:24,450 --> 00:48:27,770 това е нещо, което приложения абсолютно трябва да направите, 692 00:48:27,770 --> 00:48:31,250 и това е може би това, което виждаме да се обърка най-много. 693 00:48:31,250 --> 00:48:34,920 Бих казал-всъщност, аз мисля, че имам най-актуалните данни, 694 00:48:34,920 --> 00:48:38,120 но това е близо половината от мобилните приложения 695 00:48:38,120 --> 00:48:41,780 прецакаш правиш SSL. 696 00:48:41,780 --> 00:48:43,910 Те просто не използвайте APIs правилно. 697 00:48:43,910 --> 00:48:47,970 Искам да кажа, всичко, което трябва да направите е да следвате инструкциите и да използват API-тата, 698 00:48:47,970 --> 00:48:54,720 но те такива неща не се проверява дали там е невалиден сертификат на другия край, 699 00:48:54,720 --> 00:49:02,120 не проверите дали другия край се опитва да направи протокол понижаване атака. 700 00:49:02,120 --> 00:49:07,200 >> Разработчиците, които искат да им поле, нали? 701 00:49:07,200 --> 00:49:11,910 Тяхното изискване е да се използва това, за да продават. Те използват това, за да продават. 702 00:49:11,910 --> 00:49:14,800 Изискването не е да се използва това, за да продават сигурно, 703 00:49:14,800 --> 00:49:19,680 И така, това е защо всички приложения, които използват SSL за осигуряване на данни 704 00:49:19,680 --> 00:49:23,470 тъй като са предадени изключите устройството наистина трябва да бъдат инспектирани 705 00:49:23,470 --> 00:49:28,950 да се уверите, че е внедрен правилно. 706 00:49:28,950 --> 00:49:32,850 И тук имам някои примери, в които можете да видите на заявление 707 00:49:32,850 --> 00:49:37,400 Може да се използва HTTP вместо HTTPS. 708 00:49:37,400 --> 00:49:40,510 В някои случаи приложения ще паднат обратно към HTTP 709 00:49:40,510 --> 00:49:44,250 ако HTTPS не работи. 710 00:49:44,250 --> 00:49:49,070 Имам друг разговор тук, на Android, където съм забранил да провери сертификата, 711 00:49:49,070 --> 00:49:51,700 така нападение човек-в-средата може да се случи. 712 00:49:51,700 --> 00:49:56,370 An невалиден сертификат ще бъде приета. 713 00:49:56,370 --> 00:50:01,920 Това са всички случаи, когато нападателите ще бъдат в състояние да се кача на 714 00:50:01,920 --> 00:50:07,150 една и съща Wi-Fi връзката като потребител и достъпа на всички данни, 715 00:50:07,150 --> 00:50:11,650 това е да се изпращат по интернет. 716 00:50:11,650 --> 00:50:15,970 >> И накрая, последната категория имам тук е кодиран парола и ключове. 717 00:50:15,970 --> 00:50:21,470 Ние всъщност виждам много разработчиците използват една и съща кодиране стил 718 00:50:21,470 --> 00:50:25,900 че те е направил, когато те са били изграждане на уеб приложения за сървър, 719 00:50:25,900 --> 00:50:29,700 така че те са изграждането на приложение Java сървър, и те са hardcoding ключа. 720 00:50:29,700 --> 00:50:31,940 Е, когато сте изграждане на сървър на приложения, да, 721 00:50:31,940 --> 00:50:34,240 hardcoding ключът не е добра идея. 722 00:50:34,240 --> 00:50:36,290 Това го прави трудно да се промени. 723 00:50:36,290 --> 00:50:40,700 Но това не е толкова лошо на сървъра страна, защото, който има достъп до сървъра страна? 724 00:50:40,700 --> 00:50:43,140 Само администратори. 725 00:50:43,140 --> 00:50:48,100 Но ако вземете същия код и го излива към мобилно приложение 726 00:50:48,100 --> 00:50:52,550 Сега всеки, който има, че мобилно приложение с достъп до кодиран ключ, 727 00:50:52,550 --> 00:50:56,380 и ние действително видите това много пъти, и аз имам някои статистически данни 728 00:50:56,380 --> 00:51:00,920 от това колко често ние виждаме това да се случи. 729 00:51:00,920 --> 00:51:04,940 То всъщност е в пример код, който MasterCard публикува 730 00:51:04,940 --> 00:51:06,850 за това как да използват техните услуги. 731 00:51:06,850 --> 00:51:11,860 Примерът код показва как точно ще вземе паролата 732 00:51:11,860 --> 00:51:14,850 и го сложи в кодиран низ точно там, 733 00:51:14,850 --> 00:51:19,380 и ние знаем как разработчиците обичат да копирате и поставите код откъси 734 00:51:19,380 --> 00:51:22,360 когато те се опитват да направят нещо, така че можете да копирате и поставите на кодовия фрагмент 735 00:51:22,360 --> 00:51:28,450 че те дадоха като пример код, а вие имате един несигурен приложение. 736 00:51:28,450 --> 00:51:31,490 >> И тук имаме някои примери. 737 00:51:31,490 --> 00:51:35,840 Това първо един е една ние виждаме много, където те hardcode 738 00:51:35,840 --> 00:51:40,510 правото на информация в URL, които се предават. 739 00:51:40,510 --> 00:51:45,120 Понякога виждаме низ парола = паролата. 740 00:51:45,120 --> 00:51:49,060 Това е доста лесно да се открие, или низ парола на BlackBerry и Android. 741 00:51:49,060 --> 00:51:53,680 Всъщност е доста лесно да проверите за, защото почти винаги 742 00:51:53,680 --> 00:51:57,030 имената разработчик на променлива, която държи паролата 743 00:51:57,030 --> 00:52:02,290 някаква вариация на парола. 744 00:52:02,290 --> 00:52:05,200 Споменах, че правим статичен анализ на Veracode, 745 00:52:05,200 --> 00:52:11,790 така че ние анализирахме няколко стотин Android и IOS приложения. 746 00:52:11,790 --> 00:52:15,160 Ние сме изградили пълни модели на тях, а ние сме в състояние да ги сканирате 747 00:52:15,160 --> 00:52:19,280 за различни уязвимости, особено на уязвимости, за който говорех, 748 00:52:19,280 --> 00:52:21,050 и аз имам някои данни тук. 749 00:52:21,050 --> 00:52:24,320 68,5% от Android приложения ще погледна 750 00:52:24,320 --> 00:52:28,590 е счупил криптографски код, 751 00:52:28,590 --> 00:52:33,240 което за нас, ние не може да се открие, ако сте направили своя собствена крипто рутинни, 752 00:52:33,240 --> 00:52:38,980 Не, че това е добра идея, но това е действително използване на публикуваните APIs 753 00:52:38,980 --> 00:52:42,530 , които са на перона, но ги прави по такъв начин, 754 00:52:42,530 --> 00:52:46,680 че Crypto ще бъдат уязвими, 68.5. 755 00:52:46,680 --> 00:52:49,870 И това е за хора, които ни изпращат своите заявления в действителност, защото 756 00:52:49,870 --> 00:52:53,730 те мислят, че това е добра идея да се направи изследване на сигурността. 757 00:52:53,730 --> 00:52:56,960 Те вече са хора, които са най-вероятно мислят сигурно, 758 00:52:56,960 --> 00:52:59,540 така че е вероятно дори по-лошо. 759 00:52:59,540 --> 00:53:02,690 >> Аз не говоря за контролна линия инжекция фуражи. 760 00:53:02,690 --> 00:53:07,640 Това е нещо, което се проверява за, но това не е толкова рисковано проблем. 761 00:53:07,640 --> 00:53:15,390 Изтичане на информация, това е мястото, където чувствителни данни е изгонването на устройството. 762 00:53:15,390 --> 00:53:19,270 Открихме, че в 40% от приложения. 763 00:53:19,270 --> 00:53:23,540 Време и държава, това са въпроси от типа състояние раса, обикновено доста трудно да се използват, 764 00:53:23,540 --> 00:53:26,170 така че аз не говоря за това, но ние го погледна. 765 00:53:26,170 --> 00:53:28,750 23% е имал проблеми SQL инжекция. 766 00:53:28,750 --> 00:53:32,020 Много хора не знаят, че много приложения 767 00:53:32,020 --> 00:53:35,880 използвате малка малко SQL база данни на гърба си край за съхранение на данни. 768 00:53:35,880 --> 00:53:40,430 Е, ако данните, които взимаме по мрежата 769 00:53:40,430 --> 00:53:43,800 има SQL инжекция атака струни в нея 770 00:53:43,800 --> 00:53:45,970 някой може да компрометира устройството чрез които, 771 00:53:45,970 --> 00:53:49,800 и затова мисля, че ние откриваме около 40% от уеб приложенията имат този проблем, 772 00:53:49,800 --> 00:53:52,840 което е огромен проблем епидемия. 773 00:53:52,840 --> 00:53:55,740 Откриваме я 23% от времето в мобилни приложения 774 00:53:55,740 --> 00:54:02,030 и това е може би, защото много повече уеб приложения използват SQL, отколкото мобилен телефон. 775 00:54:02,030 --> 00:54:05,580 >> И тогава ние все още виждаме известна кръстосана сайт скриптове, въпроси за разрешаване, 776 00:54:05,580 --> 00:54:09,400 и след това акредитивни писма управление, това е, когато имате кодиран парола. 777 00:54:09,400 --> 00:54:14,540 В 5% от заявленията, ние виждаме, че. 778 00:54:14,540 --> 00:54:17,970 И след това ние имаме някои данни за IOS. 779 00:54:17,970 --> 00:54:20,180 81% е имал проблеми отстраняване на грешки. 780 00:54:20,180 --> 00:54:23,130 Това е повече от проблем с качеството на код, 781 00:54:23,130 --> 00:54:28,010 но 67% е имал криптографски проблеми, така че не е толкова зле, колкото Android. 782 00:54:28,010 --> 00:54:32,440 Може би APIs са малко по-лесно, например кодовете за малко по-добре на IOS. 783 00:54:32,440 --> 00:54:35,420 Но все още много висок процент. 784 00:54:35,420 --> 00:54:39,040 Имахме 54% с изтичането на информация, 785 00:54:39,040 --> 00:54:42,080 около 30% с грешки управление буфер. 786 00:54:42,080 --> 00:54:45,930 Това е място, където има потенциално биха могли да бъдат проблем с корупцията памет. 787 00:54:45,930 --> 00:54:50,350 Оказва се, че това не е толкова голям проблем за експлоатация 788 00:54:50,350 --> 00:54:56,450 на ЗИ защото всички код трябва да бъде подписано, 789 00:54:56,450 --> 00:55:02,210 така че е трудно за един хакер да изпълни произволен код на IOS. 790 00:55:02,210 --> 00:55:07,880 Качество на кода, директория прекосява, но след това управление тук, в 14,6% пълномощията, 791 00:55:07,880 --> 00:55:09,250 толкова по-лошо, отколкото на Android. 792 00:55:09,250 --> 00:55:13,240 Имаме хора, които не обработват пароли правилно. 793 00:55:13,240 --> 00:55:15,790 И тогава цифровите грешки и препълване на буфера, 794 00:55:15,790 --> 00:55:22,680 тези, които са повече ще бъде проблеми с качеството на код на IOS. 795 00:55:22,680 --> 00:55:26,110 >> Това е за моята презентация. Аз не знам дали ние сме извън времето или не. 796 00:55:26,110 --> 00:55:29,540 Аз не знам дали има някакви въпроси. 797 00:55:29,540 --> 00:55:33,220 [Мъж] Един бърз въпрос около фрагментация и Android пазара. 798 00:55:33,220 --> 00:55:36,240 Apple най-малко притежава кръпка. 799 00:55:36,240 --> 00:55:40,780 Те вършат добра работа от него да се измъкнем там докато по-малко, така че в Android пространство. 800 00:55:40,780 --> 00:55:44,280 Вие почти трябва да джейлбрейк телефона си да са актуални 801 00:55:44,280 --> 00:55:46,660 с текущата версия на Android. 802 00:55:46,660 --> 00:55:50,960 Да, това е огромен проблем и затова, ако мислите, че за- 803 00:55:50,960 --> 00:55:52,280 [Мъж] Защо не мога да ти го повтарям? 804 00:55:52,280 --> 00:55:55,610 >> О, да, така че въпросът е какво да кажем за фрагментация 805 00:55:55,610 --> 00:56:00,410 на операционната система на Android платформата? 806 00:56:00,410 --> 00:56:05,890 Как се отрази на риска на тези устройства? 807 00:56:05,890 --> 00:56:09,700 И това всъщност е огромен проблем, защото това, което се случва, е 808 00:56:09,700 --> 00:56:15,110 по-старите устройства, когато някой идва с Jailbreak за това устройство, 809 00:56:15,110 --> 00:56:19,960 по същество това е ескалация привилегия, и докато тази операционна система се обновява 810 00:56:19,960 --> 00:56:25,350 зловредния софтуер може след това да използва тази уязвимост, за да компрометира напълно устройството, 811 00:56:25,350 --> 00:56:30,200 и това, което виждаме на Android е с цел да се получи нова операционна система 812 00:56:30,200 --> 00:56:34,690 Google трябва да се изнеса на операционната система, а след това от производителя на хардуера 813 00:56:34,690 --> 00:56:39,390 трябва да я персонализирате, а след това на превозвача трябва да го персонализирате и да го достави. 814 00:56:39,390 --> 00:56:43,070 Имате основно три движещи се части тук, 815 00:56:43,070 --> 00:56:47,210 и това е завой, за които превозвачите не им пука, 816 00:56:47,210 --> 00:56:50,400 и производителите на хардуер не се интересуват, и Google не е да ги подтикват достатъчно 817 00:56:50,400 --> 00:56:54,430 да се направи нещо, така че по същество повече от половината от устройствата там 818 00:56:54,430 --> 00:57:00,590 имат операционни системи, които имат тези уязвимости привилегия ескалация в тях, 819 00:57:00,590 --> 00:57:08,440 и така, ако можете да получите зловреден софтуер на вашето устройство Android е много по-голям проблем. 820 00:57:08,440 --> 00:57:10,350 >> Добре, благодаря ви много. 821 00:57:10,350 --> 00:57:12,310 [Аплодисменти] 822 00:57:12,310 --> 00:57:14,310 [CS50.TV]