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

1606683296_1_0.gif

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

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

نداشتن قفل امنیتی

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

پیام‌های خطای توصیفی

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

  • حساب پیدا نشد. 
  • نام کاربری اشتباه است.
  • رمز عبور نامعتبر است.
  • رمز عبور به‌درستی نوشته نشده است.
  • کلید Caps Lock روشن یا خاموش است.
  • کاربری با این مشخصات، وجود ندارد. 
  • نام کاربری شامل حرف کوچک و بزرگ می‌شود.
  • نام کاربری شامل عدد نمی‌شود.
  • و موارد مشابه دیگر.

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

مطالب پیشنهادی:

نمایش مستقیم خطاها 

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

 رمزهای عبور ضعیف

رمزهای عبور ضعیف، در برابر حمله‌های لغت‌نامه، جست‌وجوی فراگیر و غیره آسیب‌پذیر هستند. متاسفانه، آمارها نشان می‌دهند هنوز هم برخی کاربران از رمزهای عبور مثل 111111، abc123، qwerty، 1234567 و نمونه‌های مشابه استفاده می‌کنند. این نوع رمزهای عبور برای هکرها شناخته شده‌اند و درون لغت‌نامه‌هایی که هکرها از آن استفاده می‌کنند، وجود دارد. هر سال، پژوهش‌های مختلفی در این زمینه انجام می‌شود که نشان می‌دهد هنوز هم کاربران و حتا سرپرستان وب‌سایت‌ها از چنین رمزهای عبور ضعیفی استفاده می‌کنند. رمزهای عبور ضعیف یکی از دلایل اصلی بروز مشکلات امنیتی و حمله‌های سایبری است. یافتن برنامه‌های وب که خط‌مشی‌های نه‌چندان قدرتمندی در مورد رمزهای عبور دارند، کار سختی نیست. 

مشکل دیگری که رمزهای عبور انتخاب‌شده توسط کاربران دارند، کوتاه بودن آن‌ها است. متاسفانه، بیشتر کاربران ترجیح می‌دهند از رمزهای عبوری که حداکثر ۵ کاراکتر هستند، استفاده کنند. آسیب‌پذیری فوق به این دلیل رایج است که توسعه‌دهندگان در هنگام کدنویسی به مباحث امنیتی توجه نکرده‌اند و کاربران را ملزم نکرده‌اند که حداقل از ۸ یا ۹ کاراکتر که ترکیب حروف، ارقام و سمبل‌ها است استفاده کنند.  چرا این مشکل هنوز وجود دارد؟ برخی مالکان وب‌سایت‌ها می‌گویند: «کاربران ما تمایلی به خط‌مشی‌های سخت‌گیرانه ندارند و ترجیح می‌دهند رمزهای عبور ساده‌ای برای حساب‌های کاربری خود انتخاب کنند. ما نیز به عقیده آن‌ها احترام می‌گذاریم». واقعیت این است که شما به رمزهای عبور قوی نیاز دارید. یکی دیگر از مشکلاتی که زیاد دیده می‌شود و به‌ویژه وب‌سایت‌های ایرانی با آن روبه‌رو هستند، توانایی کاربران در کپی و پیست کردن رمزهای عبور در فیلدهای مربوطه است. این کار نه‌تنها امنیت را بهبود نمی‌بخشد، بلکه یک حفره بزرگ امنیتی ایجاد می‌کند، زیرا این امکان وجود دارد که هکرها یا بدافزارها اطلاعات حافظه اصلی را خوانده و رمزهای عبور را سرقت کنند. 

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

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

عدم محافظت از صفحه‌های ورود با استفاده از پروتکل‌های رمزگذاری 

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

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

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

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

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

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

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

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

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

حمله حدس رمز عبور 

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

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

  • رمزهای عبور باید حداقل هشت کاراکتر داشته باشند. 
  • رمزهای عبور باید شامل ترکیبی از حروف، اعداد و سمبل‌ها باشند. 
  • رمزهای عبور باید ترکیبی از حروف بزرگ و کوچک باشند.
  • رمزهای عبور نباید شامل اسامی و نام‌های شناخته‌شده باشند. 
  • نباید از سه کاراکتر یکسان به‌شکل پشت سرهم در رمزعبور استفاده کرد. 
  • از کاراکترهای متوالی مثل abc یا 123 نباید در رمزهای عبور استفاده شود. 

در صورت امکان، یک فهرست سیاه آماده کنید تا کاربرها موفق به تعیین رمزهای عبور ضعیف درون فهرست سیاه نشوند. 

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

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

کلام آخر

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

ماهنامه شبکه را از کجا تهیه کنیم؟
ماهنامه شبکه را می‌توانید از کتابخانه‌های عمومی سراسر کشور و نیز از دکه‌های روزنامه‌فروشی تهیه نمائید.

ثبت اشتراک نسخه کاغذی ماهنامه شبکه     
ثبت اشتراک نسخه آنلاین

 

کتاب الکترونیک +Network راهنمای شبکه‌ها

  • برای دانلود تنها کتاب کامل ترجمه فارسی +Network  اینجا  کلیک کنید.

کتاب الکترونیک دوره مقدماتی آموزش پایتون

  • اگر قصد یادگیری برنامه‌نویسی را دارید ولی هیچ پیش‌زمینه‌ای ندارید اینجا کلیک کنید.

ایسوس

نظر شما چیست؟