تست نفوذ وب‌اپلیکیشن؛ از Scope امن تا Retest

تست نفوذ وب‌اپلیکیشن زمانی ارزش دارد که یک سؤال مشخص را با مجوز کتبی پاسخ دهد: آیا مهاجم می‌تواند از مسیرهای واقعاً در دسترس، کنترل‌های فعلی را دور بزند و به یک دارایی یا فرایند مهم آسیب بزند؟ اجرای چند اسکن، شمارش CVE یا تحویل PDF طولانی جواب این سؤال نیست. Pentest خوب Scope و Rules of Engagement روشن دارد، منطق کسب‌وکار و مرز Tenant/Role را می‌آزماید، Evidence حداقلی و قابل‌بازتولید می‌دهد، اصلاح را به Owner می‌رساند و با Retest بسته می‌شود.

هر آزمون فقط باید روی سامانه‌ای انجام شود که مالک یا نماینده مجاز آن، محدوده و روش را صریحاً تأیید کرده است. تست بدون مجوز می‌تواند غیرقانونی، مخرب و موجب افشای داده یا اختلال خدمت شود. این راهنما برای برنامه‌ریزی، خرید، نظارت و دفاع مجاز است؛ دستورالعمل نفوذ به سامانه دیگران ارائه نمی‌کند.

تست نفوذ دقیقاً چیست؟

تست نفوذ یک ارزیابی زمان‌دار و کنترل‌شده است که در آن متخصص امنیت، با مجوز و در محدوده توافق‌شده، امکان سوءاستفاده از ضعف‌ها و اثر زنجیره‌ای آن‌ها را بررسی می‌کند. خروجی مطلوب «اثبات کنترل‌شده ریسک + مسیر اصلاح + Retest» است.

پرسشپاسخ Pentest خوب
چه چیزی آزموده شد؟Asset، URL/API، Role، Tenant، Environment و نسخه دقیق
چه چیزی آزموده نشد؟Out-of-scope، محدودیت زمان/دسترسی و Coverage gap
چه ضعف قابل‌سوءاستفاده‌ای وجود دارد؟Precondition، مسیر بازتولید امن و Evidence حداقلی
اثر واقعی چیست؟Confidentiality، Integrity، Availability و Business process
چه باید اصلاح شود؟Root cause، کنترل پیشنهادی، Owner و Deadline
آیا اصلاح مؤثر بود؟Retest نتیجه‌محور و Regression check

تست نفوذ چه چیزی نیست؟

فعالیتهدفمرز با Pentest
Vulnerability scanningکشف وسیع الگوها و نسخه‌های آسیب‌پذیرممکن است Exploitability و منطق کسب‌وکار را تأیید نکند
SASTتحلیل Source/BytecodeContext اجرا و زنجیره سامانه را کامل نمی‌بیند
DASTآزمون خودکار اپ در حال اجراCoverage Role/Workflow و قضاوت انسانی محدود است
SCA/SBOM reviewDependency و Supply chainپیکربندی/Reachability واقعی باید جدا سنجیده شود
Code reviewطراحی و Implementationبرای عمق عالی است اما الزاماً مسیر بیرونی را اثبات نمی‌کند
Red teamهدف‌محور و چندبرداری علیه Detection/ResponseScope، زمان و Stealth معمولاً گسترده‌تر است
Bug bounty/VDPدریافت گزارش مستمر از پژوهشگرانCoverage تضمین‌شده یا برنامه آزمون سیستماتیک نیست
Compliance assessmentسنجش Requirement رسمیPentest می‌تواند یکی از Evidenceها باشد، نه کل انطباق

NIST SP 800-115 آزمون فنی را مجموعه‌ای از روش‌ها با مزیت و محدودیت متفاوت می‌داند. یک برنامه بالغ این روش‌ها را مکمل می‌کند؛ Pentest جای Secure SDLC یا Vulnerability management را نمی‌گیرد.

چه زمانی تست نفوذ لازم است؟

قاعده «برای همه سالی یک‌بار» بیش از حد ساده است. Cadence باید از ریسک، تغییر، Exposure، Requirement قراردادی و سابقه یافته بیاید.

Triggerدامنه پیشنهادیچرا
پیش از اولین Productionمسیرهای حیاتی و Trust boundaryBaseline پیش از داده/کاربر واقعی
تغییر معماری/Identity/PaymentChange + dependencyهای متاثرThreat و Control جدید ایجاد می‌شود
افزودن Role/Tenant/API/IntegrationAuthorization و Business flowمرز دسترسی تغییر می‌کند
پس از Incident مهمRoot cause و مسیرهای مشابهاثبات Remediation و کشف Variant
دوره ریسک‌محورCoverage چرخشی + critical pathsDrift و تغییر Threat
Requirement قرارداد/استاندارددقیقاً Scope و Frequency الزامEvidence قابل‌ممیزی

برای محیط مشمول PCI DSS، نسخه و Requirement جاری را از کتابخانه رسمی PCI SSC بگیرید؛ PCI DSS v4.۰.۱ Requirement ۱۱.۴ درباره تست نفوذ بیرونی/درونی، اصلاح ضعف‌های قابل‌سوءاستفاده و در شرایط تعریف‌شده آزمون دوره‌ای/پس از تغییر صحبت می‌کند. Scope و روش اعتبارسنجی را با QSA یا متخصص واجدصلاحیت خود تطبیق دهید؛ استاندارد کارت جهانی را بی‌دلیل به همه کسب‌وکارهای ایرانی تعمیم ندهید.

Gate صفر: مجوز کتبی و Rules of Engagement

هیچ تستی پیش از امضای Authorization و RoE شروع نمی‌شود. مالک کسب‌وکار، مالک فنی، Hosting/Cloud/Provider مرتبط و Tester باید بدانند چه چیزی مجاز است.

فیلد قراردادحداقل تعریف
Authorizing partyشخص حقوقی/سمت دارای اختیار و اثبات مالکیت Asset
In-scopeDomain/IP/API/app/tenant/environment/version
Out-of-scopeThird party، shared service، production data یا بخش ممنوع
Allowed techniquesرده آزمون و حد ایمن هرکدام
ProhibitedDoS، Social engineering، persistence، destructive action مگر مجوز ویژه
Time/rate/sourceWindow، timezone، Source IP، concurrency و rate ceiling
Data handlingحد اثبات، masking، encryption، retention و deletion
CommunicationPrimary/backup contact، severity channel و response time
Stop conditionSLO breach، data risk، unexpected third party یا درخواست مالک
Liability/escalationIncident، evidence، insurance و dispute path

«حفظ دسترسی» یا نصب Backdoor یک مرحله پیش‌فرض Pentest وب نیست. Persistence، Data exfiltration، تغییر رکورد و Denial of Service باید ممنوع باشند مگر هدف دقیق، محیط ایزوله، Approval و روش بازگشت جداگانه داشته باشند. معمولاً Proof حداقلی بدون نگه‌داشتن دسترسی کافی است.

Scope را از Inventory بسازید

فقط یک URL صفحه اصلی Scope نیست. Web app مدرن از Frontend، API، Admin، Auth provider، Object storage، Queue، Webhook، CDN و سرویس ثالث تشکیل می‌شود.

لایهInventoryOwner
Public surfaceDomain/subdomain/path/portPlatform/Network
ApplicationVersion، feature flag، role، tenantProduct/Engineering
APIREST/GraphQL/gRPC/Webhook، version و schemaAPI owner
IdentityLogin، SSO، MFA، recovery، adminIdentity owner
Dataclassification، source of truth، test dataData owner
IntegrationPayment، SMS، email، CRM، storageIntegration owner
OperationsCI/CD، log، monitoring، supportPlatform/SRE
Third partycontract و permission boundaryProcurement/Legal

Asset ناشناخته به Coverage gap تبدیل می‌شود. OWASP Web Security Testing Guide چارچوب جامعی برای تست وب ارائه می‌کند و توصیه می‌کند شناسه سناریوها با نسخه ارجاع شوند. در Statement of Work بنویسید مثلاً WSTG version/snapshot و کدام Scenarioها In scope هستند؛ عبارت مبهم «بر اساس OWASP» قابل‌ممیزی نیست.

Black-box، Gray-box و White-box رتبه کیفیت نیستند

مدل دانشدسترسی TesterFitCoverage gap
Black-boxاطلاعات عمومی و بدون Credential داخلیدید مهاجم بیرونی و exposed surfaceوقت Recon و Coverage عمیق کمتر
Gray-boxحساب‌های نماینده و مستندات محدودRole/Tenant/Workflow با کارایی خوبCode/design root cause محدود
White-boxSource، Architecture، config و accountهاعمق، Variant و Root causeاگر execution ضعیف باشد همچنان ناقص است

برای وب‌اپ بیشتر اوقات Gray/White-box با چند Role و دو Tenant، شواهد بهتری از Black-box تنها می‌دهد. شبیه‌سازی مهاجم بیرونی یک Objective ممکن است؛ اتلاف زمان برای کشف چیزی که مالک می‌تواند مستند کند، الزام کیفیت نیست.

Test account matrix؛ قلب آزمون Authorization

ActorTenantStateData
Anonymousنداردبدون SessionPublic fixture
User ATenant 1فعالObjectهای A
User BTenant 1فعالObjectهای B
User CTenant 2فعالObjectهای C
Suspended userTenant 1معلقSession/Token قبلی
Supportچند Tenantمحدود/Just-in-timeMask شده
AdminPlatformMFA و approvalDedicated test records

با این ماتریس می‌توان Same-role، Cross-user، Cross-tenant، vertical privilege و lifecycle revoke را آزمود. مقاله امنیت API و OWASP قرارداد دقیق Authorization، OAuth/JWT و Webhook را پوشش می‌دهد؛ Pentest باید پیاده‌سازی واقعی آن قرارداد را ارزیابی کند.

Baseline را با ASVS بسازید، نه فقط Top ۱۰

OWASP Top 10:2025 سند Awareness است و دسته‌های ریسک مهمی مثل Broken Access Control، Security Misconfiguration، Supply Chain Failures و Mishandling of Exceptional Conditions را برجسته می‌کند؛ اما Checklist کامل پذیرش نیست.

OWASP ASVS 5.0.0 Requirementهای قابل‌ارجاع برای طراحی، توسعه، تست و Procurement می‌دهد. Requirement ID را با Version ذخیره کنید تا Coverage و Retest در طول زمان قابل‌ردیابی بماند.

Artifactنقشاستفاده درست
OWASP Top 10:2025Awareness/Program conversationیادآوری دسته ریسک؛ نه ادعای Coverage کامل
OWASP WSTGTest scenarios/methodologyScenario ID + version + applicability
OWASP ASVS 5.0.0Security requirement baselineRequirement traceability و acceptance
OWASP API Top 10:2023API awarenessبا Requirement/API contract تکمیل شود
NIST SP 800-115Assessment planningروش، محدودیت، تحلیل و mitigation

Coverage map وب‌اپلیکیشن

فهرست زیر سطح پوشش است، نه دستور Exploit. تکنیک دقیق فقط در RoE، محیط مجاز و توسط متخصص اجرا می‌شود.

حوزهسؤال‌های آزمون
Configuration/DeploymentDebug، default، secret، header، storage و admin exposure چگونه کنترل می‌شوند؟
IdentityRegistration، login، MFA، recovery، session و revoke درست‌اند؟
AuthorizationObject/function/field/tenant بر اساس server-side policy محدودند؟
Input/outputValidation، encoding، parser و template مرز امن دارند؟
Business logicState، price، approval، quota، refund و concurrency قابل‌دورزدن‌اند؟
File/mediatype، size، storage، processing، download و access policy چیست؟
APIInventory، schema، authn/z، rate، resource و third-party trust چگونه‌اند؟
ClientSecret، sensitive data، DOM/message/storage و dependency exposure چیست؟
Crypto/TransportTLS، key، token، randomness و sensitive-data lifecycle مناسب‌اند؟
Error/ExceptionFail-safe، rollback، duplicate و partial failure چگونه‌اند؟
Logging/Alertingرویداد مهم ثبت، هم‌بسته و به Owner هشدار می‌شود؟
Supply chainArtifact، dependency، provenance و update trust چیست؟

Business logic را چگونه Scope کنیم؟

Scanner نمی‌داند «تخفیف فقط یک‌بار»، «بازپرداخت حداکثر مبلغ تسویه‌شده» یا «تأییدکننده نباید درخواست‌کننده باشد» یعنی چه. Product و Finance باید Invariantها را قبل از تست بنویسند.

FlowInvariant نمونهFailure class
ثبت‌نامIdentity یکتا و state transition معتبرduplicate/abuse/verification bypass
Login/recoveryعامل قوی، rate و revokeenumeration/session persistence
Orderprice/discount/inventory از Source of truthclient-side trust/race/state skip
Paymentverified callback و idempotent settlementduplicate/forged/uncertain state
Refundمبلغ تجمعی از settled بیشتر نشودconcurrency/approval bypass
Adminseparation of duties و auditprivilege escalation/hidden action
Multi-tenantهر query/action در tenant contextcross-tenant read/write
Exportفقط داده مجاز و ثبت‌شدهbulk exposure/background job leak

برای Login، تفکیک Brute force، Credential stuffing و Recovery abuse در راهنمای دفاع Login آمده است؛ برای حساب‌های مدیریت نیز MFA و Break-glass باید در Scope باشد.

API و Webhook را ضمیمه فرض نکنید

SPA و Mobile app ممکن است فقط Clientهای API باشند. Scope باید Endpoint inventory، نسخه‌های قدیمی، GraphQL operation، Webhook receiver، background job و admin API را پوشش دهد. OWASP API Security Top 10:2023 ریسک‌هایی مثل Object-level authorization، Sensitive business flow، Inventory و Unsafe consumption را یادآوری می‌کند.

API artifactEvidence لازم
OpenAPI/SchemaVersion، auth، field و error contract
Endpoint inventorypublic/internal/admin/deprecated owner
Identity matrixtoken type، audience، scope، tenant و lifecycle
Business flowstate diagram و invariant
Webhooksignature، replay، idempotency و source validation contract
Rate/Quotaresource cost، per-actor policy و failure response

Production یا Staging؟

هیچ پاسخ یکسانی وجود ندارد. Staging ایزوله ریسک عملیاتی را کم می‌کند اما ممکن است WAF، IAM، data volume، CDN، secret و configuration واقعی را بازنمایی نکند. Production واقعی‌تر است و Blast radius بیشتری دارد.

گزینهمزیتGuardrail
Staging production-likeتست عمیق با داده مصنوعیconfig parity، version pin و drift report
Production محدودکنترل و Telemetry واقعیlow rate، test tenant، stop trigger و on-call
دو مرحله‌ایعمق در Staging، Validation محدود در Productionmapping یافته و تأیید تفاوت

پیش از Production test، Backup و Restore باید اثبات شده باشند؛ راهنمای Disaster Recovery و بازیابی را به Pre-flight وصل کنید. Backup مجوز تست مخرب نیست.

Pre-flight پیش از شروع

  • نسخه، Feature flag و deployment freeze یا change log ثبت شده است.
  • Test account/tenant/data قابل‌حذف آماده‌اند.
  • On-call، SOC، Hosting و Vendorهای لازم اطلاع دارند.
  • Source IP و Window ثبت و Alert suppression محدود تعریف شده است.
  • Backup/restore و Capacity headroom تأیید شده‌اند.
  • Stop command و کانال اضطراری آزموده شده‌اند.
  • Evidence vault و encryption/retention تعیین شده است.
  • Legal/Privacy approval و third-party permission موجود است.

Stop condition و ارتباط حین تست

رویداداقداممالک
SLO breachتوقف فوری، ثبت timestamp و Incident triageService owner
داده واقعی غیرمنتظرهعدم ادامه مشاهده، secure evidence و Privacy escalationData/Privacy owner
Third-party surfaceتوقف آن مسیر و بررسی مجوزEngagement manager
Critical findingکانال Out-of-band و interim mitigationSecurity owner
Provider abuse alertتطبیق Source/Window و pauseCloud/Hosting owner
Unclear scopeStop-and-ask؛ عدم تفسیر خودسرانهTester lead

Telemetry باید تست را از حمله واقعی جدا کند. Trace، audit log، WAF/auth event و Alert باید Correlation ID یا Tag مجاز داشته باشند. راهنمای Observability، SLO و Alert برای این Evidence عملیاتی لازم است.

Evidence؛ حداقل لازم، نه جمع‌آوری حداکثری

گزارش نباید خود به نشت داده تبدیل شود. برای اثبات، رکورد مصنوعی و حداقل Field استفاده کنید. Secret، Token، Cookie، PII و Payment data را Mask کنید.

فیلد Evidenceنمونه امن
Finding IDPT-2026-014
Asset/versionapi.example / release digest
Actor/preconditionUser A در Tenant ۱
Request referenceSanitized request + trace ID
Observed resultدسترسی به test object متعلق به User B
Expected resultdeny و audit event
Impact boundarysame tenant/cross tenant/admin
Cleanuptest record deleted/token revoked

Severity با یک عدد Base تمام نمی‌شود

CVSS ۴.۰ از FIRST Base، Threat، Environmental و Supplemental metric دارد و تأکید می‌کند CVSS فقط Base score نیست. نمره فنی ورودی تصمیم است؛ Priority باید Context سازمان را نیز ببیند.

بعدسؤال
ExploitabilityPrecondition، privilege، interaction و repeatability چیست؟
Reachیک رکورد، یک Tenant، همه Tenantها یا control plane؟
ImpactData/transaction/availability/safety چه تغییری می‌کند؟
Asset criticalityاین سامانه چه Outcome و RTO/RPO دارد؟
ThreatExploit maturity یا استفاده فعال مرتبط وجود دارد؟
Controlsکدام کنترل واقعاً آزموده و مؤثر است؟
Detection/recoveryMTTD/Contain/Restore چقدر است؟
Business consequenceFraud، privacy harm، downtime، contract و reputation چیست؟
Remediation priority = technical severity
× asset criticality
× reachable population
× threat relevance
× business consequence
÷ validated control effectiveness

این فرمول مفهومی است، نه ماشین‌حساب علمی. Assumption، داده و Risk owner را کنار نتیجه ثبت کنید. برای تبدیل سناریوی امنیتی به Loss range از راهنمای بودجه امنیت سایت و Roadmap ریسک‌محور استفاده کنید.

گزارش Pentest چه بخش‌هایی دارد؟

بخشمخاطبمحتوا
Executive summaryمدیر/Risk ownerObjective، Scope، top scenarios، residual risk و decisions
Scope/methodAudit/EngineeringAsset، version، account، window، exclusions، WSTG/ASVS mapping
CoverageSecurity leadtested/not-tested/not-applicable و محدودیت
FindingsDeveloperroot cause، steps امن، evidence، impact، recommendation
RiskRisk ownerCVSS vector، context، business severity و priority
Remediation planProduct/Engineeringowner، SLA، dependency، mitigation و acceptance
AppendixAssurancetool/version، test IDs، data handling و cleanup attestation

Screenshot بدون Request context یا Tool dump چندصدصفحه‌ای گزارش نیست. هر Finding باید Reproducible، Deduplicated، Root-cause-oriented و قابل‌ردیابی به Requirement باشد.

یافته را به Ticket قابل‌ساخت تبدیل کنید

Finding: PT-2026-014
Asset/version: ...
Affected roles/tenants: ...
Precondition: ...
Expected security rule: ...
Observed behavior: ...
Sanitized evidence/trace: ...
Root cause hypothesis: ...
Required control and acceptance tests: ...
Owner / due date / risk decision: ...
Retest result: pending

راهکار «ورودی را Validate کنید» کافی نیست. Recommendation باید محل Enforcement، Policy، deny behavior، Audit event و Regression test را مشخص کند بدون اینکه معماری را از بیرون تحمیل کند.

Remediation و Retest؛ پایان واقعی پروژه

StateDefinition
OpenFinding تأیید و Owner تعیین شده
Mitigatedکنترل موقت اثر را کم کرده، Root cause باقی است
Fixed pending retestتغییر Deploy و Evidence تیم ارائه شده
Retest passedمسیر اصلی و Variantهای معقول دیگر قابل‌بازتولید نیستند
Risk acceptedResidual risk با Expiry و Approver ثبت شده
False positiveبا Evidence و Reviewer مستقل رد شده
ClosedEvidence، Retest و cleanup کامل‌اند

Retest فقط اجرای Payload قبلی نیست. Root cause، مسیرهای مشابه، Role/Tenantهای متاثر، negative test و نبود Regression بررسی می‌شوند. اگر Scope یا نسخه عوض شده است، نتیجه قبلی را خودکار تعمیم ندهید.

Remediation SLA را ریسک‌محور تعریف کنید

Tier نمونهاقدام فوریتصمیم لازم
Critical reachableContain/disable/rotate/monitorIncident یا emergency change
HighOwner و short deadlinefix/mitigation + retest
MediumSprint plan و regression testdependency/architecture plan
Low/HardeningBacklog با groupingقبول، اصلاح جمعی یا baseline update

عدد روز ثابت را بدون Appetite و Capability کپی نکنید. SLA باید با Criticality، Exposure، Threat، Control و Release model شما سازگار و Expiry پذیرش ریسک مشخص باشد.

Pentest را به SDLC وصل کنید

مرحلهکنترل مستمرنقش Pentest
DesignThreat model و abuse caseآزمون Trust boundary و invariant
Codereview، SAST، unit security testکشف زنجیره/منطق و variant
BuildSCA، secret scan، SBOM، provenanceReachability و اثر integration
DeployIaC/policy/config scanproduction-like configuration validation
OperateDAST، scan، log، alert، patchکنترل واقعی و response evidence
Change/Incidentrisk review و regression suitetargeted assessment/retest

Finding باید به Test دائمی تبدیل شود تا در Release بعدی برنگردد. Pipeline CI/CD امن می‌تواند Security gate، Artifact provenance، Progressive delivery و Rollback را اجرا کند؛ Pentest جای آن را نمی‌گیرد.

CSP و WAF در Pentest چه نقشی دارند؟

WAF، CSP، Rate limit یا MFA کنترل جبرانی‌اند؛ وجودشان Finding ریشه‌ای را خودکار حذف نمی‌کند. باید نشان دهید کنترل در مسیر واقعی فعال، قابل‌دورزدن‌نبوده، قابل‌مشاهده و دارای Failure behavior مناسب است.

برای XSS، CSP سخت‌گیرانه Defense-in-depth است و جای Output encoding/DOM safety را نمی‌گیرد. Pentest باید Policy و Report telemetry را ببیند، اما نباید با ایجاد Payload مخرب برای کاربران واقعی از RoE عبور کند.

انتخاب شرکت یا Tester

معیارEvidenceRed flag
MethodologyWSTG/ASVS mapping و sample coverage«OWASP certified» مبهم
تجربه دامنهRole/Tenant/API/Payment مشابهفقط Scanner screenshot
TeamNamed lead/reviewer و independenceرزومه شرکت بدون فرد اجراکننده
SafetyRoE، stop، data handling و insuranceپیشنهاد DoS/Persistence پیش‌فرض
Reportنمونه Redacted با root cause/acceptanceCVSS تنها و راهکار عمومی
RetestScope، window و deliverable روشنپروژه با PDF تمام می‌شود
Knowledge transferDebrief برای مدیر و Developerعدم پاسخ‌گویی پس از تحویل
Conflictاستقلال و disclosureفروش اجباری ابزار خود برای هر Finding

هزینه تست نفوذ چگونه برآورد می‌شود؟

قیمت ثابت عمومی قابل‌اعتماد نیست. هزینه تابع Person-day، تعداد Role/Tenant/Flow/API، Source access، Environment، Compliance mapping، Report language، Retest و Window است.

Driverواحد برآورد
Attack surfaceapp/API/domain/integration count
Identity complexityrole × tenant × lifecycle state
Business flowcritical workflows/invariants
Knowledge modelblack/gray/white و code review depth
Environmentstaging/production و safety coordination
AssuranceWSTG/ASVS/PCI mapping و independent review
Deliverablelanguage، executive/technical، workshop
Retestfinding count/root-cause groups/change size
Engagement TCO = scoping and preparation
+ testing and peer review
+ report/debrief
+ engineering remediation
+ retest/regression
+ operational coordination
+ residual-risk handling

پیشنهاد ارزان با Scope مبهم می‌تواند Coverage کمی بدهد و هزینه Remediation را بالا ببرد. بودجه را بر اساس Risk reduction و Coverage critical flow بسنجید، نه تعداد Finding.

ملاحظات اجرای تست نفوذ در ایران

موضوعکنترل
مجوزمتن فارسی/انگلیسی روشن، مالک Asset و نماینده دارای اختیار
Hosting/CloudTerms، provider notification و source IP مجاز بررسی شود
داده واقعیداده مصنوعی، masking، retention و محل نگهداری گزارش
پرداخت/فروشگاهSandbox درگاه و ممنوعیت تراکنش واقعی بدون Approval
شبکهISP/اپراتور، WAF/CDN و rate با Window واقعی هماهنگ
زمانtimezone ایران، on-call و stop contact مشترک
زبان گزارشExecutive فارسی + اصطلاح فنی/ID استاندارد
حقوق/قراردادبا وکیل/متخصص واجدصلاحیت برای مقررات و مسئولیت مشورت شود

از داده یا حساب مشتری واقعی برای «واقعی‌ترشدن» تست استفاده نکنید، مگر ضرورت، رضایت، حداقل‌گرایی و کنترل آن مستند باشد. کیفیت از مدل Threat و Fixture درست می‌آید، نه افزایش ریسک کاربران.

متریک‌های برنامه Pentest

Metricتعریف سالمضد‌متریک
Critical-flow coverageجریان/Role/Tenant آزموده به برنامهتعداد Request
Requirement coverageASVS/WSTG tested/not-tested/N/A«OWASP covered»
Time to triageFinding تا Owner/decisionتعداد Finding زیاد
Time to remediateبر اساس Risk tierمیانگین بدون Severity
Retest pass rateFixهای مؤثر در اولین RetestTicket closed بدون Retest
RecurrenceRoot cause تکراری در Release/TeamFalse-positive صفر به هر قیمت
Detection evidenceFinding critical که Alert/trace داشتحجم Log
Residual risk ageپذیرش ریسک منقضی/بازAccepted برای همیشه

RACI تست نفوذ

کارAccountableResponsibleConsulted
Authorization/RoEBusiness/System ownerSecurity engagement leadLegal/Privacy/Hosting
Scope/inventoryTech ownerArchitecture/ProductTester/SRE/Data
Safe executionTester leadTesting teamOn-call/SOC
Critical escalationSecurity ownerIncident leadBusiness/Legal
Finding triageProduct ownerSecurity + EngineeringRisk/Data
RemediationEngineering ownerDelivery teamTester/Security
Risk acceptanceNamed risk ownerGovernanceSecurity/Business
Retest/closureSecurity ownerIndependent testerEngineering/Audit

چهار Runbook ضروری

۱. تست باعث افت SLO می‌شود

  1. Tester Stop command را اجرا و timestamp/source را اعلام کند.
  2. On-call اثر را از حمله واقعی تفکیک و سرویس را پایدار کند.
  3. Evidence و change/test log حفظ شود.
  4. فقط پس از Root cause، rate جدید و Approval از سر گرفته شود.

۲. Tester به داده واقعی غیرمنتظره می‌رسد

  1. مشاهده/جمع‌آوری بیشتر متوقف شود.
  2. حداقل Evidence رمز‌شده و دسترسی محدود ثبت شود.
  3. Privacy/Security owner Scope و Incident threshold را تصمیم بگیرند.
  4. داده طبق Retention قرارداد حذف و attestation ثبت شود.

۳. Finding بحرانی در حین تست

  1. کانال Out-of-band و شناسه Finding استفاده شود.
  2. Reach/impact بدون گسترش غیرضروری تأیید شود.
  3. Containment کم‌خطر مثل disable/rotate/restrict/monitor اجرا شود.
  4. Incident classification، fix و emergency retest برنامه‌ریزی شود.

۴. اصلاح در Retest رد می‌شود

  1. Diff نسخه و Environment تأیید شود.
  2. Patch symptom از Root cause جدا شود.
  3. Variant/role/tenant و negative test بازبینی شوند.
  4. Ticket با Owner/Deadline جدید باز و Risk موقت تصمیم‌دار شود.

برنامه ۹۰روزه برای Pentest قابل‌دفاع

بازهخروجیGate
روز ۱ تا ۱۰Objective، system owner، risk tier و compliance checkبدون Owner پروژه شروع نمی‌شود
روز ۱۱ تا ۲۰Asset/API/role/tenant/data/integration inventoryScope gap صریح است
روز ۲۱ تا ۳۰Authorization، RoE، WSTG/ASVS mapping و vendor selectionStop/data/third-party terms امضا شده‌اند
روز ۳۱ تا ۴۰Test fixture، account matrix، staging parity و pre-flightBackup/restore و on-call Pass
روز ۴۱ تا ۵۵اجرای کنترل‌شده، daily sync و critical escalationScope/Rate drift ممنوع
روز ۵۶ تا ۶۵Peer-reviewed report، debrief و ticketizationهر Finding Owner/acceptance دارد
روز ۶۶ تا ۸۰Containment، root-cause fix و regression testsRisk acceptance دارای Expiry
روز ۸۱ تا ۹۰Retest، closure، metrics و next-trigger planپروژه بدون Retest بسته نمی‌شود

چک‌لیست نهایی

  • مالک دارای اختیار، Authorization کتبی داده است.
  • In-scope/Out-of-scope و Third party دقیق‌اند.
  • DoS، Social engineering، Persistence و Data handling حکم صریح دارند.
  • Stop condition، On-call و کانال Critical آزموده شده‌اند.
  • Asset، API، Role، Tenant، State و Integration inventory شده‌اند.
  • WSTG/ASVS با Version و Test ID نگاشت شده‌اند.
  • Top ۱۰ به‌جای Baseline کامل استفاده نشده است.
  • Business invariant و Abuse case در Scope هستند.
  • Staging/Production parity و Coverage gap ثبت شده‌اند.
  • Evidence حداقلی، Masked، رمز‌شده و دارای Retention است.
  • CVSS با Threat/Environment و Business impact غنی شده است.
  • Report شامل Root cause، Acceptance، Owner و Deadline است.
  • Fix به Regression test و Retest مستقل رسیده است.
  • Risk acceptance Approver و Expiry دارد.
  • Cadence بعدی با Trigger ریسک‌محور تعریف شده است.

جمع‌بندی

تست نفوذ وب‌اپلیکیشن «حمله نمایشی» یا اسکن گران نیست. یک Engagement مهندسی و ریسک است: هدف و Scope، مجوز و RoE، Account/Role/Tenant، Requirement و Test ID، اجرای ایمن، Evidence حداقلی، Severity زمینه‌دار، Root cause، اصلاح و Retest.

اگر فقط یک PDF دریافت کنید، چرخه امنیت بهتر نشده است. ارزش واقعی وقتی ایجاد می‌شود که Finding به کنترل قابل‌آزمون، Owner، Release امن، Telemetry و تصمیم Residual risk متصل شود. Pentest یک Snapshot با Coverage محدود است؛ امنیت وب‌اپلیکیشن از تکرار Secure design، تست خودکار، عملیات قابل‌مشاهده و ارزیابی انسانی هدفمند ساخته می‌شود.

پرسش‌های متداول

تست نفوذ وب‌اپلیکیشن چیست؟

ارزیابی مجاز، زمان‌دار و کنترل‌شده‌ای است که امکان سوءاستفاده از ضعف‌ها و اثر واقعی آن‌ها را در Scope مشخص بررسی می‌کند. خروجی باید Evidence امن، Root cause، اولویت، راه اصلاح و نتیجه Retest داشته باشد؛ تست هر سامانه بدون مجوز صریح ممنوع است.

هر چند وقت یک‌بار باید Pentest انجام دهیم؟

Frequency از ریسک و Requirement می‌آید: پیش از Production برای مسیر حیاتی، پس از تغییر مهم Identity/Architecture/Payment/API، پس از Incident و در Cadence دوره‌ای متناسب با Exposure و Criticality. برخی استانداردها مثل PCI DSS الزام خاص دارند که باید از نسخه جاری و متخصص مربوط بررسی شود.

تفاوت Vulnerability scan و تست نفوذ چیست؟

Scan معمولاً ضعف‌های بالقوه را با پوشش وسیع پیدا می‌کند؛ Pentest به‌صورت انسانی و کنترل‌شده Exploitability، زنجیره، Authorization و Business logic را می‌سنجد. هیچ‌کدام جای دیگری را نمی‌گیرد و هر دو باید با Code review، SAST/SCA و Secure SDLC تکمیل شوند.

Black-box بهتر است یا Gray-box و White-box؟

هیچ‌کدام ذاتاً بهتر نیست. Black-box دید بیرونی می‌دهد، Gray-box برای Role/Tenant و Workflow کارآمد است و White-box عمق/Root cause را بیشتر می‌کند. ترکیب مناسب از Objective، Threat و بودجه می‌آید؛ میزان اطلاعات Tester رتبه کیفیت نیست.

هزینه تست نفوذ وب‌اپلیکیشن چقدر است؟

به Surface، تعداد Role/Tenant/API/Flow، مدل دسترسی، Environment، Requirement mapping، Person-day، گزارش، Workshop و Retest بستگی دارد. برای Quote منصفانه Inventory و Scope واحد به چند تیم بدهید و Coverage، Safety، گزارش نمونه و Retest را مقایسه کنید، نه فقط مبلغ نهایی.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *