خب Zero-Day یعنی چی؟
وقتی اسم Zero-Day میاد، معمولاً ذهنمون میره سمت Exploitهای پیچیده، APTها و حمله هایی که شاید فقط چند نفر در دنیا توانایی انجامشون رو داشته باشن.
ولی واقعیت اینه که قبل از اینکه Exploit وجود داشته باشه، باید یک چیز دیگه پیدا شده باشه:
یک آسیب پذیری .
اینجاست که بحث Vulnerability Research شروع میشه.
ا Vulnerability Research یعنی اینکه یک نرمافزار یا سختافزار رو با دقت بررسی کنیم تا ببینیم آیا جایی برخلاف چیزی که طراح انتظار داشته رفتار میکنه یا نه.
ممکنه Target ما یک برنامه معمولی باشه، یک Library، یک Driver، یک سرویس شبکه، یک دستگاه IoT یا حتی بخشی از Kernel سیستم عامل.
اما چیزی که برای من به عنوان یک Researcher مهمه، فقط این نیست که:
«میتونم این سیستم رو هک کنم یا نه؟»
سؤال اصلی اینه:
«این سیستم چطور کار میکنه و کجا ممکنه فرض امنیتی ای که طراح روی اون حساب کرده، شکسته بشه؟»
برای رسیدن به این جواب، سه حوزه اصلی داریم:
🔹 Code Review
بررسی کد و پیدا کردن مسیرهایی که ممکنه به یک ضعف امنیتی منجر بشن.
🔹 Reverse Engineering
وقتی سورس کد رو نداریم، میریم سراغ Binary و سعی میکنیم بفهمیم داخلش چه خبره.
🔹 Fuzzing
به صورت خودکار ورودی های مختلف و غیرمنتظره به Target میدیم و رفتار اون رو بررسی میکنیم.
قرار نیست از روز اول دنبال یک Exploit کامل باشیم.
گاهی چیزی که لازم داریم فقط یک PoC ساده است که نشان بدهد یک رفتار ناامن واقعاً قابل Trigger شدن است.
و این دقیقاً یکی از تفاوت های مهم Vulnerability Research با چیزی است که معمولاً از «هک کردن» تصور میکنیم.
⭕ یک تغییر ذهنیت مهم
اگر تازه وارد این حوزه شده باشی، احتمالاً اولین سؤالت اینه:
«چطور این برنامه رو Exploit کنم؟»
ولی کم کم باید به جایی برسی که سؤال اولت این باشه:
«این برنامه چطور کار میکنه؟»
چون وقتی رفتار یک Target رو واقعاً بفهمی، پیدا کردن جایی که ممکنه اشتباه کنه خیلی منطقی تر میشه.
در پست بعدی میریم سراغ یک تفاوت خیلی مهم:
هر باگ یک آسیب پذیری نیست.
و اگر این تفاوت رو درست متوجه نشیم، احتمالاً بخش زیادی از وقتمون رو صرف گزارش دادن چیزهایی میکنیم که اصلاً Security Issue محسوب نمیشن.
ادامه دارد...
@PfkSecurity
#از_روز_صفر_تا_زیرو_دی #VulnerabilityResearch #ZeroDay #CyberSecurity