سرفصل‌های آموزشی
آموزش OWASP TOP 10
صفحه های ورود مورد علاقه ی هکرها 2

صفحه های ورود مورد علاقه ی هکرها 2

احراز هویت چند عاملی (Multi Factor Authentication) چیست؟

احراز هویت چند عاملی (MFA) یا احراز هویت دو عاملی (2FA) زمانی است که کاربر برای تایید اعتبار در سیستم، برای ارائه احراز هویت لازم است بیش از یک نوع مدرک ارائه دهد. چهار نوع مختلف مدرک (یا فاکتور) وجود دارد که می تواند مورد استفاده قرار گیرد: 

احراز هویت چند عاملی (MFA) یک فناوری امنیتی است که برای تایید هویت کاربر جهت ورود به سیستم، به چند روش احراز هویت نیاز دارد. هدف احراز هویت چند عاملی ایجاد یک لایه ی دفاعی است که دسترسی یک فرد غیر مجاز را دشوارتر می کند. اگر یک عامل به خطر بیافتد یا شکسته شود، مهاجم حداقل یک یا چند مانع برای شکستن، قبل از موفقیت در رسیدن به هدف دارد. 

  • چیزی که کاربر می داند، مانند رمز عبور 
  • چیزی که کاربر در اختیار دارد، مانند ایمیل یا پیامک 
  • چیزی که هست. یعنی استفاده از روش های راستی آزمایی بیومتریک برای تست کاربر مثل اثر انگشت 
  • موقعیت یا مکان، مثل محدوده IP یا موقعیت جغرافیایی  

نمونه هایی از آن چه کاربر می داند

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

  • رمزهای عبور 
  • پین (یا شماره های شناسایی شخصی) 
  • پاسخ به سوال های گفته شده پنهانی (مانند "کجا متولد شده اید؟" یا "نام معلم کلاس اول خود را بگویید") 

نمونه هایی از چیزی که کاربر در اختیار دارد

چیزی که کاربر داشته است (که فاکتورهای مالکیت نیز نامیده می شود) قرن ها پایه و اساس امنیت بوده است. ابتدایی ترین نسخه، یک کلید است که قفل را باز می کند. اما اکنون ابین موارد پیچیده تر هستند، اما فرضیه همان است. یک مثال احراز هویت چند عاملی برای چیزی که کاربر در اختیار دارد عبارت است از: 

  • Google Authenticator (برنامه ای در تلفن شما)
  • پیام کوتاه پیامکی همراه با کد 
  • توکن نرم (توکن نرم افزاری نیز نامیده می شود) 
  • توکن سخت (توکن سخت افزاری نیز نامیده می شود) 
  • نشان امنیتی

نمونه هایی از چیزی که کاربر است

تایید بیومتریک (یا چیزی که کاربر از آن استفاده می کند) راهی برای شناسایی شخص با استفاده از صفت های بیولوژیکی منحصر به فرد او است. نمونه هایی از تایید بیومتریک عبارتند از: 

  • اثر انگشت 
  • صدا 
  • الگوهای شبکیه و عنبیه 
  • امضا 
  • DNA

نمونه هایی از مکان 

برای مثال محدوده هایی که IP منبع مشخص می کند. همچنین موقیعت کاربر از نظر جغرافیایی نیز می تواند ملاک خوبی باشد. این که در کدام کشور، شهر یا حتی منطقه قرار دارد. 

خطر در احراز هویت چند عاملی 

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

  1. نداشتن محدودیت زمانی: فرض کنید یک نوع احراز هویت دو عاملی داریم که قرار است کدی را به تلفن همراه شما ارسال کند. اگر هیچ گونه محدودیت در زمان استفاده از آن کد در نظر گرفته نشود، بدون شک یک فاجعه رخ خواهد دارد و نه تنها استفاده از این روش احراز هویت، امنیت را تضمین نمی کند بلکه یک آسیب پذیری خطرناک با خود به همراه دارد. در صورتی که کد به تلفن همراه شما ارسال شود، هر زمان، هر شخصی که به تلفن شما دسترسی داشته باشد (به هر شکلی)، به راحتی می تواند از آن کد استفاده نماید. به همین علت، معمولا برای جلوگیری از این اتفاق، محدودیت زمانی برای آن تعیین می کنند. مثلا 30 ثانیه یا 1 دقیقه. حتما این مورد را در استفاده از رمز های پویای بانک ها دیده اید. 
  2. نداشتن محدودیت در تعداد دفعه های استفاده: اجازه دهید مثال بخش قبل را ادامه دهیم. یک کد به تلفن همراه شما ارسال می شود. محدودیت زمانی هم 1 دقیقه وجود داشته باشد. اگر در تعداد دفعه های استفاده از کد، محدودیت نداشته باشد، باز هم یک راه برای هکر ها باز شده است. ابزار های سریعی وجود دارند که می توانند ترکیب های مختلف را جهت حدس کد، تست کنند. بنابراین برای جلوگیری از این اتفاق نا خوشایند، بهتر است که بعد از چند بار تکرار در وارد کردن کد به صورت اشتباه، حساب قفل شود. 
  3. کوتاه بودن کد: نکته مهم دیگری که باید به آن دقت شود، تعداد کاراکتر های کدی که برایتان ارسال می شود، است. دقت داشته باشید، اگر کد بسیار کوتاه باشد، به هکر ها در حدس آن کمک خواهد کرد و به طور حتم می دانید که برای این منظور نیز تجربه و ابزار های متهدد، به کمک هکر ها می آیند. پس فراموش نکنید که لازم است از حداقل تعداد کاراکتر های امن برای کدها استفاده شود. 

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

امنیت در برابر حملات Brute-Force با CAPTCHA

همان طور که در مقاله "پسوردهای مورد علاقه هکرها" صحبت شد، حمله ی حدس رمز عبور به عنوان حمله ی نیروی بی رحم شناخته می شود. حمله Brute-force تلاشی است برای کشف رمز عبور با استفاده از ترکیب حروف، اعداد و نمادها تا زمانی که یک ترکیب صحیح را به دست آورید. 

به همین علت است که توصیه می شود بعد از تعداد مشخصی تلاش برای رمز عبور نادرست، نوعی قفل حساب را اجرا کنید که در این مقاله به آن اشاره کردیم. همچنین استفاده از  CAPTCHAامنیت بیشتری به برنامه وب، می دهد که در مورد آن در مقاله "پسورد های مورد علاقه هکر ها" صحبت شد. 

استفاده از CAPTCHA به طور کلی مانع نفوذ نمی شود اما حمله های خودکار را شکست می دهد و کاوش را فقط به تجزیه و تحلیل دستی محدود می کند. 

می خواهیم این بخش را با ذکر یک مثال برایتان روشن کنیم. فرض کنید هر کاربر 5 تلاش ناموفق ورود به سیستم در یک بازه ی زمانی مثلا 30 دقیقه ای داشته باشد، برنامه آن را یک حمله brute force در نظر می گیرد. در این حالت، برنامه هنگام ورود از همه ی کاربرها می خواهد که CAPTCHA را مشخص کنند. این کار باعث می شود که اگر در 30 دقیقه گذشته کمتر از 5 تلاش ناموفق ورود به سیستم انجام شده باشد، سیستم را از حمله ی brute force در امان نگه دارد و به این ترتیب، تعیین پاسخ CAPTCHA دیگر لازم نیست.  

جمع بندی 

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

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

online-support-icon