الأمان والأداء

قائمة التدقيق الأمني

18 دقيقة الدرس 31 من 35

قائمة التدقيق الأمني

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

فهم التدقيق الأمني

التدقيق الأمني هو تقييم رسمي لضوابط الأمان والممارسات والتكوينات في التطبيق. على عكس اختبار الاختراق (الذي يستغل الثغرات بشكل نشط)، يركز التدقيق على تحديد نقاط الضعف المحتملة من خلال التحليل الشامل.

التدقيق مقابل اختبار الاختراق: التدقيق يوثق ما يمكن أن يحدث من خطأ؛ اختبار الاختراق يوضح ما سيحدث من خطأ. كلاهما ضروري للتقييم الأمني الشامل.

الاستعداد قبل التدقيق

قبل إجراء التدقيق الأمني، اجمع معلومات شاملة عن تطبيقك:

<!-- قائمة جرد التطبيق -->

1. مجموعة التقنيات:
- خادم الويب (Apache, Nginx)
- إطار عمل التطبيق (Laravel, Express, Django)
- نظام قاعدة البيانات (MySQL, PostgreSQL, MongoDB)
- خدمات وواجهات برمجية تابعة لجهات خارجية

2. طرق المصادقة:
- المصادقة المبنية على الجلسة
- المصادقة المبنية على الرمز (JWT)
- موفرو OAuth
- المصادقة متعددة العوامل

3. تخزين البيانات:
- مواقع بيانات المستخدم
- أنواع البيانات الحساسة
- طرق التشفير
- إجراءات النسخ الاحتياطي

4. البنية الشبكية:
- مواقع الخوادم
- قواعد جدار الحماية
- موازنات الحمل
- تكوين CDN

دليل اختبار الأمان OWASP

يوفر دليل اختبار OWASP إطار عمل شامل لاختبار الأمان. ركز على هذه المجالات الحرجة:

<!-- فئات اختبار OWASP -->

1. جمع المعلومات:
- تحديد خادم الويب والأطر والإصدارات
- اكتشاف الملفات والمجلدات المخفية
- رسم خريطة بنية التطبيق

2. التكوين والنشر:
- اختبار تكوين SSL/TLS
- مراجعة رؤوس أمان HTTP
- التحقق من بيانات الاعتماد الافتراضية

3. إدارة الهوية:
- اختبار عملية تسجيل المستخدم
- التحقق من توفير الحساب
- فحص تطبيق سياسة كلمة المرور

4. اختبار المصادقة:
- اختبار بيانات الاعتماد الضعيفة
- التحقق من إدارة الجلسة
- فحص تجاوز المصادقة

5. اختبار التفويض:
- اختبار تصعيد الامتيازات
- التحقق من ضوابط الوصول
- فحص مراجع الكائنات المباشرة غير الآمنة

6. إدارة الجلسة:
- اختبار تثبيت الجلسة
- التحقق من انتهاء مهلة الجلسة
- فحص رموز الجلسة المكشوفة

7. التحقق من المدخلات:
- اختبار ثغرات XSS
- فحص حقن SQL
- التحقق من قيود رفع الملفات

8. معالجة الأخطاء:
- اختبار الكشف عن المعلومات
- التحقق من رسائل الخطأ
- فحص كشف تتبع المكدس

9. التشفير:
- التحقق من تنفيذ التشفير
- اختبار الخوارزميات الضعيفة
- فحص ممارسات إدارة المفاتيح

10. منطق الأعمال:
- اختبار ظروف السباق
- التحقق من سلامة المعاملات
- فحص عيوب المنطق

أدوات التدقيق الأمني

تعتمد عمليات التدقيق الأمني الاحترافية على أدوات متخصصة لتحديد الثغرات بكفاءة:

<!-- أدوات التدقيق الأمني الأساسية -->

1. OWASP ZAP (Zed Attack Proxy):
- ماسح أمان تطبيقات ويب مجاني ومفتوح المصدر
- قدرات اختبار تلقائية ويدوية
- أوضاع المسح النشط والسلبي

الاستخدام الأساسي:
# تشغيل ZAP
zap.sh -cmd -quickurl http://example.com

# إنشاء تقرير
zap.sh -cmd -quickurl http://example.com -quickout report.html

2. Burp Suite Community Edition:
- وكيل اعتراض للاختبار اليدوي
- عنكبوت لرسم خريطة بنية التطبيق
- مكرر لتعديل وإعادة إرسال الطلبات

3. Nikto:
- ماسح خادم الويب
- يحدد البرامج القديمة والتكوينات الخاطئة

nikto -h http://example.com -output nikto-report.html

4. SQLMap:
- كشف واستغلال حقن SQL التلقائي

sqlmap -u "http://example.com/page?id=1" --batch --banner

5. Nmap:
- اكتشاف الشبكة والتدقيق الأمني

nmap -sV -sC -oA scan-results example.com

6. SSL Labs (ssllabs.com/ssltest/):
- محلل تكوين SSL/TLS عبر الإنترنت
- يوفر درجة أمان مفصلة

7. Security Headers (securityheaders.com):
- يحلل رؤوس أمان HTTP
- يوفر توصيات

8. Observatory by Mozilla:
- تحليل شامل للأمان والخصوصية
- التحقق من أفضل الممارسات
تحذير قانوني: قم فقط بإجراء اختبار الأمان على التطبيقات التي تملكها أو لديك إذن كتابي صريح لاختبارها. اختبار الأمان غير المصرح به غير قانوني في معظم الولايات القضائية.

استخدام OWASP ZAP

OWASP ZAP هي واحدة من أشهر أدوات اختبار الأمان المجانية. إليك كيفية إجراء مسح تلقائي أساسي:

<!-- المسح التلقائي لـ OWASP ZAP -->

1. تثبيت OWASP ZAP:
# التنزيل من https://www.zaproxy.org/
# متاح لأنظمة Windows وmacOS وLinux

2. تكوين المتصفح:
# تعيين وكيل المتصفح إلى localhost:8080
# ستعترض ZAP كل حركة المرور

3. زحف التطبيق:
# انقر بزر الماوس الأيمن على عنوان URL المستهدف في ZAP
# حدد "Attack" > "Spider"
# ستزحف ZAP على جميع الصفحات القابلة للاكتشاف

4. المسح النشط:
# بعد اكتمال الزحف
# انقر بزر الماوس الأيمن على عنوان URL المستهدف
# حدد "Attack" > "Active Scan"
# ستختبر ZAP الثغرات الأمنية

5. مراجعة التنبيهات:
# انقر على علامة التبويب "Alerts"
# راجع النتائج حسب الخطورة:
# - عالية (ثغرات حرجة)
# - متوسطة (مشاكل كبيرة)
# - منخفضة (مخاوف بسيطة)
# - معلوماتية (بدون مخاطر فورية)

6. إنشاء تقرير:
# Report > Generate HTML Report
# تضمين جميع النتائج والتوصيات

مثال على سطر أوامر ZAP:
zap.sh -cmd \
-quickurl http://testapp.local \
-quickprogress \
-quickout ~/zap-report.html

قائمة التدقيق الأمني الشاملة

استخدم هذه القائمة للتأكد من التغطية الشاملة لجميع مجالات الأمان:

<!-- قائمة التدقيق الأمني الكاملة -->

□ المصادقة والتفويض
□ فرض متطلبات تعقيد كلمة المرور
□ قفل الحساب بعد محاولات فاشلة
□ المصادقة متعددة العوامل متاحة
□ تكوين انتهاء مهلة الجلسة بشكل مناسب
□ آلية إعادة تعيين كلمة مرور آمنة
□ تنفيذ التحكم في الوصول القائم على الدور
□ منع تصعيد الامتيازات

□ التحقق من المدخلات
□ التحقق من جميع مدخلات المستخدم من جانب الخادم
□ الحماية من XSS على جميع المخرجات
□ منع حقن SQL (استعلامات محددة المعاملات)
□ التحقق من صحة رفع الملفات والقيود
□ رموز CSRF على جميع العمليات المغيرة للحالة
□ التحقق من Content-Type

□ حماية البيانات
□ تشفير البيانات الحساسة أثناء السكون
□ تكوين TLS/SSL بشكل صحيح (تصنيف A+)
□ استخدام خوارزميات تشفير قوية
□ ممارسات إدارة مفاتيح آمنة
□ التعامل مع PII يتوافق مع اللوائح
□ تأمين بيانات اعتماد قاعدة البيانات

□ إدارة الجلسة
□ إنشاء معرف جلسة آمن
□ تعيين علامات HttpOnly وSecure
□ منع تثبيت الجلسة
□ إبطال الجلسة المناسب عند تسجيل الخروج
□ تكوين سمة SameSite لملفات تعريف الارتباط

□ معالجة الأخطاء
□ عرض رسائل خطأ عامة للمستخدمين
□ تسجيل الأخطاء التفصيلية بشكل آمن
□ عدم كشف تتبع المكدس
□ تعطيل وضع التصحيح في الإنتاج

□ رؤوس الأمان
□ تكوين Content-Security-Policy
□ تعيين X-Frame-Options إلى DENY/SAMEORIGIN
□ X-Content-Type-Options: nosniff
□ تكوين Strict-Transport-Security
□ تعيين Referrer-Policy بشكل مناسب
□ تكوين Permissions-Policy

□ البنية التحتية
□ برامج الخادم محدثة
□ تعطيل الخدمات غير الضرورية
□ تكوين جدار الحماية بشكل صحيح
□ تطبيق تصحيحات الأمان بانتظام
□ اختبار إجراءات النسخ الاحتياطي والاستعادة
□ تمكين المراقبة والتسجيل

□ أمان API
□ المصادقة على API مطلوبة
□ تنفيذ تحديد المعدل
□ التحقق من المدخلات على جميع نقاط النهاية
□ فرض طرق HTTP المناسبة
□ تنفيذ إصدار API

□ مكونات الطرف الثالث
□ مسح ثغرات الاعتماديات
□ تطبيق التحديثات بانتظام
□ تضمين الاعتماديات الضرورية فقط
□ موارد CDN تستخدم تجزئات SRI

□ منطق الأعمال
□ منع ظروف السباق
□ التحقق من سلامة المعاملات
□ منع التلاعب بالأسعار
□ فرض حدود الكمية
□ اختبار ومعالجة عيوب المنطق

تقييم وتسجيل الثغرات

استخدم نظام تسجيل الثغرات الشائع (CVSS) لتحديد أولويات جهود المعالجة:

<!-- تصنيفات خطورة CVSS v3.1 -->

حرج (9.0-10.0):
- تنفيذ التعليمات البرمجية عن بعد
- حقن SQL مع الوصول للمسؤول
- تجاوز المصادقة
→ إصلاح فوري (خلال 24 ساعة)

عالي (7.0-8.9):
- XSS مخزن
- تصعيد الامتيازات
- مراجع كائنات مباشرة غير آمنة
→ إصلاح خلال أسبوع

متوسط (4.0-6.9):
- XSS منعكس
- CSRF على وظائف غير حرجة
- الكشف عن المعلومات
→ إصلاح خلال شهر

منخفض (0.1-3.9):
- رؤوس أمان مفقودة
- رسائل خطأ مطولة
- ملف تعريف ارتباط بدون علامة Secure
→ إصلاح في الإصدار التالي

معلوماتي (0.0):
- الكشف عن إصدار البرنامج
- قائمة الدليل ممكنة
→ إصلاح عندما يكون ذلك مناسبًا
تحديد الأولويات على أساس المخاطر: ضع في الاعتبار كلاً من درجة CVSS وسياق عملك المحدد. قد تتطلب ثغرة متوسطة الخطورة في نظام حرج اهتمامًا فوريًا.

تتبع المعالجة

وثق وتتبع جميع الثغرات المحددة خلال المعالجة:

<!-- نموذج تتبع الثغرات -->

معرف الثغرة: VULN-2026-001
العنوان: حقن SQL في بحث المستخدم
الخطورة: حرج (CVSS 9.8)
تاريخ الاكتشاف: 2026-02-15
الحالة: قيد التنفيذ

الوصف:
وظيفة بحث المستخدم لا تقوم بتعقيم المدخلات بشكل صحيح،
مما يسمح بهجمات حقن SQL.

الموقع:
الملف: app/Controllers/UserController.php
السطر: 145
نقطة النهاية: /api/users/search

إثبات المفهوم:
POST /api/users/search
{"query": "admin' OR '1'='1"}

التأثير:
- الوصول غير المصرح به لقاعدة البيانات
- استخراج البيانات
- تعديل محتمل للبيانات

المعالجة:
- استبدال تسلسل السلسلة باستعلامات محددة المعاملات
- تنفيذ التحقق من المدخلات
- إضافة تحديد المعدل

مُسند إلى: أحمد علي
التاريخ المستهدف: 2026-02-16
التحقق من الإصلاح: معلق
إعادة الاختبار: معلق

إجراءات ما بعد التدقيق

بعد إكمال التدقيق الأمني، اتبع هذه الخطوات:

<!-- عملية ما بعد التدقيق -->

1. إنشاء ملخص تنفيذي:
- إجمالي الثغرات الموجودة
- تفصيل الخطورة
- المخاطر عالية الأولوية
- الإجراءات الفورية الموصى بها

2. إنشاء تقرير تقني مفصل:
- المنهجية المستخدمة
- الأدوات المستخدمة
- قائمة النتائج الكاملة
- توصيات المعالجة
- إجراءات إعادة الاختبار

3. تحديد أولويات المعالجة:
- حرج: إجراء فوري
- عالي: أسبوع واحد
- متوسط: شهر واحد
- منخفض: الإصدار التالي

4. تعيين الملكية:
- تحديد الأطراف المسؤولة
- تحديد مواعيد نهائية واضحة
- جدولة مراجعات المتابعة

5. تنفيذ الإصلاحات:
- اتباع ممارسات البرمجة الآمنة
- اختبار شامل
- توثيق التغييرات

6. التحقق من المعالجة:
- إعادة اختبار كل ثغرة
- التحقق من فعالية الإصلاح
- التأكد من عدم الانحدار

7. تحديث الوضع الأمني:
- مراجعة سياسات الأمان
- تحديث مواد التدريب
- تحسين ممارسات التطوير

8. جدولة التدقيق التالي:
- ربع سنوي للتطبيقات عالية المخاطر
- سنوي للتطبيقات القياسية
- بعد التغييرات الكبرى
تمرين عملي: أجرِ تدقيقًا أمنيًا على تطبيق اختبار:

1. إعداد OWASP ZAP
2. زحف تطبيق اختبار (استخدم OWASP WebGoat أو Juice Shop)
3. تشغيل مسح نشط
4. مراجعة وتصنيف النتائج حسب الخطورة
5. توثيق أعلى 5 ثغرات
6. إنشاء توصيات المعالجة
7. إنشاء تقرير تدقيق احترافي

المراقبة الأمنية المستمرة

التدقيق الأمني ليس حدثًا لمرة واحدة. قم بتنفيذ المراقبة المستمرة:

<!-- ممارسات الأمان المستمرة -->

1. المسح التلقائي للثغرات:
# جدولة المسح الأسبوعي
cron: 0 2 * * 0 /usr/local/bin/zap-scan.sh

2. مراقبة الاعتماديات:
# التحقق من الاعتماديات الضعيفة
npm audit
composer audit

3. مراقبة السجلات:
# مراقبة النشاط المشبوه
- محاولات تسجيل الدخول الفاشلة
- أنماط حركة مرور غير عادية
- ارتفاع الأخطاء

4. مقاييس الأمان:
- الوقت لاكتشاف الثغرات
- الوقت للمعالجة
- معدل تكرار الثغرات
- تراكم ديون الأمان

5. المراجعات المنتظمة:
- أسبوعيًا: نتائج المسح التلقائي
- شهريًا: مراجعة مقاييس الأمان
- ربع سنوي: اختبار اختراق يدوي
- سنويًا: تدقيق شامل

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