Z tym uprawnieniem atakujący mógłby przesyłać nowe wersje artefaktów z złośliwym kodem, takimi jak obrazy Docker:
# Configure docker to use gcloud to authenticate with Artifact Registrygcloudauthconfigure-docker<location>-docker.pkg.dev# tag the image to upload itdockertag<local-img-name>:<local-tag><location>-docker.pkg.dev/<proj-name>/<repo-name>/<img-name>:<tag># Upload itdockerpush<location>-docker.pkg.dev/<proj-name>/<repo-name>/<img-name>:<tag>
Sprawdzono, że jest możliwe przesłanie nowego złośliwego obrazu docker o tej samej nazwie i tagu co już istniejący, więc stary obraz straci tag i następnym razem, gdy ten obraz z tym tagiem zostanie pobrany, zostanie pobrany złośliwy obraz.
Prześlij bibliotekę Pythona
Zacznij od utworzenia biblioteki do przesłania (jeśli możesz pobrać najnowszą wersję z rejestru, możesz ominąć ten krok):
Ustaw strukturę projektu:
Utwórz nowy katalog dla biblioteki, np. hello_world_library.
Wewnątrz tego katalogu utwórz kolejny katalog o nazwie pakietu, np. hello_world.
Wewnątrz katalogu pakietu utwórz plik __init__.py. Ten plik może być pusty lub może zawierać inicjalizacje dla pakietu.
Nie jest możliwe przesłanie biblioteki Pythona o tej samej wersji, która już istnieje, ale możliwe jest przesłanie wyższych wersji (lub dodanie dodatkowego .0 na końcu wersji, jeśli to działa - nie w przypadku Pythona), lub usunięcie ostatniej wersji i przesłanie nowej (wymagane artifactregistry.versions.delete):
Z tym uprawnieniem możesz pobrać artefakty i wyszukiwać wrażliwe informacje oraz luki w zabezpieczeniach.
Pobierz obraz Docker:
# Configure docker to use gcloud to authenticate with Artifact Registrygcloudauthconfigure-docker<location>-docker.pkg.dev# Dowload imagedockerpull<location>-docker.pkg.dev/<proj-name>/<repo-name>/<img-name>:<tag>