Ran Bar-Zik, desarrollador web en AOL, ha descubierto y reportado un fallo de Google Chrome que permite a una página web grabar audio y vídeo sin que aparezca el correspondiente distintivo en la pestaña.
A pesar de que incluso los sitios web maliciosos necesitan que el usuario les conceda permisos para poder acceder al micrófono y a la cámara, el bug hallado en Google Chrome abre la puerta a la creación de mecanismos para grabar audio y/o vídeo de forma malintencionada.
Con el fin de saber qué página web está grabando audio o vídeo, Google Chrome muestra un distintivo con un círculo rojo en la pestaña correspondiente. Este círculo rojo es también un estándar utilizado para indicar que se está grabando, ya que lo podemos encontrar en muchas aplicaciones y dispositivos, incluido smartphones.
Bar-Zik descubrió el fallo mientras trabajaba en un sitio web que ejecuta código WebRTC, el cual es un protocolo para hacer streaming de audio y vídeo sobre Internet en tiempo real. Con el fin de darle más poder al usuario, el sitio web que lo implemente deberá pedir permisos para acceder a los componentes de grabación de vídeo y audio.
Una vez que el usuario haya concedido los permisos, un código JavaScript se encarga de la grabación del audio y el vídeo, los cuales son luego enviados a través de Internet a los otros participantes mediante WebRTC. La API basada en JavaScript encargada de la grabación del contenido multimedia es MediaRecorder.
¿Cómo es explotado el fallo?
Bar-Zik ha descubierto que el código que realiza la grabación no tiene por qué estar necesariamente ejecutado en la pestaña original sobre la cual se concedieron los permisos. Debido a que la concesión abarca todo el dominio y no solo la pestaña, el investigador consiguió ejecutar el código para grabar audio y vídeo sobre una ventana emergente. Chrome no muestra el icono/distintivo de grabación sobre la barra de título, por lo que el usuario puede ser grabado sin que se esté dando cuenta.
Además del fallo reportado, Bar-Zik también ha aportado una demostración benigna que permite descargar 20 segundos de audio grabado al usuario (no se almacena en ningún servidor externo) y una prueba de concepto.