
Hola a todos!
Mi nombre es Vadim, y soy uno de los consultores técnicos y, al mismo tiempo, el administrador del sistema de RosKomSvobody .
Pero esta publicación no será sobre mí. Será una historia sobre una situación sospechosa (en términos de privacidad en el contexto de los teléfonos móviles) que encontramos recientemente.
Podría ser al estilo de "¡Aaaaaaaaa! Mira, Gran Hermano (Google) nos está siguiendo", pero intentaré hacer algún tipo de análisis y presentar hipótesis plausibles sobre por qué lo que sucedió puede suceder
Pido disculpas por adelantado si a alguien no le gusta el formato a la "revista} {akep to zero". Escribir: seré corregido.
Entonces Uno de nuestros lectores se acercó a nosotros, alegando que al ingresar a nuestro sitio (que, irónicamente, el mosaico superior de nuestra campaña contra el reconocimiento facial: BanCam se cuelga en la parte superior), la cámara frontal se activa.
El hecho es que él es el dueño de un teléfono de una nueva generación de teléfonos sin "grilletes", en el que la cámara frontal se coloca en una bandeja separada "saliente". Lo que, de hecho, se va al acceder a la cámara.
Como probablemente haya adivinado, mis primeros pensamientos fueron sospechas de que estábamos de algún modo milagrosamente, a pesar de todos los "mecanismos de seguridad" que estaba construyendo, aún pirateados y "construidos".
Sin embargo, la investigación reveló que todo está en orden con nuestro sitio.
Después de llevar a cabo la investigación antes mencionada y discutir sus hallazgos en el chat técnico de RosKomSvoboda, recordé que ya había encontrado en varios foros en Internet que el troyano "se deslizó" a través de redes de pancartas (al abrir el foro desde un teléfono Android) paquetes apk (aparentemente, con la esperanza de que el usuario los instale, pensando que este es el cliente oficial de este foro).
Después de pensar en esta idea, sugerí intentar verificar los "rastreadores" que estaban en la lista de permitidos (este lector usa Firefox y el complemento uBlock instalado en él).
Un par de horas de experimentos mostraron que la cámara deja de moverse si bloquea el acceso al dominio google.com
. Además, en algún lugar al mismo tiempo, este usuario dijo que esta situación también se está reproduciendo en el kod.ru
web kod.ru
(antes de eso trabajamos con la versión "solo con nosotros").
Tras profundizar un poco más en las excavaciones, descubrí que las solicitudes a google.com
provocan no solo los rastreadores de Google (también conocidos como "análisis"), sino incluso la "incrustación" habitual de videos de YouTube en una página. La reproducibilidad de la salida de la cámara en kod.ru
también cayó en esta teoría (como resultó, también había un video de YouTube en la página probada).
Para confirmar aún más esta teoría, busqué en Google una publicación aleatoria en el blog sobre "cómo insertar un video de YouTube en un blog, una instrucción de video" con un video incorporado, y la situación también se reprodujo en él.
Entonces Bueno Por el momento, tenemos esa información en nuestras manos: la presencia de un video de YouTube incorporado en la página desencadena la carga de algunos scripts de google.com
y, a su vez, desencadena la salida de la cámara.
Ok, busca más.
Hojeando las herramientas de depuración del navegador, descubrí que un extraño y terriblemente ofuscado (tanto que ninguno de los desobfuscadores que probé de los resultados de búsqueda podía cargar) cargado desde www.google.com
(es decir, www
) cargado, incluso con un nombre y eso ofuscado (conociendo Google, puedo suponer que después de un tiempo este script desaparecerá, y en su lugar se colocará un script con un nombre diferente (pero igualmente ilegible). Entonces, aquí está su código , por si acaso).
Un vistazo rápido al guión no muestra ninguna referencia a la cámara aquí, y no hay tiempo ni oportunidad para profundizar aún más en la depuración e interpretar lo que hace allí (aunque si alguno de ustedes, lectores, lo puede hacer, puede hacerlo).
Intentamos ingresar desde el otro lado:
Personalmente, tengo un teléfono sin cámara de salida, por lo que es tan fácil captar un atractivo para ella que no puedo. Pero puedo conectarlo a través de USB y hacer adb logcat | grep -C5 camer
adb logcat | grep -C5 camer
( grep
, porque de lo contrario hay demasiada basura irrelevante para cada estornudo, como tocar la pantalla con el dedo o mover el teléfono en el espacio). ¿Qué estoy haciendo realmente ...
Entonces, el intento número uno: voy a los sitios probados y ... ¡nada!
El pensamiento se arrastra, que el problema parece, después de todo, en algún lado del lado del usuario.
En paralelo con este proceso, estamos discutiendo la situación en el chat técnico antes mencionado de RosKomSvobody. Después de un tiempo, uno de los participantes recibió la opinión de que, según dicen, los navegadores móviles son astutos: no siempre solicitan derechos de acceso global a la cámara, y si no se les otorga, ¡en algunos casos pueden no pedir!
Voy a la configuración de la aplicación y veo que sí, no he establecido permisos para la cámara para Firefox. Lo enciendo, lo reviso nuevamente y veo una hoja para un par de "pantallas" con lo siguiente:

Si! Apelar a la cámara, entonces todavía hay!
Además, inmediatamente después de la línea con "obtener información del dispositivo" hay una apertura explícita del dispositivo de la cámara:
12-12 17:10:14.734 751 6924 I QCamera : <HAL><INFO> int qcamera::QCamera2Factory::cameraDeviceOpen(int, struct hw_device_t **): 405: Open camera id 0 API version 256
Compruebo lo mismo con Chrome, y todo se reproduce: si se quitan los derechos de la cámara, luego en el registro "silencio de los corderos", y si se emiten, aparece la misma hoja de acceso a la cámara con la tapa de leche de azafrán.
Entonces el problema es:
a) no local para el usuario,
b) no es específico del navegador.
Curiosamente, durante todos estos eventos, ninguno de estos navegadores intentó decir una palabra acerca de solicitar permiso para acceder a la cámara desde cualquier sitio que participe en la prueba (y, de hecho, también de YouTube y google.com
).
A la luz de lo anterior, me nacieron dos hipótesis:
- O Gran Hermano, sin embargo, te está mirando, o
- esa secuencia de comandos horriblemente ofuscada en realidad llama a alguna parte de la API de la cámara en los navegadores para identificar al usuario, pero no accede directamente a la cámara. Por lo tanto, no hay ninguna solicitud de acceso (sin embargo, si mira el video al comienzo del artículo, puede ver cómo parpadea el LED entre abrir y cerrar la cámara, lo que lo hace pensar).
Sin embargo, los navegadores se adhieren a la lógica aquí: "al inicializar la API de la cámara, si no hay acceso a la cámara, entonces no hacemos nada (ni siquiera lo solicitamos hasta que haya una necesidad real), y si lo hay, inicializamos las cámaras y verificamos qué dispositivos tenemos allí y qué pueden "(para lo cual, aparentemente, el dispositivo es" descubierto ").
Al parecer, el proveedor de telefonía del usuario no profundizó en la invención de las muletas de software sobre la cámara y resolvió el problema simplemente (por lo que él, por cierto, respeta): cuando accede a la cámara, ella se va. Cuando abre el dispositivo e intercambia datos con él, el diodo parpadea.
En total, resulta que el problema no es tan fatal como parecía al principio, y, con suerte, nadie toma fotografías (aunque esto, sin embargo, todavía "no es preciso", porque mi competencia para saber Los códigos fuente de Android no son suficientes para garantizar inequívocamente en cuyo caso la hoja de llamadas a la cámara en logcat habla sobre la imagen tomada y en qué, solo sobre las conversaciones seculares de la aplicación con el dispositivo).
Sin embargo, sin embargo, el hecho de que abrir cualquier página web en la que haya un iframe con un video incorporado de YouTube provoque una llamada a la cámara (e incluso algún tipo de negociaciones con el dispositivo) sigue siendo bastante triste en el contexto de la privacidad. y me parece que todavía vale la pena la discusión de la comunidad.
Que piensas
PD: en inglés, esta publicación se publicó en Medium .
UPD : gracias a los habrachianos berez y ksil por un paquete de correcciones ortográficas (de lo contrario, cuando lees y reescribes diferentes textos, como siempre, "corrigiendo algunos errores, trajiste un montón de otros")