Malware multiplataforma vía extensiones de Firefox

Transcripción

Malware multiplataforma vía extensiones de Firefox
Emiliano Martínez Contreras
[email protected]
Hispasec Sistemas
www.hispasec.com
Malware multiplataforma
vía extensiones de Firefox
ACLARACIÓN
ACLARACIÓNINICIAL
INICIAL
● Esta
presentación
corresponde
a
una
charla
● Esta
presentación corresponde a una charla eminentemente
eminentemente práctica.
práctica. Las
Las
transparencias
no
pretenden
ser
ningún
apoyo
teórico
para
la
charla,
sino
transparencias no pretenden ser ningún apoyo teórico para la charla, sino un
un
medio
para
transmitir
ideas.
Seguir
los
conceptos
y
las
explicaciones
de
la
charla
medio para transmitir ideas. Seguir los conceptos y las explicaciones de la charla
exclusivamente
exclusivamentecon
conestas
estastransparencias
transparenciases
esinútil.
inútil.
● Si no ha asistido a la charla podrá encontrar la grabación de ésta en el canal de
● Si no ha asistido a la charla podrá encontrar la grabación de ésta en el canal de
Youtube
Youtubede
delalaUniversidad
UniversidadPolitécnica
Politécnicade
deMadrid.
Madrid.
15 años atrás...
atrás..
Motivaciones:
● Fama
● Medio para aprender/investigar
Fauna y flora:
Virus infectores, primeros troyanos de puerta
trasera, gusanos, etc.
A día de hoy...
Motivación:
● Lucro, lucro, lucro
Fauna y flora:
Extorsion DdoS, extorsión ransomware,
troyanos bancarios, adware, fake antivirus, etc.
Mr. Burns
CEO Burns Ltd.
Producción energía
Un negocio muy rentable
Vida
Vidaen
enabundancia
abundancia
Caprichos exquisitos
Esclavos a su servicio
Chicas de moral distraida
¿Cómo pagaba por ello?
Tarjeta de coordenadas
Demo sistema limpio
Pajaritos cantando...
violines tocando
Ni un duro
Demo infección
Al menos 3
mitos rotos...
Linux no se infecta...
Windows caca
Usa Firefox...
Internet Explorer == coladero
Candadito ==
Totalmente seguro
¿Cómo
demonios...?
Atacar la aplicación
multiplataforma/multi-os
(analogía con máquina virtual de Java)
Arquitectura conceptual
navegador genérico
Motor
Motor de
de navegación
navegación
Motor
Motor de
de renderización
renderización
Gestor
Gestor
de
dered
red
Intérprete
Intérprete
JavaScript
JavaScript
Parser
Parser
XML
XML
Persistencia
Persistencia
Interfaz
Interfaz de
de usuario
usuario
Backend
Backendde
de
visualización
visualización
Arquitectura conceptual de Firefox
Interfaz de Usuario (XPToolkit) (I)
Interfaz de Usuario (XPToolkit) (II)
Demo: Live XUL Editor
Motor de navegación y
renderización (Gecko)
Algo falla...
¿Y cómo llamo desde JS?
Creando un directorio...
Creamos un directorio llamado DIR en el
directorio perfil del usuario:
●
var file =
Components.classes["@mozilla.org/file/directory_service;1"].
getService(Components.interfaces.nsIProperties).
get("ProfD", Components.interfaces.nsIFile);
file.append("DIR");
if( !file.exists() || !file.isDirectory() ) {
// if it doesn't exist, create
file.create(Components.interfaces.nsIFile.DIRECTORY_TYPE,
0777);
}
Más simple...
Capa presentación: colores, tamaños, fuentes, etc.
Controla todas partes, efectos dinámicos...
Controla estructura
Caja negra para tareas
especializadas: acceso a
ficheros, creación
ficheros, etc.
Análogo a una aplicación web
Estructura
Control
Tareas
especializadas
Extensiones para
ampliar
funcionalidad
Entresijos de una extensión
●
Paquetes XPI (cross platform installer)...
archivos comprimidos en formato ZIP con una
determinada estructura de ficheros.
Install.rdf
Install.rdf
Chrome.manifest
Chrome.manifest
Content/*
Content/*
[…
[… otros
otros dirs
dirs ...]
...]
Directivas y
parámetros de
instalación
Archivos JS y XUL
que implementan el
comportamiento de
la extensión
Otros directorios
para soporte de
idiomas, skins,
parámetros por
defecto, etc.
Similar a diseño por capas
●
Capa superior puede modificar capas inferiores
y ciertas capas intrínsecas del navegador.
Disección de nuestra
extensión maliciosa
Dentro de FireInject...
●
Chrome.manifest
●
Browser Overlay
●
Sólo carga JavaScript malicioso, no hay cambios
estructurales del navegador
●
BrowserOverlay.js
●
Registra una callback para cada carga visita de
Instalación y llegada al sistema
●
Paquete XPI, instalación voluntaria desde
navegador, e.j. VTzilla.
●
Paquete XPI, copiar a carpeta
●
Paquete XPI, nombrar extensión como
extensión ya instalada y sustituir en
●
Actualizaciones maliciosas desde una fuente
previamente fiable (posibilidad MITM).
●
Instalación tras explotación de vulnerabilidades.
Consideraciones de seguridad (I)
●
Firefox confía plenamente en el código de las extensiones.
●
No hay barreras de seguridad entre extensiones en un mismo
perfil.
●
No hay políticas de seguridad/permisos a la hora de acceder a
la API de Firefox, XPCOM, etc.
●
No hay comprobación de integridad a la hora de cargar
extensiones ya instaladas (e.j. podemos sustituir con código
malicioso).
●
Versiones antigüas de Firefox se podía instalar sin ningún tipo
de aviso.
●
Múltiples mecanismos para ocultar que la extensión está
instalada.
Consideraciones de seguridad (II)
●
No se requiere ser root/administrador para instalar la extensión.
●
El código de la extensión se ejecuta en el contexto del proceso
del navegador.
●
El navegador es el que realiza las peticiones HTTP para
comunicación con su C&C.
●
Las extensiones tienen acceso no restringido al DOM de las
páginas visualizadas.
●
El código es completamente multiplataforma.
●
A través de XPCOM se puede acceder a otros recursos del
sistema: sitema ficheros, Registro (Windows), etc.
●
La firma de extensiones (software en general) tan sólo
garantiza que alguien ha pagado por un certificado, no
suministra ninguna garantía respecto al comportamiento de la
extensión.
¿Qué más podemos
hacer?
DEMO
ACLARACIÓN
ACLARACIÓNFINAL
FINAL
Tal
Tal yy como
como ya
ya se
se ha
ha mencionado
mencionado en
en las
las aclaraciones
aclaraciones iniciales
iniciales de
de este
este documento,
documento, dado
dado elel
carácter
carácter eminentemente
eminentemente práctico
práctico de
de lala charla,
charla, este
este documento
documento sirve
sirve de
de poco
poco sin
sin haber
haber estado
estado
presente
en
ella.
presente en ella.
Durante
Durante lala charla
charla se
se hacen
hacen una
una serie
serie de
de demostraciones
demostraciones que
que no
no quedan
quedan recogidas
recogidas en
en estas
estas
transparencias:
transparencias:
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
Transparencia
Transparencia15
15––Acceso
Accesoaaportal
portalde
debanca
bancaelectrónica
electrónicadesde
desdeLinux+Firefox
Linux+Firefoxprevia
previainfección.
infección.
Transparencia
19
–
Acceso
a
página
que
simula
ser
vídeo
pornográfico
para
distribuir
Transparencia 19 – Acceso a página que simula ser vídeo pornográfico para distribuirun
unfalso
falso
codec
(extensión
de
Firefox
maliciosa)
e
infectar
el
sistema.
Acceso
a
banca
electrónica
codec (extensión de Firefox maliciosa) e infectar el sistema. Acceso a banca electrónicacon
con
sistema
infectado
para
mostrar
como
se
solicita
la
tarjeta
de
coordenadas
y
se
capturan
todas
sistema infectado para mostrar como se solicita la tarjeta de coordenadas y se capturan todas
las
lascredenciales
credencialespersonales.
personales.
Transparencia
26
Transparencia 26––Se
Semuestra
muestracódigo
códigofuente
fuentede
depágina
páginaweb.
web.
Transparencia
30
–
Se
usa
la
extensión
Developer
Assitant
Transparencia 30 – Se usa la extensión Developer Assitantpara
paraexplicar
explicarXUL
XULyymostrar
mostrarcomo
como
se
renderiza.
Se
muestra
la
estructura
de
directorios
de
Firefox
y
se
toca
su
código
fuente
se renderiza. Se muestra la estructura de directorios de Firefox y se toca su código fuentepara
para
demostrar
el
impacto
visual
de
las
modificaciones.
demostrar el impacto visual de las modificaciones.
Transparencia
Transparencia40
40––Se
Seestudia
estudiaelelcódigo
códigofuente
fuentede
delalaextensión
extensiónmaliciosa
maliciosapresentada
presentadadurante
durante
lalacharla.
charla.
Transparencia
Transparencia43
43––Se
Sedemuestran
demuestrancada
cadauno
unode
delos
losmecanismos
mecanismosde
deinstalación
instalaciónreseñados
reseñadosen
en
lalatransparencia.
transparencia.
Transparencia
Transparencia 46
46 –– Se
Se muestran
muestran otras
otras cosas
cosas que
que se
se pueden
pueden hacer
hacer con
con lala extensiones
extensiones
maliciosas:
otras
inyecciones
en
páginas
de
banca
electrónica,
captura
de
credenciales
maliciosas: otras inyecciones en páginas de banca electrónica, captura de credenciales en
en
facebook,
etc.
facebook, etc.
Transparencia
Transparencia47
47––Se
Sedemuestra
demuestracomo
comosería
seríaposible
posibleconseguir
conseguircomprometer
comprometerelelsistema
sistemapor
por
completo
(privilegios
root)
usando
la
extensión
maliciosa.
completo (privilegios root) usando la extensión maliciosa.

Documentos relacionados