GCP - Add Custom SSH Metadata
GCP - Dodavanje prilagođenih SSH metapodataka
Modifikacija metapodataka
Modifikacija metapodataka na instanci može dovesti do značajnih sigurnosnih rizika ako napadač stekne potrebne dozvole.
Uključivanje SSH ključeva u prilagođene metapodatke
Na GCP-u, Linux sistemi često izvršavaju skripte iz Python Linux Guest Environment for Google Compute Engine. Ključna komponenta ovoga je accounts daemon, koji je dizajniran da redovno proverava krajnju tačku metapodataka instance radi ažuriranja autorizovanih SSH javnih ključeva.
Stoga, ako napadač može da modifikuje prilagođene metapodatke, može naterati daemon da pronađe novi javni ključ, koji će biti obrađen i integriran u lokalni sistem. Ključ će biti dodat u datoteku ~/.ssh/authorized_keys
postojećeg korisnika ili potencijalno kreiranje novog korisnika sa sudo
privilegijama, zavisno od formata ključa. I napadač će moći da kompromituje host.
Dodavanje SSH ključa postojećem privilegovanom korisniku
Pregled postojećih SSH ključeva na Instanci:
Izvršite komandu za opis instance i njenih metapodataka kako biste locirali postojeće SSH ključeve. Relevantni deo u izlazu će biti pod
metadata
, posebno ključssh-keys
.
Obratite pažnju na format SSH ključeva: korisničko ime ide ispred ključa, razdvojeno dvotačkom.
Priprema tekstualne datoteke za SSH ključ metapodatke:
Sačuvajte detalje korisničkih imena i njihovih odgovarajućih SSH ključeva u tekstualnu datoteku nazvanu
meta.txt
. Ovo je bitno za čuvanje postojećih ključeva dok dodajete nove.
Generisanje novog SSH ključa za ciljanog korisnika (
alice
u ovom primeru):
Koristite
ssh-keygen
komandu za generisanje novog SSH ključa, obezbeđujući da polje komentara (-C
) odgovara ciljnom korisničkom imenu.
Dodajte novi javni ključ u
meta.txt
, oponašajući format koji se nalazi u metapodacima instance.
Ažuriranje metapodataka SSH ključa instance:
Primenite ažurirane metapodatke SSH ključa na instanci koristeći
gcloud compute instances add-metadata
komandu.
Pristupanje Instanci Koristeći Novi SSH Ključ:
Povežite se sa instancom putem SSH koristeći novi ključ, pristupajući shell-u u kontekstu ciljnog korisnika (
alice
u ovom primeru).
Kreiranje novog privilegovanog korisnika i dodavanje SSH ključa
Ako nije pronađen nijedan zanimljiv korisnik, moguće je kreirati novog koji će dobiti sudo
privilegije:
SSH ključevi na nivou projekta
Moguće je proširiti pristup SSH-u na više virtuelnih mašina (VMs) u cloud okruženju primenom SSH ključeva na nivou projekta. Ovaj pristup omogućava SSH pristup bilo kojoj instanci unutar projekta koja nije eksplicitno blokirala projektne SSH ključeve. Evo sažetog vodiča:
Primenite SSH ključeve na nivou projekta:
Koristite
gcloud compute project-info add-metadata
komandu da dodate SSH ključeve izmeta.txt
u metapodatke projekta. Ova akcija osigurava da se SSH ključevi prepoznaju na svim VMs u projektu, osim ako je VM omogućio opciju "Blokiraj projektne SSH ključeve".
SSH pristup instancama koristeći projektne ključeve:
Sa projektim SSH ključevima na mestu, možete se SSH-ovati u bilo koju instancu unutar projekta. Instance koje ne blokiraju projektne ključeve će prihvatiti SSH ključ, omogućavajući pristup.
Direktan način za SSH-ovanje u instancu je korišćenjem
gcloud compute ssh [INSTANCE]
komande. Ova komanda koristi vaše trenutno korisničko ime i SSH ključeve postavljene na nivou projekta kako bi pokušala pristup.
Reference
Last updated