مجموعة أدوات الأمن الهجومي لـ Azure
مجموعة من نصوص Bash وPowerShell لتقييم أمان Azure، تغطي تصعيد امتيازات IAM، وأمان الحاويات، وكشف مخازن المفاتيح (Key Vault)، وإعدادات Entra ID، والمزيد. صُممت للعمل في Azure Cloud Shell أو أي طرفية موثّقة.
السكربتات
IAM / الهوية
| السكربت | الصدفة | الوصف |
|---|
IAMPrivz.sh | Bash | يدقق جميع تعريفات وتعيينات أدوار RBAC عبر كامل المستأجر (tenant) بحثًا عن صلاحيات تصعيد الامتيازات الخطيرة: roleAssignments/write وroleDefinitions/write وfederatedIdentityCredentials/write. يحدد هويات الكيانات الأمنية (المستخدمين، وكيانات الخدمة، والمجموعات) لكل تعيين يتم الإبلاغ عنه. ينتج تقارير بصيغة JSON ونصية. |
EntraUserSettings.sh | Bash | يُبلغ عن إعدادات المستخدم على مستوى المستأجر في Entra ID عبر Microsoft Graph — صلاحيات تسجيل التطبيقات، وإنشاء المستأجرين، وإنشاء مجموعات الأمان، ومستوى تقييد وصول الضيوف، وقيود مركز الإدارة. |
EntraUserSettings.ps1 | PowerShell | نسخة PowerShell المكافئة من EntraUserSettings.sh. |
GlobalAdmins.sh | Bash | يستخرج جميع أعضاء دور مسؤول الدليل العام (Global Administrator). يجمع الاسم المعروض، وUPN، ونوع الكائن، وحالة الحساب، ومعرف الكائن. يقوم بتفعيل الدور إذا لم يكن مفعلاً في الدليل. ينتج جدولًا منسقًا + ملف CSV بطابع زمني. |
GlobalAdmin.ps1 | PowerShell | نسخة PowerShell المكافئة من GlobalAdmins.sh. |
GuestInvite.sh | Bash | يدقق سياسات دعوة الضيوف وإعدادات التعاون الخارجي — من يمكنه دعوة الضيوف، ومستويات تقييد وصول الضيوف، وصلاحيات التسجيل عبر البريد الإلكتروني. يرصد التكوينات عالية الخطورة (مثل "السماح للجميع بالدعوة"). ينتج تقريرًا بطابع زمني. |
GuestInvite.ps1 | PowerShell | نسخة PowerShell المكافئة من GuestInvite.sh. |
JoinableGroups.sh | Bash | يكتشف مجموعات Entra ID التي يمكن الانضمام إليها علنًا (رؤية عامة، عضوية غير ديناميكية). يجمع البيانات الوصفية، وأعداد الأعضاء، وأدوار الدليل المعينة. يوفر قائمة تفاعلية لاختيار المجموعات والانضمام إليها. ينتج CSV. |
JoinableGroups.ps1 | PowerShell | نسخة PowerShell المكافئة من JoinableGroups.sh. |
أمان الحاويات
Key Vault
الأتمتة
| السكربت | الصدفة | الوصف |
|---|
RunbookGrabz.sh | Bash | تدقيق شامل لجميع حسابات Azure Automation عبر جميع الاشتراكات. يستخرج الكود المصدري لـ runbook، وإعدادات webhook، والجداول، وسجل الوظائف (آخر 30 يومًا)، وتفاصيل العامل الهجين (hybrid worker). ينتج بنية دليل هرمية تحتوي ملفات تفاصيل لكل حساب ومجلدات مخصصة لمحتوى runbook. |
SQL
| السكربت | الصدفة | الوصف |
|---|
SQLAuditing.sh | Bash | يتحقق من حالة التدقيق لجميع خوادم وقواعد بيانات Azure SQL عبر جميع الاشتراكات. يتحقق من أهداف blob وLog Analytics وEvent Hub. منطق ذكي: يتخطى الفحوصات على مستوى قاعدة البيانات عندما يكون تدقيق مستوى الخادم مفعلاً بالفعل. يرصد قواعد البيانات غير المغطاة. ينتج CSV. |
المتطلبات الأساسية
- Azure CLI (
az login) أو جلسة Azure Cloud Shell
jq — مطلوب لجميع نصوص Bash
- وحدات Az PowerShell — مطلوبة لنصوص
.ps1 (Az.Accounts، Az.KeyVault، Az.Sql، وغيرها)
- أذونات قراءة مناسبة للموارد التي يتم تدقيقها (Reader كحد أدنى؛ بعض البرامج النصية مثل
Conreg.sh تختبر عمليات الكتابة)
الاستخدام
# Run from Azure Cloud Shell or any authenticated terminal
az login
# IAM privilege escalation audit
bash Cloudshell/IAMPrivz.sh
# Container registry permission check with live tests
bash Cloudshell/Conreg.sh
# Key Vault access test (all subscriptions)
bash Cloudshell/KV-Access.sh -a
# Key Vault public exposure audit
bash Cloudshell/KV-PublicAccess.sh
# PowerShell equivalents
pwsh Cloudshell/KV-Access.ps1 -All
pwsh Cloudshell/ContainerPermz.ps1
بنية الملفات
Azure/
├── README.md
└── Cloudshell/
├── IAMPrivz.sh
├── Conreg.sh
├── ContainerPermz.sh
├── ContainerPermz.ps1
├── EntraUserSettings.sh
├── EntraUserSettings.ps1
├── GlobalAdmins.sh
├── GlobalAdmin.ps1
├── GuestInvite.sh
├── GuestInvite.ps1
├── JoinableGroups.sh
├── JoinableGroups.ps1
├── KV-Access.sh
├── KV-Access.ps1
├── KV-PublicAccess.sh
├── KV-PublicAccess.ps1
├── RunbookGrabz.sh
├── RunbookGrabz.ps1
├── SQLAuditing.sh
└── SQLAuditing.ps1
إخلاء مسؤولية
هذه الأدوات مخصصة لتقييمات الأمن المصرح بها والأغراض التعليمية فقط. احصل دائمًا على إذن مناسب قبل تشغيل هذه البرامج النصية ضد أي بيئة Azure.