Podjetja selijo na oblak z mislijo "ponudnik poskrbi za varnost". Ne poskrbi. Shared responsibility model pomeni, da ste vi odgovorni za svoje konfiguracije. In napačne konfiguracije v oblaku so pogostejše kot kadarkoli.
Shared Responsibility Model
Razumevanje odgovornosti je ključno:
- Ponudnik: Fizična varnost, infrastruktura, hypervisor
- Vi: Podatki, aplikacije, IAM, konfiguracije, šifriranje
AWS/Azure/GCP vam zagotavlja varno infrastrukturo. Kar naredite z njo, je vaša odgovornost.
IAM (Identity and Access Management) napadi
IAM je najpogostejši vektor za popolno kompromitacijo oblačnega okolja.
Preširoke pravice
- Wildcard policies: "Action": "*", "Resource": "*" - dostop do vsega
- AdministratorAccess: Na večini računov, ki ga ne potrebujejo
- PassRole abuse: Ustvarjanje novih vlog z višjimi privilegiji
Privilege Escalation tehnike
- iam:CreateAccessKey: Kreiranje ključev za druge uporabnike
- iam:CreateLoginProfile: Nastavitev gesla za IAM uporabnika
- iam:UpdateLoginProfile: Sprememba gesla drugega uporabnika
- iam:AttachUserPolicy: Dodelitev politik drugim uporabnikom
- sts:AssumeRole: Prevzem vloge z višjimi pravicami
- lambda:CreateFunction + iam:PassRole: Lambda z administratorsko vlogo
- ec2:RunInstances + iam:PassRole: EC2 z instance profile
Orodja za IAM analizo
- Cloudsplaining: AWS IAM Security Assessment
- PACU: AWS Exploitation Framework
- ScoutSuite: Multi-cloud security auditing
- Prowler: AWS security best practices assessment
Metadata Service napadi
Vsak cloud VM ima dostop do metadata service na 169.254.169.254. SSRF ranljivost = cloud credentials.
AWS Instance Metadata Service (IMDS)
- IMDSv1: GET http://169.254.169.254/latest/meta-data/iam/security-credentials/[role-name]
- IMDSv2: Zahteva token - vendar še vedno ranljivo če aplikacija naredi več HTTP requestov
Azure Instance Metadata Service
- Endpoint: http://169.254.169.254/metadata/identity/oauth2/token
- Header: Metadata: true
GCP Metadata Server
- Endpoint: http://metadata.google.internal/computeMetadata/v1/
- Header: Metadata-Flavor: Google
Eksploatacija
- Najdemo SSRF ranljivost v aplikaciji
- Zahteva na metadata endpoint
- Pridobimo temporary credentials (access key, secret key, token)
- Uporabimo credentials izven okolja (brez logiranja na instance)
S3/Blob Storage izpostavljenost
Javno dostopni bucketi z občutljivimi podatki so še vedno pogosta težava.
Vrste izpostavljenosti
- Public bucket: Vsakdo lahko bere/piše
- Public objects: Bucket ni javen, a posamezni objekti so
- Misconfigured ACL: Authenticated users (vsi AWS uporabniki) imajo dostop
- Bucket policy: Principal: "*" z dovoljenjem s3:GetObject
Kaj najdem v javnih bucketih
- Backup baze podatkov
- Izvorna koda
- Log datoteke s poverilnicami
- Konfiguracijske datoteke
- Uporabniški podatki (GDPR kršitev)
Zaščita
- S3 Block Public Access na nivoju računa
- Bucket policies namesto ACL
- Šifriranje at rest in in transit
- Access logging omogočen
- Versioning za recovery
Kubernetes varnost
Kubernetes v oblaku prinaša dodatne napadalne vektorje.
Pogosti problemi
- Privileged containers: Dostop do host sistema
- hostPID/hostNetwork: Deljenje namespace z gostiteljem
- Mounted service accounts: Dostop do Kubernetes API
- RBAC napačne konfiguracije: Preširoke pravice za service accounte
- Secrets v ConfigMaps: Nešifrirani secrets
Kubernetes privilege escalation
- Pod escape: Iz containarja na host
- Service account token: Dostop do API strežnika
- RBAC abuse: Kreiranje privilegiranih podov
- etcd access: Direktni dostop do podatkov klastra
Serverless varnost (Lambda, Functions)
Serverless ne pomeni brez ranljivosti.
Napadalni vektorji
- Event injection: Manipulacija event payloada
- Excessive permissions: Lambda z admin pravicami
- Environment variables: Secrets v env vars (vidni v konzoli)
- Cold start secrets: Poverilnice v /tmp med hladnim zagonom
- Dependency vulnerabilities: Ranljive knjižnice
Multi-cloud in hybrid napadi
Podjetja z več cloud ponudniki ali hybrid okolji imajo dodatne izzive.
- Cross-cloud credential sharing: AWS ključi v Azure VM
- VPN/Direct Connect: Premostitev v on-premise omrežje
- Azure AD Connect: Sinhronizacija z AD = pot do on-prem DC
- Inconsistent policies: Različne varnostne politike med okolji
Moj pristop k cloud penetracijskemu testiranju
- Reconnaissance: Odkrivanje cloud resursov (subdomains, S3 buckets, Azure blobs)
- IAM analiza: Mapiranje uporabnikov, vlog, politik, potencialne privilege escalation poti
- Network assessment: Security groups, NACLs, VPC peering, transit gateways
- Service configuration: S3, RDS, Lambda, API Gateway, EKS/AKS/GKE
- Data exposure: Javno dostopni podatki, šifriranje, backup politike
- Logging & monitoring: CloudTrail, CloudWatch, GuardDuty konfiguracija