5 مورد از رایج ترین حملات و نقص های امنیتی در دنیای وب

18 خرداد 1398

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

در سال 2018 شاهد نقص های امنیتی فراوان از سمت شرکت های بسیار بزرگی مانند Facebook و Google+ و British Airways و غیره بودیم. این وضعیت برای کسب و کارهای کوچک بسیار بدتر است.

محققان امنیت Sitelock طبق تحقیقات خود گزارش داده اند که یک کسب و کار کوچک به طور متوسط 44 بار در روز مورد حمله قرار می گیرند و ربات های نرم افزاری در هفته حدود 152 میلیون بار از آن ها بازدید می کنند!

برای آنکه متوجه وخامت وضعیت بشوید باید بگویم در سال 2016 گزارشی منتشر شد که بر اساس آن گفته می شود مجموع خسارات حملات سایبری در دنیا حدود 6 میلیارد دلار خواهد بود! این مقدار از مجموع تولید ناخالص ملی (GDP) کشور های کانادا، عربستان سعودی، استرالیا و سوییس بیشتر است!

تخمین مجموع خسارات حملات سایبری در مقایسه با GDP کشور ها!
تخمین مجموع خسارات حملات سایبری در مقایسه با GDP کشور ها!

حملات تزریق SQL یا SQL Injection

شرح حملات SQL Injection
شرح حملات SQL Injection

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

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

ما در روکسو، دوره ی آموزش PDO را به صورت کامل توضیح داده ایم. در این دوره با روش مقابله با SQL Injection نیز آشنا می شوید اما به صورت کلی و خلاصه نکات زیر را در ذهن داشته باشید:

  • پاک سازی و اعتبار سنجی داده ها: قبل از وارد کردن داده ها از سمت کاربران، آن ها را پاک سازی کنید و هیچ گاه بدون بررسی آن ها را مستقیما وارد پایگاه داده نکنید.
  • بروزرسانی و استفاده از پچ های امنیتی: هکرها سعی می کنند از آسیب پذیری های جدید استفاده کنند بنابراین بسیار مهم است که شما سیستم های خود را مرتبا بروزرسانی کنید. یکی از این مثال ها بروزرسانی firmware های مربوط به router ها یا حتی بروزرسانی به نسخه های جدید WordPress است.
  • استفاده از firewall: استفاده از firewall ها بسیار مهم است. این firewall ها می تواند توسط خود شما و در برنامه تان نوشته شود و یا توسط ارائه دهنده ی هاست اینترنتی شما باشد. بهتر است از هاست هایی استفاده کنید که قابلیت هایی مانند ضد DDoS بودن را دارا باشند.

احراز هویت و مدیریت ناقص Session ها

امروزه اکثر وب سایت ها نوعی از ابزارهای authentication (احراز هویت) را دارند تا مطمئن باشند افرادی که به اطلاعات خاصی دسترسی دارند، واقعا خود آن افراد هستند. اگر در این حالت اشتباهی به وجود بیاید هکر می تواند از موقعیت سوء استفاده کرده و از موانع امنیتی عبور کند. این نوع از حملات معمولا زمانی اتفاق می افتند که مدیریت session ها و عملیات احراز هویت به درستی انجام نشده باشد. به طور مثال:

  • رمز عبور و نام کاربری قابل حدس.
  • اطلاعات هویتی که unencrypted باشند (یعنی رمزگذاری نشده باشند) و به صورت عادی ذخیره سازی شوند.
  • رمز عبور و session هایی که در پروتکل های نا امن مانند HTTP به جای HTTPS ذخیره شوند.
  • قرار ندادن  timeout برای session ها.
  • اعتبار سنجی مقدار session ها حتی پس از logout شدن.

برای مقابله با این دسته از حملات می توانید به موارد زیر توجه کنید:

  • رمز عبور طولانی و پیچیده: در رمزهای عبور خود از رشته ها، اعداد، علامت های خاص مانند اسپیس و علامت تعجب و ... استفاده کنید. همچنین حداقل طول رمز عبور شما باید 8 رقم باشد.
  • مقابله با حلمات brute force: سعی کنید سیستمی را پیاده کنید که مورد حملات brute force قرار نگیرد. به طور مثال اگر کاربر رمز خود را بیش از 5 بار به اشتباه وارد کرد حساب کاربری او تا مدتی معلق شود.
  • رمزگذاری اطلاعات حساس: سعی کنید اطلاعات حساس مانند رمز های عبور یا Session ID ها را حتما رمزگذاری کرده و در بستری امن مانند HTTPS انتقال دهید.

حملات DNS cache poisoning

شرح حملات DNS Spoofing
شرح حملات DNS Spoofing

حملات DNS cache poisoning (به معنی «مسموم‌گر سامانه نام دامنه») که با نام DNS spoofing (به معنی «کلاهبرداری در سامانه نام دامنه») نیز شناخته می شوند از حملات رایج در دنیای وب است. قبلا در رابطه با DNS ها به طور کامل صحبت کرده ایم (ر.ک به DNS چیست؟) به طور خلاصه:

DNS مخفف Domain Name Systems است. طبق مصوبه ی فرهنگستان زبان و ادب فارسی، دفتر نخست تا چهارم، ۱۳۷۶ تا ۸۵ سرواژه ی ساناد (مخفف سامانه ی نام دامنه) به عنوان معادل آن در زبان فارسی انتخاب شده است. DNS ها همان دفترچه تلفن های دنیای وب هستند!

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

DNS ها نیز آدرس IP سایت ها را در خود ذخیره دارند (مانند لیست مخاطبین) و وقتی شما آدرس google.com را در مرورگر خود وارد می کنید، به مرورگر می گویید به سایت گوگل برو! برای مرورگر حروف google تعریف نشده است و نمی داند گوگل چیست بنابراین ابتدا به یک سرور DNS متصل می شود، سپس آن سرور آدرس IP سایت گوگل را به مرورگر می دهد و در آخر مرورگر می تواند وارد سایت گوگل شود.

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

برای مقابله با این نوع حملات سعی کنید:

  • از DNSSEC استفاده کنید: یکی از رایج ترین ابزارهای مقابله با حملات DNS استفاده از ابزار DNSSEC (مخفف Domain Name System Security Extension) است. DNSSEC سعی می کند تا قبل از هدایت کاربر، مطمئن شود که او را به آدرس صحیحی ارسال می کند.
  • به کاربرانتان آموزش بدهید: به کاربران خود یاد بدهید که چطور از وب سایت های جعلی دوری کنند تا در صورت مشاهده بتوانند جعلی بودنشان را تشخیص دهند.
  • سرورهای DNS را بروزرسانی کنید: حمله به سرورهای بسیار قدیمی DNS کار راحتی است بنابراین همیشه آن ها را بروزرسانی کند و از وصله های امنیتی بی خبر نمانید.

حملات DDoS

شرح حمله منع سرویس یا DDoS attacks
شرح حمله منع سرویس یا DDoS attacks

حملات DDoS (مخفف Denial of Service - به معنی «حمله محروم‌سازی از سرویس») از حملات رایج این روز های دنیای وب است. به زبان ساده طرز کار این حملات بدین شکل است که ترافیک غیر واقعی و سنگینی را به سمت سرور ارسال می کنند (به وسیله ی ربات ها)، تا وب سایت هنگ کند و دیگر نتواند به درستی به درخواست ها جواب بدهد. در ضمن حملات DDoS با حملات DoS فرق دارند؛ حملات DoS معمولا از یک کامپیوتر یا شبکه اجرا می شوند اما حملات DDoS از چندین کامپیوتر یا شبکه ی هک شده انجام می شوند بنابراین کار شناخت هکر بسیار سخت می شود. حملات DDoS می توانند برای یک کسب و کار تجاری بزرگ به اندازه ی ساعتی 40 هزار دلار هزینه داشته باشند و اعتماد کاربران را تا 43 درصد کاهش دهند!

برای جلوگیری از این نوع حملات می توانید:

  • علامت را نادیده نگیرید: اگر شبکه ی شما به صورت غیرعادی کند شده است، اگر بدون دلیل خاصی shutdown می شود، اگر ترافیک وب سایت شما به صورت آنی افزایش شدیدی پیدا می کند و ... این ها همگی نشانه های حملات DDoS هستند. شاید در زمان حراج و تخفیف ترافیک شما بالا برود اما در حالت عادی باید مراقب باشید!
  • استفاده از CDN ها: قبلا در رابطه با CDN ها صحبت کرده ایم (ر.ک به استفاده از CDN). از آنجا که در این حالت به جای یک سرور چندین سرور مختلف داریم، شدت حملات آنچنان تاثیر گذار نخواهد بود.
  • از firewall ها استفاده کنید: web application firewall ها نوعی از firewall هستند که به شکل یک reverse proxy عمل می کنند. همچنین با استفاده از الگوریتم های خاص خودشان می توانند تا حد زیادی حملات DDoS را شناسایی کرده و جلوی آن را بگیرند.

حملات Cross Site Scripting یا XSS

XSS: Cross site scripting
XSS: Cross site scripting

حملات XSS: Cross site scripting (در فارسی تزریق اسکریپت از طریق وب‌گاه یا گذردهی اسکریپت از طریق وب‌گاه) نوعی تزریق کد هستند که طی آن هکر کدهای مخربی را وارد برنامه می کند تا دسترسی آن را به دست بیاورد. در این نوع حملات، برخلاف تزریق SQL، کاربران هدف حمله هستند نه وب سایت ما. زمانی که کاربر وارد وب سایت دارای کدهای مخرب جاوا اسکریپت می شود، مرورگرش آلوده می شود. در این حالت هکر به کوکی های مرورگر دسترسی پیدا می کند که معمولا شامل username و password و داده های دیگر است. همچنین می شود با استفاده از Trojan ها کنترل کامل مرورگر کاربر را به دست بگیرید. برای جلوگیری از این نوع حملات می توانید:

  • داده های کاربر را پاک سازی کنید: از آنجا که XSS مانند SQL از حملات تزریقی است، پاک سازی داده های کاربران اهمیت زیادی پیدا می کند.
  • متد Escaping: شما می توانید داده های کاربر را escape کنید؛ یعنی کاراکترهای غیر مجاز یا خاص مانند < و > و / را قبول نکنید و یا حداقل آن ها را با استفاده از زبان های برنامه نویسی خنثی کنید.

امیدوارم از این قسمت استفاده کرده باشید.

نویسنده شوید
دیدگاه‌های شما (1 دیدگاه)

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

حسین
17 مهر 1398
تشکر از آقای امیر زوارمی عالی بود بازم از این مطالب بزارید

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

امیر زوارمی
20 مهر 1398
سلام دوست عزیز، خیلی خوشحالم که مطلب مورد توجه شما بوده!

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.