Tengo que admitir que dejé de ir a charlas de seguridad hace
bastante tiempo. En su lugar, para compensar, voy a las de desarrolladores. No
nos engañemos, me encanta mi trabajo, que no es otro que desmontar pieza a
pieza lo que otros han construido. Pero también me gusta construir y, por
supuesto, si lo que levantas del suelo no es a demanda sino algo que te
propones como un reto, mayor es el aliciente. Además, mucho mejor estar cerca de mis “enemigos”
que de mis "amigos" ¿no?
Al salir de una de estas charlas me encontré con un viejo
amigo que tiene una empresa de desarrollo y hosting. Nos fuimos a saquear el
aperitivo y se nos unieron varios compañeros más. Muy pronto, la conversación
derivó en uno de los temas de moda y del que ya hemos hablado alguna que otra
vez por aquí: el cryptojacking. Aunque intenté darme a la fuga antes de que el
tema cogiese más protagonismo, mi amigo me paró en seco. “Ah!, pues aquí el
amigo, que se dedica a seguridad, nos puede dar su visión del tema.”
El tópico interesaba, y mucho, y de nada sirvieron las cinco
excusas nivel oro de mi libro de excusas para huir de ciertas situaciones
sociales (lógico, quienes me conocen saben cómo contratacarlas). Así que teníamos
por delante veinte minutos de conversación acerca de la dichosa minería. No
obstante, al final mereció la pena. Pude constatar la preocupación con la que
asumían la problemática. Me pareció interesante dar eco aquí de ciertos
aspectos.
El cambio de economía
Me comentaban qué, de los servidores atacados en sus
sistemas, normalmente accedían (un clásico) a través de una vulnerabilidad web.
Cuando antes era subir una Shell, ahora es, con alarmante diferencia, subir un
minero. No al propio servidor, que eso pega un cantazo tremendo en los
consumos, muy monitorizados, de CPU de las máquinas, sino, evidentemente, como
recurso para que se los descarguen los navegadores.
Antes, si subían un phishing o un troyano, el visitante no
se percataba del sitio donde le habían encasquetado el paquete. Eso era porque
la visita era indirecta en la mayoría de ocasionas y otras veces, por supuesto,
la infección es silenciosa y el visitante no se percataba donde “le habían
untado la tostada”.
Sin embargo, con el minado si se nota. Llega al lugar y el
ventilador se pone a fibrilar. La CPU a tope, tanto que podría calentar una
habitación en un par de horas. Entonces sí que te das cuenta donde te la están
dando. El visitante lo tiene claro, ctrl-w, pestaña cerrada y sitio del que desconfía.
La pérdida de visitas, marca, prestigio, etc, que tanto cuesta construir corre
el riesgo de irse al traste. También la inclusión de lista negra, etc.
Era curioso, como incluso en ese falso dilema de escoger
entre las “antiguas” amenazas o esta nueva moda del minado, preferían el
suplicio de tener un merodeador con una Shell o que les alojasen un troyano. Ambos casos los suelen tener, junto con el mass mailing, bastante trillados y su ventana de existencia está bastante acotada. Sobre todo, porque han ido
perfeccionando sus soluciones in-house o las de terceros.
Vectores de entrada
Todo vale en la guerra. Los métodos de entrada no suelen
variar, pero esta vez el logro no es hacerse con el sistema sino “colar” el
minero a toda costa. Escuché atentamente, aunque nada sonaba a novedoso, ellos
no hablaban de extensiones para el navegador maliciosas, minería explícita (caso
PirateBay), etc. Su punto de vista, lógico, es defender el negocio y su
preocupación quienes les visitan, la experiencia del usuario.
Los casos eran curiosos. Foros vulnerables con comentarios
que incluían scripts, cross-site scripting persistentes, funcionalidad de
user-content muy permisivas e incluso un notorio caso donde los señores
crackers habían añadido un CDN de su propia red de contenido donde, por
supuesto el usuario no descargaba precisamente versiones minimizadas del
framework de moda.
Algo curioso que les comenté era el hecho de las campañas de
anuncios con mineros. Nada nuevo bajo el sol, pero desconocían ese vector.
Curioso que les sorprendieran, aunque si recordaban el viejo truco de endiñar
un exploit a través de un, en sus tiempos, anuncio en flash (que en paz
descanse de una vez).
Posibles defensas
Apurando ya los últimos sorbos de
la copa (en realidad eran vasos con refrescos, pero copas queda mejor
literariamente), tocaba hablar de cómo te defiendes de algo así. Había unanimidad
en que andaban un poco a tientas con las soluciones. Prácticamente se usaban
los mismos enseres y técnicas que el rastreo de shells o cambios en los sitios
que con el malware o phishing. Eso si se ponía remedio, pues también
confesaron que…oh, sorpresa, no actuaban hasta que alguien les avisaba.
Hubo quien proponía inyectar
scripts para detectar y detener mineros. Mi sonrisa me delató. Eso es una
carrera de ratas recursiva, al final siempre hay un anti-anti-anti-anti…hasta
la saciedad. Tú me inyectas un script para detenerme, yo meto una rutina de
antidetección, tu detectas mi rutina que detecta tu rutina y…quien haya visto a
los hermanos Marx sabe de qué estamos hablando.
También se habló de cazar esos
scripts por la huella que dejan. Es decir, rastreo los scripts los ejecuto en
una sandbox y en base a un perfil de consumo alerto de posible minero. Si y no.
Eso puede durar lo suficiente como para que o bien procedan a detectar ese
ambiente e inhibirse (como hacen el malware cuando detecta una máquina virtual)
o simplemente el script se trocea en partes y no se activa su función principal
hasta que estás se recomponen en una sola. Incluso dudaba del perfil de consumo
como capacidad para hacer vetting de los scripts, sobre todo porque hay scripts
que sí que legítimamente requieren consumo: WebGL, generación de gráficas,
video incrustado, etc. Si bien hay capacidad y recorrido para la heurística, no
creo (el pesimismo del auditor) que sea la panacea.
¿Pero y que solución le damos?
Nos anuncian que va a dar comienzo otra
charla. Apuramos “la copa” y cogemos unos cuantos canapés sin que se notase
mucho, por si aprieta el gusanillo más tarde. Estaba ya a punto de librarme de
la pregunta que se estaba gestando minutos antes. A los 123 grados de giro de
un espectacular quiebro de cintura que ya quisieran el propio Messi o Cristiano
y dos pasos de distancia, escuché la temida interpelación: “¿Oye, pero dinos,
esto como ves que pueda solucionarse o al menos paliarse, tu que trabajas con…?”
Francamente. Habíamos estado
hablando de soluciones post infección y nadie de nosotros se había percatado de
lo obvio. “Bueno, si tienes agujeros y muchos, lo más probable es que antes o
después alguien pase por ahí y se aproveche de ellos. ¿Habéis probado a auditar
vuestra infraestructura de forma periódica o al menos implementar un desarrollo
seguro en lo que hacéis?”
Por supuesto, era una obviedad, no
se hacía, pero estaba claro que esto es como la salud. Es preferible cuidarla
antes que tener que poner soluciones cuando ya es demasiado tarde, cuando todo
es paliativo, crónico e irreversible. Ellos se llevaron un par de viejos conceptos
de seguridad, pero nuevos para ellos. Y yo me llevé la impresión de que los que
nos dedicamos a la seguridad deberíamos escucharlos más donde realmente están
los que tienen los problemas que pretendemos solucionar.
No hay comentarios:
Publicar un comentario