Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
أدوات/GitHubGitHub/awslabs/aws-security-assessment-solution
أمن البنية التحتية السحابيةماسحات الثغرات الأمنيةتدقيق التكوينأمن السحابةDevSecOps
GitHubawslabs/aws-security-assessment-solution

aws-security-assessment-solution

أداة AWS لمساعدتك في إنشاء تقييم في وقت معين لحساب AWS الخاص بك باستخدام Prowler.

عرض المستودع

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
6151187منذ يوم واحدتمت المراجعة من قبل Kitploit
مشاركة

حلول تقييم الأمان الذاتية الخدمة (الإصدار 2.0)

لا تزال الأمن السيبراني موضوعًا مهمًا للغاية ومصدر قلق للعديد من مدراء تقنية المعلومات (CIOs)، ومدراء أمن المعلومات (CISOs)، وعملائهم. ولمواجهة هذه المخاوف المهمة، طورت AWS مجموعة أساسية من الخدمات التي يجب على العملاء استخدامها للمساعدة في حماية حساباتهم. تساعد مراجعات Amazon GuardDuty وAWS Security Hub وAWS Config وAWS Well-Architected العملاء في الحفاظ على وضع أمني قوي عبر حساباتهم في AWS. مع قيام المزيد من المؤسسات بالنشر إلى السحابة، خاصة إذا كانت تفعل ذلك بسرعة، ولم تقم بعد بتنفيذ خدمات AWS الموصى بها، قد تكون هناك حاجة لإجراء تقييم أمني سريع للبيئة السحابية.

لقد طورنا حلاً غير مكلف وسهل النشر وآمن وسريع لتزويد عملائنا بتقرير تقييم أمني. يتم إنشاء هذه التقارير باستخدام المشروع مفتوح المصدر Prowler. يقوم Prowler بإجراء تقييم أمني في نقطة زمنية معينة بناءً على أفضل ممارسات AWS ويمكن أن يساعد في تحديد أي مجالات خطر محتملة بسرعة في البيئة المنشورة لدى العميل. إذا كنت مهتمًا بإجراء هذه التقييمات بشكل مستمر، توصي AWS بتمكين معيار Foundational Security Best Practices standard في Security Hub. إذا كنت مهتمًا بدمج نتائج تقييم Prowler مع Security Hub، يمكنك اتباع التعليمات في وثائق Prowler.

ملاحظة: Prowler ليس حلاً مملوكًا لـ AWS. يجب على العملاء مراجعة Prowler بشكل مستقل قبل تشغيل هذا الحل. يجب الحفاظ على تحديث أي تبعيات مرتبطة بـ Prowler. يقوم هذا الحل بتثبيت إصدار مثبت من Prowler (حاليًا 5.41.0) من مثبت حزمة pip، بحيث لا يمكن لتغيير في تنسيق إخراج Prowler أن يكسر الفحص دون تحذير. للانتقال إلى إصدار أحدث، قم بتحرير سطر في ملف .

pip3 install prowler==
2-sat2-codebuild-prowler.yaml

📕 للحصول على تعليمات أكثر تفصيلاً خطوة بخطوة، قم بزيارة الوحدة 2 في ورشة عمل SHIP.

جدول المحتويات

  • نظرة عامة
  • المعلمات
  • النشر
  • فحص حساب واحد
    • AWS CloudShell
      • نشر الحل
    • وحدة تحكم AWS
      • نشر الحل
  • فحص متعدد الحسابات
    • AWS CloudShell
      • الخطوة 1: نشر الدور المسبق
      • الخطوة 2: نشر حل SATv2
    • وحدة تحكم AWS
      • الخطوة 1: نشر الدور المسبق
      • الخطوة 2: تمكين المسؤول المفوض لـ AWS Organizations
      • الخطوة 3: نشر حل SATv2
  • مراجعة النتائج
    • لوحة معلومات SATv2 (موصى بها)
    • لوحة معلومات Prowler
  • أنواع الفحص
    • الفحص الأساسي
    • الفحص المتوسط
    • الفحص الكامل
  • الإشعارات
  • ملخص التقارير
    • كيفية بناء جدول Athena
    • سجل الفحص والتكرارات
  • الأسئلة الشائعة (FAQ)
  • التنظيف
  • الأمان
  • الترخيص

نظرة عامة

يتم نشر الحل باستخدام AWS CloudFormation. عند النشر، يتم إنشاء مشروع AWS CodeBuild ودلو Amazon S3 لتخزين التقارير التي ينشئها Prowler. ثم يتم استخدام دالة AWS Lambda لبدء مشروع AWS CodeBuild.

ستقوم القيم الافتراضية للمعلمات (مدخلات المستخدم) بتشغيل فحص أساسي في حساب واحد. ومع ذلك، يمكنك اختيار معلمات مختلفة لتشغيل فحوصات أكثر شمولاً أو لفحص حسابات متعددة. تستغرق عملية النشر أقل من 5 دقائق لإكمالها. يتم توفير قوالب AWS CloudFormation الخاصة بالحل للمراجعة في مستودع Github هذا.

بمجرد نشر القالب، سيتم تشغيل مشروع CodeBuild. يستغرق التقييم الافتراضي حوالي 5 دقائق لإكماله. سيختلف الوقت المستغرق لإكمال التقييم الأمني اعتمادًا على عدد الموارد وخيارات الفحص المحددة. في نهاية التقييمات، يتم تسليم التقارير إلى دلو S3 الذي تم إنشاؤه.

مخطط البنية

المعلمات

يمكن تخصيص SATv2 عن طريق تحديث معلمات CloudFormation. يلخص هذا القسم الخيارات المتاحة ويوفر رابطًا للقسم الذي يحتوي على مزيد من المعلومات.

المعلمةالوصفمزيد من المعلومات
ProwlerScanTypeحدد نوع الفحص الذي تريد تنفيذه. اختيار full دون تحديد ProwlerOptions مختلفة سيقوم بفحص كامل. لتنفيذ فحص محدد، اختر Full وأضف -c إلى ProwlerOptions.أنواع الفحص
MultiAccountScanاضبط هذا على true إذا كنت تريد فحص جميع الحسابات في مؤسستك. يجب أن تكون قد نشرت القالب المسبق لتوفير دور، أو حدد ProwlerRole مختلفًا بالصلاحيات المناسبة.الفحص متعدد الحسابات
Reportingاضبط هذا على true إذا كنت تريد تلخيص تقارير Prowler في ملف csv واحد. هذا مفيد عند فحص حسابات متعددة.ملخص التقارير
EmailAddressحدد عنوانًا إذا كنت تريد تلقي بريد إلكتروني عند اكتمال التقييم.الإشعارات
المعلمات المتقدمة
ConcurrentAccountScansللفحوصات متعددة الحسابات، حدد عدد الحسابات المراد فحصها بشكل متزامن. هذا مفيد للمؤسسات الكبيرة التي لديها العديد من الحسابات. اختيار أكثر من ثلاثة يغير حجم مثيل CodeBuild وقد يؤدي إلى تكاليف إضافية.
CodeBuildTimeoutاضبط المهلة لوظيفة CodeBuild. الافتراضي هو 300 دقيقة (5 ساعات).
MultiAccountListOverrideحدد قائمة مفصولة بمسافات من الحسابات المراد فحصها. ترك هذا فارغًا سيقوم بفحص جميع الحسابات في مؤسستك. تأكد من أنك قمت بتعيين معلمة MultiAccountScan أعلاه على true إذا كنت تريد فحص حسابات محددة. إذا لم تتمكن من توفير وصول ListAccount مفوض، يمكنك توفير معلمة MultiAccountListOverride.الفحص متعدد الحسابات
ProwlerOptionsحدد المعلمات لـ Prowler. سيتم إضافة --role و ARN تلقائيًا إلى نهاية المعلمات التي تحددها. يمكن استخدام هذا أيضًا لتحديد فحص واحد.الفحص الكامل
ProwlerRoleالدور الذي يجب أن يفترضه Prowler لتنفيذ الفحص. غيّر هذا إذا كنت تريد تحديد دورك الخاص بصلاحيات مختلفة.

النشر

يمكنك استخدام هذا المشروع لتشغيل Prowler عبر حسابات متعددة في مؤسسة AWS، أو حساب واحد. نقدم تعليمات لاستخدام AWS CloudShell أو وحدة تحكم AWS. اختر خيارًا للبدء.

نوع النشرAWS CloudShellوحدة تحكم AWS
حساب واحدرابطرابط
متعدد الحساباترابطرابط

فحص حساب واحد

لتشغيل حل تقييم الأمان الذاتي الخدمة (SATv2) ضد حساب واحد، اتبع التعليمات أدناه. يمكنك اختيار استخدام AWS CLI أو وحدة تحكم AWS.

AWS CloudShell

إظهار الخطوات

نشر الحل

  1. سجل الدخول إلى حساب AWS الخاص بك.

  2. في شريط التنقل، اختر AWS CloudShell.

  3. لتنزيل قالب CloudFormation، أدخل الأمر التالي.

    root@kitploit:~
    wget https://raw.githubusercontent.com/awslabs/aws-security-assessment-solution/main/2-sat2-codebuild-prowler.yaml
    
  4. لإنشاء دلو S3 لتخزين القالب مؤقتًا، أدخل الأوامر التالية. القالب أكبر من 51,200 بايت، لذا يتطلب CloudFormation رفعه إلى S3 بدلاً من تمريره مباشرة.

    root@kitploit:~
    TEMPLATE_BUCKET=sat2-cfn-templates-$(aws sts get-caller-identity --query Account --output text)-$AWS_REGION
    aws s3 mb s3://$TEMPLATE_BUCKET --region $AWS_REGION
    
  5. لنشر قالب CloudFormation، أدخل الأمر التالي. خيار --s3-bucket يرفع القالب إلى الدلو قبل إنشاء المكدس.

    root@kitploit:~
    aws cloudformation deploy --template-file 2-sat2-codebuild-prowler.yaml \
    --stack-name sat2 \
    --capabilities CAPABILITY_NAMED_IAM \
    --s3-bucket $TEMPLATE_BUCKET
    
  6. بعد إنشاء المكدس، يمكنك حذف دلو التخزين المؤقت. يتم استخدامه فقط لتسليم القالب إلى CloudFormation.

    root@kitploit:~
    aws s3 rb s3://$TEMPLATE_BUCKET --force
    

وحدة تحكم AWS

إظهار الخطوات

نشر الحل

  1. قم بتنزيل قالب CloudFormation 2-sat2-codebuild-prowler.yaml.
  2. انتقل إلى وحدة تحكم AWS CloudFormation.
  3. في جزء التنقل، اختر Stacks.
  4. اختر Create stack.
  5. ضمن Specify template، حدد Upload a template file.
  6. اختر 2-sat2-codebuild-prowler.yaml الذي قمت بتنزيله في الخطوة 1.
  7. اختر Next.
  8. بالنسبة لـ Stack name، أدخل sat2.
  9. اختر Next.
  10. في صفحة Configure stack options، اختر Next.
  11. في صفحة Review SAS، حدد المربع I acknowledge that AWS CloudFormation might create IAM resources. واختر Submit.

الفحص متعدد الحسابات

يدعم حل تقييم الأمان الذاتي الخدمة (SAT) أيضًا الفحوصات متعددة الحسابات. يجب نشر دور مسبق لكل حساب تريد إجراء الفحص عليه. لتشغيل SATv2 لحسابات متعددة، اتبع التعليمات أدناه. يمكنك اختيار استخدام AWS CLI أو وحدة تحكم AWS.

تفترض هذه التعليمات أن لديك بالفعل المتطلبات الأساسية لعمليات Stack Set. لمزيد من المعلومات، قم بزيارة دليل مستخدم AWS CloudFormation.

ملاحظة: لا تنطبق StackSets على حساب الإدارة. لتقييم حساب الإدارة، قم بنشر 1-sat2-member-role كمكدس CloudFormation.

AWS CloudShell

إظهار الخطوات

الخطوة 1: نشر الدور المسبق

  1. سجل الدخول إلى حساب إدارة AWS الخاص بك.

  2. في شريط التنقل، اختر AWS CloudShell.

  3. حدد الحساب الذي ستشغل منه فحص Prowler. يستخدم العملاء عادةً حساب أدوات أمنية أو حساب تدقيق. دوّن معرف الحساب لمعلمة ProwlerAccountID.

  4. لتنزيل قالب CloudFormation، أدخل الأمر التالي.

    root@kitploit:~
    wget https://raw.githubusercontent.com/awslabs/aws-security-assessment-solution/main/1-sat2-member-roles.yaml
    
  5. قم بنشر قالب CloudFormation عبر CloudFormation StackSets. قم بتحديث المعلمات التالية:

    • استبدل <aws-account-id> بمعرف الحساب الذي ستشغل منه Prowler.
    • استبدل <region> بالمنطقة التي تريد نشر القالب فيها.
    root@kitploit:~
    aws cloudformation create-stack-set --template-body file://1-sat2-member-roles.yaml \
    --stack-set-name sat2-member-roles \
    --permission-model SERVICE_MANAGED \
    --auto-deployment Enabled=true,RetainStacksOnAccountRemoval=false \
    --capabilities CAPABILITY_NAMED_IAM \
    --parameters ParameterKey=ProwlerAccountID,ParameterValue=<aws-account-id> \
    --region <region>
    
  6. استخدم الأمر التالي لإنشاء مثيلات مكدس لكل حساب في مؤسستك. يمكنك استهداف وحدة تنظيمية (OU) محددة، أو وحدة OU الجذر. قم بتحديث المعلمات التالية:

    • استبدل <root-ou> بـ معرف جذر المؤسسة.
    • استبدل <region> بالمنطقة التي تريد نشر القالب فيها.
    root@kitploit:~
    aws cloudformation create-stack-instances --stack-set-name sat2-member-roles \
    --deployment-targets OrganizationalUnitIds='["<root-ou>"]' \
    --regions '["<region>"]' \
    --operation-preferences FailureTolerancePercentage=100,MaxConcurrentPercentage=100 \
    --region <region>
    
  7. حدد ما إذا كان لديك مسؤول مفوض أو سياسة موارد موجودة بالفعل لحساب Prowler الخاص بك. هناك حاجة إلى خيار واحد فقط ويتم تشجيع سياسة الموارد لأنها أكثر تفصيلاً.

    ملاحظة: سياسات الموارد غير متوفرة في GovCloud، لذا ستحتاج إلى استخدام مسؤول مفوض.

    7أ. قد يكون حساب Prowler الخاص بك لديه بالفعل تفويض. يمكنك استخدام الأوامر التالية للتحقق:

    root@kitploit:~
    aws organizations list-delegated-administrators
    

    7ب. قد يكون حساب Prowler الخاص بك لديه بالفعل سياسة موارد. يمكنك استخدام الأوامر التالية للتحقق:

    root@kitploit:~
    aws organizations describe-resource-policy
    
  8. إذا لم يكن لديك مسؤول مفوض أو سياسة موارد، يمكنك استخدام الأوامر التالية لإضافة الوصول المناسب.

    ملاحظة: إذا لم تتمكن من توفير وصول ListAccount مفوض، يمكنك توفير معلمة MultiAccountListOverride في قالب 2-sat2-codebuild-prowler.

    ملاحظة: إذا كنت تستخدم GovCloud، استخدم الخطوة 8أ لإنشاء مسؤول مفوض. إذا كنت تستخدم منطقة تجارية، استخدم الخطوة 8ب لتوفير وصول بأقل صلاحيات إلى ListAccounts.

    8أ. استخدم الأمر التالي لتفويض مسؤول إذا لم يكن لديك واحد بالفعل. استبدل <aws-account-id> بمعرف الحساب الذي ستشغل منه Prowler.

    root@kitploit:~
    aws organizations register-delegated-administrator <aws-account-id>
    

    8ب. استخدم الأوامر التالية لإضافة سياسة موارد.

    • استبدل <aws-account-id> بمعرف الحساب الذي ستشغل منه Prowler.

      root@kitploit:~
      aws organizations put-resource-policy --content \
      '{
          "Version": "2012-10-17",
          "Statement": [
          {
              "Sid": "Statement",
              "Effect": "Allow",
              "Principal": {
              "AWS": "arn:aws:iam::<aws-account-id>:root"
              },
              "Action": [
                  "organizations:ListAccounts",
                  "organizations:DescribeAccount",
                  "organizations:ListTagsForResource",
                  "organizations:ListParents",
                  "organizations:DescribeOrganizationalUnit"
      	    ],
              "Resource": "*"
          }
          ]
      }'
      

    ملاحظة: ListParents و DescribeOrganizationalUnit هما ما يملآن عمودي و في النتائج. احذفهما وسيستمر باقي الفحص في العمل، لكن هذين العمودين سيعودان فارغين.

الخطوة 2: نشر حل SATv2

ملاحظة: تأكد من أنك قمت بالتبديل إلى الحساب الذي حددت أنه سيشغل Prowler.

  1. لتنزيل القالب، افتح AWS CloudShell في حساب Prowler وأدخل الأمر التالي.

    root@kitploit:~
    wget https://raw.githubusercontent.com/awslabs/aws-security-assessment-solution/main/2-sat2-codebuild-prowler.yaml
    
  2. لإنشاء دلو S3 لتخزين القالب مؤقتًا، أدخل الأوامر التالية. القالب أكبر من 51,200 بايت، لذا يتطلب CloudFormation رفعه إلى S3 بدلاً من تمريره مباشرة.

    root@kitploit:~
    TEMPLATE_BUCKET=sat2-cfn-templates-$(aws sts get-caller-identity --query Account --output text)-$AWS_REGION
    aws s3 mb s3://$TEMPLATE_BUCKET --region $AWS_REGION
    
  3. لنشر القالب في حساب Prowler. اضبط MultiAccountScan على true لفحص جميع الحسابات في مؤسستك. خيار --s3-bucket يرفع القالب إلى الدلو قبل إنشاء المكدس.

    root@kitploit:~
    aws cloudformation deploy --template-file 2-sat2-codebuild-prowler.yaml \
    --stack-name sat2-prowler \
    --capabilities CAPABILITY_NAMED_IAM \
    --s3-bucket $TEMPLATE_BUCKET \
    --parameter-overrides MultiAccountScan=true
    
  4. بعد إنشاء المكدس، يمكنك حذف دلو التخزين المؤقت. يتم استخدامه فقط لتسليم القالب إلى CloudFormation.

    root@kitploit:~
    aws s3 rb s3://$TEMPLATE_BUCKET --force
    

وحدة تحكم AWS

إظهار الخطوات

الخطوة 1: نشر الدور المسبق

  1. قم بتنزيل ملفي 1-sat2-member-roles.yaml و 2-sat2-codebuild-prowler.yaml.

  2. قم بنشر قالب CloudFormation عبر CloudFormation StackSets. قم بتحديث المعلمات التالية:

    • استبدل <aws-account-id> بمعرف الحساب الذي ستشغل منه Prowler.
    • استبدل <region> بالمنطقة التي تريد نشر القالب فيها.3. انتقل إلى وحدة تحكم AWS CloudFormation.
  3. في جزء التنقل، اختر StackSets.

  4. اختر Create StackSet.

  5. بالنسبة إلى Permissions، اترك Service-managed permissions محددًا.

  6. ضمن Specify template، حدد Upload a template file.

  7. اختر 1-sat2-member-roles.yaml الذي نزّلته في الخطوة 1-1.

  8. اختر Next.

  9. بالنسبة إلى Stack name، أدخل sat2-member-role.

  10. بالنسبة إلى Parameters، أدخل ما يلي:

    • ProwlerAccountID - معرف الحساب الذي ستشغّل Prowler منه.
  11. اختر Next.

  12. في صفحة Configure StackSet options، اختر Next.

  13. في Set deployment options، أدخل ما يلي:

    1. بالنسبة إلى Deployment targets، اترك Deploy to organization محددًا.
    2. بالنسبة إلى Specify regions، اختر us-east-1.
    3. بالنسبة إلى Region Concurrency، اختر Parallel.
  14. اختر Next.

  15. في صفحة Review، حدد المربع I acknowledge that AWS CloudFormation might create IAM resources. واختر Submit.

الخطوة 2: تفعيل المسؤول المفوض لـ AWS Organizations

تحقق مما إذا كان لديك مسؤول مفوض أو سياسة موارد موجودة بالفعل للحساب الذي ترغب في نشر Prowler فيه. يُنصح بتشغيل Prowler من حساب أدوات الأمان (Audit) الخاص بك. لتحديث أو التحقق من أن حساب التدقيق لديه أذونات لـ ListAccounts، اتبع هذه الخطوات.

  1. انتقل إلى وحدة تحكم AWS Organization.

  2. في جزء التنقل، اختر Settings.

  3. بالنسبة إلى Delegated administrator for AWS Organizations، أدرج العبارة التالية.

    root@kitploit:~
    {
        "Version": "2012-10-17",
        "Statement": [
        {
            "Sid": "Statement",
            "Effect": "Allow",
            "Principal": {
            "AWS": "arn:aws:iam::<aws-account-id>:root"
            },
            "Action": [
                    "organizations:ListAccounts",
                    "organizations:DescribeAccount",
                    "organizations:ListTagsForResource",
                    "organizations:ListParents",
                    "organizations:DescribeOrganizationalUnit"
    		    ],
            "Resource": "*"
        }
        ]
    }
    

    ملاحظة: ListParents و DescribeOrganizationalUnit هما ما يملآن عمودي account_ou_uid و account_ou_name في النتائج. احذفهما وسيستمر باقي الفحص في العمل، لكن هذين العمودين سيعودان فارغين.

الخطوة 3: نشر حل SATv2

  1. انتقل إلى وحدة تحكم AWS CloudFormation في الحساب الذي ستشغّل الأداة منه (ProwlerAccountID).

  2. في جزء التنقل، اختر Stacks.

  3. اختر Create stack.

  4. ضمن Specify template، حدد Upload a template file.

  5. اختر 2-sat2-codebuild-prowler.yaml الذي نزّلته في الخطوة 1-1.

  6. اختر Next.

  7. بالنسبة إلى Stack name، أدخل sat2-prowler.

  8. في قسم Parameters، بالنسبة إلى MultiAccountScan، حدد true.

  9. يمكنك اختياريًا تفعيل إعداد التقارير للحصول على ملخص لجميع الحسابات في ملف csv واحد. بالنسبة إلى Reporting، حدد true.

  10. اختر Next.

  11. في صفحة Configure stack options، اختر Next.

  12. في صفحة Review SAS، حدد المربع I acknowledge that AWS CloudFormation might create IAM resources. واختر Submit.

مراجعة النتائج

بعد نشر الحل، تبدأ دالة Lambda مشروع CodeBuild. بعد انتهاء مشروع CodeBuild من البناء، سيتم رفع نتائج Prowler إلى حاوية Amazon S3 التي تم إنشاؤها. إذا قمت بتكوين الإشعارات، فستتلقى بريدًا إلكترونيًا عند اكتمال فحص Prowler. إذا قمت بتكوين إعداد التقارير، فسيكون لديك ملف csv موحّد في مجلد /reports.

إذا لم تقم بتكوين تنبيهات البريد الإلكتروني، يمكنك متابعة التقدم من وحدة تحكم CodeBuild.

لمراجعة النتائج، اتبع هذه الخطوات.

  1. انتقل إلى وحدة تحكم Amazon S3 في الحساب الذي نشرت فيه Prowler.

  2. حدد الحاوية التي تبدأ بـ sat2-prowler-prowlerfindingsbucket-

  3. اختر المجلد الخاص بصيغة الإخراج التي تريدها، ثم مجلدي scan_date= و scan_time= للتشغيل الذي تريد مراجعته.

    لكل صيغة إخراج مجلدها العلوي الخاص بها، وكل تشغيل يكتب في مجلد فرعي scan_date=YYYY-MM-DD/scan_time=HHMMSS أسفله. الوقت هو وقت بدء الفحص بتوقيت UTC:

    root@kitploit:~
    csv/scan_date=2026-09-01/scan_time=204955/         نتائج Prowler بصيغة CSV، كما كُتبت
    html/scan_date=2026-09-01/scan_time=204955/        تقارير HTML لكل حساب
    json/scan_date=2026-09-01/scan_time=204955/        JSON لكل حساب
    ocsf-json/scan_date=2026-09-01/scan_time=204955/   OCSF JSON لكل حساب
    parquet/scan_date=2026-09-01/scan_time=204955/     النسخة التي تستعلم عنها Athena
    compliance/scan_date=2026-09-01/scan_time=204955/  ملفات CSV للامتثال، عند إنتاجها
    reports/                                           CSV الموحّد ولوحة المعلومات
    

    كل تشغيل يحصل على مجلده الخاص، لذا فإن تشغيل الحل مرة أخرى لا يخلط أبدًا النتائج الجديدة بالقديمة، بما في ذلك عند تشغيله أكثر من مرة في نفس اليوم. يتم الاحتفاظ بالتشغيلات السابقة حتى تتمكن من مقارنتها.

  4. لكل حساب، سيكون هناك 4 أنواع ملفات (csv, html, json, json-ocsf) بصيغة prowler-output-<aws-account-id>-<datetime>.

  5. حدد أحد كائنات html.

  6. اختر Open.

    Prowler Output

  7. ستفتح نافذة جديدة مع تقريرك. يمكنك استخدام عوامل التصفية لتحديد النتائج وترتيب أولوياتها.

    Prowler findings

لوحة معلومات SATv2 (موصى بها)

إذا قمت بتفعيل إعداد التقارير، فستكون لوحة معلومات html ثابتة في مجلد التقارير.

  1. حدد كائن satv2-dashboard.html، واختر Open.
  2. حدد ملف csv الموحّد، واختر Actions، ثم Share with a presigned URL.

    ملاحظة: لا تشارك رابط presigned URL الخاص بك مع أي شخص. يستخدم رابط presigned URL بيانات اعتماد أمنية لمنح إذن محدود بالوقت لتنزيل الكائنات. يمكن إدخال الرابط في متصفح أو استخدامه بواسطة برنامج لتنزيل الكائن. بيانات الاعتماد المستخدمة بواسطة رابط presigned URL هي بيانات مستخدم AWS الذي أنشأ الرابط. لمزيد من المعلومات، راجع مشاركة الكائنات باستخدام روابط presigned URLs.

  3. بالنسبة إلى number of minutes، أدخل 1.
  4. الصق الرابط في صفحة satv2-dashboard.html.
  5. راجع مثالًا على إخراج لوحة المعلومات في img/satv2-dashboard.png

لوحة معلومات Prowler

يحتوي Prowler على لوحة معلومات مدمجة لمراجعة النتائج. لاستخدام لوحة معلومات Prowler، يجب تثبيت Prowler محليًا ويجب تنزيل نتائج Prowler محليًا.

يجب أن يكون لديك AWS Command Line Interface (CLI) وبيانات اعتماد صالحة. لمزيد من المعلومات، راجع دليل مستخدم AWS Command Line interface.

  1. ثبّت Prowler. لمزيد من المعلومات، راجع تعليمات تثبيت Prowler.

    root@kitploit:~
    pip install prowler
    
  2. احصل على اسم حاوية Amazon S3. اسم الحاوية موجود في وحدة تحكم CloudFormation كمورد ProwlerFindingsBucket. بدلاً من ذلك، انتقل إلى وحدة تحكم S3 وابحث عن حاوية بصيغة {stack_name}-prowlerfindingsbucket-{ID}

  3. نزّل ملفات CSV وبيانات الامتثال من S3. إذا لم تقم بتشغيل فحص كامل، فقد لا يكون لديك بيانات امتثال. استبدل {bucket_name} باسم حاويتك، و {scan_date} و {scan_time} بالتشغيل الذي تريد تحميله، على سبيل المثال 2026-09-01 و 204955. لسرد التشغيلات المتاحة، استخدم aws s3 ls s3://{bucket_name}/csv/scan_date={scan_date}/.

    root@kitploit:~
    aws s3 sync s3://{bucket_name}/compliance/scan_date={scan_date}/scan_time={scan_time}/ output/compliance/
    aws s3 sync s3://{bucket_name}/csv/scan_date={scan_date}/scan_time={scan_time}/ output/
    

    ملاحظة: قم بمزامنة تشغيل واحد في كل مرة. تقرأ لوحة معلومات Prowler output/*.csv ولا تبحث في المجلدات الفرعية، لذا فإن نسخ مجلدات scan_date= نفسها إلى output/ سينتج لوحة معلومات فارغة. تحميل تشغيلين في وقت واحد سيعرض كل نتيجة مرتين.

  4. شغّل لوحة المعلومات. استخدم الأمر التالي لتشغيل لوحة المعلومات. افتراضيًا، ستبدأ على http://127.0.0.1:11666/.

    root@kitploit:~
    prowler dashboard
    

أنواع الفحص

افتراضيًا، سيشغّل SAT2 فحصًا أساسيًا يتضمن 13 فحصًا. يمكنك اختيار تشغيل فحص متوسط أو كامل باختيار قيمة معامل ProwlerScanType مختلفة.

على سبيل المثال، فحص حساب واحد باستخدام خيار الفحص المتوسط سيستخدم هذا الأمر:```bash aws cloudformation deploy --template-file 2-sat2-codebuild-prowler.yaml
--stack-name sat2-prowler
--capabilities CAPABILITY_NAMED_IAM
--s3-bucket $TEMPLATE_BUCKET
--parameter-overrides ProwlerScanType=Intermediate

root@kitploit:~
>ملاحظة: خيار `--s3-bucket` مطلوب لأن القالب أكبر من 51,200 بايت، وهو الحد الأقصى الذي يقبله CloudFormation بشكل مضمّن. `$TEMPLATE_BUCKET` هو حاوية التخزين المؤقتة التي تم إنشاؤها في خطوات النشر عبر CloudShell أعلاه. وينطبق ذلك على كل مثال `aws cloudformation deploy` في هذا README.

تُضاف الفحوصات بشكل متكرر، ولمعرفة أحدث الفحوصات، شغّل الأمر `prowler aws --list-checks`. تم تقديم مثال أدناه لكل مستوى من مستويات الفحص.

### الفحص الأساسي
لعرض قائمة الفحوصات، راجع [الفحوصات الأساسية](https://github.com/awslabs/aws-security-assessment-solution/blob/main/checks/basic_checks.txt).

- فحص يدوي - الحفاظ على تفاصيل الاتصال الحالية.
- العثور على بيئات تشغيل Lambda القديمة.
- التأكد من تفعيل CloudTrail في جميع المناطق.
- التأكد من تفعيل AWS Config في جميع المناطق.
- التأكد من عدم وجود مجموعات أمان تسمح بالدخول من 0.0.0.0/0 أو ::/0 إلى أي منفذ.
- التحقق من تفعيل GuardDuty.
- التأكد من أن سياسة كلمة مرور IAM تتطلب حرفًا صغيرًا واحدًا على الأقل.
- التأكد من أن سياسة كلمة مرور IAM تتطلب رقمًا واحدًا على الأقل.
- التأكد من أن سياسة كلمة مرور IAM تتطلب رمزًا واحدًا على الأقل.
- التأكد من أن سياسة كلمة مرور IAM تتطلب حرفًا كبيرًا واحدًا على الأقل.
- التأكد من تفعيل MFA للحساب الجذر.
- التأكد من تدوير مفاتيح الوصول كل 90 يومًا أو أقل.
- التأكد من عدم وجود حاويات S3 مفتوحة للجميع أو لأي مستخدم AWS.

### الفحص المتوسط
لعرض قائمة الفحوصات، راجع [الفحوصات المتوسطة](https://github.com/awslabs/aws-security-assessment-solution/blob/main/checks/intermediate_checks.txt).

سيضيف هذا الفحص `--severity critical high` إلى خيارات فحص Prowler. مع تحديد هذا الخيار، سيشغّل Prowler جميع الفحوصات الأمنية التي تؤدي إلى خطورة حرجة أو عالية.

### الفحص الكامل
لعرض قائمة الفحوصات، راجع [الفحوصات الكاملة](https://github.com/awslabs/aws-security-assessment-solution/blob/main/checks/full_checks.txt).

لا يضيف هذا الخيار أي معاملات إضافية إلى فحص Prowler. وسيؤدي إلى تشغيل Prowler لأكثر من 500 فحص.

يمكنك أيضًا استخدام الفحص الكامل لتخصيص الفحص بالطريقة التي تريدها.

بالنسبة إلى **ProwlerScanType** اختر **Full**.

بالنسبة إلى **ProwlerOptions**، أضف الفحص. على سبيل المثال، للتحقق فقط من تفعيل GuardDuty، أدخل:

`aws --ignore-exit-code-3 -c guardduty_is_enabled`

## الإشعارات

يمكنك اختياريًا تحديد عنوان بريد إلكتروني في معامل EmailAddress عند نشر قالب CloudFormation. سيؤدي ذلك إلى إنشاء موضوع SNS وإرسال بريد إلكتروني عند اكتمال مهمة CodeBuild.

قد يكون هذا مفيدًا عند تشغيل فحوصات أطول، أو عبر العديد من الحسابات.

على سبيل المثال، سيستخدم فحص حساب واحد مع إشعارات البريد الإلكتروني هذا الأمر:```bash
aws cloudformation deploy --template-file 2-sat2-codebuild-prowler.yaml \
--stack-name sat2-prowler \
--capabilities CAPABILITY_NAMED_IAM \
--s3-bucket $TEMPLATE_BUCKET \
--parameter-overrides [email protected]

مع أو بدون تعيين معلمة EmailAddress الاختيارية، يمكنك عرض التقدم في وحدة تحكم CodeBuild.

  1. انتقل إلى وحدة تحكم CodeBuild.

  2. في جزء التنقل، ضمن Build، اختر Build projects.

  3. اختر مشروع البناء الذي يبدأ بـ ProwlerCodeBuild- .

  4. ضمن Build history، سترى آخر تشغيل.

    مشروع CodeBuild

  5. اختياريًا، يمكنك اختيار Start build لتشغيل فحص آخر بالخيارات التي اخترتها عند نشر الحل.

ملخص التقارير

يمكنك اختياريًا تفعيل التقارير لتلخيص نتائج فحوصات Prowler المتعددة في ملف واحد. قد يكون هذا مفيدًا عند تشغيل Prowler عبر حسابات متعددة في مؤسسة AWS. ميزة ملخص التقارير معطلة افتراضيًا. لتفعيل التقارير، اضبط معلمة Reporting على true عند نشر قالب CloudFormation. سيؤدي ذلك إلى إنشاء WorkGroup في Athena، وجدول Glue، وتشغيل استعلام تلقائيًا لتوحيد النتائج. يقع ملف csv الملخص في نفس حاوية S3 الخاصة بنتائج Prowler داخل مجلد /reports.

إذا حددت عنوان بريد إلكتروني بينما التقارير مفعلة، فستتلقى بريدًا إلكترونيًا ثانيًا عند انتهاء استعلام Athena.

كيفية بناء جدول Athena

يستعلم Athena عن نسخة parquet/ من النتائج بدلاً من ملف CSV الخاص بـ Prowler. يحول مشروع CodeBuild كل CSV إلى Parquet قبل رفعه، ويشير جدول Glue prowler إلى parquet/.

يوجد التحويل لأن Prowler 5.17.0 والإصدارات الأحدث تتضمن markdown متعدد الأسطر في بيانات الفحص الوصفية، لذا تحتوي الحقول DESCRIPTION وRISK وREMEDIATION_* على أسطر جديدة. يقتبس Prowler تلك الحقول بشكل صحيح، لكن Athena يقرأ CSV عبر TextInputFormat الخاص بـ Hive، الذي يقسم السجلات على الأسطر الجديدة قبل تشغيل أي SerDe. لذلك يعيد الجدول المدعوم بـ CSV صفًا واحدًا لكل سطر فعلي بدلاً من صف واحد لكل نتيجة، ويسقط بصمت الأعمدة التي تتبع أول حقل متعدد الأسطر. لا يستخدم Parquet الأسطر الجديدة كحدود للسجلات، لذا يبقى النص سليمًا. كما يضغط Parquet نص المعالجة المتكرر بشكل كبير، مما يجعل الاستعلامات أرخص: مجموعة ملفات CSV بحجم 116 ميجابايت تصبح حوالي 3 ميجابايت من Parquet.

يُترك مجلد csv/ تمامًا كما كتبه Prowler، لذا تستمر لوحة تحكم Prowler وأي أدوات CSV موجودة في العمل.

سجل الفحوصات والتكرارات

الجدول مقسم على scan_date و scan_time، لذا يحصل كل تشغيل للحل على قسم خاص به. يترتب على ذلك أمران:

  • يغطي ملف CSV الموحد في /reports أحدث تشغيل فقط، لذا فإن إعادة تشغيل الحل لا تحسب النتائج مرتين أبدًا، ولا تبقى النتائج التي لم تعد موجودة في التقرير.
  • تبقى التشغيلات السابقة قابلة للاستعلام. scan_date وscan_time عمودان عاديان، لذا يمكنك مقارنة النتائج بين التشغيلات. يقوم استعلام Prowler scan trend المحفوظ بذلك، صف واحد لكل تشغيل.

التقسيم على التاريخ وحده غير كافٍ. فحص ثانٍ في نفس اليوم سيكتب في نفس القسم، وسيتم دمج نتائجه مع نتائج التشغيل السابق بدلاً من استبدالها. أي نتيجة لم يعد الفحص الأحدث يبلغ عنها، بسبب حذف مورد، أو مغادرة حساب للمؤسسة، أو توقف دور عضو عن العمل، أو تضييق نوع الفحص، ستظل تظهر في التقرير وتبدو حديثة.

يتم تسجيل الأقسام الجديدة تلقائيًا: ينفذ Lambda الخاص بالتقارير MSCK REPAIR TABLE قبل تشغيل استعلام التوحيد، لذا لا يوجد زاحف لجدولته ولا شيء لإضافته يدويًا.

إذا كتبت استعلامات Athena الخاصة بك، فقصرها على تشغيل واحد أو ستجمع كل الفحوصات في الحاوية دفعة واحدة. كلا المفتاحين بعرض ثابت، لذا فإن مقارنتهما معًا مرتبطين يفرز التشغيلات زمنيًا:```sql SELECT severity, count(*) FROM "{bucket_name}"."prowler" WHERE status = 'FAIL' AND concat(scan_date, scan_time) = ( SELECT max(concat(scan_date, scan_time)) FROM "{bucket_name}"."prowler" ) GROUP BY severity

root@kitploit:~
لاستعلام عن يوم كامل عبر جميع عمليات التشغيل الخاصة به، قم بالتصفية على `scan_date` فقط.

>ملاحظة: إذا كنت تقوم بترقية نشر استخدم التخطيط السابق القائم على `scan_date` فقط، فإن النتائج من قبل الترقية غير مرئية للجدول الجديد، لأن مسارات S3 الخاصة بها لا تحتوي على مستوى `scan_time=`. البيانات لم تُمس في S3. إما أن تترك عملية الفحص التالية تعيد ملء الجدول، أو انقل الملفات القديمة إلى مجلد `scan_time=`، على سبيل المثال `aws s3 mv s3://{bucket_name}/parquet/scan_date={scan_date}/ s3://{bucket_name}/parquet/scan_date={scan_date}/scan_time=000000/ --recursive`، ثم قم بتشغيل `MSCK REPAIR TABLE prowler` في Athena.

على سبيل المثال، عملية فحص متعددة الحسابات مع تمكين التقارير والتنبيهات عبر البريد الإلكتروني ستستخدم هذا الأمر:```bash
aws cloudformation deploy --template-file 2-sat2-codebuild-prowler.yaml \
--stack-name sat2-prowler \
--capabilities CAPABILITY_NAMED_IAM \
--s3-bucket $TEMPLATE_BUCKET \
--parameter-overrides MultiAccountScan=true Reporting=true [email protected]

مخطط بنية إعداد التقارير

يتم إنشاء استعلامين محفوظين كأمثلة:

الاستعلام المحفوظما يوضحه
ملخص تنظيم Prowlerعمليات الفحص الفاشلة عبر كل حساب تم تقييمه، لأحدث عملية فحص.
اتجاه فحص Prowlerعمليات الفحص الفاشلة حسب تاريخ الفحص وشدته، لمقارنة عمليات التشغيل بمرور الوقت.

لمراجعة وتشغيل استعلام، اتبع الخطوات التالية:

  1. انتقل إلى وحدة تحكم Amazon Athena.

  2. اختر مجموعة العمل التي تبدأ بـ sat2-prowler-*.

  3. اختر علامة التبويب الاستعلامات المحفوظة.

  4. حدد الاستعلام الذي تريد تشغيله باختيار المعرّف.

    استعلام Athena المحفوظ

  5. اختر تشغيل لتشغيل الاستعلام.

    نتائج استعلام Athena المحفوظ

الأسئلة الشائعة (FAQ)

  1. هل هناك تكلفة؟
    • تم تصميم هذا الحل ليعمل ضمن AWS Free Tier.
    • بالنسبة لـ Amazon CodeBuild، يحصل العملاء على 100 دقيقة بناء شهريًا.
    • بالنسبة للعملاء الذين تجاوزوا بالفعل الطبقة المجانية مع CodeBuild وS3 وLambda، تبلغ تكلفة هذا الحل أقل من دولار واحد للتشغيل.
  2. هل هذه أداة مراقبة وإعداد تقارير مستمرة؟
    • لا. هذا تقييم لمرة واحدة، نوصي العملاء باستخدام AWS Security Hub للتقييمات المستمرة.
  3. هل يتكامل هذا مع GuardDuty أو Security Hub أو CloudWatch وما إلى ذلك؟
    • لا. يمكنك اتباع الإرشادات الواردة في هذه المدونة لدمج Prowler وSecurity Hub.
  4. كيف يمكنني معالجة المشكلات الواردة في التقارير؟
    • بشكل عام، يجب وصف المشكلات في التقرير مع تصحيحات يسهل تحديدها. يرجى أيضًا متابعة الوثائق العامة لكل أداة (Prowler). إذا كان ذلك غير كافٍ، فيرجى التواصل مع فريق حساب AWS الخاص بك أو دعم AWS لمساعدتك في فهم التقارير والعمل نحو معالجة المشكلات.
  5. ما النتائج التي يبلغ عنها Prowler لـ SATv2؟
    الفحصالتخفيف
    التحقق مما إذا كانت عمليات استدعاء واجهة برمجة التطبيقات لدوال Lambda مسجلة بواسطة CloudTrail.CloudTrail هو تكوين على مستوى حساب AWS. يجب تمكين CloudTrail بشكل مستقل عن SATv2.
    تمكين حماية الإنهاء لمكدسات CloudFormationيُقصد من SATv2 تشغيله لنقطة زمنية معينة، ثم حذفه. إذا تم إنهاء المكدس، تظل النتائج محفوظة في حاوية S3.
    التحقق مما إذا كانت مجموعات سجلات CloudWatch محمية بواسطة AWS KMS.بيانات مجموعة السجلات مشفرة دائمًا في CloudWatch Logs. افتراضيًا، يستخدم CloudWatch Logs التشفير من جانب الخادم لبيانات السجلات غير النشطة. لا يتم تكوين مفتاح KMS مُدار من قبل العميل لتوفير التكاليف.
    التحقق مما إذا كانت مجموعات سجلات CloudWatch لديها سياسة استبقاء لأيام محددة.تم تعيين استبقاء مجموعة السجلات إلى 7 أيام حسب التصميم. يبحث هذا الفحص عن مجموعات السجلات ذات الاستبقاء الأقل من عام.
    التحقق مما إذا كانت حاويات S3 قد تم تمكين تشفير KMS لها.جميع حاويات Amazon S3 لديها تشفير مُكوّن افتراضيًا، ويتم تشفير الكائنات تلقائيًا باستخدام التشفير من جانب الخادم مع مفاتيح مُدارة بواسطة Amazon S3 (SSE-S3). لا يتم تكوين مفتاح KMS مُدار من قبل العميل لتوفير التكاليف.
    التحقق مما إذا كان حذف MFA لحاويات S3 غير ممكّن.يمكن إعادة إنشاء نتائج تقييم Prowler ولا تتطلب حذف MFA.
    التحقق مما إذا كانت حاويات S3 قد تم تمكين قفل الكائنات فيهايمكن إعادة إنشاء نتائج تقييم Prowler ولا تتطلب قفل كائنات S3.
    التحقق مما إذا كانت حاويات S3 قد تم تمكين تسجيل الوصول من الخادم فيهالا تتطلب نتائج تقييم Prowler تسجيل الوصول من الخادم.

التنظيف

بعد تشغيل الحل، يجب عليك حذف مكدسات CloudFormation لإزالة الموارد التي لم تعد هناك حاجة إليها. ستبقى حاوية S3 التي تحتوي على نتائج فحص Prowler.

لإزالة حل التقييم الأمني من حسابك، اتبع الخطوات التالية.

  1. انتقل إلى وحدة تحكم AWS CloudFormation في الحساب الذي قمت بتشغيل الأداة منه (ProwlerAccountID).

  2. في جزء التنقل، اختر المكدسات.

  3. اختر مكدس sat2-prowler.

  4. اختر حذف.

إذا قمت بنشر StackSet لدور العضو لفحص حسابات متعددة، فاتبع الخطوات التالية.

  1. انتقل إلى وحدة تحكم AWS CloudFormation في الحساب الذي أنشأت فيه StackSet لدور العضو.

  2. في جزء التنقل، اختر مجموعات المكدسات.

  3. اختر مجموعة المكدسات sat2-member-roles.

  4. اختر إجراءات، ثم حذف المكدسات من مجموعة المكدسات.

  5. حدد نفس معرّف وحدة AWS OU عند إنشاء مجموعة المكدسات.

  6. بالنسبة لـ تحديد المناطق، اختر إضافة جميع المناطق.

  7. اختر التالي، ثم إرسال.

بعد اكتمال التغيير، يمكنك حذف مجموعة المكدسات.

  1. اختر مجموعة المكدسات sat2-member-roles.

  2. اختر إجراءات، ثم حذف مجموعة المكدسات.

إذا كنت تريد إزالة حاوية Amazon S3 التي تحتوي على نتائج الفحص، فاتبع الخطوات الواردة في دليل مستخدم Amazon S3 لحذف الكائنات والحاوية. إذا قمت بتشغيل الحل مرة أخرى، فسيتم إنشاء حاوية S3 جديدة لنتائجك.

الأمان

راجع المساهمة لمزيد من المعلومات.

الترخيص

هذا المشروع مرخص بموجب ترخيص Apache-2.0.

تنزيل الأداة
account_ou_uid
account_ou_name