GCP - Artifact Registry Persistence
Registro de Artefatos
Para mais informações sobre o Registro de Artefatos, confira:
pageGCP - Artifact Registry EnumConfusão de Dependência
O que acontece se um repositório remoto e padrão são misturados em um virtual e um pacote existe em ambos?
O que tiver a prioridade mais alta definida no repositório virtual é usado
Se a prioridade for a mesma:
Se a versão for a mesma, o nome da política em ordem alfabética primeiro no repositório virtual é usado
Caso contrário, a versão mais alta é usada
Portanto, é possível abusar de uma versão mais alta (confusão de dependência) em um registro de pacotes público se o repositório remoto tiver uma prioridade maior ou igual
Essa técnica pode ser útil para persistência e acesso não autenticado pois para abusar dela basta conhecer o nome de uma biblioteca armazenada no Registro de Artefatos e criar essa mesma biblioteca no repositório público (PyPi, por exemplo) com uma versão mais alta.
Para persistência, siga estas etapas:
Requisitos: Um repositório virtual deve existir e ser usado, um pacote interno com um nome que não existe no repositório público deve ser usado.
Crie um repositório remoto se ele não existir
Adicione o repositório remoto ao repositório virtual
Edite as políticas do registro virtual para dar uma prioridade mais alta (ou igual) ao repositório remoto. Execute algo como:
Baixe o pacote legítimo, adicione seu código malicioso e registre-o no repositório público com a mesma versão. Sempre que um desenvolvedor o instalar, ele instalará o seu!
Para mais informações sobre confusão de dependência, confira:
Última actualización