
يكتشف الهويات غير البشرية ويقيّم مخاطرها ويعالجها عبر AWS وAzure وGCP باستخدام تحليل دون اتصال قائم على القواعد، وكشف تصعيد الامتيازات، واحتواء حدود الأذونات.
منصة أتمتة أمنية بمستوى المؤسسات تعمل دون اتصال أولاً، تكتشف وتُجرد وتحلل وتُقيّم المخاطر وتُعالج بأمان الهويات غير البشرية (NHIs) — كيانات الخدمة، وحسابات الخدمة، وأدوار الأجهزة، ومفاتيح الوصول، وبيانات الاعتماد — عبر AWS وAzure وGoogle Cloud Platform (GCP).
⭐️ إذا وجدت هذه الأداة مفيدة لتدقيق وتأمين الهويات غير البشرية عبر السحابات، فيرجى التفكير في منح المستودع نجمة!
| مزود السحابة | أنواع الهويات المغطاة | محرك الاكتشاف | فحص الأسرار / بيانات الاعتماد | القواعد النشطة | الحالة |
|---|---|---|---|---|---|
| 🟧 AWS | أدوار IAM، مستخدمو الأجهزة، المجموعات، السياسات | Boto3 + التخزين المؤقت للجلسات | مفاتيح الوصول (CreateDate، LastUsed) | 13 قاعدة (AWS_01–16، TAG_01) | ✅ مدعوم |
| 🟦 Azure | كيانات خدمة Entra ID، تسجيلات التطبيقات، الهويات المُدارة | REST خالص (Graph وARM) | أسرار العميل (passwordCredentials)، الشهادات (keyCredentials) | 5 قواعد (AZURE_01–05) | ✅ مدعوم |
| 🟥 GCP | حسابات الخدمة، هوية أحمال العمل، أدوار IAM | REST خالص (IAM وResource Mgr) | مفاتيح حساب الخدمة (validAfterTime، المُدارة من المستخدم) | 6 قواعد (GCP_01–06) | ✅ مدعوم |
🧪 حالة مجموعة الاختبارات: 102 ناجح، 4 اختبارات فرعية ناجحة (100% أخضر) عبر جميع المزودين والمحركات.
تعالج NHI Risk Analyzer تحديًا أمنيًا حرجًا متعدد السحابات: تُراكم بيئات السحابة المؤسسية الحديثة مئات من هويات الأجهزة والهويات غير البشرية (حسابات الخدمة، وأدوار الأتمتة، وبيانات اعتماد CI/CD، وأدوار الثقة عبر السحابات) مع رؤية محدودة للغاية حول أي الهويات تتمتع بصلاحيات مفرطة، أو خاملة، أو تُدخل مخاطر تصعيد الامتيازات.
تفرض المنصة فصلًا معماريًا صارمًا عبر ثلاث مراحل متميزة:
inventory.json موحّدة عبر آليات خفيفة أصلية للسحابة (Boto3 مع تخزين مؤقت للجلسات لـ AWS؛ REST خالص بلا اعتماديات لـ Azure وGCP).تحتوي بيئات السحابة المؤسسية متعددة السحابات بشكل روتيني على هويات غير بشرية تكون:
تُؤتمت NHI Risk Analyzer الاكتشاف والتحليل الأمني والمعالجة المستهدفة عبر مزودي السحابة باستخدام واجهات برمجة السحابة ومعالجة القواعد دون اتصال.
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ AWS IAM │ │ Azure Entra │ │ GCP IAM │
│ (Boto3) │ │ (Pure REST) │ │ (Pure REST) │
└──────┬───────┘ └──────┬───────┘ └──────┬───────┘
│ │ │
└────────────────┐ │ ┌────────────────┘
▼ ▼ ▼
┌───────────────────────────┐
│ inventory.py │
│ (Multi-Cloud Collector) │
└─────────────┬─────────────┘
▼
┌───────────────────────────┐
│ inventory.json │
│ (Unified State Snapshot) │
└─────────────┬─────────────┘
│
▼
┌───────────────────────────┐
│ risk.py │
│ (--cloud Orchestrator) │
└─────────────┬─────────────┘
│
┌────────────────────────┼────────────────────────┐
▼ ▼ ▼
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ aws.py sub- │ │ azure.py sub-│ │ gcp.py sub- │
│ runner │ │ runner │ │ runner │
│ (13 Rules) │ │ (5 Rules) │ │ (6 Rules) │
└──────┬───────┘ └──────┬───────┘ └──────┬───────┘
└────────────────────────┼────────────────────────┘
▼
┌───────────────────────────┐
│ dispatch.py │
│ (Containment Dispatcher) │
└─────────────┬─────────────┘
│
┌────────────────────────┴────────────────────────┐
▼ ▼
┌─────────────────────────┐ ┌─────────────────────┐
│ policy_surgery.py & │ │ credential.py │
│ policy.py (Boundaries) │ │ (Deactivate Key) │
└─────────────────────────┘ └─────────────────────┘
nhi/services/inventory.py): يستعلم عن واجهات برمجة التطبيقات السحابية عبر AWS وAzure وGCP، ويُثري البيانات الوصفية لبيانات الاعتماد (آخر استخدام لمفتاح الوصول، وانتهاء صلاحية السر)، ويُسلسل لقطة حالة نظيفة إلى inventory.json.nhi/risk/risk.py): يقبل --cloud {aws,azure,gcp,all} لاستهداف موفري الخدمات السحابية بشكل انتقائي، مما يوفّر استدعاءات API غير الضرورية ويتجنب حدود المعدل عبر المستأجرين.nhi/risk/runners/): محركات تنفيذ مفصولة (aws.py، azure.py، gcp.py) تعالج جرد المزوّد مقابل قواعد أمنية معيارية مع حواجز دفاعية ضد الحمولات السحابية الجزئية أو المفقودة.nhi/services/export.py، nhi/remediation/diff.py): يحسب الانحراف الأمني مقابل عمليات الفحص الأساسية التاريخية، ويرفع مخرجات التنفيذ إلى التخزين السحابي، ويصدّر النتائج إلى CSV وOASIS SARIF v2.1.0 لخطوط أنابيب التدقيق.nhi/remediation/): تقسيم عبارات السياسة على مستوى AST (policy_surgery.py) وحدود احتواء غير مدمّرة/تعطيل المفاتيح مع وضع محاكاة التشغيل التجريبي وإعفاءات nhi-ignore.yaml.للقضاء على استدعاءات مصادقة AWS STS المكررة أثناء جمع الجرد، يتم تخزين كائنات boto3.Session الموثّقة مؤقتًا طوال عمر عملية Python في nhi/aws/session.py.
AssumeRole: 35 → 179.58s → 45.67s (تحسّن في وقت التشغيل بنحو 43%)session.py، دون الحاجة إلى أي تغييرات منطقية في وحدات الاكتشاف أو القواعد.بدلًا من تجميع حزم SDK السحابية الثقيلة والمجزّأة (azure-mgmt-*، msgraph-sdk، google-cloud-iam + grpcio)، تستخدم طبقة الاكتشاف متعدد السحابات تصميمًا موحّدًا وخفيفًا قائمًا على HTTP خالص (requests) + رمز Bearer: