GLOS · واژه‌نامه سرنام بحرانی

Zero-Day — روز صفر

Zero-Day (0-day)

زیرودی به آسیب‌پذیری‌ای گفته می‌شود که سازنده هنوز از آن بی‌خبر است و وصله‌ای برایش وجود ندارد؛ آسیب‌پذیری‌ای که وصله دارد و شما نصبش نکرده‌اید زیرودی نیست — N-Day است، و نقض‌های واقعی بیشتر از همین دسته می‌آیند.

تیم فنی پی‌هانتر

سه چیز متفاوت که همه «زیرودی» نامیده می‌شوند

اصطلاح «روز صفر» از شمارش روزها می‌آید: تعداد روزهایی که سازنده برای رفع مشکل در اختیار داشته، صفر است. اما سه مفهوم جدا زیر این نام جمع می‌شوند و تفکیکشان در گزارش و در جلسه‌ی مدیریت بحران اهمیت دارد:

  • آسیب‌پذیری روز صفر (zero-day vulnerability): خودِ نقص؛ برای سازنده ناشناخته و بدون وصله‌ی رسمی. ممکن است سال‌ها در کد بماند بی‌آنکه کسی از آن سوءاستفاده کند.
  • اکسپلویت روز صفر (zero-day exploit): کدی که آن نقص را به اثر عملی تبدیل می‌کند. وجود آسیب‌پذیری به‌معنای وجود اکسپلویت قابل اتکا نیست.
  • حمله‌ی روز صفر (zero-day attack): استفاده‌ی واقعی از آن اکسپلویت علیه یک هدف. این تنها موردی است که به رخداد امنیتی تبدیل می‌شود.

لحظه‌ای که سازنده مطلع می‌شود، عنوان «روز صفر» پایان می‌یابد — حتی اگر وصله هنوز آماده نباشد. از آن نقطه به بعد با یک آسیب‌پذیری افشاشده‌ی بدون وصله سروکار داریم که دست‌کم قابل رصد و قابل کاهش‌ریسک است.

زیرودی در برابر N-Day

باور غلط رایج

«هر آسیب‌پذیری وصله‌نشده‌ای زیرودی است.» خیر. اگر سازنده وصله را منتشر کرده و شما نصبش نکرده‌اید، آن یک N-Day است: نقصی که n روز از انتشار وصله‌اش گذشته و جزئیاتش عمومی است. در زیرودی هیچ‌کس نمی‌داند دنبال چه بگردد؛ در N-Day همه می‌دانند — از جمله مهاجم، که معمولاً کد اکسپلویت آماده هم دارد.

نکته‌ی مهم‌تر: بخش بزرگی از نفوذهای واقعی از N-Day می‌آید، نه از زیرودی. اکسپلویت زیرودی گران، کمیاب و هدفمند است؛ آسیب‌پذیریِ وصله‌شده‌ی وصله‌نصب‌نشده رایگان، عمومی و خودکارسازی‌شده. نمونه‌هایی که OWASP در دسته‌ی A03:2025 نام می‌برد — Log4Shell (CVE-2021-44228) و RCE در Struts 2 (CVE-2017-5638) — سال‌ها پس از انتشار وصله همچنان قربانی می‌گرفتند.

پیامد عملی: بودجه‌ی امنیتی باید عمدتاً صرف چیزی شود که کنترلش دست شماست — فهرست دارایی، پایش انتشار وصله‌ها و سرعت اعمال آن‌ها. سازمانی که چرخه‌ی وصله‌گذاری‌اش سه ماه طول می‌کشد، برای نفوذ نیازی به زیرودی ندارد.

رابطه با CVE و خط زمانی افشا

شناسه‌ی CVE یک نام یکتا برای یک آسیب‌پذیری مشخص است و توسط یک CNA تخصیص می‌یابد. رابطه‌ی آن با زیرودی سه نکته دارد که مرتب اشتباه گفته می‌شود:

  • یک آسیب‌پذیری روز صفر معمولاً هنوز CVE ندارد؛ شناسه نزدیک زمان افشا تخصیص می‌یابد، پس «CVE ندارد» یعنی «وجود ندارد» نیست.
  • تخصیص CVE به‌معنای وجود وصله نیست و بالعکس؛ این دو فرایند جداگانه‌اند.
  • غنی‌سازی رکورد در NVD (امتیاز، نگاشت CWE، محدوده‌ی نسخه‌های آسیب‌پذیر) ممکن است با تأخیر انجام شود؛ در روزهای نخست باید به اعلامیه‌ی سازنده تکیه کرد.

در امتیازدهی هم تفاوت دیده می‌شود: در CVSS v4.0 گروه Threat تنها یک سنجه دارد — Exploit Maturity (E) — که وجود کد اثبات مفهوم یا بهره‌برداری فعال را منعکس می‌کند. ترکیب آن با امتیاز پایه باید با نام‌گذاری رسمی CVSS-BT گزارش شود:

CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:A

فهرست KEV که CISA منتشر می‌کند معیار عملی خوبی برای اولویت‌بندی است: چیزی که همین حالا در حال بهره‌برداری است، پیش از چیزی که فقط امتیاز بالا دارد وصله می‌شود.

چرا «آن یک زیرودی بود» بهانه‌ی خوبی نیست

پس از یک رخداد، این جمله زیاد شنیده می‌شود. سه دلیل که آن را در جلسه‌ی بررسی ریشه‌ای بی‌اعتبار می‌کند:

  1. احتمالاً درست نیست. نخستین کار در واکنش به رخداد، تعیین دقیق مسیر ورود است؛ پاسخ معمولاً یک N-Day، یک اعتبارنامه‌ی لو رفته یا نقص کنترل دسترسی در کد خودِ سازمان است — نه نقصی ناشناخته در محصولی خارجی.
  2. سؤال درست چیز دیگری است. حتی اگر واقعاً زیرودی بوده باشد، پرسش این نیست که «چرا جلویش را نگرفتیم؟» بلکه: مهاجم پس از ورود چقدر پیش رفت؟ چرا از سرور وب به پایگاه‌داده‌ی مشتریان مسیر مستقیم داشت؟ چرا حرکت جانبی او هشداری تولید نکرد؟
  3. معمولاً نشانه‌ی شکست در تشخیص است. دسته‌ی A09:2025 نقص‌های ثبت رخداد و هشداردهی برای همین وجود دارد؛ OWASP نمونه‌ی نقضی را نقل می‌کند که سال‌ها کشف‌نشده ماند و سرانجام یک طرف بیرونی گزارشش کرد. اگر مدت اقامت مهاجم بر حسب ماه اندازه‌گیری می‌شود، مسئله‌ی اصلی زیرودی نبوده است.

مدافع واقعاً چه کاری می‌تواند بکند؟

در برابر نقص ناشناخته نمی‌توان «وصله» کرد؛ آنچه می‌شود کرد کاهش احتمال و محدود کردن اثر است:

  • کاهش سطح حمله: حذف مؤلفه‌ها و سرویس‌های غیرضروری — هر کتابخانه‌ای که استفاده نمی‌کنید، یک زیرودی بالقوه‌ی کمتر است.
  • کمینه‌سازی دسترسی: کاربر پایگاه‌داده‌ی کم‌اختیار، جداسازی شبکه و کنترل ترافیک خروجی؛ اثر بیشتر اکسپلویت‌ها به دسترسی سرویس آسیب‌دیده وابسته است.
  • تشخیص: ثبت رخداد در نقاط بامعنا و هشدار روی الگوهای غیرعادی — درخواست خروجی به مقصد ناشناخته، ایجاد کاربر جدید، اجرای فرایند از دایرکتوری آپلود.
  • آمادگی واکنش: برنامه‌ی مکتوب واکنش به رخداد و توان اعمال سریع وصله؛ سازمانی که در ۲۴ ساعت وصله می‌زند، پنجره‌ی N-Day کوتاهی هم دارد.
هشدار درباره‌ی «وصله‌ی مجازی»

خرید زمان با قاعده‌ی WAF تا انتشار وصله، موجه‌ترین کاربرد WAF است — اما قاعده‌ی مجازی با تغییر رمزگذاری و شکل درخواست دور زده می‌شود و اگر مهاجم IP اصلی سرور را بیابد کل لایه کنار می‌رود. WAF به IDOR، منطق کسب‌وکار و شرایط رقابتی هم ساختاراً نابیناست. وصله‌ی مجازی مهلت است، نه رفع، و نباید در گزارش تست نفوذ به‌عنوان راهکار ثبت شود.

افشای مسئولانه و نگاشت به استانداردها

اگر تیم شما نقصی ناشناخته در محصول شخص ثالثی بیابد، مسیر حرفه‌ای افشای مسئولانه است: گزارش به سازنده، توافق بر بازه‌ی رفع، و انتشار جزئیات پس از عرضه‌ی وصله — انتشار زودهنگام اثبات مفهوم کاربران را بی‌دفاع می‌گذارد. در سمت مقابل، سازمانی که سیاست افشای روشن دارد، نقص را از پژوهشگر می‌شنود نه از مهاجم.

نگاشت: ریسک زیرودی و N-Day در مؤلفه‌های شخص ثالث ذیل A03:2025 نقص‌های زنجیره‌ی تأمین نرم‌افزار قرار می‌گیرد — دسته‌ای که در نسخه‌ی ۲۰۲۵ گسترده‌تر شد و اکنون همه‌ی نقص‌های زنجیره‌ی تأمین را پوشش می‌دهد. ناتوانی در تشخیص بهره‌برداری ذیل A09:2025 می‌نشیند و CWE-1104 و CWE-1395 پرکاربردترین برچسب‌های این حوزه‌اند؛ مرور کامل دسته‌ها در راهنمای OWASP Top 10 آمده است.

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

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

زیرودی نقصی است که سازنده از آن بی‌خبر است و وصله‌ای برایش وجود ندارد. اگر وصله منتشر شده و شما نصبش نکرده‌اید، آن نقص یک N-Day است. این تفاوت در عمل تعیین‌کننده است: در N-Day جزئیات و اغلب کد اکسپلویت عمومی است و بهره‌برداری خودکار انجام می‌شود، به همین دلیل سهم N-Day در نقض‌های واقعی به‌مراتب بیشتر است.

آیا هر زیرودی شناسه‌ی CVE دارد؟

معمولاً نه، تا وقتی افشا نشده باشد. شناسه‌ی CVE توسط یک CNA و در زمان یا نزدیک زمان افشا تخصیص می‌یابد. ضمناً وجود CVE به‌معنای وجود وصله نیست و غنی‌سازی رکورد در NVD ممکن است با تأخیر انجام شود؛ در روزهای نخست باید به اعلامیه‌ی خودِ سازنده تکیه کرد.

آیا WAF جلوی حمله‌ی روز صفر را می‌گیرد؟

گاهی و به‌طور موقت. قاعده‌ی مجازی می‌تواند تا انتشار وصله زمان بخرد و این موجه‌ترین کاربرد WAF است، اما با تغییر رمزگذاری و شکل درخواست دور زده می‌شود و اگر مهاجم IP اصلی سرور را بیابد کل لایه کنار می‌رود. WAF به کنترل دسترسی، منطق کسب‌وکار و شرایط رقابتی هم نابیناست.

اگر یک آسیب‌پذیری ناشناخته پیدا کردیم چه کار کنیم؟

مسیر حرفه‌ای افشای مسئولانه است: گزارش خصوصی به سازنده با جزئیات کافی برای بازتولید، توافق بر بازه‌ی زمانی رفع، و انتشار جزئیات پس از عرضه‌ی وصله. انتشار زودهنگام اکسپلویت کاربران را بی‌دفاع می‌گذارد و پیامد حقوقی دارد.

پیشگیری / رفع

برنامه‌ی عملی برای کاهش ریسک زیرودی و N-Day، به ترتیب اثربخشی:

  1. فهرست دارایی و SBOM. تا ندانید چه کتابخانه‌ای با چه نسخه‌ای کجا اجرا می‌شود، در ساعت انتشار یک CVE بحرانی نمی‌توانید بگویید «آیا ما تحت تأثیریم؟» — و این تنها اقدامی است که پنجره‌ی N-Day را واقعاً کوتاه می‌کند.
  2. چرخه‌ی وصله‌گذاری با هدف زمانی مکتوب و اولویت‌بندی بر پایه‌ی بهره‌برداری فعال (فهرست KEV) نه صرفاً امتیاز پایه.
  3. کمینه‌سازی اختیار و جداسازی: حساب‌های کم‌اختیار، تفکیک شبکه، و کنترل ترافیک خروجی که هم استخراج داده و هم SSRF را محدود می‌کند.
  4. ثبت رخداد و هشداردهی قابل اقدام با کتابچه‌ی واکنش متناظر — نه صرفاً انباشت لاگ.
  5. وصله‌ی مجازی به‌عنوان اقدام موقت با تاریخ انقضای صریح، و تمرین دوره‌ای واکنش به رخداد و بازگردانی از پشتیبان.

تست نفوذ وب نشان می‌دهد سطح حمله و مسیرهای پس از نفوذ واقعاً چقدر محدودند؛ و برای رسمی کردن مسیر دریافت گزارش از پژوهشگران بیرونی، سیاست افشای مسئولانه نقطه‌ی شروع است.

واژه‌های مرتبط

→ بازگشت به دانشنامه
PUT IT TO THE TEST

امنیت سامانه‌ی شما را
به مهاجمان واگذار نکنید

تیم پی‌هانتر با دیدِ یک مهاجم واقعی، این آسیب‌پذیری‌ها و ده‌ها مورد دیگر را روی دارایی‌های شما می‌سنجد.