بررسی Weak Security Question Answer
در این بخش از دوره آموزشی OWASP-WSTG به چهارمین بخش از استاندارد WSTG با شناسه WSTG-ATHN-08 می پردازیم که مربوط به بررسی Weak Security Question Answer می باشد.
خلاصه
سوالات و پاسخهای امنیتی اغلب برای بازیابی رمزهای عبور فراموششده مورد استفاده قرار میگیرند. ( بخش Testing for weak password change or reset functionalities نیز مشاهده نمایید)
آنها معمولا همزمان با ایجاد حساب کاربری پرسیده میشوند و کاربر را ملزم به انتخاب برخی سوالات از پیش تولید شده و ارائه یک پاسخ مناسب میکنند. آنها ممکن است به کاربر اجازه دهند تا سوال و پاسخ مد نظر خود را تولید کند. هر دو روش میتوانند به نحوی نا امن باشند.
به صورت ایده آل، سوالات امنیتی باید جوابهایی تولید کنند که تنها توسط کاربر شناخته شدهاند و توسط هر کس دیگری قابل حدس زدن یا قابل کشف نیستند. این سختتر از چیزی است که به نظر میرسد. سوالات و پاسخهای امنیتی بر محرمانه بودن پاسخ تکیه دارند.
سوالات و پاسخها باید به گونهای انتخاب شوند که پاسخها تنها توسط صاحب حساب شناخته شوند. با این حال، اگرچه بسیاری از پاسخها ممکن است به صورت عمومی شناخته نشوند، اما بسیاری از سوالاتی که وب سایتها مورد استفاده قرار میدهند، پاسخهای شبه خصوصی را ترویج میدهند.
پرسشهای از پیش تولید شده
اکثر پرسشهای از پیش تولید شده ماهیتا ساده هستند و میتوانند منجر به پاسخهای نا امن شوند. برای مثال:
پاسخ ممکن است برای اعضای خانواده و یا دوستان نزدیک کاربر شناخته شده باشد، به عنوان مثال، نام خانوادگی مادر شما چیست؟ یا تاریخ تولد شما چیست؟
پاسخها ممکن است به سادگی قابل حدس و گمان باشند، به عنوان مثال، رنگ مورد علاقه شما چیست؟ تیم محبوب بیسبال شما کدام تیم است؟
پاسخ ممکن است قدرتمند نباشد، به عنوان مثال نام معلم مورد علاقه شما در دبیرستان چیست؟ پاسخها ممکن است به طور عمومی قابل کشف باشند، به عنوان مثال، فیلم مورد علاقه شما کدام است؟ پاسخ این سوال میتواند به راحتی از طریق بررسی صفحات شما در شبکههای اجتماعی قابل حدس باشد؟
پرسشهای خودساخته
موضوع دیگر مربوط به زمانی است که تولید سوالات بر عهده خود کاربر میباشد که مشکلات خاص خود را دارد. در این بخش به کاربران اجازه داده میشود تا سوالات بسیار نا امن تولید کنند، یا حتی ممکن است، داشتن یک سوال امنیتی در وهله اول نادیده گرفته شود. در اینجا به چند نمونه از دنیای واقعی اشاره میکنیم:
اهداف تست
- پیچیدگی و چگونگی ساده بودن سوالات را مشخص کنید.
- پاسخهای احتمالی کاربر و امکان انجام Brute Force را ارزیابی کنید.
چگونه تست را انجام دهیم
تست سوالات از پیش تولید شده ضعیف
سعی کنید با ایجاد یک حساب جدید یا با دنبال کردن روند “I don’t remember my password” – لیستی از سوالات امنیتی را به دست آورید. سعی کنید تا جای ممکن سوالات زیادی ایجاد کنید تا ایده خوبی از نوع سوالات امنیتی که پرسیده میشوند به دست آورید. اگر هر یک از سوالات امنیتی در دستههای ذکر شده در بالا قرار گیرند، در معرض حمله می باشند (امکان حدس دارند، Brute Force میشوند، در صورت دسترسی به رسانههای اجتماعی در دسترس هستند و غیره).
تست سوالات خودساخته ضعیف
سعی کنید با ایجاد یک حساب جدید یا پیکربندی ویژگیهای بازیابی گذرواژه برای حساب کاربری خود، سوالات امنیتی ایجاد کنید. اگر سیستم به کاربر اجازه دهد تا سوالات امنیتی خود را تولید کند، نسبت به ایجاد سوالات ناامن آسیبپذیر است.
اگر سیستم از سوالات امنیتی خود ساخته در طول عملکرد فراموشی کلمه عبور استفاده نماید و اگر نامهای کاربری را بتوان شناسایی نمود (تست مربوط به Testing for Account Enumeration and Guessable User Account را مشاهده نمایید) آنگاه برای تست نفوذگر، شناسایی تعدادی از سوالات خود ساخته آسان میباشد. انتظار میرود که در این بخش، تست نفوذگر چندین سوال امنیتی ضفیف خود ساخته را شناسایی نماید.
تست مربوط به پاسخهای قابل Brute Force
از روشهای تشریح شده در بخش Testing for Weak lock out mechanism استفاده نمایید تا مشخص شود که آیا تعدادی از پاسخهای امنیتی نادرست، مکانیزم قفل را راهاندازی میکنند یا خیر.
اولین چیزی که در هنگام تلاش برای بهرهبرداری از سوالات امنیتی باید در نظر گرفته شود تعداد سوالاتی است که باید پاسخ داده شوند. اکثر برنامهها تنها نیاز دارند تا کاربر به یک سوال پاسخ دهد، در حالی که برخی از برنامههای مهم ممکن است نیاز داشته باشند که کاربر به دو یا حتی چند سوال پاسخ دهد.
گام بعدی ارزیابی قدرت سوالات امنیتی است. آیا میتوان پاسخها را با یک جستجوی ساده گوگل یا با حمله مهندسی اجتماعی به دست آورد؟
به عنوان یک تست نفوذگر، قدم به قدم از فرآیندی که باید به منظور بهره برداری از مکانیزم سوال امنیتی، استفاده شود، عبارتند از:
- آیا برنامه به کاربر نهایی اجازه میدهد تا سوالی که باید پاسخ داده شود را انتخاب نماید؟
- اگر اینطور است، بر روی سوالاتی تمرکز نمایید که عبارتند از:
پاسخ “عمومی”؛ به عنوان مثال، چیزی که میتواند با یک پرس و جوی ساده در موتورهای جستجو پیدا شود. پاسخ حقیقی مانند “اولین مدرسه” یا حقایق دیگری که میتوان آنها را بررسی کرد.
تعداد کمی از پاسخهای ممکن، مانند “اولین ماشین شما چه مدلی بود”
دامنه پاسخهای مربوط به چنین سوالاتی محدود بوده و بر اساس آمارهای موجود، مهاجم میتواند پاسخها را از بیشترین به کمترین احتمال رتبهبندی نموده و آنها را به عنوان پاسخ، مورد بررسی قرار دهد.
تعیین نمایید که در صورت امکان چند حدس و گمان وجود دارد. آیا تنظیم مجدد کلمه عبور اجازه تلاشهای نامحدود را میدهد؟ آیا بعد از تعداد مشخصی از پاسخهای نادرست وارد شده، امکان مسدودسازی حساب وجود دارد؟
به یاد داشته باشید که یک سیستم مسدودسازی میتواند به خودی خود یک مشکل امنیتی باشد، زیرا میتواند توسط یک مهاجم برای راهاندازی یک حمله DoS یا همان انکار سرویس علیه کاربران قانونی مورد بهرهبرداری قرار گیرد و با امتحان روشهای مختلف، منجر به مسدود شدن تمامی حسابهای کاربری قانون گردد.
سوال مناسب را براساس تجزیه و تحلیل نکات مذکور، انتخاب نموده و برای تعیین محتملترین پاسخها تحقیق نمایید.
کلید بهرهبرداری موفق و دور زدن یک مکانیزم سوال امنیتی ضعیف، یافتن یک سوال یا مجموعهای از سوالات است که امکان شناسایی آسان پاسخها را فراهم میکند. در صورتی که از هیچ یک از پاسخ ها مطمئن نیستید، همیشه به دنبال سوالاتی بگردید که بیشترین شانس آماری را برای حدس زدن جواب صحیح به شما بدهد.
در نهایت، یک مکانیزم سوال امنیتی، تنها به اندازه ضعیفترین پرسش قدرتمند است!