1 00:00:00,000 --> 00:00:02,610 >> [Семинар] [Защита Позади устройства: мобильных приложений безопасности] 2 00:00:02,610 --> 00:00:04,380 [Крис Wysopal] [Гарвардский университет] 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 Это по прогнозам, будет 76 миллиардов приложений к 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 Вы можете нажать много устройств в зоне РФ 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 но это, кажется, очень Hush Hush. 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 потому что в мобильном пространстве у вас есть эти команды людей, называемых джейлбрейкеры, 80 00:05:14,840 --> 00:05:18,670 и джейлбрейкеры отличаются от обычных исследователей уязвимости. 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 в эксплойт или руткит или код джейлбрейк, 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 с уязвимостей в ОС, на мобильный, 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 Приложения могут получить доступ всю информацию на устройстве 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 И тогда один Яблоко полностью безвредны. 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 Эта компания преторианской провели опрос в прошлом году 156 00:10:09,950 --> 00:10:14,170 из 53000 приложений, проанализированных в Android Market и 3 участника рынках, 157 00:10:14,170 --> 00:10:16,770 так что это все Android-. 158 00:10:16,770 --> 00:10:19,670 А средний приложение просили 3 разрешения. 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% из приложений в магазине приложений действительно нужно отправить СМС сообщения, 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 приложение под названием Пандора, где разработчик приложения 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 И это разбита на 2 секции, вредоносного кода, 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 У них есть 4, которые отличаются. 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 Штата Северная Каролина имеет проект под названием Генный Мобильная вирусология 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 , а затем положить его в магазине приложений, представляемая в качестве новой версии данного приложения, 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 >> Безусловно большинство это те 2 методы. 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 >> Одним из первых примеров этого была программа под названием Secret SMS Replicator. 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 На прошивкой можно использовать дизассемблер как IDA Pro 300 00:20:11,050 --> 00:20:17,190 смотреть на то, APIs приложение звонит и что он делает. 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 И у меня есть некоторые примеры здесь, на мобильный. 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 Торговая площадка или 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 в их магазин приложений 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 Если приложение может отправлять СМС сообщения 346 00:23:31,770 --> 00:23:34,750 они дополнительно вручную тщательно, что применение. 347 00:23:34,750 --> 00:23:38,770 Они ищут API, которые требуют этого, 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 >> Некоторые другие приложения, которые сделали некоторые текстовых сообщений, 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 и они не позволяют приложениям отправить СМС сообщения на всех. 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 или положить любое имя пользователя и интерфейс пароль для сайта 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 и дает вам в основном поддельные пользовательский интерфейс для веб-сайта 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 магазин приложений, 439 00:30:00,370 --> 00:30:10,940 и, по сути это было раньше Android код джейлбрейка повысить привилегии 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 Это не так легко сделать, что в Apple App Store 451 00:31:06,480 --> 00:31:10,250 потому что Яблоко требует от разработчиков, чтобы идентифицировать себя 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 сделал всю свою деятельность в период с 11 часов вечера до 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 А вот у меня есть несколько примеров на этих 3-х различных платформ 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 В том же исследовании от штата Северная Каролина Мобильная Genome Project 489 00:34:23,940 --> 00:34:28,560 опубликовал некоторые данные, и были в основном 4 зоны 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 поэтому им пришлось некоторый тип джейлбрейка кода там 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 Законным разработчик, пишущий законную приложение 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 где огромное количество-это было Ipad UUID, и имена устройств 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 Мы слышали, что была-Я думаю, что это был Федеральная торговая комиссия 546 00:38:33,200 --> 00:38:35,310 Расследование происходит с Пандоры. 547 00:38:35,310 --> 00:38:39,830 Мы сказали: «Что там происходит? Давайте начнем копаться в приложении Pandora." 548 00:38:39,830 --> 00:38:46,690 И то, что мы определили было применение Пандора собраны 549 00:38:46,690 --> 00:38:51,270 Ваш пол и возраст 550 00:38:51,270 --> 00:38:56,660 и это также доступны ваше местоположение GPS, а также применение Pandora 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 Они также хотели соблюдать Parental Advisory 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 Они связаны в 3 или 4 разных библиотеках объявлений. 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 и уже на следующий день Пандора думал, что это была хорошая идея 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 Преторианской также провел исследование о разделяемых библиотек и сказал: 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, Flurry, 604 00:42:22,960 --> 00:42:26,600 Моб Город и тысячелетнего СМИ, 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 То же похожи, что случилось с Пандоры 618 00:43:19,360 --> 00:43:22,340 произошло с приложением под названием Путь, 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 и это произошло на мобильный и на Android, 623 00:43:40,400 --> 00:43:44,420 Пандора приложение было на мобильный и Android- 624 00:43:44,420 --> 00:43:48,890 что применение Путь схватил всю вашу адресную книгу 625 00:43:48,890 --> 00:43:52,830 и загружать его на пути, когда вы просто устанавливается и запуске приложения, 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 >> Ну, очевидно Путь думал, что это было отличным для своей компании. 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 но что, если это генеральный директор компании, которая устанавливает путь 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 Был такой большой лоскут об этом, что путь извинился. 642 00:44:58,090 --> 00:45:01,610 Они изменили свое приложение, и это даже повлияло Apple. 643 00:45:01,610 --> 00:45:06,950 Яблоко сказал: "Мы собираемся, чтобы заставить продавцов приложение запрашивать пользователей 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 названием Прощайте, 658 00:46:03,040 --> 00:46:08,350 и, по сути это позволило вам указать приложение в каталоге ITunes 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 Там в четко определенные API-интерфейсы для IPhone, Android и BlackBerry 667 00:46:38,660 --> 00:46:42,120 чтобы получить в адресной книге. 668 00:46:42,120 --> 00:46:48,520 Вы действительно можете легко проверить для этого, и это то, что мы сделали в нашем приложении Прощайте. 669 00:46:48,520 --> 00:46:52,320 Следующая категория, небезопасный Чувствительная хранение данных, 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 Но мы даже видели это произошло в приложении Citigroup. 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 Вот почему я лично не делать ставку на мой мобильный. 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 Следующий область, небезопасный Чувствительная Передача данных, 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 Они просто не использовать API-интерфейсы правильно. 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 Недействительный сертификат будет принят. 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, и они кодируются ключ. 720 00:50:29,700 --> 00:50:31,940 Ну, когда вы создаете серверное приложение, да, 721 00:50:31,940 --> 00:50:34,240 кодируются ключ является не очень хорошая идея. 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 Это первый является одним мы видим много, где они жестко 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% из программы, мы смотрели на 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 не то что это хорошая идея, но это на самом деле использует опубликованные API, 753 00:52:38,980 --> 00:52:42,530 что на платформе, но делает их таким образом 754 00:52:42,530 --> 00:52:46,680 что крипто будут уязвимы, 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 Injection. 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 А потом у нас есть некоторые данные о прошивкой. 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 Может быть, API-интерфейсы являются немного легче, названия коды немного лучше на МО. 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 так что трудно злоумышленнику выполнить произвольный код на МО. 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 Market. 798 00:55:33,220 --> 00:55:36,240 Яблоко, по крайней мере владеет исправлений. 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 операционной системы на платформе Андроид? 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 старшие устройства, когда кто-то приходит с джейлбрейком для этого устройства, 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 У вас есть в основном 3 движущихся частей здесь, 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]