العمليات والتقصيمتقدم70mL81
كتابة تقارير اختبار الاختراق
الملخص التنفيذي، تصنيف المخاطر، CVSS، إثبات الاستغلال، خطة المعالجة
#Reporting#CVSS#Pentest#Documentation#Federal
لماذا التقرير أهم من الاختراق نفسه
تشبيه — شرح مبسط
تخيل طبيباً اكتشف ورماً نادراً، نجح في تشخيصه، لكن كتب في الملف "وجدت شيئاً". القيمة كلها ضاعت. نفس الشيء في pentest: 80% من قيمة العمل في التقرير. CIO لن يحضر engagement، لن يقرأ Burp logs. سيقرأ صفحة executive summary واحدة ويتخذ قرار ميزانية.
في الجهات الفيدرالية، التقرير هو الـ deliverable الوحيد الذي يصل إلى C-suite. تقرير ضعيف = engagement مدفون. تقرير قوي = ميزانية، توظيف، ومتابعة.
هيكل التقرير الفيدرالي
01
Executive Summary (1 صفحة، CIO/CISO)
نص بدون jargon: ما الذي وجدناه، ما المخاطر على الأعمال، ماذا يجب أن يحدث الأسبوع القادم. لا CVSS هنا، لا Burp screenshots. أرقام: "إمكانية وصول مهاجم خارجي إلى 47% من بيانات HR في 4 ساعات."
02
Scope & Methodology
ما الذي طُلب اختباره، ما الذي اختبر فعلياً (دائماً يختلف)، أي معايير اتُّبعت (NIST SP 800-115, OWASP WSTG, MITRE ATT&CK). أي قيود (zero-knowledge؟ assume-breach؟ working hours؟).
03
Findings — مرتبة حسب الخطورة
لكل ثغرة: ID، عنوان، CVSS 3.1، CWE، الوصف التقني، خطوات إعادة الإنتاج، proof of exploit (screenshot/log)، التأثير على الأعمال، التوصية.
04
Attack Path Narratives
قصة. ليس قائمة ثغرات. "بدأنا من email phishing، حصلنا على credentials، تجاوزنا MFA، وصلنا إلى Domain Admin في 6 ساعات." هذا ما يبقى في ذهن القارئ.
05
Remediation Roadmap
ليست "أصلح كل شيء". بل خطة 30/60/90 يوم بأولويات. ما يحتاج patch فوري، ما يحتاج architecture change، ما يحتاج policy.
06
Appendices
tools used، IPs/IDs المختبرة، timeline، contacts، references.
كتابة Finding واحد بشكل صحيح
markdown
### F-007 | SQL Injection in /api/v2/search?q
**Severity**: Critical
**CVSS 3.1**: 9.8 (AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H)
**CWE**: CWE-89 — SQL Injection
**Affected**: api.target.gov/v2/search (production)
**Discovered**: 2026-04-12 14:22 UTC
**Tester**: J. Doe
#### Summary
The /api/v2/search endpoint passes the 'q' parameter unsanitized into a
SQL query, allowing arbitrary database access without authentication.
#### Technical Detail
Reproduction (single curl):
```
curl 'https://api.target.gov/v2/search?q=test%27%20UNION%20SELECT%20NULL,version(),NULL--'
```
Response leaks PostgreSQL 14.8 banner. Stacked queries confirmed via
out-of-band DNS lookups (proof captured at burpcollab.example).
#### Proof of Impact
Within 12 minutes the tester:
1. Enumerated 47 tables including `users_pii` and `audit_log`
2. Read 1.2M user records (full name, SSN-last-4, address, DOB)
3. Modified one test record (reverted post-confirmation)
Screenshots: see Appendix B, F-007-01..03.
#### Business Impact
- 1.2M PII records exposed → CCPA/GLBA notification scope
- Audit log tampering → compliance violation under FISMA
- Estimated breach disclosure cost: $4.5M (Ponemon 2024 average)
#### Recommendation
Short-term (this week):
- Deploy parameterized queries on the affected query builder
- WAF rule blocking UNION/SELECT in 'q' as a stop-gap
Long-term (this quarter):
- Audit all 312 endpoints using same query helper
- Move to ORM (Prisma/SQLAlchemy) with mandatory bound params
- Add SAST gate (Semgrep) blocking string concatenation in DB code
#### References
- OWASP Top 10 — A03:2021 Injection
- CISA Secure-by-Design pledge — Memory-safe & SQLi
- NIST SP 800-53 SI-10 (input validation)CVSS — لا تتعجل في الرقم
CVSS 3.1 له حقول دقيقة. الفرق بين 7.5 و 9.8 يحدد ما إذا كان الـ CIO سيستيقظ في الليل. خذ وقتك:
text
Attack Vector (AV):
Network (N) — قابل للوصول من الإنترنت → +0.85
Adjacent (A) — يحتاج شبكة محلية → +0.62
Local (L) — يحتاج تسجيل دخول → +0.55
Physical (P) — يحتاج وصول مادي → +0.20
Attack Complexity (AC):
Low (L) — كل مهاجم يقدر → +0.77
High (H) — يحتاج race condition / timing → +0.44
Privileges Required (PR):
None (N) — مجهول → +0.85
Low (L) — مستخدم عادي → +0.62
High (H) — admin → +0.27
User Interaction (UI):
None (N) — تلقائي → +0.85
Required (R) — يحتاج click / paste → +0.62
Scope (S):
Unchanged (U) — ضمن الـ component → ×1.0
Changed (C) — يخرج إلى components أخرى → ×1.5
CIA Impact: None / Low / Highأخطاء شائعة
لا تفعل
- "Critical" لكل findings — يفقد التقرير المصداقية
- screenshots بدون redaction (PII حقيقية في تقرير)
- "اعمل best practices" — لا توصية محددة
- لا تنسخ findings من تقارير قديمة بدون اختبار التحقق
- لا تكتب نكاتاً ولا تستخف بالـ team — هؤلاء سيقرأون التقرير
افعل
- راجع كل finding مرتين — تقرير فيه خطأ تقني = engagement محروق
- اربط كل finding بـ ATT&CK technique و CWE
- أضف "what we tested but couldn't break" — يبني الثقة
- قدم النسخة النهائية في اجتماع، ليس عبر email
- اعرض retest 30 يوم بعد التسليم
معايير فيدرالية
- NIST SP 800-115 — Technical Guide to Information Security Testing
- NIST SP 800-53 — Security Controls (لربط findings بـ controls)
- FISMA / FedRAMP — متطلبات تقارير
- PTES — Penetration Testing Execution Standard (community)
- OWASP WSTG — Web Security Testing Guide
- MITRE ATT&CK — للـ attack path narratives
نصيحة محنّكة
اقرأ تقاريرك بعد سنة. ستندم على نصف ما كتبت. التقرير العظيم يبقى مفهوماً ومفيداً بعد سنوات لـ engineer لم يحضر الـ engagement أصلاً.
مصادر
- OffSec — OSCP report template (نموذج جيد للبدء)
- SANS — Reporting Penetration Tests (SEC560 module)
- NCC Group / TrustedSec — public report samples
- Daniel Miessler — "How to Write a Penetration Test Report"
- RedTeam Pentesting GmbH — sample reports