این پست ترجمه گفتگوی منتشر شده در این پست می باشد.
در این پست به مصاحبه xnomas با maxpl0it که محقق ارشد کشف آسیب پذیری در Interrupt Labs هستن ، پرداختیم. ایشون علاوه بر کشف آسیب پذیری ، در زمینه توسعه اکسپلویت هم فعالیت دارن و در مسابقات PWN2OWN هم شرکت کردن.
برای شروع، کمی درباره خودتون بگید و اینکه چطوری وارد حوزه کاریتون شدید:
من از طریق علاقه به ساخت بازی وارد دنیای هک شدم. وقتی بچه بودم علاقه زیادی به ساخت بازی داشتم و به لپ تاپ های قدیمی هم دسترسی داشتم. بعد از یه مدت در خصوص Cheat Engineها شنیدم و متوجه شدم شکستن (نقض) چیزها خیلی جذابتر از ساختن اوناست.
در نوجوانی شروع به یادگیری هک وب اپلیکیشن ها رفتم اما متوجه شدم که دنیای باینری (سطح پایینتر) هیجان انگیزتره. 15 سال از اون دوران میگذره و من الان دارم هک میکنم البته با حقوق.
از هک بازی تا کشف آسیب پذیری، جالبه! میشه بگید چه مهارتهایی رو یاد گرفتید که الان به شما کمک میکنه؟ همچنین کمی هم در مورد هک بازی ها برامون بگید:
هک بازی هایی که من انجام میدادم خیلی ساده بودن، اما روشی که در اون از طریق pointerها به بیت های مختلف داده دسترسی داشتم تقریبا روشیه که اخیرا در کارهام هم ازش استفاده کردم. مثلا فعال کردن یه ویژگی از طریق بررسی مجموعه ای از pointerها در آفست های مختلف برای یافتن یه مقدار boolean که مشخص میکنه اون ویژگی فعاله یا غیر فعال.
با این حال کارهای عجیبی که جوونا الان برای دور زدن anti-cheatها دارن انجام میدن ، خیلی فاصله داشت، بنابراین نمیشه گفت که بصورت جدی در حوزه هک بازی ها بودم.
تقریبا موفق نشدم با کسی که در حال انجام هک های واقعی بود ارتباطی داشته باشم تا اینکه در MWR کار پیدا کردم.
منظورتون از MWR همون MWR CyberSec هستش؟ اونجا چطوری بود و چه چیزهایی از اونجا کسب کردید؟
اون زمان MWR Infosecurity بود اما بعد از اینکه F-Secure اونو خرید تبدیل به MWR CyberSec شد. نکته جالب اینه که Interrupt از تیم محققین اصلی MWR تشکیل شده، بنابراین الانم دارم با اونا کار میکنم و البته یسری OG هم اضافه شدن.
MWR باعث پیشرفت من در کارم شد. اونا به من در ماه اول این فرصت دادن تا Pwn2Own رو انجام بدم و کمک کردن در حوزه هایی پیشرفت کنم که هرگز در خصوصشون نمیدونستم. خیلی خوبه که هنوزم با اونا زیر یه پرچم دارم کار میکنم.
انتقال از MWR به Interrupt چطوری بود؟ چه تفاوتی بین کار کردن برای Interrupt با MWR هستش؟
MWRیسری تست نفوذ ترکیبی بود اما Interrupt یه کار تحقیقاتی مختص کشف آسیب پذیری هستش که من بیشتر دوسش دارم.
از نظر شما چه تفاوتهایی بین تست نفوذ و کشف آسیب پذیری وجود داره ؟
در اغلب مشاغل مرتبط با کشف آسیب پذیری شما در سطح پایین کار میکنید و کدهای سی و سی پلاس رو ارزیابی میکنید.
کارهایی که من در حوزه تست نفوذ انجام میدادم صرفا در مقایسه با تحقیقات کشف آسیب پذیری که در اون دائما در حال یافتن مکان های جدید برای بررسی هستید و سعی میکنید منطق توسعه دهندگان برنامه رو درک کنید، یسری تست برنامه های وب و پیکربندی بودن.
تفاوت دیگه از نظر زمانیه. تست نفوذگرها اغلب کوتاه مدت کار میکنن مثلا برای چند هفته اما تحقیقات در زمینه کشف آسیب پذیری ممکنه سالها طول بکشه.
محقق کشف آسیب پذیری چطوریه؟ روز شما چطوری میگذره ؟
عالیه، اما برخی اوقات شبیه رابطه عشق و نفرته. وقتی روی اهداف سخت کار میکنید، توسعه اکسپلویت براش سخته، بنابراین زمان بر میشه. گاهی هم باگهایی که پیدا میکنید، قابل اکسپلویت نیستن. کار کردن با افرادی که این مشکلات رو درک میکنن میتونه کمک کننده باشه و من خوشحالم که برخی از بهترین هکرهای دنیا اطراف من هستن.
در خصوص کارهای روزمره، معمولا ترکیبی از ارزیابی دستی ، توسعه فازر، کار با ابزارهای جستجوی کد و … البته همراه با یه مقدار زیادی قهوه ، هستش.
آیا مواردی وجود داره که یه تست نفوذگر به کشف آسیب پذیری بیاره؟ اصول اساسی که همونان اما آیا موارد دیگه ای هستن ؟
البته، Orange Tsai آسیب پذیری MS Exchange رو از طریق فرایندی که از یه تست نفوذگر انتظار میره کشف کرده. یا تعدادی باگ موجود در فایرفاکس که برای افزایش امتیاز جاوااسکریپت در صفحات About یا Config بودن هم این شکلی بودن.
آسیب پذیری های این شکلی خیلی جالب هستن چون به افرادی با ذهنیت محقق کشف آسیب پذیری نیاز هست اما برای کشف اونا مهارتهای تست نفوذگر هم نیازه.
برای اینکه یه محقق کشف آسیب پذیری بشیم چه مهارتهایی لازمه؟ و چطوری بهش برسیم؟
شما باید بتونید روی یه هدف برای یه مدت طولانی تمرکز کنید. مورد بعدی یادگیری internals تارگتتون هستش. با توجه به اینکه عدم پیدا کردن آسیب پذیری میتونه آسیب های روحی-روانی داشته باشه ، بنابراین خیلی خوبه که یه علاقمندی یا کار دیگه هم داشته باشید تا در زمان استراحت ، باهاش وقت بگذرونید. مثلا بعضی افراد صخره نوردی میکنن، برخی بازی میکنن ، برخی به دنبال چیزایه جدید میرن و …
بازم من خیلی خوش شانس هستم که در محیطی کار میکنم که اینجور چیزارو درک میکنن و از هم حمایت میکنن. ما سفرهای شرکتی داریم که در اون یه هفته از کار فاصله میگیریم و به دنبال هک چیزهای جذاب تر میریم و کارهایی مثله پینت بال بازی میکنیم.
در خصوص محقق شدن ، پیشنهاد میدم یاد بگیرید که یه چیز خاص چطوری کار میکنه. مثلا ممکنه شما علاقمند به دور زدن سندباکس ماشین های مجازی باشید بنابراین برید و کدها و رایتآپ های VirtualBox بخونید یا اگه علاقمند به مرورگرها هستید برید رایت آپ های کروم و WebKit بخونید.
شما نیازی به دوره های آموزشی ندارید اما کمک میکنن که از سد اولیه یادگیری عبور کنید.
اکسپلویت کردن هم مهمه و نیازه که اطلاعاتی در خصوصش داشته باشید. موارد زیادی برای یادگیری اکسپلویت وجود داره مثلا تمرینات Exploit ، وب سایتهای pwnable و OverTheWire و … . خوندن زیاد رایتآپ های مختلف !
مورد بعدی هم اینه که به یه برنامه کارآموزی ملحق بشید. مثلا ما یه برنامه ای رو داریم بنام VRDP که به افرادی که اطلاعاتی در خصوص کشف آسیب پذیری دارن کمک میکنیم تا تبدیل به یه محقق کامل بشن.
شما در خصوص تاثیر روانی کار گفتید و این خیلی مهمه. فرسودگی شغلی مورد مهمی در امنیت سایبری و بخصوص در فناوری اطلاعات هستش. شما برای مبارزه با این مورد چه میکنید؟ من برای گرفتن مرخصی یا کار نکردن تو خونه مشکل دارم.
خیلی چیزا میشه انجام داد. من در دوران کرونا خیلی از این موارد تست کردم. من فیلم میبینم ، بازی میکنم ، رستورانها و بارهای جدید رو با همسرم امتحان میکنم.
گاهی اوقات چیزای غیر مرتبط با کارم دارم که میخوام در خصوصش تحقیق کنم، بنابراین این یه راه دیگه برای دور شدن از پروژه های روزمره هستش. پیاده روی یا مسافرت هم میتونه برای شادابی خوب باشه.
آیا از ادامه دادن مداوم روی یه پروژه خودداری میکنید؟ فک میکنم گیر افتادن در یه مورد یا آستانه کشف یه موردی باعث بشه که کارتون رو ادامه بدید؟
قطعا، بعضی روزها که کمی زیاده روی میکنم، همسرم با من با ناراحتی صحبت میکنه!
آیا میتونید در خصوص برنامه توسعه کشف آسیب پذیری (VRDP) که بالا بهش گفتید، برامون بگید؟ آیا برای ثبت نام نیاز به شرایط خاصی هستش؟
این برنامه با هدف مهارت دادن به افراد برای کشف آسیب پذیری هستش ،بنابراین نیازی به شرایط خاصی نیست. ما بیشتر دنبال این هستیم که ببینیم این افراد نگرش یه محقق امنیتی رو به جای مهارتهایی که قبلا بهشون یاد دادیم دارن یا نه.
این روشی هستش که میشه افراد زیادی رو وارد این حوزه کرد .حالا اونا ،تازه وارد دانشگاه شده باشن یا اینکه قبلا از جاهای دیگه امنیت سایبری رو یاد گرفتن.
میتونید جزییات VRDP رو بصورت خلاصه برامون بگید.
VRDP اساسا یه دوره کارآموزی هستش که شامل آموزشهای زیادی با موضوعات مختلف از جمله : دیباگ و PWN کردن سیستم های واقعی مانند مرورگرها و سیستم عامل ها ، همچنین پروژه های انفرادی و تمرینات واقعی کشف آسیب پذیری روی اهداف واقعی مانند pwn2own برای سرگرمی هستش. در نهایت اونا میتونن وارد کار بشن و در شرکت کار کنن. اغلب افراد شرکت ، در این رویداد مشارکت دارن و آموزشها و برنامه هارو مدیریت میکنن.
وقتی کسی در کشف آسیب پذیری دچار مشکل میشه، تیمتون چطوری رفتار میکنه؟ آیا یه گفتگویه عمومی بین افراد هستش که در نهایت ایده ای بیان میشه یا نه بچه ها هم دست به کار میشن و کمک میکنن؟
بله، ایده های جالب زیادی در بحث ها وجود داره. مواردی هم بوده که بچه ها هم کمک کردن. ما یه تیم از افراد با تجربه داریم، بنابراین عملکرد خوبی داریم.
اولین CVEتون چی بود؟ و چطوری کشفش کردید؟
اولین CVE من به سال 2017/2018 برمیگرده. قبلا آسیب پذیری ها رو مستقیما به خود شرکتها میدادم که معمولا جواب نمیدادن. آسیب پذیری از نوع format string و در CLI یه روتر بود. نکته ای که هست، این نوع آسیب پذیری ها الانم هستن. فک کنم چند روز رو این دستگاه کار کردم و بالاخره تونستن پیداش کنم. باگه خیلی مخفی نبود.
خب ما روند اولین CVE رو فهمیدیم، کدوم CVE رو بیشتر دوست دارید؟ میتونید در مورد نحوه پیدا کردنش برامون بگید؟
CVE-2021–2310 . یه آسیب پذیری heap overflow در VirtualBox بود. من اونو با آنالیز پارامترهایی که یه مهاجم میتونه در کد شبکه کنترلش کنه و نوشتن یه اسکریپت پایتونی برای brute force مقادیر برای یافتن مقداری که سرریز اتفاق بیافته پیداش کردم. این خیلی جالب بود برام.
در وبلاگتون مطالبی در خصوص هک دستگاههای اینترنت اشیاء دارید. الانم که در خصوص آسیب پذیری در VirtualBox گفتید و من مطلع هستم که اکسپلویتهایی در مرورگرها هم دارید. آیا برای یادگیری در همه این موارد رویکرد یکسانی داشتید؟ و آیا همه افراد تیم شما ،همه کاره هستن؟
رویکرد من ، رویکرد ساختارمندی نبوده. من خیلی کدها رو بررسی میکنم، وبلاگهایی زیادی در خصوص چیزی که روش کار میکنم میخونم. دانش در طول زمان بدست میاد و نمیتونید بطور کامل به همه این موارد آگاهی داشته باشید.
در خصوص افرادی که باهاشون کار میکنم، فکر میکنم دانش گسترده ای در زمینه های مختلف دارن. البته بسته به تیمی که توش هستید ، همگی یه هدف اصلی خواهید داشت، که این هدف همیشه در حال توسعه هستش.
فک میکنید CTFها و pwn2ownها به جایگاهی که الان هستید کمک کردن ؟
من تا الان CTF حل نکردم ، کاش انجام میدادم، اما چالش هایی که افراد براشون رایتآپ نوشتن رو خوندن و خیلی جالب بودن . من خیلی از سایتهای pwnable رو انجام دادم که فک میکنم چیزهای زیادی به من آموختن. Pwn2ownها هم به من خیلی کمک کردن. این رویدادها کمک کردن تا بتونم با افراد مختلفی در زمینه امنیت سایبری ملاقات کنم و شبکه سازی کنم.
سوال مورد علاقه من، چه توصیه ای برای جوانترها و تازه کارها دارید؟
اصول اساسی رو نادیده نگیرید. همیشه سعی میکردن از چیزهای خسته کننده عبور کنم و به چیزهای که برام جالبن بپرم. فک میکنم این کار تاثیر منفی داشت، چون باعث شد تا زمان زیادی صرف کنم تا به یه حد مناسبی برسم. الانم گاهی اوقات این کار میکنم، یه باگ پیدا میکنم و بدون درک مولفه هایی که در اون هست، سعی میکنم اونو ایجاد کنم که این امر کار سختتر میکنه.
برای ارتباط با maxpl0it میتونید از طریق توییتر ، گیت هاب ، وب سایتش استفاده کنید.