Zero-Day چیست؟ بررسی آسیبپذیریهای روز صفر، حملات Zero-Day و راههای مقابله با آنها
Zero-Day چیست؟ با مفهوم آسیبپذیری روز صفر، Zero-Day Exploit و حملات Zero-Day آشنا شوید و ببینید هکرها چگونه از این ضعفها سوءاستفاده میکنند و چطور میتوان از آنها جلوگیری کرد.
وقتی صحبت از امنیت سایبری میشود، یکی از خطرناکترین اصطلاحاتی که ممکن است بشنویم Zero-Day یا «روز صفر» است.
اما Zero-Day دقیقاً چیست؟ چرا این آسیبپذیریها تا این اندازه خطرناک هستند؟ آیا هر آسیبپذیری جدیدی یک Zero-Day محسوب میشود؟ تفاوت Zero-Day Vulnerability با Zero-Day Exploit و Zero-Day Attack چیست؟ و مهمتر از همه، وقتی هنوز وصلهای برای یک آسیبپذیری وجود ندارد، سازمانها و کاربران چگونه باید از خودشان محافظت کنند؟
در این مقاله، Zero-Day را از پایه بررسی میکنیم؛ از مفهوم ساده آن برای کاربران عادی گرفته تا چرخه کشف و افشای آسیبپذیری، Exploit، Patch، CVE، حملات واقعی و روشهای دفاع در برابر این تهدیدها.
Zero-Day چیست؟
به زبان ساده، Zero-Day به یک آسیبپذیری امنیتی گفته میشود که پیش از آنکه سازنده یا مدافعان بتوانند برای آن راهکار مؤثری ارائه کنند، امکان سوءاستفاده از آن وجود دارد.
NIST در تعریف رسمی خود، Zero-Day Attack را حملهای میداند که از یک آسیبپذیری سختافزاری، Firmware یا نرمافزاری که پیشتر ناشناخته بوده، سوءاستفاده میکند.
برای درک بهتر، فرض کنید در مرورگر شما یک ایراد امنیتی وجود دارد که مهاجم میتواند از آن برای اجرای کد مخرب روی سیستم استفاده کند.
تا زمانی که شرکت سازنده از این مشکل اطلاع ندارد و هنوز وصلهای برای برطرف کردن آن منتشر نکرده است، مهاجم ممکن است از این ضعف در حمله واقعی استفاده کند.
در چنین شرایطی، مدافعان عملاً با مشکلی مواجهاند که هنوز برای آن Patch رسمی در دسترس نیست.
به همین دلیل Zero-Day یکی از دشوارترین سناریوهای دفاع سایبری محسوب میشود.
چرا «Zero-Day»؟
عدد «صفر» به این موضوع اشاره دارد که از زمان آگاهی عمومی یا سازنده از آسیبپذیری تا زمانی که بتوان برای آن اصلاحیهای در دسترس داشت، عملاً صفر روز فرصت دفاع سنتی وجود داشته است.
البته در دنیای واقعی، اصطلاح Zero-Day همیشه به معنای «کاملاً ناشناخته برای همه» نیست.
ممکن است یک مهاجم یا گروه مهاجم از آسیبپذیری اطلاع داشته باشد، آن را برای مدتی مخفیانه استفاده کند و شرکت سازنده تازه بعداً متوجه وجود آن شود.
این مسئله یکی از خطرناکترین حالتهای Zero-Day است:
مهاجم میداند، اما مدافع هنوز نمیداند.
یک نکته مهم: Zero-Day با «آسیبپذیری جدید» یکی نیست
این اشتباه بسیار رایجی است که هر آسیبپذیری تازه کشفشده را Zero-Day بدانیم.
در واقع، جدید بودن یک آسیبپذیری بهتنهایی آن را Zero-Day نمیکند.
مثلاً یک پژوهشگر امنیتی ممکن است امروز یک آسیبپذیری را در نرمافزاری پیدا کند، آن را به شرکت سازنده گزارش دهد و شرکت نیز قبل از هرگونه سوءاستفاده عمومی، Patch منتشر کند.
در این شرایط، آسیبپذیری ممکن است جدید باشد، اما لزوماً یک Zero-Day Attack رخ نداده است.
Zero-Day بیشتر به وضعیت زمانی و عملیاتی آسیبپذیری مربوط میشود؛ یعنی مهاجم چگونه و در چه زمانی میتواند از آن استفاده کند و آیا سازنده هنوز فرصت مؤثر برای اصلاح آن داشته است یا خیر.
تفاوت Zero-Day Vulnerability، Zero-Day Exploit و Zero-Day Attack
سه اصطلاح بسیار نزدیک به یکدیگر وجود دارند که نباید آنها را یکی دانست.
۱. Zero-Day Vulnerability
یعنی خودِ ضعف امنیتی.
برای مثال:
یک مرورگر در پردازش یک نوع فایل خاص دچار خطای حافظه میشود و این خطا میتواند امکان اجرای کد مهاجم را ایجاد کند.
این نقص، Vulnerability است.
۲. Zero-Day Exploit
Exploit یعنی روش، کد یا تکنیکی که از آسیبپذیری سوءاستفاده میکند.
بنابراین اگر مهاجم بتواند از آن ضعف امنیتی برای اجرای عملیات موردنظرش استفاده کند، Exploit در اختیار دارد.
به زبان ساده:
Vulnerability = سوراخ امنیتی
Exploit = روشی برای استفاده از آن سوراخ
۳. Zero-Day Attack
وقتی مهاجم واقعاً از یک آسیبپذیری ناشناخته یا هنوز اصلاحنشده برای حمله استفاده میکند، با یک Zero-Day Attack مواجه هستیم.
یعنی:
Vulnerability → Exploit → Attack
این سه مفهوم به هم مرتبطاند، اما مترادف نیستند.
یک مثال ساده برای درک Zero-Day
فرض کنید یک شرکت نرمافزاری یک درِ امنیتی برای ورود به ساختمان طراحی کرده است.
یک روز یک مهاجم متوجه میشود که اگر دستگیره را به شکل خاصی فشار دهد، قفل بدون کلید باز میشود.
اما:
- شرکت هنوز از این مشکل خبر ندارد؛
- کاربران نیز چیزی درباره آن نمیدانند؛
- هنوز قفل اصلاح نشده؛
- مهاجم روش باز کردن آن را میداند.
در این وضعیت، مهاجم یک مزیت جدی دارد.
او میتواند قبل از اینکه سازنده فرصت اصلاح مشکل را پیدا کند، از آن استفاده کند.
در دنیای نرمافزار، همین مفهوم میتواند به اجرای کد، سرقت اطلاعات، نصب بدافزار، دسترسی غیرمجاز یا حتی کنترل بخشی از یک سیستم منجر شود.
Zero-Day چگونه کشف میشود؟
یک Zero-Day الزاماً توسط هکرها کشف نمیشود.
منشأ کشف میتواند متفاوت باشد.
پژوهشگران امنیتی
پژوهشگران با روشهایی مانند:
- Fuzzing
- Reverse Engineering
- Code Auditing
- Vulnerability Research
- تحلیل Crashها
ممکن است یک ضعف امنیتی را پیدا کنند.
شرکت سازنده
تیم امنیت داخلی یک شرکت نیز ممکن است هنگام بررسی گزارشهای کاربران یا رفتار غیرعادی نرمافزار، آسیبپذیری را کشف کند.
Bug Bounty
گاهی یک محقق مستقل در قالب برنامه Bug Bounty آسیبپذیری را پیدا میکند و آن را به سازنده گزارش میدهد.
مهاجمان
و این خطرناکترین حالت است.
ممکن است مهاجم پیش از هر فرد دیگری آسیبپذیری را پیدا کند و به جای گزارش آن، Exploit بسازد و از آن در حملات واقعی استفاده کند.
در این حالت، شرکت سازنده ممکن است زمانی از وجود آسیبپذیری مطلع شود که حمله از قبل در جریان بوده است.
خطرناکترین حالت: Zero-Day در حال سوءاستفاده
همه Zero-Dayها الزاماً یک خطر فوری و گسترده ایجاد نمیکنند.
اما زمانی که یک آسیبپذیری Zero-Day در حملات واقعی مورد سوءاستفاده قرار گرفته باشد، شرایط بسیار جدیتر میشود.
اصطلاح In-the-Wild Exploitation به همین وضعیت اشاره دارد؛ یعنی Exploit فقط در آزمایشگاه یا Proof of Concept وجود ندارد، بلکه در دنیای واقعی علیه اهداف واقعی استفاده شده است.
Google Project Zero سالهاست سوءاستفادههای Zero-Day در دنیای واقعی را رصد میکند. برای نمونه، این پروژه گزارش کرده که در سال ۲۰۲۱، تعداد ۵۸ Zero-Day مورد سوءاستفاده در طبیعت شناسایی و افشا شد؛ بالاترین تعداد ثبتشده از زمان آغاز ردیابی این موارد توسط Project Zero در سال ۲۰۱۴ تا آن زمان.
این آمار یک نکته مهم را نشان میدهد:
Zero-Day فقط یک مفهوم تئوری یا مربوط به فیلمهای هکری نیست؛ چنین آسیبپذیریهایی واقعاً در حملات سایبری استفاده میشوند.
Zero-Day چگونه به یک حمله سایبری تبدیل میشود؟
مسیر حمله بسته به نوع آسیبپذیری متفاوت است، اما میتوان آن را به شکل ساده اینگونه تصور کرد:
۱. کشف آسیبپذیری
مهاجم یا پژوهشگر متوجه یک ضعف امنیتی میشود.
↓
۲. توسعه Exploit
مهاجم راهی برای سوءاستفاده از این ضعف پیدا میکند.
↓
۳. انتخاب هدف
هدف میتواند یک کاربر، سازمان، سرور، مرورگر، تلفن همراه یا زیرساخت حیاتی باشد.
↓
۴. اجرای حمله
مهاجم Exploit را از طریق یکی از مسیرهای ممکن وارد زنجیره حمله میکند.
↓
۵. دستیابی به هدف
بسته به نوع آسیبپذیری، نتیجه میتواند اجرای کد، سرقت اطلاعات، دسترسی اولیه، افزایش سطح دسترسی یا نصب بدافزار باشد.
البته یک Zero-Day به خودی خود الزاماً به معنای «کنترل کامل سیستم» نیست.
شدت واقعی آن به ماهیت آسیبپذیری و سطح دسترسیای که Exploit ایجاد میکند بستگی دارد.
آیا Zero-Day همیشه خطرناکترین نوع آسیبپذیری است؟
نه.
این هم یک تصور اشتباه رایج است.
Zero-Day بودن، بهتنهایی Severity آسیبپذیری را مشخص نمیکند.
برای ارزیابی خطر باید پرسید:
- آیا مهاجم از راه دور میتواند از آن استفاده کند؟
- آیا نیاز به احراز هویت دارد؟
- آیا کاربر باید روی چیزی کلیک کند؟
- آیا تعامل کاربر لازم است؟
- آیا امکان اجرای کد از راه دور وجود دارد؟
- آیا مهاجم میتواند سطح دسترسی خود را افزایش دهد؟
- آیا میتوان از آن برای سرقت اطلاعات استفاده کرد؟
- آیا آسیبپذیری بخشی از یک Exploit Chain است؟
- آیا در حملات واقعی استفاده شده است؟
- آیا Patch برای آن منتشر شده است؟
به همین دلیل، یک Zero-Day در یک نرمافزار کمکاربرد ممکن است تأثیر محدودی داشته باشد، در حالی که یک Zero-Day در یک مرورگر پرکاربرد، سیستمعامل یا نرمافزار سازمانی میتواند میلیونها کاربر را در معرض خطر قرار دهد.
Zero-Click چه ارتباطی با Zero-Day دارد؟
دو اصطلاح Zero-Day و Zero-Click گاهی اشتباه گرفته میشوند.
این دو مفهوم یکسان نیستند.
Zero-Day به وضعیت آسیبپذیری و زمان/شرایط شناخت و اصلاح آن مربوط است.
اما Zero-Click به میزان تعامل موردنیاز قربانی برای موفق شدن حمله مربوط میشود.
در یک حمله Zero-Click، قربانی ممکن است حتی مجبور نباشد روی لینک یا فایل خاصی کلیک کند.
برای مثال، Google Project Zero در بررسی یک زنجیره Exploit واقعی مربوط به iMessage نشان داد که مهاجمان میتوانستند از یک زنجیره Zero-Click برای هدف قرار دادن دستگاه استفاده کنند.
بنابراین ممکن است یک حمله:
- Zero-Day باشد ولی Zero-Click نباشد؛
- Zero-Click باشد ولی Zero-Day نباشد؛
- یا هر دو ویژگی را همزمان داشته باشد.
این تفاوت برای تحلیل تهدید بسیار مهم است.
Zero-Day چه تفاوتی با N-Day دارد؟
یکی از مهمترین مفاهیم برای درک Zero-Day، اصطلاح N-Day است.
وقتی یک آسیبپذیری کشف و افشا میشود و برای آن Patch منتشر میشود، دیگر وضعیت آن مانند قبل نیست.
از این مرحله به بعد، مهاجمان میتوانند اطلاعات بیشتری درباره آسیبپذیری داشته باشند و حتی Patch منتشرشده را Reverse Engineer کنند تا بفهمند مشکل دقیقاً کجا بوده است.
به همین دلیل، ممکن است یک آسیبپذیری که زمانی Zero-Day بوده، بعداً تبدیل به یک تهدید شناختهشده شود.
این موضوع یک مشکل مهم ایجاد میکند:
منتشر شدن Patch به معنای تمام شدن خطر نیست.
اگر سازمانها Patch را نصب نکنند، همان آسیبپذیری میتواند همچنان قابل سوءاستفاده باشد.
در چنین شرایطی، مهاجم دیگر الزاماً با یک Zero-Day مواجه نیست؛ بلکه با یک آسیبپذیری شناختهشده و اصلاحشدهای مواجه است که قربانی هنوز آن را Patch نکرده است.
CVE چیست و چه ارتباطی با Zero-Day دارد؟
CVE مخفف Common Vulnerabilities and Exposures است.
CVE یک سیستم استاندارد برای شناسایی و نامگذاری آسیبپذیریهای امنیتی است.
برای مثال ممکن است یک آسیبپذیری با شناسهای مانند:
CVE-2026-XXXXX
شناخته شود.
اما یک نکته بسیار مهم:
CVE بودن یک آسیبپذیری به این معنی نیست که آن آسیبپذیری Zero-Day است.
CVE صرفاً یک شناسه استاندارد برای آسیبپذیری است.
یک آسیبپذیری میتواند:
- CVE داشته باشد و Zero-Day باشد؛
- CVE داشته باشد و سالها از کشف آن گذشته باشد؛
- CVE داشته باشد و Patch شده باشد؛
- یا در برخی مراحل اولیه هنوز شناسه CVE نداشته باشد.
بنابراین:
CVE ≠ Zero-Day
این دو مفهوم نباید با یکدیگر ترکیب شوند.
CVSS چیست؟
CVSS یا Common Vulnerability Scoring System برای ارزیابی شدت آسیبپذیریها استفاده میشود.
امتیاز CVSS معمولاً در بازه ۰ تا ۱۰ بیان میشود و عواملی مانند:
- پیچیدگی حمله؛
- سطح دسترسی موردنیاز؛
- نیاز به تعامل کاربر؛
- تأثیر روی محرمانگی؛
- تأثیر روی یکپارچگی؛
- تأثیر روی دسترسپذیری
را در نظر میگیرد.
اما اینجا هم یک تفاوت مهم وجود دارد:
CVSS بالا لزوماً به معنی Zero-Day بودن نیست.
و برعکس، یک Zero-Day الزاماً فقط به دلیل Zero-Day بودن، CVSS 10 ندارد.
CISA KEV چه ارتباطی با Zero-Day دارد؟
یکی از منابع بسیار مهم برای متخصصان امنیت، Known Exploited Vulnerabilities Catalog متعلق به CISA است.
این فهرست آسیبپذیریهایی را دنبال میکند که شواهدی از سوءاستفاده فعال از آنها در دنیای واقعی وجود دارد.
این موضوع از نظر دفاعی اهمیت زیادی دارد؛ زیرا یک سازمان باید فقط به Severity امتیاز CVSS نگاه نکند، بلکه بررسی کند آیا آسیبپذیری در حملات واقعی نیز مورد سوءاستفاده قرار گرفته است یا خیر.
بنابراین برای تیمهای امنیتی، ترکیب چند سیگنال اهمیت دارد:
Severity + Exploitability + Exposure + Active Exploitation
یعنی:
شدت آسیبپذیری + امکان سوءاستفاده + میزان در معرض بودن سیستم + شواهد سوءاستفاده واقعی.
چند نمونه واقعی از Zero-Day
برای اینکه مفهوم Zero-Day صرفاً تئوری باقی نماند، بهتر است چند نمونه واقعی را بررسی کنیم.
نمونه اول: Zero-Dayهای مرورگر Chrome
مرورگرها یکی از اهداف مهم پژوهشگران و مهاجمان هستند؛ زیرا تقریباً روی تمام سیستمهای کاربر وجود دارند و دائماً دادههای غیرقابلاعتماد اینترنت را پردازش میکنند.
Google Project Zero در مجموعهای از تحقیقات خود چندین آسیبپذیری Chrome را بررسی کرده که در حملات واقعی مورد سوءاستفاده قرار گرفته بودند. یکی از این مجموعهها با عنوان Chrome Infinity Bug به بررسی آسیبپذیریهایی پرداخت که در طبیعت مورد استفاده قرار گرفته بودند.
این نمونه نشان میدهد که مهاجم میتواند یک آسیبپذیری مرورگر را قبل از انتشار عمومی جزئیات آن در حملات واقعی به کار بگیرد.
نمونه دوم: Zero-Day در Android
Zero-Dayها فقط محدود به کامپیوترهای شخصی نیستند.
در سالهای اخیر، دستگاههای Android نیز بارها هدف زنجیرههای Exploit قرار گرفتهاند.
Google Project Zero در سال ۲۰۲۳ یک زنجیره Exploit واقعی را بررسی کرد که دستگاههای Samsung Android را هدف قرار داده بود. این حمله شامل چند آسیبپذیری و چند مرحله برای رسیدن به هدف نهایی بود.
این مسئله اهمیت یک مفهوم مهم را نشان میدهد:
Exploit Chain
مهاجم همیشه با یک آسیبپذیری به نتیجه نهایی نمیرسد.
ممکن است از چند آسیبپذیری پشت سر هم استفاده کند:
Initial Exploit → Privilege Escalation → Sandbox Escape → Final Payload
بنابراین هنگام تحلیل Zero-Day باید گاهی به جای یک CVE منفرد، کل زنجیره حمله را بررسی کرد.
نمونه سوم: Zero-Day در iOS و حملات هدفمند
در سال ۲۰۲۳، Google Threat Analysis Group و Amnesty International یک Zero-Day در iPhone را شناسایی کردند که در حملات واقعی مورد استفاده قرار گرفته بود.
تحلیل Project Zero نشان داد که این حمله شامل یک زنجیره آسیبپذیری در Safari و اجزای مرتبط با سیستم بود.
این نوع حملات اهمیت ویژهای دارند، زیرا Zero-Dayهای موبایل میتوانند در عملیات جاسوسی هدفمند علیه افراد خاص مورد استفاده قرار بگیرند.
چرا Zero-Day برای سازمانها بسیار مهم است؟
در یک آسیبپذیری معمولی، تیم امنیتی میتواند از اطلاعات موجود استفاده کند:
- CVE را بررسی کند؛
- Patch را نصب کند؛
- Signatureهای امنیتی را بهروزرسانی کند؛
- IOCها را جستوجو کند؛
- Ruleهای تشخیص را فعال کند.
اما در یک Zero-Day ممکن است بسیاری از این اطلاعات هنوز وجود نداشته باشد.
به همین دلیل، دفاع در برابر Zero-Day فقط به Patch Management محدود نمیشود.
سازمان باید بتواند رفتار غیرعادی را نیز تشخیص دهد.
مثلاً:
- یک Process غیرمعمول اجرا شده است؛
- یک برنامه Office رفتار غیرمنتظرهای دارد؛
- مرورگر یک Child Process غیرعادی ایجاد کرده است؛
- یک سیستم کاربر به مقصد ناشناختهای متصل شده است؛
- حساب کاربری به شکل غیرمعمول از منابع حساس استفاده کرده است.
در واقع، زمانی که Signature حمله را نداریم، Behavior اهمیت بیشتری پیدا میکند.
آیا آنتیویروس میتواند Zero-Day را شناسایی کند؟
گاهی بله، اما نباید انتظار داشت که همه Zero-Dayها توسط Signatureهای سنتی شناسایی شوند.
یکی از مشکلات اصلی Zero-Day این است که Signature یا الگوی شناختهشدهای ممکن است هنوز وجود نداشته باشد.
به همین دلیل، راهکارهای مدرن امنیتی از روشهای دیگری نیز استفاده میکنند:
- Behavioral Detection
- Endpoint Detection and Response
- Anomaly Detection
- Sandboxing
- Network Detection
- Threat Intelligence
- Exploit Mitigation
- Application Isolation
هدف این نیست که حتماً «خود آسیبپذیری» را از قبل بشناسیم؛ بلکه باید بتوانیم رفتار ناشی از سوءاستفاده را نیز شناسایی کنیم.
چگونه در برابر Zero-Day دفاع کنیم؟
هیچ سازمانی نمیتواند تضمین کند که هرگز با Zero-Day مواجه نخواهد شد.
اما میتوان اثر آن را به شکل قابلتوجهی کاهش داد.
۱. Patch Management
وقتی Patch منتشر شد، نصب آن را به تأخیر نیندازید.
هر روز تأخیر ممکن است فرصت بیشتری برای مهاجمان ایجاد کند.
۲. Asset Inventory
سازمان باید بداند چه سیستمهایی دارد.
اگر ندانیم:
- چه سرورهایی داریم؛
- چه نرمافزارهایی نصب هستند؛
- چه نسخههایی فعالاند؛
- چه سیستمهایی به اینترنت متصلاند؛
اصلاً نمیتوانیم بفهمیم یک Zero-Day ما را تحت تأثیر قرار داده یا خیر.
۳. Least Privilege
کاربران و سرویسها نباید بیش از سطح دسترسی موردنیاز خود مجوز داشته باشند.
اگر یک Exploit موفق شود، محدود کردن Privilege میتواند دامنه خسارت را کاهش دهد.
۴. EDR و XDR
راهکارهای Endpoint Detection and Response میتوانند رفتارهای مشکوک روی Endpointها را بررسی کنند.
این موضوع در شرایطی که Signature مشخصی برای Zero-Day وجود ندارد، اهمیت بیشتری پیدا میکند.
۵. Network Monitoring
بررسی ترافیک خروجی و ارتباطات غیرعادی نیز میتواند در شناسایی فعالیت مهاجم مؤثر باشد.
۶. Segmentation
اگر تمام سیستمهای سازمان بدون محدودیت با یکدیگر ارتباط داشته باشند، یک نقطه نفوذ میتواند به حرکت جانبی مهاجم در شبکه منجر شود.
Network Segmentation میتواند این مسیر را محدود کند.
۷. Threat Intelligence
دنبال کردن منابع معتبر Threat Intelligence کمک میکند سازمان سریعتر متوجه شود که یک آسیبپذیری در حال سوءاستفاده فعال است یا خیر.
کاربر عادی برای مقابله با Zero-Day چه کاری میتواند انجام دهد؟
Zero-Day موضوعی تخصصی است، اما کاربران عادی هم میتوانند ریسک خود را کاهش دهند.
نرمافزارها را بهروز نگه دارید
مرورگر، سیستمعامل، پیامرسانها و برنامههای مهم را از منابع رسمی بهروزرسانی کنید.
از نرمافزارهای ناشناس استفاده نکنید
هرچه نرمافزارهای غیرضروری و ناشناخته بیشتری نصب کنید، Attack Surface شما بیشتر میشود.
روی لینکها و فایلهای مشکوک کلیک نکنید
برخی Zero-Dayها از طریق حملات Phishing به قربانی میرسند.
از حسابهای خود محافظت کنید
فعال کردن MFA میتواند در بسیاری از حملات، حتی اگر مهاجم موفق به نفوذ اولیه شود، یک لایه دفاعی اضافه ایجاد کند.
سیستمعامل موبایل را بهروز کنید
Zero-Dayهای موبایل میتوانند بسیار جدی باشند؛ بنابراین نصب بهروزرسانیهای امنیتی اهمیت زیادی دارد.
آیا بعد از انتشار Patch دیگر خطری وجود ندارد؟
خیر.
این یکی از مهمترین نکاتی است که کاربران و حتی برخی سازمانها نادیده میگیرند.
فرض کنید شرکت سازنده امروز Patch منتشر میکند.
اما سازمان شما:
امروز Patch نمیکند.
در این فاصله، مهاجمان ممکن است Patch را بررسی کنند و از تغییرات آن برای فهمیدن آسیبپذیری استفاده کنند.
این فرایند گاهی میتواند به توسعه Exploit برای آسیبپذیریای منجر شود که اکنون دیگر Zero-Day نیست.
بنابراین:
Patch منتشر شد ≠ خطر تمام شد
بلکه:
Patch منتشر شد → حالا باید سریعتر اقدام کنیم.
Zero-Day چه زمانی دیگر Zero-Day نیست؟
بهصورت ساده، وقتی آسیبپذیری شناخته شده و اطلاعات لازم برای شناسایی و اصلاح آن در اختیار مدافعان قرار گرفته باشد، دیگر در معنای کلاسیک با یک Zero-Day مواجه نیستیم.
اما این به معنی بیخطر شدن آن نیست.
یک آسیبپذیری ممکن است:
Zero-Day → Public Disclosure → Patch → Known Vulnerability → Active Exploitation
را طی کند.
و حتی پس از Patch نیز ممکن است میلیونها سیستم هنوز آسیبپذیر باقی بمانند.
یک سوءبرداشت مهم درباره Zero-Day
گاهی در خبرهای امنیت سایبری میبینیم:
«یک آسیبپذیری با شدت بحرانی Zero-Day کشف شد.»
اما برای درک دقیق خبر باید چند سؤال بپرسیم:
آیا واقعاً در حملات استفاده شده؟
آیا سازنده از قبل از آن خبر داشته؟
آیا Patch منتشر شده؟
آیا Exploit عمومی شده؟
آیا فقط Proof of Concept منتشر شده یا Exploit واقعی وجود دارد؟
چه تعداد سیستم تحت تأثیر هستند؟
این سؤالات کمک میکنند تفاوت بین یک خبر بازاریابیشده و یک تهدید واقعی را بهتر تشخیص دهیم.
جمعبندی
Zero-Day به یکی از مهمترین و پیچیدهترین مفاهیم امنیت سایبری تبدیل شده است.
در سادهترین تعریف، با یک ضعف امنیتی مواجه هستیم که مهاجم میتواند پیش از آنکه مدافعان فرصت کافی برای شناسایی و اصلاح آن داشته باشند، از آن سوءاستفاده کند.
اما برای تحلیل دقیقتر باید بین سه مفهوم تفاوت قائل شویم:
Zero-Day Vulnerability
خود آسیبپذیری
Zero-Day Exploit
روش یا کدی که از آسیبپذیری سوءاستفاده میکند
Zero-Day Attack
استفاده واقعی از آن Exploit در یک حمله
همچنین Zero-Day با CVE، CVSS، Zero-Click و N-Day یکسان نیست و هرکدام مفهوم متفاوتی دارند.
مهمترین نکته برای مدافعان این است که نمیتوان فقط منتظر Patch ماند. دفاع مؤثر در برابر Zero-Day به مجموعهای از اقدامات نیاز دارد؛ از Asset Management و Patch Management گرفته تا EDR، Network Monitoring، Least Privilege، Segmentation و Threat Intelligence.
در نهایت، Zero-Day یک یادآوری مهم برای دنیای امنیت سایبری است:
ما همیشه نمیتوانیم آسیبپذیری بعدی را قبل از مهاجم پیدا کنیم؛ اما میتوانیم معماری امنیتی خود را طوری طراحی کنیم که حتی در صورت موفقیت یک Exploit، مهاجم نتواند بهسادگی کل محیط را در اختیار بگیرد.