1 00:00:00,000 --> 00:00:02,610 >> [Seminarium] [Obrona za urządzeniem: Mobile Application Bezpieczeństwo] 2 00:00:02,610 --> 00:00:04,380 [Chris Wysopal] [Harvard University] 3 00:00:04,380 --> 00:00:07,830 [To jest CS50.] [CS50.TV] 4 00:00:07,830 --> 00:00:10,360 >> Dobry. Nazywam się Chris Wysopal. 5 00:00:10,360 --> 00:00:13,360 Jestem CTO i współzałożyciel Veracode. 6 00:00:13,360 --> 00:00:15,880 Veracode jest firma bezpieczeństwa aplikacji. 7 00:00:15,880 --> 00:00:18,230 Testujemy wszystkie rodzaje różnych zastosowań, 8 00:00:18,230 --> 00:00:25,060 i co zamierzam dziś mówić jest bezpieczeństwo aplikacji mobilnych. 9 00:00:25,060 --> 00:00:28,630 Moje tło jest Robiłem badania bezpieczeństwa 10 00:00:28,630 --> 00:00:31,970 przez bardzo długi czas, prawdopodobnie tak długo, jak nikogo. 11 00:00:31,970 --> 00:00:35,000 I rozpoczęła się w połowie lat 90., 12 00:00:35,000 --> 00:00:37,370 i to był czas, że było całkiem interesujące, ponieważ 13 00:00:37,370 --> 00:00:39,220 mieliśmy zmianę paradygmatu w połowie lat 90-tych. 14 00:00:39,220 --> 00:00:43,520 Nagle wszystkich komputerach był podłączony do Internetu, 15 00:00:43,520 --> 00:00:46,550 a następnie mieliśmy początki aplikacji internetowych, 16 00:00:46,550 --> 00:00:49,330 i to jest to, co skupia się na dużo czasu. 17 00:00:49,330 --> 00:00:51,160 To ciekawe. 18 00:00:51,160 --> 00:00:53,930 Teraz mamy kolejną zmianę paradygmatu dzieje z informatyki, 19 00:00:53,930 --> 00:00:58,710 które jest przejście do zastosowań mobilnych. 20 00:00:58,710 --> 00:01:03,680 >> Czuję to trochę podobnym czasie to było w latach 90-tych 21 00:01:03,680 --> 00:01:07,650 kiedy badali aplikacji internetowych i stwierdzenia wad, takich jak 22 00:01:07,650 --> 00:01:11,800 Sesja i błędy zarządzania SQL injection 23 00:01:11,800 --> 00:01:14,940 które tak naprawdę nie istniała wcześniej, i nagle byli wszędzie 24 00:01:14,940 --> 00:01:19,360 w aplikacjach internetowych, a teraz dużo czasu spędzam 25 00:01:19,360 --> 00:01:27,950 patrzy w aplikacjach mobilnych i patrząc na to, co się dzieje tam na wolności. 26 00:01:27,950 --> 00:01:32,060 Aplikacje mobilne są naprawdę będzie dominującym platforma obliczeniowa, 27 00:01:32,060 --> 00:01:35,060 tak naprawdę trzeba poświęcić dużo czasu, jeśli jesteś w branży zabezpieczeń 28 00:01:35,060 --> 00:01:39,280 koncentruje się na aplikacjach internetowych. 29 00:01:39,280 --> 00:01:43,420 Było 29 mld aplikacje mobilne pobranych w 2011 roku. 30 00:01:43,420 --> 00:01:47,920 To przewiduje się 76 mld aplikacje 2014. 31 00:01:47,920 --> 00:01:54,040 Tam jest 686 milionów urządzeń, które zostaną zakupione w tym roku, 32 00:01:54,040 --> 00:01:57,060 tak to jest, gdy ludzie będą robić 33 00:01:57,060 --> 00:01:59,600  Większość z ich komputerów klienta w przyszłości. 34 00:01:59,600 --> 00:02:04,220 >> Rozmawiałem wiceprezes Fidelity Investments 35 00:02:04,220 --> 00:02:08,780 kilka miesięcy temu, a on powiedział, że właśnie zobaczył więcej ruchu 36 00:02:08,780 --> 00:02:12,610 robi transakcji finansowych z ich bazy klientów 37 00:02:12,610 --> 00:02:16,230 na telefon aplikacji, niż na ich stronie internetowej, 38 00:02:16,230 --> 00:02:20,610 tak powszechne zastosowanie dla sieci Web w przeszłości był 39 00:02:20,610 --> 00:02:23,800 sprawdzanie notowania giełdowe, zarządzanie portfelem, 40 00:02:23,800 --> 00:02:28,060 a my rzeczywiście widząc, że w 2012 przełącznika na 41 00:02:28,060 --> 00:02:30,960 jest bardziej dominująca w ruchomej platformy. 42 00:02:30,960 --> 00:02:34,530 Z pewnością, jeśli nie będzie jakiejkolwiek działalności przestępczej, 43 00:02:34,530 --> 00:02:38,900 szkodliwe działania, to zaczną się koncentrować na platformie mobilnej 44 00:02:38,900 --> 00:02:44,210 w czasie, gdy ludzie przełączyć się na to. 45 00:02:44,210 --> 00:02:48,320 Jeśli spojrzeć na ruchomej platformie, 46 00:02:48,320 --> 00:02:54,380 spojrzeć na ryzyko platformy jest to przydatne do rozbicie go na różnych warstwach, 47 00:02:54,380 --> 00:02:59,010 jak chcesz to zrobić na komputerze stacjonarnym, 48 00:02:59,010 --> 00:03:02,860 i myślisz o różnych warstwach, oprogramowania, systemu operacyjnego, 49 00:03:02,860 --> 00:03:07,730 warstwa sieci, warstwa sprzętowa i oczywiście, nie ma słabych punktów we wszystkich tych warstw. 50 00:03:07,730 --> 00:03:10,510 >> To samo dzieje się na telefon komórkowy. 51 00:03:10,510 --> 00:03:14,880 Ale telefon, wydaje się, że niektóre z tych warstw jest gorzej. 52 00:03:14,880 --> 00:03:19,840 Dla jednego, warstwy sieciowej jest bardziej problematyczna na komórkę 53 00:03:19,840 --> 00:03:25,650 ponieważ wiele osób w biurze lub w domu 54 00:03:25,650 --> 00:03:30,780 przewodowego połączenia lub mają bezpieczne połączenia Wi-Fi, 55 00:03:30,780 --> 00:03:36,530 oraz z wielu urządzeń mobilnych, jesteś oczywiście poza domem 56 00:03:36,530 --> 00:03:40,520 lub poza biurem partii, a jeśli korzystasz z Wi-Fi nie 57 00:03:40,520 --> 00:03:42,820 być może używasz niepewnego połączenia Wi-Fi, 58 00:03:42,820 --> 00:03:45,570 coś, co jest publiczne Wi-Fi, 59 00:03:45,570 --> 00:03:48,840 więc kiedy myślimy o aplikacjach mobilnych musimy wziąć pod uwagę, 60 00:03:48,840 --> 00:03:53,770 że sieć jest bardziej ryzykowne dla tych zastosowań 61 00:03:53,770 --> 00:03:57,640 gdy jest używany bezprzewodowy. 62 00:03:57,640 --> 00:04:02,410 I kiedy się do więcej aplikacji mobilnych zagrożeń 63 00:04:02,410 --> 00:04:04,910 zobaczysz dlaczego to jest ważniejsze. 64 00:04:04,910 --> 00:04:09,710 Istnieje ryzyko na poziomie sprzętowym na urządzeniach mobilnych. 65 00:04:09,710 --> 00:04:11,670 Jest to obszar prowadzonych badań. 66 00:04:11,670 --> 00:04:15,910 Ludzie nazywają te ataki pasma szerokopasmowego lub ataki 67 00:04:15,910 --> 00:04:21,870 gdzie jesteś atakując firmware, który jest słuchanie radia. 68 00:04:21,870 --> 00:04:25,430 >> To są naprawdę przerażające ataki, ponieważ 69 00:04:25,430 --> 00:04:27,280 użytkownik nie musi nic robić. 70 00:04:27,280 --> 00:04:30,760 Można trafić wiele urządzeń w zasięgu RF 71 00:04:30,760 --> 00:04:36,690 na raz, i wydaje się, gdy badania te pęcherzyki się 72 00:04:36,690 --> 00:04:40,750 szybko zostanie sklasyfikowane gdzie 73 00:04:40,750 --> 00:04:46,600 ludzie uciekają się wokół i powiedzieć: "Oto, powiedz nam o tym, i przestać o tym mówić." 74 00:04:46,600 --> 00:04:49,460 Istnieje kilka badań dzieje się w obszarze szerokopasmowego, 75 00:04:49,460 --> 00:04:51,980 ale to wydaje się być bardzo Hush Hush. 76 00:04:51,980 --> 00:04:56,910 Myślę, że to raczej typ państwa naród badań, że się dzieje. 77 00:04:56,910 --> 00:05:02,140 Obszar aktywny badań, chociaż, warstwę systemu operacyjnego 78 00:05:02,140 --> 00:05:08,910 i znowu, tym razem jest inaczej niż w świecie komputerów stacjonarnych 79 00:05:08,910 --> 00:05:14,840 ponieważ w mobilnych masz te zespoły ludzi zwanych Jailbreakers, 80 00:05:14,840 --> 00:05:18,670 i Jailbreakers różnią się od zwykłych naukowców luki. 81 00:05:18,670 --> 00:05:21,970 Próbują znaleźć luki w systemie operacyjnym, 82 00:05:21,970 --> 00:05:27,000 ale powód próbują znaleźć luki nie jest 83 00:05:27,000 --> 00:05:31,810 włamać się do urządzenia, a ktoś inny to kompromis. 84 00:05:31,810 --> 00:05:34,280 To włamać się do własnego komputera. 85 00:05:34,280 --> 00:05:38,820 >> Chcą włamać się do własnego telefonu komórkowego, zmienić system operacyjny własnego telefonu w 86 00:05:38,820 --> 00:05:41,050 tak, że mogą uruchamiać aplikacje z ich wyboru 87 00:05:41,050 --> 00:05:44,510 i zmienić rzeczy, z pełnymi uprawnieniami administracyjnymi, 88 00:05:44,510 --> 00:05:49,050 i nie chcą powiedzieć o tym sprzedawca. 89 00:05:49,050 --> 00:05:52,960 Oni nie lubią badacza bezpieczeństwa, który jest biały kapelusz badacz bezpieczeństwa 90 00:05:52,960 --> 00:05:56,600 który zrobi odpowiedzialnego ujawniania i powiedz o tym sprzedawca. 91 00:05:56,600 --> 00:06:01,270 Chcą zrobić te badania, i chcą, aby faktycznie opublikować 92 00:06:01,270 --> 00:06:06,400 w exploita lub kod rootkita lub jailbreak, 93 00:06:06,400 --> 00:06:10,010 i chcą zrobić to strategicznie, jak zaraz po 94 00:06:10,010 --> 00:06:13,570 statki dostawcy nowego systemu operacyjnego. 95 00:06:13,570 --> 00:06:16,350 Masz to nieprzyjazne stosunki 96 00:06:16,350 --> 00:06:19,000 z lukami na telefon na poziomie systemu operacyjnego, 97 00:06:19,000 --> 00:06:23,150 i myślę, że jest dość ciekawa, a jedno miejsce, możemy go zobaczyć 98 00:06:23,150 --> 00:06:29,210 to sprawia, że ​​jest tak, że nie jest dobre opublikowany kod wykorzystujący lukę tam 99 00:06:29,210 --> 00:06:31,750 luk na poziomie jądra, 100 00:06:31,750 --> 00:06:35,040 i widzieliśmy faktycznie wykorzystywane przez twórców szkodliwego oprogramowania. 101 00:06:35,040 --> 00:06:38,450 To trochę inaczej niż na świecie PC. 102 00:06:38,450 --> 00:06:42,530 A następnie warstwa końcowa ma górną warstwę, warstwę aplikacji. 103 00:06:42,530 --> 00:06:45,250 To jest to, co mam zamiar mówić o obecnie. 104 00:06:45,250 --> 00:06:48,970 >> Istnieć Inne warstwy, a pozostałe warstwy grać w nią, 105 00:06:48,970 --> 00:06:53,310 ale mam zamiar mówić przede wszystkim o tym, co dzieje się w warstwie aplikacji 106 00:06:53,310 --> 00:06:55,560 gdzie kod działa w piaskownicy. 107 00:06:55,560 --> 00:06:58,670 Nie ma uprawnień administracyjnych. 108 00:06:58,670 --> 00:07:02,170 Ma korzystać z API z urządzenia, 109 00:07:02,170 --> 00:07:06,970 ale nadal, wiele aktywności szkodliwego oprogramowania i wiele ryzyka może się zdarzyć w tej warstwie 110 00:07:06,970 --> 00:07:09,220 ponieważ jest to warstwa, gdzie wszystkie informacje. 111 00:07:09,220 --> 00:07:12,330 Aplikacje mają dostęp do wszystkich informacji o urządzeniu 112 00:07:12,330 --> 00:07:15,390 jeśli mają odpowiednie uprawnienia, 113 00:07:15,390 --> 00:07:17,540 i mogą uzyskać dostęp do różnych czujników na urządzeniu 114 00:07:17,540 --> 00:07:23,950 Czujnik GPS, mikrofon, kamera, coś ty. 115 00:07:23,950 --> 00:07:27,380 Mimo, że mamy tylko mówisz w warstwie aplikacji 116 00:07:27,380 --> 00:07:33,700 mamy dużo ryzyko istnieje. 117 00:07:33,700 --> 00:07:38,450 Inna sprawa, że ​​jest inaczej o środowisku mobilnym 118 00:07:38,450 --> 00:07:45,060 wszyscy gracze jest system operacyjny, czy to BlackBerry lub Android 119 00:07:45,060 --> 00:07:53,410 lub iOS lub Windows Mobile, wszystkie mają drobnoziarnista modelu uprawnień, 120 00:07:53,410 --> 00:07:56,990 i jest jednym ze sposobów, które są wbudowane w system operacyjny 121 00:07:56,990 --> 00:08:01,230 Pomysł, że to nie jest tak ryzykowne, jak myślisz. 122 00:08:01,230 --> 00:08:04,550 Nawet jeśli masz wszystkie swoje kontakty na nie, wszystkie twoje dane osobowe, 123 00:08:04,550 --> 00:08:09,080 masz swoje zdjęcia, masz miejsce na nie, 124 00:08:09,080 --> 00:08:14,820 jesteś przechowywania kodu PIN w banku auto logowanie na nie, to jest bezpieczne, bo 125 00:08:14,820 --> 00:08:19,430 aplikacje muszą mieć pewne uprawnienia, aby w niektórych częściach 126 00:08:19,430 --> 00:08:25,080 informacji na temat urządzenia, a użytkownik musi być przedstawione w 127 00:08:25,080 --> 00:08:29,230 te uprawnienia i powiedzieć dobrze. 128 00:08:29,230 --> 00:08:32,590 >> Problem z nim jest użytkownik zawsze mówi dobrze. 129 00:08:32,590 --> 00:08:35,240 Jako osoba bezpieczeństwa, wiem, można monitować użytkownika, 130 00:08:35,240 --> 00:08:40,100 powiedzieć coś naprawdę złego się stanie, chcesz to się stało? 131 00:08:40,100 --> 00:08:44,680 A jeśli jesteś w pośpiechu lub coś naprawdę kusząco na drugiej stronie, że 132 00:08:44,680 --> 00:08:47,760 jak gra ma być zainstalowana, że ​​czekałeś, 133 00:08:47,760 --> 00:08:50,860 że będziemy kliknij OK. 134 00:08:50,860 --> 00:08:56,630 Dlatego mówię, na slajdzie tutaj po prostu pozwól mi rzucić ptaków na świnie już, 135 00:08:56,630 --> 00:09:03,150 i widać na slajdzie tutaj jest przykładem pola uprawnień BlackBerry. 136 00:09:03,150 --> 00:09:05,990 Mówi: "Proszę ustawić uprawnienia aplikacji podróży BlackBerry 137 00:09:05,990 --> 00:09:09,720 po kliknięciu przycisku poniżej ", a użytkownik jest w zasadzie tylko powiedzieć 138 00:09:09,720 --> 00:09:12,240 ustawić uprawnienia i zapisać. 139 00:09:12,240 --> 00:09:18,010 Oto Android szybka gdzie pokazuje rzeczy, 140 00:09:18,010 --> 00:09:20,260 i faktycznie wrzuca coś, że prawie wygląda jak ostrzeżenie. 141 00:09:20,260 --> 00:09:25,090 Jest tam coś w rodzaju plastyczności znak tam komunikacji sieciowej mówiąc telefon, 142 00:09:25,090 --> 00:09:28,120 ale użytkownik będzie kliknij zainstalować, prawda? 143 00:09:28,120 --> 00:09:32,940 A następnie jeden Apple jest całkowicie nieszkodliwe. 144 00:09:32,940 --> 00:09:34,300 Nie daje jakiegokolwiek ostrzeżenia. 145 00:09:34,300 --> 00:09:37,380 To tylko jabłko chcieliby korzystać z bieżącej lokalizacji. 146 00:09:37,380 --> 00:09:39,670 Oczywiście masz zamiar kliknij OK. 147 00:09:39,670 --> 00:09:42,260 >> Jest to drobnoziarnista modelu zezwolenie, 148 00:09:42,260 --> 00:09:45,890 i aplikacje muszą mieć plik manifestu, w którym deklarujesz 149 00:09:45,890 --> 00:09:49,410 uprawnienia potrzebują, a który zostanie wyświetlony użytkownikowi, 150 00:09:49,410 --> 00:09:53,480 i użytkownik będzie musiał powiedzieć, że przyznanie tych uprawnień. 151 00:09:53,480 --> 00:09:55,080 Ale bądźmy uczciwi. 152 00:09:55,080 --> 00:09:58,400 Użytkownicy są po prostu będzie zawsze mówią dobrze. 153 00:09:58,400 --> 00:10:04,460 Rzućmy okiem na te uprawnienia, które aplikacje są prośbą o 154 00:10:04,460 --> 00:10:06,850 i niektóre z uprawnień, które są tam. 155 00:10:06,850 --> 00:10:09,950 Ta firma pretorianów przeprowadził badanie w zeszłym roku 156 00:10:09,950 --> 00:10:14,170 z 53.000 wniosków analizowanych w Android Market i 3rd party rynkach, 157 00:10:14,170 --> 00:10:16,770 tak, to wszystko jest Android. 158 00:10:16,770 --> 00:10:19,670 I średnio o ok. 3 uprawnienia. 159 00:10:19,670 --> 00:10:23,370 Niektóre aplikacje o 117 uprawnień, 160 00:10:23,370 --> 00:10:27,480 więc oczywiście są bardzo drobnoziarnista i zbyt skomplikowane dla użytkownika, aby zrozumieć 161 00:10:27,480 --> 00:10:31,600 jeśli są one przedstawiane z tej aplikacji, która potrzebuje tych 117 uprawnień. 162 00:10:31,600 --> 00:10:37,270 To jak umowy licencyjnej dla użytkownika końcowego, która jest 45 stron. 163 00:10:37,270 --> 00:10:40,240 Może wkrótce będą mieli możliwość, gdzie to jest jak 164 00:10:40,240 --> 00:10:43,100 wydrukować uprawnienia i wysłać mi e-mail. 165 00:10:43,100 --> 00:10:45,480 >> Ale jeśli spojrzeć na niektóre z najlepszych ciekawych uprawnień 166 00:10:45,480 --> 00:10:50,840 24% aplikacji, które są pobierane z 53000 167 00:10:50,840 --> 00:10:57,230 Żądane informacje GPS z urządzenia. 168 00:10:57,230 --> 00:10:59,810 8% przeczytaj kontakty. 169 00:10:59,810 --> 00:11:03,770 4% wysłany SMS i 3% otrzymanej wiadomości. 170 00:11:03,770 --> 00:11:07,730 2% nagrany dźwięk. 171 00:11:07,730 --> 00:11:11,210 1% przetwarzane połączeń wychodzących. 172 00:11:11,210 --> 00:11:13,140 Nie wiem. 173 00:11:13,140 --> 00:11:17,520 Nie sądzę, że 4% z aplikacji w App Store naprawdę trzeba wysyłać wiadomości SMS, 174 00:11:17,520 --> 00:11:21,410 więc myślę, że to znak, że coś nieprzewidzianego się dzieje. 175 00:11:21,410 --> 00:11:24,350 8% z aplikacji należy przeczytać listę kontaktów. 176 00:11:24,350 --> 00:11:26,510 To chyba nie jest to konieczne. 177 00:11:26,510 --> 00:11:30,990 Jednym z innych ciekawych rzeczy o uprawnieniach jest 178 00:11:30,990 --> 00:11:36,740 jeśli link w bibliotekach współdzielonych w swojej aplikacji 179 00:11:36,740 --> 00:11:39,780 te dziedziczą uprawnienia aplikacji, 180 00:11:39,780 --> 00:11:46,570 więc jeśli Twoja aplikacja musi listę kontaktów lub potrzebuje funkcjonować lokalizacji GPS 181 00:11:46,570 --> 00:11:49,940 i odwołuje się w bibliotece reklamowych, na przykład, 182 00:11:49,940 --> 00:11:53,170 że biblioteka ogłoszenie będzie również w stanie uzyskać dostęp do kontaktów 183 00:11:53,170 --> 00:11:57,630 , a także być w stanie uzyskać dostępu do lokalizacji GPS, 184 00:11:57,630 --> 00:12:01,990 i twórca aplikacji nie wie nic na temat kodu, który jest uruchomiony w bibliotece reklam. 185 00:12:01,990 --> 00:12:05,370 Oni po prostu łącząc że dlatego, że chcą zarabiać na ich aplikację. 186 00:12:05,370 --> 00:12:09,820 >> To gdzie i będę mówić o niektórych z przykładów tego 187 00:12:09,820 --> 00:12:13,930 Aplikacja o nazwie Pandora, gdzie deweloper aplikacji 188 00:12:13,930 --> 00:12:18,910 może nieświadomie być wyciek informacji 189 00:12:18,910 --> 00:12:24,580 od swoich użytkowników, bo oni bibliotek połączonych w. 190 00:12:24,580 --> 00:12:30,110 Geodezyjnych krajobrazu tam, patrząc na wszystkich różnych aplikacji 191 00:12:30,110 --> 00:12:34,310 które zostały przedstawione w mediach jako złośliwe lub robią użytkownicy coś nie chce 192 00:12:34,310 --> 00:12:39,360 a następnie kontroli wiele aplikacji, możemy zrobić wiele statycznej analizy binarnego na aplikacje mobilne, 193 00:12:39,360 --> 00:12:42,010 więc mamy kontroli ich i spojrzał na kodzie samego- 194 00:12:42,010 --> 00:12:49,640 wpadliśmy na to, co nazywamy naszym top 10 lista zachowań ryzykownych w aplikacji. 195 00:12:49,640 --> 00:12:54,180 I to z podziałem na 2 sekcje, złośliwego kodu, 196 00:12:54,180 --> 00:12:57,600 tak, to są złe rzeczy, że aplikacje, które mogą być robi 197 00:12:57,600 --> 00:13:06,520 mogą być coś, złośliwy osobnik 198 00:13:06,520 --> 00:13:10,060 został specjalnie umieścić w aplikacji, ale jest trochę rozmyty. 199 00:13:10,060 --> 00:13:13,300 To może być coś, co deweloper sądzi, jest w porządku, 200 00:13:13,300 --> 00:13:16,350 lecz kończy się traktowane jako szkodliwy przez użytkownika. 201 00:13:16,350 --> 00:13:19,830 >> A potem drugi odcinek jest to, co nazywamy luki kodowania, 202 00:13:19,830 --> 00:13:24,600 i to są rzeczy, w których deweloper w zasadzie robi błędy 203 00:13:24,600 --> 00:13:27,200 lub po prostu nie rozumiem, jak napisać aplikację bezpiecznie, 204 00:13:27,200 --> 00:13:30,260  i to wprowadzenie użytkownika aplikacji na ryzyko. 205 00:13:30,260 --> 00:13:34,060 Zamierzam przejść przez nich szczegółowo i podać kilka przykładów. 206 00:13:34,060 --> 00:13:39,620 Dla odniesienia, chciałem postawić OWASP mobile top 10 listy. 207 00:13:39,620 --> 00:13:43,590 Są to kwestie, które 10 grupa w OWASP, 208 00:13:43,590 --> 00:13:48,900 Projekt Otwórz Web Application Security mają grupę roboczą 209 00:13:48,900 --> 00:13:50,620 działa na telefon top 10 listy. 210 00:13:50,620 --> 00:13:54,600 Mają bardzo słynny www top 10 listy, które są top 10 211 00:13:54,600 --> 00:13:57,180 ryzykowny rzeczy, które można mieć w aplikacji internetowej. 212 00:13:57,180 --> 00:13:59,090 Robią to samo dla telefonów komórkowych, 213 00:13:59,090 --> 00:14:01,750 , a ich lista jest trochę inaczej niż u nas. 214 00:14:01,750 --> 00:14:03,670 6 z 10 są takie same. 215 00:14:03,670 --> 00:14:06,020 Mają 4, które są różne. 216 00:14:06,020 --> 00:14:10,550 Myślę, że mają trochę inne podejście 217 00:14:10,550 --> 00:14:14,490 Ryzyko w aplikacjach mobilnych, gdzie wiele ich problemów 218 00:14:14,490 --> 00:14:20,490 naprawdę jak aplikacja komunikuje się z serwerem zaplecza 219 00:14:20,490 --> 00:14:23,100 lub, co się dzieje na serwerze back-end, 220 00:14:23,100 --> 00:14:29,220 nie tyle aplikacji, które mają ryzykowne zachowania, które są tylko proste aplikacje klienckie. 221 00:14:29,220 --> 00:14:36,640 >> Te na czerwono są tu różnice między list 2. 222 00:14:36,640 --> 00:14:40,740 A niektóre z mojego zespołu badawczego rzeczywiście przyczyniły się do tego projektu, 223 00:14:40,740 --> 00:14:44,570 więc zobaczymy, co się stanie w czasie, ale myślę, że jest tu na wynos 224 00:14:44,570 --> 00:14:47,550 naprawdę nie wiem, co jest lista 10 najlepszych aplikacji mobilnych, ponieważ w 225 00:14:47,550 --> 00:14:50,510 oni naprawdę tylko już od 2 lub 3 lat, 226 00:14:50,510 --> 00:14:57,750 i nie było wystarczająco dużo czasu, aby naprawdę badać systemy operacyjne 227 00:14:57,750 --> 00:15:00,450 i to, co oni są w stanie i nie było wystarczająco dużo czasu, 228 00:15:00,450 --> 00:15:06,870 dla złośliwego społeczności, jeśli chcesz, aby spędzić dużo czasu 229 00:15:06,870 --> 00:15:12,910 próbuje atakować użytkowników przez aplikacje mobilne, więc oczekiwać, że te listy, aby zmienić trochę. 230 00:15:12,910 --> 00:15:18,720 Ale teraz, to 10 głównych zmartwienia. 231 00:15:18,720 --> 00:15:24,150 Można się zastanawiać, na mobilnej stronie, gdzie nie-mobilny szkodliwy kod 232 00:15:24,150 --> 00:15:28,880 jak to dostać się do urządzenia? 233 00:15:28,880 --> 00:15:35,210 North Carolina State ma projekt o nazwie Malware Genome Project telefonów 234 00:15:35,210 --> 00:15:39,520 gdzie są zbierając jak najwięcej mobilnego szkodliwego oprogramowania, jak tylko mogą i analizowania go, 235 00:15:39,520 --> 00:15:45,270 a oni w podziale wektorów wtryskowych, że mobilne szkodliwe oprogramowanie wykorzystuje, 236 00:15:45,270 --> 00:15:51,490 i 86% użyć techniki zwanej przepakowywanie, 237 00:15:51,490 --> 00:15:54,160 i to tylko na platformie Android 238 00:15:54,160 --> 00:15:56,720 naprawdę można zrobić przepakowania. 239 00:15:56,720 --> 00:16:03,100 >> Powód jest kod Androida jest zbudowany z 240 00:16:03,100 --> 00:16:08,130 kod bajtowy Javy o nazwie Dalvik, która jest łatwo decompilable. 241 00:16:08,130 --> 00:16:12,460 Co złego może zrobić, to facet 242 00:16:12,460 --> 00:16:16,590 podjęcia aplikacji Android, dekompilacji, 243 00:16:16,590 --> 00:16:20,120 wprowadzić swój złośliwy kod, ponownie skompilować go, 244 00:16:20,120 --> 00:16:28,070 , a następnie umieścić go w App Store oznaczającą siebie nową wersję tej aplikacji, 245 00:16:28,070 --> 00:16:30,330 lub po prostu może zmienić nazwę aplikacji. 246 00:16:30,330 --> 00:16:35,140 Jeśli to był jakiś rodzaj gry, zmień nazwę nieznacznie, 247 00:16:35,140 --> 00:16:42,860 i tak to jest, jak przepakowywanie 86% mobilnych szkodliwych programów zostanie rozdzielone. 248 00:16:42,860 --> 00:16:45,810 Jest inna technika zwana aktualizacja, która jest 249 00:16:45,810 --> 00:16:50,030 bardzo podobne do przepakowania, ale faktycznie nie umieścić złośliwy kod w. 250 00:16:50,030 --> 00:16:52,870 Co musisz zrobić, to umieścić w małej mechanizmu aktualizacji. 251 00:16:52,870 --> 00:16:56,660 Państwo dekompilować, można umieścić w mechanizm aktualizacji, a ty go ponownie skompilować, 252 00:16:56,660 --> 00:17:02,360 i wtedy, gdy aplikacja jest uruchomiona to ściąga złośliwego oprogramowania na urządzeniu. 253 00:17:02,360 --> 00:17:06,300 >> Zdecydowanie większość to te 2 techniki. 254 00:17:06,300 --> 00:17:12,710 Nie ma naprawdę dużo do pobrania drive-bys lub drive-by pliki do pobrania na telefony komórkowe, 255 00:17:12,710 --> 00:17:15,890 co może być jak atak phishingu. 256 00:17:15,890 --> 00:17:18,200 Hej, sprawdź to naprawdę fajne strony internetowej, 257 00:17:18,200 --> 00:17:21,020 czy trzeba iść do tej strony i wypełnić ten formularz 258 00:17:21,020 --> 00:17:24,420 zachować kontynuuje robić coś. 259 00:17:24,420 --> 00:17:26,230 Te są ataki typu phishing. 260 00:17:26,230 --> 00:17:28,160 To samo może zdarzyć się na platformie mobilnej, w którym 261 00:17:28,160 --> 00:17:33,830 wskazują na mobilnej aplikacji do pobrania, należy powiedzieć "Cześć, to jest Bank of America." 262 00:17:33,830 --> 00:17:36,070 "Widzimy, że używasz tej aplikacji." 263 00:17:36,070 --> 00:17:38,540 "Należy pobrać tę inną aplikację." 264 00:17:38,540 --> 00:17:41,170 Teoretycznie, że może pracować. 265 00:17:41,170 --> 00:17:48,610 Może to po prostu nie jest wystarczająco wykorzystywany jest w celu ustalenia, czy jest to sukces, czy nie, 266 00:17:48,610 --> 00:17:51,680 jednak stwierdzono, że mniej niż 1% w czasie technika jest stosowana. 267 00:17:51,680 --> 00:17:56,130 Większość czasu to naprawdę przepakowane kod. 268 00:17:56,130 --> 00:17:58,710 >> Jest jeszcze jedna kategoria nazywa samodzielny 269 00:17:58,710 --> 00:18:01,420 gdzie ktoś po prostu tworzy zupełnie nowe zastosowanie. 270 00:18:01,420 --> 00:18:04,020 Budują aplikację, która może służyć za coś. 271 00:18:04,020 --> 00:18:07,360 To nie jest przepakowywanie coś innego, i że ma złośliwego kodu. 272 00:18:07,360 --> 00:18:11,230 To stosuje się 14% czasu. 273 00:18:11,230 --> 00:18:17,880 Teraz chcę rozmawiać o tym, co jest złośliwy kod robi? 274 00:18:17,880 --> 00:18:23,070 Jednym z pierwszych malware tam 275 00:18:23,070 --> 00:18:25,490 można rozważyć spyware. 276 00:18:25,490 --> 00:18:27,620 W zasadzie szpieguje użytkownika. 277 00:18:27,620 --> 00:18:30,470 Gromadzi e-maile, wiadomości SMS. 278 00:18:30,470 --> 00:18:32,340 Okazuje mikrofon. 279 00:18:32,340 --> 00:18:37,330 Przechwytuje książki kontaktów i wysyła go do kogoś innego. 280 00:18:37,330 --> 00:18:40,870 Tego typu spyware istnieje na PC, 281 00:18:40,870 --> 00:18:46,200 więc to ma sens dla ludzi, aby spróbować zrobić to na urządzeniach mobilnych. 282 00:18:46,200 --> 00:18:53,230 >> Jednym z pierwszych przykładów to był program o nazwie Tajne SMS Replicator. 283 00:18:53,230 --> 00:18:56,250 To było w Android Marketplace kilka lat temu, 284 00:18:56,250 --> 00:18:59,960 i pomysł był, gdybyś miał dostęp do czyjegoś telefonu Android 285 00:18:59,960 --> 00:19:03,450 że chciał szpiegować, więc może to twój małżonek 286 00:19:03,450 --> 00:19:07,600 lub innych znaczących i chcesz szpiegować ich wiadomości tekstowych, 287 00:19:07,600 --> 00:19:11,200 można pobrać aplikację i zainstalować ją i skonfigurować 288 00:19:11,200 --> 00:19:16,540 wysłać wiadomość SMS do Ciebie z kopią 289 00:19:16,540 --> 00:19:21,710 każdej wiadomości tekstowej SMS dostali. 290 00:19:21,710 --> 00:19:27,220 To oczywiście jest w pogwałcenia zasad App Store z usługi, 291 00:19:27,220 --> 00:19:32,040 i to zostało usunięte z Android Marketplace w ciągu 18 godzin, że jest tam, 292 00:19:32,040 --> 00:19:36,760 więc bardzo mała liczba osób było zagrożonych z tego powodu. 293 00:19:36,760 --> 00:19:42,510 Teraz, myślę, że jeśli program został nazwany coś może trochę mniej prowokacyjny 294 00:19:42,510 --> 00:19:48,690 jak Tajnej SMS replikatora prawdopodobnie będzie pracował o wiele lepiej. 295 00:19:48,690 --> 00:19:52,870 Ale to było raczej oczywiste. 296 00:19:52,870 --> 00:19:58,680 >> Jedną z rzeczy, które możemy zrobić, aby ustalić, czy aplikacje mają ten problem, że nie ma 297 00:19:58,680 --> 00:20:01,410 jest sprawdzenie kodu. 298 00:20:01,410 --> 00:20:06,250 To jest rzeczywiście bardzo proste do zrobienia na Androida, ponieważ możemy dekompilować aplikacje. 299 00:20:06,250 --> 00:20:11,050 Na iOS można użyć dezasembler jak IDA Pro 300 00:20:11,050 --> 00:20:17,190 patrzeć Interfejsy API aplikacji, co dzwoni i co robi. 301 00:20:17,190 --> 00:20:20,680 Napisaliśmy własny binarny analizator statyczny dla naszego kodu 302 00:20:20,680 --> 00:20:24,940 i mamy to zrobić, a więc to, co można zrobić, to można powiedzieć, 303 00:20:24,940 --> 00:20:30,490 Urządzenie nie ma niczego, co jest w zasadzie szpiegostwo na mnie lub mnie śledzenia? 304 00:20:30,490 --> 00:20:33,360 I mam tu na iPhone kilka przykładów. 305 00:20:33,360 --> 00:20:41,440 Ten pierwszy przykład jest sposób uzyskiwania dostępu do UUID w telefonie. 306 00:20:41,440 --> 00:20:47,060 To jest rzeczywiście coś, że Apple po prostu zakazane dla nowych aplikacji, 307 00:20:47,060 --> 00:20:52,540 ale stare aplikacje, które mogą być uruchomione na telefonie nadal może to zrobić, 308 00:20:52,540 --> 00:20:56,500 i tak, że unikalny identyfikator może być wykorzystany do śledzenia użytkownika 309 00:20:56,500 --> 00:21:00,440 w wielu różnych zastosowaniach. 310 00:21:00,440 --> 00:21:07,180 >> Na Androida, mam tu przykład z coraz lokalizację urządzenia. 311 00:21:07,180 --> 00:21:10,310 Widać, że jeśli wywołanie API jest tam, że aplikacja jest śledzenie, 312 00:21:10,310 --> 00:21:15,000 i można zobaczyć, czy robi się znakomitą lokalizacją lub grubej lokalizacji. 313 00:21:15,000 --> 00:21:18,860 A następnie na dole tutaj, mam przykład jak na BlackBerry 314 00:21:18,860 --> 00:21:25,130 aplikacja może uzyskać dostęp do wiadomości e-mail w skrzynce odbiorczej. 315 00:21:25,130 --> 00:21:27,660 Są to rodzaj rzeczy, które można sprawdzić, aby zobaczyć 316 00:21:27,660 --> 00:21:32,360 jeśli aplikacja robi te rzeczy. 317 00:21:32,360 --> 00:21:38,320 Druga duża kategoria szkodliwego zachowania, a to jest chyba największy kategoria teraz, 318 00:21:38,320 --> 00:21:43,950 jest nieuprawnione wybieranie, SMS nieautoryzowane Premium 319 00:21:43,950 --> 00:21:46,080 lub nieautoryzowanych płatności. 320 00:21:46,080 --> 00:21:48,930 Inną rzeczą, która jest unikalna o telefonie 321 00:21:48,930 --> 00:21:52,700 Urządzenie jest podłączone do konta rozliczeniowego, 322 00:21:52,700 --> 00:21:55,960 i kiedy działania stało na telefon 323 00:21:55,960 --> 00:21:58,510 może stworzyć opłat. 324 00:21:58,510 --> 00:22:00,700 Można kupić rzeczy przez telefon, 325 00:22:00,700 --> 00:22:04,390 i podczas wysyłania wiadomości tekstowych SMS Premium jesteś rzeczywiście daje pieniądze 326 00:22:04,390 --> 00:22:11,590 posiadaczowi rachunku numeru telefonu z drugiej strony. 327 00:22:11,590 --> 00:22:17,420 Te zostały utworzone, aby uzyskać notowania giełdowe czy horoskop dzienny lub inne rzeczy, 328 00:22:17,420 --> 00:22:21,680 ale można je ustawić, aby zamówić produkt wysyłając SMS. 329 00:22:21,680 --> 00:22:26,970 Ludzie dają pieniądze na Czerwony Krzyż, wysyłając wiadomość tekstową. 330 00:22:26,970 --> 00:22:30,650 Możesz dać 10 dolarów w ten sposób. 331 00:22:30,650 --> 00:22:34,190 >> Napastnicy, co zrobili jest powołana 332 00:22:34,190 --> 00:22:38,750 rachunków w obcych krajach, a oni umieścić w złośliwym oprogramowaniem 333 00:22:38,750 --> 00:22:42,840 że telefon wysyła wiadomość tekstową SMS Premium, 334 00:22:42,840 --> 00:22:47,700 powiedzieć, kilka razy dziennie, a na koniec miesiąca można zrealizować spędziłem 335 00:22:47,700 --> 00:22:52,090 dziesiątki a może nawet setki dolarów, a oni odejść z pieniędzmi. 336 00:22:52,090 --> 00:22:57,280 To się tak źle, że to było pierwszą rzeczą, że Android 337 00:22:57,280 --> 00:23:00,760 Rynek lub Google miejsce-to był Android Marketplace w czasie, 338 00:23:00,760 --> 00:23:04,430 i to jest teraz Google Play-pierwszą rzeczą, że Google rozpoczął sprawdzanie. 339 00:23:04,430 --> 00:23:08,700 Kiedy Google rozpoczął dystrybucję aplikacji Android w ich app store 340 00:23:08,700 --> 00:23:11,350 powiedzieli, że nie zamierzają sprawdzić na wszystko. 341 00:23:11,350 --> 00:23:15,630 Będziemy ciągnąć aplikacje raz zostaliśmy powiadomieni, że złamałem warunki korzystania z usługi, 342 00:23:15,630 --> 00:23:17,520 ale my nie zamierzamy sprawdzić na wszystko. 343 00:23:17,520 --> 00:23:24,350 Cóż, rok temu zrobiło się tak źle z tym SMS Premium sms malware 344 00:23:24,350 --> 00:23:28,030 że jest to pierwsza rzecz, zaczęli sprawdzanie. 345 00:23:28,030 --> 00:23:31,770 Jeśli aplikacja może wysyłać wiadomości SMS 346 00:23:31,770 --> 00:23:34,750 oni dalej ręcznie rozpatruje ten wniosek. 347 00:23:34,750 --> 00:23:38,770 Wyglądają na API, które wymagają tego, 348 00:23:38,770 --> 00:23:40,580 a teraz od tego czasu Google rozszerzył, 349 00:23:40,580 --> 00:23:46,900 ale to była pierwsza rzecz, że oni zaczęli szukać. 350 00:23:46,900 --> 00:23:50,690 >> Niektóre inne aplikacje, które zrobił kilka wiadomości SMS, 351 00:23:50,690 --> 00:23:56,980 to Android Qicsomos, myślę, że to jest tzw. 352 00:23:56,980 --> 00:24:02,670 Było to wydarzenie na prąd telefon, gdzie wyszedł ten CarrierIQ 353 00:24:02,670 --> 00:24:07,720 jak spyware umieścić na urządzeniu przez przewoźników, 354 00:24:07,720 --> 00:24:10,820 więc ludzie chcieli wiedzieć, czy ich telefon był narażony na to, 355 00:24:10,820 --> 00:24:13,890 i był to bezpłatna aplikacja, która testowany to. 356 00:24:13,890 --> 00:24:17,520 Cóż, oczywiście, to, co ta aplikacja nie było wysyłane wiadomości tekstowe SMS Premium, 357 00:24:17,520 --> 00:24:20,090 tak, sprawdzając, aby zobaczyć, czy jesteś zainfekowany oprogramowaniem szpiegującym 358 00:24:20,090 --> 00:24:24,930 załadowany złośliwego oprogramowania na urządzeniu. 359 00:24:24,930 --> 00:24:27,310 Widzieliśmy to samo stało się w ostatniej Super Bowl. 360 00:24:27,310 --> 00:24:33,180 Nie było fałszywe wersja piłki nożnej gra Madden 361 00:24:33,180 --> 00:24:38,320 że wysyłane wiadomości SMS premium. 362 00:24:38,320 --> 00:24:45,750 To rzeczywiście próbował stworzyć sieć botów zbyt urządzenia. 363 00:24:45,750 --> 00:24:48,090 Tutaj mam kilka przykładów. 364 00:24:48,090 --> 00:24:52,640 Co ciekawe, Apple był dość sprytny, 365 00:24:52,640 --> 00:24:58,470 i nie pozwalają aplikacjom na wysyłanie wiadomości SMS w ogóle. 366 00:24:58,470 --> 00:25:00,350 Nie aplikacja może to zrobić. 367 00:25:00,350 --> 00:25:03,530 To świetny sposób na pozbycie się całej klasy luki, 368 00:25:03,530 --> 00:25:09,040 ale na Android można to zrobić, i oczywiście od BlackBerry można to zrobić też. 369 00:25:09,040 --> 00:25:13,060 To ciekawe, że na BlackBerry wszystko czego potrzebujesz to internet uprawnienia 370 00:25:13,060 --> 00:25:18,370 wysłać wiadomość SMS. 371 00:25:18,370 --> 00:25:21,580 >> Inne rzeczy naprawdę, że szukamy 372 00:25:21,580 --> 00:25:24,780 kiedy patrzymy, aby zobaczyć, czy coś jest szkodliwy tylko każdy rodzaj 373 00:25:24,780 --> 00:25:28,100 nieautoryzowana aktywność sieciowa, jak spojrzeć na aktywność sieci 374 00:25:28,100 --> 00:25:31,570 aplikacja ma mieć swoją funkcjonalność, 375 00:25:31,570 --> 00:25:35,380 i spojrzeć na to innej działalności sieci. 376 00:25:35,380 --> 00:25:43,380 Być może aplikacja, do pracy, musi uzyskać dane przez HTTP, 377 00:25:43,380 --> 00:25:47,500 ale jeśli robi rzeczy, na adres e-mail lub SMS lub Bluetooth czy coś takiego 378 00:25:47,500 --> 00:25:52,890 teraz, że aplikacja może być potencjalnie szkodliwy, więc to jest kolejna rzecz, można skontrolować. 379 00:25:52,890 --> 00:26:00,430 I na tym slajdzie tutaj mam kilka przykładów, które. 380 00:26:00,430 --> 00:26:05,950 Inną ciekawą rzeczą, widzieliśmy malware się w 2009 roku, 381 00:26:05,950 --> 00:26:07,600 a stało się to w wielkim stylu. 382 00:26:07,600 --> 00:26:11,390 Nie wiem, czy to się tak bardzo od tego czasu, ale było ok. 383 00:26:11,390 --> 00:26:15,140 która wcieliła innej aplikacji. 384 00:26:15,140 --> 00:26:21,700 Był to zestaw aplikacji, i został nazwany atak 09Droid, 385 00:26:21,700 --> 00:26:29,770 i ktoś uznał, że nie było dużo małych, średnich banków regionalnych, 386 00:26:29,770 --> 00:26:32,260 że nie ma aplikacji bankowości internetowej, 387 00:26:32,260 --> 00:26:36,870 więc to, co zrobili było zbudowano około 50 aplikacji bankowości internetowej 388 00:26:36,870 --> 00:26:39,410 że wszystko, co nie było mieć nazwę użytkownika i hasło 389 00:26:39,410 --> 00:26:42,190 i przekierowanie do strony internetowej. 390 00:26:42,190 --> 00:26:47,470 A więc umieścić je wszystkie w Google Marketplace, 391 00:26:47,470 --> 00:26:51,530 w Android Marketplace, a gdy ktoś szukał aby sprawdzić, czy ich bank 392 00:26:51,530 --> 00:26:56,000 miał zastosowanie oni znaleźć fałszywego wniosku, 393 00:26:56,000 --> 00:27:01,230 które zebrano ich poświadczenia, a następnie przekierować je na swojej stronie internetowej. 394 00:27:01,230 --> 00:27:06,640 Sposób, że rzeczywiście stał-aplikacje były tam przez kilka tygodni, 395 00:27:06,640 --> 00:27:09,050 i było wiele tysięcy pobrań. 396 00:27:09,050 --> 00:27:12,910 >> Sposób to wyszło na jaw, ktoś miał problem 397 00:27:12,910 --> 00:27:15,740 z jedną z aplikacji, i nazwali swojego banku, 398 00:27:15,740 --> 00:27:18,390 i nazywa się ich linię dla klientów banku i powiedział, 399 00:27:18,390 --> 00:27:21,180 "Mam problem z aplikacji bankowości mobilnej." 400 00:27:21,180 --> 00:27:23,460 "Czy możesz mi pomóc?" 401 00:27:23,460 --> 00:27:26,540 A oni powiedzieli: "Nie mamy aplikację bankowości mobilnej." 402 00:27:26,540 --> 00:27:28,120 Że rozpoczęła dochodzenie. 403 00:27:28,120 --> 00:27:31,200 Że Bank nazwie Google, a następnie Google spojrzał i powiedział: 404 00:27:31,200 --> 00:27:37,220 "Wow, ten sam autor napisał 50 aplikacji bankowych" i wziął je wszystkie. 405 00:27:37,220 --> 00:27:43,410 Ale z pewnością może to się nie powtórzy. 406 00:27:43,410 --> 00:27:51,790 Jest lista wszystkich różnych banków tutaj 407 00:27:51,790 --> 00:27:55,870 , które były częścią tego oszustwa. 408 00:27:55,870 --> 00:28:02,050 Inna sprawa, aplikacja może zrobić, to obecny UI z innej aplikacji. 409 00:28:02,050 --> 00:28:06,430 Podczas gdy jest uruchomiony to może pojawi się na Facebook UI. 410 00:28:06,430 --> 00:28:09,540 To mówi, że musisz umieścić swoją nazwę użytkownika i hasło, aby kontynuować 411 00:28:09,540 --> 00:28:15,090 lub umieścić dowolną nazwę użytkownika i hasło na stronie UI 412 00:28:15,090 --> 00:28:18,420 że być może użytkownik korzysta tylko próbować oszukać użytkownika 413 00:28:18,420 --> 00:28:21,340 na wprowadzenie poświadczeń w. 414 00:28:21,340 --> 00:28:25,590 To jest naprawdę proste równoległe ataki e-mail typu phishing 415 00:28:25,590 --> 00:28:28,210 gdzie ktoś wysyła wiadomość e-mail 416 00:28:28,210 --> 00:28:33,050 i daje w zasadzie fałszywego UI na stronie internetowej 417 00:28:33,050 --> 00:28:37,320 , że masz dostęp do. 418 00:28:37,320 --> 00:28:41,590 >> Inne rzeczy szukać w złośliwego kodu jest zmiana systemu. 419 00:28:41,590 --> 00:28:48,160 Możesz zajrzeć do wszystkich wywołań API, które wymagają przywilejów roota 420 00:28:48,160 --> 00:28:50,870 wykonać poprawnie. 421 00:28:50,870 --> 00:28:56,160 Zmiana Web Proxy urządzenia będzie coś, że aplikacja 422 00:28:56,160 --> 00:28:59,530 nie powinien być w stanie to zrobić. 423 00:28:59,530 --> 00:29:03,030 Ale jeśli ma kod w aplikacji do zrobienia, że ​​nie 424 00:29:03,030 --> 00:29:05,960 wiesz, że to jest prawdopodobnie szkodliwa aplikacja 425 00:29:05,960 --> 00:29:09,620 lub bardzo wysokie prawdopodobieństwo złośliwa aplikacja, 426 00:29:09,620 --> 00:29:13,910 i tak to, co by się stało, jest to, że aplikacja będzie mieć jakiś sposób eskalacji przywilejów. 427 00:29:13,910 --> 00:29:17,200 Miałoby to jakiś przywilej wykorzystać eskalacji 428 00:29:17,200 --> 00:29:20,730 w aplikacji, a następnie po jego eskalacji przywilejów 429 00:29:20,730 --> 00:29:23,800 by to zrobić te zmiany systemowe. 430 00:29:23,800 --> 00:29:28,010 Można znaleźć złośliwe oprogramowanie, które ma przekroczenia uprawnień 431 00:29:28,010 --> 00:29:32,550 w nim, nawet nie wiedząc, jak się przekroczenia uprawnień 432 00:29:32,550 --> 00:29:37,960 wykorzystywać będzie się działo, a to ładny, prosty sposób 433 00:29:37,960 --> 00:29:41,220 patrzeć pod kątem złośliwego oprogramowania. 434 00:29:41,220 --> 00:29:46,030 DroidDream był prawdopodobnie najbardziej znany kawałek Android malware. 435 00:29:46,030 --> 00:29:50,530 Myślę, że to dotyczy około 250 tysięcy użytkowników w ciągu kilku dni 436 00:29:50,530 --> 00:29:52,810 zanim został znaleziony. 437 00:29:52,810 --> 00:29:56,890 Są pakowane 50 fałszywych wniosków, 438 00:29:56,890 --> 00:30:00,370 umieścić je w Android App Store, 439 00:30:00,370 --> 00:30:10,940 i zasadniczo jest używany Android kod jailbreak przekroczenie uprawnień 440 00:30:10,940 --> 00:30:16,380 a następnie zainstalować dowodzenia i kontroli oraz włączyć wszystkie ofiary 441 00:30:16,380 --> 00:30:20,690 do sieci botów, ale to mogło być wykryte 442 00:30:20,690 --> 00:30:24,170 jeśli były skanowania aplikacji i po prostu szukasz 443 00:30:24,170 --> 00:30:32,230 Wywołań API, które wymaga uprawnień administratora, aby wykonać poprawnie. 444 00:30:32,230 --> 00:30:40,150 >> I jest przykładem tutaj mam, które się zmienia proxy, 445 00:30:40,150 --> 00:30:46,380 i to rzeczywiście jest dostępna tylko na Androida. 446 00:30:46,380 --> 00:30:49,070 Możesz zobaczyć Daję ci dużo przykładów na Androida 447 00:30:49,070 --> 00:30:53,990 bo to jest miejsce, gdzie najbardziej aktywne złośliwe oprogramowanie jest ekosystem 448 00:30:53,990 --> 00:30:58,690 ponieważ jest to bardzo proste do atakującego, aby złośliwy kod 449 00:30:58,690 --> 00:31:01,470 do Android Marketplace. 450 00:31:01,470 --> 00:31:06,480 To nie jest tak łatwo zrobić w Apple App Store 451 00:31:06,480 --> 00:31:10,250 dlatego, że Apple wymaga programistom identyfikować się 452 00:31:10,250 --> 00:31:12,790 i podpisać kod. 453 00:31:12,790 --> 00:31:20,340 Oni rzeczywiście sprawdzić, kim jesteś, a Apple jest rzeczywiście rozpatrywania wniosków. 454 00:31:20,340 --> 00:31:27,450 Nie widzimy dużo prawdziwego złośliwego oprogramowania, w którym urządzenie jest coraz zagrożona. 455 00:31:27,450 --> 00:31:32,250 Będę mówić o pewnych przykładów, gdzie to naprawdę prywatności, która wychodzi za zagrożone, 456 00:31:32,250 --> 00:31:38,460 i to, co się naprawdę dzieje na urządzeniu Apple. 457 00:31:38,460 --> 00:31:44,090 Inną rzeczą, aby szukać szkodliwego kodu, ryzykowne kod w urządzeniach 458 00:31:44,090 --> 00:31:50,300 jest logiczne i czas bomby i bomby zegarowe są prawdopodobnie 459 00:31:50,300 --> 00:31:53,370 o wiele łatwiej niż szukać bomb logicznych. 460 00:31:53,370 --> 00:31:57,030 Ale z bomb czasowych, co możesz zrobić, to można szukać 461 00:31:57,030 --> 00:32:04,760 miejsca w kodzie, gdzie czas jest testowany i absolutnego czasu szukał 462 00:32:04,760 --> 00:32:08,190 przed pewne funkcje w aplikacji dzieje. 463 00:32:08,190 --> 00:32:14,200 A to można zrobić, aby ukryć tę działalność od użytkownika, 464 00:32:14,200 --> 00:32:17,510 tak to się dzieje późno w nocy. 465 00:32:17,510 --> 00:32:24,350 DroidDream zrobił całą swoją działalność od 11 PM i 8 rano czasu lokalnego 466 00:32:24,350 --> 00:32:30,650 spróbować zrobić to, gdy użytkownik nie może korzystać ze swojego urządzenia. 467 00:32:30,650 --> 00:32:38,680 >> Kolejny powód to zrobić, jeśli ludzie są przy użyciu analizy behawioralnej wniosku, 468 00:32:38,680 --> 00:32:43,430 uruchamiania aplikacji w piaskownicy, aby zobaczyć, co zachowanie aplikacji jest, 469 00:32:43,430 --> 00:32:51,090 mogą używać logiki opartej czasie robić aktywność 470 00:32:51,090 --> 00:32:54,640 gdy aplikacja nie jest w piaskownicy. 471 00:32:54,640 --> 00:33:01,520 Na przykład, jak Apple App Store 472 00:33:01,520 --> 00:33:07,940 uruchamia aplikację, ale prawdopodobnie nie uruchomić każdy wniosek o, powiedzmy, 30 dni 473 00:33:07,940 --> 00:33:10,550 przed jego zatwierdzeniem, dzięki czemu można umieścić 474 00:33:10,550 --> 00:33:14,120 logika w aplikacji, który powiedział, dobrze, tylko zrobić coś złego 475 00:33:14,120 --> 00:33:20,490 po 30 dniach upadł przez 30 dni po po dacie opublikowania wniosku, 476 00:33:20,490 --> 00:33:27,020 i że może pomóc złośliwego kodu ukrywają przed ludźmi inspekcji dla niego. 477 00:33:27,020 --> 00:33:30,050 Jeśli firmy antywirusowe działają rzeczy w obszarach izolowanych 478 00:33:30,050 --> 00:33:36,370 lub same sklepy aplikacji są to może pomóc 479 00:33:36,370 --> 00:33:39,260 ukryć, że od tej inspekcji. 480 00:33:39,260 --> 00:33:43,020 Teraz druga strona, że ​​jest to łatwe do znalezienia z analizy statycznej, 481 00:33:43,020 --> 00:33:46,170 tak naprawdę kontroli kodu można szukać wszystkich miejsc 482 00:33:46,170 --> 00:33:54,010 gdzie aplikacja sprawdza czas i sprawdzić w ten sposób. 483 00:33:54,010 --> 00:33:58,850 I tu mam kilka przykładów na tych 3 różnych platformach 484 00:33:58,850 --> 00:34:05,640 jaki czas można sprawdzić przez producenta aplikacji 485 00:34:05,640 --> 00:34:10,520 więc wiesz, czego szukać, jeśli kontrolę aplikacji statycznie. 486 00:34:10,520 --> 00:34:14,570 >> Właśnie przeszedł całą masę różnych szkodliwych działań 487 00:34:14,570 --> 00:34:18,969 które widzieliśmy na wolności, ale które z nich są najbardziej rozpowszechnione? 488 00:34:18,969 --> 00:34:23,940 Że samo badanie z North Carolina State telefonów Genome Project 489 00:34:23,940 --> 00:34:28,560 opublikowane niektóre dane, i nie było w zasadzie 4 obszary 490 00:34:28,560 --> 00:34:32,850 że widzieli, gdzie było dużo działalności. 491 00:34:32,850 --> 00:34:35,370 37% aplikacji nie przekroczenia uprawnień, 492 00:34:35,370 --> 00:34:38,429 więc mieli jakiś rodzaj kodu tam jailbreak 493 00:34:38,429 --> 00:34:42,070 gdzie próbowali przekroczenie uprawnień, tak aby mogli 494 00:34:42,070 --> 00:34:48,360 Polecenia API nie działa jako system operacyjny. 495 00:34:48,360 --> 00:34:52,520 45% aplikacji tam zrobił SMS Premium, 496 00:34:52,520 --> 00:34:57,260 tak to jest ogromny odsetek, które stara się bezpośrednio zarabiać. 497 00:34:57,260 --> 00:35:02,640 93% nie pilota, więc próbowałem skonfigurować sieć botów, sieć mobilnych bot. 498 00:35:02,640 --> 00:35:08,990 I 45% zbiera informacje identyfikujące 499 00:35:08,990 --> 00:35:16,230 jak numery telefonów, UUID, lokalizacja GPS, kont użytkowników, 500 00:35:16,230 --> 00:35:22,870 i to dodaje się do więcej niż 100, ponieważ większość malware próbuje zrobić kilka z tych rzeczy. 501 00:35:22,870 --> 00:35:27,070 >> Mam zamiar przejść na drugą połowę i porozmawiać o luk kodu. 502 00:35:27,070 --> 00:35:29,480 To jest druga połowa działalności ryzykownej. 503 00:35:29,480 --> 00:35:33,450 To jest, gdy zasadniczo deweloper robi błędy. 504 00:35:33,450 --> 00:35:37,210 Uzasadniony pisemnie uzasadniony deweloper aplikacji 505 00:35:37,210 --> 00:35:41,830 robi błędy lub jest nieświadomy zagrożeń ruchomej platformy. 506 00:35:41,830 --> 00:35:44,780 Oni po prostu nie wiedzą, jak zrobić bezpieczną aplikację mobilną, 507 00:35:44,780 --> 00:35:47,700 lub czasem deweloper nie dba o wprowadzenie użytkownika na niebezpieczeństwo. 508 00:35:47,700 --> 00:35:50,850 Czasami część ich modelu biznesowego, który może być 509 00:35:50,850 --> 00:35:54,610 zbioru danych osobowych użytkownika. 510 00:35:54,610 --> 00:35:58,090 To coś w rodzaju drugiej kategorii, i dlatego niektórzy z tym złośliwym 511 00:35:58,090 --> 00:36:03,200 w porównaniu zaczyna krwawić uzasadnione, ponieważ istnieje ponad różnicę poglądów 512 00:36:03,200 --> 00:36:10,440 między tym, co użytkownik chce i co użytkownik uzna za ryzykowne 513 00:36:10,440 --> 00:36:13,050 i co programista aplikacji uważa ryzykowne. 514 00:36:13,050 --> 00:36:18,380 Oczywiście, to nie jest dane twórca aplikacji w większości przypadków. 515 00:36:18,380 --> 00:36:22,030 >> I w końcu, w inny sposób to się dzieje, deweloper może połączyć się 516 00:36:22,030 --> 00:36:28,600 wspólna biblioteka, która ma luki i to ryzykowne zachowania w nim 517 00:36:28,600 --> 00:36:32,480 wiemy o nich. 518 00:36:32,480 --> 00:36:37,060 Pierwsza kategoria jest wrażliwy wyciek danych, 519 00:36:37,060 --> 00:36:40,030 i to, gdy aplikacja zbiera informacje 520 00:36:40,030 --> 00:36:44,980 jak lokalizacja, książkę adresową, informacji właściciela 521 00:36:44,980 --> 00:36:48,000 i wysyła się urządzenia. 522 00:36:48,000 --> 00:36:53,050 I raz to od urządzenia, nie wiemy, co dzieje się z tymi informacjami. 523 00:36:53,050 --> 00:36:57,170 To może być przechowywane niezabezpieczony przez autora aplikacji. 524 00:36:57,170 --> 00:37:02,070 Widzieliśmy programiści się zagrożona, 525 00:37:02,070 --> 00:37:05,820 i dane, że są one przechowywanie zostanie podjęta. 526 00:37:05,820 --> 00:37:10,970 Stało się to kilka miesięcy temu deweloper na Florydzie 527 00:37:10,970 --> 00:37:21,660 gdzie ogromna liczba, to był iPad UUID i nazwy urządzeń 528 00:37:21,660 --> 00:37:25,270 wyciekły bo ktoś, myślę, że to było anonimowe, 529 00:37:25,270 --> 00:37:29,460 twierdził, aby to zrobić, włamali się do serwerów tego dewelopera 530 00:37:29,460 --> 00:37:34,920 i ukradł miliony iPad UUID 531 00:37:34,920 --> 00:37:37,390 i nazwy komputerów. 532 00:37:37,390 --> 00:37:40,260 Nie najbardziej ryzykowne informacje, 533 00:37:40,260 --> 00:37:46,820 ale co jeśli to było przechowywanie nazw użytkownika i haseł 534 00:37:46,820 --> 00:37:48,170 i adresy domowe? 535 00:37:48,170 --> 00:37:51,100 Istnieje wiele aplikacji, które przechowują tego rodzaju informacji. 536 00:37:51,100 --> 00:37:53,230 Ryzyko istnieje. 537 00:37:53,230 --> 00:37:56,620 >> Inna sprawa, że ​​może się zdarzyć, jeśli deweloper nie dbać 538 00:37:56,620 --> 00:38:01,370 do zabezpieczenia kanału danych, a to kolejny duży luka zamierzam o tym mówić, 539 00:38:01,370 --> 00:38:05,160 że dane są przesyłane w jasne. 540 00:38:05,160 --> 00:38:09,040 Jeśli użytkownik jest w publicznej sieci Wi-Fi 541 00:38:09,040 --> 00:38:12,330 czy ktoś gdzieś w internecie wąchania 542 00:38:12,330 --> 00:38:19,260 wzdłuż ścieżki, która dane są narażone. 543 00:38:19,260 --> 00:38:23,790 Jeden bardzo znany przypadek tego wycieku informacji stało się z Pandora, 544 00:38:23,790 --> 00:38:27,250 i to jest coś, co zbadane w Veracode. 545 00:38:27,250 --> 00:38:33,200 Słyszeliśmy, że nie było, myślę, że było Federalna Komisja Handlu 546 00:38:33,200 --> 00:38:35,310 Dochodzenie dzieje z Pandora. 547 00:38:35,310 --> 00:38:39,830 Powiedzieliśmy: "Co się tam dzieje? Zacznijmy kopanie w aplikacji Pandora". 548 00:38:39,830 --> 00:38:46,690 I co ustaliliśmy był wniosek Pandora klejnoty 549 00:38:46,690 --> 00:38:51,270 Twoja płeć i wiek, 550 00:38:51,270 --> 00:38:56,660 a także dostęp do Twojej lokalizacji GPS i aplikację Pandora 551 00:38:56,660 --> 00:39:00,200 zrobił to za to, co powiedział były uzasadnione powody. 552 00:39:00,200 --> 00:39:05,360 Muzyka grali-Pandora jest app-strumieniowego przesyłania muzyki 553 00:39:05,360 --> 00:39:07,530 muzyka grali licencjonowany tylko w Stanach Zjednoczonych, 554 00:39:07,530 --> 00:39:13,020 więc musieli sprawdzić, wywiązują się ze swoich umów licencyjnych, które mieli 555 00:39:13,020 --> 00:39:17,240 dla muzyki, że użytkownik był w Stanach Zjednoczonych. 556 00:39:17,240 --> 00:39:25,070 Chcieli również zgodne z Parental Advisory 557 00:39:25,070 --> 00:39:33,790 wokół języka dorosłych w muzyce, 558 00:39:33,790 --> 00:39:37,500 , a więc jest to dobrowolny program, ale chcieli przestrzegać, że 559 00:39:37,500 --> 00:39:43,010 jawne i nie grać piosenki dla dzieci 13 i mocy. 560 00:39:43,010 --> 00:39:46,280 >> Mieli uzasadnione przyczyny zbierania takich danych. 561 00:39:46,280 --> 00:39:49,160 Ich aplikacja miała uprawnienia, by to zrobić. 562 00:39:49,160 --> 00:39:52,000 Użytkowników, że to było uzasadnione. Ale co się stało? 563 00:39:52,000 --> 00:39:55,810 One połączone w 3 lub 4 różnych bibliotekach reklam. 564 00:39:55,810 --> 00:39:59,140 Teraz nagle wszystkich tych bibliotek reklam 565 00:39:59,140 --> 00:40:02,970 otrzymujesz dostęp do tej samej informacji. 566 00:40:02,970 --> 00:40:05,830 Biblioteki reklam, jeśli spojrzeć na kod w bibliotekach reklam 567 00:40:05,830 --> 00:40:08,430 co robią to co mówi reklama biblioteki 568 00:40:08,430 --> 00:40:11,340 "Czy moja aplikacja ma uprawnień do uzyskania lokalizacji GPS?" 569 00:40:11,340 --> 00:40:14,890 "Och, to nie? Dobrze, powiedz mi lokalizację GPS." 570 00:40:14,890 --> 00:40:16,620 Każda biblioteka ogłoszenie robi, 571 00:40:16,620 --> 00:40:19,740 i jeśli aplikacja nie ma uprawnień GPS 572 00:40:19,740 --> 00:40:23,460 nie będzie w stanie zdobyć, ale jeśli tak się stanie, będzie to dostać. 573 00:40:23,460 --> 00:40:26,240 To jest, gdy model biznesowy bibliotek reklam 574 00:40:26,240 --> 00:40:31,160 sprzeciwia się prywatność użytkownika. 575 00:40:31,160 --> 00:40:34,980 I nie było badań, które obecnie nie powie, jeśli wiesz, że wiek 576 00:40:34,980 --> 00:40:38,430 osoby i wiesz, ich lokalizacji 577 00:40:38,430 --> 00:40:42,530 gdzie spać w nocy, bo mają swoje współrzędne GPS 578 00:40:42,530 --> 00:40:46,030 , podczas gdy być może śpi, wiesz dokładnie, kim jest ta osoba 579 00:40:46,030 --> 00:40:50,230 , ponieważ można określić, które członek tego gospodarstwa domowego jest to, że osoba. 580 00:40:50,230 --> 00:40:54,780 Naprawdę jest to identyfikacji dla reklamodawców 581 00:40:54,780 --> 00:40:59,530 dokładnie to, kim jesteś, i wygląda na to, że to legalne. 582 00:40:59,530 --> 00:41:02,800 Chcę tylko moje strumieniowego przesyłania muzyki, i jest to jedyny sposób na to. 583 00:41:02,800 --> 00:41:05,370 >> No, to mamy narażone. 584 00:41:05,370 --> 00:41:08,030 Napisaliśmy to w kilku blogach, 585 00:41:08,030 --> 00:41:13,280 i okazało się, że ktoś z magazynu Rolling Stone 586 00:41:13,280 --> 00:41:18,810 Przeczytaj jeden z naszych blogach i napisał swój własny blog w Rolling Stone o tym, 587 00:41:18,810 --> 00:41:22,120 i następnego dnia Pandora, że ​​to dobry pomysł 588 00:41:22,120 --> 00:41:27,600 usunąć biblioteki reklam z ich stosowania. 589 00:41:27,600 --> 00:41:31,270 O ile wiem, oni tylko, że należy się pochwała. 590 00:41:31,270 --> 00:41:35,770 Myślę, że są tylko freemium typ aplikacji, który to uczynił. 591 00:41:35,770 --> 00:41:38,660 Wszystkie inne aplikacje Freemium ma ten sam problem, 592 00:41:38,660 --> 00:41:41,780 tak masz myśleć, jaki rodzaj danych dajesz 593 00:41:41,780 --> 00:41:48,330 te aplikacje Freemium, ponieważ wszystko dzieje się reklamodawców. 594 00:41:48,330 --> 00:41:53,390 Praetorian przeprowadził także badania na temat bibliotek współdzielonych i powiedział: 595 00:41:53,390 --> 00:41:57,100 "Spójrzmy na to, co wspólne biblioteki są najlepsze biblioteki współdzielone," i to było dane. 596 00:41:57,100 --> 00:41:59,420 >> Przeanalizowano 53.000 aplikacji, 597 00:41:59,420 --> 00:42:01,900 i wspólna biblioteka numer 1 był AdMob. 598 00:42:01,900 --> 00:42:06,060 To było rzeczywiście w 38% zastosowań tam, 599 00:42:06,060 --> 00:42:08,800 tak 38% wniosków jesteś korzystających 600 00:42:08,800 --> 00:42:11,250 są prawdopodobnie zbiór danych osobowych 601 00:42:11,250 --> 00:42:16,650 i wysłanie go do sieci reklamowych. 602 00:42:16,650 --> 00:42:19,350 Apache i Android są 8% i 6%, 603 00:42:19,350 --> 00:42:22,960 i te inne te na dole reklamy Google, Flurry, 604 00:42:22,960 --> 00:42:26,600 Mob Miasto i Tysiąclecia Media 605 00:42:26,600 --> 00:42:30,500 są to wszystkie firmy reklamowe, a następnie, co ciekawe, 606 00:42:30,500 --> 00:42:33,500 4% związanych z biblioteki Facebooka 607 00:42:33,500 --> 00:42:38,870 Prawdopodobnie zrobić uwierzytelnianie przez Facebook 608 00:42:38,870 --> 00:42:40,810 więc aplikacja może uwierzytelnić Facebooka. 609 00:42:40,810 --> 00:42:44,660 Ale to oznacza również korporację Facebook kontroluje kod 610 00:42:44,660 --> 00:42:49,010 , który jest uruchomiony w 4% aplikacji mobilnych Android tam, 611 00:42:49,010 --> 00:42:53,490 i mają dostęp do wszystkich danych, które aplikacja ma uprawnień do uzyskania na. 612 00:42:53,490 --> 00:42:57,170 Facebook zasadniczo próbuje sprzedać powierzchnię reklamową. 613 00:42:57,170 --> 00:43:00,120 To jest ich model biznesowy. 614 00:43:00,120 --> 00:43:02,920 >> Jeśli spojrzeć na tego całego ekosystemu z tych uprawnień 615 00:43:02,920 --> 00:43:07,740 i biblioteki współdzielone zaczniesz widzieć, że 616 00:43:07,740 --> 00:43:13,850 masz dużo ryzyka w rzekomo uzasadnionego wniosku. 617 00:43:13,850 --> 00:43:19,360 Sam podobne rzeczy, które się z Pandora 618 00:43:19,360 --> 00:43:22,340 się z wnioskiem o nazwie ścieżka, 619 00:43:22,340 --> 00:43:27,660 i Ścieżka myśleli, że jest pomocny, przyjazny programistom. 620 00:43:27,660 --> 00:43:32,160 Byli po prostu staramy się dać wspaniałe doświadczenie użytkownika, 621 00:43:32,160 --> 00:43:37,810 i okazało się, że bez monitowania użytkownika lub mówienie użytkownikowi coś- 622 00:43:37,810 --> 00:43:40,400 i to się na iPhone i Android, 623 00:43:40,400 --> 00:43:44,420 Pandora aplikacja była na iPhone i Android- 624 00:43:44,420 --> 00:43:48,890 że wniosek Ścieżka została chwytając całą książkę adresową 625 00:43:48,890 --> 00:43:52,830 i przesłać go do ścieżki tylko po zainstalowaniu i pobiegł aplikacji 626 00:43:52,830 --> 00:43:55,840 i nie powiedzieli ci o tym. 627 00:43:55,840 --> 00:43:58,750 Myśleli, że to bardzo pomocne dla Ciebie 628 00:43:58,750 --> 00:44:04,040 aby móc podzielić się z wszystkimi ludźmi w książce adresowej 629 00:44:04,040 --> 00:44:06,920 że używasz aplikacji Path. 630 00:44:06,920 --> 00:44:09,490 >> No, oczywiście, że to była ścieżka wielki dla ich firmy. 631 00:44:09,490 --> 00:44:13,510 Nie tak świetne dla użytkownika. 632 00:44:13,510 --> 00:44:19,020 Musisz myśleć, że to jest jedna rzecz, czy może nastolatek 633 00:44:19,020 --> 00:44:23,700 jest za pomocą tej aplikacji, a ich dziesiątki przyjaciół są tam, 634 00:44:23,700 --> 00:44:29,360 ale co jeśli to prezes firmy, która instaluje Path 635 00:44:29,360 --> 00:44:33,170 a potem nagle ich całej książki adresowej jest tam? 636 00:44:33,170 --> 00:44:38,310 Masz zamiar uzyskać wiele cennych informacji kontaktowych potencjalnie 637 00:44:38,310 --> 00:44:40,920 dla wielu ludzi. 638 00:44:40,920 --> 00:44:44,500 Dziennikarz z New York Times, że możesz być w stanie uzyskać numer telefonu 639 00:44:44,500 --> 00:44:47,380 dla byłych prezydentów z ich książki adresowej, 640 00:44:47,380 --> 00:44:54,780 więc oczywiście wiele poufnych informacji zostanie przeniesiona z czymś takim. 641 00:44:54,780 --> 00:44:58,090 Nie było takie duże o tym, że klapka Ścieżka przeprosił. 642 00:44:58,090 --> 00:45:01,610 Zmienili ich aplikacji, a nawet wpływ Apple. 643 00:45:01,610 --> 00:45:06,950 Apple powiedział, "Mamy zamiar zmusić dostawców aplikacji, aby skłonić użytkowników 644 00:45:06,950 --> 00:45:12,650 jeśli zamierzamy zebrać całą swoją książkę adresową ". 645 00:45:12,650 --> 00:45:15,360 >> To wygląda jak to, co się tutaj dzieje jest 646 00:45:15,360 --> 00:45:19,430 gdy jest jeden duży naruszenie prywatności i sprawia, że ​​prasa 647 00:45:19,430 --> 00:45:21,680 widzimy zmianę tam. 648 00:45:21,680 --> 00:45:23,230 Ale oczywiście, nie ma innych rzeczy tam. 649 00:45:23,230 --> 00:45:27,440 Aplikacja LinkedIn zbiera wpisy w kalendarzu, 650 00:45:27,440 --> 00:45:34,530 ale Apple nie robi użytkownik poprosi o to. 651 00:45:34,530 --> 00:45:38,030 Pozycje kalendarza mogą mieć poufnych informacji w nich. 652 00:45:38,030 --> 00:45:40,000 Gdzie idziesz, aby narysować linię? 653 00:45:40,000 --> 00:45:43,960 To jest naprawdę rodzaju miejsce ewoluuje 654 00:45:43,960 --> 00:45:47,640 gdzie naprawdę nie ma tam dobry standard 655 00:45:47,640 --> 00:45:51,990 dla użytkowników, aby zrozumieć, gdy ich dane będzie zagrożone 656 00:45:51,990 --> 00:45:57,820 i kiedy oni będą wiedzieć, to pod uwagę. 657 00:45:57,820 --> 00:46:03,040 Napisaliśmy aplikację na Veracode nazwie Adios, 658 00:46:03,040 --> 00:46:08,350 i zasadniczo jest dozwolone, aby wskazać aplikację w katalogu iTunes 659 00:46:08,350 --> 00:46:12,550 i spojrzeć na wszystkie aplikacje, które zostały zbierających całą swoją książkę adresową. 660 00:46:12,550 --> 00:46:19,760 I jak można zobaczyć na tej liście tutaj, Angry Birds, 661 00:46:19,760 --> 00:46:21,590 AIM, AroundMe. 662 00:46:21,590 --> 00:46:24,050 Dlaczego Angry Birds trzeba książkę adresową? 663 00:46:24,050 --> 00:46:29,160 Nie wiem, ale to nie w jakiś sposób. 664 00:46:29,160 --> 00:46:32,310 >> To jest coś, że wiele, wiele aplikacji zrobić. 665 00:46:32,310 --> 00:46:34,780 Możesz sprawdzić kod do tego. 666 00:46:34,780 --> 00:46:38,660 Jest dobrze zdefiniowane interfejsy API dla iPhone, Android i BlackBerry 667 00:46:38,660 --> 00:46:42,120 aby w książce adresowej. 668 00:46:42,120 --> 00:46:48,520 Naprawdę można łatwo kontrolować za to, i to jest to, co zrobiliśmy w naszej aplikacji Adios. 669 00:46:48,520 --> 00:46:52,320 Kolejna kategoria, niebezpieczne Sensitive Magazynowanie danych, 670 00:46:52,320 --> 00:46:55,670 jest coś, gdzie deweloperzy wziąć coś jak pin lub numer konta 671 00:46:55,670 --> 00:46:58,530 lub hasło i przechowuj je w jasne, na urządzeniu. 672 00:46:58,530 --> 00:47:02,310 Co gorsza, mogą one przechowywać w miejscu, w telefonie 673 00:47:02,310 --> 00:47:06,820 który jest dostępny na całym świecie, podobnie jak karty SD. 674 00:47:06,820 --> 00:47:11,320 Widzisz to częściej na Androida, ponieważ Android pozwala na karcie SD. 675 00:47:11,320 --> 00:47:13,200 Urządzenia iPhone nie robić. 676 00:47:13,200 --> 00:47:17,900 Ale widzieliśmy nawet tak się stało w aplikacji Citigroup. 677 00:47:17,900 --> 00:47:25,450 Ich zastosowanie bankowości online przechowywane numery kont niezabezpieczony, 678 00:47:25,450 --> 00:47:28,120 tylko w jasne, więc jeśli utracone urządzenie, 679 00:47:28,120 --> 00:47:30,670 zasadniczo stracił swoje konto bankowe. 680 00:47:30,670 --> 00:47:36,000 To dlatego ja osobiście nie zrobić bankowości na moim iPhone. 681 00:47:36,000 --> 00:47:43,710 Myślę, że to zbyt ryzykowne teraz zrobić te rodzaje działalności. 682 00:47:43,710 --> 00:47:45,950 >> Skype zrobił to samo. 683 00:47:45,950 --> 00:47:49,870 Skype, oczywiście, ma stan konta, nazwę użytkownika i hasło 684 00:47:49,870 --> 00:47:51,030 że dostęp do tej równowagi. 685 00:47:51,030 --> 00:48:00,080 Byli przechowywania wszystkich informacji w jasny na urządzeniu mobilnym. 686 00:48:00,080 --> 00:48:05,760 Mam tu kilka przykładów tworzenia plików 687 00:48:05,760 --> 00:48:10,310 , które nie mają odpowiednich uprawnień lub zapisu na dysku 688 00:48:10,310 --> 00:48:17,260 i nie mając szyfrowanie zdarzyć, że. 689 00:48:17,260 --> 00:48:20,190 Ten następny obszar, niebezpieczne Sensitive przesyłania danych, 690 00:48:20,190 --> 00:48:24,450 Mam nawiązywał do tego kilka razy, i ze względu na publiczny Wi-Fi 691 00:48:24,450 --> 00:48:27,770 to jest coś, że aplikacje absolutnie trzeba zrobić, 692 00:48:27,770 --> 00:48:31,250 i to jest chyba to, co widzimy, nie udać się najbardziej. 693 00:48:31,250 --> 00:48:34,920 Chciałbym powiedzieć-naprawdę, myślę, że mam aktualne dane, 694 00:48:34,920 --> 00:48:38,120 ale jest to blisko połowa aplikacji mobilnych 695 00:48:38,120 --> 00:48:41,780 zepsuć robi SSL. 696 00:48:41,780 --> 00:48:43,910 Oni po prostu nie używają poprawnie API. 697 00:48:43,910 --> 00:48:47,970 To znaczy, wszystko co masz zrobić, to postępować zgodnie z instrukcjami i używać API, 698 00:48:47,970 --> 00:48:54,720 ale nie takie rzeczy nie sprawdzić, czy jest nieprawidłowy certyfikat na drugim końcu, 699 00:48:54,720 --> 00:49:02,120 nie sprawdzić, czy drugi koniec stara się zrobić atak protokół downgrade. 700 00:49:02,120 --> 00:49:07,200 >> Deweloperzy chcą, aby ich wyboru, prawda? 701 00:49:07,200 --> 00:49:11,910 Ich warunkiem jest, aby korzystać z tej sprzedaży. Oni używane to sprzedać. 702 00:49:11,910 --> 00:49:14,800 Wymóg nie jest w użyciu to sprzedać bezpiecznie, 703 00:49:14,800 --> 00:49:19,680 i tak jest to dlaczego wszystkie aplikacje korzystające z protokołu SSL w celu zabezpieczenia danych 704 00:49:19,680 --> 00:49:23,470 jak to jest przekazywane poza urządzenie naprawdę muszą być kontrolowane 705 00:49:23,470 --> 00:49:28,950 się upewnić, że zostały prawidłowo wdrożone. 706 00:49:28,950 --> 00:49:32,850 I tu mam kilka przykładów, gdzie można zobaczyć aplikację 707 00:49:32,850 --> 00:49:37,400 może być przy użyciu protokołu HTTP zamiast HTTPS. 708 00:49:37,400 --> 00:49:40,510 W niektórych przypadkach aplikacje spadnie z powrotem do protokołu HTTP 709 00:49:40,510 --> 00:49:44,250 jeśli HTTPS nie działa. 710 00:49:44,250 --> 00:49:49,070 Mam kolejny telefon tutaj na Android, gdzie oni wyłączył sprawdzanie certyfikatu, 711 00:49:49,070 --> 00:49:51,700 więc atak man-in-the-middle, może się zdarzyć. 712 00:49:51,700 --> 00:49:56,370 Nieprawidłowy certyfikat zostanie zaakceptowany. 713 00:49:56,370 --> 00:50:01,920 Są to wszystkie przypadki, w których napastnicy będą w stanie dostać się na 714 00:50:01,920 --> 00:50:07,150 samo połączenie Wi-Fi jako użytkownik i dostęp do wszystkich danych 715 00:50:07,150 --> 00:50:11,650 , który jest wysyłany przez Internet. 716 00:50:11,650 --> 00:50:15,970 >> I wreszcie ostatnia kategoria I tu jest zaszyta hasło i klucze. 717 00:50:15,970 --> 00:50:21,470 My rzeczywiście zobaczyć wiele osób używa tego samego stylu kodowania 718 00:50:21,470 --> 00:50:25,900 że oni, gdy byli tworzenia aplikacji serwera WWW, 719 00:50:25,900 --> 00:50:29,700 więc oni budowania aplikacji serwera Java, a oni hardcoding klucz. 720 00:50:29,700 --> 00:50:31,940 Cóż, kiedy jesteś budowania aplikacji serwera, tak, 721 00:50:31,940 --> 00:50:34,240 hardcoding klucz nie jest dobry pomysł. 722 00:50:34,240 --> 00:50:36,290 To sprawia, że ​​trudno jest zmienić. 723 00:50:36,290 --> 00:50:40,700 Ale to nie jest tak źle, po stronie serwera, bo kto ma dostęp do strony serwera? 724 00:50:40,700 --> 00:50:43,140 Tylko administratorzy. 725 00:50:43,140 --> 00:50:48,100 Ale jeśli ten sam kod i wlewa go do aplikacji mobilnych 726 00:50:48,100 --> 00:50:52,550 Teraz każdy, kto ma, że ​​mobilna aplikacja ma dostęp do tego klucza ustalony, 727 00:50:52,550 --> 00:50:56,380 i naprawdę zobaczyć wiele razy, i mam pewne statystyki 728 00:50:56,380 --> 00:51:00,920 o tym, jak często widzimy to się stało. 729 00:51:00,920 --> 00:51:04,940 To rzeczywiście była w przykładzie kodu MasterCard opublikowanego 730 00:51:04,940 --> 00:51:06,850 jak korzystać z ich usług. 731 00:51:06,850 --> 00:51:11,860 Przykładowy kod pokazał jak można po prostu wziąć hasło 732 00:51:11,860 --> 00:51:14,850 i umieścić go w ustalony ciąg tam, 733 00:51:14,850 --> 00:51:19,380 i wiemy, w jaki sposób programiści lubią kopiować i wklejać fragmenty kodu 734 00:51:19,380 --> 00:51:22,360 gdy próbują coś zrobić, więc skopiować i wkleić fragment kodu 735 00:51:22,360 --> 00:51:28,450 że dał jako przykład kodu i masz niepewnego aplikacji. 736 00:51:28,450 --> 00:51:31,490 >> A tu kilka przykładów. 737 00:51:31,490 --> 00:51:35,840 Ten pierwszy jest jednym widzimy dużo gdzie hardcode 738 00:51:35,840 --> 00:51:40,510 prawo dane do adresu URL, który jest wysyłany. 739 00:51:40,510 --> 00:51:45,120 Czasami widzimy hasło String = hasło. 740 00:51:45,120 --> 00:51:49,060 To dość łatwe do wykrycia, lub hasło ciąg na BlackBerry i Android. 741 00:51:49,060 --> 00:51:53,680 To rzeczywiście dość łatwe do sprawdzenia, bo prawie zawsze 742 00:51:53,680 --> 00:51:57,030 nazwy zmiennych, które programistów hasło trzyma 743 00:51:57,030 --> 00:52:02,290 pewne zróżnicowanie hasła. 744 00:52:02,290 --> 00:52:05,200 Wspomniałem, że robimy analizę statyczną w Veracode, 745 00:52:05,200 --> 00:52:11,790 tak Zbadaliśmy kilkaset aplikacji Android oraz iOS. 746 00:52:11,790 --> 00:52:15,160 Zbudowaliśmy pełne modele nich, a my jesteśmy w stanie ich skanować 747 00:52:15,160 --> 00:52:19,280 dla różnych luk, zwłaszcza słabych Mówiłem o, 748 00:52:19,280 --> 00:52:21,050 i mam tutaj pewne dane. 749 00:52:21,050 --> 00:52:24,320 68,5% z aplikacji Android patrzyliśmy na 750 00:52:24,320 --> 00:52:28,590 złamał kod kryptograficzny, 751 00:52:28,590 --> 00:52:33,240 który dla nas, nie możemy wykryć, jeśli się własną rutynę kryptograficznego, 752 00:52:33,240 --> 00:52:38,980 nie, że to jest dobry pomysł, ale to jest rzeczywiście przy opublikowane API 753 00:52:38,980 --> 00:52:42,530 które znajdują się na platformie, ale wykonując je w taki sposób, 754 00:52:42,530 --> 00:52:46,680 że krypto byłoby narażone, 68.5. 755 00:52:46,680 --> 00:52:49,870 I to jest dla osób, które wysyłają do nas swoje aplikacje w rzeczywistości, ponieważ 756 00:52:49,870 --> 00:52:53,730 uważają, że to dobry pomysł, aby zrobić testy bezpieczeństwa. 757 00:52:53,730 --> 00:52:56,960 Są to osoby, które są już zapewne myśląc pewnie, 758 00:52:56,960 --> 00:52:59,540 tak to chyba jeszcze gorzej. 759 00:52:59,540 --> 00:53:02,690 >> I nie mówić o kontroli wtrysku nowego wiersza. 760 00:53:02,690 --> 00:53:07,640 To możemy sprawdzić za coś, ale to nie jest tak ryzykowne problem. 761 00:53:07,640 --> 00:53:15,390 Przeciek informacji, to jest, gdy poufne dane są przesyłane z urządzenia. 762 00:53:15,390 --> 00:53:19,270 Okazało się, że 40% wniosków. 763 00:53:19,270 --> 00:53:23,540 Czas i państwa, to są kwestie typu wyścigu, zazwyczaj dość trudne do wykorzystania, 764 00:53:23,540 --> 00:53:26,170 więc ja nie o tym mówić, ale patrzył na to. 765 00:53:26,170 --> 00:53:28,750 23% miało problemy z SQL injection. 766 00:53:28,750 --> 00:53:32,020 Wiele osób nie wie, że wiele aplikacji 767 00:53:32,020 --> 00:53:35,880 użyj małej trochę bazy danych SQL na plecach koniec do przechowywania danych. 768 00:53:35,880 --> 00:53:40,430 Cóż, jeśli dane, że jesteś chwytając w sieci 769 00:53:40,430 --> 00:53:43,800 ma ciągi ataku SQL injection w nim 770 00:53:43,800 --> 00:53:45,970 ktoś może zagrozić przez to urządzenie, 771 00:53:45,970 --> 00:53:49,800 i tak myślę, że znajdziemy około 40% aplikacji internetowych mają tego problemu, 772 00:53:49,800 --> 00:53:52,840 który jest ogromny problem epidemii. 773 00:53:52,840 --> 00:53:55,740 Uważamy, że 23% czasu w aplikacjach mobilnych 774 00:53:55,740 --> 00:54:02,030 i to prawdopodobnie dlatego, że o wiele więcej aplikacji internetowych używa SQL niż telefon. 775 00:54:02,030 --> 00:54:05,580 >> A potem jeszcze zobaczyć trochę cross-site scripting, kwestie zezwoleń, 776 00:54:05,580 --> 00:54:09,400 i poświadczeń zarządzania, to gdzie masz ustalony hasła. 777 00:54:09,400 --> 00:54:14,540 W 5% wniosków widzimy. 778 00:54:14,540 --> 00:54:17,970 A potem mamy jakieś dane na temat iOS. 779 00:54:17,970 --> 00:54:20,180 81% miało problemy z obsługą błędów. 780 00:54:20,180 --> 00:54:23,130 To jest bardziej problem jakości kodu, 781 00:54:23,130 --> 00:54:28,010 ale 67% miało problemy kryptograficznych, więc nie jest tak źle, jak Android. 782 00:54:28,010 --> 00:54:32,440 Może API są trochę łatwiejsze, kody przykładowe trochę lepiej na iOS. 783 00:54:32,440 --> 00:54:35,420 Ale wciąż bardzo wysoki odsetek. 784 00:54:35,420 --> 00:54:39,040 Mieliśmy 54% z wycieku informacji, 785 00:54:39,040 --> 00:54:42,080 o 30% z błędów zarządzania buforem. 786 00:54:42,080 --> 00:54:45,930 To miejsca, gdzie mogą potencjalnie powodować uszkodzenie zawartości pamięci. 787 00:54:45,930 --> 00:54:50,350 Okazuje się, że to nie jest tak wielkim problemem dla eksploatacji 788 00:54:50,350 --> 00:54:56,450 na iOS, ponieważ cały kod musi zostać podpisana, 789 00:54:56,450 --> 00:55:02,210 tak trudno jest atakującemu na wykonanie dowolnego kodu w systemie iOS. 790 00:55:02,210 --> 00:55:07,880 Jakość kodu, przejścia do innego katalogu, ale tutaj w zarządzanie poświadczenia 14,6%, 791 00:55:07,880 --> 00:55:09,250 tak gorzej niż na Androida. 792 00:55:09,250 --> 00:55:13,240 Mamy ludzi nie obsługi haseł poprawnie. 793 00:55:13,240 --> 00:55:15,790 A następnie błędy numeryczne i przepełnienie bufora, 794 00:55:15,790 --> 00:55:22,680 te są bardziej będzie zagadnienia jakości kodu na iOS. 795 00:55:22,680 --> 00:55:26,110 >> To było dla mojej prezentacji. Nie wiem, czy jesteśmy poza czasem, czy nie. 796 00:55:26,110 --> 00:55:29,540 Nie wiem, czy jest jakieś pytania. 797 00:55:29,540 --> 00:55:33,220 [Mężczyzna] szybkie pytanie wokół fragmentacji i Android Market. 798 00:55:33,220 --> 00:55:36,240 Posiada co najmniej jabłko łatania. 799 00:55:36,240 --> 00:55:40,780 Robią dobrą robotę się go tam natomiast mniej w Android przestrzeni. 800 00:55:40,780 --> 00:55:44,280 Prawie trzeba jailbreak telefon na bieżąco 801 00:55:44,280 --> 00:55:46,660 z bieżącej wersji Androida. 802 00:55:46,660 --> 00:55:50,960 Tak, to jest to ogromny problem, więc jeśli myślisz o- 803 00:55:50,960 --> 00:55:52,280 [Mężczyzna] Dlaczego nie możesz go powtórzyć? 804 00:55:52,280 --> 00:55:55,610 >> Och, tak, więc pytanie, co o fragmentacji 805 00:55:55,610 --> 00:56:00,410 systemu operacyjnego na platformie Android? 806 00:56:00,410 --> 00:56:05,890 Jak to wpływa na poziom ryzyka tych urządzeń? 807 00:56:05,890 --> 00:56:09,700 I faktycznie jest to ogromny problem, ponieważ to, co się dzieje, 808 00:56:09,700 --> 00:56:15,110 starsze urządzenia, gdy ktoś wyjdzie z jailbreak dla tego urządzenia, 809 00:56:15,110 --> 00:56:19,960 zasadniczo to zwiększenie uprawnień i do kiedy system operacyjny jest aktualizowany 810 00:56:19,960 --> 00:56:25,350 wszelkie złośliwe oprogramowanie może następnie wykorzystać tę lukę, aby całkowicie zagrozić urządzenia 811 00:56:25,350 --> 00:56:30,200 i to, co widzimy na Androida jest w celu uzyskania nowego systemu operacyjnego 812 00:56:30,200 --> 00:56:34,690 Google ma zgasić system operacyjny, a następnie producenta sprzętu 813 00:56:34,690 --> 00:56:39,390 musi go dostosować, a następnie przewoźnik musi dostosować go i dostarczyć go. 814 00:56:39,390 --> 00:56:43,070 Masz w zasadzie 3 części ruchomych tutaj, 815 00:56:43,070 --> 00:56:47,210 i to obracając się, że przewoźnicy nie obchodzi, 816 00:56:47,210 --> 00:56:50,400 oraz producenci sprzętu nie obchodzi, a Google nie jest im wystarczająco szturchać 817 00:56:50,400 --> 00:56:54,430 nic zrobić, więc w zasadzie ponad połowa urządzeń tam 818 00:56:54,430 --> 00:57:00,590 mają systemy operacyjne, które mają te luki przekroczenia uprawnień w nich, 819 00:57:00,590 --> 00:57:08,440 i tak, jeśli się złośliwego oprogramowania na urządzenia z systemem Android jest o wiele większy problem. 820 00:57:08,440 --> 00:57:10,350 >> Dobrze, dziękuję bardzo. 821 00:57:10,350 --> 00:57:12,310 [Oklaski] 822 00:57:12,310 --> 00:57:14,310 [CS50.TV]