¿Por qué las extensiones de Chrome (y sus permisos) son el objetivo de los atacantes?

lunes, 4 de septiembre de 2017

El 5 de agosto recibimos un correo como el de la imagen más abajo. La propia Chrome Web Store reconocía que sus desarrolladores habían sido objeto de ataques de phishing. Como en ElevenPaths hemos publicado Pin Patrol, nos alertaban. Poco antes, sabíamos que dos populares extensiones CopyFish y Web Developer, con más de un millón de usuarios entre ambas habían sido alteradas con adware… probablemente porque robaron la contraseña de esta forma a los creadores. Pero veamos brevemente en esta entrada qué pasa con las extensiones, cómo funcionan y qué peligros entrañan.




CopyFish y Web Developer, dos populares extensiones, habían sido alteradas a finales de julio. Los nuevos usuarios o los que actualizasen, se encontraban con pop-ups superpuestos en sus páginas, redirecciones a webs de anucnios, etc. En resumen, el adware incrustado hasta las entrañas del navegador. Y es que las extensiones de Chrome son ideales para este fin. Tanto, que existe todo un negocio al respecto. Por las buenas o por las malas… existen tres vías principalmente.

1) El propio desarrollador crea el adware

De forma un poco sutil, para poder llegar a la tienda sin sospechas, los atacantes buscan publicar directamente extensiones que son adware. La temática puede variar. Por ejemplo, hace un par de años en ElevenPaths analizamos una campaña de extensiones que pretendían simular el popular AdBlock, pero que no eran más que redirectores a otros programas y páginas web de dudoso prestigio.

Extensiones de Adblock falsas en la Store

Desde aquí hacen spam, intentan inyectar adware, etc. Todo vale mientras Google apruebe la extensión. Crear un usuario desarrollador en WebStore solo son 5 dólares, así que merece la pena.También cabe la posibilidad de distribuirlas fuera incluso del Web Store oficial. Y esto sirve incluso para las apps que no son adware propiamente... pueden servir como método de propaganda.


El propio desarrollador de extensiones con adware las alberga fuera del market
 
2) Comprando extensiones reputadas

De nuevo, el modelo es muy parecido a lo que ocurre con las aplicaciones Android, por ejemplo. Se buscan extensiones con una buena base de usuarios que hayan realizado usuarios amateurs, y se ofrece un buen dinero al desarrollador por tomar el control de esa extensión. La mayoría, que ya no tienen tiempo de mantenerla o que no saben cómo monetizarla, ven un buen negocio para el tiempo que le han dedicado a su desarrollo. Así que acceden. Pero desde hace ya un tiempo se intuye que esto es garantía de que la extensión se convierta en adware. Existen multitud de testimonios de desarrolladores que han visto como sus decenas de miles de usuarios le recriminan haberlos finalmente infectado cuando "vendió" su creación.

Aquí, el atacante actúa con cierta cautela, poco a poco, para no perder su inversión y que sea retirada demasiado pronto la extensión (que lo será, finalmente).


Robando extensiones

Esto es lo que ha pasado en estas últimas semanas. De alguna forma han conseguido la contraseña de desarrollador de las extensiones populares y han modificado su código. Sin más, en un intento desesperado de monetizar con adware la jugada. Desesperado, porque el dueño o los usuarios alertan sobre la modificación en poco tiempo, y o bien el desarrollador legítimo o la propia Google eliminarán relativamente rápido el problema.

¿Por qué tanto interés en las extensiones?

Las extensiones de Chrome son pequeños programas que pueden modificar y mejorar las funcionalidades de Chrome. Habitualmente usan HTML, JavaScript, CSS, etc., y generalmente cuentan con una escasa interfaz de usuario, en ocasiones limitada a un icono añadido a la barra de navegación de Chrome. Todos sus ficheros suelen estar agrupados en un zip y el funcionamiento no suele depender del contenido del web, aunque puede interactuar libremente con él, alterando lo que vemos en la web, enviándolo a un tercero, tomando la decisión de hacia donde navegamos, etc. Algo muy potente y que por tanto se regula con un sistema de permisos. El último clic en el proceso de instalación está reservado para que el usuario decida si quiere dar estos permisos a la extensión.


Ejemplo de cómo se muestran los permisos de una extensión cualquiera

En el ejemplo mostrado en la imagen, autorizamos a la extensión a que lea y modifique todos los datos de los sitios web que visitemos. Las autorizaciones necesarias a las diferentes extensiones están detalladas en un fichero .json (el manifest) en el que se detallan algunas características del extensión (versión, descripción, etc.), y entre ellas los permisos. En el caso del ejemplo en la imgaen podemos ver que se traducen en:

"tabs", "browsingData", "notifications", "webRequest", "webNavigation", "http://*/", "https://*/"

O sea, acceso a las notificaciones, más todas las tabs (pestañas), los datos de navegación e incluso acceso a cualquier página http o https. ¿Cuántos permisos hay y cuáles son los más populares?

En ElevenPaths realizamos un pequeño experimento. Descargamos más de 300 extensiones de diferentes categorías y las analizamos. Más de un 20% de estas extensiones pide acceder a las pestañas y al almacenamiento. Las expresiones regulares http://* y sus variantes, indican que no tienen restricción de actuación, y que pueden aplicar estos permisos allá donde lo deseen. Menos populares son permisos como gcm, que permite acceder al sistema de mensajería en cloud del propio Google.

También nos preocupamos por el número de permisos.  

La inmensa mayoría pide menos de 15 permisos, aunque podemos observar excepciones como Free Proxy to Unblock Any Sites que pueden llegar a necesitar hasta 42 permisos. El problema es que si bien queda claro en el fichero en sí, no queda tan claro al usuario que lo está instalando.

Esto es lo que ve el usuario, pero en realidad acepta 42 permisos
En la imagen, no se muestra el manifest y los permisos reales que se están concediendo como:

 "permissions": [ "\u003Call_urls>", "tabs", "storage", "proxy", "identity", "notifications", "webRequest", "webRequestBlocking", "activeTab", "alarms", "contextMenus", "declarativeContent", "gcm", "identity", "idle", "gcm", "history", "identity", "idle", "management", "nativeMessaging", "notifications", "pageCapture", "power", "proxy", "sessions", "tabCapture", "tabs", "topSites", "webNavigation", "webRequest", "contextMenus", "webNavigation", "cookies", "unlimitedStorage", "management", "idle", "chrome://favicon/", "chrome://favicon/*", "http://*/*", "https://*/*", "background" ],

Así, el mundo de las extensiones hereda en buena parte lo que viene pasando con las apps en Android, por ejemplo. Existen fuentes oficiales y no oficiales. No podemos fiarnos de las fuentes no oficiales (fuera del market oficial), pero tampoco demasiado del oficial por varias razones:
  • Los desarrolladores legítimos son atacados y pueden perder el control.
  • Los desarrolladores con pocos escrúpulos, pueden crear o comprar y publicar extensiones con no muy buenas intenciones.
  • Los permisos son siempre un problema para el usuario que no termina de entender qué significan y qué impacto tienen.
De hecho, en una extensión con un número elevado de permisos, ni siquiera se muestran adecuadamente al usuario... algo muy parecido como decíamos al quebradero de cabeza que sufre Android para solucionar esto, y que le obligó a agrupar por permisos para intentar hacer entender al usuario qué estaba instalando... sin mucho éxito, creemos, por su parte. Desde hace bien poco (finales de agosto), Chrome ha anunciado que intentará mejorar la seguridad de las extensiones alertando de una manera más llamativa al usuario sobre la potencia de las extensiones. Aparecerá en la versión 62 de Chrome, y mostrará mensajes más visibles, por ahora si cambian la pestaña de "Home" o si se detecta tráfico "sospechoso" a través de un proxy. Insuficiente todavía, pero seguro que será mejorado en breve.  Más información aquí.

Así mostrará Chrome ciertas alertas de seguridad sobre las extensiones. Fuente: BleepingComputer.com


Aruna Prem
arunaprem.bianzino@global.11paths.com

Sergio de los Santos
ssantos@11paths.com

No hay comentarios:

Publicar un comentario