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

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

۴۷

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

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

ما مصاحبه‌ی دیگری هم با عرفان داشته‌ایم: گپ‌وگفتی با شکارچی آسیب‌پذیری؛ عرفان توکلی 

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

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

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

به نظر من اولین و مهم‌ترینش این است که کسب‌وکارها روند را با برنامه نویس ها و نیروی انسانی خود، طوری پیش ببرند که کدنویسی امن به‌عنوان یک اشانتیون نباشد! بلکه جزو مهارت‌های اصلی تیم برنامه نویسی و نیروی انسانی باشد. اگر در یک پروژه، برنامه نویس به طور امن کد بزند، 80% از راه امن‌سازی را رفته‌اند. 20% باقی راه را هم با تست نفوذ و باگ بانتی و غیره، حدودا می‌شود هندل کرد. به نظر من نیروی انسانی و برنامه نویس نقش اثرگذارتری دارد، در مقایسه با حالاتی که از Waf های مختلف استفاده کنند، محدودیت‌های بیشتری اعمال کنند، ایران اکسس کنند و این‌جور داستان‌ها. 

پیشنهاد خواندنی: چک لیست قبل از تست نفوذ 

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

در ایران، حقیقتا خیلی کم! به خاطر این‌که من خودم هم مدیر پروژه بوده‌ام، دیده‌ام که از لحاظ فشارهای کاری و ددلاین و این داستان‌هایی که وجود دارند، خیلی روی کدنویسی امن و Secure Coding مانور نمی‌دهیم. در تجربه‌ی ما که این طور بود. (با توجه به مشاهداتم) فکر می‌کنم که شرکت‌های دیگر هم حقیقتا چندان اهمیتی نمی‌دهند. دلیلش هم بیشتر به خاطر همین فشارهای کاری و ددلاین است. 

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

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

_ اگر بخواهیم کلی‌تر نگاه کنیم، چه‌مقدار در سمت کسب‌وکارهای ایرانی، دغدغه‌ی امنیت سایبری را پررنگ می‌بینی؟ 

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

_ کمی بیشتر از روال کارهای تیمی‌‌تان در امنیت سایبری، برایمان می‌گویی؟ از چالش‌ها و مزیت‌هایش؟ مثلا در تست نفوذ و باگ بانتی. 

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

قاعدتا این‌طوری هم هست که در تیم، کسی که یک آسیب پذیری یا یک نقطه از سامانه را بیشتر دوست داشته باشد، بیشتر به همان بخش بپردازد. مثلا؛ من خودم بیشتر آسیب پذیری های logic (منطقی) را دوست دارم. در تیم می‌گویم که من به سراغ این آسیب‌پذیری‌ها می‌روم و به سراغ تست آسیب پذیری های دم‌دستی دیگری مثل XSS و غیره ( که به مقدار زیاد هم وجود دارند) نمی‌روم. خب قاعدتا هم‌تیمی‌هایم وقت کمتری را برای آسیب پذیری های logic (منطقی) می‌گذارند و بیشتر به سمت آسیب پذیری های دیگر می‌روند و تمرکزشان را روی آن‌ها می‌گذارند. 

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

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

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

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

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

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

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