نحوه مقابله با حملات
مقاله

نحوه مقابله با حملات سرور

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

وب سرورها

مسئولیت اصلی وب سرور، میزبانی برنامه های تحت وب و داده های کاربر است. این نوع سرور، درخواست ها را از نقاط مختلف در سراسر وب و عمدتا مرورگرها دریافت می کند و سپس توسط اطلاعات مورد نیاز، به آنها پاسخ می دهد. نمونه هایی از وب سرورها، Apache و Nginx هستند.

سرورهای ایمیل

این نوع سرور، برای خدمات ایمیل استفاده می شود. به عبارت دیگر ایمیل ها را از یک کاربر دریافت کرده و ذخیره می کند و همچنین برای گیرنده های موردنظر می فرستد. از نمونه های آن می توان به Gmail، Yahoo یا ProtonMail اشاره کرد.

سرورهای فایل

مقابله با حملات ایمیل 

تصویر(1)

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

انواع حملات سرور

حملات انکار سرویس (DoS) و انکار سرویس توزیع شده (DDoS)

مقابله با حملات DDos

تصویر(2)

این نوع حمله، یکی از رایج ترین حملاتی است که مهاجمان می توانند انجام دهند. آنها چندین خدمات را به طور همزمان از یک سرور درخواست می کنند تا سرور از دسترس کاربران عادی خارج شده و موجب حمله انکار سرویس (DoS) شود.

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

نحوه مقابله با حملات DoS/DDoS

  • سرورهای خود را جهت مقابله با حملات DoS/DDoS پیکربندی نمایید: 
  • تنظیمات سخت افزاری بسیار زیادی در بازار موجود هستند که می توانند جهت مقابله با حملات DoS/DDoS کمک کنند. به عنوان مثال، فایروال خود را به نحوی پیکربندی کنید تا بتواند درخواست هایی که بیش از دو بار در یک بازه زمانی مشخص ارسال می شوند را رد کند.
  • از سخت افزار محافظت در برابر DoS/DDoS استفاده کنید: هنگام خرید یا ساخت یک سرور، مطمئن شوید که سخت افزار مناسب را برای مقابله با حملات DoS/DDoS اضافه کرده اید. برندهایی مانند Cisco، arbor و بسیاری دیگر، سخت‌افزار هایی را ارائه می‌کنند که حمله DoS/DDoS را بلاک می‌کنند.
  • سروری با پهنای باند بیشتر خریداری نمایید: بهترین راه برای جلوگیری از DoS/DDoS خرید سرور با پهنای باند زیاد است. بنابراین زمانی که یک مهاجم حمله ای را انجام می دهد، سرور شما تحت تأثیر قرار نمی گیرد.

حمله تزریق SQL

چگونگی مقابله با حملات تزریق SQL

تصویر(3)

تزریق SQL یک باگ اپلیکیشن تحت وب است که به مهاجم اجازه می دهد تا با اجرای کوئری توسط یک رابط کاربری، از اطلاعات پایگاه داده سوء استفاده کند. در حال حاضر سیستم ها از کوئری‌ها برای انجام عملیات CRUD (مخفف create, read, update و delete به معنی ایجاد، خواندن، بروزرسانی و حذف) بهره می برند. مهاجم می تواند تمام داده هایی را که نباید توسط کاربر نهایی دیده شود را با اجرای یک کوئری‌ دریافت کرده یا اطلاعات موجود را تغییر دهد و حذف نماید. این موضوع سیستم را ناپایدار می کند. گاهی اوقات ممکن است مهاجمان بک اند (backend) را تغییر داده و همزمان حملات Dos را انجام دهند.

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

https://example.com/users?username=abc

این URL برای تایید اعتبار کاربر، به سرور ارسال می شود. سپس backend جهت احراز هویت، کوئری را اجرا می کند.

SELECT * FROM users WHERE username = ‘abc’ AND password = “ijasd”

فرض کنید که اپلیکیشن هیچ گونه سیستم بررسی کد SQL ندارد. بنابراین هکر به جای نام کاربری واقعی، عبارتی مانند abc’+OR+1=1 را می نویسد و URL به صورت زیر تغییر خواهد کرد:

https://example.com/users?username=abc’+OR+1=1

این آدرس در بک اند به صورت زیر تفسیر خواهد شد:

SELECT * FROM users WHERE username = ‘abc’ OR 1=1–‘ AND password = “hasbd”

این کوئری تمام داده ها را استخراج می کند زیرا شرط اضافی 1==1 در همه موارد معتبر خواهد بود. به این ترتیب مهاجم می تواند تمام داده های شما را به راحتی دریافت کند.

نحوه مقابله با حملات تزریق SQL

اعتبار سنجی ورودی

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

رویه ذخیره شده (Stored Procedure)

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

اجتناب از ارائه دسترسی سطح ادمین

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

حمله man-in-the-middle

اصطلاح man-in-the-middle زمانی به کار می رود که مهاجم خود را بین کاربر و سرور قرار می دهد. هکرها وانمود می کنند که سرور و کاربر به یکدیگر مرتبط هستند. هیچ کس متوجه نخواهد شد که یک هکر در حال رهگیری ارتباط بین این دو است. هدف اصلی این حمله دریافت اطلاعات شخصی کاربران مانند رمز عبور، جزئیات حساب و پیام های خصوصی می باشد.

چگونه باید از حمله man-in-the-middle جلوگیری کرد؟

با دنبال کردن مراحل زیر، می توان از حمله man-in-the-middle جلوگیری نمود:

  • از پروتکل HTTPS برای وب سایت های خود استفاده نمایید.
  • اطمینان حاصل کنید که پس از اتمام کار خود (مانند انجام تراکنش در سایت های بانکی) از سیستم خارج شوید.
  • از Wi-Fi رایگان در هتل ها، مراکز خرید یا هر مغازه دیگر، استفاده نکنید.

حمله Cross-site Scripting یا XSS

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

روش های مقابله با حملات XSS

تصویر(4)

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

خطر حمله XSS از تزریق SQL کمتر است زیرا مهاجم نمی تواند به تمامی داده ها دسترسی داشته باشد. در ادامه، XSS با ذکر یک مثال بررسی می شود. فرض کنید می خواهید لیستی از محصولات را نمایش دهید:

<html>

<h1>محصولات</h1>

<h1> محصول 1 </h1>

<h1> محصول 2 </h1>

<h1> محصول 3 </h1>

</html>

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

<script>HacketsScript()</script>

اکنون وقتی کاربر درخواستی را به وب سرور ارسال می کند، کد ذکر شده نیز ارسال خواهد شد که حاوی اسکریپت هکر است.

<html>

<h1>محصولات</h1>

<script>HacketsScript()</script>

<h1> محصول 1 </h1>

<h1> محصول 2 </h1>

<h1> محصول 3 </h1>

</html>

هنگامی که این کد در مرورگر قربانی اجرا می شود، اسکریپت هکر نیز اجرا خواهد شد. به این ترتیب، هکرها می توانند کد فرانت اند را دستکاری کنند.

نحوه مقابله با حملات cross-site-scripting 

ورودی کاربر را فیلتر کنید: ورودی کاربر را هنگامی که داده ها را درخواست می کنند، پاکسازی نمایید. می توانید یک فیلتر سختگیرانه بر اساس ورودی مورد انتظار، بیفزایید.

  • از هدرهای مناسب برای درخواست/پاسخ استفاده کنید: بهترین راه برای جلوگیری از XSS در درخواست های HTTP/HTTPS، تنظیم هدرهای مناسب است، به عنوان مثال برای درخواست‌های JSON، از دریافت HTML یا JS اجتناب کنید.
  • رمزگذاری ورودی/خروجی: وقتی ورودی و خروجی ها را رمزگذاری نمایید، احتمال کمتری وجود دارد که هکر بتوانند داده های کاربر را درک کند.

حمله بدافزار

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

انواع حملات بدافزار

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

چگونه باید از حملات بدافزارها جلوگیری کرد؟

از یک شبکه امن استفاده نمایید

در اولین قدم برای مقابله با حملات بدافزارها، از فایروالی استفاده کنید که درخواست‌ها و فایل‌های ناشناخته را مسدود می‌کند تا کاربران بدافزار دریافت نکنند. به غیر از فایروال، می توانید IPS یا IDS را نیز به کار بگیرید. حتی الامکان از VPN استفاده نکنید زیرا درخواست شما از چندین مسیر عبور می کند که می تواند شانس مهاجمان را برای تزریق بدافزار افزایش دهد.

پشتیبان گیری منظم داشته باشید

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

از آخرین نسخه نرم افزارها استفاده نمایید

بروزرسانی نرم افزارها بسیار مهم است زیرا شامل موارد امنیتی نیز می شوند. در نسخه های جدید، اشکالات شناسایی و برطرف شده و ممکن است بخش های امنیتی نیز بروز شده باشند.

فایل ها را پیش از استفاده، اسکن نمایید

وقتی فایلی را از اینترنت دانلود می کنید یا به سیستم خود انتقال می دهید، مطمئن شوید که آن را با یک ابزار آنتی ویروس اسکن کرده اید.

حملات Spoofing یا جعل

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

انواع حملات جعل هویت

جعل ایمیل

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

جعل وب سایت

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

جعل پروتکل اینترنت (IP)

روش های مقابله با حملات جعل IP

تصویر(5)

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

جعل سرور سیستم نام دامنه یا DNS Spoofing

DNS spoofing و روش های مقابله با حملات آن 

تصویر(6)

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

نحوه مقابله با حملات جعل

Spoofing اساساً با کمی تغییر در اسامی معتبر صورت می گیرد. بنابراین، برای در امان ماندن از جعل، باید مراقب ایمیل، وب سایت یا شماره تلفن خود باشید. قبل از ارسال اطلاعات مهم، مشخصات فرستنده را مجددا بررسی کنید. به اشتباهات املایی، گرامری، جملات نادرست، کاراکترهای خاص و غیره توجه نمایید. اگر هر یک از این خطاها را بیابید، نشان می دهند که مشخصات جعلی است.

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

نتیجه گیری

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

اشتراک گذاری:

نظرات

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *