
تست نفوذ خوب و تست نفوذ بد
این بلاگپست شامل تجمیع و برداشتی هدفمند از محتوای گپوگفتهایی با متخصصین تست نفوذ ست که قبلا در بلاگ راورو منتشر کردهایم. در گپوگفتهای قبلی پرسشهای مشترک و مشابهی را از افراد متفاوت پرسیده بودیم و هر یک از افراد از دیدگاه خود، پاسخهایی منحصربهفرد و متفاوت به این سوالها دادهاند. اینطور فکر میکنیم که جمعبندی و درکنارهم قراردادن پاسخهایی به هریک از این پرسشها داده شده، در یک متن جدید میتواند ارزشمند و دارای پیامی جدید باشد.پاسخهایی که شامل نکاتی هستند که هم میتوانند به کار کسبوکارها بیایند و هم به کار متخصصین تست نفوذ.
آنچه در این بلاگپست خواهید خواند:
در این بلاگپست گفتههایی از 13 متخصص تست نفوذ را خواهید خواند که تجربیات خود درخصوص تست نفوذ را به اشتراک گذاشتهاند و از نگاه خود راجع به تفاوتهای یک تست نفوذ خوب و یک تست نفوذ بد گفتهاند.
گفتههایی از:
رامین اسدیان، علی فیروزی، بهراد رضایی، امید شجاعی، محمدصالح مهری، آیلین همایونی، مجید موسوی، محمدرضا عمرانی، عرفان توکلی، مهدی غلامی، زهرا، پیمان زینتی، ایلیا کشتکار
داخل پرانتز: ترتیب ارائهی پاسخهای افراد در متن، مطابق با ترتیب گپوگفتهای منتشرشده با آنها در بلاگ راوروست.
ما از متخصصین تست نفوذ پرسیدیم:
_ آیا تست نفوذ خوب و تست نفوذ بد وجود دارد؟
از نگاه شما چه مواردی تفاوت یک تست نفوذ خوب با یک تست نفوذ بد را تعیین میکنند؟
یک تست نفوذ خوب، چه ویژگیهایی دارد؟ یک تست نفوذ بد، چه ویژگیهایی را دارد؟
رامین اسدیان:
آره، واقعا تست نفوذ خوب و تست نفوذ بد داریم. در تجربهی من بهعنوان یک متخصص تست نفوذ، تست نفوذ هایی بوده است که واقعا ازشان لذت بردهام. تست نفوذ هایی هم بوده که با خودم گفتهام که "ای کاش فقط تمام شود و خلاص شوم. گزارش تست نفوذ را تحویل دهم و بروم." .
در یک تست نفوذ خوب، شما معمولا به عنوان یک متخصص تست نفوذ با تیمی از یک کسبوکار طرف هستید که دوست دارند مشکلاتشان را بدانند. بدون هیچ قصد و غرض و فکر جانبیای، با تیم تست نفوذ همکاری میکنند و مشکلات را با هم بررسی میکنند. در چنین شرایطی ما هم به عنوان تیم تست نفوذ در حین تست نفوذ با تیم پشتیبانی همکاری تنگاتنگتری داریم؛ مشکلاتی که پیدا میشود را بلافاصله با آنها در میان میگذاریم، در مورد مشکلات با هم صحبت میکنیم (اصلا در مورد یک مشکل شاید نیم یا یک ساعت صحبت کنیم تا ریشهی مشکل را باهم پیدا کنیم) ، برای نحوهی حل مشکل پیشنهاداتی میدهیم و ... .
در یک تست نفوذ بد هم بهعنوان یک متخصص تست نفوذ، با تیمی از کسبوکار طرف هستید که هر کسی ساز خودش را میزند و اعضای مختلف کسبوکار رفتارهای متناقضی نشان میدهند. مثلا شاید مدیر امنیت میگوید که "ما این کار را انجام میدهیم." اما دولوپر یک بهانه میآورد، مدیریت بهانهی دیگری میآورد و امثال اینها. در چنین شرایطی، ما که به عنوان یک تیم تست نفوذ میخواستیم کمکی به آن سازمان بکنیم و حداقل چند ایراد نرم افزاری را حل کنیم، نمیتوانیم با تیم دولوپر، با تیم دواپس و با تیمهای فنی ارتباط لازم را برقرار کنیم. ارتباطی که نتیجهاش می تواند این باشد که بتوانیم باهم، مشکلات را به صورت ریشهای بفهمیم. ( چون بعضی از باگ ها و آسیب پذیری ها بهراحتی و با حذفکردن یک فایل یا با اضافهکردن یک دستور کد، برطرف نمیشوند. در بعضی از موارد واقعا فهم مشکل و راهحلش نیازمند بررسی ست.) در این خلا ارتباطی و هماهنگی، نمیشود ایده را به خوبی بررسی کرد و ما نمیتوانیم آن تاثیر خاص و ایدهآلی که دوست داریم، را بگذاریم.
در حالت کلی میتوانم بگویم که من خوب و بد بودن یک تست نفوذ را با "میزان اثرگذاری" خودمان (به عنوان یک تیم یا متخصص تست نفوذ) بر امنیت یک سازمان و کسبوکار میسنجم. در مواقعی که بتوانم تاثیر خوب و مثبتی داشته باشم، آن تست نفوذ را تست نفوذ خوبی میدانم و با خودم میگویم " واقعا ارزش کار کردن داشت." اگر نتوانم به اندازهی کافی تاثیر مثبت بگذارم، آن تست نفوذ را تست نفوذ بیفایده و بدی میدانم. . به هر حال ما رفتهایم که یک سری ایرادات را پیدا کنیم تا رفع شوند. اگر ما نتونیم این کار را انجام دهیم، خب تست نفوذ چه اثری دارد؟ من رفتار و بینش کسب و کار را، در شکل گیری یک ارتباط مطلوب و هماهنگی بین تیمها، بسیار موثر میبینم. درباره ی اثر وجود یا خلا ارتباط بر کیفیت همکاری و خروجی کار، هم که به تفصیل از زاویه ی دید خودم گفتم.
پیشنهاد خواندنی: تجربیات و نکات تست نفوذ؛ با رامین اسدیان
علی فیروزی:
یکی از مسائل کلیدی در فرآیند تست نفوذ، نوشتن گزارش است. در نوشتن گزارش تست نفوذ، باید توجه ویژهای به این نکته داشت که آیا هدف تنها تهیهی یک فهرست از موارد آسیبپذیری است، یا این که میخواهیم با ارائهی اطلاعات دقیق و توضیحات شفاف، کاری کنیم که گزارش و آسیب پذیری ها قابلفهم و اثربخش باشند؟ این امر باید بهگونهای باشد که هم برای تیم فنی مفید واقع شود و هم در مراحل رفع آسیبپذیریها کمککننده باشد. من در تجربهام شاهد این بودهام که برخی ازمتخصصین تست نفوذ گزارشهایی تهیه میکنند که تیم فنی پس از مطالعهی آنها بهراحتی نمیتواند آسیب پذیری ها را شناسایی کند، یا نمیداند که چرا آسیب پذیری ایجاد شده است و چگونه باید آن را برطرف کند. بهنظر من، متخصص تست نفوذ باید در نظر داشته باشد که تیم فنی معمولاً دیدگاه برنامهنویسی دارند و ممکن است دانش امنیتی تخصصی نداشته باشند. بنابراین، مهم است که متخصص تست نفوذ گزارشی تهیه کند که برای تیم فنی قابلفهم باشد و به آنها کمک کند تا آسیبپذیریها را رفع و از وقوع اکسپلویتها توسط مهاجمین جلوگیری کنند.
علاوه بر گزارشهای متنی، افزودن توضیحات ویدئویی هم میتواند تأثیر قابلتوجهی در انتقال بهتر اطلاعات داشته باشد. زیرا در برخی موارد، توضیحات متنی ممکن است برای تیم فنی کافی نباشد و منجر به سوءتفاهم یا عدم درک صحیح شود. ویدئوها میتوانند بهطور مؤثرتری جزئیات را منتقل کنند. به کمک ویدئوها این اطمینان حاصل میشود که تمام نکات بهدرستی درک شدهاند.
در فرآیند تست نفوذ، معمولاً پیش میآید که متخصصین تست نفوذ بر اساس چکلیستهای مشخصی پیش میروند. بسیاری از افراد تست نفوذ را به همین شیوه میشناسند و پیروی از چکلیست را یک روال استاندارد میدانند. اما از نظر من، محدودکردن خود فقط به چکلیست، ایدهآل نیست. علاوه بر استفاده از چکلیست، یک متخصص تست نفوذ باید از خلاقیت خود بهرهبرداری کند و سناریوهای ترکیبی را نیز بهکار گیرد. به این معنا که پس از کسب درک و دید مناسب از اپلیکیشن، به آسیب پذیری های لاجیکال نیز توجه داشته باشد. این رویکرد، امکان شناسایی آسیب پذیری های بیشتری را فراهم میآورد. این خلاقیت یکی از تفاوتهای رایج میان شکارچی آسیب پذیری ومتخصص تست نفوذ هم هست. یک شکارچی آسیب پذیری معمولا صرفاً بر اساس چکلیست پیش نمیرود، بلکه از خلاقیت خود برای بررسی سناریوهای مختلف بهره میبرد. این ترکیبهای خلاقانه میتواند به کشف آسیبپذیریهایی منجر شود که ممکن است در یک تست نفوذ عادی شناسایی نشوند.
پیشنهاد خواندنی: تجربیات و نکات تست نفوذ؛ با علی فیروزی
بهراد رضایی:
در تست نفوذ وظیفهی ما بهعنوان یک متخصص تست نفوذ، این است که تمام آسیب پذیری های شناختهشده را در وبسایت موردنظر تست کنیم. یک تفاوت تست نفوذ خوب و بد میتواند در رعایت همین نکته باشد. این که تمام آسیب پذیری ها چک شوند و موردی از قلم نیفتد. در یک تست نفوذ بد ممکن است این طور باشد که فرد فقط بعضی آسیب پذیری ها (مثل XSS، SQL Injection و idore ) را تست کند و آسیب پذیری های دیگر (مثل Command Injection ، File upload و موارد دیگر) را از قلم بیندازد. در حالی که ممکن است سایت نسبت به همان موارد که از قلم افتادهاند، آسیب پذیر باشد. به واسطهی همین آسیب پذیری ها احتمال دارد که سایت توسط یک هکر کلاه سیاه هک شود.
پیشنهاد خواندنی: تجربیات و نکات تست نفوذ؛ با بهراد رضایی
امید شجاعی:
به نظر من یک تست نفوذ خوب تاحد زیادی به کارشناس تست نفوذی که آن را انجام میدهد، بستگی دارد. به این بستگی دارد که یک کارشناس تست نفوذ بتواند: فراتر از چکلیستی که برای تست نفوذ وجود دارد اقدام کند، کسبوکار را به خوبی درک کند، بتواند با آن ارتباط برقرار کند و بر آن مسلط شود، بتواند سناریوهای لاجیک و منطقی را بهخوبی بررسی کند. به نظر من چنین تستنفوذی، یک تست نفوذ خوب است و کیفیت خوبی دارد.
نکتهای که میخواهم اضافه کنم این است که اگر چند کارشناس تست نفوذ بر روی یک سامانه کار کنند، خیلی بهتر از این حالت است که صرفا فقط یک کاشناس تست نفوذ ( هر چه قدر هم که باتجربه باشد) کار تست نفوذ یک سامانه را انجام دهد. افکار افراد مختلف، خیلی متفاوت و متنوع هستند و نتیجهی بهتری حاصل میشود.
پیشنهاد خواندنی: تجربیات و نکات تست نفوذ؛ با امید شجاعی
محمدصالح مهری:
در اکثر مواقع متخصصین حوزهی امنیت سایبری دانش خوبی دارند و همهی موارد را به خوبی تست میکنند. نکتهی مهمی که در این جا مطرح میشود، این است که فرد در کنارش بتواند به خوبی پرزنت کند و گزارشش را بنویسد. مخصوصا در تست نفوذ، نوشتن گزارش تست نفوذ خیلی مهم است. پرزنت و گزارش باید به شکلی باشد که طرف مقابل (کسبوکار) متوجه شود که منشأ آسیب پذیری کجا بوده است و چطور میشود آن را برطرف کرد.
پیشنهاد خواندنی: تجربیات و نکات تست نفوذ؛ با محمدصالح مهری
آیلین همایونی:
من از روی علاقه تست نفوذ را انجام میدهم. هر کسی در زمینهی انجام تست نفوذ برای خودش سبکی دارد. من فکر میکنم نمیشود نام تست نفوذ خوب و تست نفوذ بد را روی این مدلهای متفاوت گذاشت. در فرآیند تست نفوذ، یک سری اصول وجود دارد. علاوه بر اصول، یک سری سلایق شخصی هم ضمیمه و استفاده میشوند.
ولی خب، درکل بهترین حالت تست نفوذ را، تست نفوذی میدانم که به صورت تیمی انجام شود. مثلا: من برخی آسیب پذیری ها را خیلی راحت پیدا میکنم و بر آنها تسلط بیشتری دارم. در کنارش برخی آسیب پذیری های دیگر را اصلا نمیتوانم پیدا کنم یا کمتر حوصلهشان را دارم. ولی خب وقتی در یک تیم با یک فرد دیگر همتیمی میشویم، هر کداممان به برخی آسیب پذیری هایی که تسلط بیشتری داریم، می پردازیم و اتفاق کاملتری میافتد. برخی آسیب پذیری ها به طور قطعی مشخص نیستند. هیچ زمانی یک فرد نمیتواند به طور صددرصد بگوید : "من اطمینان دارم که این آسیب پذیری وجود دارد. " ولی در حالتی که تعداد افراد و دیدگاههایشان بیشتر میشود، احتمال اشتباه هم پایین میآید.
پیشنهاد خواندنی: تجربیات و نکات تست نفوذ؛ با آیلین همایونی
مجید موسوی:
به نظر من یک تست نفوذ خوب یعنی تست نفوذی که منجر به شناسایی حداکثری آسیبپذیریهای یک سامانه شود. اگر تست نفوذ فقط متکی به ابزار باشد و بررسی دستی انجام نشود، قطعاً برخی موارد از قلم میافتند. ابزارها مفیدند، اما همه چیز را پیدا نمیکنند. تست نفوذ حرفهای یعنی ترکیب ابزار و تحلیل دستی برای پوشش حداکثری آسیبپذیریها.
پیشنهاد خواندنی: تجربیات و نکات تست نفوذ؛ با مجید موسوی
محمدرضا عمرانی:
بهنظر من، اگر بهعنوان یک متخصص تست نفوذ در فرآیند تست نفوذ، فقط به بررسی یکسری چکلیست قدیمی بسنده کنی، خروجی کارت هم معمولاً کیفیت بالایی نخواهد داشت. اگر در کنار اینکه از چکلیستهای مرجع غافل نشوی، سعی کنی مثل یک شکارچی آسیبپذیری همیشه دانشات را بهروز نگه داری (مثلاً رایتآپ بخوانی، کنفرانسهای تخصصی را دنبال کنی، با تکنولوژیهای جدید دنیا آشنا باشی و مقالات مرتبط را مطالعه کنی) ، آن موقع میتوانی تست نفوذ خیلی کاملتری داشته باشی. از نگاه من، اگر بخواهی در تست نفوذ صرفاً با چکلیست جلو بروی، ممکن است مواردی را از دست بدهی. ولی وقتی سعی میکنی خلاقیت داشته باشی و با ذهن باز به سراغ هر هدف بروی، احتمال اینکه آسیبپذیریهای جدیتری پیدا کنی و عملکرد حرفهایتری داشته باشی، خیلی بالاتر است.
پیشنهاد خواندنی: تجربیات و نکات تست نفوذ؛ با محمدرضا عمرانی
عرفان توکلی:
به نظر شخصی من، وقتی یک متخصص تست نفوذ بداند که در آن پشت چه اتفاقی میافتد، به مراتب خیلی بهتر میتواند تستکیسها را عملی کند. در مقایسه با اینکه صرفا فقط یه سری تست کیس باشند، یا در نقاط مختلف پیلودهای مختلفی را کورکورانه اسپری کند. به نظر من اینکه به هر جایی که رسید، بداند که چه اتفاقی دارد میافتد، به مراتب خیلی بیشتر میتواند کمککننده باشد.
پیشنهاد خواندنی: تجربیات و نکات تست نفوذ؛ با عرفان توکلی
مهدی غلامی:
بعضی افراد را دیدهام که فرآیند تست نفوذ را فقط با چند ابزار پیش میبرند. مثلا از تست خودکار acunetix و Burpsuite استفاده میکنند. و هیچ تلاشی برای دورزدن WAF و یا موارد دیگر انجام نمیدهند. هیچ وردلیستی اضافه نمیکنند تا بهتر پیش برود. این واقعا بد است. ما انسانیم، آن کامپیوتر است. ما باید از منطق خودمان استفاده کنیم و با آن پیش برویم تا آن را دور بزنیم. من تست نفوذی که محدود به استفاده به چند ابزار باشد را تست نفوذ بدی میدانم.استفاده از ابزار ها بد نیست ولی نباید تماما متکی به چند ابزار باشیم.
پیشنهاد خواندنی: گپوگفتی با شکارچی آسیبپذیری؛ مهدی غلامی
زهرا:
خوب به نظر من تست نفوذی که از سمت کسبوکار، زمان لازم و کافی برایش اختصاص داده شود، تست نفوذ بهتری میشود. لازم است کسبوکارها حوصله به خرج دهند و زمان کافی برای تیم تست نفوذ فراهم باشد تا بتواند با دقت و تمرکز بالا، به بررسی بپردازد.
اینکه در تست نفوذ، موارد مختلف فقط یک بار و توسط یک نفر بررسی نشوند، هم در نتیجه موثر است. اینکه موارد مختلف، چندین بار و توسط چندین نفر بررسی شوند، به کیفیت و نتیجهی تست نفوذ میافزاید. تست نفوذ، لازم است که بهصورت دورهای انجام شود. زمانی که کسبوکار هر تغییری در سامانهاش ایجاد کرد، باید به دنبالش به فکر تست نفوذ هم باشد. طبیعتا تغییراتی که ایجاد شدهاند، خیلی اوضاع را تغییر دادهاند و اثراتی خواهند داشت. ممکن است به دنبال این تغییرات، آسیب پذیری های جدیدی ایجاد شده باشند. به همین دلیل است که توصیه میشود که نگاه صاحب کسب و کار نسبت به تست نفوذ، به این صورت باشد که تست نفوذ یک پروسهی دورهای و حتی دائمی است.
پیشنهاد خواندنی: تجربیات و نکات تست نفوذ؛ با زهرا
پیمان زینتی:
چیزی که من در تجربهام در تست نفوذ در این چند سال مشاهده کردهام، این است که اکثر شرکتها در تلاش هستند که روند تست نفوذ بر اساس یک استاندارد، مثلا OWASP Top10 یا چنین چیزی، انجام شود. درحالیکه اکتفا به چنین مواردی، باعث میشود که برخی موارد هم پوشش داده نشوند. کیسهای خاصتر و بیشتری هم وجود دارند که نیاز است چک شوند.
پیشنهاد خواندنی: تجربیات و نکات تست نفوذ و امنیت سایبری؛ با پیمان زینتی
ایلیا کشتکار:
تست نفوذ خوب، تست نفوذی است که براساس استاندارد جلو برود و این اطمینان خاطر وجود داشته باشد که اصلاحا چیزی جا نمانده است. به نظر من این نکتهی اولیه و خیلی مهمی است.
لازمهی بعدی یک تست نفوذ خوب، این است که انجامدهندهی آن بهعنوان یک متخصص تست نفوذ باید همیشه بهروز باشد. چراکه هر روز متدهای جدیدی از راه میرسند که قبلا نبودهاند. در اینجور مواقع، وجود یک چک لیست میتواند کمککننده باشد. ما یک چک لیست در Notion داریم که براساس آن جلو میرویم. پایهی اصلی آن براساس OWASP است. ما بهمرور و در طی مطالعات، تجربیات و یادگیریهایمان تلاش کردهایم که به این لیست نکاتی را بیفزاییم. مثلا؛ اگر جایی به نکاتی برخوردهایم و با خودمان گفتهایم:" آها، اینطوری هم بایپس میشود"، نکاتش را به آن لیست اضافهاش میکنیم تا در بررسیهای بعدیمان چکش کنیم. اگر در رایتاپی ( از سایت هکروان، راورو یا ...) به نکتهای بربخوریم، هم همینطور. اینگونه است که این Notion شکل گرفته و مورد خوب و قابلاستفادهای شده است. ما طبق آن پیش میرویم. همیشه، به طور مداوم، OWASP را چک و لیستمان را براساسش آپدیت میکنیم. گاهی OWASP در آخرین آپدیتهایش ممکن است مواردی را حذف کرده باشد یا مثلا ذکر کرده باشد که از این آسیب پذیری به یک آسیب پذیری دیگری میتوان رسید.
پیشنهاد خواندنی: تجربیات و نکات تست نفوذ؛ با ایلیا کشتکار و مهدی حسینی
سخن آخر:
در این بلاگ پست دیدگاه 13 متخصص تست نفوذ را درمورد تست نفوذ خوب و بد، براساس تجربیاتشان شنیدیم. متخصصینی که در یک سمت ماجرا قرار داشتهاند. قطعا این نگاه هنگامی دقیقتر و چندجانبهتر میگرد که از سمت دیگر ماجرا، یعنی تجربیات کسبوکارها هم نگاهی به آن انداخته شود.
دیدگاه شما راجع به تست نفوذ خوب و تست نفوذ بد، چیست؟
بلاگپستهای مرتبط: