
نکاتی درباره تست نفوذ که کسبوکارها معمولا به آنها توجه نمیکنند
این بلاگپست شامل تجمیع و برداشتی هدفمند از محتوای گپوگفتهایی با متخصصین تست نفوذ ست که قبلا در بلاگ راورو منتشر کردهایم. در گپوگفتهای قبلی پرسشهای مشترک و مشابهی را از افراد متفاوت پرسیده بودیم و هر یک از افراد از دیدگاه خود، پاسخهایی منحصربهفرد و متفاوت به این سوالها دادهاند. اینطور فکر میکنیم که جمعبندی و درکنارهم قراردادن پاسخهایی به هریک از این پرسشها داده شده، در یک متن جدید میتواند ارزشمند و دارای پیامی جدید باشد.پاسخهایی که شامل نکاتی هستند که هم میتوانند به کار کسبوکارها بیایند و هم به کار متخصصین تست نفوذ.
آنچه در این بلاگپست خواهید خواند:
آیا نکاتی درخصوص تست نفوذ وجود دارند که لازم است کسبوکارها به آنها بیشتر توجه کنند؟
زمانبندی پروژهی تست نفوذ
چه جور تست نفوذی؟
متخصصان مجری تست نفوذ
نگاه تیم برنامهنویسی کسبوکار
پس از دریافت گزارش تست نفوذ
یک بار تست نفوذ و تمام
در این بلاگپست گفتههایی از 6 متخصص تست نفوذ را خواهید خواند که تجربیات خود درخصوص تست نفوذ را به اشتراک گذاشتهاند و از نگاه خود راجع به نکاتی که کسبوکارها معمولا در تست نفوذ به آنها توجه نمیکنند، گفتهاند.
گفتههایی از:
محمدصالح مهری، علی فیروزی، امید شجاعی، رامین اسدیان، بهراد رضایی و مجید موسوی
داخل پرانتز: ترتیب ارائهی پاسخهای افراد در متن، مطابق با ترتیب گپوگفتهای منتشرشده با آنها در بلاگ راوروست.
آیا نکاتی درخصوص تست نفوذ وجود دارند که لازم است کسبوکارها به آنها بیشتر توجه کنند؟
ما از متخصصین تست نفوذ پرسیدیم: در تجربیات خود و پروژههای تست نفوذی که پیش برده اید، شاهد این بودهاید که کسبوکارها به برخی نکات در خصوص تست نفوذ توجه لازم و کافی را نمیکنند؟ نکاتی که لازم است به آنها توجه بیشتری شود. پاسخ برخی از افراد مثبت بود. در ادامه، پاسخ 6 متخصص تست نفوذ را میخوانید که هر یک به انتخاب خود، به ابعاد متفاوتی درخصوص تست نفوذ اشاره کردهاند. ما به دستهبندی موارد اشارهشده پرداختیم و مقدمهای پرسشگرانه نیز بر هر دسته افزودیم.
زمانبندی پروژهی تست نفوذ
آیا زمانبندی لازم برای انجام تماموکمال تست نفوذ در نظر گرفته میشود؟ این دغدغهی محمدصالح مهری بود.
محمدصالح مهری:
معمولا کارپذیرها یا کارفرماها زمان تست نفوذ را در نمودار گانت (Gantt) خود لحاظ نمیکنند. همین باعث میشود که وقتی پروژه به مرحلهی تست نفوذ میرسد، این کار باعجله انجام شود و اصطلاحا از کار زده شود. ممکن است متخصص تست نفوذ، تست نفوذ را هم انجام دهد و این عمل حذف نشود. ولی ددلاینی که به صورت سفتوسخت تعیین شده است، باعث میشود که تست نفوذ به صورت تماموکمال و در حالت خوبش پیش نرود. به نظرم مهمترین نکته برای کسی که میخواهد نرمافزاری را بهعنوان یک محصول عرضه کند و تمایل دارد از سلامتش اطمینان کافی را داشته باشد، این است حتما زمان لازم برای تست نفوذ را در برنامهی زمانبندی پیش از ارائهی محصول خود در نظر بگیرد.
پیشنهاد خواندنی: تجربیات و نکات تست نفوذ؛ با محمدصالح مهری
چه جور تست نفوذی؟
انجام تست نفوذ در حالات مختلف چه تفاوتی در نتیجه دارد؟ علی فیروزی از لزوم درنظر گرفتن تفاوت تست در حالت توسعه و تست برروی سامانهی اصلی گفت.
علی فیروزی:
مسئلهی دیگری که وجود دارد این است که یک فیچر در فاز توسعه ممکن است با شرایط سامانهی اصلی تطابق نداشته باشد. گاهی تست نفوذ فقط در فاز توسعه انجام میشود و وقتی فیچر به سامانهی اصلی منتقل میشود، متخصصین تست نفوذ اجازه و آزادی کامل ندارند که روی آن سامانهی اصلی تست نفوذ انجام دهند. این نگرانی وجود دارد که تست نفوذ در سامانهی اصلی ممکن است به اختلال در عملکرد آن منجر شود. اما مفهوم ناسازگاری (Inconsistency) در اینجا مطرح است. ممکن است فیچری که در فاز توسعه تست شده، برخی از آسیب پذیری هایش کشف شده باشد. اما وقتی که بر روی سامانهی اصلی پیادهسازی میشود، آن فیچر ممکن است با سایر فیچرهای قبلی ناسازگار شود و آسیب پذیری های لاجیکال و منطقمحور بروز پیدا کنند. این آسیب پذیری ها ممکن است توسط مهاجمان بیرونی شناسایی شوند.
کسبوکارها ممکن است بهخاطر غفلت از این نکته، احساس کنند که با وجود هزینهای که برای تست نفوذ صرف کردهاند، متخصصین تست نفوذ قادر به شناسایی آسیب پذیری های ساده نبودهاند. اما دلیل اصلی این موضوع این است که معمولاً به متخصصین تست نفوذ، شرایط مناسب و کافی برای انجام تست نفوذ کامل و جامع داده نمیشود. بهعنوان مثال، نداشتن دسترسی به نسخهی کامل دمو در کنار نسخهی اصلی سامانه باعث میشود که متخصص تست نفوذ نتواند بهدرستی سامانه را بررسی کند. این نقص در بسیاری از سازمانها و ارگانها وجود دارد و باعث میشود تست نفوذ ها کمتر و سطحیتر انجام شوند. دلایل این محدودیت معمولاً نگرانی از اختلالات و مشکلات احتمالی است، اما نتیجهاش این میشود که مهاجمان خارجی بهراحتی میتوانند آسیب پذیری ها را شناسایی و آنها را اکسپلویت کنند.
پیشنهاد خواندنی: تجربیات و نکات تست نفوذ؛ با علی فیروزی
متخصصان مجری تست نفوذ
چه کس یا کسانی قرار است به انجام تست نفوذ بپردازند؟ یک فرد یا تیم؟ با چه ویژگیهایی؟ علی فیروزی و امید شجاعی، بر چگونگی انتخاب متخصصان برای انجام تست نفوذ تاکید داشتند.
علی فیروزی:
کسبوکارهای مختلفی به انجام تست نفوذ میپردازند، اما شیوههای انجام آن در هر کسبوکار ممکن است متفاوت باشد. در بسیاری از موارد کسبوکارهای بزرگتر، چندین نفر را به عنوان متخصص تست نفوذ استخدام میکنند. بهعبارتی برای تست نفوذ نیروی کار حضوری دارند. در چنین کسبوکارهایی، روند کاری بهطور معمول به این صورت است که توسعهدهندگان ابتدا بخشهایی از اپلیکیشن را توسعه میدهند و پس از تکمیل آن بخشها، خودشان تستهای برنامهنویسی را انجام میدهند تا مشکلات و باگهای آن قسمت را شناسایی کنند. به مرور زمان، این روند به فاز اجرایی منتقل میشود. من شاهد این بودهام که در این مرحله، تستکردن بهعنوان یک تسک به متخصص تست نفوذ واگذار میشود. یک شرکت ممکن است ده متخصص تست نفوذ داشته باشد، اما برای تست یک فیچر توسعهیافته، این تسک فقط به یکی از آنها واگذار میشود. متخصص تست نفوذ هم با استفاده از دانش و خلاقیت خود آن فیچر را تست میکند و گزارش میدهد که آیا آسیبپذیری وجود دارد یا خیر. در صورتی که آسیبپذیریای شناسایی شود، متخصص تست نفوذ آن را گزارش میکند و به تیم توسعهدهندگان میدهد تا اصلاحات لازم صورت گیرد. اما اگر آسیب پذیری ای وجود نداشته باشد، اعلام میکند که هیچگونه آسیب پذیر ای یافت نشده است.
بهنظر من، مشکلی که این روند دارد، محدود بودن نگاه افراد است. افراد مختلف دارای خلاقیتهای متفاوتی هستند. همانطور که در برنامههای باگ بانتی مشاهده میکنیم، بسیاری از آسیبپذیریهایی که در تست نفوذ کشف نمیشوند، توسط شکارچیان آسیب پذیری در این برنامهها شناسایی میشوند. در فرآیند تست نفوذ نیز میتوان اینگونه عمل کرد که وقتی یک فیچر برای بررسی به متخصص تست نفوذ داده میشود، پس از انجام تست، نتایج آن به سایر منابع انسانی حوزهی امنیت نیز منتقل شود. این انتقال به این منظور است که افراد دیگر نیز یک بررسی اجمالی انجام دهند و شاید خلاقیتی به ذهن آنها برسد که در ذهن فرد اول نبوده است.
امید شجاعی:
یک مورد قابلتوجه این است که لازم است در زمینهی امنیت سایبری، نیروی متخصص آن کار را در سازمان به کار بگیرند؛ نیروی متخصصی که تجربه و دانش مرتبط دارد و در همان زمینه مطالعه و کار کرده است. نه این که صرفا نیرویی از بخش آیتی را به عنوان نیروی امنیت assign کنند تا به این کار بپردازد.
پیشنهاد خواندنی: تجربیات و نکات تست نفوذ؛ با امید شجاعی
نگاه تیم برنامهنویسی کسبوکار
نگاه تیم برنامهنویسی به تست امنیتی چگونه است؟ نگاه سازمان چطور؟ این نگاه چه اثری دارد؟ رامین اسدیان از تجربیات خود راجع به نگاه تیمهای درون سازمان گفت.
رامین اسدیان:
مورد بعدی هم مربوط به کسبوکارهای عزیز (خصوصا آن کسبوکارهای بزرگی که تیمهای جداگانه ی دولوپ، مارکتینگ، مدیریتی و ... دارند) است. دولوپرها بعضی اوقات دوست ندارند که واحدهای دیگر بدانند که اینجا چه خبر است ( بعضی اوقات خبرهای خوبی هم نیست و اتفاق خیلی بدی در پشت صحنه در حال وقوع است، به خاطر سرعت بیشتر، بی دقتی یا مشکلات سطح دانش.) . و میخواهند یک سری موارد را به اصطلاح عامیانه لاپوشانی بکنند. دلیل مقابله و مخالفت بسیاری از دولوپرها با پروژههای برونسپاری تست نفوذ، همین است. می گویند "ما امن هستیم"، "ما فلان هستیم" و " ما بهمان هستیم". سیستم مدیریت نباید به این حرفها اکتفا کند. اتفاقا باید در این حالت چنین طرز فکری داشته باشد که "دولوپرمان میگوید ما امن هستیم. خیلی هم عالی. ما تست نفوذ را انجام میدهیم تا مطمئن شویم که واقعا در سطح خیلی خوبی امن هستیم." این دید نسبتا خوبی ست که در مدیریت باید حتما اتفاق بیفتد. به قول آمریکاییها "باید به آدمهایی که دوروبرمان هستند، اعتماد کنیم. ولی باید وریفای هم بکنیم." یعنی چک کنیم که آیا واقعا دارند درست میگویند؟ و تشخیص درستی دادهاند؟ چون ممکن است آدمها با قصدوغرضهای شخصی، حرفها و نظرهای مختلفی داشته باشند که در واقع درست نباشد.
پیشنهاد خواندنی: تجربیات و نکات تست نفوذ؛ با رامین اسدیان
پس از دریافت گزارش تست نفوذ
آیا پس از دریافت گزارش تست نفوذ، ماجرا به پایان میرسد؟ اقدام دیگری نیاز نیست؟ بهراد رضایی به اقدامات لازم پس از تست نفوذ اشاره کرد.
بهراد رضایی:
یک نکته در رابطه با تست نفوذ این است که برخی کسبوکارها با وجود انجام تست نفوذ و دریافت گزارش تست نفوذ، خیلی دیر برای رفع آسیب پذیری ها اقدام میکنند. خب تا موقع رفعنکردن آن آسیب پذیری ها، خطر همچنان تهدیدشان میکند.
برخی کسبوکارها یک بار تست نفوذ را انجام میدهند، گزارشش را میگیرند و آسیب پذیری ها را پچ میکنند. بعد از این پچ لازم است دوباره یک تست دیگر داشته باشند تا ببینند "آیا با پچی که انجام دادهاند، آسیب پذیری دیگری به وجود آمده است یا نه؟". برخی از کسبوکارها این کار را انجام نمیدهند.
پیشنهاد خواندنی: تجربیات و نکات تست نفوذ؛ با بهراد رضایی
یک بار تست نفوذ و تمام
آیا با انجام یک بار تست نفوذ، کاملا و برای همیشه امن میشویم؟ نیازی نیست دیگر دغدغهی امنیت را داشته باشیم؟ لازم نیست دیگر به فکر اقدام امنیتی باشیم؟ رامین اسدیان، بهراد رضایی، محمدصالح مهری و مجید موسوی، بر نگاه سازمان نسبت به امنیت سایبری و اقدامات لازم تاکید کردند.
رامین اسدیان:
نکته ای که من دوست دارم به مجموعهها و کسب و کارها بگویم این است که به نظر من امنیت خریدنی نیست. با یک بار انجام تست نفوذ، شاید نرم افزار در بهترین حالت تا هفتاد یا هشتاد درصد از باگ ها و آسیب پذیری هایش مشخص شود. شما همیشه باید این حالت سایکل امنیتی را حفظ کنید. امنیت مثل یک چرخه است و شما باید همیشه در حال ادامهدادن این چرخه باشید. شاید امسال قسمتی از آن را انجام میدهید یک قسمتش را سال بعد، و بخشهایی را سالهای بعد و بعدتر. به هر حال برحسب Resource ی که سازمانها دارند. امنیت یک باره نیست. فقط با یک بار تست نفوذ شما نمیتوانید بگویید که "خب اکثر مشکلات امنیتیمان حل شد". شاید تا هشتاد درصد از آسیب پذیری ها در تست نفوذ اول در بیاید. ولی در تست نفوذ های دوم، سوم، چهارم و پنجم و ... است که شاید بیست درصد باقی مانده یا شاید ۱۹.۹۹٪ شان پوشش داده شود.
بهراد رضایی:
یک مورد که وجود دارد، این است که بعضی کسبوکارها، تست نفوذ را به طور دورهای انجام نمیدهند.
محمدصالح مهری:
یک نکتهی خیلی مهم وجود دارد. آن چیست؟ این است که ما باید امنیت را در چرخهی تولید نرمافزار بیاوریم. نه این که وقتی نرمافزار کامل دیزاین و کدینگ شده، تازه آن را به متخصص تست نفوذ بسپاریم. یک مهندس امنیتی ( Security Engineer) از همان اول که نرمافزار وارد فاز طراحی میشود، نمودار جریان دادهی طراحی نرمافزار ر را دریافت و بررسی میکند و نکات مربوط به مکانیزمهای امنیتیای که لازم است در نظر گرفته شوند، را به تیم طراحی منتقل میکند. تیم طراح هم طراحی را صحیح انجام میدهد و سپس نوبت دولوپمنت میشود.
مجید موسوی:
خیلی از کسبوکارها وقتی محصولشان آمادهی انتشار است، تازه به فکر امنیت میافتند. در حالی که امنیت باید از همان مراحل ابتدایی توسعه در نظر گرفته شود. منظورم استفاده از SDLC است، یعنی؛ از لحظهی طراحی تا زمان لانچ و حتی بعد از آن، امنیت باید بخشی از فرآیند توسعه باشد. همچنین، قبل از انتشار محصول، انجام مجدد تست نفوذ ضروری است تا نقاط ضعف احتمالی برطرف شوند.
پیشنهاد خواندنی: تجربیات و نکات تست نفوذ؛ با مجید موسوی
سخن آخر:
در این بلاگ پست دیدگاه 6 متخصص تست نفوذ را در مورد نکاتی که کسبوکارها معمولا در تست نفوذ به آنها توجه نمیکنند، براساس تجربیاتشان شنیدیم.
دیدگاه شما چیست؟ در تجربهی خود شاهد بیتوجهی به چه نکاتی بودهاید؟ توجه بیشتر به چه نکاتی را لازم میدانید؟
بلاگپستهای مرتبط: