1 00:00:00,000 --> 00:00:02,610 >> [Seminar] [Verdedigen Achter het apparaat: Mobile Application Security] 2 00:00:02,610 --> 00:00:04,380 [Chris Wysopal] [Harvard University] 3 00:00:04,380 --> 00:00:07,830 [Dit is CS50.] [CS50.TV] 4 00:00:07,830 --> 00:00:10,360 >> Goedemiddag. Mijn naam is Chris Wysopal. 5 00:00:10,360 --> 00:00:13,360 Ik ben de CTO en mede-oprichter van Veracode. 6 00:00:13,360 --> 00:00:15,880 Veracode is een applicatie beveiligingsbedrijf. 7 00:00:15,880 --> 00:00:18,230 We testen allerlei verschillende toepassingen, 8 00:00:18,230 --> 00:00:25,060 en wat ik ga praten over vandaag is de mobiele applicatie security. 9 00:00:25,060 --> 00:00:28,630 Mijn achtergrond is dat ik heb gedaan veiligheidsonderzoek 10 00:00:28,630 --> 00:00:31,970 voor een zeer lange tijd, waarschijnlijk ongeveer even lang als het even wie. 11 00:00:31,970 --> 00:00:35,000 Ik ben begonnen in het midden van de jaren '90, 12 00:00:35,000 --> 00:00:37,370 en het was een tijd dat behoorlijk interessant was omdat 13 00:00:37,370 --> 00:00:39,220 hadden we een paradigma verandering in het midden van de jaren '90. 14 00:00:39,220 --> 00:00:43,520 Opeens ieders computer werd aangesloten op het internet, 15 00:00:43,520 --> 00:00:46,550 en dan hadden we het begin van webapplicaties, 16 00:00:46,550 --> 00:00:49,330 en dat is wat ik gefocust op een terrein van toen. 17 00:00:49,330 --> 00:00:51,160 Het is interessant. 18 00:00:51,160 --> 00:00:53,930 Nu hebben we een ander paradigma verandering gebeurt met computers, 19 00:00:53,930 --> 00:00:58,710 dat is de verschuiving naar mobiele toepassingen. 20 00:00:58,710 --> 00:01:03,680 >> Ik voel het is een soort van een vergelijkbare tijd dan het was in de late jaren '90 21 00:01:03,680 --> 00:01:07,650 toen we onderzochten webapplicaties en het vinden van gebreken zoals 22 00:01:07,650 --> 00:01:11,800 sessie beheer fouten en SQL-injectie 23 00:01:11,800 --> 00:01:14,940 die echt niet bestond, en ineens waren ze overal 24 00:01:14,940 --> 00:01:19,360 in webapplicaties, en nu een groot deel van de tijd besteed ik 25 00:01:19,360 --> 00:01:27,950 is op zoek naar mobiele toepassingen en kijken naar wat er daar in het wild. 26 00:01:27,950 --> 00:01:32,060 Mobiele toepassingen zijn echt naar de dominante computing-platform, 27 00:01:32,060 --> 00:01:35,060 zodat we echt nodig om veel tijd door te brengen als je in de beveiligingsbranche 28 00:01:35,060 --> 00:01:39,280 gericht op webapplicaties. 29 00:01:39,280 --> 00:01:43,420 Er waren 29 miljard mobiele apps gedownload in 2011. 30 00:01:43,420 --> 00:01:47,920 Het is voorspeld tot 76 miljard programma's zijn in 2014. 31 00:01:47,920 --> 00:01:54,040 Er is 686 miljoen apparaten die zullen worden gekocht dit jaar, 32 00:01:54,040 --> 00:01:57,060 dus dit is waar mensen gaan doen 33 00:01:57,060 --> 00:01:59,600  de meerderheid van hun cliënt computergebruik gaan vooruit. 34 00:01:59,600 --> 00:02:04,220 >> Ik was in gesprek met een vice-president bij Fidelity Investments 35 00:02:04,220 --> 00:02:08,780 een paar maanden geleden, en hij zei dat ze zag net meer verkeer 36 00:02:08,780 --> 00:02:12,610 het doen van financiële transacties van hun klantenbestand 37 00:02:12,610 --> 00:02:16,230 op hun mobiele applicatie dan op hun website, 38 00:02:16,230 --> 00:02:20,610 dus een gemeenschappelijk gebruik van het web in het verleden is 39 00:02:20,610 --> 00:02:23,800 het controleren van uw aandelenkoersen, het beheer van uw portefeuille, 40 00:02:23,800 --> 00:02:28,060 en we daadwerkelijk zien dat in 2012 overschakeling 41 00:02:28,060 --> 00:02:30,960 dominanter op het mobiele platform. 42 00:02:30,960 --> 00:02:34,530 Zeker als er gaat elke criminele activiteit, 43 00:02:34,530 --> 00:02:38,900 schadelijke activiteit, het gaat om te beginnen te richten op het mobiele platform 44 00:02:38,900 --> 00:02:44,210 na verloop van tijd als mensen over te schakelen naar dat. 45 00:02:44,210 --> 00:02:48,320 Als je kijkt naar het mobiele platform, 46 00:02:48,320 --> 00:02:54,380 te kijken naar de risico's van het platform is het handig om het te breken in de verschillende lagen, 47 00:02:54,380 --> 00:02:59,010 net zoals je dat zou doen op een desktop computer, 48 00:02:59,010 --> 00:03:02,860 en u denkt over de verschillende lagen, software, besturingssysteem, 49 00:03:02,860 --> 00:03:07,730 netwerklaag, hardware laag, en natuurlijk is er kwetsbaarheden op al die lagen. 50 00:03:07,730 --> 00:03:10,510 >> Hetzelfde gebeurt op mobiel. 51 00:03:10,510 --> 00:03:14,880 Maar mobiel, het lijkt erop dat sommige van die lagen er slechter aan toe. 52 00:03:14,880 --> 00:03:19,840 Voor een, de netwerklaag problematischer op mobiele 53 00:03:19,840 --> 00:03:25,650 omdat veel mensen hebben in hun kantoor of thuis 54 00:03:25,650 --> 00:03:30,780 bekabelde verbindingen of ze veilig Wi-Fi-verbindingen, 55 00:03:30,780 --> 00:03:36,530 en met veel mobiele apparaten ben je natuurlijk buiten het huis 56 00:03:36,530 --> 00:03:40,520 of buiten het kantoor veel, en als je via Wi-Fi er 57 00:03:40,520 --> 00:03:42,820 u zou kunnen worden met behulp van een onbeveiligde Wi-Fi-verbinding, 58 00:03:42,820 --> 00:03:45,570 iets dat een openbare Wi-Fi-verbinding, 59 00:03:45,570 --> 00:03:48,840 dus als we denken aan mobiele apps moeten we rekening houden met 60 00:03:48,840 --> 00:03:53,770 dat de netwerkomgeving is riskanter voor die toepassingen 61 00:03:53,770 --> 00:03:57,640 wanneer Wi-Fi wordt gebruikt. 62 00:03:57,640 --> 00:04:02,410 En als ik in meer van de mobiele applicatie risico's 63 00:04:02,410 --> 00:04:04,910 je zult zien waarom dat is belangrijker. 64 00:04:04,910 --> 00:04:09,710 Er zijn risico's op hardware niveau op mobiele apparaten. 65 00:04:09,710 --> 00:04:11,670 Dit is een gebied van lopend onderzoek. 66 00:04:11,670 --> 00:04:15,910 Mensen noemen deze breedband aanvallen of baseband aanvallen 67 00:04:15,910 --> 00:04:21,870 waar je aanvallen van de firmware die luistert op de radio. 68 00:04:21,870 --> 00:04:25,430 >> Dit zijn echt eng aanvallen omdat 69 00:04:25,430 --> 00:04:27,280 de gebruiker hoeft niets te doen. 70 00:04:27,280 --> 00:04:30,760 U kunt veel apparaten hit binnen RF-bereik 71 00:04:30,760 --> 00:04:36,690 in een keer, en het lijkt alsof wanneer dit onderzoek opborrelt 72 00:04:36,690 --> 00:04:40,750 het snel wordt ingedeeld waar 73 00:04:40,750 --> 00:04:46,600 mensen Swoop in rond en zeggen: "Hier, vertel ons over dat, en dan kunt u stoppen erover te praten." 74 00:04:46,600 --> 00:04:49,460 Er is wat onderzoek gaande op het gebied van breedband, 75 00:04:49,460 --> 00:04:51,980 maar het lijkt erg hush hush zijn. 76 00:04:51,980 --> 00:04:56,910 Ik denk dat het meer van een natiestaat type onderzoek dat aan de hand is. 77 00:04:56,910 --> 00:05:02,140 Een gebied van actief onderzoek, is echter het besturingssysteem laag, 78 00:05:02,140 --> 00:05:08,910 en nogmaals, dit is anders dan in de desktop computerwereld 79 00:05:08,910 --> 00:05:14,840 omdat in de mobiele ruimte die je hebt deze teams van mensen noemden jailbreakers, 80 00:05:14,840 --> 00:05:18,670 en jailbreakers zijn anders dan reguliere kwetsbaarheid onderzoekers. 81 00:05:18,670 --> 00:05:21,970 Ze proberen om kwetsbaarheden te vinden in het besturingssysteem, 82 00:05:21,970 --> 00:05:27,000 maar de reden dat ze proberen om de kwetsbaarheden te vinden is niet te 83 00:05:27,000 --> 00:05:31,810 breken in de machine van iemand anders en het in gevaar brengen. 84 00:05:31,810 --> 00:05:34,280 Het is in te breken in hun eigen computer. 85 00:05:34,280 --> 00:05:38,820 >> Ze willen breken in hun eigen mobiele, wijzigen besturingssysteem hun eigen mobiele's 86 00:05:38,820 --> 00:05:41,050 zodat ze de toepassingen van hun keuze kunnen lopen 87 00:05:41,050 --> 00:05:44,510 en dingen met volledige beheerdersrechten te veranderen, 88 00:05:44,510 --> 00:05:49,050 en ze willen niet de verkoper over vertellen. 89 00:05:49,050 --> 00:05:52,960 Ze zijn niet als een security-onderzoeker die een witte hoed security-onderzoeker 90 00:05:52,960 --> 00:05:56,600 die gaat op verantwoorde wijze te doen en vertel de verkoper over. 91 00:05:56,600 --> 00:06:01,270 Ze willen dit onderzoek te doen, en ze willen eigenlijk publiceren 92 00:06:01,270 --> 00:06:06,400 in een exploit of een rootkit of een jailbreak code, 93 00:06:06,400 --> 00:06:10,010 en ze willen om het strategisch doen, zoals direct na 94 00:06:10,010 --> 00:06:13,570 de verkoper schepen het nieuwe besturingssysteem. 95 00:06:13,570 --> 00:06:16,350 Je hebt dit vijandige relatie 96 00:06:16,350 --> 00:06:19,000 met OS-niveau kwetsbaarheden op de mobiele, 97 00:06:19,000 --> 00:06:23,150 dat vind ik heel interessant, en een plaats zien wij het 98 00:06:23,150 --> 00:06:29,210 is het maakt het zo dat er goede gepubliceerde exploit code die er zijn 99 00:06:29,210 --> 00:06:31,750 voor kernel-niveau kwetsbaarheden, 100 00:06:31,750 --> 00:06:35,040 en we hebben gezien die daadwerkelijk worden gebruikt door malware schrijvers. 101 00:06:35,040 --> 00:06:38,450 Het is een beetje anders dan de pc-wereld. 102 00:06:38,450 --> 00:06:42,530 En dan de laatste laag is de bovenste laag, de applicatielaag. 103 00:06:42,530 --> 00:06:45,250 Dat is wat ik ga om te praten over vandaag. 104 00:06:45,250 --> 00:06:48,970 >> De andere lagen bestaan, en de andere lagen te spelen in het, 105 00:06:48,970 --> 00:06:53,310 maar ik meestal gaan praten over wat er gaande is op de applicatielaag 106 00:06:53,310 --> 00:06:55,560 waarbij code wordt uitgevoerd in de sandbox. 107 00:06:55,560 --> 00:06:58,670 Het heeft geen beheerdersrechten. 108 00:06:58,670 --> 00:07:02,170 Het heeft tot de API's van het apparaat te gebruiken, 109 00:07:02,170 --> 00:07:06,970 maar toch, veel kwaadaardige activiteiten en veel risico kan gebeuren op die laag 110 00:07:06,970 --> 00:07:09,220 want dat is de laag waar alle informatie is. 111 00:07:09,220 --> 00:07:12,330 Apps u toegang tot alle informatie over het apparaat 112 00:07:12,330 --> 00:07:15,390 als ze de juiste rechten, 113 00:07:15,390 --> 00:07:17,540 en hebben tot de verschillende sensoren op het toestel, 114 00:07:17,540 --> 00:07:23,950 GPS sensor, microfoon, camera, wat je hebt. 115 00:07:23,950 --> 00:07:27,380 Hoewel we nu alleen nog maar over op de applicatielaag 116 00:07:27,380 --> 00:07:33,700 we hebben veel risico daar. 117 00:07:33,700 --> 00:07:38,450 Het andere ding is dat anders over de mobiele omgeving 118 00:07:38,450 --> 00:07:45,060 wordt al het besturingssysteem spelers, of het BlackBerry of Android 119 00:07:45,060 --> 00:07:53,410 of iOS of Windows mobile, ze hebben allemaal een fijnkorrelige toestemming model, 120 00:07:53,410 --> 00:07:56,990 en dit is een van de manieren waarop zij in het besturingssysteem ingebouwde 121 00:07:56,990 --> 00:08:01,230 het idee dat het niet zo riskant als je denkt. 122 00:08:01,230 --> 00:08:04,550 Ook al heb je al je contacten op daar, al uw persoonlijke gegevens, 123 00:08:04,550 --> 00:08:09,080 je hebt je foto's, heb je je locatie op daar, 124 00:08:09,080 --> 00:08:14,820 je bent het opslaan van uw bank pin voor auto login op daar, het is veilig, omdat 125 00:08:14,820 --> 00:08:19,430 apps moeten bepaalde rechten hebben op bepaalde onderdelen te krijgen 126 00:08:19,430 --> 00:08:25,080 van de informatie over het apparaat en de gebruiker moet worden gepresenteerd met 127 00:08:25,080 --> 00:08:29,230 deze machtigingen en zeggen oke. 128 00:08:29,230 --> 00:08:32,590 >> Het probleem met het is de gebruiker altijd zegt oke. 129 00:08:32,590 --> 00:08:35,240 Uit veiligheidsoverwegingen persoon, ik weet dat je de gebruiker gevraagd, 130 00:08:35,240 --> 00:08:40,100 zeggen iets heel ergs gaat gebeuren, wil je het gebeuren? 131 00:08:40,100 --> 00:08:44,680 En als ze in een haast of er is iets heel verleidelijk aan de andere kant van dat, 132 00:08:44,680 --> 00:08:47,760 als een spel zal worden geïnstalleerd dat ze hebben gewacht, 133 00:08:47,760 --> 00:08:50,860 ze gaan klik oke. 134 00:08:50,860 --> 00:08:56,630 Dat is waarom ik op mijn dia hier zeggen laat me vogels gooien bij varkens al, 135 00:08:56,630 --> 00:09:03,150 en je kunt zien op de foto hier is er voorbeelden van een BlackBerry toestemming doos. 136 00:09:03,150 --> 00:09:05,990 Het zegt "Stel de toepassing permissies BlackBerry Travel 137 00:09:05,990 --> 00:09:09,720 na hieronder klikken op de knop, "en eigenlijk de gebruiker wordt net gaan zeggen 138 00:09:09,720 --> 00:09:12,240 de permissies en op te slaan. 139 00:09:12,240 --> 00:09:18,010 Hier is een Android-prompt waar het toont de dingen, 140 00:09:18,010 --> 00:09:20,260 en het eigenlijk zet iets dat bijna lijkt op een waarschuwing. 141 00:09:20,260 --> 00:09:25,090 Het heeft een soort van opbrengstteken daar zeggen netwerkcommunicatie, telefoontje, 142 00:09:25,090 --> 00:09:28,120 maar de gebruiker zal op installeren, toch? 143 00:09:28,120 --> 00:09:32,940 En dan is de Apple een totaal onschadelijk. 144 00:09:32,940 --> 00:09:34,300 Het bevat geen enkele vorm van waarschuwing te geven. 145 00:09:34,300 --> 00:09:37,380 Het is gewoon Apple zou graag uw huidige locatie te gebruiken. 146 00:09:37,380 --> 00:09:39,670 Natuurlijk zul je klik oke. 147 00:09:39,670 --> 00:09:42,260 >> Er is deze fijnkorrelige toestemming model, 148 00:09:42,260 --> 00:09:45,890 en apps hebben een manifest bestand waar ze te verklaren 149 00:09:45,890 --> 00:09:49,410 de machtigingen die ze nodig hebben, en die krijgt weergegeven aan de gebruiker, 150 00:09:49,410 --> 00:09:53,480 en de gebruiker moet zeggen dat ik deze machtigingen. 151 00:09:53,480 --> 00:09:55,080 Maar laten we eerlijk zijn. 152 00:09:55,080 --> 00:09:58,400 Gebruikers gaan gewoon altijd zeggen oke. 153 00:09:58,400 --> 00:10:04,460 Laten we eens een snelle blik op de machtigingen die deze apps vragen om 154 00:10:04,460 --> 00:10:06,850 en sommige van de machtigingen die zijn er. 155 00:10:06,850 --> 00:10:09,950 Dit bedrijf Praetorian deden een onderzoek van vorig jaar 156 00:10:09,950 --> 00:10:14,170 53.000 applicaties in de Android markt en 3rd party markten geanalyseerd, 157 00:10:14,170 --> 00:10:16,770 dus dit is allemaal Android. 158 00:10:16,770 --> 00:10:19,670 En de gemiddelde app gevraagde 3 permissies. 159 00:10:19,670 --> 00:10:23,370 Sommige apps gevraagde 117 machtigingen, 160 00:10:23,370 --> 00:10:27,480 dus uiteraard deze zijn zeer fijnkorrelig en veel te complex voor een gebruiker te begrijpen 161 00:10:27,480 --> 00:10:31,600 als ze gepresenteerd met deze app dat deze 117 permissies nodig. 162 00:10:31,600 --> 00:10:37,270 Het is net als de licentieovereenkomst voor eindgebruikers dat is 45 pagina's lang. 163 00:10:37,270 --> 00:10:40,240 Misschien binnenkort zullen ze een optie waarin het is alsof hebben 164 00:10:40,240 --> 00:10:43,100 print de permissies en stuur me een e-mail. 165 00:10:43,100 --> 00:10:45,480 >> Maar als je kijkt naar een aantal van de top interessante permissies 166 00:10:45,480 --> 00:10:50,840 24% van de apps die zij uit de 53.000 gedownload 167 00:10:50,840 --> 00:10:57,230 gevraagde GPS informatie van het apparaat. 168 00:10:57,230 --> 00:10:59,810 8% lees de contacten. 169 00:10:59,810 --> 00:11:03,770 4% verzonden SMS, en 3% ontvangen SMS. 170 00:11:03,770 --> 00:11:07,730 2% opgenomen audio. 171 00:11:07,730 --> 00:11:11,210 1% verwerkte uitgaande oproepen. 172 00:11:11,210 --> 00:11:13,140 Ik weet het niet. 173 00:11:13,140 --> 00:11:17,520 Ik denk niet dat 4% van de apps in de app store echt nodig om SMS-tekstberichten verzenden, 174 00:11:17,520 --> 00:11:21,410 dus ik denk dat dat een hint dat er iets ongewenst aan de hand is. 175 00:11:21,410 --> 00:11:24,350 8% van de apps nodig hebt om uw lijst met contactpersonen te lezen. 176 00:11:24,350 --> 00:11:26,510 Het is waarschijnlijk niet nodig. 177 00:11:26,510 --> 00:11:30,990 Een van de andere interessante dingen over rechten is 178 00:11:30,990 --> 00:11:36,740 als u een link in gedeelde bibliotheken in uw toepassing 179 00:11:36,740 --> 00:11:39,780 die de machtigingen van de aanvraag, 180 00:11:39,780 --> 00:11:46,570 dus als je app moet de lijst met contactpersonen of moet de GPS-locatie te laten functioneren 181 00:11:46,570 --> 00:11:49,940 en u een koppeling in een reclame-bibliotheek, bijvoorbeeld, 182 00:11:49,940 --> 00:11:53,170 die advertentie bibliotheek zal ook in staat zijn om toegang te krijgen tot de contacten 183 00:11:53,170 --> 00:11:57,630 en ook in staat om de GPS locatie, 184 00:11:57,630 --> 00:12:01,990 en de ontwikkelaar van de app weet niets over de code die wordt uitgevoerd in de advertentie bibliotheek. 185 00:12:01,990 --> 00:12:05,370 Ze zijn gewoon te koppelen dat in, want ze willen hun app geld te verdienen. 186 00:12:05,370 --> 00:12:09,820 >> Dit is waar-en ik zal praten over een aantal voorbeelden van deze met 187 00:12:09,820 --> 00:12:13,930 een applicatie genaamd Pandora, waar een applicatie ontwikkelaar 188 00:12:13,930 --> 00:12:18,910 misschien onbewust lekken informatie 189 00:12:18,910 --> 00:12:24,580 van hun gebruikers vanwege bibliotheken ze gekoppeld inch 190 00:12:24,580 --> 00:12:30,110 Landmeetkundige het landschap die er zijn, te kijken naar alle verschillende apps 191 00:12:30,110 --> 00:12:34,310 die zijn gemeld in het nieuws als kwaadaardig of doen iets gebruikers niet wilde 192 00:12:34,310 --> 00:12:39,360 en vervolgens de inspectie van een heleboel apps-we doen veel statische binaire analyse van mobiele apps, 193 00:12:39,360 --> 00:12:42,010 dus we hebben hen gecontroleerd en gekeken naar de code zelf- 194 00:12:42,010 --> 00:12:49,640 kwamen we met wat we onze top 10 lijst van riskant gedrag in toepassingen noemen. 195 00:12:49,640 --> 00:12:54,180 En het is onderverdeeld in 2 delen, kwaadaardige code, 196 00:12:54,180 --> 00:12:57,600 dus dit zijn slechte dingen die de apps zou kunnen doen dat 197 00:12:57,600 --> 00:13:06,520 waarschijnlijk iets dat een kwaadwillend persoon te zijn 198 00:13:06,520 --> 00:13:10,060 is specifiek in het verzoekschrift, maar het is een beetje wazig. 199 00:13:10,060 --> 00:13:13,300 Het kan iets dat een ontwikkelaar denkt dat het wel goed, 200 00:13:13,300 --> 00:13:16,350 maar uiteindelijk wordt gezien als kwaadwillende door de gebruiker. 201 00:13:16,350 --> 00:13:19,830 >> En dan het tweede deel is wat wij noemen codering kwetsbaarheden, 202 00:13:19,830 --> 00:13:24,600 en dit zijn dingen waar de ontwikkelaar in principe is het maken van fouten 203 00:13:24,600 --> 00:13:27,200 of gewoon niet begrijpen hoe de app veilig schrijven, 204 00:13:27,200 --> 00:13:30,260  en dat is de invoering van de app gebruiker in gevaar. 205 00:13:30,260 --> 00:13:34,060 Ik ga om te gaan door deze in detail en geeft enkele voorbeelden. 206 00:13:34,060 --> 00:13:39,620 Ter referentie, ik wilde de OWASP mobiele top 10 lijst te zetten. 207 00:13:39,620 --> 00:13:43,590 Dit zijn de 10 punten die een groep op OWASP, 208 00:13:43,590 --> 00:13:48,900 het Open Web Application Security Project, ze hebben een werkgroep 209 00:13:48,900 --> 00:13:50,620 werkt aan een mobiele top 10 lijst. 210 00:13:50,620 --> 00:13:54,600 Ze hebben een zeer bekende web top 10 lijst, wat zijn de top 10 211 00:13:54,600 --> 00:13:57,180 meest risicovolle dingen die je kunt hebben in een webapplicatie. 212 00:13:57,180 --> 00:13:59,090 Ze doen hetzelfde voor mobiele, 213 00:13:59,090 --> 00:14:01,750 en hun lijst is een beetje anders dan de onze. 214 00:14:01,750 --> 00:14:03,670 6 van de 10 zijn hetzelfde. 215 00:14:03,670 --> 00:14:06,020 Ze hebben 4 die anders zijn. 216 00:14:06,020 --> 00:14:10,550 Ik denk dat ze een beetje een andere kijk op 217 00:14:10,550 --> 00:14:14,490 risico's in mobiele apps, waar veel van hun problemen 218 00:14:14,490 --> 00:14:20,490 zijn echt hoe de applicatie communiceert naar een back-end server 219 00:14:20,490 --> 00:14:23,100 of wat er gaande is op de back-end server, 220 00:14:23,100 --> 00:14:29,220 niet zozeer apps die risicovol gedrag dat alleen maar rechttoe rechtaan client apps hebben. 221 00:14:29,220 --> 00:14:36,640 >> Degenen rood hier zijn de verschillen tussen de 2 lijsten. 222 00:14:36,640 --> 00:14:40,740 En sommige van mijn onderzoeksteam heeft daadwerkelijk bijgedragen aan dit project, 223 00:14:40,740 --> 00:14:44,570 dus we zullen zien wat er gebeurt in de tijd, maar ik denk dat de afhaalmaaltijd hier is 224 00:14:44,570 --> 00:14:47,550 we niet echt weten wat de top 10 lijst is in mobiele apps, omdat 225 00:14:47,550 --> 00:14:50,510 ze hebben eigenlijk alleen al nu 2 of 3 jaar, 226 00:14:50,510 --> 00:14:57,750 en er is niet genoeg tijd om echt de besturingssystemen onderzoek geweest 227 00:14:57,750 --> 00:15:00,450 en wat ze in staat zijn, en er is niet genoeg tijd geweest 228 00:15:00,450 --> 00:15:06,870 voor de kwaadaardige gemeenschap, als je wil, hebben genoeg tijd besteed 229 00:15:06,870 --> 00:15:12,910 proberen om gebruikers aan te vallen door middel van mobiele apps, dus ik verwacht dat deze lijsten om een ​​beetje te veranderen. 230 00:15:12,910 --> 00:15:18,720 Maar voor nu, dit zijn de top 10 dingen aan de hand. 231 00:15:18,720 --> 00:15:24,150 Je kunt je afvragen op de mobiele kant waar komt de kwaadaardige mobiele code- 232 00:15:24,150 --> 00:15:28,880 hoe werkt het op het apparaat? 233 00:15:28,880 --> 00:15:35,210 North Carolina State heeft een project genaamd de Mobile Malware Genome Project 234 00:15:35,210 --> 00:15:39,520 waar ze verzamelen van zo veel mobiele malware als ze kunnen en analyseren, 235 00:15:39,520 --> 00:15:45,270 en ze hebben de injectie vectoren die de mobiele malware maakt gebruik afgebroken, 236 00:15:45,270 --> 00:15:51,490 en 86% gebruik van een techniek genaamd herverpakking, 237 00:15:51,490 --> 00:15:54,160 en dit is alleen op het Android-platform 238 00:15:54,160 --> 00:15:56,720 kan je echt doen dit ompakken. 239 00:15:56,720 --> 00:16:03,100 >> De reden is Android-code is opgebouwd met 240 00:16:03,100 --> 00:16:08,130 een Java-bytecode genaamd Dalvik die gemakkelijk decompilable. 241 00:16:08,130 --> 00:16:12,460 Wat de slechte kerel kan doen is 242 00:16:12,460 --> 00:16:16,590 neem een ​​Android-applicatie, decompileren het, 243 00:16:16,590 --> 00:16:20,120 Steek hun kwaadaardige code, opnieuw compileren, 244 00:16:20,120 --> 00:16:28,070 en zet het dan in de app store ogenschijnlijk een nieuwe versie van die toepassing te zijn, 245 00:16:28,070 --> 00:16:30,330 of heel misschien veranderen van de naam van de toepassing. 246 00:16:30,330 --> 00:16:35,140 Als het was een soort van spel, verander de naam iets, 247 00:16:35,140 --> 00:16:42,860 en dus dit herverpakking is hoe 86% van de mobiele malware wordt verspreid. 248 00:16:42,860 --> 00:16:45,810 Er is nog een techniek genaamd-update die is 249 00:16:45,810 --> 00:16:50,030 zeer vergelijkbaar met ompakken, maar je eigenlijk niet de kwaadaardige code zet inch 250 00:16:50,030 --> 00:16:52,870 Wat je doet is je in een kleine updatemechanisme. 251 00:16:52,870 --> 00:16:56,660 Je decompileren, zet je in een update-mechanisme, en je het opnieuw compileren, 252 00:16:56,660 --> 00:17:02,360 en dan wanneer de app loopt het naar beneden trekt de malware op het apparaat. 253 00:17:02,360 --> 00:17:06,300 >> Veruit de meerderheid zijn die 2 technieken. 254 00:17:06,300 --> 00:17:12,710 Er is niet echt veel te downloaden drive-by's of drive-by downloads op mobiele telefoons, 255 00:17:12,710 --> 00:17:15,890 die zouden kunnen worden als een poging tot phishing. 256 00:17:15,890 --> 00:17:18,200 Hey, dan dit echt cool website, 257 00:17:18,200 --> 00:17:21,020 of je moet naar deze website en vul dit formulier in 258 00:17:21,020 --> 00:17:24,420 te houden voortdurende iets te doen. 259 00:17:24,420 --> 00:17:26,230 Die worden phishing-aanvallen. 260 00:17:26,230 --> 00:17:28,160 Hetzelfde kan gebeuren op het mobiele platform waar ze 261 00:17:28,160 --> 00:17:33,830 wijzen op een mobiele app te downloaden, zeggen: "Hoi, dit is Bank of America." 262 00:17:33,830 --> 00:17:36,070 "We zien dat je met behulp van deze applicatie." 263 00:17:36,070 --> 00:17:38,540 "U moet dit andere applicatie te downloaden." 264 00:17:38,540 --> 00:17:41,170 Theoretisch, dat zou kunnen werken. 265 00:17:41,170 --> 00:17:48,610 Misschien is het gewoon niet wordt genoeg gebruikt om te bepalen of het succesvol is of niet, 266 00:17:48,610 --> 00:17:51,680 maar zij vonden dat minder dan 1% van de tijd die techniek wordt gebruikt. 267 00:17:51,680 --> 00:17:56,130 Het merendeel van de tijd is het echt een omgepakt code. 268 00:17:56,130 --> 00:17:58,710 >> Er is nog een categorie genaamd standalone 269 00:17:58,710 --> 00:18:01,420 waar iemand net bouwt een gloednieuwe applicatie. 270 00:18:01,420 --> 00:18:04,020 Ze bouwen een applicatie die beweert iets te zijn. 271 00:18:04,020 --> 00:18:07,360 Het is niet een herverpakking van iets anders, en dat heeft de kwaadaardige code. 272 00:18:07,360 --> 00:18:11,230 Dat wordt gebruikt 14% van de tijd. 273 00:18:11,230 --> 00:18:17,880 Nu wil ik praten over wat er de kwaadaardige code aan het doen? 274 00:18:17,880 --> 00:18:23,070 Een van de eerste malware die er zijn 275 00:18:23,070 --> 00:18:25,490 kon je een spyware beschouwen. 276 00:18:25,490 --> 00:18:27,620 Het spionnen in principe op de gebruiker. 277 00:18:27,620 --> 00:18:30,470 Het verzamelt e-mails, sms-berichten. 278 00:18:30,470 --> 00:18:32,340 Het blijkt op de microfoon. 279 00:18:32,340 --> 00:18:37,330 Het oogsten van de lijst met contactpersonen, en stuurt het uit aan iemand anders. 280 00:18:37,330 --> 00:18:40,870 Deze vorm van spyware bestaat op de PC, 281 00:18:40,870 --> 00:18:46,200 dus is het volkomen logisch voor mensen om te proberen om dit te doen op mobiele apparaten. 282 00:18:46,200 --> 00:18:53,230 >> Een van de eerste voorbeelden van een programma genaamd Secret SMS Replicator. 283 00:18:53,230 --> 00:18:56,250 Het was in de Android Marketplace een paar jaar geleden, 284 00:18:56,250 --> 00:18:59,960 en het idee was als je toegang tot iemands Android telefoon had 285 00:18:59,960 --> 00:19:03,450 die je wilde bespioneren, dus misschien is het je partner 286 00:19:03,450 --> 00:19:07,600 of uw significante andere en je wilt bespioneren hun sms, 287 00:19:07,600 --> 00:19:11,200 je kan deze app downloaden en installeren en configureren 288 00:19:11,200 --> 00:19:16,540 om een ​​SMS-bericht te sturen naar je met een kopie 289 00:19:16,540 --> 00:19:21,710 van elk SMS-bericht dat ze kregen. 290 00:19:21,710 --> 00:19:27,220 Dit is uiteraard in schendingen van de app store termen van service, 291 00:19:27,220 --> 00:19:32,040 en deze werd verwijderd uit de Android Marketplace binnen 18 uur dat het er is, 292 00:19:32,040 --> 00:19:36,760 dus een zeer klein aantal mensen aan het risico als gevolg van deze. 293 00:19:36,760 --> 00:19:42,510 Nu, ik denk dat als het programma iets misschien een beetje minder provocerend heette 294 00:19:42,510 --> 00:19:48,690 zoals Secret SMS Replicator het waarschijnlijk zou hebben gewerkt een stuk beter. 295 00:19:48,690 --> 00:19:52,870 Maar het was me duidelijk. 296 00:19:52,870 --> 00:19:58,680 >> Een van de dingen die we kunnen doen om te bepalen of apps hebben dit gedrag dat we niet willen 297 00:19:58,680 --> 00:20:01,410 is de code te inspecteren. 298 00:20:01,410 --> 00:20:06,250 Dit is eigenlijk heel makkelijk te doen op Android, omdat we de apps kunnen decompileren. 299 00:20:06,250 --> 00:20:11,050 Op iOS kunt u een disassembler zoals IDA Pro gebruiken 300 00:20:11,050 --> 00:20:17,190 te kijken naar wat API's de app er belt en wat het doet. 301 00:20:17,190 --> 00:20:20,680 We schreven onze eigen binaire static analyzer voor onze code 302 00:20:20,680 --> 00:20:24,940 en we dit doen, en dus wat je zou kunnen doen is je zou kunnen zeggen 303 00:20:24,940 --> 00:20:30,490 doet het apparaat alles wat eigenlijk bespioneert me of het bijhouden van mij doen? 304 00:20:30,490 --> 00:20:33,360 En ik heb hier enkele voorbeelden op de iPhone. 305 00:20:33,360 --> 00:20:41,440 Dit eerste voorbeeld is hoe u de UUID aan de telefoon. 306 00:20:41,440 --> 00:20:47,060 Dit is eigenlijk iets dat Apple net heeft verboden voor nieuwe toepassingen, 307 00:20:47,060 --> 00:20:52,540 maar oude toepassingen die u zou kunnen hebben uitgevoerd op uw telefoon kan nog steeds dit te doen, 308 00:20:52,540 --> 00:20:56,500 en zo dat unieke id kan worden gebruikt om u op te sporen 309 00:20:56,500 --> 00:21:00,440 over vele verschillende toepassingen. 310 00:21:00,440 --> 00:21:07,180 >> Op de Android, ik heb hier op het krijgen van de locatie van het apparaat een voorbeeld. 311 00:21:07,180 --> 00:21:10,310 Je kunt zien dat als die API call is daar dat app is het volgen, 312 00:21:10,310 --> 00:21:15,000 en je kunt zien of het wordt steeds prima locatie of grof locatie. 313 00:21:15,000 --> 00:21:18,860 En dan op de bodem hier, ik heb een voorbeeld van hoe op de BlackBerry 314 00:21:18,860 --> 00:21:25,130 Een applicatie kan toegang krijgen tot de e-mailberichten in uw inbox. 315 00:21:25,130 --> 00:21:27,660 Dit zijn het soort dingen die je kunt controleren om te zien 316 00:21:27,660 --> 00:21:32,360 Als de app die dingen doet. 317 00:21:32,360 --> 00:21:38,320 De tweede grote categorie van kwaadaardig gedrag, en dit is waarschijnlijk de grootste categorie nu, 318 00:21:38,320 --> 00:21:43,950 is ongeoorloofd bellen, onbevoegde premium SMS-tekstberichten 319 00:21:43,950 --> 00:21:46,080 of ongeoorloofde betalingen. 320 00:21:46,080 --> 00:21:48,930 Een ander ding dat is er uniek aan de telefoon 321 00:21:48,930 --> 00:21:52,700 wordt het apparaat is aangesloten op een betaalrekening, 322 00:21:52,700 --> 00:21:55,960 en wanneer de activiteiten gebeuren op de telefoon 323 00:21:55,960 --> 00:21:58,510 het kan kosten maken. 324 00:21:58,510 --> 00:22:00,700 Je kunt dingen kopen via de telefoon, 325 00:22:00,700 --> 00:22:04,390 en als je een premium SMS-tekstbericht verzendt je eigenlijk het geven van geld 326 00:22:04,390 --> 00:22:11,590 aan de rekeninghouder van het telefoonnummer op de andere kant. 327 00:22:11,590 --> 00:22:17,420 Deze werden opgericht om aandelenkoersen te krijgen of krijg je dagelijkse horoscoop of andere dingen, 328 00:22:17,420 --> 00:22:21,680 maar ze kunnen worden ingesteld om een ​​product door een SMS verzenden bestellen. 329 00:22:21,680 --> 00:22:26,970 Mensen geven geld aan het Rode Kruis door het sturen van een SMS-bericht. 330 00:22:26,970 --> 00:22:30,650 U kunt $ 10 geven op die manier. 331 00:22:30,650 --> 00:22:34,190 >> De aanvallers, wat ze hebben gedaan is dat ze opgezet 332 00:22:34,190 --> 00:22:38,750 rekeningen in het buitenland, en ze verankeren in de malware 333 00:22:38,750 --> 00:22:42,840 dat de telefoon een premium sms-bericht sturen, 334 00:22:42,840 --> 00:22:47,700 zeggen, een paar keer per dag, en aan het eind van de maand je beseft dat je hebt besteed 335 00:22:47,700 --> 00:22:52,090 tientallen of misschien zelfs honderden dollars, en ze lopen weg met het geld. 336 00:22:52,090 --> 00:22:57,280 Dit werd zo erg dat dit het eerste ding dat de Android 337 00:22:57,280 --> 00:23:00,760 Marketplace of de Google-plaats-het was de Android Marketplace op het moment, 338 00:23:00,760 --> 00:23:04,430 en het is nu Google Play-het eerste ding dat Google begonnen met het controleren voor. 339 00:23:04,430 --> 00:23:08,700 Toen Google begon de distributie van Android apps in hun app store 340 00:23:08,700 --> 00:23:11,350 ze zeiden dat ze waren niet van plan om te controleren op alles. 341 00:23:11,350 --> 00:23:15,630 We zullen apps trekken als we zijn op de hoogte hebben ze onze termen van service gebroken, 342 00:23:15,630 --> 00:23:17,520 maar we gaan niet om te controleren op alles. 343 00:23:17,520 --> 00:23:24,350 Nou, ongeveer een jaar geleden werd het zo slecht met deze premium SMS tekstbericht malware 344 00:23:24,350 --> 00:23:28,030 dat dit het allereerste wat ze begonnen met het controleren voor. 345 00:23:28,030 --> 00:23:31,770 Als een app SMS-berichten kunt verzenden 346 00:23:31,770 --> 00:23:34,750 ze verder handmatig onderzoeken die toepassing. 347 00:23:34,750 --> 00:23:38,770 Ze zoeken naar de API's die dit roepen, 348 00:23:38,770 --> 00:23:40,580 en nu sindsdien Google heeft uitgebreid, 349 00:23:40,580 --> 00:23:46,900 maar dit was het eerste ding dat ze op zoek gegaan naar. 350 00:23:46,900 --> 00:23:50,690 >> Enkele andere apps die sommige sms-berichten deed, 351 00:23:50,690 --> 00:23:56,980 deze Android Qicsomos, ik denk dat het heet. 352 00:23:56,980 --> 00:24:02,670 Er was een actuele gebeurtenis op de mobiele telefoon, waar dit CarrierIQ kwam 353 00:24:02,670 --> 00:24:07,720 als spyware zetten op het apparaat door de vervoerders, 354 00:24:07,720 --> 00:24:10,820 dus mensen wilden weten of hun telefoon was kwetsbaar voor dit, 355 00:24:10,820 --> 00:24:13,890 en dit was een gratis app die dat getest. 356 00:24:13,890 --> 00:24:17,520 Nou ja, natuurlijk, wat deze app deed was het verzond premium SMS-tekstberichten, 357 00:24:17,520 --> 00:24:20,090 dus door het testen om te zien of je besmet met spyware 358 00:24:20,090 --> 00:24:24,930 u hebt geladen malware op uw apparaat. 359 00:24:24,930 --> 00:24:27,310 We zagen hetzelfde gebeuren bij de laatste Super Bowl. 360 00:24:27,310 --> 00:24:33,180 Er was een nep-versie van de Madden voetbalwedstrijd 361 00:24:33,180 --> 00:24:38,320 dat premium sms-berichten verzonden. 362 00:24:38,320 --> 00:24:45,750 Het eigenlijk geprobeerd om een ​​botnet te maken op het apparaat. 363 00:24:45,750 --> 00:24:48,090 Hier heb ik een aantal voorbeelden. 364 00:24:48,090 --> 00:24:52,640 Interessant genoeg, Apple was behoorlijk slim, 365 00:24:52,640 --> 00:24:58,470 en zij niet toestaan ​​dat toepassingen van SMS-berichten versturen op alle. 366 00:24:58,470 --> 00:25:00,350 Geen app kan het doen. 367 00:25:00,350 --> 00:25:03,530 Dat is een geweldige manier van het wegwerken van een hele klasse van kwetsbaarheid, 368 00:25:03,530 --> 00:25:09,040 maar op Android je kunt het doen, en natuurlijk, op BlackBerry je kunt het ook doen. 369 00:25:09,040 --> 00:25:13,060 Het is interessant dat op de BlackBerry alles wat je nodig hebt is internet permissies 370 00:25:13,060 --> 00:25:18,370 om een ​​SMS-bericht te verzenden. 371 00:25:18,370 --> 00:25:21,580 >> Het andere ding echt dat we op zoek naar 372 00:25:21,580 --> 00:25:24,780 toen we op zoek om te zien of er iets is kwaadaardig is gewoon een soort van 373 00:25:24,780 --> 00:25:28,100 ongeautoriseerde netwerkactiviteit, zoals kijken naar de netwerkactiviteit 374 00:25:28,100 --> 00:25:31,570 de app wordt verondersteld te hebben om de functionaliteit te hebben, 375 00:25:31,570 --> 00:25:35,380 en kijken naar deze andere netwerkactiviteit. 376 00:25:35,380 --> 00:25:43,380 Misschien een app, om te werken, heeft om gegevens via HTTP, 377 00:25:43,380 --> 00:25:47,500 maar als het om dingen te doen via e-mail of SMS of Bluetooth of iets dergelijks 378 00:25:47,500 --> 00:25:52,890 nu die app kan mogelijk schadelijke zijn, dus dit is een ander ding dat je kunt inspecteren. 379 00:25:52,890 --> 00:26:00,430 En op deze dia hier heb ik een aantal voorbeelden van. 380 00:26:00,430 --> 00:26:05,950 Een ander interessant wat we zagen met malware gebeurde terug in 2009, 381 00:26:05,950 --> 00:26:07,600 en het gebeurde in een grote weg. 382 00:26:07,600 --> 00:26:11,390 Ik weet niet of het zo veel is er sindsdien gebeurd, maar het was een app 383 00:26:11,390 --> 00:26:15,140 dat vertolkt een andere toepassing. 384 00:26:15,140 --> 00:26:21,700 Er was een set van apps, en het werd de 09Droid aanval nagesynchroniseerd, 385 00:26:21,700 --> 00:26:29,770 en iemand besloten dat er een heleboel kleine, regionale, middelgrote banken 386 00:26:29,770 --> 00:26:32,260 dat niet online banking toepassingen hebben, 387 00:26:32,260 --> 00:26:36,870 dus wat ze deden was ze gebouwd ongeveer 50 online banking toepassingen 388 00:26:36,870 --> 00:26:39,410 dat alles wat ze deed was de gebruikersnaam en het wachtwoord 389 00:26:39,410 --> 00:26:42,190 en u naar de website. 390 00:26:42,190 --> 00:26:47,470 En dus zetten ze deze allemaal in de Google Marketplace, 391 00:26:47,470 --> 00:26:51,530 in de Android Marketplace, en wanneer iemand zocht om te zien of hun bank 392 00:26:51,530 --> 00:26:56,000 had een applicatie die zij zouden de valse toepassing te vinden, 393 00:26:56,000 --> 00:27:01,230 die hun geloofsbrieven verzameld en vervolgens doorgestuurd ze naar hun website. 394 00:27:01,230 --> 00:27:06,640 De manier waarop dit eigenlijk werd-de apps waren daar voor een paar weken, 395 00:27:06,640 --> 00:27:09,050 en er waren duizenden en duizenden downloads. 396 00:27:09,050 --> 00:27:12,910 >> De manier waarop dit aan het licht kwam was iemand had een probleem 397 00:27:12,910 --> 00:27:15,740 met een van de toepassingen, en ze noemden hun bank, 398 00:27:15,740 --> 00:27:18,390 en zij noemden hun bank customer support lijn en zei: 399 00:27:18,390 --> 00:27:21,180 "Ik heb een probleem met uw mobiel bankieren applicatie." 400 00:27:21,180 --> 00:27:23,460 "Kun je me helpen?" 401 00:27:23,460 --> 00:27:26,540 En ze zeiden: "Wij hebben geen mobiel bankieren applicatie." 402 00:27:26,540 --> 00:27:28,120 Dat begon het onderzoek. 403 00:27:28,120 --> 00:27:31,200 Die bank genaamd Google, en dan is Google keek en zei: 404 00:27:31,200 --> 00:27:37,220 "Wow, heeft dezelfde auteur 50 bankapplicaties geschreven," en nam ze allemaal neer. 405 00:27:37,220 --> 00:27:43,410 Maar zeker kan dit weer gebeuren. 406 00:27:43,410 --> 00:27:51,790 Er is de lijst van alle verschillende banken hier 407 00:27:51,790 --> 00:27:55,870 die deel uitmaakten van deze oplichterij. 408 00:27:55,870 --> 00:28:02,050 Het andere wat een app kan doen is aanwezig de UI van een andere toepassing. 409 00:28:02,050 --> 00:28:06,430 Terwijl het draait kan het opduiken van de Facebook-UI. 410 00:28:06,430 --> 00:28:09,540 Het zegt u in uw gebruikersnaam en wachtwoord in te zetten om verder te gaan 411 00:28:09,540 --> 00:28:15,090 of opgemaakt welke gebruikersnaam en wachtwoord UI voor een website 412 00:28:15,090 --> 00:28:18,420 dat misschien de gebruiker gebruikt gewoon om te proberen om de gebruiker te misleiden 413 00:28:18,420 --> 00:28:21,340 in zetten hun geloofsbrieven inch 414 00:28:21,340 --> 00:28:25,590 Dit is echt een rechte parallel van de e-mail phishing-aanvallen 415 00:28:25,590 --> 00:28:28,210 waar iemand stuurt u een e-mailbericht 416 00:28:28,210 --> 00:28:33,050 en geeft je eigenlijk een nep-UI voor een website 417 00:28:33,050 --> 00:28:37,320 dat heeft u toegang tot. 418 00:28:37,320 --> 00:28:41,590 >> Het andere wat we zoeken in kwaadaardige code is systeem modificatie. 419 00:28:41,590 --> 00:28:48,160 U kunt kijken naar alle API-aanroepen die root-rechten nodig 420 00:28:48,160 --> 00:28:50,870 te kunnen voeren. 421 00:28:50,870 --> 00:28:56,160 Het veranderen van het apparaat web proxy zou iets dat een aanvraag worden 422 00:28:56,160 --> 00:28:59,530 zou niet in staat zijn om te doen. 423 00:28:59,530 --> 00:29:03,030 Maar als de applicatie code daar om dat te doen 424 00:29:03,030 --> 00:29:05,960 je weet dat het waarschijnlijk een kwaadaardige toepassing 425 00:29:05,960 --> 00:29:09,620 of zeer zeer waarschijnlijk een kwaadaardige toepassing zijn, 426 00:29:09,620 --> 00:29:13,910 en dus wat er zou gebeuren, is dat app of andere manier van escalerende privilege zou hebben. 427 00:29:13,910 --> 00:29:17,200 Het zou wat privilegebreuk exploiteren 428 00:29:17,200 --> 00:29:20,730 in de aanvraag, en dan een keer het hogere privileges 429 00:29:20,730 --> 00:29:23,800 het zou deze systeem wijzigingen aan te doen. 430 00:29:23,800 --> 00:29:28,010 U kunt malware dat voorrecht escalatie is te vinden 431 00:29:28,010 --> 00:29:32,550 in het zelfs zonder te weten hoe het privilege escalatie 432 00:29:32,550 --> 00:29:37,960 exploit gaat gebeuren, en dat is een leuke, eenvoudige manier 433 00:29:37,960 --> 00:29:41,220 om te zoeken naar malware. 434 00:29:41,220 --> 00:29:46,030 DroidDream was waarschijnlijk het beroemdste stuk van de Android-malware. 435 00:29:46,030 --> 00:29:50,530 Ik denk dat het getroffen ongeveer 250.000 gebruikers over een paar dagen 436 00:29:50,530 --> 00:29:52,810 voordat het werd gevonden. 437 00:29:52,810 --> 00:29:56,890 Ze herverpakt 50 nep-toepassingen, 438 00:29:56,890 --> 00:30:00,370 zet ze in de Android app store, 439 00:30:00,370 --> 00:30:10,940 en in wezen het gebruikt Android jailbreak code privileges te verhogen 440 00:30:10,940 --> 00:30:16,380 en installeer vervolgens een commando en controle en draai alle slachtoffers 441 00:30:16,380 --> 00:30:20,690 in een botnet, maar je zou kunnen hebben dit ontdekt 442 00:30:20,690 --> 00:30:24,170 als je het scannen van de toepassing en gewoon op zoek naar 443 00:30:24,170 --> 00:30:32,230 API-aanroepen die vereist root rechten te kunnen voeren. 444 00:30:32,230 --> 00:30:40,150 >> En er is hier een voorbeeld heb ik dat het veranderen van de proxy, 445 00:30:40,150 --> 00:30:46,380 en dit ook daadwerkelijk is alleen beschikbaar op de Android. 446 00:30:46,380 --> 00:30:49,070 U kunt zien Ik geef je een heleboel voorbeelden op Android 447 00:30:49,070 --> 00:30:53,990 want dit is waar de meest actieve malware ecosysteem 448 00:30:53,990 --> 00:30:58,690 want het is echt makkelijk voor een aanvaller kwaadaardige code krijgen 449 00:30:58,690 --> 00:31:01,470 in de Android Marketplace. 450 00:31:01,470 --> 00:31:06,480 Het is niet zo gemakkelijk om dat te doen in de Apple App Store 451 00:31:06,480 --> 00:31:10,250 omdat Apple vraagt ​​ontwikkelaars om zich te identificeren 452 00:31:10,250 --> 00:31:12,790 en ondertekenen van de code. 453 00:31:12,790 --> 00:31:20,340 Zij controleren eigenlijk wie je bent, en Apple is eigenlijk het onderzoek van de aanvragen. 454 00:31:20,340 --> 00:31:27,450 We zien niet veel echte malware waar het apparaat wordt steeds aangetast. 455 00:31:27,450 --> 00:31:32,250 Ik zal praten over een aantal voorbeelden waar het echt privacy dat het krijgen is gecompromitteerd, 456 00:31:32,250 --> 00:31:38,460 en dat is wat er echt gebeurt op het Apple-apparaat. 457 00:31:38,460 --> 00:31:44,090 Een ander ding om te zoeken naar kwaadaardige code, riskant code in apparaten 458 00:31:44,090 --> 00:31:50,300 is logica of tijdbommen, en tijdbommen zijn waarschijnlijk 459 00:31:50,300 --> 00:31:53,370 veel gemakkelijker om te zoeken naar dan logische bommen. 460 00:31:53,370 --> 00:31:57,030 Maar met tijdbommen, wat je kunt doen is je kunt zoeken naar 461 00:31:57,030 --> 00:32:04,760 plaatsen in de code waar de tijd wordt getest of een absolute tijd wordt gezocht naar 462 00:32:04,760 --> 00:32:08,190 voor bepaalde functionaliteit in de app gebeurt. 463 00:32:08,190 --> 00:32:14,200 En dit kan worden gedaan om die activiteit te verbergen voor de gebruiker, 464 00:32:14,200 --> 00:32:17,510 dus het gebeurt 's avonds laat. 465 00:32:17,510 --> 00:32:24,350 DroidDream deed al haar activiteiten 11:00-08:00 lokale tijd 466 00:32:24,350 --> 00:32:30,650 om te proberen om het te doen, terwijl de gebruiker niet kan worden met behulp van hun apparaat. 467 00:32:30,650 --> 00:32:38,680 >> Een andere reden om dit te doen is als mensen gebruiken gedragsanalyse van een aanvraag, 468 00:32:38,680 --> 00:32:43,430 het uitvoeren van de app in een zandbak te zien wat het gedrag van de applicatie is, 469 00:32:43,430 --> 00:32:51,090 kunnen ze op tijd gebaseerde logica gebruiken om de activiteit te doen 470 00:32:51,090 --> 00:32:54,640 wanneer de app niet in de zandbak. 471 00:32:54,640 --> 00:33:01,520 Bijvoorbeeld, een app store zoals Apple 472 00:33:01,520 --> 00:33:07,940 loopt de applicatie, maar ze waarschijnlijk niet elke toepassing voor lopen, zeg, 30 dagen 473 00:33:07,940 --> 00:33:10,550 alvorens deze goed te keuren, zodat je 474 00:33:10,550 --> 00:33:14,120 logica in je applicatie die zei, oke, alleen de slechte zaak 475 00:33:14,120 --> 00:33:20,490 na 30 dagen voorbij is of na 30 dagen na de datum van publicatie van de aanvraag, 476 00:33:20,490 --> 00:33:27,020 en dat kan de kwaadaardige code verberg helpen van mensen die de inspectie voor. 477 00:33:27,020 --> 00:33:30,050 Als anti-virus bedrijven actief zijn dingen in zandbakken 478 00:33:30,050 --> 00:33:36,370 of de app stores zelf dit kan helpen 479 00:33:36,370 --> 00:33:39,260 verbergen dat van die inspectie. 480 00:33:39,260 --> 00:33:43,020 Nu, de keerzijde van dat is het gemakkelijk te vinden met statische analyse, 481 00:33:43,020 --> 00:33:46,170 dus eigenlijk het inspecteren van de code kunt u zoeken naar alle plaatsen 482 00:33:46,170 --> 00:33:54,010 indien de aanvraag toetst de tijd en te inspecteren op die manier. 483 00:33:54,010 --> 00:33:58,850 En hier heb ik een aantal voorbeelden van deze 3 verschillende platformen 484 00:33:58,850 --> 00:34:05,640 hoe de tijd kan worden gecontroleerd door de app maker 485 00:34:05,640 --> 00:34:10,520 zodat u weet wat te zoeken als je het inspecteren van de app statisch. 486 00:34:10,520 --> 00:34:14,570 >> Ik heb net een hele hoop verschillende kwaadaardige activiteiten 487 00:34:14,570 --> 00:34:18,969 die we hebben gezien in het wild, maar welke zijn de meest voorkomende? 488 00:34:18,969 --> 00:34:23,940 Diezelfde studie van de North Carolina State Mobile Genome Project 489 00:34:23,940 --> 00:34:28,560 publiceerde een aantal gegevens, en er waren eigenlijk 4 gebieden 490 00:34:28,560 --> 00:34:32,850 dat zij zagen waar er veel activiteit. 491 00:34:32,850 --> 00:34:35,370 37% van de apps deden privilege escalatie, 492 00:34:35,370 --> 00:34:38,429 dus ze hadden een soort van jailbreak code daar 493 00:34:38,429 --> 00:34:42,070 waar ze probeerden hun privileges te verhogen, zodat ze konden 494 00:34:42,070 --> 00:34:48,360 denk API commando's uitgevoerd als het besturingssysteem. 495 00:34:48,360 --> 00:34:52,520 45% van de apps die er zijn gedaan premium SMS, 496 00:34:52,520 --> 00:34:57,260 dus dat is een enorm percentage dat probeert om direct geld te verdienen. 497 00:34:57,260 --> 00:35:02,640 93% deed afstandsbediening, dus probeerden ze het opzetten van een botnet, een mobiel botnet. 498 00:35:02,640 --> 00:35:08,990 En 45% geoogst identificerende informatie 499 00:35:08,990 --> 00:35:16,230 zoals telefoonnummers, UUID's, GPS-locatie, gebruikersaccounts, 500 00:35:16,230 --> 00:35:22,870 en dit komt neer op meer dan 100, omdat de meeste malware probeert om een ​​paar van deze dingen te doen. 501 00:35:22,870 --> 00:35:27,070 >> Ik ga om te schakelen naar de tweede helft en praten over de code kwetsbaarheden. 502 00:35:27,070 --> 00:35:29,480 Dit is de tweede helft van de risicovolle activiteit. 503 00:35:29,480 --> 00:35:33,450 Hier hoofdzaak de ontwikkelaar maakt fouten. 504 00:35:33,450 --> 00:35:37,210 Een legitieme ontwikkelaar schrijven van een legitieme app 505 00:35:37,210 --> 00:35:41,830 is het maken van fouten of onwetend is over de risico's van het mobiele platform. 506 00:35:41,830 --> 00:35:44,780 Ze weten niet precies hoe ze een veilige mobiele app te maken, 507 00:35:44,780 --> 00:35:47,700 of soms de ontwikkelaar niet de zorg over het zetten van de gebruiker in gevaar. 508 00:35:47,700 --> 00:35:50,850 Soms wordt een deel van hun business model zou kunnen zijn 509 00:35:50,850 --> 00:35:54,610 oogsten van persoonlijke informatie van de gebruiker. 510 00:35:54,610 --> 00:35:58,090 Dat is een soort van de andere categorie, en dat is waarom sommige van deze schadelijke 511 00:35:58,090 --> 00:36:03,200 versus legitieme begint over te bloeden omdat er verschil van mening 512 00:36:03,200 --> 00:36:10,440 tussen wat de gebruiker wil en wat de gebruiker risicovol beschouwt 513 00:36:10,440 --> 00:36:13,050 en wat de applicatie ontwikkelaar riskant acht. 514 00:36:13,050 --> 00:36:18,380 Natuurlijk, het is niet de gegevens van de applicatie ontwikkelaar in de meeste gevallen. 515 00:36:18,380 --> 00:36:22,030 >> En dan tot slot, een andere manier waarop dit gebeurt is een ontwikkelaar zou kunnen koppelen in 516 00:36:22,030 --> 00:36:28,600 een gedeelde bibliotheek die kwetsbaarheden of dit risicovol gedrag in zich heeft 517 00:36:28,600 --> 00:36:32,480 buiten het medeweten van hen. 518 00:36:32,480 --> 00:36:37,060 De eerste categorie is gevoelige gegevens lekken, 519 00:36:37,060 --> 00:36:40,030 en dit is wanneer de app verzamelt informatie 520 00:36:40,030 --> 00:36:44,980 zoals locatie, adresboek informatie, eigenaar informatie 521 00:36:44,980 --> 00:36:48,000 en stuurt dat het toestel uit. 522 00:36:48,000 --> 00:36:53,050 En als het eenmaal uit het apparaat, weten we niet wat er met die informatie. 523 00:36:53,050 --> 00:36:57,170 Het kan onveilig worden opgeslagen door de applicatie ontwikkelaar. 524 00:36:57,170 --> 00:37:02,070 We hebben gezien applicatieontwikkelaars gekraakt 525 00:37:02,070 --> 00:37:05,820 en de gegevens die ze opslaan krijgt genomen. 526 00:37:05,820 --> 00:37:10,970 Dit gebeurde een paar maanden geleden aan een ontwikkelaar in Florida 527 00:37:10,970 --> 00:37:21,660 waar een groot aantal van-het was iPad UUIDs en namen apparaat 528 00:37:21,660 --> 00:37:25,270 waren uitgelekt omdat iemand, ik denk dat het anoniem was, 529 00:37:25,270 --> 00:37:29,460 beweerd om dit te doen, brak in de servers van deze ontwikkelaar 530 00:37:29,460 --> 00:37:34,920 en stal miljoenen iPad UUID 531 00:37:34,920 --> 00:37:37,390 en computer namen. 532 00:37:37,390 --> 00:37:40,260 Niet de meest risicovolle informatie, 533 00:37:40,260 --> 00:37:46,820 maar wat als dat was de opslag van gebruikersnamen en wachtwoorden 534 00:37:46,820 --> 00:37:48,170 en prive-adressen? 535 00:37:48,170 --> 00:37:51,100 Er zijn veel apps die dat soort informatie op te slaan. 536 00:37:51,100 --> 00:37:53,230 Het risico is er. 537 00:37:53,230 --> 00:37:56,620 >> Het andere ding dat kan gebeuren is als de ontwikkelaar niet verzorgen 538 00:37:56,620 --> 00:38:01,370 om het datakanaal te beveiligen, en dat is nog een grote kwetsbaarheid Ik ga om te praten over, 539 00:38:01,370 --> 00:38:05,160 dat gegevens worden verzonden in de heldere. 540 00:38:05,160 --> 00:38:09,040 Als de gebruiker op een openbare Wi-Fi-netwerk 541 00:38:09,040 --> 00:38:12,330 of iemand snuiven internet ergens 542 00:38:12,330 --> 00:38:19,260 langs het pad dat gegevens worden blootgesteld. 543 00:38:19,260 --> 00:38:23,790 Een zeer beroemde geval van deze lekken van informatie gebeurde met Pandora, 544 00:38:23,790 --> 00:38:27,250 en dit is iets wat we onderzocht bij Veracode. 545 00:38:27,250 --> 00:38:33,200 We hoorden dat er een-ik denk dat het een Federal Trade Commission was 546 00:38:33,200 --> 00:38:35,310 onderzoek aan de hand met Pandora. 547 00:38:35,310 --> 00:38:39,830 Wij zeiden: "Wat is er aan? Laten we beginnen graven in de Pandora-toepassing." 548 00:38:39,830 --> 00:38:46,690 En wat we vastbesloten was de Pandora toepassing verzameld 549 00:38:46,690 --> 00:38:51,270 uw geslacht en uw leeftijd, 550 00:38:51,270 --> 00:38:56,660 en het is ook toegankelijk uw GPS-locatie, en de Pandora toepassing 551 00:38:56,660 --> 00:39:00,200 deed dit voor wat ze zeiden waren legitieme redenen. 552 00:39:00,200 --> 00:39:05,360 De muziek die ze speelden-Pandora is een muziek streaming app- 553 00:39:05,360 --> 00:39:07,530 de muziek die ze speelden was slechts een licentie in de Verenigde Staten, 554 00:39:07,530 --> 00:39:13,020 dus moesten ze controleren om te voldoen aan hun licentieovereenkomsten die ze hadden 555 00:39:13,020 --> 00:39:17,240 de muziek die de gebruiker was in de Verenigde Staten. 556 00:39:17,240 --> 00:39:25,070 Ze wilden ook voldoen aan de ouderlijke adviserende 557 00:39:25,070 --> 00:39:33,790 rond volwassen taal in de muziek, 558 00:39:33,790 --> 00:39:37,500 en dus het is een vrijwillig programma, maar ze wilden om te voldoen aan die 559 00:39:37,500 --> 00:39:43,010 en niet expliciete teksten spelen om kinderen van 13 jaar en jonger. 560 00:39:43,010 --> 00:39:46,280 >> Ze hadden legitieme redenen voor het verzamelen van deze gegevens. 561 00:39:46,280 --> 00:39:49,160 Hun app had de rechten om het te doen. 562 00:39:49,160 --> 00:39:52,000 Gebruikers dacht dat dit legitiem was. Maar wat is er gebeurd? 563 00:39:52,000 --> 00:39:55,810 Zij verbonden in 3 of 4 verschillende ad bibliotheken. 564 00:39:55,810 --> 00:39:59,140 Nu ineens al deze advertentie bibliotheken 565 00:39:59,140 --> 00:40:02,970 krijgen toegang tot dezelfde gegevens. 566 00:40:02,970 --> 00:40:05,830 De advertentie bibliotheken, als je kijkt naar de code in de advertentie bibliotheken 567 00:40:05,830 --> 00:40:08,430 wat ze doen is elke advertentie bibliotheek zegt 568 00:40:08,430 --> 00:40:11,340 "Heeft mijn app hebt toestemming om GPS-locatie te krijgen?" 569 00:40:11,340 --> 00:40:14,890 "Oh, het doet? Oke, vertel me de GPS-locatie." 570 00:40:14,890 --> 00:40:16,620 Elke advertentie bibliotheek doet dat, 571 00:40:16,620 --> 00:40:19,740 en als de app niet GPS toestemming hebben 572 00:40:19,740 --> 00:40:23,460 het zal niet in staat zijn om het te krijgen, maar als dat zo is, zal het krijgen. 573 00:40:23,460 --> 00:40:26,240 Dit is waar het business model van de advertentie bibliotheken 574 00:40:26,240 --> 00:40:31,160 is tegen de privacy van de gebruiker. 575 00:40:31,160 --> 00:40:34,980 En er is al studies die er zijn die zal zeggen als je weet dat de leeftijd 576 00:40:34,980 --> 00:40:38,430 van een persoon en je weet hun locatie 577 00:40:38,430 --> 00:40:42,530 waar ze slapen 's nachts, omdat je hun GPS coördinaten 578 00:40:42,530 --> 00:40:46,030 terwijl ze misschien slaapt, weet je precies wie die persoon is 579 00:40:46,030 --> 00:40:50,230 want je kunt bepalen welk lid van dat huishouden is die persoon. 580 00:40:50,230 --> 00:40:54,780 Echt dit is het identificeren aan adverteerders 581 00:40:54,780 --> 00:40:59,530 precies wie je bent, en het lijkt erop dat het legitiem was. 582 00:40:59,530 --> 00:41:02,800 Ik wil gewoon mijn streaming muziek, en dit is de enige manier om het te krijgen. 583 00:41:02,800 --> 00:41:05,370 >> Nou, we blootgesteld dit. 584 00:41:05,370 --> 00:41:08,030 We schreven dit op in een aantal blog posts, 585 00:41:08,030 --> 00:41:13,280 en het bleek dat iemand van Rolling Stone magazine 586 00:41:13,280 --> 00:41:18,810 lees een van onze blog posts en schreef hun eigen blog in Rolling Stone over, 587 00:41:18,810 --> 00:41:22,120 en de volgende dag Pandora vond het een goed idee 588 00:41:22,120 --> 00:41:27,600 om de advertentie bibliotheken van hun toepassing te verwijderen. 589 00:41:27,600 --> 00:41:31,270 Voor zover ik weet dat ze het enige dat ze moeten worden geprezen. 590 00:41:31,270 --> 00:41:35,770 Ik denk dat ze de enige freemium soort app die dit heeft gedaan. 591 00:41:35,770 --> 00:41:38,660 Alle andere freemium apps hebben dit zelfde gedrag, 592 00:41:38,660 --> 00:41:41,780 dus je hebt om na te denken over wat voor soort data je geeft 593 00:41:41,780 --> 00:41:48,330 deze freemium applicaties omdat het allemaal aan adverteerders. 594 00:41:48,330 --> 00:41:53,390 Praetorian deed ook een studie over gedeelde bibliotheken en zei: 595 00:41:53,390 --> 00:41:57,100 "Laten we eens kijken naar wat gedeelde bibliotheken zijn de top gedeelde bibliotheken," en dit was de gegevens. 596 00:41:57,100 --> 00:41:59,420 >> Zij analyseerden 53.000 apps, 597 00:41:59,420 --> 00:42:01,900 en de nummer 1 gedeelde bibliotheek was Admob. 598 00:42:01,900 --> 00:42:06,060 Het was eigenlijk in 38% van de toepassingen die er zijn, 599 00:42:06,060 --> 00:42:08,800 dus 38% van de applicaties die u gebruikt 600 00:42:08,800 --> 00:42:11,250 waarschijnlijk oogsten uw persoonlijke gegevens 601 00:42:11,250 --> 00:42:16,650 en op te sturen naar de advertentienetwerken. 602 00:42:16,650 --> 00:42:19,350 Apache en Android waren 8% en 6%, 603 00:42:19,350 --> 00:42:22,960 en dan zijn deze andere die op de bodem, Google Ads, Flurry, 604 00:42:22,960 --> 00:42:26,600 Mob City en Duizendjarige Media, 605 00:42:26,600 --> 00:42:30,500 dit zijn allemaal ad bedrijven, en dan, interessant genoeg, 606 00:42:30,500 --> 00:42:33,500 4% gekoppeld aan de Facebook bibliotheek 607 00:42:33,500 --> 00:42:38,870 waarschijnlijk te doen authenticatie via Facebook 608 00:42:38,870 --> 00:42:40,810 zodat de app kan de Facebook authenticeren. 609 00:42:40,810 --> 00:42:44,660 Maar dat betekent ook dat de corporatie Facebook controleert code 610 00:42:44,660 --> 00:42:49,010 dat draait in 4% van de Android mobiele apps die er zijn, 611 00:42:49,010 --> 00:42:53,490 en hebben ze toegang tot alle gegevens die die app heeft toestemming om te komen. 612 00:42:53,490 --> 00:42:57,170 Facebook probeert in wezen om advertentieruimte te verkopen. 613 00:42:57,170 --> 00:43:00,120 Dat is hun business model. 614 00:43:00,120 --> 00:43:02,920 >> Als je kijkt naar dit hele ecosysteem met deze machtigingen 615 00:43:02,920 --> 00:43:07,740 en gedeelde bibliotheken je begint te zien dat 616 00:43:07,740 --> 00:43:13,850 je hebt een veel risico in een zogenaamd legitieme toepassing. 617 00:43:13,850 --> 00:43:19,360 Dezelfde vergelijkbaar wat er gebeurde met Pandora 618 00:43:19,360 --> 00:43:22,340 gebeurde met een applicatie genaamd Path, 619 00:43:22,340 --> 00:43:27,660 en Path dachten dat ze zijn behulpzaam, vriendelijk ontwikkelaars. 620 00:43:27,660 --> 00:43:32,160 Ze waren gewoon proberen om u een geweldige gebruikerservaring, 621 00:43:32,160 --> 00:43:37,810 en het bleek dat zonder dat de gebruiker of het vertellen van de gebruiker iets- 622 00:43:37,810 --> 00:43:40,400 en dit gebeurde op de iPhone en op Android, 623 00:43:40,400 --> 00:43:44,420 de Pandora app was op de iPhone en Android- 624 00:43:44,420 --> 00:43:48,890 dat het Pad applicatie is grijpen je hele adresboek 625 00:43:48,890 --> 00:43:52,830 en uploaden net wanneer je geïnstalleerd en liep de toepassing op pad, 626 00:43:52,830 --> 00:43:55,840 en ze je niet vertellen over deze. 627 00:43:55,840 --> 00:43:58,750 Ze vond het echt nuttig voor u 628 00:43:58,750 --> 00:44:04,040 te kunnen delen met alle mensen in uw adresboek 629 00:44:04,040 --> 00:44:06,920 dat u gebruikt het Pad applicatie. 630 00:44:06,920 --> 00:44:09,490 >> Nou, natuurlijk Path dacht dat dit was geweldig voor hun bedrijf. 631 00:44:09,490 --> 00:44:13,510 Niet zo geweldig voor de gebruiker. 632 00:44:13,510 --> 00:44:19,020 Je moet denken dat het een ding of misschien een tiener 633 00:44:19,020 --> 00:44:23,700 wordt met behulp van deze applicatie en hun tientallen vrienden zijn daar, 634 00:44:23,700 --> 00:44:29,360 maar wat als het de CEO van een bedrijf dat Pad installeert 635 00:44:29,360 --> 00:44:33,170 en dan ineens hun hele adresboek is daar? 636 00:44:33,170 --> 00:44:38,310 Je gaat veel potentieel waardevolle contact informatie te krijgen 637 00:44:38,310 --> 00:44:40,920 voor een heleboel mensen. 638 00:44:40,920 --> 00:44:44,500 Een verslaggever van de New York Times, kunt u mogelijk om het telefoonnummer te krijgen 639 00:44:44,500 --> 00:44:47,380 voor ex-presidenten uit hun adresboek, 640 00:44:47,380 --> 00:44:54,780 dus natuurlijk een heleboel gevoelige informatie wordt overgedragen met iets als dit. 641 00:44:54,780 --> 00:44:58,090 Er was zo'n grote flap over dit dat Path verontschuldigde. 642 00:44:58,090 --> 00:45:01,610 Ze veranderden hun app, en zelfs beïnvloed Apple. 643 00:45:01,610 --> 00:45:06,950 Apple zei: "We gaan naar app-leveranciers te dwingen om gebruikers vragen 644 00:45:06,950 --> 00:45:12,650 als ze gaan om hun hele adresboek te verzamelen. " 645 00:45:12,650 --> 00:45:15,360 >> Het lijkt erop dat wat hier gebeurt is 646 00:45:15,360 --> 00:45:19,430 als er een grote schending van de privacy en het maakt de pers 647 00:45:19,430 --> 00:45:21,680 zien we een verandering die er zijn. 648 00:45:21,680 --> 00:45:23,230 Maar natuurlijk, er zijn andere dingen die er zijn. 649 00:45:23,230 --> 00:45:27,440 De LinkedIn applicatie oogsten uw agenda-items, 650 00:45:27,440 --> 00:45:34,530 maar Apple maakt niet de gebruiker gevraagd over. 651 00:45:34,530 --> 00:45:38,030 Agenda-items kan gevoelige informatie te hebben in hen. 652 00:45:38,030 --> 00:45:40,000 Waar ga je de grens? 653 00:45:40,000 --> 00:45:43,960 Dit is echt een soort van een zich ontwikkelende plaats 654 00:45:43,960 --> 00:45:47,640 waar er is echt geen goede standaard die er zijn 655 00:45:47,640 --> 00:45:51,990 voor de gebruikers om te begrijpen wanneer hun informatie zal worden in gevaar 656 00:45:51,990 --> 00:45:57,820 en wanneer ze gaan om te weten dat het wordt genomen. 657 00:45:57,820 --> 00:46:03,040 We schreven een app op Veracode genaamd Adios, 658 00:46:03,040 --> 00:46:08,350 en in wezen het staat je toe om de app te wijzen op je iTunes-map 659 00:46:08,350 --> 00:46:12,550 en kijken naar alle toepassingen die werden oogsten uw volledige adresboek. 660 00:46:12,550 --> 00:46:19,760 En zoals je hier kunt zien op deze lijst, Angry Birds, 661 00:46:19,760 --> 00:46:21,590 AIM, AroundMe. 662 00:46:21,590 --> 00:46:24,050 Waarom heeft Angry Birds uw adresboek nodig? 663 00:46:24,050 --> 00:46:29,160 Ik weet het niet, maar het doet een of andere manier. 664 00:46:29,160 --> 00:46:32,310 >> Dit is iets dat vele, vele toepassingen doen. 665 00:46:32,310 --> 00:46:34,780 U kunt de code inspecteren voor. 666 00:46:34,780 --> 00:46:38,660 Er is goed gedefinieerde API's voor iPhone, Android en BlackBerry 667 00:46:38,660 --> 00:46:42,120 te krijgen op het adresboek. 668 00:46:42,120 --> 00:46:48,520 Je kunt echt gemakkelijk te inspecteren voor dit, en dit is wat we deden in onze Adios toepassing. 669 00:46:48,520 --> 00:46:52,320 De volgende categorie, Onveilige Sensitive Data Storage, 670 00:46:52,320 --> 00:46:55,670 is iets waar ontwikkelaars nemen iets als een pen of een rekeningnummer 671 00:46:55,670 --> 00:46:58,530 of een wachtwoord en bewaar het op de duidelijke op het apparaat. 672 00:46:58,530 --> 00:47:02,310 Erger nog, ze kunnen het op te slaan in een gebied aan de telefoon 673 00:47:02,310 --> 00:47:06,820 die wereldwijd toegankelijk is, net als de SD-kaart. 674 00:47:06,820 --> 00:47:11,320 Je ziet dit vaker op Android omdat Android zorgt voor een SD-kaart. 675 00:47:11,320 --> 00:47:13,200 IPhone-apparaten niet. 676 00:47:13,200 --> 00:47:17,900 Maar we zagen zelfs dit gebeuren in een CitiGroup toepassing. 677 00:47:17,900 --> 00:47:25,450 Hun online banking toepassing opgeslagen rekeningnummers onveilig, 678 00:47:25,450 --> 00:47:28,120 gewoon in de heldere, dus als u uw apparaat verloren, 679 00:47:28,120 --> 00:47:30,670 wezen u uw bankrekening verloren. 680 00:47:30,670 --> 00:47:36,000 Dit is de reden waarom ik persoonlijk niet bankieren op mijn iPhone. 681 00:47:36,000 --> 00:47:43,710 Ik denk dat het te riskant is nu om dit soort activiteiten te doen. 682 00:47:43,710 --> 00:47:45,950 >> Skype deed hetzelfde. 683 00:47:45,950 --> 00:47:49,870 Skype, natuurlijk, heeft een rekening van de betalingsbalans, een gebruikersnaam en wachtwoord 684 00:47:49,870 --> 00:47:51,030 die toegang hebben tot dat evenwicht. 685 00:47:51,030 --> 00:48:00,080 Ze waren al die informatie in het heldere op het mobiele apparaat op te slaan. 686 00:48:00,080 --> 00:48:05,760 Ik heb hier enkele voorbeelden van het creëren van bestanden 687 00:48:05,760 --> 00:48:10,310 dat niet de juiste machtigingen of schrijven naar schijf 688 00:48:10,310 --> 00:48:17,260 en niet met een of encryptie gebeuren voor dat. 689 00:48:17,260 --> 00:48:20,190 Dit volgende gebied, Onveilige gevoelige datatransmissie, 690 00:48:20,190 --> 00:48:24,450 Ik heb een paar keer gezinspeeld op deze, en vanwege openbare Wi-Fi 691 00:48:24,450 --> 00:48:27,770 dit is iets dat apps absoluut nodig om te doen, 692 00:48:27,770 --> 00:48:31,250 en dit is waarschijnlijk wat we zien mis het meest gaan. 693 00:48:31,250 --> 00:48:34,920 Ik zou zeggen-eigenlijk, ik denk dat ik de feitelijke gegevens, 694 00:48:34,920 --> 00:48:38,120 maar het is bijna de helft van de mobiele toepassingen 695 00:48:38,120 --> 00:48:41,780 verpesten doet SSL. 696 00:48:41,780 --> 00:48:43,910 Ze gewoon niet goed gebruik maken van de API's. 697 00:48:43,910 --> 00:48:47,970 Ik bedoel, alles wat je hebt te doen is volg de instructies en gebruik de API's, 698 00:48:47,970 --> 00:48:54,720 maar ze doen dingen als niet te controleren of er een ongeldig certificaat aan de andere kant, 699 00:48:54,720 --> 00:49:02,120 niet te controleren of de andere kant probeert een protocol downgrade aanval doen. 700 00:49:02,120 --> 00:49:07,200 >> De ontwikkelaars, ze willen hun checkbox krijgen, toch? 701 00:49:07,200 --> 00:49:11,910 Hun eis is om dit te gebruiken om te verkopen. Ze hebben dit gebruikt om te verkopen. 702 00:49:11,910 --> 00:49:14,800 De eis is niet om dit te gebruiken om veilig te verkopen, 703 00:49:14,800 --> 00:49:19,680 en dus dit is de reden waarom alle applicaties die SSL gebruiken om gegevens te beveiligen 704 00:49:19,680 --> 00:49:23,470 wanneer hij wordt overgebracht uit het apparaat echt moeten worden geïnspecteerd 705 00:49:23,470 --> 00:49:28,950 om ervoor te zorgen dat correct is geïmplementeerd. 706 00:49:28,950 --> 00:49:32,850 En hier heb ik een aantal voorbeelden waar u een aanvraag kunt zien 707 00:49:32,850 --> 00:49:37,400 zou kunnen worden met behulp van HTTP in plaats van HTTPS. 708 00:49:37,400 --> 00:49:40,510 In sommige gevallen zullen apps terugvallen op HTTP 709 00:49:40,510 --> 00:49:44,250 als het HTTPS niet werkt. 710 00:49:44,250 --> 00:49:49,070 Ik heb nog een oproep hier op Android, waar ze het certificaat controle hebt uitgeschakeld, 711 00:49:49,070 --> 00:49:51,700 dus een man-in-the-middle-aanval kan gebeuren. 712 00:49:51,700 --> 00:49:56,370 Een ongeldig certificaat worden geaccepteerd. 713 00:49:56,370 --> 00:50:01,920 Dit zijn alle gevallen waarin aanvallers zullen kunnen aan de slag 714 00:50:01,920 --> 00:50:07,150 hetzelfde Wi-Fi-verbinding als de gebruiker en de toegang van alle gegevens 715 00:50:07,150 --> 00:50:11,650 dat wordt verzonden via internet. 716 00:50:11,650 --> 00:50:15,970 >> En tenslotte, de laatste categorie die ik hier heb is hardcoded wachtwoord en sleutels. 717 00:50:15,970 --> 00:50:21,470 Zien we in feite een veel ontwikkelaars maken gebruik van dezelfde stijl van coderen 718 00:50:21,470 --> 00:50:25,900 dat ze deden toen ze werden het bouwen van web-server applicaties, 719 00:50:25,900 --> 00:50:29,700 zodat ze het bouwen van een Java-server applicatie, en ze zijn hardcoding de sleutel. 720 00:50:29,700 --> 00:50:31,940 Nou, als je het bouwen van een server applicatie, ja, 721 00:50:31,940 --> 00:50:34,240 hardcoding de sleutel is geen goed idee. 722 00:50:34,240 --> 00:50:36,290 Het maakt het moeilijk te veranderen. 723 00:50:36,290 --> 00:50:40,700 Maar het is niet zo slecht op de server omdat die toegang heeft tot de server kant heeft? 724 00:50:40,700 --> 00:50:43,140 Alleen de beheerders. 725 00:50:43,140 --> 00:50:48,100 Maar als je dezelfde code nemen en je het uitgegoten over een mobiele toepassing 726 00:50:48,100 --> 00:50:52,550 nu iedereen die dat mobiele app heeft toegang tot die hardcoded sleutel, 727 00:50:52,550 --> 00:50:56,380 en we eigenlijk zien dit een hoop tijd, en ik heb een aantal statistieken 728 00:50:56,380 --> 00:51:00,920 op hoe vaak we dit zien gebeuren. 729 00:51:00,920 --> 00:51:04,940 Het eigenlijk was in voorbeeld code die MasterCard gepubliceerd 730 00:51:04,940 --> 00:51:06,850 over hoe ze hun service te gebruiken. 731 00:51:06,850 --> 00:51:11,860 Het voorbeeld code liet zien hoe je gewoon het wachtwoord zou nemen 732 00:51:11,860 --> 00:51:14,850 en zet het in een hardcoded touwtje daar, 733 00:51:14,850 --> 00:51:19,380 en we weten hoe de ontwikkelaars graag kopiëren en plakken code snippets 734 00:51:19,380 --> 00:51:22,360 wanneer ze proberen om iets te doen, dus je kopieer en plak de code snippet 735 00:51:22,360 --> 00:51:28,450 dat zij gaven als voorbeeld code, en je een onzekere applicatie. 736 00:51:28,450 --> 00:51:31,490 >> En hier hebben we een aantal voorbeelden. 737 00:51:31,490 --> 00:51:35,840 Deze eerste is een zien we veel waar ze hardcoden 738 00:51:35,840 --> 00:51:40,510 de gegevens recht in een URL die wordt verstuurd. 739 00:51:40,510 --> 00:51:45,120 Soms zien we snaar password = het wachtwoord. 740 00:51:45,120 --> 00:51:49,060 Dat is vrij gemakkelijk op te sporen, of touwtje wachtwoord op de BlackBerry en Android. 741 00:51:49,060 --> 00:51:53,680 Het is eigenlijk vrij eenvoudig te controleren omdat bijna altijd 742 00:51:53,680 --> 00:51:57,030 de ontwikkelaar namen de variabele die houdt het wachtwoord 743 00:51:57,030 --> 00:52:02,290 een variant van het wachtwoord. 744 00:52:02,290 --> 00:52:05,200 Ik heb gezegd dat we doen statische analyse op Veracode, 745 00:52:05,200 --> 00:52:11,790 dus we hebben enkele honderden Android en iOS applicaties geanalyseerd. 746 00:52:11,790 --> 00:52:15,160 We hebben gebouwd vol modellen van hen, en we zijn in staat om ze te scannen 747 00:52:15,160 --> 00:52:19,280 voor verschillende kwetsbaarheden, vooral de kwetsbaarheden ik het over had, 748 00:52:19,280 --> 00:52:21,050 en ik heb een aantal gegevens hier. 749 00:52:21,050 --> 00:52:24,320 68,5% van de Android-apps hebben we gekeken naar 750 00:52:24,320 --> 00:52:28,590 had cryptografische code gebroken, 751 00:52:28,590 --> 00:52:33,240 die voor ons, kunnen we niet ontdekken als je je eigen crypto routine gemaakt, 752 00:52:33,240 --> 00:52:38,980 niet dat dat een goed idee, maar dit is eigenlijk het gebruik van de gepubliceerde API 753 00:52:38,980 --> 00:52:42,530 die op het platform, maar doen ze zodanig 754 00:52:42,530 --> 00:52:46,680 dat de crypto kwetsbaar zou zijn, 68,5. 755 00:52:46,680 --> 00:52:49,870 En dit is voor mensen die ons daadwerkelijk sturen hun toepassingen, omdat 756 00:52:49,870 --> 00:52:53,730 ze denken dat het een goed idee om de beveiliging testen te doen. 757 00:52:53,730 --> 00:52:56,960 Deze zijn al mensen die waarschijnlijk goed zijn denken, 758 00:52:56,960 --> 00:52:59,540 dus het is waarschijnlijk nog erger. 759 00:52:59,540 --> 00:53:02,690 >> Ik heb het niet over controle line feed injectie. 760 00:53:02,690 --> 00:53:07,640 Het is iets wat we controleren voor, maar het is niet zo riskant probleem. 761 00:53:07,640 --> 00:53:15,390 Lekken van informatie, dit is waar gevoelige gegevens worden verzonden van het apparaat af. 762 00:53:15,390 --> 00:53:19,270 We vonden dat in 40% van de aanvragen. 763 00:53:19,270 --> 00:53:23,540 Tijd en staat, dat zijn ras staat Type kwesties, meestal vrij moeilijk te exploiteren, 764 00:53:23,540 --> 00:53:26,170 zodat ik niet over praten, maar we keken naar het. 765 00:53:26,170 --> 00:53:28,750 23% had een SQL-injectie problemen. 766 00:53:28,750 --> 00:53:32,020 Veel mensen weten niet dat veel applicaties 767 00:53:32,020 --> 00:53:35,880 Gebruik een klein beetje SQL-database op hun back-end om gegevens op te slaan. 768 00:53:35,880 --> 00:53:40,430 Nou, als de gegevens die je grijpen via het netwerk 769 00:53:40,430 --> 00:53:43,800 heeft SQL-injectie aanval strings in het 770 00:53:43,800 --> 00:53:45,970 iemand kan het apparaat in gevaar brengen door die, 771 00:53:45,970 --> 00:53:49,800 en dus ik denk dat we ongeveer 40% van web applicaties hebben dit probleem, 772 00:53:49,800 --> 00:53:52,840 dat is een enorme epidemie probleem. 773 00:53:52,840 --> 00:53:55,740 We vinden het 23% van de tijd in mobiele apps 774 00:53:55,740 --> 00:54:02,030 en dat is waarschijnlijk omdat er veel meer web-applicaties te gebruiken SQL dan mobiel. 775 00:54:02,030 --> 00:54:05,580 >> En dan zien we nog steeds een aantal cross-site scripting, kwesties machtiging, 776 00:54:05,580 --> 00:54:09,400 en dan credential management, dat is waar je je hardcoded wachtwoord. 777 00:54:09,400 --> 00:54:14,540 In 5% van de aanvragen zien we dat. 778 00:54:14,540 --> 00:54:17,970 En dan hebben we een aantal gegevens op iOS. 779 00:54:17,970 --> 00:54:20,180 81% had foutafhandeling kwesties. 780 00:54:20,180 --> 00:54:23,130 Dit is meer een code kwaliteitsprobleem, 781 00:54:23,130 --> 00:54:28,010 maar 67% had cryptografische problemen, dus het is niet zo slecht als Android. 782 00:54:28,010 --> 00:54:32,440 Misschien is de API's zijn een beetje makkelijker, het voorbeeld codes een beetje beter op iOS. 783 00:54:32,440 --> 00:54:35,420 Maar nog steeds een zeer hoog percentage. 784 00:54:35,420 --> 00:54:39,040 We hadden 54% met het lekken van informatie, 785 00:54:39,040 --> 00:54:42,080 ongeveer 30% met buffer beheer fouten. 786 00:54:42,080 --> 00:54:45,930 Dat is op plaatsen waar er potentieel poolbeschadiging zou kunnen zijn. 787 00:54:45,930 --> 00:54:50,350 Het blijkt dat dat niet zo veel van een probleem voor de exploitatie 788 00:54:50,350 --> 00:54:56,450 op iOS omdat alle code moet worden ondertekend, 789 00:54:56,450 --> 00:55:02,210 dus het is moeilijk voor een aanvaller om willekeurige code uit te voeren op iOS. 790 00:55:02,210 --> 00:55:07,880 Kwaliteit van de code, directory traversal, maar dan geloofsbrieven beheer hier op 14,6%, 791 00:55:07,880 --> 00:55:09,250 dus erger dan op de Android. 792 00:55:09,250 --> 00:55:13,240 We hebben mensen niet de correcte afhandeling van wachtwoorden. 793 00:55:13,240 --> 00:55:15,790 En dan is de numerieke fouten en buffer overflow, 794 00:55:15,790 --> 00:55:22,680 die zijn meer gaan code kwaliteitsproblemen op iOS zijn. 795 00:55:22,680 --> 00:55:26,110 >> Dat was het voor mijn presentatie. Ik weet niet of we hebben geen tijd of niet. 796 00:55:26,110 --> 00:55:29,540 Ik weet niet of er vragen zijn. 797 00:55:29,540 --> 00:55:33,220 [Mannelijk] Een snelle vraag rond fragmentatie en de Android market. 798 00:55:33,220 --> 00:55:36,240 Apple tenminste bezit patchen. 799 00:55:36,240 --> 00:55:40,780 Ze doen een goede baan van het krijgen van het daar terwijl minder in de Android ruimte. 800 00:55:40,780 --> 00:55:44,280 Je moet bijna op je telefoon jailbreaken om bij te blijven 801 00:55:44,280 --> 00:55:46,660 met de huidige versie van Android. 802 00:55:46,660 --> 00:55:50,960 Ja, dat is een groot probleem en dus als u denkt over- 803 00:55:50,960 --> 00:55:52,280 [Mannelijk] Waarom kan je het niet herhalen? 804 00:55:52,280 --> 00:55:55,610 >> Oh, rechts, dus de vraag was wat over fragmentatie 805 00:55:55,610 --> 00:56:00,410 van het besturingssysteem op het Android-platform? 806 00:56:00,410 --> 00:56:05,890 Hoe beïnvloedt dat de risico's van deze apparaten? 807 00:56:05,890 --> 00:56:09,700 En het is eigenlijk een groot probleem, want wat er gebeurt is 808 00:56:09,700 --> 00:56:15,110 de oudere apparaten, wanneer iemand komt met een jailbreak voor dat apparaat, 809 00:56:15,110 --> 00:56:19,960 wezen dat privilege escalatie, en totdat dat besturingssysteem wordt bijgewerkt 810 00:56:19,960 --> 00:56:25,350 alle malware kunt vervolgens dat kwetsbaarheid voor volledig afbreuk doen aan de inrichting, 811 00:56:25,350 --> 00:56:30,200 en wat we zien op de Android is om een ​​nieuw besturingssysteem te krijgen 812 00:56:30,200 --> 00:56:34,690 Google heeft het besturingssysteem uit te zetten, en vervolgens de hardwarefabrikant 813 00:56:34,690 --> 00:56:39,390 heeft om het aan te passen, en vervolgens de vervoerder aan te passen en leveren het. 814 00:56:39,390 --> 00:56:43,070 Je eigenlijk 3 bewegende delen hier, 815 00:56:43,070 --> 00:56:47,210 en het is draaien dat de dragers niet schelen, 816 00:56:47,210 --> 00:56:50,400 en de hardware fabrikanten niet schelen, en Google is ze niet genoeg porren 817 00:56:50,400 --> 00:56:54,430 om iets te doen, dus in wezen meer dan de helft van de apparaten die er 818 00:56:54,430 --> 00:57:00,590 hebben besturingssystemen die deze escalatieprobleem kwetsbaarheden in zich hebben, 819 00:57:00,590 --> 00:57:08,440 en dus als je malware op je Android-toestel is het veel meer een probleem. 820 00:57:08,440 --> 00:57:10,350 >> Oke, heel erg bedankt. 821 00:57:10,350 --> 00:57:12,310 [Applaus] 822 00:57:12,310 --> 00:57:14,310 [CS50.TV]