GCP - Artifact Registry Persistence
Registro de Artefactos
Para obtener más información sobre el Registro de Artefactos, consulta:
GCP - Artifact Registry EnumConfusión de Dependencias
¿Qué sucede si se mezclan repositorios remotos y estándar en uno virtual y un paquete existe en ambos?
Se utiliza el que tiene la prioridad más alta establecida en el repositorio virtual.
Si la prioridad es la misma:
Si la versión es la misma, se utiliza el nombre de política alfabéticamente primero en el repositorio virtual.
Si no, se utiliza la versión más alta.
Por lo tanto, es posible abusar de una versión más alta (confusión de dependencias) en un registro de paquetes público si el repositorio remoto tiene una prioridad mayor o igual.
Esta técnica puede ser útil para persistencia y acceso no autenticado, ya que para abusar de ella solo se necesita conocer el nombre de una biblioteca almacenada en el Registro de Artefactos y crear esa misma biblioteca en el repositorio público (PyPi por ejemplo) con una versión más alta.
Para la persistencia, estos son los pasos que debes seguir:
Requisitos: Debe existir un repositorio virtual y ser utilizado, se debe usar un paquete interno con un nombre que no exista en el repositorio público.
Crea un repositorio remoto si no existe.
Agrega el repositorio remoto al repositorio virtual.
Edita las políticas del registro virtual para darle una prioridad más alta (o igual) al repositorio remoto. Ejecuta algo como:
Descarga el paquete legítimo, agrega tu código malicioso y regístralo en el repositorio público con la misma versión. ¡Cada vez que un desarrollador lo instale, instalará el tuyo!
Para obtener más información sobre la confusión de dependencias, consulta:
Last updated