¿Qué debo buscar al auditar una extensión / complemento de Firefox?

12

Se me ha pedido que realice una auditoría de seguridad en un complemento de Firefox desarrollado por un tercero. Soy un desarrollador web con un conocimiento razonable de JavaScript, pero no soy un experto en seguridad de navegadores.

¿Qué tipo de cosas debería buscar en el código fuente que podría representar un riesgo de seguridad? Además, ¿existen herramientas efectivas para ofuscar el código fuente de la extensión del navegador?

    
pregunta codecowboy 11.03.2013 - 17:56
fuente

2 respuestas

12

IMPORTANTE : esta es en la actualidad una lista completa de las cosas que debe buscar, use esta respuesta como ejemplo, un primer paso en su camino e investigue por su cuenta. He tenido una tarea similar hace mucho tiempo. Tuve que revisar el código de seguridad de un complemento de Firefox, estoy seguro de que encontrarás fácilmente Chrome / equivalentes de otros navegadores. También tenga en cuenta que las Extensiones en Chrome se ejecutan en un Sandbox .

1. Cualquier cosa que interactúe con archivos locales:

Siempre que se cree el objeto FileUtils.File y cualquiera de sus métodos se llame

  • Verifique si el acceso al archivo local es un comportamiento documentado. ¿A qué archivos se está accediendo? ¿Por qué? ¿Se lanzaron con éxito?

  • Comprueba si se están modificando los archivos locales. ¿Es eso un comportamiento documentado? ¿Qué son los archivos modificados? ¿Por qué?

2. Cualquier cosa que interactúe con el Registro de Windows:

Cuando se crea una instancia de nsIWindowsRegKey o se llama a cualquiera de sus métodos

  • ¿El acceso al Registro de Windows es un comportamiento documentado? ¿A qué teclas se accede? ¿Por qué?

  • ¿Es la modificación del Registro de Windows un comportamiento documentado? ¿Es la modificación temporalmente? ¿Qué claves se modifican? ¿Por qué?

3. Cualquier cosa que interactúe con las cookies

Siempre que se use nsICookieService

  • ¿El acceso a las cookies es un comportamiento documentado? ¿Por qué?

  • ¿A qué dominio pertenecen estas cookies? ¿Por qué?

4. Cualquier comando ejecutado en el shell del usuario

Siempre que se cree nsIProcess y se llame a alguno de sus métodos (ver de cerca Co% Co % y .run() )

  • ¿La ejecución de comandos es un comportamiento documentado? ¿Por qué?

  • ¿Qué comandos se están ejecutando? ¿Dónde se redirige la salida?

5. Cualquier ventana / pestaña a la que se acceda

Siempre que se acceda a .launch() y / o se llame a cualquier método window ( Observe atentamente las llamadas getElement* que inyectan createElement elementos.

  • ¿El acceso al DOM de una página web es un comportamiento documentado? ¿Por qué?

  • ¿Cuáles son los elementos agregados / eliminados / modificados? ¿Por qué?

respondido por el Adi 11.03.2013 - 21:05
fuente
6

Cuando esté auditando un nuevo tipo de aplicación, debería ver los otros tipos de vulnerabilidades que se han encontrado. Una buena manera de hacerlo es buscar en la base de datos CVE. En el caso de las extensiones del navegador, debe consultar esta conversación de Defcon 17: Abusar de los complementos de Firefox . Las extensiones tienen derechos elevados y pueden ser extremadamente peligrosas.

En términos de ofuscación, cualquier ofuscador JS debería funcionar. Una extensión es solo archivos .js en un archivo.

    
respondido por el rook 11.03.2013 - 18:11
fuente

Lea otras preguntas en las etiquetas