This graph shows how many times the word ______ has been mentioned throughout the history of the program.
Sabéis que expusimos el tema de una extensión de Visual Studio Code
que te podían atacar muy fácilmente, ¿no?
En esta noticia, lo comentaban,
de cómo habían hackeado una empresa multimillonaria en 30 minutos
utilizando una extensión falsa de Visual Studio Code,
el Darkula esta, ¿no?
Que hicieron y aquí lo explicaron todo,
te comentaban todos los desarrolladores que habían hackeado,
cómo habían hackeado el Marketplace,
copiándose una extensión súper fácilmente,
cómo aquí teníamos incluso el ataque,
cómo era el ataque, que era enviar información a una API, ¿ves?
Y aquí podías ver la primera víctima que tuvieron,
bueno, bueno, o sea, cómo lo hicieron paso a paso,
pues lo tenemos por aquí.
Pues además de esto, además de esto,
ahora han hecho un segundo post, un segundo artículo
exponiendo extensiones malignas, maliciosas,
que ya existen, las estadísticas,
porque quizás estás utilizando una extensión
que no tenías ni idea, pero resulta que está infectada
y cuando veas las estadísticas te sorprenderá.
Porque, amigos, aquí lo tenemos.
Tenemos aquí algunos datos.
Dice aquí algunos datos básicos.
Hay 60.000 extensiones de 45.000 publishers diferentes,
donde sólo 1.800, ¿vale?
O sea, fíjate la idea.
Sólo han verificado de todas esas 1.800.
Los datos te sorprenderán.
Han tenido de estas 60.000 extensiones
3.300 millones de instalaciones.
Claro, porque una cosa son todas las extensiones que hay,
pero 3.300.000 millones de instalaciones.
Es que 3.300.000 millones de instalaciones.
Una pasada, ¿eh?
Bueno, pues pone.
¿Cómo está funcionando el tema de las estadísticas?
Bueno, aquí te dice un poco cómo sería la extensión,
cómo funcionaría el ataque.
Por ejemplo, un ataque muy fácil que podríamos tener
es que una extensión utilice una dependencia que está mal.
Dice, las extensiones en Visual Studio Code
no están sandboxed.
¿Qué significa sandboxed?
Este término muy interesante en el mundo de la programación
porque sandboxed es una caja de arena, que se le diría, ¿no?
¿Por qué se le llama caja de arena?
Porque lo que haces es ejecutar código en un sandbox,
en esa caja de arena,
como para ponerlo de forma totalmente separada
al proceso que sí que es crítico
o donde estarían los permisos
que no debería tener la extensión.
Entonces tú lo que haces es ejecutarlas en un entorno seguro,
haces lo que tengas que hacer
y devuelves la información.
Pero evitas así que esa extensión tenga acceso
a todo el editor, a la máquina del usuario y todo esto.
Lo que estamos haciendo con esto básicamente
es aislar ese código que puede ser potencialmente malicioso
de las posibilidades de acceder al ordenador y todo esto.
Por eso dice que las extensiones no están sandboxes, ¿vale?
Ahí lo tenemos.
Entonces, ¿qué dice por aquí?
Venga, vamos con lo que han encontrado.
¿Cuántas habían hecho?
Habían hecho 1.800 extensiones.
De las 1.800 extensiones que han estado revisando,
ojo, 1.283 extensiones incluyen dependencias maliciosas
que tienen un total de 229 millones de instalaciones.
87 extensiones han intentado leer el archivo etc. barra password.
Un archivo de tu sistema de archivos
que tiene bastantes passwords de tu sistema.
O sea, 87.
8.000 extensiones comunican con IPs hardcodeadas
desde código JavaScript.
1.452 están ejecutando binarios desconocidos
o DLL, o sea, bibliotecas, que están en el sistema.
267 extensiones tienen secretos hardcodeados
metidos en su propio código.
Y 145 extensiones con su código y sus recursos
han sido flaggeados o detectados con bastante confianza
por el programa Virus Total.
2.300 que son extensiones copiadas.
2.300 que son extensiones copiadas.
Y encima también 780 extensiones que han sido encontradas
que están utilizando modelos third party
como parte de su funcionalidad.
Claro, esto puede ser un poco problema
para algunas empresas
que el hecho de utilizar inteligencia artificial
pueda ser algún problema en tema de licencias.
O sea, que dice que un 5%.
Ahora entiendo mejor los números
porque aquí decían...
Claro, había entendido que verificado.
Esto no es verificado.
Lo que han dicho es que han chequeado las 60.000.
Y de esas 60.000,
solo 1.800 son verificadas.
¿Qué son verificadas?
Vale, ahora lo he entendido
porque digo, ¿qué es esto de verificado?
Lo de verificado es lo que os comenté yo el otro día.
No sé si veis este check aquí al lado de Microsoft.
Este verificado no significa
que haya sido verificado por Visual Studio Code
o que sean verificadas por alguien.
Esto lo único que quiere decir, este check,
es que este dominio ha sido enlazado con esta extensión.
O sea, tened cuidado con este verificado
porque lo único que quiere decir
es que esta extensión tiene un dominio propio.
Punto pelota.
Ya está.
Eso es lo que significa.
O sea, cuidado con esto
porque no quiere decir que realmente alguien ha mirado aquí
si había algún tipo de usuario real y tal.
Cualquiera lo puede tener.
De hecho, la que está, mira,
esta pues lo tiene sin ningún problema.
Lo único que necesitas es un dominio
y ya lo tendrías, ¿vale?
Entonces, cuando pone aquí que son verificado,
tened cuidado porque no quiere decir que sean verificados.
Entonces, de las 60.000 extensiones,
tendríamos estos datos, ¿vale?
Que 1.283 de las 60.000 tienen código malicioso.
87 han intentado leer el password, todo esto, ¿vale?
8.000 ha intentado comunicarse con una dirección de IP,
que antes os lo he dicho mal y ya está.
O sea, que no es verificado de verdad.
No es verificado de verdad.
Simplemente es que están enlazados a un dominio.
El dominio puede ser cualquiera, ya está, ¿eh?
O sea, es así de claro.
Porque al final tú puedes poner ahí el nombre
que más o menos te dé la gana.
Por ejemplo, con lo de Darkula pasó.
Esta de Darkula, que lo vimos aquí,
fijaos que estaba verificada.
¿Veis?
Está verificada.
Aunque pone ahí que está verificada.
No se ve muy bien porque está muy chiquitito.
Lo pongo un poquito más grande.
Pero veis que está verificada y está verificada
porque tiene un dominio.
Punto.
Ya está.
No tiene otra sitio.
No tiene otra cosa, ¿vale?
O sea, que no fíen nunca de que una extensión
esté verificada y ya está.
Ahí tenéis un poquito los datos.
Mira aquí, Microsoft.
Dice, ya puedes ver por los números,
con todas estas extensiones,
suponen un riesgo a las organizaciones
donde está utilizando Visual Studio Code.
Las extensiones están siendo abusadas
y expuestas como un vertical de ataque
con cero visibilidad, mucho impacto
y mucho riesgo.
La verdad, sinceramente, es que van a tener...
Yo creo que Visual Studio Code
o la gente de Microsoft
van a tener que hacer algo al respecto.
Porque ahora que encima se ha expuesto
y de hecho han hecho otro artículo
con una carta abierta a Microsoft
respecto a esto de las extensiones,
¿qué problema hay con esto?
Es que hay mil millones de problemas.
Por ejemplo, uno,
el tema de tener autoactualizaciones.
No sé si vosotros lo tenéis.
Yo sí que lo tengo.
Pero las extensiones se actualizan automáticamente.
¿Cuál es el problema de esto?
El problema es que a lo mejor una extensión
a día de hoy no hay ningún problema
con esa extensión
porque funciona perfectamente.
Pero ya sea que esa extensión
la venden a una tercera persona,
a otra empresa maliciosa
o que atacan el repositorio
de esa extensión
y entonces de repente
hay millones de usuarios
infectados por todo el mundo
sin hacer nada.
Bueno, ¿por qué?
Porque claro,
como tienes autoactualización,
yo creo que aquí
lo que va a tener que hacer Microsoft
no va a ser,
porque alguien dirá,
Microsoft que se ponga a revisar
todas las extensiones.
Yo creo que no va a tener que ser tan así.
Yo creo que lo que van a necesitar
hacer desde Microsoft
va a ser cerrar las extensiones.
O sea, hacer que las extensiones
no puedan tener acceso,
por ejemplo,
a crear un proceso hijo,
que eso lo puede hacer ahora.
O poder ejecutar llamadas al sistema,
que lo puede hacer ahora.
O importar cualquier paquete de Node.js,
que se puede hacer ahora.
Claro, esto al final
es muy abierto
y es un riesgo brutal.
Entonces,
o que implemente un verificado real.
Puede ser,
pero un verificado real
significa trabajo manual.
Trabajo manual
significa dinero.
Y entonces,
ahí a lo mejor
puede ser
que puedas pedir
pagando
un verificado real,
un certificado.
Puede ser.
Pero bueno,
yo creo que eso es una cosa
que van a tener que mirar.
Claro,
fijaos aquí.
Aquí tenemos este problema, ¿no?
Darkula.
Fijaos,
tenéis aquí el oficial.
El oficial,
entre comillas,
que porque ponga que es oficial
no significa que es oficial.
Fijaos que solo tiene
mil instalaciones
y este que no está verificado
y que no pone que es oficial
es el oficial
que tiene 714 mil descargas ya.
Las otras han salido después,
¿sabes?
O sea,
tiene un poquito de peligro, ¿no?
Encima lo metió en trending.
Claro,
¿por qué?
Y esto es muy interesante
también como vector de ataque
como comenta aquí, ¿no?
Dice,
una de las formas
en las que conseguimos
tener tracción
en la extensión que creamos
para investigación,
para atacar
a editores de Visual Studio Code
fue que,
claro,
no sabía cómo elegía
las extensiones
que estaban en tendencia,
pero casi todas las que se muestran
tienen muy poquitas descargas,
como yo que sé,
es que si os fijáis,
las que aparecen aquí
tienen 550,
119,
100,
120.
Entonces,
entonces dicen,
no lo tenía muy claro,
entonces lo que verificamos
es que creamos
un archivo docker
que instalaba la extensión
y ejecutaba esto
en un loop
y que se iban incrementando
el número de instalaciones
de la extensión.
O sea,
que podían hacer
un install bomb,
o sea,
podían falsificar
las estadísticas
conforme realmente
lo estuviese utilizando
mucho más gente
cuando no era real.
O sea,
mira,
llegaron a la portada
súper fácil,
164 instalaciones
que en realidad
eran todas de mentira,
simplemente haciendo
un archivo docker
que simulaba
que se estaban instalando
constantemente.
Así que,
bueno,
aquí está la carta abierta
que le han hecho
y a ver,
a ver cómo queda,
a ver cómo queda la cosa.
Lo cierto
es que todo esto
que estamos viendo
en realidad
es que ha sido
para vender un producto.
O sea,
esta gente
han hecho
toda esta investigación
y todo esto
para vender un producto,
lo cual,
bien por ellos,
porque al final
he encontrado
un problema real,
pero bueno,
que al final dices,
¿qué?
Plot twist.
Y es que están metiendo
extensión total
que te dice
los riesgos
que tienen las extensiones.
No sé realmente
si,
a ver,
no sé si es que instala,
claro,
es que da miedo,
da miedo porque dices,
hostia,
no sé si la quiero instalar,
pero aquí lo que se supone
que podrías hacer,
ves,
puedes añadir la extensión
en Visual Studio Code.
Bueno,
amigos,
yo me sacrifico
por todos vosotros,
puede ser que esta extensión
me vaya a hacer
hasta un estudio anal,
pero la voy a añadir
por todos ustedes
para ver
qué me dice
de mis extensiones.
Vamos a verlo,
pero vamos a probarla.
Venga,
instalar.
¡Ah!
¡Hackeado!
¡Hackeado!
Ya está,
estoy hackeado.
No he aprendido nada,
tantos vídeos,
tantas historias.
Vale,
¿y ahora qué?
Ah, mira,
está ejecutando un escaneo,
está ejecutando un escaneo
entre estas extensiones,
vamos a ver.
Es gratuita,
pero me imagino
que esto poco a poco
lo harán de pago,
le irán sacando cosas.
Si no la queréis instalar,
que sepáis que aquí
podéis buscar,
por ejemplo,
podéis buscar Darkula
y esto tiene una página web
que te dice también,
ves,
riesgo alto
y te dice todos los problemas
que han encontrado.
O sea,
que si queréis saber
todas las extensiones
que estáis utilizando
y qué problemas podéis tener,
pues que sepáis
que las podéis buscar aquí,
lo podéis mirar
y ya está.
Te dice si recolecta
información vuestra,
si tiene vulnerabilidades,
mira,
muestra todo el código,
esto está bastante chulo,
las dependencias,
bueno,
vamos a ver lo que me dice
de esta,
vale,
tengo el scan,
sí,
sí,
tengo el scan,
pero no me dices
dónde está el scan,
a ver,
dónde está mi scan,
vale,
finish scan,
vale,
origen,
vale,
y dónde está,
y dónde está,
extension total,
extension total,
scan install,
vale,
pero me dice scan,
pero no quiero,
pero dime,
pero dímelas,
o sea,
me ha dicho,
vale,
he terminado el scan,
pero no me dice,
no me dice nada,
o sea,
no me ha dicho nada,
me ha escaneado,
pero lo que me ha escaneado
es el disco duro,
directamente,
bueno,
geek hack o pilot,
riesgo medio,
eh,
geek hack o pilot,
riesgo medio,
madre mía,
claro,
dice,
api calls,
claro,
lee archivos en el disco,
de forma asíncrona y síncrona,
que accede al proceso,
bueno,
esto es para todos los parámetros
que se le pasan,
a ver,
tampoco parece tan grave,
¿no?
este sí,
esto sí que me parece,
ah,
bueno,
claro,
esto es medio,
vale,
vale,
esto es low,
esto tiene sentido,
esto sí que tiene sentido,
a ver,
¿qué más?
Decidme una,
slint,
que es una que utilizamos un montón,
slint,
vale,
vamos a ver slint,
low,
vale,
mira,
este total es free,
vale,
tres veces que lo he utilizado,
ya me está diciendo que,
ya me está diciendo que,
que pase por que me registre,
me ha quitado las ganas de seguir probando,
paga,
no,
no creo que tenga que pagar,
vosotros creéis,
error lens,
medio,
porque dicen,
read file,
lee el contenido del archivo de forma síncrona,
claro,
es que esto no debería ser necesario,
este tipo de llamada a la API,
esto debería darte Visual Studio Code,
una forma controlada,
de que pudieses acceder al,
al contenido del archivo,
sin necesidad de que tengan que utilizar esto,
y esto no me parece que,
que esté bien,
y cuando lo quitasen,
cuando lo quiten,
pues ya estaría mejor,
¿no?
Bueno,
pues,
pues aquí lo tenéis,
la verdad,
bueno,
ha sido una forma interesante de vender su producto,
la verdad,
con toda,
toda la investigación,
que han hecho,
mira,
me está diciendo SuperMaven,
medio,
bueno,
es que esta de read file,
lo van a tener tantas,
lo van a tener tantas,
hostia,
esta sí,
processen,
uff,
esta es poliquísima,
poliquísima,
polémiquísima,
esta es muy polémica,
esta es muy polémica,
porque las variables de entorno,
aquí se pasa,
se pasa todo,
aquí se pasa todo,
yo creo que esto,
por ejemplo,
no debería ser,
no debería ser,
porque la variable de entorno,
ahí puedes estar metiendo keys,
de,
hasta de la casa de tus padres,
o sea,
no puede ser,
no,
esa no está bien,
no está bien,
le voy a escribir,
se lo voy a decir,
a la gente de SuperMaven,
no puede ser,
no puede ser,