HomeVideos

El ataque a PHP que nadie vio venir

Now Playing

El ataque a PHP que nadie vio venir

Transcript

165 segments

0:00

Y lo que pasa en las mejores familias,

0:01

tenemos que hablar de los ataques en el

0:03

ecosistema de PHP. PHP, sí, muchas veces

0:06

hablamos de JavaScript, mucha gente se

0:08

queja de JavaScript. De hecho, me hizo

0:10

mucha mucha gracia el comentario de

0:13

Damián Catanzaro, no me salía el nombre

0:16

del chico este. Damián Catanzaro me hizo

0:18

mucha gracia porque, a ver si os lo

0:20

encuentro a este este comentario, porque

0:22

el otro día, por todos los ataques que

0:24

había en el ecosistema de JavaScript

0:27

comentaba esto, no estoy para volver a

0:29

PHP con jQuery y luego dice, "No se está

0:31

salvando un solo framework, se cancela

0:33

volver a PHP. Nos quedamos en HTML con

0:36

GQuery. ¿Y por qué? Porque resulta que

0:39

hemos tenido un nuevo ataque, la cadena

0:42

de suministro en la organización del

0:45

Arabel. Más de 700 versiones históricas

0:49

entre diferentes paquetes mantenidos por

0:51

la comunidad del Arabel fueron

0:54

comprometidos con puertas traseras para

0:56

ejecución de código en remoto. algunos

0:59

paquetes bastante importantes que son

1:02

descargados cientos de miles de veces en

1:05

el ecosistema de PHP, en Lara, Lara,

1:09

Lang L, http statuses, attributes,

1:12

actions, un montón y ha sido pues

1:14

bastante bastante preocupante, bastante

1:17

preocupante. Así que sí, esto es del

1:19

otro día, algunas versiones que

1:22

afectaban a la 12, 13, 14x, 15x, un

1:26

montón de versiones y con un impacto

1:29

bastante bastante bestia. Así que nada,

1:31

ahí lo tenéis. Todas las versiones

1:33

publicadas publicaron un montón, más de

1:35

700 versiones. O sea, una verdadera

1:38

salvajada lo que hicieron de publicar

1:41

versiones. Obviamente si instalaste una

1:43

de estas, estás bien [ __ ] Pero lo

1:45

peor es que no solo pilló el Arabel,

1:47

sino que también pilló Composer, PHP

1:51

Composer. Y en este caso el ataque de

1:54

estos ocho paquetes fue por culpa, no

1:57

por culpa, sino que utilizaron pack

1:59

Jason. El tema es que Composer utiliza

2:02

los packagons para ejecutar algunos

2:04

scripts y a partir de eso aquí podéis

2:06

ver los post install que estaba

2:08

utilizando para inyectar el script y

2:12

también poder infectarte. De hecho, aquí

2:14

podemos ver, a ver si lo encuentro,

2:16

githaub.com.

2:18

Esto es lo que estaba ejecutando. Vamos

2:20

a ver si lo podemos buscar por aquí. A

2:22

ver si hay alguno infectado todavía.

2:24

Aquí está. Aquí lo tenéis. ¿Ves este

2:26

tracking expos de Facebook? Aquí podéis

2:29

ver que lo tiene infectado. Todo esto

2:31

está infectado. Todo esto está

2:33

infectado. O sea, tú te descargas uno de

2:35

estos repositorios, cualquiera de estos

2:37

repositorios y ya está [ __ ] Está

2:38

[ __ ] directamente. Y a lo mejor es un

2:40

repositorio que, yo que sé. Mira, Travel

2:43

Guide. Pues en este Travel Guide, en

2:44

este package Jason, pues han metido aquí

2:47

este package Jason, han metido aquí este

2:49

post install y ahí está [ __ ]

2:51

Entonces, ¿podemos probarlo? Claro que

2:52

sí, Mateo. Puedes hacer un pmstol, pero

2:55

por suerte tenemos una buena noticia,

2:57

algo que me alegro ya que ya hace falta.

2:59

Todos estos ataques son siempre los

3:02

mismos, que es que con npm install se

3:04

ejecuta por defecto el post install y es

3:06

un rollo. Bueno, pues por suerte van a

3:09

hacer por fin hay un RFC, es un request

3:12

for changes para npm para que por fin

3:15

por defecto no se ejecuten scripts, los

3:19

preinstall, los install y los post

3:22

install y que tengas manualmente que

3:24

aprobar los scripts. Esto llegaría a npm

3:28

por fin, ¿vale? para que no se ejecute

3:30

automáticamente. ¿Qué es lo que ocurre

3:31

hoy? Y es que, como ya sabéis, tanto los

3:34

ataques de Shai Hulut, que es muy

3:36

parecido a lo que estamos viendo ahora,

3:38

como el ataque en Axios, en chalk, en

3:40

the back y un montón de paquetes que han

3:41

sido afectados, ha sido exactamente por

3:43

lo mismo y parece ser que va a llegar

3:46

eventualmente a MPM. Así que nada, vamos

3:49

a ver si por fin ocurre, porque ya hace

3:52

falta que esto pase para que por defecto

3:54

sea seguro en PM. O sea, es un vector de

3:57

ataque que hace demasiado tiempo que

3:58

están utilizando, que están que están

4:00

aprovechándose. Ya yo creo que es el

4:02

momento de dejar esto atrás. Y lo peor,

4:04

amigos, es que sé que mucha gente dice,

4:06

"No, es que esto es el ecosistema de

4:08

JavaScript, que no sé qué, no sé

4:09

cuánto." Bueno, pues tenemos no ataque

4:11

solo a PM, sino que también en PP, el

4:14

Python Package Index, el sitio donde

4:17

puedes encontrar paquetes de Python,

4:19

pues también tienes. Y también en

4:21

crates.Oio en el registro de paquetes de

4:25

Rust. En todos, en todos, en todos han

4:28

estado metiendo un montón de paquetes,

4:31

más de 384 paquetes, que lo que hacían

4:34

era robarte los cryptoallets, los las

4:37

llaves SSH, credenciales AWS, tokens de

4:41

GitHub y tal, o sea, tanto en el

4:43

registro de Rust, en el de Python y como

4:46

hemos visto también en el de PHP. O sea,

4:49

que al final tienes que tener cuidado.

4:51

Muchas veces lo hacen con paquetes que

4:53

se parecen a paquetes que son paquetes

4:55

conocidos. En otros pues paquetes

4:58

utilizando paquetes que son conocidos y

5:00

que les roban los tokens. Así que nada,

5:02

ha llegado a todos, a Python, a Rust y

5:05

también a MPM. Tengan mucho, pero mucho

5:08

cuidado. ¿Y cómo pueden tener cuidado?

5:10

Pues lo responde el Team PCP. El Team

5:12

PCP es este grupo de hackers que ha

5:14

estado hackeando un montón el ecosistema

5:16

de de JavaScript y de Python. y le han

5:19

hecho una entrevista donde le han

5:21

preguntado qué deberían hacer los

5:22

defensores para detener los ataques a la

5:25

cadena de suministro, que son todos los

5:26

ataques que han estado pasando estas

5:27

semanas. Y su consejo es fijar versiones

5:31

a un hash específico. Esto, por cierto,

5:33

es una cosa que yo os he comentado

5:35

muchas veces. Usar tokens de privilegio

5:38

mínimo. Esto es de cajón. En lugar de

5:39

utilizar un token que tenga eh

5:41

superpoderes, utilizar tokens que sean

5:44

muy específicos en concreto. Restringir

5:46

extensiones del IDE, de esto también os

5:48

comenté el otro día. Y luego

5:50

textualmente dijeron, "La empresa Socket

5:52

detectará el Marwell antes de que el

5:53

paquete siquiera llegue a tu máquina." Y

5:56

esto es porque Socket Security, esta

5:58

gente de aquí, son los que siempre están

5:59

detectando rápidamente el malware que

6:01

llega a un montón de ecosistemas. tienen

6:04

una herramienta que se llama SFW

6:07

que te puede ayudar a detectar este tipo

6:10

de paquetes para evitar que lleguen. No,

6:11

no vamos a poner esto en la página de

6:13

testimonios porque Feroz trabaja en

6:15

Socket Security, pero al mismo tiempo si

6:17

aún no estás utilizando Socket Security

6:19

para proteger tu cadena de suministro,

6:20

¿a qué estás esperando? Curioso que han

6:23

hecho una entrevista a los hackers y que

6:25

encima te den consejos para no

6:26

infectarte. Ya es el colmo del colmo.

Interactive Summary

El video analiza recientes ataques a la cadena de suministro en diversos ecosistemas de desarrollo, incluyendo PHP, npm, Python y Rust. Se destaca la infiltración en paquetes populares de Laravel, el uso de scripts maliciosos en archivos de configuración y la tendencia de los atacantes a robar credenciales. Finalmente, se ofrecen recomendaciones de seguridad, como el uso de hashes para fijar versiones y herramientas de protección como Socket Security, además de mencionar una posible mejora en npm para desactivar la ejecución automática de scripts.

Suggested questions

3 ready-made prompts