تجربیات و نکات تست نفوذ؛ با بهراد رضایی

تجربیات و نکات تست نفوذ؛ با بهراد رضایی

۷۲

در این بلاگ‌پست، به سراغ یک متخصص تست نفوذ در دنیای امنیت سایبری رفته‌ایم تا با او گپ‌وگفت کوتاهی درباره‌ی تجربیاتش در تست نفوذ داشته باشیم؛ بهراد رضایی

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

ما مصاحبه‌ی دیگری هم با بهراد داشته‌ایم: 

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

_ به نظر شما، چه ویژگی‌هایی یک تست نفوذ خوب را از یک تست نفوذ بد جدا می‌کند؟

در تست نفوذ وظیفه‌ی ما به‌عنوان یک متخصص تست نفوذ، این است که تمام آسیب پذیری های شناخته‌شده را در وب‌سایت موردنظر تست کنیم. یک تفاوت تست نفوذ خوب و بد می‌تواند در رعایت همین نکته باشد. این که تمام آسیب پذیری ها چک شوند و موردی از قلم نیفتد. در یک تست نفوذ بد ممکن است این طور باشد که فرد فقط بعضی آسیب پذیری ها (مثل XSS، SQL Injection و idore ) را تست کند و آسیب پذیری های دیگر (مثل Command Injection ، File upload و موارد دیگر) را از قلم بیندازد. در حالی که ممکن است سایت نسبت به همان موارد که از قلم افتاده‌اند، آسیب پذیر باشد. به واسطه‌ی همین آسیب پذیری ها احتمال دارد که سایت توسط یک هکر کلاه سیاه هک شود. 

_ چه نکاتی در خصوص تست نفوذ وجود دارد، که فکر می کنی کسب‌وکارها به آن‌ها توجه نمی‌کنند و لازم است بیشتر به آن توجه کنند؟

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

مورد دیگر این است که بعضی کسب‌وکارها، تست نفوذ را به طور دوره‌ای انجام نمی‌دهند. 

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

_ در تجربه‌های تست نفوذ، شاهد عدم رعایت چه نکات امنیتی‌ای توسط کسب‌وکارها بوده‌ای؟

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

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

پیشنهاد خواندنی: کتابچه‌ی راهنمای برنامه‌نویسی امن

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

به طور روزانه آسیب‌پذیری‌های جدیدی مربوط به سرویس‌هایی که کسب‌وکارها از شرکت‌های دیگر می‌گیرند، منتشر می‌شوند. اگر کسب‌وکارها به آپدیت توجه نکنند، با آسیب پذیری Zero Day ای که (در نسخه‌ی قبلی مورداستفاده‌ی آن‌ها وجود داشته است) می‌توانند مورد هک قرار بگیرند. مثلا ما موقعی که داریم با دوستانمان تست می‌کنیم، می گوییم:" Zero Dayهایی که قبلا برای این سرویس‌ آمده را هم چک کنیم." چون طبق تجربه‌ای که داشته‌ایم، شاهد این بوده‌ایم که برخی از کسب‌وکارها آپدیت را انجام نمی‌دهند. 

_ برای شما، هنگام انتخاب بین تست نفوذ و باگ بانتی، چه معیارهایی پررنگ به نظر می‌آیند؟

یک مزیت باگ بانتی نسبت به تست نفوذ این است که شما صرفا یک آسیب پذیری را کشف و گزارش می‌کنید و بابتش هم بانتی می گیرید. مسئولیتی در قبال سایر آسیب پذیری های آن وب‌سایت ندارید. 

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

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

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

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

_ ممنون که در این گپ‌وگفت همراه ما بودی بهراد عزیز. مسیر خوبی را در تست نفوذ و باگ بانتی برای شما آرزو می‌کنیم.

بلاگ‌پست‌های مرتبط:

تجربیات و نکات تست نفوذ؛ با رامین اسدیان

تجربیات و نکات تست نفوذ؛ با علی فیروزی

چک لیست قبل از تست نفوذ