
تجربیات و نکات تست نفوذ؛ با زهرا
در این بلاگپست، به سراغ یک متخصص تست نفوذ در دنیای امنیت سایبری رفتهایم تا با او گپوگفت کوتاهی دربارهی تجربیاتش در تست نفوذ داشته باشیم؛ زهرا
زهرا حدود 4 سال است که در حوزهی امنیت سایبری فعالیت میکند؛ در این مدت تجربههای مختلفی همچون تست نفوذ، کارهای پژوهشی، آمادهسازی داکیومنتهای امنیتی و بلوتیم را داشته است. آرزو دارد که این نگاه و ذهنیت "هکر مساوی است با مجرم " در طول زمان در جامعه تغییر کند. تست نفوذ تیمی را اثربخشتر میبیند. در تست نفوذ تیمی، تجربیات جذابی درخصوص تقسیم کار، نظارت و ... با تیمشان داشتهاند. چندین بار توانستهاند با استفاده از دیتاهایی که به قول خودش "در اینترنت ریخته است"، به دسترسیهایی برسند و آسیب پذیریهایی را کشف کنند. یکی از تفاوتهای باگ بانتی و تست نفوذ را در این میداند که در باگ بانتی، بیشتر باید جاهایی را بگردی که جلوی چشم هیچ کس نیست.
ما مصاحبهی دیگری هم با زهرا داشتهایم: گپوگفتی با شکارچی آسیبپذیری؛ زهرا
_ در نگاه شما، تفاوت یک تست نفوذ خوب و یک تست نفوذ بد در چه مواردی است؟
خوب به نظر من تست نفوذی که از سمت کسبوکار، زمان لازم و کافی برایش اختصاص داده شود، تست نفوذ بهتری میشود. لازم است کسبوکارها حوصله به خرج دهند و زمان کافی برای تیم تست نفوذ فراهم باشد تا بتواند با دقت و تمرکز بالا، به بررسی بپردازد.
اینکه در تست نفوذ، موارد مختلف فقط یک بار و توسط یک نفر بررسی نشوند، هم در نتیجه موثر است. اینکه موارد مختلف، چندین بار و توسط چندین نفر بررسی شوند، به کیفیت و نتیجهی تست نفوذ میافزاید.
تست نفوذ، لازم است که بهصورت دورهای انجام شود. زمانی که کسبوکار هر تغییری در سامانهاش ایجاد کرد، باید به دنبالش به فکر تست نفوذ هم باشد. طبیعتا تغییراتی که ایجاد شدهاند، خیلی اوضاع را تغییر دادهاند و اثراتی خواهند داشت. ممکن است به دنبال این تغییرات، آسیب پذیری های جدیدی ایجاد شده باشند. به همین دلیل است که توصیه میشود که نگاه صاحب کسب و کار نسبت به تست نفوذ، به این صورت باشد که تست نفوذ یک پروسهی دورهای و حتی دائمی است.
_ شما شاهد چه دیدگاههای نادرستی از سمت کسبوکارها نسبت به تست نفوذ بودهای؟
در تست نفوذهایی که ما بهصورت تیمی تابهحال انجام دادهایم، چالشهای زیادی از این جنس وجود داشته است.
تست نفوذ در سه نوع رایج انجام میشود: Black Box (جعبه سیاه)، White Box (جعبه سفید) و Grey Box (جعبه خاکستری). یکی از چالشهایی که تقریبا همیشه با آن روبهرو شدهایم این است:
سازمانها نسبت به اینکه سورس کد و Credential یا اطلاعات دسترسی را در اختیار تیم تست نفوذ قرار دهند، مقاومت دارند. معمولا از روی ترس با خودشان میگویند :" اطلاعات کمی به تیم تست نفوذ دهیم. اگر اطلاعات بیشتر یا سورسکد را در اختیارشان قرار دهیم، ممکن است تغییراتی در سورس کد ایجاد کنند، آسیبی بزنند و ... " در حالیکه نیاز است اعتماد دوطرفهای بین کسبوکار و تیم تست نفوذ وجود داشته باشد که البته با امضای قراردادها و NDAها فراهم میشود. به خاطر همین ترس و نگرش کسبوکارها، اکثر تست نفوذهایی که ما تابهحال انجام دادهایم به صورت Black Box (جعبه سیاه) و بدون در اختیار داشتن مواردی مانند سورسکد برای بررسی، بوده است. درست است؛ در حالت Black Box هم آسیب پذیری هایی پیدا میشوند. ولی این نیاز همچنان وجود دارد که سازمان برای تست سورس کد و موارد دیگر، هم کارهایی بکند و از آنها نگذرد.
پیشنهاد خواندنی: چک لیست قبل از تست نفوذ
_ در تجربهی پروژههای تست نفوذ فردی و تیمی، چه تفاوتهایی برای شما به چشم آمدهاند؟
در تجربهی من تست نفوذهایی که خیلی خوب جواب دادهاند، اکثرشان تست نفوذهای تیمی بودهاند.
_ کمی بیشتر از تجربهی تست نفوذ تیمی برایمان میگویی؟ آیا در تست نفوذهای تیمی، روال کاری خاصی در تیمتان دارید؟
در تست نفوذ تیمی، این امکان فراهم است که بعضی کارها تقسیم شوند. میشود بعضی موارد را به آن عضوهایی که تخصص و تجربهی بیشتری در آن دارند، سپرد. مثلا ما در تجربههای تیمی تست نفوذهای مختلف اینطور عمل کردهایم: بعضی افراد تیم بیشتر روی کلاینت ساید تمرکز کردهاند و بعضی افراد تیم روی سرور ساید. وقتی پروژهی تست نفوذ سامانهای را داشتهایم که مثلا تکنولوژی خاصی داشته است، اینطور فکر کردهایم: " به فلانی که بیشتر در حوزهی این تکنولوژی (مثلا ASP.Net ) کار کرده است و شناخت بیشتری دارد، بگوییم که بر تست نظارت داشته باشد."
اینکه هد تیم، بتواند مجموع تستهای افراد را بهصورت کاستومایزشده مدیریت کند، خیلی خوب است. ما در دورهای از فعالیت تیمیمان، داشتیم این موارد را در تجربه یاد میگرفتیم. در مسیر تجربههایمان به چالشها و مشکلات زیادی هم برمیخوردیم. مثلا کل سامانه را به افراد مختلف میسپردیم که هر کدام تمامش را بررسی و تست کنند. وقتی چند نفر تست میکردند، آسیب پذیری های بیشتری هم پیدا میشد و این خوب بود. در عین حال، رفتهرفته به این دید هم رسیدیم که میتوانیم با سازماندهی دقیقتر، بهطور بهینهتری پیش برویم؛ به این شکل که در تقسیم کار، به تخصص و تجربهی افراد توجه کنیم. اگر میخواهیم کار یک بخش مشخص را به چند نفر از اعضای تیم بسپاریم، به کاردانهای آن بخش بسپاریمش. خوشبختانه الان در تیممان، به جریان و هماهنگی روانی در این خصوص رسیدهایم. صد البته که برای آموزش هم در کنار تست نفوذ برنامه ریزی میشود تا سطح دانش افراد محدود نماند.
_ گفتی که بهعنوان اولین تجربهی باگ بانتی، در باگ پارتی حضور داشتهای. بههمراه تیمتان هم حضور داشتید. دوست داری کمی برایمان از تجربهی باگ بانتی بگویی؟ چه نکاتی به چشمت آمدند؟ چه تفاوتهایی با تست نفوذ؟
من، همانطور که قبلتر به آن اشاره کردم، خیلی به باگ بانتی نپرداختهام و بیشتر تجربههای دیگران را شنیدهام. یکی دو نفر از همتیمیهایمان تجربهی بیشتری در باگ بانتی داشتند و به آن پرداخته بودند. من خیلی از آنها یاد گرفتم.
مثلا آن سرعتی که دوستان من در باگ پیدا کردن و کشف آسیب پذیری داشتند، را من نداشتم. این برایم یک چالش بود که چه طور میتوانم بعضی موارد را در اولویت قرار دهم و یا سریعتر به برخی موارد بپردازم.
از نظر فنی یادگیریهایی برایم داشت. به نظرم رسید که parameter discovery (کشف پارامترهای مخفی) که از جاوااسکریپت در میآوریم، در باگ بانتی خیلی خیلی مهمتر است. چون در تست نفوذ، مواردی هست که جلوی چشم فرد قرار دارند و آنها را میبیند، مخصوصا در تست نفوذ Black Box. ولی در باگ بانتی، باید جاهایی را بگردی که جلوی چشم هیچ کس نیست. مثلا؛ باید هیدن پارامترها یا پارامترهای جاوااسکریپت را inject (تزریق) کنی و کارهای اینچنینی.
نکتهی دیگری که نباید فراموش کرد این است که اصطلاحا "در همه جای اینترنت اطلاعات ریخته است" میشود با جمعآوری اطلاعات، یک ریکان قوی داشته باشی. به نظرم در باگ بانتی، ریکان مهمترین بخش است. پارامتر پیدا کردن و این موارد هم جزوی از مرحلهی ریکان محسوب میشوند.
پیشنهاد خواندنی: در باگ پارتی چه گذشت؟
_ آیا در تجربهی تست نفوذهایی که داشتهای، شاهد نکات امنیتی رعایتنشدهی پرتکراری توسط افراد بودهای؟
ما در تست نفوذ سازمانها چندین بار شاهد این مورد بودهایم که توانستهایم با جستوجویی در اینترنت به اطلاعاتی از مسئولین کسبوکار برسیم. چند باری پیش آمده که با تست اطلاعات افراد بهعنوان رمزعبورشان، توانستهایم وارد اکانت شویم و دسترسیهایی پیدا کنیم. اکثر کسبوکارهای بزرگ، اطلاعات اعضایشان به راحتی در اینترنت پیدا میشود و در دسترس است. خود سایت رسمیو منبعی برای این کار است. من فکر میکنم لازم است به این نکات خیلی توجه شود. نیاز است سازمانها، آموزش بیشتری در زمینهی رفتارهای امن داشته باشند و برای کارکنانشان هم آگاهیرسانی کنند. افراد باید بدانند که ممکن است چه سوءاستفادههایی از دیتایشان صورت بگیرد. لازم است از دیتایشان مراقبت کنند و خصوص در انتخاب رمزعبور بیشتر دقت کنند.
من شاهد این بودهام که در بسیاری از سایتهای دانشگاهها، سیستم های اتوماسیون اداری و ... افراد از کد ملی، شماره موبایل یا موارد دیگر بهعنوان رمزعبور استفاده میکنند. از آن طرف هم این اطلاعات بهراحتی در اینترنت یافت میشوند. ما با کمک این سری اطلاعات، آسیب پذیری Account Take over هم ثبت کردهایم.
_ امیدواریم که در آینده جامعه توجه بیشتری به امنیت سایبری کند. ممنون که وقتت را در اختیار ما قرار دادی و تجربیاتت در خصوص تست نفوذ به اشتراک گذاشتی، زهرا عزیز.
بلاگپستهای مرتبط:
تجربیات و نکات تست نفوذ؛ با آیلین همایونی
تجربیات و نکات تست نفوذ؛ با رامین اسدیان