1 00:00:00,000 --> 00:00:02,610 >> [Seminario] [Defendiendo Detrás del dispositivo: Application Security Mobile] 2 00:00:02,610 --> 00:00:04,380 [Chris Wysopal] [Universidad de Harvard] 3 00:00:04,380 --> 00:00:07,830 [Este es CS50.] [CS50.TV] 4 00:00:07,830 --> 00:00:10,360 >> Buenas tardes. Mi nombre es Chris Wysopal. 5 00:00:10,360 --> 00:00:13,360 Soy el director de tecnología y cofundador de Veracode. 6 00:00:13,360 --> 00:00:15,880 Veracode es una empresa de seguridad de la aplicación. 7 00:00:15,880 --> 00:00:18,230 Probamos todo tipo de aplicaciones diferentes, 8 00:00:18,230 --> 00:00:25,060 y lo que voy a hablar hoy es la seguridad de aplicaciones móviles. 9 00:00:25,060 --> 00:00:28,630 Mi experiencia es que he estado haciendo la investigación sobre seguridad 10 00:00:28,630 --> 00:00:31,970 durante mucho tiempo, probablemente casi tan largo como el que más. 11 00:00:31,970 --> 00:00:35,000 Empecé a mediados de los años 90, 12 00:00:35,000 --> 00:00:37,370 y fue un tiempo en que era bastante interesante porque 13 00:00:37,370 --> 00:00:39,220 tuvimos un cambio de paradigma en los mediados de los años 90. 14 00:00:39,220 --> 00:00:43,520 Todo el equipo de un todo repentino estaba conectado a Internet, 15 00:00:43,520 --> 00:00:46,550 y luego tuvimos el inicio de las aplicaciones web, 16 00:00:46,550 --> 00:00:49,330 y eso es lo que me he centrado en mucho entonces. 17 00:00:49,330 --> 00:00:51,160 Es interesante. 18 00:00:51,160 --> 00:00:53,930 Ahora tenemos un nuevo cambio de paradigma pasando con la informática, 19 00:00:53,930 --> 00:00:58,710 que es el cambio a las aplicaciones móviles. 20 00:00:58,710 --> 00:01:03,680 >> Siento que es una especie de tiempo similar y luego fue a finales de los años 90 21 00:01:03,680 --> 00:01:07,650 cuando estábamos investigando las aplicaciones web y la búsqueda de defectos como 22 00:01:07,650 --> 00:01:11,800 errores de administración de sesiones y de inyección SQL 23 00:01:11,800 --> 00:01:14,940 que en realidad no existía antes, y, de repente, estaban por todas partes 24 00:01:14,940 --> 00:01:19,360 en las aplicaciones web, y ahora una gran parte del tiempo que paso 25 00:01:19,360 --> 00:01:27,950 está mirando a las aplicaciones móviles y mirando a lo que está pasando ahí fuera en el salvaje. 26 00:01:27,950 --> 00:01:32,060 Las aplicaciones móviles son realmente va a ser la plataforma informática dominante, 27 00:01:32,060 --> 00:01:35,060 por lo que realmente tenemos que gastar un montón de tiempo si usted está en la industria de la seguridad 28 00:01:35,060 --> 00:01:39,280 centrándose en las aplicaciones web. 29 00:01:39,280 --> 00:01:43,420 Hubo 29 mil millones de aplicaciones móviles descargados en 2011. 30 00:01:43,420 --> 00:01:47,920 Se prevé que ser de 76 mil millones de aplicaciones para el año 2014. 31 00:01:47,920 --> 00:01:54,040 Hay 686 millones de dispositivos que se van a comprar este año, 32 00:01:54,040 --> 00:01:57,060 por lo que este es el lugar donde la gente va a estar haciendo 33 00:01:57,060 --> 00:01:59,600  la mayor parte de su informática de cliente en el futuro. 34 00:01:59,600 --> 00:02:04,220 >> Yo estaba hablando con un vicepresidente de Fidelity Investments 35 00:02:04,220 --> 00:02:08,780 Hace un par de meses, y me dijo que acaban de ver más tráfico 36 00:02:08,780 --> 00:02:12,610 hacer transacciones financieras desde su base de clientes 37 00:02:12,610 --> 00:02:16,230 en su aplicación móvil que en su página web, 38 00:02:16,230 --> 00:02:20,610 por lo que un uso común de la Web en el pasado ha sido 39 00:02:20,610 --> 00:02:23,800 la comprobación de sus cotizaciones de acciones, la gestión de su cartera, 40 00:02:23,800 --> 00:02:28,060 y que en realidad estamos viendo que en 2012 más de interruptor 41 00:02:28,060 --> 00:02:30,960 a ser más dominante en la plataforma móvil. 42 00:02:30,960 --> 00:02:34,530 Ciertamente, si no va a haber ninguna actividad criminal, 43 00:02:34,530 --> 00:02:38,900 cualquier actividad maliciosa, que va a empezar a centrarse en la plataforma móvil 44 00:02:38,900 --> 00:02:44,210 con el tiempo como la gente cambia a eso. 45 00:02:44,210 --> 00:02:48,320 Si nos fijamos en la plataforma móvil, 46 00:02:48,320 --> 00:02:54,380 mirar a los riesgos de la plataforma es útil para desglosarlo en las diferentes capas, 47 00:02:54,380 --> 00:02:59,010 al igual que lo haría en una computadora de escritorio, 48 00:02:59,010 --> 00:03:02,860 y se piensa en las diferentes capas, software, sistema operativo, 49 00:03:02,860 --> 00:03:07,730 capa de red, capa de hardware, y por supuesto, hay vulnerabilidades en todas esas capas. 50 00:03:07,730 --> 00:03:10,510 >> Lo mismo sucede en el móvil. 51 00:03:10,510 --> 00:03:14,880 Pero el móvil, parece que algunas de esas capas están en peor situación. 52 00:03:14,880 --> 00:03:19,840 Por un lado, la capa de red es más problemática en el móvil 53 00:03:19,840 --> 00:03:25,650 porque mucha gente tiene en su oficina o en casa 54 00:03:25,650 --> 00:03:30,780 cableado o las conexiones que tienen conexiones seguras Wi-Fi, 55 00:03:30,780 --> 00:03:36,530 y con una gran cantidad de dispositivos móviles que está, obviamente fuera de la casa 56 00:03:36,530 --> 00:03:40,520 o fuera de la oficina mucho y si estás usando Wi-Fi no 57 00:03:40,520 --> 00:03:42,820 se podría estar usando una conexión Wi-Fi insegura, 58 00:03:42,820 --> 00:03:45,570 algo que es un público de conexión Wi-Fi gratuita, 59 00:03:45,570 --> 00:03:48,840 así que cuando pensamos en aplicaciones móviles que tenemos que tener en cuenta 60 00:03:48,840 --> 00:03:53,770 que el entorno de red es más riesgoso para las aplicaciones 61 00:03:53,770 --> 00:03:57,640 cuando se está utilizando Wi-Fi. 62 00:03:57,640 --> 00:04:02,410 Y cuando me meto en varios de los riesgos de aplicaciones móviles 63 00:04:02,410 --> 00:04:04,910 verás por qué eso es más importante. 64 00:04:04,910 --> 00:04:09,710 Existen riesgos a nivel de hardware en los dispositivos móviles. 65 00:04:09,710 --> 00:04:11,670 Esta es un área de investigación en curso. 66 00:04:11,670 --> 00:04:15,910 La gente llama a estos ataques de banda ancha o ataques de banda base 67 00:04:15,910 --> 00:04:21,870 donde se está atacando el firmware que está escuchando en la radio. 68 00:04:21,870 --> 00:04:25,430 >> Estos son realmente ataques de miedo porque 69 00:04:25,430 --> 00:04:27,280 el usuario no tiene que hacer nada. 70 00:04:27,280 --> 00:04:30,760 Usted puede golpear un montón de dispositivos dentro de la gama de RF 71 00:04:30,760 --> 00:04:36,690 a la vez, y parece que cada vez que esta investigación se propaga hacia arriba 72 00:04:36,690 --> 00:04:40,750 rápidamente se clasifica en el 73 00:04:40,750 --> 00:04:46,600 gente sola vez en la vuelta y decir: "Aquí, nos dicen acerca de eso, y por favor dejen de hablar de ello." 74 00:04:46,600 --> 00:04:49,460 Hay un poco de investigación en curso en el área de la banda ancha, 75 00:04:49,460 --> 00:04:51,980 pero parece ser hush hush muy. 76 00:04:51,980 --> 00:04:56,910 Creo que es más de un tipo de Estado-nación de la investigación que está pasando. 77 00:04:56,910 --> 00:05:02,140 Un área de investigación activa, sin embargo, es la capa del sistema operativo, 78 00:05:02,140 --> 00:05:08,910 y de nuevo, esto es diferente que en el mundo de la computación de escritorio 79 00:05:08,910 --> 00:05:14,840 porque en el espacio móvil tiene estos equipos de personas llamados jailbreakers, 80 00:05:14,840 --> 00:05:18,670 y jailbreakers son diferentes que los investigadores de vulnerabilidades regulares. 81 00:05:18,670 --> 00:05:21,970 Están tratando de encontrar vulnerabilidades en el sistema operativo, 82 00:05:21,970 --> 00:05:27,000 pero la razón por la que están tratando de encontrar las vulnerabilidades no es 83 00:05:27,000 --> 00:05:31,810 entrar en la máquina de otra persona y comprometerlo. 84 00:05:31,810 --> 00:05:34,280 Es entrar en su propio ordenador. 85 00:05:34,280 --> 00:05:38,820 >> Quieren entrar en su propio móvil, modificar el sistema operativo de su propio móvil 86 00:05:38,820 --> 00:05:41,050 para que puedan ejecutar las aplicaciones de su elección 87 00:05:41,050 --> 00:05:44,510 y cambiar las cosas con los permisos administrativos, 88 00:05:44,510 --> 00:05:49,050 y ellos no quieren decirle al vendedor acerca de esto. 89 00:05:49,050 --> 00:05:52,960 No son como un investigador de seguridad que es un investigador de seguridad sombrero blanco 90 00:05:52,960 --> 00:05:56,600 que se va a hacer de una fuente responsable y decirle al vendedor al respecto. 91 00:05:56,600 --> 00:06:01,270 Ellos quieren hacer esta investigación, y que quieren publicar en realidad 92 00:06:01,270 --> 00:06:06,400 en una explotación o un rootkit o un código de fuga de la cárcel, 93 00:06:06,400 --> 00:06:10,010 y quieren hacerlo estratégicamente como justo después del 94 00:06:10,010 --> 00:06:13,570 las naves de proveedores del nuevo sistema operativo. 95 00:06:13,570 --> 00:06:16,350 Usted tiene esta relación de confrontación 96 00:06:16,350 --> 00:06:19,000 con vulnerabilidades a nivel de sistema operativo en el móvil, 97 00:06:19,000 --> 00:06:23,150 que creo que es bastante interesante, y un lugar al que veo 98 00:06:23,150 --> 00:06:29,210 se lo hace para que haya un buen código publicado explotar por ahí 99 00:06:29,210 --> 00:06:31,750 en busca de vulnerabilidades a nivel de kernel, 100 00:06:31,750 --> 00:06:35,040 y hemos visto los realmente ser utilizado por los creadores de malware. 101 00:06:35,040 --> 00:06:38,450 Es un poco diferente que el mundo del PC. 102 00:06:38,450 --> 00:06:42,530 Y a continuación, la capa final es la capa superior, la capa de aplicación. 103 00:06:42,530 --> 00:06:45,250 Eso es lo que voy a hablar hoy. 104 00:06:45,250 --> 00:06:48,970 >> Existen las otras capas, y las otras capas desempeñan en él, 105 00:06:48,970 --> 00:06:53,310 pero yo estoy en su mayoría va a hablar acerca de lo que está pasando en la capa de aplicación 106 00:06:53,310 --> 00:06:55,560 donde el código se ejecuta en el entorno limitado. 107 00:06:55,560 --> 00:06:58,670 No tiene privilegios administrativos. 108 00:06:58,670 --> 00:07:02,170 Se tiene que utilizar las API del dispositivo, 109 00:07:02,170 --> 00:07:06,970 pero aún así, una gran cantidad de actividades maliciosas y una gran cantidad de riesgo pueden ocurrir en esa capa 110 00:07:06,970 --> 00:07:09,220 porque esa es la capa donde toda la información está. 111 00:07:09,220 --> 00:07:12,330 Las aplicaciones pueden acceder a toda la información en el dispositivo 112 00:07:12,330 --> 00:07:15,390 si tienen los permisos adecuados, 113 00:07:15,390 --> 00:07:17,540 y pueden acceder a los diferentes sensores en el dispositivo, 114 00:07:17,540 --> 00:07:23,950 Sensor GPS, micrófono, cámara, lo que usted tiene. 115 00:07:23,950 --> 00:07:27,380 A pesar de que sólo estamos hablando de la capa de aplicación 116 00:07:27,380 --> 00:07:33,700 tenemos una gran cantidad de riesgo allí. 117 00:07:33,700 --> 00:07:38,450 La otra cosa que es diferente en el entorno móvil 118 00:07:38,450 --> 00:07:45,060 es que todos los jugadores del sistema operativo, ya sea BlackBerry o Android 119 00:07:45,060 --> 00:07:53,410 o iOS o Windows Mobile, todos ellos tienen un modelo de permisos de grano fino, 120 00:07:53,410 --> 00:07:56,990 y esta es una de las formas en que construyen en el sistema operativo 121 00:07:56,990 --> 00:08:01,230 la idea de que no es tan arriesgado como parece. 122 00:08:01,230 --> 00:08:04,550 A pesar de que tiene todos sus contactos en allí, toda su información personal, 123 00:08:04,550 --> 00:08:09,080 usted tiene sus fotos, usted tiene su ubicación en allí, 124 00:08:09,080 --> 00:08:14,820 usted está almacenando su pin bancaria para inicio de sesión automático de la existencia, es seguro porque 125 00:08:14,820 --> 00:08:19,430 aplicaciones tienen que tener ciertos permisos para llegar a ciertas partes 126 00:08:19,430 --> 00:08:25,080 de la información en el dispositivo, y el usuario tiene que ser presentada con 127 00:08:25,080 --> 00:08:29,230 estos permisos y dicen bien. 128 00:08:29,230 --> 00:08:32,590 >> El problema con esto es que el usuario siempre dice bien. 129 00:08:32,590 --> 00:08:35,240 Como una persona de seguridad, sé que usted puede solicitar al usuario, 130 00:08:35,240 --> 00:08:40,100 decir algo muy malo va a pasar, es lo que quieres que suceda? 131 00:08:40,100 --> 00:08:44,680 Y si están en un apuro o hay algo realmente atractivo en el otro lado de eso, 132 00:08:44,680 --> 00:08:47,760 como un juego se va a instalar que han estado esperando, 133 00:08:47,760 --> 00:08:50,860 que van a hacer clic bien. 134 00:08:50,860 --> 00:08:56,630 Es por eso que digo en mi diapositiva aquí sólo quiero lanzar pájaros a los cerdos ya, 135 00:08:56,630 --> 00:09:03,150 y se puede ver en la diapositiva aquí hay ejemplos de una caja permiso BlackBerry. 136 00:09:03,150 --> 00:09:05,990 Dice: "Por favor, establece los permisos de la aplicación BlackBerry Travel 137 00:09:05,990 --> 00:09:09,720 después de hacer clic en el botón de abajo ", y, básicamente, el usuario es sólo va a decir 138 00:09:09,720 --> 00:09:12,240 establecer los permisos y ahorrar. 139 00:09:12,240 --> 00:09:18,010 He aquí un símbolo del Android en el que muestra las cosas, 140 00:09:18,010 --> 00:09:20,260 y que en realidad pone algo que casi parece una advertencia. 141 00:09:20,260 --> 00:09:25,090 Tiene una especie de señal de ceder allí diciendo comunicación de red, llamada de teléfono, 142 00:09:25,090 --> 00:09:28,120 pero el usuario se va a instalar, haga clic en, ¿verdad? 143 00:09:28,120 --> 00:09:32,940 Y entonces el de Apple es completamente inocuo. 144 00:09:32,940 --> 00:09:34,300 No da ningún tipo de advertencia. 145 00:09:34,300 --> 00:09:37,380 Es sólo de Apple le gustaría utilizar su ubicación actual. 146 00:09:37,380 --> 00:09:39,670 Por supuesto que vas a hacer clic bien. 147 00:09:39,670 --> 00:09:42,260 >> No es este modelo de permisos de grano fino, 148 00:09:42,260 --> 00:09:45,890 y las aplicaciones tienen que tener un archivo de manifiesto en el que declaran 149 00:09:45,890 --> 00:09:49,410 los permisos que necesitan, y que conseguirán que se muestra al usuario, 150 00:09:49,410 --> 00:09:53,480 y el usuario tendrá que decir que me concedo estos permisos. 151 00:09:53,480 --> 00:09:55,080 Pero seamos honestos. 152 00:09:55,080 --> 00:09:58,400 Los usuarios son sólo va a decir siempre bien. 153 00:09:58,400 --> 00:10:04,460 Echemos un rápido vistazo a los permisos que estas aplicaciones están pidiendo 154 00:10:04,460 --> 00:10:06,850 y algunos de los permisos que están allí. 155 00:10:06,850 --> 00:10:09,950 Esta empresa pretoriana hizo una encuesta del año pasado 156 00:10:09,950 --> 00:10:14,170 de 53.000 aplicaciones analizadas en los mercados del mercado y de 3 ª parte para Android, 157 00:10:14,170 --> 00:10:16,770 así que esto es todo Android. 158 00:10:16,770 --> 00:10:19,670 Y la aplicación promedio pidió 3 permisos. 159 00:10:19,670 --> 00:10:23,370 Algunas aplicaciones solicitaron 117 permisos, 160 00:10:23,370 --> 00:10:27,480 por lo que, obviamente, estos son de grano muy fino y demasiado complejo para un usuario a entender 161 00:10:27,480 --> 00:10:31,600 si se les presentan con esta aplicación que necesita estos 117 permisos. 162 00:10:31,600 --> 00:10:37,270 Es como el acuerdo de licencia de usuario final que es 45 páginas de largo. 163 00:10:37,270 --> 00:10:40,240 Tal vez pronto tendrán una opción donde se siente 164 00:10:40,240 --> 00:10:43,100 imprimir los permisos y enviarme un correo electrónico. 165 00:10:43,100 --> 00:10:45,480 >> Pero si nos fijamos en algunos de los mejores permisos interesantes 166 00:10:45,480 --> 00:10:50,840 24% de las aplicaciones que se descargan de la 53000 167 00:10:50,840 --> 00:10:57,230 la información del GPS solicitado desde el dispositivo. 168 00:10:57,230 --> 00:10:59,810 8% lee los contactos. 169 00:10:59,810 --> 00:11:03,770 4% envió de SMS, y 3% de SMS recibido. 170 00:11:03,770 --> 00:11:07,730 2% el audio grabado. 171 00:11:07,730 --> 00:11:11,210 1% procesa las llamadas salientes. 172 00:11:11,210 --> 00:11:13,140 No se. 173 00:11:13,140 --> 00:11:17,520 No creo que el 4% de las aplicaciones disponibles en la tienda de aplicaciones realmente necesita para enviar mensajes de texto SMS, 174 00:11:17,520 --> 00:11:21,410 así que creo que eso es un indicio de que algo malo está pasando. 175 00:11:21,410 --> 00:11:24,350 8% de las aplicaciones necesita leer su lista de contactos. 176 00:11:24,350 --> 00:11:26,510 Probablemente no sea necesario. 177 00:11:26,510 --> 00:11:30,990 Otra de las cosas interesantes acerca de los permisos es 178 00:11:30,990 --> 00:11:36,740 si enlaza en las bibliotecas compartidas en su aplicación 179 00:11:36,740 --> 00:11:39,780 los heredan los permisos de la aplicación, 180 00:11:39,780 --> 00:11:46,570 así que si su aplicación necesita la lista de contactos o necesita la ubicación GPS para funcionar 181 00:11:46,570 --> 00:11:49,940 y vincular en una biblioteca de la publicidad, por ejemplo, 182 00:11:49,940 --> 00:11:53,170 que biblioteca anuncio también será capaz de acceder a los contactos 183 00:11:53,170 --> 00:11:57,630 y también ser capaz de acceder a la ubicación del GPS, 184 00:11:57,630 --> 00:12:01,990 y el desarrollador de la aplicación no sabe nada sobre el código que se está ejecutando en la biblioteca anuncio. 185 00:12:01,990 --> 00:12:05,370 Sólo están vinculación que porque quieren obtener beneficios económicos de su aplicación. 186 00:12:05,370 --> 00:12:09,820 >> Aquí es donde-y voy a hablar de algunos ejemplos de esto con 187 00:12:09,820 --> 00:12:13,930 una aplicación llamada Pandora, donde un desarrollador de aplicaciones 188 00:12:13,930 --> 00:12:18,910 podría ser, sin saberlo, la filtración de información 189 00:12:18,910 --> 00:12:24,580 de sus usuarios debido a las bibliotecas que han vinculadas pulg 190 00:12:24,580 --> 00:12:30,110 Topografía del paisaje por ahí, mirando todas las diferentes aplicaciones 191 00:12:30,110 --> 00:12:34,310 que se han reportado en las noticias como algo que los usuarios malintencionados o hacer que no querían 192 00:12:34,310 --> 00:12:39,360 y después de inspeccionar una gran cantidad de aplicaciones-que hacemos un montón de análisis binario estático en aplicaciones móviles, 193 00:12:39,360 --> 00:12:42,010 por lo que los hemos inspeccionado y miramos el código en sí mismo- 194 00:12:42,010 --> 00:12:49,640 se nos ocurrió lo que llamamos nuestra lista de los 10 comportamientos de riesgo en las aplicaciones. 195 00:12:49,640 --> 00:12:54,180 Y se divide en 2 secciones, el código malicioso, 196 00:12:54,180 --> 00:12:57,600 así que estas son las cosas malas que las aplicaciones podrían estar haciendo que 197 00:12:57,600 --> 00:13:06,520 es probable que sea algo que un individuo malintencionado 198 00:13:06,520 --> 00:13:10,060 ha puesto específicamente en la aplicación, pero es un poco difusa. 199 00:13:10,060 --> 00:13:13,300 Podría ser algo que un desarrollador piensa está bien, 200 00:13:13,300 --> 00:13:16,350 pero termina siendo considerado como malicioso por el usuario. 201 00:13:16,350 --> 00:13:19,830 >> Y luego la segunda sección es lo que llamamos las vulnerabilidades de codificación, 202 00:13:19,830 --> 00:13:24,600 y estas son las cosas que el desarrollador básicamente está cometiendo errores 203 00:13:24,600 --> 00:13:27,200 o simplemente no entiende cómo escribir de forma segura la aplicación, 204 00:13:27,200 --> 00:13:30,260  y eso es poner el usuario de la aplicación en riesgo. 205 00:13:30,260 --> 00:13:34,060 Voy a ir a través de estos puntos en detalle y dar algunos ejemplos. 206 00:13:34,060 --> 00:13:39,620 Como referencia, yo quería poner la lista móvil top 10 de OWASP. 207 00:13:39,620 --> 00:13:43,590 Estos son los 10 temas que un grupo de la OWASP, 208 00:13:43,590 --> 00:13:48,900 Proyecto Abrir Web Application Security, que tiene un grupo de trabajo 209 00:13:48,900 --> 00:13:50,620 trabajando en una lista de los 10 móvil. 210 00:13:50,620 --> 00:13:54,600 Tienen una muy famosa lista superior de la tela 10, que son los 10 primeros 211 00:13:54,600 --> 00:13:57,180 las cosas más arriesgadas que pueden tener en una aplicación web. 212 00:13:57,180 --> 00:13:59,090 Están haciendo lo mismo para móviles, 213 00:13:59,090 --> 00:14:01,750 y su lista es un poco diferente a la nuestra. 214 00:14:01,750 --> 00:14:03,670 6 de la 10 son el mismo. 215 00:14:03,670 --> 00:14:06,020 Tienen 4 que son diferentes. 216 00:14:06,020 --> 00:14:10,550 Creo que tienen un poco de una opinión diferente sobre 217 00:14:10,550 --> 00:14:14,490 riesgo en aplicaciones móviles donde muchos de sus temas 218 00:14:14,490 --> 00:14:20,490 son realmente la forma en la aplicación se comunica con un servidor back-end 219 00:14:20,490 --> 00:14:23,100 o lo que está pasando en el servidor back-end, 220 00:14:23,100 --> 00:14:29,220 no tanto las aplicaciones que tienen conductas de riesgo que son aplicaciones cliente simplemente sencillo. 221 00:14:29,220 --> 00:14:36,640 >> Los que están en rojo aquí son las diferencias entre las 2 listas. 222 00:14:36,640 --> 00:14:40,740 Y parte de mi equipo de investigación ha contribuido realmente a este proyecto, 223 00:14:40,740 --> 00:14:44,570 así que ya veremos qué pasa con el tiempo, pero creo que la comida para llevar aquí es 224 00:14:44,570 --> 00:14:47,550 nosotros no sabemos realmente lo que la lista de los 10 está en las aplicaciones móviles, ya 225 00:14:47,550 --> 00:14:50,510 realmente han estado solamente alrededor de 2 a 3 años, 226 00:14:50,510 --> 00:14:57,750 y no ha habido tiempo suficiente para investigar realmente los sistemas operativos 227 00:14:57,750 --> 00:15:00,450 y lo que son capaces de, y no ha habido tiempo suficiente 228 00:15:00,450 --> 00:15:06,870 para la comunidad malicioso, si se quiere, que ha pasado suficiente tiempo 229 00:15:06,870 --> 00:15:12,910 tratar de atacar a los usuarios a través de aplicaciones móviles, por lo que espero que estas listas cambian un poco. 230 00:15:12,910 --> 00:15:18,720 Pero por ahora, estos son los 10 mejores cosas de qué preocuparse. 231 00:15:18,720 --> 00:15:24,150 Usted podría preguntarse por el lado móvil, donde hace el código móvil malicioso 232 00:15:24,150 --> 00:15:28,880 cómo llega al dispositivo? 233 00:15:28,880 --> 00:15:35,210 North Carolina State tiene un proyecto llamado Proyecto Genoma Mobile malware 234 00:15:35,210 --> 00:15:39,520 donde se están recogiendo la mayor cantidad de malware móvil como pueden y su análisis, 235 00:15:39,520 --> 00:15:45,270 y han derribado los vectores de inyección que utiliza el malware para móviles, 236 00:15:45,270 --> 00:15:51,490 y el 86% utiliza una técnica llamada reenvasado, 237 00:15:51,490 --> 00:15:54,160 y esto es sólo en la plataforma Android 238 00:15:54,160 --> 00:15:56,720 Puede usted realmente hacer esto reenvasado. 239 00:15:56,720 --> 00:16:03,100 >> La razón es el código de Android está construido con 240 00:16:03,100 --> 00:16:08,130 un código de bytes de Java llamada Dalvik que es fácilmente decompilable. 241 00:16:08,130 --> 00:16:12,460 Lo que el malo de la película puede hacer es 242 00:16:12,460 --> 00:16:16,590 tener una aplicación para Android, descompilarlo, 243 00:16:16,590 --> 00:16:20,120 insertar su código malicioso, recompilar, 244 00:16:20,120 --> 00:16:28,070 y luego lo puso en la App Store que pretende ser una nueva versión de dicha aplicación, 245 00:16:28,070 --> 00:16:30,330 o sólo tal vez cambiar el nombre de la aplicación. 246 00:16:30,330 --> 00:16:35,140 Si se trataba de una especie de juego, cambiar el nombre un poco, 247 00:16:35,140 --> 00:16:42,860 por lo que este reenvasado es como el 86% del malware móvil se distribuye. 248 00:16:42,860 --> 00:16:45,810 Hay otra actualización técnica llamada que está 249 00:16:45,810 --> 00:16:50,030 muy similar al reenvasado, pero en realidad no pone el código malicioso pulg 250 00:16:50,030 --> 00:16:52,870 Lo que hace es poner en un pequeño mecanismo de actualización. 251 00:16:52,870 --> 00:16:56,660 Usted descompilar, usted pone en un mecanismo de actualización, y vuelva a compilar ella, 252 00:16:56,660 --> 00:17:02,360 y luego, cuando la aplicación se está ejecutando, se baja el software malicioso en el dispositivo. 253 00:17:02,360 --> 00:17:06,300 >> La gran mayoría son esas 2 técnicas. 254 00:17:06,300 --> 00:17:12,710 En realidad no hay mucho de descarga drive-bys o descargas drive-by en los móviles, 255 00:17:12,710 --> 00:17:15,890 lo que podría ser como un ataque de phishing. 256 00:17:15,890 --> 00:17:18,200 Oye, echa un vistazo a este sitio realmente genial, 257 00:17:18,200 --> 00:17:21,020 o tienes que ir a este sitio web y rellenar este formulario 258 00:17:21,020 --> 00:17:24,420 para mantener constante haciendo algo. 259 00:17:24,420 --> 00:17:26,230 Esos son los ataques de phishing. 260 00:17:26,230 --> 00:17:28,160 Lo mismo puede suceder en la plataforma móvil donde 261 00:17:28,160 --> 00:17:33,830 apuntar a una aplicación móvil para descargar, decir "Hola, esto es Bank of America." 262 00:17:33,830 --> 00:17:36,070 "Vemos que está utilizando esta aplicación." 263 00:17:36,070 --> 00:17:38,540 "Usted debe descargar esta otra aplicación." 264 00:17:38,540 --> 00:17:41,170 En teoría, eso podría funcionar. 265 00:17:41,170 --> 00:17:48,610 Es posible que simplemente no se utiliza lo suficiente como para determinar si es correcta o no, 266 00:17:48,610 --> 00:17:51,680 pero se encontraron con que se utiliza menos de 1% del tiempo que la técnica. 267 00:17:51,680 --> 00:17:56,130 La mayoría de las veces es realmente un código de reenvasado. 268 00:17:56,130 --> 00:17:58,710 >> Hay otra categoría llamada independiente 269 00:17:58,710 --> 00:18:01,420 donde alguien construye una aplicación nueva. 270 00:18:01,420 --> 00:18:04,020 Construyen una aplicación que pretende ser algo. 271 00:18:04,020 --> 00:18:07,360 No es un nuevo envoltorio de otra cosa, y que tiene el código malicioso. 272 00:18:07,360 --> 00:18:11,230 Que se utiliza el 14% del tiempo. 273 00:18:11,230 --> 00:18:17,880 Ahora quiero hablar de lo que está haciendo el código malicioso? 274 00:18:17,880 --> 00:18:23,070 Uno de los primeros malware que hay 275 00:18:23,070 --> 00:18:25,490 usted podría considerar un spyware. 276 00:18:25,490 --> 00:18:27,620 Básicamente espía al usuario. 277 00:18:27,620 --> 00:18:30,470 Recoge correos electrónicos, mensajes SMS. 278 00:18:30,470 --> 00:18:32,340 Se enciende el micrófono. 279 00:18:32,340 --> 00:18:37,330 Recopila la libreta de contactos, y lo envía a otra persona. 280 00:18:37,330 --> 00:18:40,870 Este tipo de software espía existente en el PC, 281 00:18:40,870 --> 00:18:46,200 así que tiene sentido perfecto para las personas que tratan de hacer esto en los dispositivos móviles. 282 00:18:46,200 --> 00:18:53,230 >> Uno de los primeros ejemplos de esto fue un programa llamado Secret SMS replicador. 283 00:18:53,230 --> 00:18:56,250 Fue en el mercado Android hace un par de años, 284 00:18:56,250 --> 00:18:59,960 y la idea era si tenía acceso a teléfono Android de alguien 285 00:18:59,960 --> 00:19:03,450 que quería espiar a, por lo que tal vez es su cónyuge 286 00:19:03,450 --> 00:19:07,600 o su pareja y quiere espiar a sus mensajes de texto, 287 00:19:07,600 --> 00:19:11,200 usted puede descargar esta aplicación e instalarla y configurarla 288 00:19:11,200 --> 00:19:16,540 para enviar un mensaje de texto SMS a usted con una copia 289 00:19:16,540 --> 00:19:21,710 de cada mensaje de texto SMS que consiguieron. 290 00:19:21,710 --> 00:19:27,220 Esto, obviamente, está en violaciónes de los términos tienda de aplicaciones de servicio, 291 00:19:27,220 --> 00:19:32,040 y esto fue retirado de la del mercado androide plazo de 18 horas de que esté allí, 292 00:19:32,040 --> 00:19:36,760 por lo que un número muy pequeño de personas que estaban en situación de riesgo a causa de esto. 293 00:19:36,760 --> 00:19:42,510 Ahora, creo que si el programa se llamaba algo tal vez un poco menos provocativa 294 00:19:42,510 --> 00:19:48,690 como Secret SMS replicador probablemente habría funcionado mucho mejor. 295 00:19:48,690 --> 00:19:52,870 Pero era un poco obvio. 296 00:19:52,870 --> 00:19:58,680 >> Una de las cosas que podemos hacer para determinar si las aplicaciones tienen este comportamiento que no queremos 297 00:19:58,680 --> 00:20:01,410 es inspeccionar el código. 298 00:20:01,410 --> 00:20:06,250 Esto es realmente muy fácil de hacer en Android, ya que podemos descomponer las aplicaciones. 299 00:20:06,250 --> 00:20:11,050 En iOS puede usar un desensamblador, como IDA Pro 300 00:20:11,050 --> 00:20:17,190 mirar lo que las API de la aplicación está llamando y lo que está haciendo. 301 00:20:17,190 --> 00:20:20,680 Escribimos nuestro propio analizador estático binario para nuestro código 302 00:20:20,680 --> 00:20:24,940 y lo hacemos, y así lo que podría hacer es que se puede decir 303 00:20:24,940 --> 00:20:30,490 ¿el dispositivo de hacer todo lo que está básicamente espiando a mí o me seguimiento? 304 00:20:30,490 --> 00:20:33,360 Y tengo algunos ejemplos aquí en el iPhone. 305 00:20:33,360 --> 00:20:41,440 Este primer ejemplo es cómo acceder a la UUID en el teléfono. 306 00:20:41,440 --> 00:20:47,060 Esto es realmente algo que Apple acaba de prohibir para nuevas aplicaciones, 307 00:20:47,060 --> 00:20:52,540 pero las aplicaciones antiguas que usted puede ser que se estén ejecutando en el teléfono aún se puede hacer esto, 308 00:20:52,540 --> 00:20:56,500 y de manera que el identificador único puede ser usado para rastrear usted 309 00:20:56,500 --> 00:21:00,440 en muchas aplicaciones diferentes. 310 00:21:00,440 --> 00:21:07,180 >> En el Android, tengo aquí un ejemplo de obtener la ubicación del dispositivo. 311 00:21:07,180 --> 00:21:10,310 Se puede ver que si esa llamada a la API es allí donde la aplicación es el seguimiento, 312 00:21:10,310 --> 00:21:15,000 y se puede ver si se trata de obtener la ubicación para bien o ubicación gruesa. 313 00:21:15,000 --> 00:21:18,860 Y luego en la parte inferior aquí, tengo un ejemplo de cómo en el BlackBerry 314 00:21:18,860 --> 00:21:25,130 una aplicación puede acceder a los mensajes de correo electrónico en su bandeja de entrada. 315 00:21:25,130 --> 00:21:27,660 Estos son el tipo de cosas que usted puede inspeccionar para ver 316 00:21:27,660 --> 00:21:32,360 si la aplicación está haciendo esas cosas. 317 00:21:32,360 --> 00:21:38,320 La segunda gran categoría de comportamiento malicioso, y esto es probablemente la categoría más grande ahora, 318 00:21:38,320 --> 00:21:43,950 es la marcación no autorizada, los mensajes de texto SMS premium no autorizada 319 00:21:43,950 --> 00:21:46,080 o pagos no autorizados. 320 00:21:46,080 --> 00:21:48,930 Otra cosa que es único sobre el teléfono 321 00:21:48,930 --> 00:21:52,700 está el dispositivo está conectado a una cuenta de facturación, 322 00:21:52,700 --> 00:21:55,960 y cuando las actividades ocurren en el teléfono 323 00:21:55,960 --> 00:21:58,510 puede crear cargos. 324 00:21:58,510 --> 00:22:00,700 Usted puede comprar las cosas a través del teléfono, 325 00:22:00,700 --> 00:22:04,390 y cuando se envía un mensaje de texto SMS premium en realidad estás dando dinero 326 00:22:04,390 --> 00:22:11,590 al titular de la cuenta del número de teléfono en el otro lado. 327 00:22:11,590 --> 00:22:17,420 Estos fueron creados para obtener cotizaciones de bolsa o de obtener su horóscopo diario o de otras cosas, 328 00:22:17,420 --> 00:22:21,680 pero pueden ser configurados para pedir un producto mediante el envío de un SMS de texto. 329 00:22:21,680 --> 00:22:26,970 La gente da dinero a la Cruz Roja mediante el envío de un mensaje de texto. 330 00:22:26,970 --> 00:22:30,650 Usted puede dar $ 10 de esa manera. 331 00:22:30,650 --> 00:22:34,190 >> Los agresores, lo que han hecho es que crearon 332 00:22:34,190 --> 00:22:38,750 cuentas en el extranjero, y se incrustan en el malware 333 00:22:38,750 --> 00:22:42,840 que el teléfono enviará un mensaje de texto SMS premium, 334 00:22:42,840 --> 00:22:47,700 por ejemplo, un par de veces al día, y al final del mes te das cuenta de que has gastado 335 00:22:47,700 --> 00:22:52,090 decenas o tal vez incluso cientos de dólares, y se alejan con el dinero. 336 00:22:52,090 --> 00:22:57,280 Esto llegó a tal punto que ésta era la primera cosa que el Android 337 00:22:57,280 --> 00:23:00,760 Del mercado o del lugar-que Google fue el mercado de Android en el momento, 338 00:23:00,760 --> 00:23:04,430 y ahora es Google Play-lo primero que Google comenzó comprobando. 339 00:23:04,430 --> 00:23:08,700 Cuando Google comenzó a distribuir las apps Android en su tienda de aplicaciones 340 00:23:08,700 --> 00:23:11,350 me dijeron que no iban a revisar cualquier cosa. 341 00:23:11,350 --> 00:23:15,630 Sacaremos las aplicaciones una vez que hemos sido notificados que han roto nuestros términos de servicio, 342 00:23:15,630 --> 00:23:17,520 pero nosotros no vamos a revisar cualquier cosa. 343 00:23:17,520 --> 00:23:24,350 Bueno, hace aproximadamente un año se puso tan mal con este SMS premium mensaje de texto de malware 344 00:23:24,350 --> 00:23:28,030 que esta es la primera cosa que empezaron comprobando. 345 00:23:28,030 --> 00:23:31,770 Si una aplicación puede enviar mensajes de texto SMS 346 00:23:31,770 --> 00:23:34,750 vigilaron más manualmente la aplicación. 347 00:23:34,750 --> 00:23:38,770 Buscan las API que llaman a esto, 348 00:23:38,770 --> 00:23:40,580 y ahora desde entonces Google se ha expandido, 349 00:23:40,580 --> 00:23:46,900 pero esta era la primera cosa que ellos comenzaron a buscar. 350 00:23:46,900 --> 00:23:50,690 >> Algunas otras aplicaciones que hicieron algunos de los mensajes de texto SMS, 351 00:23:50,690 --> 00:23:56,980 este Qicsomos Android, creo que se llama. 352 00:23:56,980 --> 00:24:02,670 Había un evento en curso en el móvil donde esta CarrierIQ salió 353 00:24:02,670 --> 00:24:07,720 como software espía ponen en el dispositivo por los transportistas, 354 00:24:07,720 --> 00:24:10,820 por lo que la gente quería saber si su teléfono estaba vulnerable a esto, 355 00:24:10,820 --> 00:24:13,890 y esto era una aplicación gratuita que probó eso. 356 00:24:13,890 --> 00:24:17,520 Bueno, por supuesto, lo que esta aplicación hizo fue que envió mensajes de texto SMS premium, 357 00:24:17,520 --> 00:24:20,090 así probando para ver si usted está infectado con spyware 358 00:24:20,090 --> 00:24:24,930 que ha cargado de malware en su dispositivo. 359 00:24:24,930 --> 00:24:27,310 Vimos lo mismo sucede en el último Super Bowl. 360 00:24:27,310 --> 00:24:33,180 No hubo una versión falsa del partido de fútbol Madden 361 00:24:33,180 --> 00:24:38,320 que envían mensajes de texto SMS premium. 362 00:24:38,320 --> 00:24:45,750 En realidad, trató de crear una red bot también en el dispositivo. 363 00:24:45,750 --> 00:24:48,090 Aquí tengo algunos ejemplos. 364 00:24:48,090 --> 00:24:52,640 Curiosamente, Apple era bastante inteligente, 365 00:24:52,640 --> 00:24:58,470 y que no permiten a las aplicaciones enviar mensajes de texto SMS en absoluto. 366 00:24:58,470 --> 00:25:00,350 No aplicación puede hacerlo. 367 00:25:00,350 --> 00:25:03,530 Eso es una gran manera de deshacerse de toda una clase de vulnerabilidad, 368 00:25:03,530 --> 00:25:09,040 pero en Android que puedes hacerlo, y por supuesto, en el BlackBerry puede hacerlo también. 369 00:25:09,040 --> 00:25:13,060 Es interesante que en el BlackBerry sólo necesitas permisos de Internet 370 00:25:13,060 --> 00:25:18,370 para enviar un mensaje de texto SMS. 371 00:25:18,370 --> 00:25:21,580 >> La otra cosa realmente que buscamos 372 00:25:21,580 --> 00:25:24,780 cuando estamos mirando para ver si algo es malicioso es cualquier tipo de 373 00:25:24,780 --> 00:25:28,100 actividad de red no autorizado, como mira el actividad de la red 374 00:25:28,100 --> 00:25:31,570 la aplicación se supone que tiene que tener su funcionalidad, 375 00:25:31,570 --> 00:25:35,380 y mirar a esta otra actividad de la red. 376 00:25:35,380 --> 00:25:43,380 Tal vez una aplicación, a trabajar, tiene que obtener los datos a través de HTTP, 377 00:25:43,380 --> 00:25:47,500 pero si se trata de hacer las cosas por correo electrónico o SMS o Bluetooth, o algo así 378 00:25:47,500 --> 00:25:52,890 ahora que la aplicación podría deberse malicioso, por lo que esta es otra cosa que usted puede inspeccionar. 379 00:25:52,890 --> 00:26:00,430 Y en esta diapositiva aquí tengo algunos ejemplos de ello. 380 00:26:00,430 --> 00:26:05,950 Otra cosa interesante que vimos con malware que sucedió en el 2009, 381 00:26:05,950 --> 00:26:07,600 y sucedió de una manera grande. 382 00:26:07,600 --> 00:26:11,390 No sé si ha pasado mucho desde entonces, pero era una aplicación 383 00:26:11,390 --> 00:26:15,140 que personificaron a otra aplicación. 384 00:26:15,140 --> 00:26:21,700 Había un conjunto de aplicaciones, y fue apodado el ataque 09Droid, 385 00:26:21,700 --> 00:26:29,770 y alguien decidió que había una gran cantidad de pequeños bancos, regional, de tamaño mediano 386 00:26:29,770 --> 00:26:32,260 que no tienen las aplicaciones de banca en línea, 387 00:26:32,260 --> 00:26:36,870 así que lo que hicieron fue que construyeron cerca de 50 aplicaciones de banca en línea 388 00:26:36,870 --> 00:26:39,410 que lo único que hicieron fue tomar el nombre de usuario y contraseña 389 00:26:39,410 --> 00:26:42,190 y le redirigirá a la página web. 390 00:26:42,190 --> 00:26:47,470 Y por lo que poner todos éstos en el mercado de Google, 391 00:26:47,470 --> 00:26:51,530 en el mercado Android, y cuando alguien buscado para ver si su banco 392 00:26:51,530 --> 00:26:56,000 tenido una aplicación que encontrarían la aplicación falsa, 393 00:26:56,000 --> 00:27:01,230 que recogió sus credenciales y luego les redirige a su página web. 394 00:27:01,230 --> 00:27:06,640 La forma en que este hecho se convirtió en-las aplicaciones estaban allí por un par de semanas, 395 00:27:06,640 --> 00:27:09,050 y había miles y miles de descargas. 396 00:27:09,050 --> 00:27:12,910 >> La forma en que salió a la luz fue que alguien está sufriendo un problema 397 00:27:12,910 --> 00:27:15,740 con una de las aplicaciones, y ellos llamaron a su banco, 398 00:27:15,740 --> 00:27:18,390 y llamaron a la línea de atención al cliente de su banco y le dijeron: 399 00:27:18,390 --> 00:27:21,180 "Estoy teniendo un problema con su aplicación de banca móvil". 400 00:27:21,180 --> 00:27:23,460 "¿Me puedes ayudar?" 401 00:27:23,460 --> 00:27:26,540 Y ellos dijeron: "No tenemos una aplicación de banca móvil". 402 00:27:26,540 --> 00:27:28,120 Eso comenzó la investigación. 403 00:27:28,120 --> 00:27:31,200 Ese banco llama Google, y luego Google miró y dijo: 404 00:27:31,200 --> 00:27:37,220 "Wow, el mismo autor ha escrito 50 aplicaciones bancarias", y se los llevó hacia abajo. 405 00:27:37,220 --> 00:27:43,410 Pero, ciertamente, esto podría suceder de nuevo. 406 00:27:43,410 --> 00:27:51,790 Ahí está la lista de todos los diferentes bancos aquí 407 00:27:51,790 --> 00:27:55,870 que formaban parte de esta estafa. 408 00:27:55,870 --> 00:28:02,050 La otra cosa que una aplicación puede hacer es presentar la interfaz de usuario de otra aplicación. 409 00:28:02,050 --> 00:28:06,430 Mientras se está ejecutando podría aparecer el Facebook UI. 410 00:28:06,430 --> 00:28:09,540 Se dice que usted tiene que poner su nombre de usuario y contraseña para continuar 411 00:28:09,540 --> 00:28:15,090 o poner cualquier nombre de usuario y la contraseña de la interfaz de usuario para un sitio web 412 00:28:15,090 --> 00:28:18,420 que tal vez el usuario utiliza sólo para tratar de engañar al usuario 413 00:28:18,420 --> 00:28:21,340 en poner sus credenciales pulg 414 00:28:21,340 --> 00:28:25,590 Esto es realmente un paralelo directo de los ataques de phishing de correo electrónico 415 00:28:25,590 --> 00:28:28,210 donde alguien le envía un mensaje de correo electrónico 416 00:28:28,210 --> 00:28:33,050 y le da básicamente una interfaz de usuario para un sitio web falso 417 00:28:33,050 --> 00:28:37,320 que usted tiene acceso. 418 00:28:37,320 --> 00:28:41,590 >> La otra cosa que buscamos en el código malicioso es la modificación del sistema. 419 00:28:41,590 --> 00:28:48,160 Usted puede buscar todas las llamadas a la API que requieren privilegios de root 420 00:28:48,160 --> 00:28:50,870 para ejecutar correctamente. 421 00:28:50,870 --> 00:28:56,160 Cambio de proxy web del dispositivo sería algo que una aplicación 422 00:28:56,160 --> 00:28:59,530 no debería ser capaz de hacer. 423 00:28:59,530 --> 00:29:03,030 Pero si la aplicación tiene código en allí para hacer que 424 00:29:03,030 --> 00:29:05,960 usted sabe que es probable que sea una aplicación maliciosa 425 00:29:05,960 --> 00:29:09,620 o muy altamente probable que sea una aplicación maliciosa, 426 00:29:09,620 --> 00:29:13,910 y así lo que sucedería es que la aplicación tendría alguna forma de una escalada de privilegios. 427 00:29:13,910 --> 00:29:17,200 Tendría alguna escalada de privilegios explotar 428 00:29:17,200 --> 00:29:20,730 en la aplicación y, a continuación, una vez que se intensificó privilegios 429 00:29:20,730 --> 00:29:23,800 sería hacer estas modificaciones en el sistema. 430 00:29:23,800 --> 00:29:28,010 Usted puede encontrar malware que tiene una escalada de privilegios 431 00:29:28,010 --> 00:29:32,550 en él, incluso sin saber cómo la escalada de privilegios 432 00:29:32,550 --> 00:29:37,960 explotar va a suceder, y eso es una buena manera, fácil 433 00:29:37,960 --> 00:29:41,220 buscar malware. 434 00:29:41,220 --> 00:29:46,030 DroidDream fue probablemente la más famosa pieza de malware Android. 435 00:29:46,030 --> 00:29:50,530 Creo que afectó a cerca de 250.000 usuarios en pocos días 436 00:29:50,530 --> 00:29:52,810 antes de que fuera encontrado. 437 00:29:52,810 --> 00:29:56,890 Ellos reenvasado 50 aplicaciones falsas, 438 00:29:56,890 --> 00:30:00,370 ponerlos en la tienda de aplicaciones Android, 439 00:30:00,370 --> 00:30:10,940 y, esencialmente, se utiliza el código jailbreak Android para escalar privilegios 440 00:30:10,940 --> 00:30:16,380 y luego instalar un comando y control y gire todas las víctimas 441 00:30:16,380 --> 00:30:20,690 en una red bot, pero se podría haber detectado esta 442 00:30:20,690 --> 00:30:24,170 Si estaba escaneando la aplicación y sólo en busca de 443 00:30:24,170 --> 00:30:32,230 API pide permiso a esa raíz necesario para ejecutar correctamente. 444 00:30:32,230 --> 00:30:40,150 >> Y hay un ejemplo aquí tengo que cambia el proxy, 445 00:30:40,150 --> 00:30:46,380 y esto en realidad sólo está disponible en el Android. 446 00:30:46,380 --> 00:30:49,070 Se puede ver que te estoy dando una gran cantidad de ejemplos sobre Android 447 00:30:49,070 --> 00:30:53,990 porque aquí es donde el ecosistema de malware más activo es 448 00:30:53,990 --> 00:30:58,690 porque es muy fácil para un atacante para obtener el código malicioso 449 00:30:58,690 --> 00:31:01,470 en el mercado Android. 450 00:31:01,470 --> 00:31:06,480 No es tan fácil de hacer que en el App Store de Apple 451 00:31:06,480 --> 00:31:10,250 porque Apple obliga a los desarrolladores a identificarse 452 00:31:10,250 --> 00:31:12,790 y firmar el código. 453 00:31:12,790 --> 00:31:20,340 Ellos realmente comprobar que es usted, y Apple es en realidad escudriñando las aplicaciones. 454 00:31:20,340 --> 00:31:27,450 No vemos una gran cantidad de malware de verdad en el que el dispositivo se está comprometido. 455 00:31:27,450 --> 00:31:32,250 Voy a hablar de algunos ejemplos en los que es realmente la vida privada que está siendo comprometida, 456 00:31:32,250 --> 00:31:38,460 y eso es lo que realmente está sucediendo en el dispositivo de Apple. 457 00:31:38,460 --> 00:31:44,090 Otra cosa a buscar código malicioso, el código de riesgo en los dispositivos 458 00:31:44,090 --> 00:31:50,300 es lógicas o de bombas y bombas de tiempo son probablemente 459 00:31:50,300 --> 00:31:53,370 mucho más fácil de buscar que las bombas lógicas. 460 00:31:53,370 --> 00:31:57,030 Pero con bombas de tiempo, lo que puede hacer es que se puede buscar 461 00:31:57,030 --> 00:32:04,760 lugares en el código donde se pone a prueba el tiempo o un tiempo absoluto que se busca 462 00:32:04,760 --> 00:32:08,190 antes de cierta funcionalidad en la aplicación pasa. 463 00:32:08,190 --> 00:32:14,200 Y esto se podría hacer para ocultar que la actividad del usuario, 464 00:32:14,200 --> 00:32:17,510 por lo que está sucediendo a altas horas de la noche. 465 00:32:17,510 --> 00:32:24,350 DroidDream hizo toda su actividad 11 p.m.-08 a.m. hora local 466 00:32:24,350 --> 00:32:30,650 al tratar de hacerlo, mientras que el usuario no esté utilizando su dispositivo. 467 00:32:30,650 --> 00:32:38,680 >> Otra razón para hacer esto es que si la gente está utilizando el análisis del comportamiento de una aplicación, 468 00:32:38,680 --> 00:32:43,430 ejecutar la aplicación en un entorno limitado a ver lo que el comportamiento de la aplicación es, 469 00:32:43,430 --> 00:32:51,090 pueden utilizar la lógica basada en el tiempo de hacer la actividad 470 00:32:51,090 --> 00:32:54,640 cuando la aplicación no se encuentra en la caja de arena. 471 00:32:54,640 --> 00:33:01,520 Por ejemplo, una tienda de aplicaciones como Apple 472 00:33:01,520 --> 00:33:07,940 ejecuta la aplicación, pero probablemente no se ejecutan todas las aplicaciones para, por ejemplo, 30 días 473 00:33:07,940 --> 00:33:10,550 antes de aprobarla, lo que puede poner 474 00:33:10,550 --> 00:33:14,120 la lógica de la aplicación que, dijo, está bien, sólo hacer lo malo 475 00:33:14,120 --> 00:33:20,490 después de 30 días ha pasado, o al cabo de 30 días después de la fecha de publicación de la solicitud, 476 00:33:20,490 --> 00:33:27,020 y que puede ayudar a ocultar el código malicioso de la gente inspeccionando para ello. 477 00:33:27,020 --> 00:33:30,050 Si las compañías de antivirus están funcionando las cosas en cajas de arena 478 00:33:30,050 --> 00:33:36,370 o las propias tiendas de aplicaciones son que esto puede ayudar 479 00:33:36,370 --> 00:33:39,260 ocultar que a partir de dicha inspección. 480 00:33:39,260 --> 00:33:43,020 Ahora, la otra cara de esto es que es fácil de encontrar con el análisis estático, 481 00:33:43,020 --> 00:33:46,170 lo que en realidad inspeccionar el código que puede buscar todos los lugares 482 00:33:46,170 --> 00:33:54,010 donde la aplicación comprueba el tiempo y inspeccionar de esa manera. 483 00:33:54,010 --> 00:33:58,850 Y aquí tengo algunos ejemplos de estas 3 plataformas diferentes 484 00:33:58,850 --> 00:34:05,640 cómo el tiempo se puede comprobar por el fabricante de la aplicación 485 00:34:05,640 --> 00:34:10,520 así que usted sabe qué buscar si está inspeccionando la aplicación de forma estática. 486 00:34:10,520 --> 00:34:14,570 >> Acabo de ir a través de un montón de diferentes actividades maliciosas 487 00:34:14,570 --> 00:34:18,969 que hemos visto en la naturaleza, pero que son los más frecuentes? 488 00:34:18,969 --> 00:34:23,940 Ese mismo estudio realizado en Carolina del Norte State Project Mobile Genoma 489 00:34:23,940 --> 00:34:28,560 publicado algunos datos, y existen principalmente 4 áreas 490 00:34:28,560 --> 00:34:32,850 que vieron a donde no había mucha actividad. 491 00:34:32,850 --> 00:34:35,370 37% de las aplicaciones hizo una escalada de privilegios, 492 00:34:35,370 --> 00:34:38,429 por lo que tuvieron algún tipo de código de jailbreak allí 493 00:34:38,429 --> 00:34:42,070 donde trataron de escalar privilegios para que pudieran 494 00:34:42,070 --> 00:34:48,360 Qué comandos de la API se ejecuta como sistema operativo. 495 00:34:48,360 --> 00:34:52,520 45% de las aplicaciones por ahí hizo SMS premium, 496 00:34:52,520 --> 00:34:57,260 así que es un gran porcentaje que está tratando de obtener beneficios económicos de forma directa. 497 00:34:57,260 --> 00:35:02,640 93% lo hizo de control remoto, por lo que trató de establecer una red bot, una red bot móvil. 498 00:35:02,640 --> 00:35:08,990 Y el 45% cosechado información de identificación 499 00:35:08,990 --> 00:35:16,230 como números de teléfono, UUID, localización GPS, cuentas de usuario 500 00:35:16,230 --> 00:35:22,870 y esto se suma a más de 100, porque la mayoría del malware trata de hacer algunas de estas cosas. 501 00:35:22,870 --> 00:35:27,070 >> Voy a cambiar a la segunda mitad y hablar acerca de las vulnerabilidades de código. 502 00:35:27,070 --> 00:35:29,480 Esta es la segunda parte de la actividad de riesgo. 503 00:35:29,480 --> 00:35:33,450 Aquí es donde esencialmente el desarrollador está haciendo errores. 504 00:35:33,450 --> 00:35:37,210 Un desarrollador legítimo escribir una aplicación legítima 505 00:35:37,210 --> 00:35:41,830 está cometiendo errores o es ignorante de los riesgos de la plataforma móvil. 506 00:35:41,830 --> 00:35:44,780 Ellos simplemente no saben cómo hacer que una aplicación móvil segura, 507 00:35:44,780 --> 00:35:47,700 o, a veces el desarrollador no se preocupa por poner al usuario en riesgo. 508 00:35:47,700 --> 00:35:50,850 A veces parte de su modelo de negocios podría ser 509 00:35:50,850 --> 00:35:54,610 cosechar la información personal del usuario. 510 00:35:54,610 --> 00:35:58,090 Eso es una especie de la otra categoría, y es por eso que algunos de este malicioso 511 00:35:58,090 --> 00:36:03,200 contra arranques legítimos a sangrar otra vez porque hay diferencia de opiniones 512 00:36:03,200 --> 00:36:10,440 entre lo que el usuario quiere y lo que el usuario considere riesgosa 513 00:36:10,440 --> 00:36:13,050 y lo que el desarrollador de la aplicación considera arriesgado. 514 00:36:13,050 --> 00:36:18,380 Por supuesto, no es de datos de los desarrolladores de aplicaciones en la mayoría de los casos. 515 00:36:18,380 --> 00:36:22,030 >> Y, finalmente, otra forma esto ocurre es un desarrollador podría vincular en 516 00:36:22,030 --> 00:36:28,600 una biblioteca compartida que tiene vulnerabilidades o esta conducta de riesgo en ella 517 00:36:28,600 --> 00:36:32,480 a espaldas de ellos. 518 00:36:32,480 --> 00:36:37,060 La primera categoría es la fuga de datos sensibles, 519 00:36:37,060 --> 00:36:40,030 y esto es cuando la aplicación recoge información 520 00:36:40,030 --> 00:36:44,980 como la ubicación, la información de la libreta de direcciones, información del propietario 521 00:36:44,980 --> 00:36:48,000 y envía que apagar el dispositivo. 522 00:36:48,000 --> 00:36:53,050 Y una vez que está fuera del dispositivo, no sabemos lo que está pasando con esa información. 523 00:36:53,050 --> 00:36:57,170 Podría ser almacenado de forma insegura por el desarrollador de la aplicación. 524 00:36:57,170 --> 00:37:02,070 Hemos visto los desarrolladores de aplicaciones quedan comprometidas, 525 00:37:02,070 --> 00:37:05,820 y los datos que se están almacenando es llevado. 526 00:37:05,820 --> 00:37:10,970 Esto sucedió hace unos meses a un desarrollador en Florida 527 00:37:10,970 --> 00:37:21,660 donde un gran número de-era iPad UUID y nombres de dispositivos 528 00:37:21,660 --> 00:37:25,270 se filtraron porque alguien, creo que fue en el anonimato, 529 00:37:25,270 --> 00:37:29,460 reclamado para hacer esto, irrumpieron en los servidores de este desarrollador 530 00:37:29,460 --> 00:37:34,920 y robaron millones de iPad UUID 531 00:37:34,920 --> 00:37:37,390 y los nombres de equipo. 532 00:37:37,390 --> 00:37:40,260 ¿No es la información más arriesgado, 533 00:37:40,260 --> 00:37:46,820 pero lo que si que era el almacenamiento de nombres de usuario y contraseñas 534 00:37:46,820 --> 00:37:48,170 y direcciones de domicilio? 535 00:37:48,170 --> 00:37:51,100 Hay un montón de aplicaciones que almacenan ese tipo de información. 536 00:37:51,100 --> 00:37:53,230 El riesgo está ahí. 537 00:37:53,230 --> 00:37:56,620 >> La otra cosa que puede suceder es si el desarrollador no se ocupa 538 00:37:56,620 --> 00:38:01,370 para asegurar el canal de datos, y eso es otro gran vulnerabilidad que voy a hablar, 539 00:38:01,370 --> 00:38:05,160 que los datos se envían en el claro. 540 00:38:05,160 --> 00:38:09,040 Si el usuario está en una red Wi-Fi pública 541 00:38:09,040 --> 00:38:12,330 o alguien que está oliendo el Internet en alguna parte 542 00:38:12,330 --> 00:38:19,260 a lo largo de la ruta de acceso está siendo expuesto a esos datos. 543 00:38:19,260 --> 00:38:23,790 Un caso muy famoso de esta fuga de información ocurrió con Pandora, 544 00:38:23,790 --> 00:38:27,250 y esto es algo que investigamos en Veracode. 545 00:38:27,250 --> 00:38:33,200 Nos enteramos de que había una-Creo que fue una Comisión Federal de Comercio 546 00:38:33,200 --> 00:38:35,310 investigación pasando con Pandora. 547 00:38:35,310 --> 00:38:39,830 Dijimos: "¿Qué está pasando ahí? Vamos a empezar a cavar en la aplicación de Pandora." 548 00:38:39,830 --> 00:38:46,690 Y lo que se determinó fue la aplicación Pandora recogido 549 00:38:46,690 --> 00:38:51,270 su sexo y su edad, 550 00:38:51,270 --> 00:38:56,660 y también acceder a su ubicación GPS y la aplicación de Pandora 551 00:38:56,660 --> 00:39:00,200 Hice esto por lo que dijeron eran razones legítimas. 552 00:39:00,200 --> 00:39:05,360 La música que tocaban-Pandora es una aplicación de streaming de música 553 00:39:05,360 --> 00:39:07,530 la música estaban jugando sólo fue autorizada en los Estados Unidos, 554 00:39:07,530 --> 00:39:13,020 así que tuvieron que comprobar que cumple con sus acuerdos de licencia que tenían 555 00:39:13,020 --> 00:39:17,240 para la música que el usuario estaba en los Estados Unidos. 556 00:39:17,240 --> 00:39:25,070 También querían cumplir con el asesoramiento de los padres 557 00:39:25,070 --> 00:39:33,790 alrededor de lenguaje de adultos en la música, 558 00:39:33,790 --> 00:39:37,500 y lo que es un programa voluntario, pero quería cumplir con ese 559 00:39:37,500 --> 00:39:43,010 y no jugar letras explícitas de niños de 13 años o menores. 560 00:39:43,010 --> 00:39:46,280 >> No tenían motivos legítimos para recopilar estos datos. 561 00:39:46,280 --> 00:39:49,160 Su aplicación tiene los permisos para hacerlo. 562 00:39:49,160 --> 00:39:52,000 Los usuarios pensaron que esto era legítimo. Pero, ¿qué pasó? 563 00:39:52,000 --> 00:39:55,810 Se unieron en 3 o 4 bibliotecas de anuncios diferentes. 564 00:39:55,810 --> 00:39:59,140 Ahora, de repente, todas estas bibliotecas de anuncios 565 00:39:59,140 --> 00:40:02,970 son cada vez más el acceso a la misma información. 566 00:40:02,970 --> 00:40:05,830 Las bibliotecas de anuncios, si nos fijamos en el código en las bibliotecas de anuncios 567 00:40:05,830 --> 00:40:08,430 lo que hacen es cada biblioteca anuncio dice 568 00:40:08,430 --> 00:40:11,340 "¿Mi aplicación tiene permiso para obtener la ubicación GPS?" 569 00:40:11,340 --> 00:40:14,890 "Oh, sí? Bueno, dime la ubicación GPS." 570 00:40:14,890 --> 00:40:16,620 Cada biblioteca anuncio hace eso, 571 00:40:16,620 --> 00:40:19,740 y si la aplicación no tiene permiso GPS 572 00:40:19,740 --> 00:40:23,460 no va a ser capaz de hacerlo, pero si lo hace, lo obtendrá. 573 00:40:23,460 --> 00:40:26,240 Aquí es donde el modelo de negocio de las bibliotecas de anuncios 574 00:40:26,240 --> 00:40:31,160 se opone a la privacidad del usuario. 575 00:40:31,160 --> 00:40:34,980 Y no ha habido estudios por ahí que va a decir si usted sabe la edad 576 00:40:34,980 --> 00:40:38,430 de una persona y usted sabe su ubicación 577 00:40:38,430 --> 00:40:42,530 donde dormir por la noche, porque tiene sus coordenadas GPS 578 00:40:42,530 --> 00:40:46,030 mientras que tal vez estén durmiendo, usted sabe exactamente quién es esa persona 579 00:40:46,030 --> 00:40:50,230 porque se puede determinar qué miembro de ese hogar es esa persona. 580 00:40:50,230 --> 00:40:54,780 Realmente esto es identificar a los anunciantes 581 00:40:54,780 --> 00:40:59,530 exactamente quién es usted, y se ve como si fuera legítimo. 582 00:40:59,530 --> 00:41:02,800 Sólo quiero que mi música streaming, y esta es la única manera de conseguirlo. 583 00:41:02,800 --> 00:41:05,370 >> Bueno, expusimos esto. 584 00:41:05,370 --> 00:41:08,030 Escribimos esto en varias publicaciones en el blog, 585 00:41:08,030 --> 00:41:13,280 y resultó que alguien de la revista Rolling Stone 586 00:41:13,280 --> 00:41:18,810 leer uno de nuestros mensajes de blog y escribió su propio blog en la revista Rolling Stone en ello, 587 00:41:18,810 --> 00:41:22,120 y al día siguiente Pandora pensó que era una buena idea 588 00:41:22,120 --> 00:41:27,600 para eliminar las bibliotecas de anuncios de su aplicación. 589 00:41:27,600 --> 00:41:31,270 Por lo que yo sé que son el único-que deberían ser elogiados. 590 00:41:31,270 --> 00:41:35,770 Creo que son el único tipo freemium de aplicación que se ha hecho esto. 591 00:41:35,770 --> 00:41:38,660 Todas las otras aplicaciones freemium tienen este mismo comportamiento, 592 00:41:38,660 --> 00:41:41,780 por lo que tiene que pensar en qué tipo de datos que se están dando 593 00:41:41,780 --> 00:41:48,330 estas aplicaciones freemium porque todo va a anunciantes. 594 00:41:48,330 --> 00:41:53,390 Pretoriana también hizo un estudio acerca de las bibliotecas compartidas y dijo: 595 00:41:53,390 --> 00:41:57,100 "Vamos a ver lo que comparten las bibliotecas son las bibliotecas compartidas superiores", y esto fue los datos. 596 00:41:57,100 --> 00:41:59,420 >> Analizaron 53,000 aplicaciones, 597 00:41:59,420 --> 00:42:01,900 y la biblioteca compartida número 1 era AdMob. 598 00:42:01,900 --> 00:42:06,060 En realidad, fue en el 38% de las aplicaciones que hay, 599 00:42:06,060 --> 00:42:08,800 por lo que el 38% de las aplicaciones que está utilizando 600 00:42:08,800 --> 00:42:11,250 probablemente estén capturando su información personal 601 00:42:11,250 --> 00:42:16,650 y enviarlo a las redes de anuncios. 602 00:42:16,650 --> 00:42:19,350 Apache y Android fueron del 8% y 6%, 603 00:42:19,350 --> 00:42:22,960 y entonces estos otros hacia abajo en la parte inferior, los anuncios de Google, Flurry, 604 00:42:22,960 --> 00:42:26,600 Mob City y Millennial Media, 605 00:42:26,600 --> 00:42:30,500 estas son todas las empresas de publicidad, y luego, curiosamente, 606 00:42:30,500 --> 00:42:33,500 4% relacionado en la biblioteca de Facebook 607 00:42:33,500 --> 00:42:38,870 probablemente para realizar la autenticación a través de Facebook 608 00:42:38,870 --> 00:42:40,810 por lo que la aplicación puede autenticar el Facebook. 609 00:42:40,810 --> 00:42:44,660 Pero eso también significa que la corporación Facebook controla código 610 00:42:44,660 --> 00:42:49,010 que se está ejecutando en el 4% de las aplicaciones móviles para Android por ahí, 611 00:42:49,010 --> 00:42:53,490 y tienen acceso a todos los datos de que esa aplicación tiene permiso para llegar. 612 00:42:53,490 --> 00:42:57,170 Facebook esencialmente trata de vender espacios publicitarios. 613 00:42:57,170 --> 00:43:00,120 Ese es su modelo de negocio. 614 00:43:00,120 --> 00:43:02,920 >> Si nos fijamos en todo este ecosistema con estos permisos 615 00:43:02,920 --> 00:43:07,740 y las bibliotecas compartidas de empezar a ver que 616 00:43:07,740 --> 00:43:13,850 usted tiene una gran cantidad de riesgo en una aplicación supuestamente legítimo. 617 00:43:13,850 --> 00:43:19,360 La misma cosa similar que ocurrió con Pandora 618 00:43:19,360 --> 00:43:22,340 ocurrido con una aplicación llamada Path, 619 00:43:22,340 --> 00:43:27,660 y ruta pensó que estaban siendo útiles, los desarrolladores de amistad. 620 00:43:27,660 --> 00:43:32,160 Ellos estaban tratando de darle una gran experiencia de usuario, 621 00:43:32,160 --> 00:43:37,810 y resultó que sin preguntar al usuario o indicando al usuario nada- 622 00:43:37,810 --> 00:43:40,400 y esto sucedió en el iPhone y en Android, 623 00:43:40,400 --> 00:43:44,420 Pandora aplicación estaba en iPhone y Android- 624 00:43:44,420 --> 00:43:48,890 que la aplicación Sendero estaba agarrando toda su libreta de direcciones 625 00:43:48,890 --> 00:43:52,830 y subirlo a la ruta sólo cuando instaló y ejecutó la aplicación, 626 00:43:52,830 --> 00:43:55,840 y no le dijeron nada acerca de esto. 627 00:43:55,840 --> 00:43:58,750 Ellos pensaron que era muy útil para usted 628 00:43:58,750 --> 00:44:04,040 para poder compartir con todas las personas de su libreta de direcciones 629 00:44:04,040 --> 00:44:06,920 que está utilizando la aplicación Path. 630 00:44:06,920 --> 00:44:09,490 >> Bueno, obviamente Sendero pensó que era grande para su empresa. 631 00:44:09,490 --> 00:44:13,510 No es tan bueno para el usuario. 632 00:44:13,510 --> 00:44:19,020 Hay que pensar que se trata de una cosa si tal vez un adolescente 633 00:44:19,020 --> 00:44:23,700 es el uso de esta aplicación y sus decenas de amigos están ahí, 634 00:44:23,700 --> 00:44:29,360 pero lo que si que es el CEO de una empresa que instala Sendero 635 00:44:29,360 --> 00:44:33,170 y luego, de su libreta de direcciones entera súbita es ahí arriba? 636 00:44:33,170 --> 00:44:38,310 Usted va a obtener una gran cantidad de información de contacto que puede ser valiosa 637 00:44:38,310 --> 00:44:40,920 para un montón de gente. 638 00:44:40,920 --> 00:44:44,500 Un periodista del New York Times, que podría ser capaz de ver el teléfono 639 00:44:44,500 --> 00:44:47,380 para los ex presidentes de su libreta de direcciones, 640 00:44:47,380 --> 00:44:54,780 por lo que, obviamente, una gran cantidad de información sensible se transfiere con algo como esto. 641 00:44:54,780 --> 00:44:58,090 Hubo un gran colgajo tales acerca de esto que Sendero se disculpó. 642 00:44:58,090 --> 00:45:01,610 Cambiaron su aplicación, y que incluso afectaron Apple. 643 00:45:01,610 --> 00:45:06,950 Apple dijo: "Vamos a obligar a los proveedores de aplicaciones para solicitar a los usuarios 644 00:45:06,950 --> 00:45:12,650 si van a cobrar la totalidad de su libreta de direcciones ". 645 00:45:12,650 --> 00:45:15,360 >> Parece que lo que está sucediendo aquí es 646 00:45:15,360 --> 00:45:19,430 cuando hay una gran violación de la privacidad y hace la prensa 647 00:45:19,430 --> 00:45:21,680 vemos un cambio que hay. 648 00:45:21,680 --> 00:45:23,230 Pero, por supuesto, hay otras cosas por ahí. 649 00:45:23,230 --> 00:45:27,440 La aplicación LinkedIn cosecha las entradas de calendario, 650 00:45:27,440 --> 00:45:34,530 pero Apple no lo hace se solicita al usuario acerca de eso. 651 00:45:34,530 --> 00:45:38,030 Las entradas de calendario puede tener información confidencial en ellos también. 652 00:45:38,030 --> 00:45:40,000 ¿A dónde va a trazar la línea? 653 00:45:40,000 --> 00:45:43,960 Esto es realmente una especie de lugar en evolución 654 00:45:43,960 --> 00:45:47,640 donde no hay realmente ninguna buena calidad por ahí 655 00:45:47,640 --> 00:45:51,990 para los usuarios a entender cuando la información va a estar en riesgo 656 00:45:51,990 --> 00:45:57,820 y cuando lo van a saber que está siendo tomada. 657 00:45:57,820 --> 00:46:03,040 Escribimos una aplicación en Veracode llamado Adios, 658 00:46:03,040 --> 00:46:08,350 y, esencialmente, que permitió que usted señale la aplicación en el directorio de iTunes 659 00:46:08,350 --> 00:46:12,550 y mirar todas las aplicaciones que estaban cosechando su libreta de direcciones completa. 660 00:46:12,550 --> 00:46:19,760 Y como se puede ver en esta lista aquí, Angry Birds, 661 00:46:19,760 --> 00:46:21,590 AIM, AroundMe. 662 00:46:21,590 --> 00:46:24,050 ¿Por qué Angry Birds necesitan tu libreta de direcciones? 663 00:46:24,050 --> 00:46:29,160 No sé, pero lo hace de alguna manera. 664 00:46:29,160 --> 00:46:32,310 >> Esto es algo que muchas, muchas aplicaciones hacen. 665 00:46:32,310 --> 00:46:34,780 Usted puede inspeccionar el código para esto. 666 00:46:34,780 --> 00:46:38,660 Hay APIs bien definidas para iPhone, Android y BlackBerry 667 00:46:38,660 --> 00:46:42,120 para llegar a la libreta de direcciones. 668 00:46:42,120 --> 00:46:48,520 Usted puede inspeccionar con gran facilidad para esto, y esto es lo que hicimos en nuestra aplicación Adios. 669 00:46:48,520 --> 00:46:52,320 La siguiente categoría, no seguro de almacenamiento de datos sensibles, 670 00:46:52,320 --> 00:46:55,670 es algo que los desarrolladores tienen algo así como un alfiler o un número de cuenta 671 00:46:55,670 --> 00:46:58,530 o una contraseña y guárdela en el claro en el dispositivo. 672 00:46:58,530 --> 00:47:02,310 Peor aún, podrían almacenar en un área en el teléfono 673 00:47:02,310 --> 00:47:06,820 que es accesible a nivel mundial, al igual que la tarjeta SD. 674 00:47:06,820 --> 00:47:11,320 Usted ve esto más a menudo en Android Android porque permite una tarjeta SD. 675 00:47:11,320 --> 00:47:13,200 Dispositivos iPhone no. 676 00:47:13,200 --> 00:47:17,900 Pero incluso vimos que esto suceda en una aplicación de Citigroup. 677 00:47:17,900 --> 00:47:25,450 Su aplicación de banca en línea almacena los números de cuenta de forma insegura, 678 00:47:25,450 --> 00:47:28,120 sólo en el claro, así que si usted perdió su dispositivo, 679 00:47:28,120 --> 00:47:30,670 en esencia lo que perdiste tu cuenta bancaria. 680 00:47:30,670 --> 00:47:36,000 Es por esto que yo personalmente no hago las actividades bancarias en mi iPhone. 681 00:47:36,000 --> 00:47:43,710 Creo que es demasiado arriesgado en este momento para hacer este tipo de actividades. 682 00:47:43,710 --> 00:47:45,950 >> Skype hizo lo mismo. 683 00:47:45,950 --> 00:47:49,870 Skype, por supuesto, tiene un saldo de cuenta, nombre de usuario y contraseña 684 00:47:49,870 --> 00:47:51,030 que acceder a ese equilibrio. 685 00:47:51,030 --> 00:48:00,080 Ellos estaban almacenando toda esa información en el claro en el dispositivo móvil. 686 00:48:00,080 --> 00:48:05,760 Tengo algunos ejemplos aquí de la creación de archivos 687 00:48:05,760 --> 00:48:10,310 que no tienen los permisos adecuados o escribiendo a disco 688 00:48:10,310 --> 00:48:17,260 y no tener ningún tipo de cifrado suceda para eso. 689 00:48:17,260 --> 00:48:20,190 Esta área siguiente, inseguro Sensible de transmisión de datos, 690 00:48:20,190 --> 00:48:24,450 Me he referido a esto unas cuantas veces, y porque de público Wi-Fi 691 00:48:24,450 --> 00:48:27,770 esto es algo que las aplicaciones tienen una necesidad imperiosa de hacer, 692 00:48:27,770 --> 00:48:31,250 y esto es probablemente lo que vemos salir mal la mayoría. 693 00:48:31,250 --> 00:48:34,920 Yo diría que-en realidad, creo que tengo los datos reales, 694 00:48:34,920 --> 00:48:38,120 pero está cerca de la mitad de las aplicaciones móviles 695 00:48:38,120 --> 00:48:41,780 meter la pata haciendo SSL. 696 00:48:41,780 --> 00:48:43,910 Ellos simplemente no se utilizan las APIs correctamente. 697 00:48:43,910 --> 00:48:47,970 Quiero decir, todo lo que tienes que hacer es seguir las instrucciones y usar las API, 698 00:48:47,970 --> 00:48:54,720 pero sí cosas como no comprobar si existe un certificado no válido en el otro extremo, 699 00:48:54,720 --> 00:49:02,120 No comprobar si el otro extremo está tratando de hacer un ataque rebaja protocolo. 700 00:49:02,120 --> 00:49:07,200 >> Los desarrolladores, que quieren conseguir su casilla, ¿no? 701 00:49:07,200 --> 00:49:11,910 Su requisito es usar esto para vender. Han utilizado este para vender. 702 00:49:11,910 --> 00:49:14,800 El requisito es no usar esto para vender con seguridad, 703 00:49:14,800 --> 00:49:19,680 por lo que esta es la razón por todas las aplicaciones que utilizan SSL para proteger los datos 704 00:49:19,680 --> 00:49:23,470 ya que está siendo transmitida apagar el dispositivo necesita realmente para ser inspeccionado 705 00:49:23,470 --> 00:49:28,950 para asegurarse de que se ha implementado correctamente. 706 00:49:28,950 --> 00:49:32,850 Y aquí tengo algunos ejemplos donde se puede ver una aplicación 707 00:49:32,850 --> 00:49:37,400 podría ser a través de HTTP en lugar de HTTPS. 708 00:49:37,400 --> 00:49:40,510 En algunos casos, las aplicaciones se caerán de nuevo a HTTP 709 00:49:40,510 --> 00:49:44,250 si el HTTPS no está funcionando. 710 00:49:44,250 --> 00:49:49,070 Tengo otra llamada aquí en Android donde han desactivaron el cheque certificado, 711 00:49:49,070 --> 00:49:51,700 por lo que un ataque man-in-the-middle puede suceder. 712 00:49:51,700 --> 00:49:56,370 Se aceptará un certificado no válido. 713 00:49:56,370 --> 00:50:01,920 Estos son todos los casos en que los atacantes van a ser capaz de obtener en 714 00:50:01,920 --> 00:50:07,150 la misma conexión Wi-Fi como el usuario y acceder a todos los datos 715 00:50:07,150 --> 00:50:11,650 que está siendo enviado a través de Internet. 716 00:50:11,650 --> 00:50:15,970 >> Y finalmente, la última categoría que tengo aquí es la contraseña y las teclas codificado. 717 00:50:15,970 --> 00:50:21,470 En realidad, vemos una gran cantidad de desarrolladores utilizan el mismo estilo de codificación 718 00:50:21,470 --> 00:50:25,900 que lo hicieron cuando estaban construyendo aplicaciones de servidor web, 719 00:50:25,900 --> 00:50:29,700 por lo que están construyendo una aplicación de servidor Java, y se están codificando la llave. 720 00:50:29,700 --> 00:50:31,940 Bueno, cuando usted está construyendo una aplicación de servidor, sí, 721 00:50:31,940 --> 00:50:34,240 codificar la clave no es una buena idea. 722 00:50:34,240 --> 00:50:36,290 Esto hace que sea difícil cambiar. 723 00:50:36,290 --> 00:50:40,700 Pero no es tan malo en el lado del servidor, ya que tiene acceso a la parte del servidor? 724 00:50:40,700 --> 00:50:43,140 Sólo los administradores. 725 00:50:43,140 --> 00:50:48,100 Pero si se toma el mismo código y se vierte por encima de una aplicación móvil 726 00:50:48,100 --> 00:50:52,550 ahora todo el mundo que tiene esa aplicación móvil tiene acceso a esa clave codificada, 727 00:50:52,550 --> 00:50:56,380 y que en realidad ver esto muchas veces, y tengo algunas estadísticas 728 00:50:56,380 --> 00:51:00,920 la frecuencia con la que vemos que esto suceda. 729 00:51:00,920 --> 00:51:04,940 En realidad fue en el ejemplo de código que publicó MasterCard 730 00:51:04,940 --> 00:51:06,850 sobre el uso de su servicio. 731 00:51:06,850 --> 00:51:11,860 El código de ejemplo mostró cómo usted acaba de tomar la contraseña 732 00:51:11,860 --> 00:51:14,850 y lo puso en una cadena codificada allí, 733 00:51:14,850 --> 00:51:19,380 y sabemos cómo los desarrolladores les encanta copiar y pegar fragmentos de código 734 00:51:19,380 --> 00:51:22,360 cuando están tratando de hacer algo, por lo que copiar y pegar el fragmento de código 735 00:51:22,360 --> 00:51:28,450 que ha puesto como ejemplo de código, y usted tiene una aplicación insegura. 736 00:51:28,450 --> 00:51:31,490 >> Y aquí tenemos algunos ejemplos. 737 00:51:31,490 --> 00:51:35,840 Esta primera es que vemos un montón donde retocan 738 00:51:35,840 --> 00:51:40,510 el derecho de los datos en una URL que se envía. 739 00:51:40,510 --> 00:51:45,120 A veces vemos string password = contraseña. 740 00:51:45,120 --> 00:51:49,060 Eso es muy fácil de detectar, o contraseña de serie en el BlackBerry y Android. 741 00:51:49,060 --> 00:51:53,680 En realidad es bastante fácil de detectar debido a que casi siempre 742 00:51:53,680 --> 00:51:57,030 los nombres de los desarrolladores de la variable que se sostiene la contraseña 743 00:51:57,030 --> 00:52:02,290 alguna variación de la contraseña. 744 00:52:02,290 --> 00:52:05,200 Mencioné que hacemos análisis estático en Veracode, 745 00:52:05,200 --> 00:52:11,790 por lo que hemos analizado varios cientos de aplicaciones de Android y iOS. 746 00:52:11,790 --> 00:52:15,160 Hemos construido modelos completos de ellos, y somos capaces de escanear 747 00:52:15,160 --> 00:52:19,280 para diferentes vulnerabilidades, especialmente las vulnerabilidades de las que hablaba, 748 00:52:19,280 --> 00:52:21,050 y tengo algunos datos aquí. 749 00:52:21,050 --> 00:52:24,320 68,5% de las aplicaciones de Android que vimos 750 00:52:24,320 --> 00:52:28,590 había roto el código de cifrado, 751 00:52:28,590 --> 00:52:33,240 que, para nosotros, no podemos detectar si ha realizado su propia rutina de cifrado, 752 00:52:33,240 --> 00:52:38,980 no es que eso sea una buena idea, pero esto en realidad está utilizando las API publicadas 753 00:52:38,980 --> 00:52:42,530 que están en la plataforma, pero haciendo ellos de tal manera 754 00:52:42,530 --> 00:52:46,680 que la criptografía sería vulnerable, 68.5. 755 00:52:46,680 --> 00:52:49,870 Y esto es para las personas que nos están enviando sus solicitudes en realidad porque 756 00:52:49,870 --> 00:52:53,730 ellos piensan que es una buena idea para hacer las pruebas de seguridad. 757 00:52:53,730 --> 00:52:56,960 Estos ya son personas que probablemente están pensando de forma segura, 758 00:52:56,960 --> 00:52:59,540 por lo que es probablemente aún peor. 759 00:52:59,540 --> 00:53:02,690 >> No hablé acerca de la inyección de alimentación de la línea de control. 760 00:53:02,690 --> 00:53:07,640 Es algo que vamos a comprobar, pero no es tan arriesgado un problema. 761 00:53:07,640 --> 00:53:15,390 Filtración de información, es aquí donde se están enviando datos sensibles fuera del dispositivo. 762 00:53:15,390 --> 00:53:19,270 Se encontró que en el 40% de las solicitudes. 763 00:53:19,270 --> 00:53:23,540 El tiempo y el estado, los que son cuestiones de tipo condición de carrera, por lo general muy difíciles de explotar, 764 00:53:23,540 --> 00:53:26,170 así que no me refiero a eso, sino que lo miré. 765 00:53:26,170 --> 00:53:28,750 23% tenía problemas de inyección SQL. 766 00:53:28,750 --> 00:53:32,020 Mucha gente no sabe que una gran cantidad de aplicaciones 767 00:53:32,020 --> 00:53:35,880 utilizar un poco pequeña base de datos SQL en su parte trasera para almacenar datos. 768 00:53:35,880 --> 00:53:40,430 Bueno, si los datos que usted está agarrando por la red 769 00:53:40,430 --> 00:53:43,800 tiene cadenas de ataque de inyección SQL en ella 770 00:53:43,800 --> 00:53:45,970 alguien puede poner en peligro el dispositivo a través de eso, 771 00:53:45,970 --> 00:53:49,800 y así que creo que encontrará cerca del 40% de las aplicaciones web tienen este problema, 772 00:53:49,800 --> 00:53:52,840 que es un problema enorme epidemia. 773 00:53:52,840 --> 00:53:55,740 Lo encontramos 23% de las veces en las aplicaciones móviles 774 00:53:55,740 --> 00:54:02,030 y eso es probablemente debido a que muchas más aplicaciones web utilizan SQL de móvil. 775 00:54:02,030 --> 00:54:05,580 >> Y luego todavía vemos algunas secuencias de comandos entre sitios, las cuestiones de autorización, 776 00:54:05,580 --> 00:54:09,400 y luego la administración de credenciales, que es donde usted tiene la contraseña codificada. 777 00:54:09,400 --> 00:54:14,540 En el 5% de las aplicaciones que vemos eso. 778 00:54:14,540 --> 00:54:17,970 Y luego tenemos algunos datos sobre iOS. 779 00:54:17,970 --> 00:54:20,180 81% tenía problemas de manejo de errores. 780 00:54:20,180 --> 00:54:23,130 Esto es más de un problema de la calidad del código, 781 00:54:23,130 --> 00:54:28,010 pero el 67% tenía problemas de cifrado, por lo que no es tan malo como Android. 782 00:54:28,010 --> 00:54:32,440 Tal vez las API son un poco más fácil, los códigos de ejemplo un poco mejor en iOS. 783 00:54:32,440 --> 00:54:35,420 Pero sigue siendo un porcentaje muy alto. 784 00:54:35,420 --> 00:54:39,040 Tuvimos un 54% con la fuga de información, 785 00:54:39,040 --> 00:54:42,080 aproximadamente el 30% con errores de gestión de memoria intermedia. 786 00:54:42,080 --> 00:54:45,930 Eso es los lugares donde podría ser potencialmente un problema de corrupción de memoria. 787 00:54:45,930 --> 00:54:50,350 Resulta que eso no es como mucho de un problema para la explotación 788 00:54:50,350 --> 00:54:56,450 en iOS, porque todo el código tiene que ser firmado, 789 00:54:56,450 --> 00:55:02,210 así que es difícil para un atacante para ejecutar código arbitrario en iOS. 790 00:55:02,210 --> 00:55:07,880 La calidad del código, recorrido de directorio, pero la gestión de credenciales de aquí en un 14,6%, 791 00:55:07,880 --> 00:55:09,250 por lo peor que en el Android. 792 00:55:09,250 --> 00:55:13,240 Tenemos gente no manejar contraseñas correctamente. 793 00:55:13,240 --> 00:55:15,790 Y a continuación, los errores numéricos y de desbordamiento de búfer, 794 00:55:15,790 --> 00:55:22,680 quienes están más va a haber problemas de calidad de código en iOS. 795 00:55:22,680 --> 00:55:26,110 >> Eso fue todo para mi presentación. No sé si estamos fuera de tiempo o no. 796 00:55:26,110 --> 00:55:29,540 No sé si hay alguna pregunta. 797 00:55:29,540 --> 00:55:33,220 [Hombre] Una pregunta rápida alrededor de la fragmentación y el mercado Android. 798 00:55:33,220 --> 00:55:36,240 De Apple, al menos, es propietaria de parches. 799 00:55:36,240 --> 00:55:40,780 Ellos hacen un buen trabajo de hacer las cosas por ahí mientras que en menor medida en el espacio de Android. 800 00:55:40,780 --> 00:55:44,280 Casi se necesita para hacer jailbreak a su teléfono para estar al día 801 00:55:44,280 --> 00:55:46,660 con la versión actual de Android. 802 00:55:46,660 --> 00:55:50,960 Sí, eso es un gran problema y lo que si se piensa en- 803 00:55:50,960 --> 00:55:52,280 [Hombre] ¿Por qué no te lo repita? 804 00:55:52,280 --> 00:55:55,610 >> Ah, claro, así que la pregunta era ¿qué pasa con la fragmentación 805 00:55:55,610 --> 00:56:00,410 del sistema operativo en la plataforma Android? 806 00:56:00,410 --> 00:56:05,890 ¿Cómo afecta el grado de riesgo de estos dispositivos? 807 00:56:05,890 --> 00:56:09,700 Y lo que realmente es un gran problema porque lo que ocurre es 808 00:56:09,700 --> 00:56:15,110 los dispositivos más antiguos, cuando alguien se le ocurre una fuga de la cárcel para ese dispositivo, 809 00:56:15,110 --> 00:56:19,960 en esencia, que es una escalada de privilegios, y hasta que se actualice el sistema operativo 810 00:56:19,960 --> 00:56:25,350 cualquier tipo de malware puede entonces utilizar esa vulnerabilidad para comprometer totalmente el dispositivo, 811 00:56:25,350 --> 00:56:30,200 y lo que estamos viendo en el Android es el fin de obtener un nuevo sistema operativo 812 00:56:30,200 --> 00:56:34,690 Google tiene que apagar el sistema operativo, y luego el fabricante de hardware 813 00:56:34,690 --> 00:56:39,390 tiene para personalizarlo, y luego el transportista tiene que personalizar y entregarlo. 814 00:56:39,390 --> 00:56:43,070 Usted tiene básicamente 3 piezas en movimiento aquí, 815 00:56:43,070 --> 00:56:47,210 y se está convirtiendo en que los transportistas no les importa, 816 00:56:47,210 --> 00:56:50,400 y los fabricantes de hardware no les importa, y Google no se aguijoneándolos suficiente 817 00:56:50,400 --> 00:56:54,430 para hacer cualquier cosa, lo que en esencia más de la mitad de los dispositivos por ahí 818 00:56:54,430 --> 00:57:00,590 tener sistemas operativos que tienen estas vulnerabilidades de escalada de privilegios en ellos, 819 00:57:00,590 --> 00:57:08,440 y así que si tienes el malware en su dispositivo Android es mucho más de un problema. 820 00:57:08,440 --> 00:57:10,350 >> Bien, muchas gracias. 821 00:57:10,350 --> 00:57:12,310 [Aplausos] 822 00:57:12,310 --> 00:57:14,310 [CS50.TV]