نه Job امنیتی از نه Job سبز است، Critical Finding صفر و Ticket رخداد بسته شده است. آیا Controlها مؤثر بوده‌اند و تکرار رخنه نامحتمل است؟ نه لزوماً. شاید Scanner اصلاً Asset یا Attack path متاثر را ندیده، Detection خاموش بوده، Exception منقضی نشده، Patch فقط یک Symptom را پوشانده یا Ticket عملیاتی بسته شده اما Claim امنیتی هنوز Evidence تازه ندارد.

این راهنما پس از مهار و بازیابیِ مجاز، یک Security Escape Learning Protocol می‌سازد: Incident Fact → Attack Path → Security Claim → Control Map → Escape/Control Gap → Counterfactual محدود → Remediation/Retest → Variant/Recurrence Evidence → Correction. هدف یافتن «مقصر» یا ادعای «QA می‌توانست رخنه را حتماً جلوگیری کند» نیست.

پاسخ کوتاه: تستر بعد از رخنه امنیتی چه نقشی دارد؟

در رخداد فعال، تستر فقط در محدوده‌ی Incident command، مجوز و تخصص خود Evidence را حفظ یا Verification امن انجام می‌دهد؛ مهار، ارتباط بیرونی، افشا، حقوقی و Risk acceptance را تصاحب نمی‌کند. پس از تثبیت و مجوز تحلیل، می‌تواند Observationها را به Claim/Control و Test coverage وصل کند، Gap را طبقه‌بندی کند و Remediation را با Variant و Negative control بازآزمایی کند.

فازنقش مفید QA/Testمرز اختیار
Active responseحفظ Evidence طبق دستور، Verification محدودنه Incident command یا External communication
Containment/RecoverySmoke/Control check در Scope امننه تغییر Production بدون Authority
AnalysisFact/Path/Claim/Control/Gap mappingنه Cause یا Blame بدون Evidence
RemediationReproduction امن، Retest و Regressionنه اعلام Risk accepted/closed
LearningVariant coverage، control feedback، correctionنه وعده‌ی عدم تکرار

مالکیت مقاله و مرز با Security Testing و RCA

برای تعریف Threat/Vulnerability/Risk، ASVS/WSTG و روش‌های آزمون، راهنمای تست امنیت نرم‌افزار مالک موضوع است. DevSecOps در CI/CD قرارداد Control در Pipeline و عملیاتی‌سازی ابزارهای AppSec Coverage/Triage/Retest ابزارها را پوشش می‌دهند. برای تحلیل علّی عمومی، RCA از Evidence تا Action را ببینید. این صفحه فقط Security Escape را از Incident fact به Control-learning متصل می‌کند.

Intentمالکخروجی
امنیت را چگونه تست کنیم؟Security TestingTest plan/Finding/Retest
Controlهای CI چگونه کار کنند؟DevSecOps/AppSec OpsControl registry/tool portfolio
علت یک Failure چیست؟RCACausal model/actions
چرا Control از Path عبور داد؟همین مقالهEscape review/recurrence evidence

تستر «اولین خط دفاع» یا «نگهبان امنیت» نیست

این استعاره‌ها مسئولیت طراحی امن، پیاده‌سازی، پیکربندی، عملیات، Monitoring، Incident response، مدیریت Dependency، رهبری و سرمایه‌گذاری را روی یک نقش می‌اندازند. CISA در Secure by Design بر مالکیت سازنده و رهبری نسبت به Outcome امنیت مشتری تأکید می‌کند؛ مرجع: CISA Secure by Design. Testing یکی از Controlهای نظام است، نه دیوار نهایی یا تضمین.

Incident Response را با Escape Review قاطی نکنید

NIST SP ۸۰۰-۶۱ Revision ۳ پاسخ به رخداد را در مدیریت ریسک سازمانی و همه‌ی Functionهای CSF ۲.۰ جای می‌دهد؛ مرجع رسمی: NIST SP 800-61 Rev.3. این مقاله جای Playbook سازمانی نیست. Deep analysis نباید مهار را عقب بیندازد، Evidence را آلوده کند یا تیم را به بازاجرای ناامن Path در Production سوق دهد.

جریانسؤالAuthority
Responseچگونه Impact را محدود و Service را بازیابی کنیم؟Incident command
Forensic/legalچه Evidence/notification تعهدی داریم؟Policy/legal/privacy authority
Escape reviewکدام Claim/Control/Detection gap دیده شد؟Security/product analysis authority
Remediationچه Change و Retest لازم است؟Control/product owners
Risk decisionResidual risk پذیرفته یا Release می‌شود؟Risk/release authority

Fact، Observation، Interpretation، Hypothesis و Cause

برچسبنمونه‌ی سالمخطای رایج
Fact/Observationدر Run خیالی، Token دیررس پذیرفته شد«مهاجم احراز هویت را شکست»
InterpretationOracle این پذیرش را خلاف Claim می‌داندبرداشت به‌عنوان Fact
HypothesisConfig و design Control ممکن است Gap داشته باشندRoot cause زودرس
Causal factorبا Evidence و alternative explanation سنجیدهیک CVE/Scanner finding = Cause
Counterfactual«ممکن بود پیش‌تر Detect شود» با Confidence«حتماً رخنه را پیشگیری می‌کرد»

Incident Fact Packet

IncidentFactPacket {
  incidentId, incidentVersion, status,
  incidentAuthority, factsAsOf,
  detectionTime, containmentTime, recoveryTime,
  affectedScope, confirmedImpact, potentialImpact,
  asset/dataClasses, evidenceHoldId, timelineId,
  unknowns, limitations,
  communicationsRef, legalPolicyRef, privacyPolicyRef,
  access, digest
}

Confirmed و Potential impact را جدا کنید. Scope می‌تواند با Evidence تازه تغییر کند؛ Fact packet را Version کنید. داده‌ی Incident ممکن است Secret، PII، Credential یا Indicator حساس داشته باشد؛ کمینه‌سازی، Legal hold، Chain of custody و Access policy را از سازمان بگیرید، نه از سلیقه‌ی نویسنده‌ی تست.

Timeline باید Evidence-backed و قابل اصلاح باشد

Event time، ingestion time، analyst time و notification time یکی نیستند. Clock skew، sampling، retention و log loss را ثبت کنید. نبود Log اثبات نبود Event نیست؛ Timestamp برابر نیز ترتیب علّی را ثابت نمی‌کند. Correction باید Timeline قبلی را Supersede کند، نه تاریخچه را بازنویسی.

Attack Path را از داستان مهاجم جدا کنید

Attack Path یک مدل نسخه‌دار از Steps مشاهده‌شده و فرضی است. Actor intent، قابلیت و Stepهای دیده‌نشده را Fact ننامید. Entry point، Trust boundary، Asset، Preconditions، Control encounter، Observation، Unverified step، Alternative path و Confidence را ثبت کنید.

AttackPath {
  pathId, actorAssumption, precondition,
  entryPoint, initialAccess, trustBoundary, assetReached,
  actionSequence[], controlEncounters[], observations[],
  evidenceRefs[], unverifiedSteps[], alternativePaths[],
  confidence, scope, version, digest
}

Exploit Chain و Control Chain را روی هم بیندازید

Path stepExpected controlObserved outcomeGap question
ورودی به Reset flowAbuse preventionدر Scope خیالی محدود نبودDesign یا Config؟
Token دیررسExpiry/single useپذیرفته شدImplementation/clock?
تکرار درخواستDetection/alertSignal ساخته نشدTelemetry/rule/route?
اثر روی SessionContainment/revokeدیر اجرا شدResponse ownership?

Security Claim را قبل از Tool نتیجه‌گیری کنید

«DAST سبز» Claim نیست. Claim بگوید کدام Property برای کدام Subject و Threat، در چه Scope/Environment، با چه Control outcome و Evidence انتظار می‌رود. Scanner فقط بخشی از Verification method است.

SecurityClaim {
  claimId, securityProperty,
  subjectId, threatId, expectedControlOutcome,
  basisRef, scope, environment,
  ownerCapability, verificationMethod,
  evidenceRequirement, knownLimitations,
  validityWindow, status, supersedes, digest
}

Control Inventory؛ Prevent، Detect، Respond و Recover

یک Control ممکن است Prevent نکند اما Detection و Response بسازد. Purpose، Threat، Subject، implementation/config/deployment version، Ownerهای پیاده‌سازی/عملیات/Evidence، trigger/frequency، input coverage، detection logic، response action، failure mode و fallback را ثبت کنید.

SecurityControl {
  controlId, controlType, purpose, threatIds[],
  preventDetectRespondRecover[],
  implementationOwner, operationOwner, evidenceOwner,
  subjectId, implementationVersion, configurationVersion,
  deploymentScope, frequency, trigger, inputCoverage,
  detectionLogic, responseAction, failureMode, fallback,
  testMethod, lastEvidenceRef, status, digest
}

Control سبز با Control مؤثر یکسان نیست

SignalمحدودیتEvidence تکمیلی
Job exit 0Runner موفق، نه Control outcomeSubject/Coverage/Finding/Policy result
Zero criticalSeverity/Rules/Scope/False negativeTruth set + gap analysis
Alert rule enabledRoute/Telemetry/Data ممکن است غیرفعال باشدSafe detection exercise
Patch deployedPath/variant ممکن است باقی بماندRemediation/variant retest
Ticket closedWorkflow state، نه Security ClaimEvidence/authority/expiry

SAST، DAST، SCA و Pentest چه چیزهایی را نمی‌دیدند؟

SAST بدون Runtime/config و Business context محدود است؛ DAST به Reachability/Auth/Crawl/Environment وابسته است؛ SCA Presence و Known advisory می‌سازد، نه Exploitability یا Cause؛ Pentest یک Scope/Window/Method محدود دارد. برای مرز ابزارها، راهنمای SAST/DAST/SCA و برای Subject/Component identity، راهنمای SBOM را ببینید.

روشSignal مفیدGap رایج
SASTPattern/Data flow در Source/BuildRuntime config/business abuse
SCA/SBOMComponent/advisory inventoryReachability/exposure/compensating controls
DAST/API scanرفتار reachable در EnvironmentState/role/hidden workflow
PentestPathهای هدفمند در RoEزمان/Scope/variant محدود
Telemetry exerciseDetect/route/respond outcomePrevention/design proof

OWASP Top ۱۰ برنامه کامل یا Cause catalogue نیست

OWASP Top ۱۰ برای آگاهی و شروع Risk conversation مفید است، اما Asset/Threat/Requirement/Control/Coverage مخصوص محصول را جایگزین نمی‌کند. نسخه‌ی فعلی و روش استفاده را Pin کنید؛ برای جزئیات، OWASP Top ۱۰:۲۰۲۵ و روش تست را بخوانید.

Escape چیست؟ Finding از کدام مرز گذشت؟

Escape را فقط «QA پیدا نکرد» تعریف نکنید. ممکن است Claim اصلاً نوشته نشده، Threat model ناقص، Control طراحی نشده، implementation/config/deployment drift داشته، Test coverage کم، Finding سرکوب/Defer، Telemetry کور، Response دیر یا Governance مبهم باشد. مرز را با Evidence تعیین کنید.

Gap classپرسشOwner capability نمونه
CLAIM/THREAT_GAPRequirement یا Threat غایب بود؟Product security/architecture
CONTROL_DESIGN_GAPControl برای Path کافی بود؟Design/security engineering
IMPLEMENTATION_GAPطرح درست اجرا شد؟Development
CONFIG/DEPLOY_GAPنسخه و Scope موثر درست بود؟Platform/operations
COVERAGE_GAPVerification سؤال را دیده بود؟Test/AppSec
TELEMETRY/RESPONSE_GAPDetect/Route/Act عمل کرد؟Detection/IR
GOVERNANCE_GAPException/Authority/expiry شکست خورد؟Risk/leadership

Escape Record قابل‌کپی

SecurityEscape {
  escapeId, escapedObservation,
  expectedDetectionOrPrevention, actualControlOutcome,
  gapClass, controlId, lifecycleStage,
  whyNotDetected, evidenceRefs,
  counterfactual, counterfactualConfidence,
  alternativeExplanation,
  ownerCapability, priority, disposition,
  rationale, dueAt, digest
}

Counterfactual: «چه می‌شد اگر؟» را محدود کنید

بعد از حادثه آسان است بگوییم یک Test یا Scanner حتماً پیشگیری می‌کرد. Counterfactual سالم شرط، مکانیزم، Evidence، Coverage، زمان، Owner و Confidence دارد: «اگر Claim و Control نسخه X پیش از Release Y با این Variant آزموده می‌شد، احتمال Detection پیش از انتشار بیشتر بود.» این جمله هنوز Prevention قطعی یا نبود Path جایگزین را ادعا نمی‌کند.

Hindsight bias و Survivorship bias

دانستن Path واقعی، کشف آن را در گذشته بدیهی نشان می‌دهد. فقط Control شکست‌خورده را نبینید؛ Controlهایی که Impact را محدود یا Recovery را سرعت دادند هم بررسی کنید. Priority پیشین را با Evidence و Facts-as-of آن زمان ارزیابی کنید، نه با Impact شناخته‌شده‌ی امروز.

Blameless یعنی بدون مسئولیت نیست

نام فرد را جای مکانیزم نگذارید، اما Owner، Authority، Decision و تعهد را حذف نکنید. «همه مسئول امنیت‌اند» اگر Control owner، Evidence owner، risk authority و due date نداشته باشد یعنی هیچ‌کس پاسخ‌گو نیست. Human action را در Context ابزار، فشار، access، incentive و review بررسی کنید.

Remediation فقط Patch همان Finding نیست

Path ممکن است به Design، Config، Dependency، Default، Telemetry و Response مرتبط باشد. Fix local را از Path closure جدا کنید. Change باید Gap IDs، Design، Commit/Build، deployment/rollback، reproduction، negative controls، regression، side effects و Evidence Manifest داشته باشد.

SecurityRemediation {
  remediationId, gapIds[], changeType,
  designRef, commitId, buildId,
  deploymentPlan, rollbackPlan,
  testScope, exploitReproductionId,
  negativeControls[], regressionScope, sideEffectChecks,
  evidenceManifestId, ownerCapability,
  status, limitations, digest
}

Reproduction امن؛ Attack را در Production تکرار نکنید

از Environment جدا، Asset/Data/Identity ساختگی، Network محدود، Rules of Engagement، rate/stop condition، Kill switch، cleanup و Evidence access استفاده کنید. Payload یا روش بهره‌برداری واقعی را در Ticket عمومی نگذارید. اگر Reproduction خطرناک یا غیرضروری است، از Model/Unit/Control exercise کم‌خطرتر Evidence بسازید.

Retest، Regression و Variant testing

لایهسؤالنمونه Evidence
ConfirmationPath اصلی دیگر Outcome نامجاز می‌دهد؟همان Build/Control/Oracle
Negative controlرفتار مجاز هنوز کار می‌کند؟Single valid reset
VariantDistributed/parallel/clock/state variant؟Bounded scenario set
RegressionAdjacent auth/session flows آسیب دیدند؟Risk-selected suite
DetectionSignal/route/action ساخته می‌شود؟Safe alert exercise
RecoveryRevoke/contain/runbook کار می‌کند؟Controlled drill

Finding، Vulnerability، Exploitability، Exposure و Incident

Scanner finding ممکن است False positive، present-but-unreachable، vulnerable-and-exposed یا بخشی از Path باشد. CVE match Cause رخداد نیست. Subject digest/version، Reachability، effective config، compensating controls، exploit preconditions و Incident evidence را جدا کنید. Severity و Priority نیز Context و Authority می‌خواهند.

Suppression و Exception را بازبینی کنید

Suppressed finding ممکن است آن زمان طبق Scope درست بوده اما با Asset/Exposure جدید stale شده باشد. Exception باید Subject، Finding/Claim، rationale، compensating control، Authority، expiry و Reopen trigger داشته باشد. رخداد به‌تنهایی ثابت نمی‌کند تصمیم پیشین غیرمنطقی بوده؛ Facts-as-of و Change history را بسنجید.

Recurrence Profile؛ فقط همان Payload را تست نکنید

RecurrenceProfile {
  recurrenceProfileId, originalPathId,
  variantPaths[], affectedAssets[],
  threatModelChanges, claimChanges, controlChanges,
  testChanges, telemetryChanges, policyChanges,
  educationChanges, supplierActions, backlogActions,
  measurementPlan, reviewDate, expiry, digest
}

Training یا Scanner بیشتر خودکار Prevention نیست. Variant، Asset family، Secure default، Dependency/Supplier action، Detection, Runbook, Exception policy و Architecture change را با Owner و Measure بررسی کنید.

Evidence of absence نداریم؛ Absence of evidence هم حکم نیست

Retest سبز Scope خودش را پشتیبانی می‌کند. نمی‌تواند نبود همه‌ی Pathها یا مهاجم آینده را ثابت کند. برعکس، نبود Telemetry هم Incident را رد نمی‌کند. Claim limit، Unknown، Evidence gap، monitoring plan و validity window را کنار Result بنویسید.

Security Escape Result و Decision

SecurityEscapeResult {
  resultId, incidentId, pathId,
  claimIds[], controlIds[], gapIds[], remediationId,
  buildId, environmentId, runIds[],
  confirmationVerdict, variantVerdicts,
  detectionVerdict, regressionVerdict,
  unknowns, limitations, residualRisk,
  evidenceManifestId,
  recommendation, decisionAuthority, decision,
  expiry, reopenTriggers, supersedes, digest
}

Ticket Closed، Remediation deployed، Tests pass، Risk accepted و Incident closed وضعیت‌های جدا هستند. QA می‌تواند Evidence و Recommendation بدهد؛ Risk acceptance، Disclosure و Release به Authority تعریف‌شده تعلق دارد.

Correction و اطلاع به تصمیم‌های متاثر

اگر بعداً Attack path، Impact، Asset scope یا Control outcome تغییر کرد، Review قبلی را پاک نکنید. Correction با prior/new digest، Evidence تازه، Confidence جدید و Query همه‌ی Claim/Exception/Release/Customer communicationهای متاثر بسازید. سطح دسترسی Correction نیز حساس باقی می‌ماند.

آزمایشگاه فارسی و آفلاین Reset خیالی

این Lab کاملاً ساختگی، آفلاین و جدا از هر شرکت، کاربر، سامانه، بانک، PSP یا Incident واقعی است. روش بهره‌برداری Production ارائه نمی‌کند و توصیه‌ی امنیتی/حقوقی/حریم خصوصی/افشا یا پاسخ به رخداد یک سازمان نیست. Assetها شامل Identity Stub، Reset Simulator، Token Store، Notification Stub و Alert Sink خیالی‌اند.

Observation خیالیExpected controlGapRemediation evidence
Token دیررس پذیرفته شدExpiry/single-useDesign+configBoundary/clock/one-use variants
تکرار محدود شناسایی نشدRate+DetectionTelemetry ruleSafe alert exercise
مسیر مجاز باید بماندAvailability/UX guardrailOverblocking riskNegative controls
Session خیالی revoke شدContainmentResponse latencyControlled drill

شناسه‌ها Synthetic هستند؛ ارقام فارسی/عربی/لاتین، Unicode NFC، RTL/LTR و UTC/Asia-Tehran/Jalali نمایشی فقط برای صحت Evidence آزمایش می‌شوند. هیچ نام، موبایل، ایمیل، IP، Password، Hash واقعی، Session، Cookie، Token، Credential، Payload، Exploit، Log یا Screenshot واقعی استفاده نمی‌شود.

Fixture: نه Job سبز در برابر ۲۰۴ Finding

Fixture مستقل `SYN-SECURITY-ESCAPE-CONTROL-GAP-۰۱` با Node.js و بدون Dependency بیرونی اجرا شد. Dashboard نه از نه Security Job، صفر Critical finding و Incident ticket بسته را دید و `SECURITY_CONTROL_PASS` اعلام کرد. ممیزی ۲۰۶قاعده‌ای همان ورودی را با دقیقاً ۲۰۴ Finding به HOLD برد.

گروهقاعدهنمونه
Identity18Incident/Asset/Build/Deploy/Policy
Incident18Fact/Impact/Evidence/Unknown/Authority
Attack Path17Entry/Boundary/Steps/Controls/Confidence
Claim16Property/Subject/Threat/Evidence/Limit
Control23Purpose/Version/Scope/Owner/Failure/Fallback
Escape18Gap/Counterfactual/Alternative/Disposition
Remediation18Build/Reproduction/Negative/Regression/Evidence
Recurrence17Variants/Assets/Control/Test/Telemetry/Policy
Governance19IR boundary/Authorities/Safety/Correction
Forbidden + Relations42مطلق‌گویی و اتصال قراردادها

نسخه‌ی اصلاح‌شده `INC-SYN-۳۲` را فقط پس از Containment/Recovery و مجوز تحلیل ثبت کرد، `PATH-RESET-SYN-۳۲` را با Stepهای تاییدشده/تاییدنشده و Confidence ساخت، Claim و `CTRL-RATE-SYN-۳۲` را به Gap طراحی/Detection وصل کرد، Counterfactual را با Confidence متوسط محدود کرد و Remediation build را با Negative/Variant/Detection evidence بست. خروجی `READY_FOR_SECURITY_ESCAPE_REVIEW` با صفر Finding بود؛ نه اثبات Facts، Cause، جلوگیری قطعی، نبود Path دیگر، امنیت محصول، Incident closure یا Risk acceptance.

Automation و AI در Escape Review

Automation می‌تواند IDها را پیوند، Control coverage را Diff، Exception expiry را هشدار و Variant suite را اجرا کند. AI می‌تواند Fact/Interpretation را پیشنهادِ تفکیک، Gap candidate را خوشه‌بندی یا Action draft تولید کند؛ نباید Missing facts بسازد، Actor intent یا Blame نسبت دهد، Secret/Incident data بی‌مجوز دریافت کند، Cause قطعی، Disclosure، Risk acceptance یا Closure صادر کند. ورودی/مدل/Prompt/خروجی و Human review را ثبت کنید.

معیارهای سالم و Countermetricها

MetricکاربردCountermetric
Time to comparable evidenceسرعت تحلیل معتبرEvidence contamination/access breach
Gap-to-control mappingاتصال Action به مکانیزمUnknown/alternative explanations
Remediation evidence ageFreshnessChange-trigger misses
Variant coveragePath family بررسی‌شدهUnsafe/low-value tests
Detection exercise passSignal/route/actionFalse alert/operational load
Exception expiry/reopenبدهی زمان‌دارRisk silently transferred
Correction reachتصمیم‌های اصلاح‌شدهDisclosure/access errors

۳۴ Anti-pattern در تحلیل Security Escape

  1. تستر را اولین خط دفاع نامیدن.
  2. QA را نگهبان امنیت دانستن.
  3. گفتن QA حتماً رخنه را پیشگیری می‌کرد.
  4. یک Scanner را مانع قطعی رخنه دانستن.
  5. SAST را بینای Runtime دانستن.
  6. DAST را پوشش‌دهنده همه Business logic.
  7. SCA presence را Exploitability دانستن.
  8. CVE match را Cause رخداد دانستن.
  9. Pentest را Preventive guarantee دانستن.
  10. OWASP Top ۱۰ را Test plan کامل دانستن.
  11. حمله به همه Endpointها بدون Scope.
  12. Think like attacker بدون Authorization.
  13. Everyone owns security بدون Owner.
  14. Zero critical را اثبات Security دانستن.
  15. Pipeline سبز را Control effectiveness دانستن.
  16. Patch Finding را بستن Path دانستن.
  17. Reproduction را اثبات Root cause دانستن.
  18. Cannot reproduce را Not vulnerable دانستن.
  19. No alert را No compromise دانستن.
  20. نبود Log را نبود Event دانستن.
  21. کپی Incident Evidence به Test.
  22. تحلیل عمیق پیش از Containment.
  23. واگذاری Customer communication به QA.
  24. Blameless را بدون Accountability دانستن.
  25. Human error را Root cause نهایی دانستن.
  26. Training بیشتر را Prevention دانستن.
  27. Scanner بیشتر را Prevention دانستن.
  28. Shift-left را تضمین Prevention دانستن.
  29. Security testing را تضمین No breach دانستن.
  30. Regression pass را Remediation complete دانستن.
  31. Counterfactual قطعی ساختن.
  32. AI برای ساخت Fact گمشده.
  33. AI برای Blame.
  34. AI برای Risk acceptance.

چک‌لیست ۳۲نقطه‌ای Review Owner

حوزهکنترل
AuthorityIncident command/analysis/security/risk/disclosure جدا هستند؟
FactsVersion/Facts-as-of/confirmed-potential impact/unknown/limit روشن است؟
EvidenceHold/access/minimization/timeline/clock/correction دارد؟
PathEntry/boundary/asset/steps/control encounter/unverified/alternative/confidence ثبت است؟
ClaimProperty/Subject/Threat/Scope/Basis/Evidence/Validity روشن است؟
ControlPurpose/type/version/config/scope/owners/trigger/coverage/failure/fallback دارد؟
GapClass/stage/evidence/counterfactual/confidence/alternative/owner مشخص است؟
RemediationDesign/Build/Deploy/Rollback/Reproduction/Negative/Regression/Evidence دارد؟
Safetyآزمایش آفلاین/مصنوعی/RoE/stop/cleanup/access محدود است؟
VariantsAdjacent path/assets/clock/parallel/distributed/detection پوشش دارند؟
DecisionResult/Recommendation/Risk/Closure/Release جدا هستند؟
RecurrenceThreat/Claim/Control/Test/Telemetry/Policy/Supplier changes دارد؟
FreshnessExpiry/reopen/change triggers/Correction/Affected decisions روشن است؟

Pilot سی‌روزه برای یک Escape ساختگی

بازهکارGuardrail/خروجی
روز ۱–۵مرز Authority و Fact packet خیالیبدون Incident/PII/Secret واقعی
روز ۶–۱۰Path/Claim/Control mapFact/Hypothesis/Confidence
روز ۱۱–۱۵Gap و Counterfactual محدودNo blame/no certainty
روز ۱۶–۲۰Remediation/Negative/Variant suiteOffline/RoE/stop
روز ۲۱–۲۵Detection/recovery drill و CorrectionSafe alert sink
روز ۲۶–۳۰Metrics و Scale/Adapt/StopCountermetric/claim limits

جمع‌بندی

بعد از رخنه نپرسید «تسترها چرا جلوی آن را نگرفتند؟» بپرسید Path از کدام Claim، Control، Coverage، Telemetry، Response یا Governance gap عبور کرد و Evidence چیست. هنگام رخداد فعال از Incident command پیروی کنید؛ پس از مجوز تحلیل، Facts و Path را نسخه‌دار، Counterfactual را محدود و Remediation را با Negative/Variant/Detection/Recovery Evidence ببندید. Testing یادگیری را تقویت می‌کند، اما امنیت و مسئولیت سازمانی را تضمین یا تصاحب نمی‌کند.

سؤالات متداول

آیا QA مسئول جلوگیری از رخنه امنیتی است؟

خیر. QA می‌تواند Security Claimها و Controlها را ارزیابی و Gapها را گزارش کند، اما طراحی، توسعه، پیکربندی، عملیات، Incident response، Risk و رهبری Ownerهای جدا دارند. «مسئولیت همگانی» باید به مسئولیت‌های مشخص تبدیل شود.

اولین اقدام تستر هنگام رخداد فعال چیست؟

از Playbook و Incident command سازمان پیروی کند، Evidence را دست‌کاری نکند و فقط وظیفه‌ی مجاز/ایمن را انجام دهد. بازتولید حمله، ارتباط با مشتری یا تغییر Production بدون Authority اقدام پیش‌فرض نیست.

آیا SAST، DAST یا SCA می‌توانست رخنه را پیشگیری کند؟

ممکن است Signal یا Detection زودتر بسازد، اما به Scope، Subject، Rule، Auth، Environment، Business path، Triage و Action وابسته است. Counterfactual را با Evidence و Confidence بنویسید؛ Prevention قطعی ادعا نکنید.

Retest موفق یعنی Remediation کامل است؟

فقط اگر Claim محدود همان Retest را بگوییم. Path اصلی ممکن است بسته باشد، اما Variant، Asset مشابه، Detection، Recovery، Side effect یا Gap حکمرانی باقی بماند. Result، Residual risk و Authority را جدا نگه دارید.

Blameless Security Review چگونه پاسخ‌گویی را حفظ می‌کند؟

از سرزنش فرد و داستان ساده دور می‌شود، اما Control owner، Decision authority، rationale، Action، due date، Evidence و expiry را حذف نمی‌کند. رفتار انسانی در Context سیستم بررسی می‌شود و تعهدها همچنان قابل پیگیری‌اند.

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