گپ‌وگفتی با شکارچی آسیب‌پذیری؛ رضا شریف‌زاده

گپ‌وگفتی با شکارچی آسیب‌پذیری؛ رضا شریف‌زاده

۲,۱۶۴

در این بلاگ‌پست، به سراغ یک شکارچی‌ آسیب‌پذیری رفته‌ایم تا با او گپ‌وگفت کوتاهی داشته باشیم؛ رضا شریف‌زاده

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

_ ممکن است از خودت برایمان بگویی؟ اگر بخواهی در چند جمله خودت را معرفی کنی، چه می‌گویی؟

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

_ چه‌طور شد که شکارچی آسیب‌پذیری شدی؟

واقعیت این است که برای من همه چیز از یک فیلم شروع شد: فیلم "هوش سیاه". حدود سال ۹۲ بود و من ۱۳، ۱۴ ساله بودم. این‌گونه به حوزه‌ی هک و امنیت سایبری علاقه‌مند شدم و شروعش کردم. عاشق این شدم که از یک سری چیزهایی سردر بیاورم که به من مربوط نمی‌شد. آرام آرام سعی کردم به صورت حرفه‌ای به این قضیه نگاه کنم. با خودم گفتم:" این عالی است! حالا که من دارم یاد می‌گیرم، بیایم و از آن کسب درآمد هم بکنم." . سعی کردم شکارچی‌ای بشوم که بتواند به سریع‌ترین حالت ممکن به نتایج دلخواهش برسد.

_ قدم‌های مسیر شما، از اول تا به این‌جا چطور پیش رفت؟ برای مسیرت Roadmap داشتی؟

من ۱۰ سال پیش، درحالی‌که ۱۴ ساله بودم، شروع کردم. از یادگیری شبکه، استارت کارم را زدم. سعی کردم شبکه را یاد بگیرم. کانفیگ route و switch را یاد گرفتم، دوره های cisco را گذراندم، تست نفوذ شبکه را گذرندام. آن زمان که من فعالیت داشتم، خیلی بحث تست نفوذ سایت‌ها باب شده بود. و فروم‌های امنیتی زیادی در این خصوص وجود داشت. من هم کم کم به سمت یادگیری هک و تست نفوذ وب‌اپیکیشن‌ها رفتم. در آن موقع، مثل الان کار حرفه‌ای نبود. یک سری Attack‌ها بود که خیلی رایج بود. سعی کردم آن‌ها را یاد بگیرم. چندین سال در همان سطح و با همان Attack‌هایی که می‌دانستم، ( اصطلاحا Attack‌های کلاسیک) کار می‌کردم و کار را جلو می‌بردم. تا این‌که ۱۸سالم شد. سعی کردم مسیر پیشرفته‌تری را طی کنم. زبان برنامه نویسی PHP را یاد گرفتم، بعدش پایتون و بعد از آن هم جاوا اسکریپت. تا بتوانم دید عمیق‌تری نسبت به سامانه‌هایی که بررسی می‌کنم، داشته باشم. برای این کار هم دلیل و مقصودی داشتم. وقتی یک سامانه را مورد ارزیابی قرار می‌دهیم، واقعیت این است که ما در اکثر اوقات سورس‌کدی که برنامه نویس نوشته و در بک‌اند قرار داده را نداریم. برای همین باید سعی کنیم تا جایی که می‌شود آن فانکشن‌هایی که استفاده کرده را حدس بزنیم و احتمال دهیم که آن برنامه‌نویس چگونه کدش را پیاده‌سازی کرده است. وقتی این دانش برنامه‌نویسی را داشته باشیم، طبیعتا می‌توانیم این موضوع را به نحو احسنت انجام دهیم. پیش‌بینی کنیم که برنامه‌نویس چه کاری را انجام داده و عملا ما Reverse اش را انجام دهیم.

_ در مسیر هکرشدن، دوست‌هایی داشتی که در مسیر باهم همراه باشید؟

بله، دوستان زیادی بودند. همان‌طور که گفتم، در زمانی که من شروع کردم فروم‌های امنیتی خیلی باب بود. چیزی که الان دیگر به آن شکل وجود ندارد. فروم‌هایی مثل Emperor ، آشیانه و فروم‌های مختلف دیگر. من در یکی از آن‌ها، به‌عنوان یکی از اعضای آن تیم فعالیت مستمر داشتم. ولی آن‌موقع مثل الان همه چیز حرفه‌ای نبود. شاید اگر الان به چیزهایی که در زمان قدیم باب بود و حرفه‌ای محسوب می‌شد، نگاه کنیم، این طور به نظر می‌رسد که چقدر سطح امنیتی و IT ایران گسترش پیدا کرده. و دارد به سمتی هم می‌رود که بچه‌های کم‌سن‌و‌سال که تازه وارد این حوزه می‌شوند، بتوانند به خوبی کسب درآمد کنند به‌صورت حرفه‌ای کار را جلو ببرند.

_ اولین آسیب‌پذیری‌ای که کشف کردی را به خاطر داری؟ برروی کجا بود؟ با بانتی‌اش چه کار کردی؟

اولین آسیب‌پذیری‌ای که به صورت رسمی پیدا کردم، برروی پلتفرم خارجی ثبت کردم و بابتش بانتی خارجی دریافت کردم، روی هدف سونی ( Sony ) بود. آسیب‌پذیری CORS Misconfiguration بود که منجر به PII می‌شد. قبل‌تر از آن هم به داخلی‌ها و سایت‌های مختلف گزارش‌ می‌دادم، گاهی هزینه می‌داند و بعضی اوقات هم نمی‌دادند. اولین بانتی رسمی‌ای که براساس یک گزارش استاندارد و در یک روند استاندارد دریافت کردم، مربوط به همین آسیب پذیری بود. با بانتی‌اش هم یک لپ‌تاپ گرفتم. البته بخشی از پول آن لپ‌تاپ با بانتی تامین شد، چون لپ‌تاپ خیلی گرانی انتخاب کرده بودم و آن بانتی نمی‌توانست هزینه‌ی آن را پوشش دهد. ولی خوب حس خوبی به من داد. حقیقتا بانتی زیاد برایم مهم نبود. اما در آن فرآیند یک قبحی برای من شکسته شد. احساس کردم که راحت می‌توان هم‌چنین کاری را انجام داد! بعد از آن خیلی خیلی اتفاق‌ها راحت‌تر و با زمان کم‌تر برای من جلو رفت. من فکر می‌کنم از نظر روان‌شناسی شکارچی‌های تازه‌وارد خیلی در بحث اولین بانتی مشکل دارند. اولین بانتی خیلی مهم است. مهم است که فرد تلاش کند و به آن برسد. آدم اعتماد‌به‌نفس خوبی دریافت می‌کند و مسیرش را پیدا می‌کند. چون بعد از آن همه چیز تکراری است.

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

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

_ در مواقع کشف یک حفره‌ی امنیتی، چه حال‌و‌احوالی را تجربه می‌کنی؟

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

_ در دنیا و فرهنگ لغت رضا، هک چطور تعریف می‌شود؟

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

_ آسیب‌پذیری‌ محبوبت چیست؟ چرا؟ ابزار محبوبت چیست؟

آسیب‌پذیری محبوبم Deserialization است. علت آن هم جذابیت آن برای خودم هنگام یادگیری‌اش بود. به نظر من خیلی جذابیت دارد. ابعاد خیلی مختلفی برای من دارد. یکی دیگر از دلایل محبوبیت آن هم بانتی خوبی است که به آن تعلق می گیرد. حتی در سامانه‌های داخلی هم مبالغ خیلی خوبی به آن تعلق می‌گیرد که شاید برای آسیب پذیری‌های دیگر تعلق نگیرد. به‌خاطر پیچیدگی آن، افراد کمی سمت آن می‌روند. حتی من افراد خیلی کمی را دیده‌ام که بروند و آن را یاد بگیرند. این دلیل هم باعث می‌شود که این آسیب پذیری برای من بسیار جذاب باشد. ابزاز موردعلاقه‌ی من مانند اکثر شکارچی‌ها Burp Suite است.

_ تجربه‌ی تدریس در حوزه‌ی امنیت سایبری، برایت چطور بوده است؟ چه چالش‌هایی داشته؟ چه دغدغه‌هایی را بیش‌تر حس کرده‌ای؟

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

_ از خاطره‌های به‌یادماندنی تدریس‌هایت هم برایمان می‌گویی؟

به یادماندنی‌ترین خاطره‌ی تدریسم مربوط به یکی از آسیب پذیری‌هایی بود که تدریس کردم. آسیب پذیری خیلی ساده‌ای بود. یک تریک برای PII بودکه بتوانیم اطلاعات کاربرها، آدرس آن‌ها و مشخصات شخصیشان را پیدا کنیم. من ساعت ۹شب، این آسیب‌پذیری و تریکش را سرکلاس گفتم و فردای همان شب، ساعت ۸صبح یکی از بچه‌های کلاس توانسته بود روی 8 جای سامانه‌ی یک شرکت این آسیب پذیری را پیدا کند! و اگر اشتباه نکنم برای هرکدام هم ۱۵۰دلار دریافت کرده بود! این برای من خیلی خوشحال‌کننده بود. این موضوع مربوط به پارسال است و هنوز به‌عنوان شیرین‌ترین اتفاق دوران تدریسم از آن یاد می‌کنم. چون فاصله‌ی زمانی ۱۱ساعت، برای مطلب ساده‌ای که من گفته بودم و استفاده‌ای که آن شکارچی کرده بود، برای من خیلی جذاب بود. همیشه هم به این فکر می‌کنم که در این فاصله‌ی کوتاه چگونه توانسته آسیب پذیری را پیدا کند! طبیعتا یک تایمی از آن شب را که زمان استراحت بوده، بیدار بوده.

_ چه نقطه‌ای از سامانه‌ها پاتوق شماست؟ نقطه‌ای از سامانه‌ها که بیش‌تر از سایر نقاط به آن علاقه داری. بیش‌تر به آن سر می‌زنی و به دنبال آسیب پذیری‌هایش می‌گردی؟

اگر یک سامانه وب سرویس داشته باشد، نقطه‌ی جذاب من وب‌سرویس است که فوق‌العاده هم دوستش دارم. چرا؟ چون دیتا از آن‌جا ردوبدل می‌شود. مخصوصا در وب‌سرویس‌های داخلی و حتی خارجی هم خیلی اتفاق می‌افتد که در برگرداندن دیتا خیلی مشکل دارند. یعنی شاید در UI دیتای تروتمیزی را نشان دهد، ولی وقتی خود درخواست و response را نگاه می‌کنی، می‌بینی که خیلی دیتاهای اضافی‌ دارد ارسال می‌شود. خود شکارچی‌ها هم کم‌تر برروی وب‌سرویس‌ها کار می‌کنند.

اگر هم سامانه وب‌سرویس نداشته باشد، بخش جذاب برای من بحث Authentication است. بحث‌هایی مثل لاگین، ثبت‌نام،Reset Password و امثال آن‌ها. تجربه‌ی من هم در این مدت ثابت کرده است که حتی در جاهای بزرگ هم، در این مواردی که نام بردم، سوتی می‌دهند و ممکن است از این نقاط خیلی آسیب‌پذیر باشند.

بگذارید درباره‌ی آسیب پذیر بودن سامانه‌ی کسب‌وکارهای بزرگ از نقاطی که گفتم مثال بزنم یک خاطره بگویم: یکی از شرکت‌های خیلی بزرگ یک بخش Reset Password داشت که OTP Code را پیامک می‌کرد.با SMS Bombing می‌توانستیم درخواست آن را بدهیم که OTP Code به تعداد زیادی ارسال شود. این‌گونه کاربر درگیر حمله‌ی SMS Bombing می‌شد. باگ این کار چه بود؟ OTP Code هایی که برای کاربر ارسال می‌شد، مقادیر مختلفی داشت و همه‌ی آن مقادیر Valid بود.خیلی سناریو جالب شد دیگر!! یعنی مثلا یک OTP Code پنج رقمی، اگر هزارتا OTP Codeبرایش Generate (تولید) می‌شد، احتمال پیدا‌کردن آن یک به صد می‌شد. اگر بخواهم ساده‌تر بگویم، وقتی شما یک OTP Code پنج رقمی داشته باشید و یک کد برایتان Generate شود، احتمال این‌که با Brute Force به آن برسید، یک بر روی ده به توان پنج است. ولی اگر بتوانید هزارتا OTP Code را Generate کنید و هزارتایش Valid باشد، احتمال این‌که به OTP Code کاربر برسید، ده به توان سه بر روی ده به توان پنج است. از نظر ریاضیات تقریبا بعد از صد بار تلاش برای پیداکردن OTP Codeکاربر، می‌شد OTP Code را پیدا کرد. بعد از پیداکردن هم آن را قرار داد و پسورد را از طرف کاربر Reset کرد.

_ در تجربه‌ی شما، بیش‌تر چه نقاطی از سامانه‌های کسب‌وکارها آسیب‌پذیر بوده‌اند؟

در تجربه‌ای که من داشته‌ام، در بحث Reset Password خیلی از سامانه‌های ما از خودشان آسیب‌پذیری نشان می‌دهند. در سامانه‌هایی که از SSO یا OAuth استفاده می‌کنند، مخصوصا آن‌هایی که سازمان بزرگی اند و SSO شخصی دارند، معمولا به‌شدت در پیاده‌سازی ضعیف عمل می‌کنند و آسیب پذیری های زیادی بررویشان پیدا می‌شود. به‌خصوص Open Redirect! (چون ذات Open Redirect این آسیب پذیری است. ) ممکن است این آسیب‌پذیری بی‌اهمیت تلقی شود، به‌‌همین‌خاطر خیلی‌ها آن را جدی نمی‌گیرند. با وجوداین‌که آسیب پذیری Open Redirect در بحث OAuth و SSO به‌شدت می‌تواند برای کسب‌وکارها خطرناک باشد.

_ اگر بخواهی براساس تجربه‌‌ات یک توصیه برای امنیت کسب‌وکارها بهشان بکنی، چه می‌گویی؟

اگر بخواهم بر اساس تجربه ام یک توصیه برای امنیت کسب و کارها کنم این است:

برای امنیت و ارزیابی امنیتی هزینه کنید! نترسید از این‌که سامانه‌تان ناامن باشد! از این بترسید که برندینگتان ضربه بخورد!

_ اگه چوب جادویی داشتی که می‌توانست یه چیز را در شغل شما تغییر بدهد و بهبود ایجاد کند، دوست داشتی چه‌چیزی را تغییر بدهد؟

با آن چوب جادو تلاش می‌کردم نگاه مردم را نسبت به این حوزه تغییر بدهم. از یک طرف سازمان‌ها احساس می‌کنند که هکرها می‌خواهند از آن‌ها سوءاستفاده کنند. از طرفی دیگر، مردم عادی فکر می‌کنند که هدف هکر‌ها، دزدیدن هرچیزی از آن‌هاست. این دیدگاه‌ها خیلی به نظر من مهم است. کاش می‌شد این دیدگاه‌ها را در سطح کشور تغییر داد.

_ چه آرزویی برای حوزه‌ی امنیت سایبری داری؟

چون به‌طورکلی داریم راجع‌به ایران صحبت می‌کنیم، چون داریم در این کشور فعالیت می‌کنیم، آرزویم این است که افراد باهم دوست باشند، باهم کار کنند و برای ارتقای هم‌دیگر تلاش کنند. و روزی برسد که کامیونیتی امنیت سایبری ایران، در دنیا حرفی برای گفتن داشته باشد. بتوانیم در کشورمان اجلاس‌های بین‌المللی برگزار کنیم. اگر بخواهم برای خودم یک آرزوی خیلی مهم بکنم، آرزو می‌کنم روزی برسد که اجلاس‌های بین‌المللی در سطح دنیا (که یک بخشی از آن معمولا مربوط به آسیا است) داخل ایران برگزار شود.

_ سوالی، موضوعی یا نکته‌ای هست که دوست داشته‌ای راجع بهش بپرسیم، ولی نپرسیدیم؟

یکی از سوالاتی که به نظرم خوب است که پرسیده شود، بحث خطرات این شغل است. چون خیلی از افرادی که وارد این کامیونیتی می‌شوند، بچه‌های کم‌سن‌وسال هستند. من گاهی دیده‌ام که برروی سایت‌های پرخطر کار می‌کنند و به من می‌گویند که گزارشش را بدهیم. امیدوارم آگاه‌سازی در زمینه‌ی این موضوعات خیلی زیاد شود که افراد کم‌سن‌وسال‌تر بدانند که تست‌نفوذ اگر به صورت قانونی نباشد، طبعاتی دارد. پیشنهاد می‌کنم حتما از پلتفرم‌های داخلی مثل راورو یا پلتفرم‌های خارجی مثل هکروان که قانونی باشد و فردا دچار دردسر نشوند. کارکردن بدون مجوز برروی سایت‌های حساس، طبعات قانونی به شدت زیادی دارد و ممکن است مسیر زندگی هر شخص را تغییر دهد.

_ بله، نکته‌ی به‌شدت قابل‎‌توجهی ست. ممنون که به آن اشاره کردی. امیدواریم که تمامی شکارچیان، آینده‌ی امنی را پیش رویشان داشته باشند و در آینده هم شاهد برگزاری اجلاس‌های مربوط به امنیت سایبری در ایران باشیم. ممنون که وقت خود را در اختیار ما گذاشتی رضای عزیز.