تجربیات و نکات تست نفوذ؛ با محمدصالح مهری

تجربیات و نکات تست نفوذ؛ با محمدصالح مهری

۳۷۹

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

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

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

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

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

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

این دو مورد، دو نکته‌ی طلایی هستند که لازم است کسب‌وکارها به آن‌ها توجه کنند.

پیشنهاد خواندنی: باگ بانتی چگونه متناسب با SDLC عمل می‌کند؟

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

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

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

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

بسیاری از آسیب پذیری ها به خاطر سهل‌انگاری در سکیوریتی‌چک‌ها ایجاد می‌شوند؛ سکیوریتی‌چک‌هایی که باید در سمت سرور انجام می‌شده و نشده. فقط به سکیوریتی‌چک سمت کاربر (Client-side) پرداخته و کفایت شده است. 

پیشنهاد خواندنی: نقاط آسیب پذیر رایج در سامانه‌ی کسب‌وکارها 

_ شما بیشتر در تست نفوذ فعالیت داری، یا باگ بانتی؟

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

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

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

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

_ در خصوص امنیت سایبری، حرف یا توصیه‌ای برای کسب‌وکارها داری؟

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

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

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

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

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

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

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