1 00:00:00,000 --> 00:00:02,610 >> [Séminaire] [Défendre Derrière le périphérique: Mobile Security Application] 2 00:00:02,610 --> 00:00:04,380 [Chris Wysopal] [Université de Harvard] 3 00:00:04,380 --> 00:00:07,830 [C'est CS50.] [CS50.TV] 4 00:00:07,830 --> 00:00:10,360 >> Bonjour. Mon nom est Chris Wysopal. 5 00:00:10,360 --> 00:00:13,360 Je suis le CTO et co-fondateur de VeraCode. 6 00:00:13,360 --> 00:00:15,880 VeraCode est une société de sécurité de l'application. 7 00:00:15,880 --> 00:00:18,230 Nous testons tous les types d'applications différentes, 8 00:00:18,230 --> 00:00:25,060 et ce que je vais vous parler aujourd'hui est la sécurité de l'application mobile. 9 00:00:25,060 --> 00:00:28,630 Mon fond est j'ai fait des recherches de sécurité 10 00:00:28,630 --> 00:00:31,970 pour un temps très long, probablement aussi longtemps que quiconque. 11 00:00:31,970 --> 00:00:35,000 J'ai commencé dans le milieu des années 90, 12 00:00:35,000 --> 00:00:37,370 et il fut un temps que c'était assez intéressant car 13 00:00:37,370 --> 00:00:39,220 nous avons eu un changement de paradigme dans le milieu des années 90. 14 00:00:39,220 --> 00:00:43,520 Tout l'ordinateur d'un coup tout le monde a été relié à l'Internet, 15 00:00:43,520 --> 00:00:46,550 et puis nous avons eu les débuts d'applications web, 16 00:00:46,550 --> 00:00:49,330 et c'est ce que je me suis concentré sur un terrain alors. 17 00:00:49,330 --> 00:00:51,160 C'est intéressant. 18 00:00:51,160 --> 00:00:53,930 Maintenant, nous avons un autre changement de paradigme qui se passe à l'informatique, 19 00:00:53,930 --> 00:00:58,710 qui est le passage à des applications mobiles. 20 00:00:58,710 --> 00:01:03,680 >> Je pense que c'est une sorte de temps similaire alors qu'il était à la fin des années 90 21 00:01:03,680 --> 00:01:07,650 quand nous étions étudions les applications Web et de trouver des défauts comme 22 00:01:07,650 --> 00:01:11,800 erreurs de gestion de session et injection SQL 23 00:01:11,800 --> 00:01:14,940 qui a vraiment n'existait pas avant, et tout d'un coup, ils étaient partout 24 00:01:14,940 --> 00:01:19,360 dans les applications Web, et maintenant beaucoup de temps que je passe 25 00:01:19,360 --> 00:01:27,950 est à la recherche à des applications mobiles et en regardant ce qui se passe là-bas à l'état sauvage. 26 00:01:27,950 --> 00:01:32,060 Les applications mobiles vont vraiment être la plate-forme informatique dominante, 27 00:01:32,060 --> 00:01:35,060 donc nous avons vraiment besoin de passer beaucoup de temps si vous êtes dans le secteur de la sécurité 28 00:01:35,060 --> 00:01:39,280 en mettant l'accent sur les applications web. 29 00:01:39,280 --> 00:01:43,420 Il y avait 29 milliards d'applications téléchargées en 2011 mobiles. 30 00:01:43,420 --> 00:01:47,920 Il est prévu à 76 milliards d'applications en 2014. 31 00:01:47,920 --> 00:01:54,040 Il ya 686 millions de dispositifs qui vont être achetés cette année, 32 00:01:54,040 --> 00:01:57,060 c'est donc là que les gens vont faire 33 00:01:57,060 --> 00:01:59,600  la majorité de leur informatique de client à l'avenir. 34 00:01:59,600 --> 00:02:04,220 >> Je parlais à un vice-président de Fidelity Investments 35 00:02:04,220 --> 00:02:08,780 Il ya quelques mois, et il a dit qu'ils viennent de voir plus de trafic 36 00:02:08,780 --> 00:02:12,610 faire des transactions financières à partir de leur base de clientèle 37 00:02:12,610 --> 00:02:16,230 sur leur application mobile que sur leur site web, 38 00:02:16,230 --> 00:02:20,610 si un usage courant pour le Web dans le passé a été 39 00:02:20,610 --> 00:02:23,800 vérifier vos cotations boursières, la gestion de votre portefeuille, 40 00:02:23,800 --> 00:02:28,060 et nous sommes en train de voir que dans le commutateur 2012 sur 41 00:02:28,060 --> 00:02:30,960 être plus dominant sur la plate-forme mobile. 42 00:02:30,960 --> 00:02:34,530 Certes, si il va y avoir une quelconque activité criminelle, 43 00:02:34,530 --> 00:02:38,900 toute activité malveillante, il va commencer à se concentrer sur la plate-forme mobile 44 00:02:38,900 --> 00:02:44,210 au fil du temps que les gens passent plus de cela. 45 00:02:44,210 --> 00:02:48,320 Si vous regardez à la plate-forme mobile, 46 00:02:48,320 --> 00:02:54,380 d'examiner les risques de la plate-forme, il est utile de le décomposer en différentes couches, 47 00:02:54,380 --> 00:02:59,010 tout comme vous le feriez sur un ordinateur de bureau, 48 00:02:59,010 --> 00:03:02,860 et vous pensez des différentes couches, logiciels, système d'exploitation, 49 00:03:02,860 --> 00:03:07,730 couche réseau, couche de matériel, et bien sûr, il ya des vulnérabilités sur toutes ces couches. 50 00:03:07,730 --> 00:03:10,510 >> La même chose se produit sur mobile. 51 00:03:10,510 --> 00:03:14,880 Mais mobile, il semble que certains de ces couches sont moins bien lotis. 52 00:03:14,880 --> 00:03:19,840 D'une part, la couche de réseau est plus problématique sur mobile 53 00:03:19,840 --> 00:03:25,650 parce que beaucoup de gens ont dans leur bureau ou à la maison 54 00:03:25,650 --> 00:03:30,780 un raccordement fixe ou ils ont sécurisé les connexions Wi-Fi, 55 00:03:30,780 --> 00:03:36,530 et avec un grand nombre de périphériques mobiles, vous êtes de toute évidence à l'extérieur de la maison 56 00:03:36,530 --> 00:03:40,520 ou à l'extérieur du bureau d'un lot, et si vous utilisez une connexion Wi-Fi y 57 00:03:40,520 --> 00:03:42,820 vous utilisez peut-être une insécurité connexion Wi-Fi gratuite, 58 00:03:42,820 --> 00:03:45,570 quelque chose qui est une connexion Wi-Fi gratuite, 59 00:03:45,570 --> 00:03:48,840 quand nous pensons à des applications mobiles que nous avons à prendre en compte 60 00:03:48,840 --> 00:03:53,770 que l'environnement réseau est plus risquée pour ces applications 61 00:03:53,770 --> 00:03:57,640 lorsque le Wi-Fi est utilisé. 62 00:03:57,640 --> 00:04:02,410 Et quand je reçois en plus des risques d'applications mobiles 63 00:04:02,410 --> 00:04:04,910 vous verrez pourquoi c'est plus important. 64 00:04:04,910 --> 00:04:09,710 Il ya des risques au niveau matériel sur les appareils mobiles. 65 00:04:09,710 --> 00:04:11,670 C'est un domaine de recherche en cours. 66 00:04:11,670 --> 00:04:15,910 Les gens appellent ces attaques à large bande ou des attaques en bande de base 67 00:04:15,910 --> 00:04:21,870 où vous attaquez le firmware qui est à l'écoute sur la radio. 68 00:04:21,870 --> 00:04:25,430 >> Ce sont vraiment des attaques effrayantes parce 69 00:04:25,430 --> 00:04:27,280 l'utilisateur n'a pas à faire quoi que ce soit. 70 00:04:27,280 --> 00:04:30,760 Vous pouvez frapper un bon nombre de dispositifs à portée de RF 71 00:04:30,760 --> 00:04:36,690 à la fois, et il semble que chaque fois que cette recherche bouillonne 72 00:04:36,690 --> 00:04:40,750 il obtient rapidement classé où 73 00:04:40,750 --> 00:04:46,600 les gens foncent en autour et disent: «Ici, nous disent à ce sujet, et s'il vous plaît arrêter d'en parler." 74 00:04:46,600 --> 00:04:49,460 Il ya des recherches en cours dans le domaine de la large bande, 75 00:04:49,460 --> 00:04:51,980 mais il semble être très hush hush. 76 00:04:51,980 --> 00:04:56,910 Je pense que c'est plus d'un type de recherche de l'Etat de la nation qui se passe. 77 00:04:56,910 --> 00:05:02,140 Un domaine de recherche active, cependant, c'est la couche de système d'exploitation, 78 00:05:02,140 --> 00:05:08,910 et encore une fois, c'est différent que dans le monde informatique de bureau 79 00:05:08,910 --> 00:05:14,840 parce que dans l'espace mobile, vous avez ces équipes de personnes appelées Jailbreakers, 80 00:05:14,840 --> 00:05:18,670 et Jailbreakers sont différents de chercheurs réguliers de vulnérabilité. 81 00:05:18,670 --> 00:05:21,970 Ils essaient de trouver des vulnérabilités dans le système d'exploitation, 82 00:05:21,970 --> 00:05:27,000 mais la raison pour laquelle ils essaient de trouver les vulnérabilités n'est pas à 83 00:05:27,000 --> 00:05:31,810 s'introduire dans l'ordinateur de quelqu'un d'autre et compromettre. 84 00:05:31,810 --> 00:05:34,280 C'est à percer dans leur propre ordinateur. 85 00:05:34,280 --> 00:05:38,820 >> Ils veulent percer dans leur propre mobile, modifier le système d'exploitation de leur propre portable 86 00:05:38,820 --> 00:05:41,050 afin qu'ils puissent exécuter les applications de leur choix 87 00:05:41,050 --> 00:05:44,510 et changer les choses avec des autorisations administratives complètes, 88 00:05:44,510 --> 00:05:49,050 et ils ne veulent pas dire le vendeur à ce sujet. 89 00:05:49,050 --> 00:05:52,960 Ils ne sont pas comme un chercheur en sécurité qui est un chercheur en sécurité chapeau blanc 90 00:05:52,960 --> 00:05:56,600 qui va faire une divulgation responsable et dire le vendeur à ce sujet. 91 00:05:56,600 --> 00:06:01,270 Ils veulent faire cette recherche, et ils veulent en fait publier 92 00:06:01,270 --> 00:06:06,400 dans une exploitation ou un rootkit ou d'un code de jailbreak, 93 00:06:06,400 --> 00:06:10,010 et ils veulent le faire de façon stratégique, comme juste après 94 00:06:10,010 --> 00:06:13,570 les navires de fournisseurs du nouveau système d'exploitation. 95 00:06:13,570 --> 00:06:16,350 Vous avez cette relation contradictoire 96 00:06:16,350 --> 00:06:19,000 des vulnérabilités au niveau du système d'exploitation sur le mobile, 97 00:06:19,000 --> 00:06:23,150 je pense que c'est tout à fait intéressant, et un endroit où nous vois 98 00:06:23,150 --> 00:06:29,210 est-il fait en sorte que il ya du bon code publié exploiter là-bas 99 00:06:29,210 --> 00:06:31,750 des vulnérabilités au niveau du noyau, 100 00:06:31,750 --> 00:06:35,040 et nous avons vu ceux qui sont effectivement être utilisé par les auteurs de logiciels malveillants. 101 00:06:35,040 --> 00:06:38,450 C'est un peu différent que le monde du PC. 102 00:06:38,450 --> 00:06:42,530 Et ensuite la couche finale est la couche supérieure, la couche d'application. 103 00:06:42,530 --> 00:06:45,250 C'est ce que je vais vous parler aujourd'hui. 104 00:06:45,250 --> 00:06:48,970 Les autres couches >> existent, et les autres couches jouent en elle, 105 00:06:48,970 --> 00:06:53,310 mais je suis surtout vais parler de ce qui se passe à la couche d'application 106 00:06:53,310 --> 00:06:55,560 où le code est exécuté dans le bac à sable. 107 00:06:55,560 --> 00:06:58,670 Il ne dispose pas de privilèges administratifs. 108 00:06:58,670 --> 00:07:02,170 Il doit utiliser les API de l'appareil, 109 00:07:02,170 --> 00:07:06,970 mais encore, beaucoup d'activités malveillantes et beaucoup de risques peuvent se produire à cette couche 110 00:07:06,970 --> 00:07:09,220 parce que c'est la couche où toute l'information est. 111 00:07:09,220 --> 00:07:12,330 Les applications peuvent accéder à toute l'information sur le dispositif 112 00:07:12,330 --> 00:07:15,390 s'ils ont les bonnes autorisations, 113 00:07:15,390 --> 00:07:17,540 et ils peuvent accéder aux différents capteurs de l'appareil, 114 00:07:17,540 --> 00:07:23,950 capteur GPS, microphone, appareil photo, ce que vous avez. 115 00:07:23,950 --> 00:07:27,380 Même si nous ne parlons que de la couche d'application 116 00:07:27,380 --> 00:07:33,700 nous avons beaucoup de risque là. 117 00:07:33,700 --> 00:07:38,450 L'autre chose qui est différent au sujet de l'environnement mobile 118 00:07:38,450 --> 00:07:45,060 est l'ensemble des acteurs du système d'exploitation, que ce soit BlackBerry ou Android 119 00:07:45,060 --> 00:07:53,410 ou iOS ou Windows mobile, ils ont tous un modèle d'autorisation à grain fin, 120 00:07:53,410 --> 00:07:56,990 et c'est l'une des façons dont ils intégrés dans le système d'exploitation 121 00:07:56,990 --> 00:08:01,230 l'idée que ce n'est pas aussi risqué que vous pensez. 122 00:08:01,230 --> 00:08:04,550 Même si vous avez tous vos contacts sur il, toutes vos informations personnelles, 123 00:08:04,550 --> 00:08:09,080 vous avez vos photos, vous avez votre position là-bas, 124 00:08:09,080 --> 00:08:14,820 vous stockez votre NIP bancaire pour la connexion automatique là-bas, c'est sûr, car 125 00:08:14,820 --> 00:08:19,430 applications doivent disposer de certaines autorisations à obtenir à certaines parties 126 00:08:19,430 --> 00:08:25,080 des informations sur l'appareil, et l'utilisateur doit être présenté avec 127 00:08:25,080 --> 00:08:29,230 ces autorisations et disent bien. 128 00:08:29,230 --> 00:08:32,590 >> Le problème, c'est que l'utilisateur dit toujours d'accord. 129 00:08:32,590 --> 00:08:35,240 Comme une personne de la sécurité, je sais que vous pouvez demander à l'utilisateur, 130 00:08:35,240 --> 00:08:40,100 dire quelque chose de vraiment mauvais qui va se passer, voulez-vous que cela se produise? 131 00:08:40,100 --> 00:08:44,680 Et si ils sont dans une course ou il ya quelque chose de vraiment séduisant de l'autre côté de cela, 132 00:08:44,680 --> 00:08:47,760 comme un jeu va être installé que ils ont attendu, 133 00:08:47,760 --> 00:08:50,860 ils vont cliquer sur ok. 134 00:08:50,860 --> 00:08:56,630 C'est pourquoi je dis à ma diapositive laissez-moi jeter oiseaux à porcs déjà, 135 00:08:56,630 --> 00:09:03,150 et vous pouvez le voir sur la diapositive, il ya des exemples d'une boîte de permission BlackBerry. 136 00:09:03,150 --> 00:09:05,990 Il dit: «S'il vous plaît définir les autorisations d'application BlackBerry Travel 137 00:09:05,990 --> 00:09:09,720 après cliquant sur le bouton ci-dessous, "et essentiellement l'utilisateur est juste dire 138 00:09:09,720 --> 00:09:12,240 définir les autorisations et économisez. 139 00:09:12,240 --> 00:09:18,010 Voici un rapide Android où il montre des choses, 140 00:09:18,010 --> 00:09:20,260 et il met effectivement quelque chose qui ressemble presque à un avertissement. 141 00:09:20,260 --> 00:09:25,090 Il a une sorte de signe de rendement il dire la communication de réseau, appel téléphonique, 142 00:09:25,090 --> 00:09:28,120 mais l'utilisateur va cliquer sur installer, non? 143 00:09:28,120 --> 00:09:32,940 Et puis l'un d'Apple est totalement inoffensif. 144 00:09:32,940 --> 00:09:34,300 Il ne donne aucune sorte d'avertissement. 145 00:09:34,300 --> 00:09:37,380 C'est juste d'Apple aimerait utiliser votre emplacement actuel. 146 00:09:37,380 --> 00:09:39,670 Bien sûr, vous allez cliquer OK. 147 00:09:39,670 --> 00:09:42,260 >> Il est ce modèle d'autorisation fine, 148 00:09:42,260 --> 00:09:45,890 et applications à avoir un fichier de manifeste où ils déclarent 149 00:09:45,890 --> 00:09:49,410 les autorisations dont ils ont besoin, et qui vont se présenter à l'utilisateur, 150 00:09:49,410 --> 00:09:53,480 et l'utilisateur aura à dire, je l'accorde ces autorisations. 151 00:09:53,480 --> 00:09:55,080 Mais soyons honnêtes. 152 00:09:55,080 --> 00:09:58,400 Les utilisateurs vont juste dire toujours d'accord. 153 00:09:58,400 --> 00:10:04,460 Jetons un coup d'œil sur les autorisations que ces applications se posent pour 154 00:10:04,460 --> 00:10:06,850 et certains des autorisations qui sont là. 155 00:10:06,850 --> 00:10:09,950 Cette société prétorienne a fait un sondage l'an dernier 156 00:10:09,950 --> 00:10:14,170 de 53 000 applications analysées dans les marchés et 3ème parti marchés Android, 157 00:10:14,170 --> 00:10:16,770 si c'est tout ce que Android. 158 00:10:16,770 --> 00:10:19,670 Et l'application moyenne a demandé 3 autorisations. 159 00:10:19,670 --> 00:10:23,370 Certaines applications ont demandé 117 autorisations, 160 00:10:23,370 --> 00:10:27,480 si évidemment ce sont des grains très fins et trop complexe pour un utilisateur de comprendre 161 00:10:27,480 --> 00:10:31,600 si ils sont présentés avec cette application qui a besoin de ces 117 autorisations. 162 00:10:31,600 --> 00:10:37,270 C'est comme le contrat de licence utilisateur final qui est de 45 pages. 163 00:10:37,270 --> 00:10:40,240 Peut-être que bientôt ils auront une option où c'est comme 164 00:10:40,240 --> 00:10:43,100 imprimer les autorisations et envoyez-moi un e-mail. 165 00:10:43,100 --> 00:10:45,480 >> Mais si vous regardez certains des meilleurs autorisations intéressantes 166 00:10:45,480 --> 00:10:50,840 24% des applications qu'ils ont téléchargé sur le 53000 167 00:10:50,840 --> 00:10:57,230 l'information de GPS demandé depuis le dispositif. 168 00:10:57,230 --> 00:10:59,810 8% ont lu les contacts. 169 00:10:59,810 --> 00:11:03,770 4% SMS envoyé, et 3% ont reçu des SMS. 170 00:11:03,770 --> 00:11:07,730 2% enregistré audio. 171 00:11:07,730 --> 00:11:11,210 1% traitement des appels sortants. 172 00:11:11,210 --> 00:11:13,140 Je ne sais pas. 173 00:11:13,140 --> 00:11:17,520 Je ne pense pas 4% des applications dans l'App Store vraiment besoin d'envoyer des messages texte SMS, 174 00:11:17,520 --> 00:11:21,410 donc je pense que c'est un signe que quelque chose de fâcheux se passe. 175 00:11:21,410 --> 00:11:24,350 8% des applications ont besoin de lire votre liste de contacts. 176 00:11:24,350 --> 00:11:26,510 Il n'est probablement pas nécessaire. 177 00:11:26,510 --> 00:11:30,990 Une des autres choses intéressantes sur les autorisations est 178 00:11:30,990 --> 00:11:36,740 si vous liez les bibliothèques partagées dans votre application 179 00:11:36,740 --> 00:11:39,780 ceux qui héritent des autorisations de la demande, 180 00:11:39,780 --> 00:11:46,570 si votre application a besoin de la liste de contacts ou besoin de la position GPS pour fonctionner 181 00:11:46,570 --> 00:11:49,940 et vous liez dans une bibliothèque de la publicité, par exemple, 182 00:11:49,940 --> 00:11:53,170 qui annonce la bibliothèque sera également en mesure d'accéder aux contacts 183 00:11:53,170 --> 00:11:57,630 et aussi être capable d'accéder à la position GPS, 184 00:11:57,630 --> 00:12:01,990 et le développeur de l'application ne sait rien à propos du code qui s'exécute dans la bibliothèque de l'annonce. 185 00:12:01,990 --> 00:12:05,370 Ils sont juste reliant que parce qu'ils veulent monétiser leur application. 186 00:12:05,370 --> 00:12:09,820 >> C'est là-et je vais parler de quelques exemples de ce à 187 00:12:09,820 --> 00:12:13,930 une application appelée Pandora, où un développeur d'applications 188 00:12:13,930 --> 00:12:18,910 pourrait être à son insu la fuite d'informations 189 00:12:18,910 --> 00:12:24,580 de leurs utilisateurs en raison de bibliothèques qu'ils ont liés po 190 00:12:24,580 --> 00:12:30,110 Arpentage le paysage là-bas, en regardant les différentes applications 191 00:12:30,110 --> 00:12:34,310 qui ont été signalés dans les nouvelles que des utilisateurs malveillants ou de faire quelque chose ne voulaient pas 192 00:12:34,310 --> 00:12:39,360 puis inspecter beaucoup d'applications, nous faisons beaucoup d'analyse binaire statique sur les applications mobiles, 193 00:12:39,360 --> 00:12:42,010 si nous les avons inspecté et examiné le code lui-même, 194 00:12:42,010 --> 00:12:49,640 nous sommes arrivés à ce que nous appelons notre top 10 des comportements à risque dans les applications. 195 00:12:49,640 --> 00:12:54,180 Et il est décomposé en deux sections, les codes malveillants, 196 00:12:54,180 --> 00:12:57,600 donc ce sont de mauvaises choses que les applications pourraient faire que 197 00:12:57,600 --> 00:13:06,520 sont susceptibles d'être quelque chose que d'individu malveillant 198 00:13:06,520 --> 00:13:10,060 a spécifiquement mis en application, mais il est un peu floue. 199 00:13:10,060 --> 00:13:13,300 Il pourrait être quelque chose que le développeur pense est très bien, 200 00:13:13,300 --> 00:13:16,350 mais il finit par être considéré comme malveillant par l'utilisateur. 201 00:13:16,350 --> 00:13:19,830 >> Et puis la deuxième section est ce que nous appelons les vulnérabilités de codage, 202 00:13:19,830 --> 00:13:24,600 et ce sont des choses où le développeur est essentiellement de faire des erreurs 203 00:13:24,600 --> 00:13:27,200 ou tout simplement ne pas comprendre comment écrire l'application en toute sécurité, 204 00:13:27,200 --> 00:13:30,260  et cela de mettre l'utilisateur de l'application à risque. 205 00:13:30,260 --> 00:13:34,060 Je vais les passer en revue en détail et donner quelques exemples. 206 00:13:34,060 --> 00:13:39,620 Pour référence, je voulais mettre la liste OWASP portable top 10. 207 00:13:39,620 --> 00:13:43,590 Ce sont les 10 questions qu'un groupe à l'OWASP, 208 00:13:43,590 --> 00:13:48,900 le projet Open Web Application Security, ils ont un groupe de travail 209 00:13:48,900 --> 00:13:50,620 travailler sur une liste des 10 mobile. 210 00:13:50,620 --> 00:13:54,600 Ils ont une liste web top 10 très célèbre, qui sont le top 10 211 00:13:54,600 --> 00:13:57,180 plus risqués choses que vous pouvez avoir dans une application Web. 212 00:13:57,180 --> 00:13:59,090 Ils font la même chose pour le mobile, 213 00:13:59,090 --> 00:14:01,750 et leur liste est un peu différente de la nôtre. 214 00:14:01,750 --> 00:14:03,670 6 sur le 10 sont les mêmes. 215 00:14:03,670 --> 00:14:06,020 Ils ont 4 qui sont différents. 216 00:14:06,020 --> 00:14:10,550 Je pense qu'ils ont un peu d'un point de vue différent sur 217 00:14:10,550 --> 00:14:14,490 risque dans les applications mobiles où beaucoup de leurs problèmes 218 00:14:14,490 --> 00:14:20,490 sont vraiment comment l'application communique à un serveur back-end 219 00:14:20,490 --> 00:14:23,100 ou ce qui se passe sur le serveur back-end, 220 00:14:23,100 --> 00:14:29,220 applications pas tellement qui ont des comportements à risque que sont les applications clientes juste simples. 221 00:14:29,220 --> 00:14:36,640 >> Ceux en rouge ici sont les différences entre les deux listes. 222 00:14:36,640 --> 00:14:40,740 Et une partie de mon équipe de recherche a fait contribué à ce projet, 223 00:14:40,740 --> 00:14:44,570 donc nous allons voir ce qui se passe dans le temps, mais je pense que l'emporter ici est 224 00:14:44,570 --> 00:14:47,550 nous ne savons pas vraiment ce que la liste des 10 est dans les applications mobiles, car 225 00:14:47,550 --> 00:14:50,510 ils ont vraiment seulement été autour depuis 2 ou 3 ans, 226 00:14:50,510 --> 00:14:57,750 et il n'a pas eu assez de temps pour vraiment étudier les systèmes d'exploitation 227 00:14:57,750 --> 00:15:00,450 et ce qu'ils sont capables de faire, et il n'a pas eu assez de temps 228 00:15:00,450 --> 00:15:06,870 pour la communauté malveillants, si vous voulez, d'avoir passé assez de temps 229 00:15:06,870 --> 00:15:12,910 en essayant d'attaquer les utilisateurs grâce à des applications mobiles, donc je attendre de ces listes pour changer un peu. 230 00:15:12,910 --> 00:15:18,720 Mais pour l'instant, ce sont les 10 choses à s'inquiéter. 231 00:15:18,720 --> 00:15:24,150 Vous pourriez vous demander sur le côté mobile où le fait le code mobile malveillant 232 00:15:24,150 --> 00:15:28,880 comment obtient-il à l'appareil? 233 00:15:28,880 --> 00:15:35,210 État de Caroline du Nord a un projet appelé projet du génome mobile Malware 234 00:15:35,210 --> 00:15:39,520 où ils recueillent autant les logiciels malveillants mobiles que possible et de les analyser, 235 00:15:39,520 --> 00:15:45,270 et ils ont brisé les vecteurs d'injection que le malware mobile utilise, 236 00:15:45,270 --> 00:15:51,490 et 86% utilisent une technique appelée le reconditionnement, 237 00:15:51,490 --> 00:15:54,160 et ce n'est que sur la plateforme Android 238 00:15:54,160 --> 00:15:56,720 pouvez-vous vraiment faire ce reconditionnement. 239 00:15:56,720 --> 00:16:03,100 >> La raison est le code Android est construit avec 240 00:16:03,100 --> 00:16:08,130 un byte code Java appelé Dalvik qui est facilement decompilable. 241 00:16:08,130 --> 00:16:12,460 Qu'est-ce que le méchant peut faire est 242 00:16:12,460 --> 00:16:16,590 prendre une application Android, décompiler, 243 00:16:16,590 --> 00:16:20,120 insérer leur code malveillant, recompiler, 244 00:16:20,120 --> 00:16:28,070 et puis le mettre dans l'app store qui se présente comme une nouvelle version de cette application, 245 00:16:28,070 --> 00:16:30,330 ou tout simplement peut-être changer le nom de l'application. 246 00:16:30,330 --> 00:16:35,140 Si c'était une sorte de jeu, changer le nom légèrement, 247 00:16:35,140 --> 00:16:42,860 et si ce reconditionnement est de savoir comment 86% des logiciels malveillants mobiles est distribué. 248 00:16:42,860 --> 00:16:45,810 Il ya une autre technique appelée mise à jour qui est 249 00:16:45,810 --> 00:16:50,030 très similaire à reconditionnement, mais vous n'avez pas vraiment mettre le code malveillant po 250 00:16:50,030 --> 00:16:52,870 Ce que vous faites, c'est que vous mettez dans un petit mécanisme de mise à jour. 251 00:16:52,870 --> 00:16:56,660 Vous décompiler, vous mettez dans un mécanisme de mise à jour, et vous recompiler, 252 00:16:56,660 --> 00:17:02,360 puis lorsque l'application est en cours d'exécution, il tire vers le bas le malware sur l'appareil. 253 00:17:02,360 --> 00:17:06,300 >> La grande majorité sont ces 2 techniques. 254 00:17:06,300 --> 00:17:12,710 Il n'y a pas télécharger des accès voiture vraiment beaucoup ou drive-by downloads sur mobiles, 255 00:17:12,710 --> 00:17:15,890 qui pourrait être comme une attaque de phishing. 256 00:17:15,890 --> 00:17:18,200 Hey, consultez ce site vraiment cool, 257 00:17:18,200 --> 00:17:21,020 ou vous devez aller sur ce site et remplir ce formulaire 258 00:17:21,020 --> 00:17:24,420 de garder continue de faire quelque chose. 259 00:17:24,420 --> 00:17:26,230 Ceux-ci sont les attaques de phishing. 260 00:17:26,230 --> 00:17:28,160 La même chose peut se produire sur la plate-forme mobile où ils 261 00:17:28,160 --> 00:17:33,830 pointer vers une application mobile à télécharger, dire "Salut, c'est la Bank of America." 262 00:17:33,830 --> 00:17:36,070 "Nous voyons que vous utilisez cette application." 263 00:17:36,070 --> 00:17:38,540 "Vous devez télécharger cette autre application." 264 00:17:38,540 --> 00:17:41,170 Théoriquement, cela pourrait fonctionner. 265 00:17:41,170 --> 00:17:48,610 Peut-être qu'il n'est tout simplement pas suffisamment utilisé pour déterminer si c'est un succès ou pas, 266 00:17:48,610 --> 00:17:51,680 mais ils ont constaté que moins de 1% du temps, cette technique est utilisée. 267 00:17:51,680 --> 00:17:56,130 La plupart du temps, c'est vraiment un code reconditionné. 268 00:17:56,130 --> 00:17:58,710 >> Il ya une autre catégorie appelée autonome 269 00:17:58,710 --> 00:18:01,420 où quelqu'un construit juste une application flambant neuf. 270 00:18:01,420 --> 00:18:04,020 Ils construisent une application qui prétend être quelque chose. 271 00:18:04,020 --> 00:18:07,360 Ce n'est pas un reconditionnement de quelque chose d'autre, et qui a le code malveillant. 272 00:18:07,360 --> 00:18:11,230 Qui est utilisé 14% du temps. 273 00:18:11,230 --> 00:18:17,880 Maintenant, je veux parler de ce qui est le code malveillant fait? 274 00:18:17,880 --> 00:18:23,070 L'un des premiers logiciels malveillants là-bas 275 00:18:23,070 --> 00:18:25,490 vous pourriez envisager un spyware. 276 00:18:25,490 --> 00:18:27,620 Il espions essentiellement sur l'utilisateur. 277 00:18:27,620 --> 00:18:30,470 Il collecte des emails, des messages SMS. 278 00:18:30,470 --> 00:18:32,340 On met le microphone. 279 00:18:32,340 --> 00:18:37,330 Il récolte le carnet d'adresses, et il l'envoie à quelqu'un d'autre. 280 00:18:37,330 --> 00:18:40,870 Ce type de logiciels espions existe sur le PC, 281 00:18:40,870 --> 00:18:46,200 il est donc parfaitement logique pour les gens d'essayer de le faire sur les appareils mobiles. 282 00:18:46,200 --> 00:18:53,230 >> Un des premiers exemples de ce était un programme appelé secret SMS Replicator. 283 00:18:53,230 --> 00:18:56,250 Il était dans le marché Android il ya quelques années, 284 00:18:56,250 --> 00:18:59,960 et l'idée était si vous aviez accès à téléphone Android de quelqu'un 285 00:18:59,960 --> 00:19:03,450 que vous vouliez pour espionner, donc c'est peut-être votre conjoint 286 00:19:03,450 --> 00:19:07,600 ou votre autre significatif et que vous souhaitez espionner sur leur messagerie texte, 287 00:19:07,600 --> 00:19:11,200 vous pouvez télécharger l'application et de l'installer et le configurer 288 00:19:11,200 --> 00:19:16,540 d'envoyer un message texte SMS à vous avec une copie 289 00:19:16,540 --> 00:19:21,710 de chaque message texte SMS qu'ils ont obtenu. 290 00:19:21,710 --> 00:19:27,220 C'est évidemment en violation des conditions App Store de service, 291 00:19:27,220 --> 00:19:32,040 et cela a été retiré du marché Android dans les 18 heures, il est là, 292 00:19:32,040 --> 00:19:36,760 si un très petit nombre de personnes étaient en danger à cause de cela. 293 00:19:36,760 --> 00:19:42,510 Maintenant, je pense que si le programme a été appelé quelque chose peut-être un peu moins provocante 294 00:19:42,510 --> 00:19:48,690 comme secret SMS Replicator il aurait probablement travaillé beaucoup mieux. 295 00:19:48,690 --> 00:19:52,870 Mais il était assez évident. 296 00:19:52,870 --> 00:19:58,680 >> Une des choses que nous pouvons faire pour déterminer si les applications ont ce comportement que nous ne voulons pas 297 00:19:58,680 --> 00:20:01,410 est d'inspecter le code. 298 00:20:01,410 --> 00:20:06,250 C'est en fait très facile à faire sur Android parce que nous pouvons décompiler les applications. 299 00:20:06,250 --> 00:20:11,050 Sur iOS, vous pouvez utiliser un désassembleur comme IDA Pro 300 00:20:11,050 --> 00:20:17,190 regarder ce APIs l'application appelle et ce qu'il fait. 301 00:20:17,190 --> 00:20:20,680 Nous avons écrit notre propre analyseur statique binaire pour notre code 302 00:20:20,680 --> 00:20:24,940 et nous le faisons, et si ce que vous pouvez faire, c'est vous pourriez dire 303 00:20:24,940 --> 00:20:30,490 ne le dispositif faire tout ce qui est essentiellement d'espionnage sur moi ou me suivent? 304 00:20:30,490 --> 00:20:33,360 Et j'ai quelques exemples ici sur l'iPhone. 305 00:20:33,360 --> 00:20:41,440 Ce premier exemple est de savoir comment accéder à l'UUID sur le téléphone. 306 00:20:41,440 --> 00:20:47,060 C'est vraiment quelque chose que Apple vient d'interdire pour de nouvelles applications, 307 00:20:47,060 --> 00:20:52,540 mais les anciennes applications que vous pourriez avoir en cours d'exécution sur votre téléphone peuvent encore le faire, 308 00:20:52,540 --> 00:20:56,500 et que l'identificateur unique peut être utilisé pour vous suivre 309 00:20:56,500 --> 00:21:00,440 dans de nombreuses applications différentes. 310 00:21:00,440 --> 00:21:07,180 >> Sur Android, j'ai un exemple ici d'obtenir l'emplacement de l'appareil. 311 00:21:07,180 --> 00:21:10,310 Vous pouvez voir que si l'appel d'API est il que l'application est suivi, 312 00:21:10,310 --> 00:21:15,000 et vous pouvez voir si ça devient bon emplacement ou l'emplacement grossier. 313 00:21:15,000 --> 00:21:18,860 Et puis sur le fond ici, j'ai un exemple de la façon dont le BlackBerry 314 00:21:18,860 --> 00:21:25,130 une application peut accéder aux e-mails dans votre boîte de réception. 315 00:21:25,130 --> 00:21:27,660 Ce sont le genre de choses que vous pouvez contrôler à voir 316 00:21:27,660 --> 00:21:32,360 si l'application est en train de faire ces choses. 317 00:21:32,360 --> 00:21:38,320 La deuxième grande catégorie de comportements malveillants, et c'est probablement la catégorie la plus importante maintenant, 318 00:21:38,320 --> 00:21:43,950 est la composition non autorisée, primes non autorisée de messages texte SMS 319 00:21:43,950 --> 00:21:46,080 ou des paiements non autorisés. 320 00:21:46,080 --> 00:21:48,930 Une autre chose qui est unique sur le téléphone 321 00:21:48,930 --> 00:21:52,700 est le dispositif est relié à un compte de facturation, 322 00:21:52,700 --> 00:21:55,960 et lorsque les activités se produisent sur le téléphone 323 00:21:55,960 --> 00:21:58,510 il peut créer des charges. 324 00:21:58,510 --> 00:22:00,700 Vous pouvez acheter des choses sur le téléphone, 325 00:22:00,700 --> 00:22:04,390 et lorsque vous envoyez un message texte SMS premium, vous êtes en train de donner de l'argent 326 00:22:04,390 --> 00:22:11,590 pour le titulaire du compte du numéro de téléphone de l'autre côté. 327 00:22:11,590 --> 00:22:17,420 Ils ont été mis en place pour obtenir des cotations boursières ou obtenir votre horoscope du jour ou d'autres choses, 328 00:22:17,420 --> 00:22:21,680 mais ils peuvent être configurés pour commander un produit en envoyant un SMS. 329 00:22:21,680 --> 00:22:26,970 Les gens donnent de l'argent à la Croix-Rouge en envoyant un message texte. 330 00:22:26,970 --> 00:22:30,650 Vous pouvez donner $ 10 de cette façon. 331 00:22:30,650 --> 00:22:34,190 >> Les assaillants, ce qu'ils ont fait, c'est qu'ils mis en place 332 00:22:34,190 --> 00:22:38,750 comptes à l'étranger, et ils intégrer dans les logiciels malveillants 333 00:22:38,750 --> 00:22:42,840 que le téléphone envoie un message texte SMS premium, 334 00:22:42,840 --> 00:22:47,700 dire, quelques fois par jour, et à la fin du mois, vous réalisez que vous avez passé 335 00:22:47,700 --> 00:22:52,090 dizaines ou peut-être même des centaines de dollars, et ils repartent avec l'argent. 336 00:22:52,090 --> 00:22:57,280 Cette devenue si mauvaise que c'était la première chose que l'Android 337 00:22:57,280 --> 00:23:00,760 Marché ou le lieu-il Google était l'Android Marketplace à l'époque, 338 00:23:00,760 --> 00:23:04,430 et c'est maintenant Google Play-la première chose que Google a commencé à vérifier pour. 339 00:23:04,430 --> 00:23:08,700 Lorsque Google a commencé à distribuer les applications Android dans leur app store 340 00:23:08,700 --> 00:23:11,350 ils ont dit qu'ils ne vont pas vérifier quoi que ce soit. 341 00:23:11,350 --> 00:23:15,630 Nous tirerons des applications une fois que nous avons été informés qu'ils ont cassé nos termes de service, 342 00:23:15,630 --> 00:23:17,520 mais nous n'allons pas vérifier quoi que ce soit. 343 00:23:17,520 --> 00:23:24,350 Eh bien, il ya environ un an, il a tellement mal avec cette prime message texte SMS logiciels malveillants 344 00:23:24,350 --> 00:23:28,030 que c'est la première chose qu'ils ont commencé à vérifier pour. 345 00:23:28,030 --> 00:23:31,770 Si une application peut envoyer des messages texte SMS 346 00:23:31,770 --> 00:23:34,750 ils examinent en outre que l'application manuellement. 347 00:23:34,750 --> 00:23:38,770 Ils recherchent les API qui appellent cette, 348 00:23:38,770 --> 00:23:40,580 et maintenant depuis Google a étendu, 349 00:23:40,580 --> 00:23:46,900 mais c'était la première chose qu'ils ont commencé à chercher. 350 00:23:46,900 --> 00:23:50,690 >> D'autres applications qui ont fait des messages texte SMS, 351 00:23:50,690 --> 00:23:56,980 ce Qicsomos Android, je suppose qu'il est appelé. 352 00:23:56,980 --> 00:24:02,670 Il y avait cet événement courant sur le mobile où ce CarrierIQ est sorti 353 00:24:02,670 --> 00:24:07,720 que les logiciels espions mis sur l'appareil par les transporteurs, 354 00:24:07,720 --> 00:24:10,820 afin que les gens voulaient savoir si leur téléphone était vulnérable à cela, 355 00:24:10,820 --> 00:24:13,890 et ce fut une application gratuite qui a testé cela. 356 00:24:13,890 --> 00:24:17,520 Bien sûr, ce que cette application fait était-il envoyé prime messages texte SMS, 357 00:24:17,520 --> 00:24:20,090 si en testant pour voir si vous êtes infecté par des logiciels espions 358 00:24:20,090 --> 00:24:24,930 vous avez chargé les logiciels malveillants sur votre appareil. 359 00:24:24,930 --> 00:24:27,310 Nous avons vu la même chose se produire au dernier Super Bowl. 360 00:24:27,310 --> 00:24:33,180 Il y avait une version fausse du jeu de football Madden 361 00:24:33,180 --> 00:24:38,320 qui a envoyé la prime des messages texte SMS. 362 00:24:38,320 --> 00:24:45,750 Il fait essayé de créer un réseau de bot trop sur l'appareil. 363 00:24:45,750 --> 00:24:48,090 Ici, j'ai quelques exemples. 364 00:24:48,090 --> 00:24:52,640 Fait intéressant, Apple a été assez intelligent, 365 00:24:52,640 --> 00:24:58,470 et ils ne permettent pas aux applications d'envoyer des messages texte SMS à tous. 366 00:24:58,470 --> 00:25:00,350 Aucune application ne peut le faire. 367 00:25:00,350 --> 00:25:03,530 C'est un excellent moyen de se débarrasser de toute une classe de vulnérabilité, 368 00:25:03,530 --> 00:25:09,040 mais sur Android, vous pouvez le faire, et bien sûr, sur BlackBerry, vous pouvez le faire aussi. 369 00:25:09,040 --> 00:25:13,060 Il est intéressant que le BlackBerry vous n'avez besoin que des autorisations d'Internet 370 00:25:13,060 --> 00:25:18,370 d'envoyer un message texte SMS. 371 00:25:18,370 --> 00:25:21,580 >> L'autre chose vraiment que nous recherchons 372 00:25:21,580 --> 00:25:24,780 quand nous cherchons à voir si quelque chose est malveillant est n'importe quel type de 373 00:25:24,780 --> 00:25:28,100 activité réseau non autorisé, comme regarder l'activité du réseau 374 00:25:28,100 --> 00:25:31,570 l'application est censée avoir sa fonctionnalité, 375 00:25:31,570 --> 00:25:35,380 et regarder cette autre activité de réseau. 376 00:25:35,380 --> 00:25:43,380 Peut-être une application, au travail, doit obtenir des données sur HTTP, 377 00:25:43,380 --> 00:25:47,500 mais si elle fait des choses par e-mail ou SMS ou Bluetooth ou quelque chose comme ça 378 00:25:47,500 --> 00:25:52,890 maintenant que l'application pourrait être malveillant, donc c'est une autre chose que vous pouvez inspecter pour. 379 00:25:52,890 --> 00:26:00,430 Et sur cette diapositive, j'ai quelques exemples. 380 00:26:00,430 --> 00:26:05,950 Une autre chose intéressante que nous avons vu avec des logiciels malveillants qui s'est passé en 2009, 381 00:26:05,950 --> 00:26:07,600 et il est arrivé dans une grande manière. 382 00:26:07,600 --> 00:26:11,390 Je ne sais pas si c'est arrivé tellement depuis, mais c'était une application 383 00:26:11,390 --> 00:26:15,140 que personnifiés une autre application. 384 00:26:15,140 --> 00:26:21,700 Il y avait un ensemble d'applications, et il a été surnommé l'attaque 09Droid, 385 00:26:21,700 --> 00:26:29,770 et quelqu'un a décidé qu'il y avait beaucoup de petites, moyennes, des banques régionales 386 00:26:29,770 --> 00:26:32,260 qui n'ont pas les applications de banque en ligne, 387 00:26:32,260 --> 00:26:36,870 si ce qu'ils ont fait, c'est qu'ils ont construit environ 50 applications bancaires en ligne 388 00:26:36,870 --> 00:26:39,410 que tout ce qu'ils ont fait, c'est de prendre le nom d'utilisateur et mot de passe 389 00:26:39,410 --> 00:26:42,190 et vous rediriger vers le site. 390 00:26:42,190 --> 00:26:47,470 Et donc ils ont mis les tous dans le marché Google, 391 00:26:47,470 --> 00:26:51,530 dans le marché Android, et quand quelqu'un recherché pour voir si leur banque 392 00:26:51,530 --> 00:26:56,000 eu une demande qu'ils trouveraient l'application de faux, 393 00:26:56,000 --> 00:27:01,230 qui a recueilli leurs informations d'identification, puis les redirigé vers leur site web. 394 00:27:01,230 --> 00:27:06,640 La façon dont ce fait est devenu-les applications étaient là pour quelques semaines, 395 00:27:06,640 --> 00:27:09,050 et il y avait des milliers et des milliers de téléchargements. 396 00:27:09,050 --> 00:27:12,910 >> La façon dont cela est venu à la lumière avait quelqu'un avait un problème 397 00:27:12,910 --> 00:27:15,740 avec l'une des applications, et ils ont appelé leur banque, 398 00:27:15,740 --> 00:27:18,390 et ils ont appelé la ligne de soutien à la clientèle de leur banque, et dit: 399 00:27:18,390 --> 00:27:21,180 «Je vais avoir un problème avec votre application de services bancaires mobiles." 400 00:27:21,180 --> 00:27:23,460 "Pouvez-vous m'aider?" 401 00:27:23,460 --> 00:27:26,540 Et ils ont dit, "Nous n'avons pas une application de services bancaires mobiles." 402 00:27:26,540 --> 00:27:28,120 Cela a commencé l'enquête. 403 00:27:28,120 --> 00:27:31,200 Cette banque s'appelle Google, puis Google a regardé et a dit, 404 00:27:31,200 --> 00:27:37,220 "Wow, le même auteur a écrit 50 applications bancaires," et tous ont pris vers le bas. 405 00:27:37,220 --> 00:27:43,410 Mais certainement cela pourrait se produire à nouveau. 406 00:27:43,410 --> 00:27:51,790 Il ya la liste de toutes les différentes banques ici 407 00:27:51,790 --> 00:27:55,870 qui faisaient partie de cette escroquerie. 408 00:27:55,870 --> 00:28:02,050 L'autre chose que l'application peut faire est présente l'interface utilisateur d'une autre application. 409 00:28:02,050 --> 00:28:06,430 Alors qu'il est en cours d'exécution, il pourrait apparaître le Facebook UI. 410 00:28:06,430 --> 00:28:09,540 Il dit que vous devez mettre dans votre nom d'utilisateur et mot de passe pour continuer 411 00:28:09,540 --> 00:28:15,090 ou mettre en place un nom d'utilisateur et mot de passe pour l'interface utilisateur d'un site Web 412 00:28:15,090 --> 00:28:18,420 que peut-être l'utilisateur utilise juste pour essayer de tromper l'utilisateur 413 00:28:18,420 --> 00:28:21,340 en mettant leurs pouvoirs po 414 00:28:21,340 --> 00:28:25,590 C'est vraiment une droite parallèle des attaques e-mail de phishing 415 00:28:25,590 --> 00:28:28,210 où quelqu'un vous envoie un message électronique 416 00:28:28,210 --> 00:28:33,050 et vous donne essentiellement une interface faux pour un site Web 417 00:28:33,050 --> 00:28:37,320 que vous avez accès. 418 00:28:37,320 --> 00:28:41,590 >> L'autre chose que nous recherchons dans le code malveillant est la modification du système. 419 00:28:41,590 --> 00:28:48,160 Vous pouvez rechercher tous les appels API qui nécessitent les privilèges de root 420 00:28:48,160 --> 00:28:50,870 pour exécuter correctement. 421 00:28:50,870 --> 00:28:56,160 Modification web proxy de l'appareil serait quelque chose qui demande 422 00:28:56,160 --> 00:28:59,530 ne devrait pas être en mesure de le faire. 423 00:28:59,530 --> 00:29:03,030 Mais si l'application a du code là pour ça 424 00:29:03,030 --> 00:29:05,960 vous savez que c'est probablement une application malveillante 425 00:29:05,960 --> 00:29:09,620 ou très fortement susceptible d'être une application malveillante, 426 00:29:09,620 --> 00:29:13,910 et donc ce qui se passerait, c'est que l'application aurait un moyen de l'escalade de privilège. 427 00:29:13,910 --> 00:29:17,200 Il aurait une certaine escalade de privilège exploiter 428 00:29:17,200 --> 00:29:20,730 dans l'application, et puis une fois qu'il élever leurs privilèges 429 00:29:20,730 --> 00:29:23,800 il ferait ces modifications du système. 430 00:29:23,800 --> 00:29:28,010 Vous pouvez trouver des logiciels malveillants qui a une escalade de privilège 431 00:29:28,010 --> 00:29:32,550 en elle même sans savoir comment l'escalade de privilège 432 00:29:32,550 --> 00:29:37,960 exploiter qui va se passer, et c'est une façon agréable et facile 433 00:29:37,960 --> 00:29:41,220 à la recherche de logiciels malveillants. 434 00:29:41,220 --> 00:29:46,030 DroidDream était probablement le plus célèbre morceau de malware Android. 435 00:29:46,030 --> 00:29:50,530 Je pense qu'il a touché près de 250 000 utilisateurs en quelques jours 436 00:29:50,530 --> 00:29:52,810 avant qu'il ne soit constaté. 437 00:29:52,810 --> 00:29:56,890 Ils reconditionnés 50 fausses demandes, 438 00:29:56,890 --> 00:30:00,370 les mettre dans l'App Store Android, 439 00:30:00,370 --> 00:30:10,940 et essentiellement, il utilise le code de jailbreak Android pour élever les privilèges 440 00:30:10,940 --> 00:30:16,380 puis installer un commandement et de contrôle et tourner toutes les victimes 441 00:30:16,380 --> 00:30:20,690 dans un filet de bot, mais vous pourriez avoir détecté ce 442 00:30:20,690 --> 00:30:24,170 si vous numérisez l'application et à la recherche d' 443 00:30:24,170 --> 00:30:32,230 Appels API que l'autorisation de racine nécessaire pour exécuter correctement. 444 00:30:32,230 --> 00:30:40,150 >> Et il ya un exemple ici j'ai qui est en train de changer le proxy, 445 00:30:40,150 --> 00:30:46,380 et c'est en fait seulement disponible sur l'Android. 446 00:30:46,380 --> 00:30:49,070 Vous pouvez le voir, je vais vous donner beaucoup d'exemples sur Android 447 00:30:49,070 --> 00:30:53,990 car c'est là que l'écosystème malwares les plus actifs est 448 00:30:53,990 --> 00:30:58,690 parce que c'est vraiment facile pour un attaquant d'obtenir un code malveillant 449 00:30:58,690 --> 00:31:01,470 dans le marché Android. 450 00:31:01,470 --> 00:31:06,480 Ce n'est pas si facile à faire que dans le App Store d'Apple 451 00:31:06,480 --> 00:31:10,250 parce que Apple exige des développeurs de s'identifier 452 00:31:10,250 --> 00:31:12,790 et signer le code. 453 00:31:12,790 --> 00:31:20,340 En fait, ils vérifier qui vous êtes, et Apple est en fait scrutent les applications. 454 00:31:20,340 --> 00:31:27,450 Nous ne voyons pas beaucoup de vrai malware où le dispositif est se compromise. 455 00:31:27,450 --> 00:31:32,250 Je vais parler de quelques exemples où c'est vraiment la vie privée qui est de se compromettre, 456 00:31:32,250 --> 00:31:38,460 et c'est ce qui se passe réellement sur l'appareil d'Apple. 457 00:31:38,460 --> 00:31:44,090 Une autre chose à regarder de code malveillant, le code risque dans les dispositifs 458 00:31:44,090 --> 00:31:50,300 est logiques ou à des bombes, et des bombes à retardement sont probablement 459 00:31:50,300 --> 00:31:53,370 beaucoup plus facile à regarder pour que les bombes logiques. 460 00:31:53,370 --> 00:31:57,030 Mais avec des bombes à retardement, ce que vous pouvez faire est que vous pouvez regarder pour 461 00:31:57,030 --> 00:32:04,760 endroits dans le code où le temps est testé ou un temps absolu est recherchée 462 00:32:04,760 --> 00:32:08,190 avant certaines fonctionnalités dans l'application arrive. 463 00:32:08,190 --> 00:32:14,200 Et cela pourrait être fait pour cacher que l'activité de l'utilisateur, 464 00:32:14,200 --> 00:32:17,510 si ça se passe tard dans la nuit. 465 00:32:17,510 --> 00:32:24,350 DroidDream fait de son activité 23 heures-8 heures, heure locale 466 00:32:24,350 --> 00:32:30,650 à essayer de le faire alors que l'utilisateur pourrait ne pas être en utilisant leur appareil. 467 00:32:30,650 --> 00:32:38,680 >> Une autre raison de le faire est si les gens utilisent l'analyse du comportement d'une application, 468 00:32:38,680 --> 00:32:43,430 l'exécution de l'application dans un bac à sable pour voir ce que le comportement de l'application est, 469 00:32:43,430 --> 00:32:51,090 ils peuvent utiliser la logique basée sur le temps de faire de l'activité 470 00:32:51,090 --> 00:32:54,640 lorsque l'application n'est pas dans le bac à sable. 471 00:32:54,640 --> 00:33:01,520 Par exemple, un magasin d'application comme Apple 472 00:33:01,520 --> 00:33:07,940 exécute l'application, mais ils n'ont probablement pas exécuter chaque application pour, disons, 30 jours 473 00:33:07,940 --> 00:33:10,550 avant de l'approuver, de sorte que vous pouvez mettre 474 00:33:10,550 --> 00:33:14,120 logique dans votre application qui a dit, d'accord, que faire la mauvaise chose 475 00:33:14,120 --> 00:33:20,490 après 30 jours se sont écoulés ou après les 30 jours suivant la date de publication de la demande, 476 00:33:20,490 --> 00:33:27,020 et qui peuvent aider à masquer le code malveillant de personnes inspection pour elle. 477 00:33:27,020 --> 00:33:30,050 Si les entreprises anti-virus sont en cours d'exécution choses dans des sandbox 478 00:33:30,050 --> 00:33:36,370 ou les app stores sont eux-mêmes ce qui peut aider 479 00:33:36,370 --> 00:33:39,260 cacher que de cette inspection. 480 00:33:39,260 --> 00:33:43,020 Maintenant, le revers de la médaille est qu'il est facile à trouver avec l'analyse statique, 481 00:33:43,020 --> 00:33:46,170 donc en fait inspecter le code que vous pouvez consulter pour tous les lieux 482 00:33:46,170 --> 00:33:54,010 où l'application teste le temps et inspecter cette façon. 483 00:33:54,010 --> 00:33:58,850 Et ici, j'ai quelques exemples sur ces trois plates-formes différentes 484 00:33:58,850 --> 00:34:05,640 comment le temps peut être contrôlé par l'application fabricant 485 00:34:05,640 --> 00:34:10,520 si vous savez ce que vous cherchez si vous inspecter l'application statique. 486 00:34:10,520 --> 00:34:14,570 >> Je suis juste allé à travers tout un tas de différentes activités malveillantes 487 00:34:14,570 --> 00:34:18,969 que nous avons vu à l'état sauvage, mais ceux qui sont les plus fréquents? 488 00:34:18,969 --> 00:34:23,940 Cette même étude de North Carolina State mobile Genome Project 489 00:34:23,940 --> 00:34:28,560 publié des données, et il y avait essentiellement quatre domaines 490 00:34:28,560 --> 00:34:32,850 qu'ils virent où il y avait beaucoup d'activité. 491 00:34:32,850 --> 00:34:35,370 37% des applications a une escalade de privilège, 492 00:34:35,370 --> 00:34:38,429 de sorte qu'ils ont un certain type de code jailbreak là 493 00:34:38,429 --> 00:34:42,070 où ils ont essayé de grimper privilèges, afin qu'ils puissent 494 00:34:42,070 --> 00:34:48,360 ne commandes API fonctionnant comme le système d'exploitation. 495 00:34:48,360 --> 00:34:52,520 45% des applications là-bas n'a SMS premium, 496 00:34:52,520 --> 00:34:57,260 de sorte que c'est un pourcentage énorme qui tente de monétiser directement. 497 00:34:57,260 --> 00:35:02,640 93% l'ont fait télécommande, si ils ont essayé de mettre en place un filet de bot, un filet de bot mobile. 498 00:35:02,640 --> 00:35:08,990 Et 45% récolté des informations d'identification 499 00:35:08,990 --> 00:35:16,230 comme les numéros de téléphone, UUID, localisation GPS, les comptes utilisateurs, 500 00:35:16,230 --> 00:35:22,870 et cela ajoute à plus de 100 parce que la plupart des logiciels malveillants essaie de faire un peu de ces choses. 501 00:35:22,870 --> 00:35:27,070 >> Je vais passer à la seconde moitié et parler des vulnérabilités de code. 502 00:35:27,070 --> 00:35:29,480 Il s'agit de la deuxième moitié de l'activité risquée. 503 00:35:29,480 --> 00:35:33,450 C'est là essentiellement le développeur fait des erreurs. 504 00:35:33,450 --> 00:35:37,210 Un développeur légitime écrire une application légitime 505 00:35:37,210 --> 00:35:41,830 est de faire des erreurs ou ignore les risques de la plate-forme mobile. 506 00:35:41,830 --> 00:35:44,780 Ils ne savent pas comment faire une application mobile sécurisée, 507 00:35:44,780 --> 00:35:47,700 ou parfois le développeur ne se soucie pas de mettre l'utilisateur en danger. 508 00:35:47,700 --> 00:35:50,850 Parfois une partie de leur modèle d'affaires pourrait être 509 00:35:50,850 --> 00:35:54,610 récolte des informations personnelles de l'utilisateur. 510 00:35:54,610 --> 00:35:58,090 C'est en quelque sorte l'autre catégorie, et c'est pourquoi une partie de cette malveillants 511 00:35:58,090 --> 00:36:03,200 par rapport commence légitimes à saigner plus parce qu'il ya différence d'opinions 512 00:36:03,200 --> 00:36:10,440 entre ce que l'utilisateur veut et ce que l'utilisateur estime risqué 513 00:36:10,440 --> 00:36:13,050 et ce que le développeur de l'application considère risqué. 514 00:36:13,050 --> 00:36:18,380 Bien sûr, ce n'est pas les données du développeur d'application dans la plupart des cas. 515 00:36:18,380 --> 00:36:22,030 >> Et puis finalement, une autre façon ce qui se passe est un développeur peut lier à 516 00:36:22,030 --> 00:36:28,600 une bibliothèque partagée qui a vulnérabilités ou ce comportement à risque en ce 517 00:36:28,600 --> 00:36:32,480 à leur insu. 518 00:36:32,480 --> 00:36:37,060 La première catégorie est la fuite de données sensibles, 519 00:36:37,060 --> 00:36:40,030 et c'est à ce moment l'application recueille des renseignements 520 00:36:40,030 --> 00:36:44,980 comme l'emplacement, les informations du carnet d'adresses, informations sur le propriétaire 521 00:36:44,980 --> 00:36:48,000 et envoie que l'appareil hors tension. 522 00:36:48,000 --> 00:36:53,050 Et une fois qu'il est hors de l'appareil, nous ne savons pas ce qui se passe avec cette information. 523 00:36:53,050 --> 00:36:57,170 Il peut être stocké de manière non sécurisée par le développeur de l'application. 524 00:36:57,170 --> 00:37:02,070 Nous avons vu les développeurs d'applications en pâtir, 525 00:37:02,070 --> 00:37:05,820 et les données qu'ils stockage se fait prendre. 526 00:37:05,820 --> 00:37:10,970 Cela s'est passé il ya quelques mois à un développeur en Floride 527 00:37:10,970 --> 00:37:21,660 où un grand nombre de c'était UUID iPad et noms de périphériques 528 00:37:21,660 --> 00:37:25,270 ont été divulgués parce que quelqu'un, je pense que c'est anonyme, 529 00:37:25,270 --> 00:37:29,460 selon ce faire, ont fait irruption dans les serveurs de ce développeur 530 00:37:29,460 --> 00:37:34,920 et des millions d'iPad UUID volé 531 00:37:34,920 --> 00:37:37,390 et des noms d'ordinateur. 532 00:37:37,390 --> 00:37:40,260 Pas les informations les plus à risque, 533 00:37:40,260 --> 00:37:46,820 mais si c'était le stockage des noms d'utilisateur et mots de passe 534 00:37:46,820 --> 00:37:48,170 et l'adresse du domicile? 535 00:37:48,170 --> 00:37:51,100 Il ya beaucoup d'applications qui stockent ce type d'information. 536 00:37:51,100 --> 00:37:53,230 Le risque est là. 537 00:37:53,230 --> 00:37:56,620 >> L'autre chose qui puisse arriver, c'est que si le développeur ne prend pas soin 538 00:37:56,620 --> 00:38:01,370 pour sécuriser le canal de données, et c'est une autre grande vulnérabilité que je vais parler, 539 00:38:01,370 --> 00:38:05,160 que les données sont envoyées en clair. 540 00:38:05,160 --> 00:38:09,040 Si l'utilisateur est sur un réseau Wi-Fi publique 541 00:38:09,040 --> 00:38:12,330 ou quelqu'un renifle l'Internet quelque part 542 00:38:12,330 --> 00:38:19,260 le long du chemin de données qui est exposé. 543 00:38:19,260 --> 00:38:23,790 Un très célèbre affaire de cette fuite d'informations qui s'est passé avec Pandora, 544 00:38:23,790 --> 00:38:27,250 et c'est quelque chose que nous avons étudié au VeraCode. 545 00:38:27,250 --> 00:38:33,200 Nous avons entendu qu'il y avait un je pense que c'était une Commission fédérale du commerce 546 00:38:33,200 --> 00:38:35,310 enquête en cours avec Pandora. 547 00:38:35,310 --> 00:38:39,830 Nous avons dit, "Qu'est-ce qui se passe là-bas? Commençons creuser dans l'application Pandora." 548 00:38:39,830 --> 00:38:46,690 Et ce que nous avons déterminé était l'application Pandora recueillies 549 00:38:46,690 --> 00:38:51,270 votre sexe et votre âge, 550 00:38:51,270 --> 00:38:56,660 et il a également accédé à votre position GPS et l'application Pandora 551 00:38:56,660 --> 00:39:00,200 fait cela pour ce qu'ils ont dit étaient des raisons légitimes. 552 00:39:00,200 --> 00:39:05,360 La musique qu'ils jouaient-Pandora est une application-musique en streaming 553 00:39:05,360 --> 00:39:07,530 la musique qu'ils jouaient n'a été autorisé aux États-Unis, 554 00:39:07,530 --> 00:39:13,020 de sorte qu'ils devaient vérifier à respecter leurs accords de licence qu'ils avaient 555 00:39:13,020 --> 00:39:17,240 pour la musique que l'utilisateur était aux Etats-Unis. 556 00:39:17,240 --> 00:39:25,070 Ils voulaient aussi se conformer à l'avis parental 557 00:39:25,070 --> 00:39:33,790 autour de la langue des adultes dans la musique, 558 00:39:33,790 --> 00:39:37,500 et il s'agit d'un programme volontaire, mais ils ont voulu se conformer à cette 559 00:39:37,500 --> 00:39:43,010 et ne pas jouer des paroles explicites aux enfants 13 ans et moins. 560 00:39:43,010 --> 00:39:46,280 >> Ils avaient des raisons légitimes pour la collecte de ces données. 561 00:39:46,280 --> 00:39:49,160 Leur application a les autorisations pour le faire. 562 00:39:49,160 --> 00:39:52,000 Les utilisateurs pensaient que c'était légitime. Mais ce qui s'est passé? 563 00:39:52,000 --> 00:39:55,810 Ils reliés en trois ou quatre bibliothèques d'annonces différentes. 564 00:39:55,810 --> 00:39:59,140 Maintenant, tout d'un coup toutes ces bibliothèques d'annonces 565 00:39:59,140 --> 00:40:02,970 qui ont accès à la même information. 566 00:40:02,970 --> 00:40:05,830 Les bibliothèques d'annonces, si vous regardez le code dans les bibliothèques de l'annonce 567 00:40:05,830 --> 00:40:08,430 ce qu'ils font est toutes les bibliothèques de l'annonce dit 568 00:40:08,430 --> 00:40:11,340 "Est-ce que mon application autorisé à accéder à la localisation GPS?" 569 00:40:11,340 --> 00:40:14,890 "Oh, il ne? Bon, dis-moi la position GPS." 570 00:40:14,890 --> 00:40:16,620 Chaque bibliothèque seule annonce fait que, 571 00:40:16,620 --> 00:40:19,740 et si l'application n'a pas l'autorisation de GPS 572 00:40:19,740 --> 00:40:23,460 il ne sera pas en mesure de l'obtenir, mais si c'est le cas, il l'obtiendra. 573 00:40:23,460 --> 00:40:26,240 C'est là que le modèle d'affaires des bibliothèques de l'annonce 574 00:40:26,240 --> 00:40:31,160 est opposée à la vie privée de l'utilisateur. 575 00:40:31,160 --> 00:40:34,980 Et il ya eu des études là-bas qui va dire si vous savez l'âge 576 00:40:34,980 --> 00:40:38,430 d'une personne et que vous savez leur emplacement 577 00:40:38,430 --> 00:40:42,530 où ils dormir la nuit, parce que vous avez leurs coordonnées GPS 578 00:40:42,530 --> 00:40:46,030 pendant qu'ils dorment peut-être, vous savez exactement qui est cette personne 579 00:40:46,030 --> 00:40:50,230 parce que vous pouvez déterminer quel membre de ce ménage est cette personne. 580 00:40:50,230 --> 00:40:54,780 Vraiment ceci est d'identifier les annonceurs 581 00:40:54,780 --> 00:40:59,530 exactement qui vous êtes, et il semble que c'était légitime. 582 00:40:59,530 --> 00:41:02,800 Je veux juste que ma musique en streaming, et c'est la seule façon de l'obtenir. 583 00:41:02,800 --> 00:41:05,370 >> Eh bien, nous avons exposé ce. 584 00:41:05,370 --> 00:41:08,030 Nous avons écrit ce dans plusieurs messages de blog, 585 00:41:08,030 --> 00:41:13,280 et il s'est avéré que quelqu'un du magazine Rolling Stone 586 00:41:13,280 --> 00:41:18,810 lire l'un de nos messages de blog et écrit leur propre blog dans Rolling Stone à ce sujet, 587 00:41:18,810 --> 00:41:22,120 et le lendemain Pandora pensait que c'était une bonne idée 588 00:41:22,120 --> 00:41:27,600 de supprimer les bibliothèques de l'annonce de leur application. 589 00:41:27,600 --> 00:41:31,270 Pour autant que je sais qu'ils sont la seule-ils devraient être félicités. 590 00:41:31,270 --> 00:41:35,770 Je pense qu'ils sont le seul type freemium de l'application qui a fait cela. 591 00:41:35,770 --> 00:41:38,660 Toutes les autres applications freemium ont ce même comportement, 592 00:41:38,660 --> 00:41:41,780 de sorte que vous avez à penser à ce genre de données que vous donnez 593 00:41:41,780 --> 00:41:48,330 ces applications freemium car tout va pour les annonceurs. 594 00:41:48,330 --> 00:41:53,390 Praetorian également fait une étude sur les bibliothèques partagées et dit, 595 00:41:53,390 --> 00:41:57,100 "Regardons ce que les bibliothèques partagées sont les bibliothèques partagées meilleurs», et ce fut les données. 596 00:41:57,100 --> 00:41:59,420 Ils ont analysé 53 000 >> applications, 597 00:41:59,420 --> 00:42:01,900 et la bibliothèque partagée numéro 1 était Admob. 598 00:42:01,900 --> 00:42:06,060 Il était en fait dans 38% des applications là-bas, 599 00:42:06,060 --> 00:42:08,800 si 38% des applications que vous utilisez 600 00:42:08,800 --> 00:42:11,250 sont susceptibles récolte vos informations personnelles 601 00:42:11,250 --> 00:42:16,650 et de l'envoyer aux réseaux publicitaires. 602 00:42:16,650 --> 00:42:19,350 Apache et Android étaient 8% et 6%, 603 00:42:19,350 --> 00:42:22,960 et puis ces autres vers le bas au fond, Google Ads, Flurry, 604 00:42:22,960 --> 00:42:26,600 Mob Ville et Millennial Media, 605 00:42:26,600 --> 00:42:30,500 ce sont toutes les entreprises de publicité, puis, curieusement, 606 00:42:30,500 --> 00:42:33,500 4% lié à la bibliothèque Facebook 607 00:42:33,500 --> 00:42:38,870 probablement à faire l'authentification via Facebook 608 00:42:38,870 --> 00:42:40,810 si l'application pourrait authentifier Facebook. 609 00:42:40,810 --> 00:42:44,660 Mais cela signifie aussi que la société Facebook contrôle de code 610 00:42:44,660 --> 00:42:49,010 C'est en cours d'exécution dans 4% des applications mobiles Android là-bas, 611 00:42:49,010 --> 00:42:53,490 et ils ont accès à toutes les données que cette application a la permission de venir. 612 00:42:53,490 --> 00:42:57,170 Facebook tente essentiellement à vendre des espaces publicitaires. 613 00:42:57,170 --> 00:43:00,120 C'est leur modèle d'affaires. 614 00:43:00,120 --> 00:43:02,920 >> Si vous regardez l'ensemble de cet écosystème avec ces autorisations 615 00:43:02,920 --> 00:43:07,740 et les bibliothèques partagées que vous commencez à voir que 616 00:43:07,740 --> 00:43:13,850 vous avez beaucoup de risques dans une application soi-disant légitime. 617 00:43:13,850 --> 00:43:19,360 La même chose similaire qui s'est passé avec Pandora 618 00:43:19,360 --> 00:43:22,340 arrivé avec une application appelée chemin, 619 00:43:22,340 --> 00:43:27,660 et Chemin pensé qu'ils étaient utiles, les développeurs amicales. 620 00:43:27,660 --> 00:43:32,160 Ils essayaient juste pour vous donner une expérience utilisateur, 621 00:43:32,160 --> 00:43:37,810 et il s'est avéré que, sans intervention de l'utilisateur ou de dire quoi que ce soit l'utilisateur- 622 00:43:37,810 --> 00:43:40,400 et ce qui s'est passé sur l'iPhone et sur Android, 623 00:43:40,400 --> 00:43:44,420 Pandore application était sur iPhone et Android 624 00:43:44,420 --> 00:43:48,890 que l'application de chemin a été saisissant votre carnet d'adresses dans son intégralité 625 00:43:48,890 --> 00:43:52,830 et l'uploader sur le chemin juste au moment où vous avez installé et exécuté l'application, 626 00:43:52,830 --> 00:43:55,840 et ils n'ont pas vous dire à ce sujet. 627 00:43:55,840 --> 00:43:58,750 Ils pensaient que c'était vraiment utile pour vous 628 00:43:58,750 --> 00:44:04,040 pour être en mesure de partager avec tous les gens de votre carnet d'adresses 629 00:44:04,040 --> 00:44:06,920 que vous utilisez l'application Path. 630 00:44:06,920 --> 00:44:09,490 >> Eh bien, évidemment Chemin pensé que c'était super pour leur entreprise. 631 00:44:09,490 --> 00:44:13,510 Pas terrible pour l'utilisateur. 632 00:44:13,510 --> 00:44:19,020 Vous devez penser que c'est une chose si peut-être un adolescent 633 00:44:19,020 --> 00:44:23,700 est d'utiliser cette application et leurs dizaines d'amis sont là, 634 00:44:23,700 --> 00:44:29,360 mais si c'est le PDG d'une entreprise qui installe chemin 635 00:44:29,360 --> 00:44:33,170 et puis tout d'un coup leur carnet d'adresses tout est là-haut? 636 00:44:33,170 --> 00:44:38,310 Vous allez obtenir beaucoup d'informations de contact potentiellement précieux 637 00:44:38,310 --> 00:44:40,920 pour beaucoup de gens. 638 00:44:40,920 --> 00:44:44,500 Un journaliste du New York Times, vous pourriez être en mesure d'obtenir le numéro de téléphone 639 00:44:44,500 --> 00:44:47,380 pour les anciens présidents de leur carnet d'adresses, 640 00:44:47,380 --> 00:44:54,780 si évidemment beaucoup d'informations sensibles est transféré avec quelque chose comme ça. 641 00:44:54,780 --> 00:44:58,090 Il y avait un gros volet de cette chemin qui s'est excusé. 642 00:44:58,090 --> 00:45:01,610 Ils ont changé leur application, et il a même eu une incidence Apple. 643 00:45:01,610 --> 00:45:06,950 Apple a déclaré, "Nous allons forcer appli fournisseurs pour inviter les utilisateurs 644 00:45:06,950 --> 00:45:12,650 si ils vont chercher leur carnet d'adresses entier ". 645 00:45:12,650 --> 00:45:15,360 >> Il ressemble à ce qui se passe ici est 646 00:45:15,360 --> 00:45:19,430 quand il ya une grande violation de la vie privée et il fait la presse 647 00:45:19,430 --> 00:45:21,680 nous voyons un changement là-bas. 648 00:45:21,680 --> 00:45:23,230 Mais bien sûr, il ya d'autres choses là-bas. 649 00:45:23,230 --> 00:45:27,440 L'application LinkedIn récolte vos entrées d'agenda, 650 00:45:27,440 --> 00:45:34,530 mais Apple ne fait pas l'utilisateur est invité à ce sujet. 651 00:45:34,530 --> 00:45:38,030 Les entrées de calendrier peuvent avoir des informations sensibles en eux aussi. 652 00:45:38,030 --> 00:45:40,000 Où allez-vous tracer la ligne? 653 00:45:40,000 --> 00:45:43,960 C'est vraiment une sorte d'un lieu en évolution 654 00:45:43,960 --> 00:45:47,640 où il n'y a vraiment pas de bonne qualité là-bas 655 00:45:47,640 --> 00:45:51,990 pour les utilisateurs à comprendre quand leur information va être à risque 656 00:45:51,990 --> 00:45:57,820 et quand ils vont savoir c'est d'être prise. 657 00:45:57,820 --> 00:46:03,040 Nous avons écrit une application à VeraCode appelé Adios, 658 00:46:03,040 --> 00:46:08,350 et essentiellement, il vous a permis de pointer l'application à votre répertoire iTunes 659 00:46:08,350 --> 00:46:12,550 et de regarder toutes les applications qui ont été récoltent votre carnet d'adresse. 660 00:46:12,550 --> 00:46:19,760 Et comme vous pouvez le voir sur cette liste ici, Angry Birds, 661 00:46:19,760 --> 00:46:21,590 AIM, AroundMe. 662 00:46:21,590 --> 00:46:24,050 Pourquoi Angry Birds ne besoin de votre carnet d'adresses? 663 00:46:24,050 --> 00:46:29,160 Je ne sais pas, mais il ne quelque sorte. 664 00:46:29,160 --> 00:46:32,310 >> C'est quelque chose que beaucoup, de nombreuses applications font. 665 00:46:32,310 --> 00:46:34,780 Vous pouvez inspecter le code pour cela. 666 00:46:34,780 --> 00:46:38,660 Il ya API bien définies pour iPhone, Android et BlackBerry 667 00:46:38,660 --> 00:46:42,120 pour obtenir au carnet d'adresses. 668 00:46:42,120 --> 00:46:48,520 Vous pouvez très facilement inspecter pour cela, et c'est ce que nous avons fait dans notre application Adios. 669 00:46:48,520 --> 00:46:52,320 La catégorie suivante, dangereux sensible de stockage de données, 670 00:46:52,320 --> 00:46:55,670 est quelque chose où les développeurs prennent quelque chose comme une broche ou un numéro de compte 671 00:46:55,670 --> 00:46:58,530 ou un mot de passe et le stocker en clair sur le dispositif. 672 00:46:58,530 --> 00:47:02,310 Pire encore, ils pourraient stocker dans une zone sur le téléphone 673 00:47:02,310 --> 00:47:06,820 qui est accessible à l'échelle mondiale, comme la carte SD. 674 00:47:06,820 --> 00:47:11,320 Vous voyez ça plus souvent sur Android car Android permet pour une carte SD. 675 00:47:11,320 --> 00:47:13,200 Dispositifs IPhone pas. 676 00:47:13,200 --> 00:47:17,900 Mais nous avons même vu cela se produire dans une application Citigroup. 677 00:47:17,900 --> 00:47:25,450 Leur application bancaire en ligne stocké les numéros de compte non sécurisée, 678 00:47:25,450 --> 00:47:28,120 juste en clair, si vous avez perdu votre appareil, 679 00:47:28,120 --> 00:47:30,670 essentiellement que vous avez perdu votre compte bancaire. 680 00:47:30,670 --> 00:47:36,000 C'est pourquoi je ne fais pas personnellement bancaire sur mon iPhone. 681 00:47:36,000 --> 00:47:43,710 Je pense que c'est trop risqué en ce moment pour faire ce genre d'activités. 682 00:47:43,710 --> 00:47:45,950 >> Skype fait la même chose. 683 00:47:45,950 --> 00:47:49,870 Skype, bien sûr, a un solde de compte, un nom d'utilisateur et mot de passe 684 00:47:49,870 --> 00:47:51,030 que l'accès de cet équilibre. 685 00:47:51,030 --> 00:48:00,080 Ils entreposaient toutes ces informations en clair sur le périphérique mobile. 686 00:48:00,080 --> 00:48:05,760 J'ai ici quelques exemples de création de fichiers 687 00:48:05,760 --> 00:48:10,310 qui n'ont pas les bonnes autorisations ou écriture sur le disque 688 00:48:10,310 --> 00:48:17,260 et ne pas avoir de cryptage se produire pour que. 689 00:48:17,260 --> 00:48:20,190 Cette zone suivante, dangereux sensible la transmission de données, 690 00:48:20,190 --> 00:48:24,450 J'ai fait allusion à quelques reprises, et à cause de la connexion Wi-Fi 691 00:48:24,450 --> 00:48:27,770 c'est quelque chose que les applications absolument besoin de faire, 692 00:48:27,770 --> 00:48:31,250 et c'est probablement ce que nous voyons vont mal le plus. 693 00:48:31,250 --> 00:48:34,920 Je dirais-en fait, je pense que j'ai les données réelles, 694 00:48:34,920 --> 00:48:38,120 mais il est près de la moitié des applications mobiles 695 00:48:38,120 --> 00:48:41,780 bousiller faire SSL. 696 00:48:41,780 --> 00:48:43,910 Ils n'ont tout simplement pas utiliser les API correctement. 697 00:48:43,910 --> 00:48:47,970 Je veux dire, tout ce que vous avez à faire est de suivre les instructions et utiliser les API, 698 00:48:47,970 --> 00:48:54,720 mais ils ne les choses comme ne pas vérifier si il est un certificat non valide à l'autre extrémité, 699 00:48:54,720 --> 00:49:02,120 pas vérifier si l'autre extrémité essaie de faire une attaque protocole de déclassement. 700 00:49:02,120 --> 00:49:07,200 >> Les développeurs, ils veulent obtenir leur case, non? 701 00:49:07,200 --> 00:49:11,910 Leur exigence est de l'utiliser pour vendre. Ils ont utilisé ce à vendre. 702 00:49:11,910 --> 00:49:14,800 L'obligation est de ne pas l'utiliser pour vendre en toute sécurité, 703 00:49:14,800 --> 00:49:19,680 et c'est donc la raison pour laquelle toutes les applications qui utilisent SSL pour sécuriser les données 704 00:49:19,680 --> 00:49:23,470 comme il est transmis hors du dispositif vraiment besoin d'être inspecté 705 00:49:23,470 --> 00:49:28,950 veiller à ce que a été mis en œuvre correctement. 706 00:49:28,950 --> 00:49:32,850 Et ici, j'ai quelques exemples où vous pouvez voir une application 707 00:49:32,850 --> 00:49:37,400 peut-être utiliser HTTP au lieu de HTTPS. 708 00:49:37,400 --> 00:49:40,510 Dans certains cas, les applications seront revenir à HTTP 709 00:49:40,510 --> 00:49:44,250 si le HTTPS ne fonctionne pas. 710 00:49:44,250 --> 00:49:49,070 J'ai un autre appel ici sur Android où ils ont désactivé le contrôle de certificat, 711 00:49:49,070 --> 00:49:51,700 si une attaque man-in-the-middle peut arriver. 712 00:49:51,700 --> 00:49:56,370 Un certificat non valide sera acceptée. 713 00:49:56,370 --> 00:50:01,920 Ce sont tous les cas où vont les attaquants d'être en mesure d'obtenir sur 714 00:50:01,920 --> 00:50:07,150 la même connexion Wi-Fi et l'accès à l'utilisateur toutes les données 715 00:50:07,150 --> 00:50:11,650 C'est d'être envoyé sur Internet. 716 00:50:11,650 --> 00:50:15,970 >> Et enfin, la dernière catégorie que j'ai ici est le mot de passe codé en dur et clés. 717 00:50:15,970 --> 00:50:21,470 Nous voyons effectivement beaucoup de développeurs utilisent le même style de codage 718 00:50:21,470 --> 00:50:25,900 ce qu'ils ont fait quand ils ont été la construction d'applications serveur Web, 719 00:50:25,900 --> 00:50:29,700 ils sont donc la construction d'une application serveur Java, et ils coder la clé. 720 00:50:29,700 --> 00:50:31,940 Eh bien, quand vous construisez une application serveur, oui, 721 00:50:31,940 --> 00:50:34,240 coder la clé n'est pas une bonne idée. 722 00:50:34,240 --> 00:50:36,290 Il est donc difficile à modifier. 723 00:50:36,290 --> 00:50:40,700 Mais ce n'est pas si mal sur le côté serveur car qui a accès à la côté serveur? 724 00:50:40,700 --> 00:50:43,140 Seuls les administrateurs. 725 00:50:43,140 --> 00:50:48,100 Mais si vous prenez le même code et que vous avez versé la parole à une application mobile 726 00:50:48,100 --> 00:50:52,550 maintenant tout le monde qui a cette application mobile a accès à cette clé codé en dur, 727 00:50:52,550 --> 00:50:56,380 et nous fait voir ce beaucoup de fois, et j'ai quelques statistiques 728 00:50:56,380 --> 00:51:00,920 combien de fois nous voyons cela se produire. 729 00:51:00,920 --> 00:51:04,940 Il était réellement en exemple de code qui MasterCard publié 730 00:51:04,940 --> 00:51:06,850 sur la façon d'utiliser leur service. 731 00:51:06,850 --> 00:51:11,860 L'exemple de code montre comment vous suffit de prendre le mot de passe 732 00:51:11,860 --> 00:51:14,850 et le mettre dans une chaîne codée en dur là, 733 00:51:14,850 --> 00:51:19,380 et nous savons comment les développeurs aiment à copier et coller des extraits de code 734 00:51:19,380 --> 00:51:22,360 quand ils essaient de faire quelque chose, si vous copiez et collez l'extrait de code 735 00:51:22,360 --> 00:51:28,450 qu'ils ont donné comme exemple de code, et vous avez une demande d'insécurité. 736 00:51:28,450 --> 00:51:31,490 >> Et ici nous avons quelques exemples. 737 00:51:31,490 --> 00:51:35,840 Cette première est celle que nous voyons un terrain où ils hardcode 738 00:51:35,840 --> 00:51:40,510 le droit de données dans une URL qui est envoyé. 739 00:51:40,510 --> 00:51:45,120 Parfois, nous voyons chaîne passe = mot de passe. 740 00:51:45,120 --> 00:51:49,060 C'est assez facile à détecter, ou mot de passe de chaîne sur BlackBerry et Android. 741 00:51:49,060 --> 00:51:53,680 C'est en fait assez facile à vérifier, car presque toujours 742 00:51:53,680 --> 00:51:57,030 les noms des développeurs la variable qui est maintenant le mot de passe 743 00:51:57,030 --> 00:52:02,290 une variante de mot de passe. 744 00:52:02,290 --> 00:52:05,200 J'ai mentionné que nous faisons l'analyse statique à VeraCode, 745 00:52:05,200 --> 00:52:11,790 nous avons donc analysé plusieurs centaines de demandes Android et iOS. 746 00:52:11,790 --> 00:52:15,160 Nous avons construit des modèles complets d'entre eux, et nous sommes en mesure de les analyser 747 00:52:15,160 --> 00:52:19,280 pour différentes vulnérabilités, en particulier les vulnérabilités dont je parlais, 748 00:52:19,280 --> 00:52:21,050 et j'ai quelques données ici. 749 00:52:21,050 --> 00:52:24,320 68,5% des applications Android que nous avons examinés 750 00:52:24,320 --> 00:52:28,590 avait cassé le code de chiffrement, 751 00:52:28,590 --> 00:52:33,240 qui, pour nous, nous ne pouvons pas détecter si vous avez fait votre propre routine de cryptage, 752 00:52:33,240 --> 00:52:38,980 pas que c'est une bonne idée, mais cela est fait en utilisant les API publiées 753 00:52:38,980 --> 00:52:42,530 qui sont sur la plate-forme mais les faire de manière 754 00:52:42,530 --> 00:52:46,680 que la crypto serait vulnérable, 68,5. 755 00:52:46,680 --> 00:52:49,870 Et c'est pour les gens qui nous envoient leurs applications en réalité parce 756 00:52:49,870 --> 00:52:53,730 ils pensent que c'est une bonne idée de faire des tests de sécurité. 757 00:52:53,730 --> 00:52:56,960 Ce sont déjà des gens qui pensent probablement en toute sécurité, 758 00:52:56,960 --> 00:52:59,540 il est donc probablement encore pire. 759 00:52:59,540 --> 00:53:02,690 >> Je n'ai pas parlé de l'injection de saut de ligne de commande. 760 00:53:02,690 --> 00:53:07,640 C'est quelque chose que nous vérifions, mais ce n'est pas si risqué un problème. 761 00:53:07,640 --> 00:53:15,390 La fuite d'informations, c'est là que les données sensibles est exclu du dispositif. 762 00:53:15,390 --> 00:53:19,270 Nous avons constaté que dans 40% des applications. 763 00:53:19,270 --> 00:53:23,540 Temps et de l'Etat, ceux qui sont la race questions de type de condition, généralement assez difficiles à exploiter, 764 00:53:23,540 --> 00:53:26,170 donc je n'ai pas parlé de cela, mais nous regardé. 765 00:53:26,170 --> 00:53:28,750 23% avaient des problèmes d'injection SQL. 766 00:53:28,750 --> 00:53:32,020 Beaucoup de gens ne savent pas que beaucoup d'applications 767 00:53:32,020 --> 00:53:35,880 utiliser un petit peu de base de données SQL sur leur extrémité arrière pour stocker des données. 768 00:53:35,880 --> 00:53:40,430 Eh bien, si les données que vous saisir sur le réseau 769 00:53:40,430 --> 00:53:43,800 a chaînes SQL d'attaque par injection en elle 770 00:53:43,800 --> 00:53:45,970 quelqu'un peut compromettre l'appareil grâce à cela, 771 00:53:45,970 --> 00:53:49,800 et je pense que nous trouver environ 40% des applications Web ont ce problème, 772 00:53:49,800 --> 00:53:52,840 qui est un problème épidémique énorme. 773 00:53:52,840 --> 00:53:55,740 Nous trouvons 23% du temps dans les applications mobiles 774 00:53:55,740 --> 00:54:02,030 et c'est probablement parce que beaucoup plus d'applications web utilisent SQL que mobile. 775 00:54:02,030 --> 00:54:05,580 >> Et puis nous voyons encore quelques cross-site scripting, les questions d'autorisation, 776 00:54:05,580 --> 00:54:09,400 puis la gestion des titres de compétences, c'est là que vous avez votre mot de passe codé en dur. 777 00:54:09,400 --> 00:54:14,540 Dans 5% des demandes, nous voyons que. 778 00:54:14,540 --> 00:54:17,970 Et puis nous avons des données sur iOS. 779 00:54:17,970 --> 00:54:20,180 81% avaient des problèmes de gestion des erreurs. 780 00:54:20,180 --> 00:54:23,130 Il s'agit plus d'un problème de qualité de code, 781 00:54:23,130 --> 00:54:28,010 mais 67% avaient des problèmes cryptographiques, donc pas tout à fait aussi mauvais que Android. 782 00:54:28,010 --> 00:54:32,440 Peut-être que les API sont un peu plus facile, les exemples de codes un peu mieux sur iOS. 783 00:54:32,440 --> 00:54:35,420 Mais encore un pourcentage très élevé. 784 00:54:35,420 --> 00:54:39,040 Nous avons eu 54% de fuites d'informations, 785 00:54:39,040 --> 00:54:42,080 environ 30% avec des erreurs de gestion de la mémoire tampon. 786 00:54:42,080 --> 00:54:45,930 C'est là où il pourrait potentiellement être un problème de corruption de mémoire. 787 00:54:45,930 --> 00:54:50,350 Il s'avère que ce n'est pas tant d'un problème pour l'exploitation 788 00:54:50,350 --> 00:54:56,450 sur iOS car tout le code doit être signé, 789 00:54:56,450 --> 00:55:02,210 il est si difficile pour un attaquant d'exécuter du code arbitraire sur iOS. 790 00:55:02,210 --> 00:55:07,880 qualité de code, traversée de répertoire, mais la gestion des informations d'identification ici à 14,6%, 791 00:55:07,880 --> 00:55:09,250 si pire que sur l'Android. 792 00:55:09,250 --> 00:55:13,240 Nous avons des gens pas la manipulation des mots de passe correctement. 793 00:55:13,240 --> 00:55:15,790 Et puis les erreurs numériques et dépassement de mémoire tampon, 794 00:55:15,790 --> 00:55:22,680 ceux-ci sont plus va avoir des problèmes de qualité de code sur iOS. 795 00:55:22,680 --> 00:55:26,110 >> C'était pour ma présentation. Je ne sais pas si nous sommes hors du temps ou pas. 796 00:55:26,110 --> 00:55:29,540 Je ne sais pas s'il ya des questions. 797 00:55:29,540 --> 00:55:33,220 [Homme] Une question rapide autour de la fragmentation et le marché Android. 798 00:55:33,220 --> 00:55:36,240 Apple à moins possède correction. 799 00:55:36,240 --> 00:55:40,780 Ils font un bon travail de l'obtenir là-bas alors que moins dans l'espace Android. 800 00:55:40,780 --> 00:55:44,280 Vous devez presque de jailbreaker votre téléphone pour rester au courant 801 00:55:44,280 --> 00:55:46,660 avec la version actuelle d'Android. 802 00:55:46,660 --> 00:55:50,960 Ouais, c'est un énorme problème et si vous pensez- 803 00:55:50,960 --> 00:55:52,280 [Homme] Pourquoi ne pas vous répéter? 804 00:55:52,280 --> 00:55:55,610 >> Oh, c'est vrai, de sorte que la question était de savoir à propos de la fragmentation 805 00:55:55,610 --> 00:56:00,410 du système d'exploitation sur la plate-forme androïde? 806 00:56:00,410 --> 00:56:05,890 Comment cela affecte-t le niveau de risque de ces dispositifs? 807 00:56:05,890 --> 00:56:09,700 Et c'est effectivement un énorme problème parce que ce qui se passe est 808 00:56:09,700 --> 00:56:15,110 les appareils plus anciens, quand quelqu'un arrive avec un jailbreak pour cet appareil, 809 00:56:15,110 --> 00:56:19,960 c'est essentiellement une escalade de privilège, et jusqu'à ce que ce système d'exploitation est mis à jour 810 00:56:19,960 --> 00:56:25,350 tout logiciel malveillant peut alors utiliser cette vulnérabilité pour compromettre totalement le dispositif, 811 00:56:25,350 --> 00:56:30,200 et ce que nous voyons sur l'Android est afin d'obtenir un nouveau système d'exploitation 812 00:56:30,200 --> 00:56:34,690 Google doit mettre le système d'exploitation, puis le fabricant de matériel 813 00:56:34,690 --> 00:56:39,390 a pour le personnaliser, et le transporteur a le personnaliser et de le livrer. 814 00:56:39,390 --> 00:56:43,070 Vous avez essentiellement trois pièces mobiles ici, 815 00:56:43,070 --> 00:56:47,210 et il tourne que les transporteurs ne se soucient pas, 816 00:56:47,210 --> 00:56:50,400 et les fabricants de matériel ne se soucient pas, et Google ne sont pas les pousser assez 817 00:56:50,400 --> 00:56:54,430 de faire quelque chose, si essentiellement plus de la moitié des appareils là-bas 818 00:56:54,430 --> 00:57:00,590 avoir des systèmes d'exploitation qui ont ces vulnérabilités d'escalade de privilèges en eux, 819 00:57:00,590 --> 00:57:08,440 et donc si vous avez des logiciels malveillants sur votre appareil Android, il est beaucoup plus un problème. 820 00:57:08,440 --> 00:57:10,350 >> D'accord, merci beaucoup. 821 00:57:10,350 --> 00:57:12,310 [Applaudissements] 822 00:57:12,310 --> 00:57:14,310 [CS50.TV]