آسیب پذیری TCP SACK لینوکس

در مرکز محتوای سرور دات آی آر

 

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

توضیح مختصری در مورد این آسیب پذیری

این آسیب پذیری مربوط به دستکاری هسته لینوکس با استفاده از بسته های (TCP Selective Acknowledgement (SACK با اندازه ی کم MSS ایجاد شده است.

(TCP Selective Acknowledgment (SACK چیست؟

(TCP Selective Acknowledgment (SACK مکانیزمی است که در آن دریافت کننده های داده می توانند  فرستنده را در مورد تمام بخش ها و segment هایی که با موفقیت پذیرفته شده است، مطلع نماید. همچنین به فرسنتده اجازه می دهد داده هایی که به خوبی ارسال نشده است و یا به اصطلاح  لقب “known good” به آنها اختصاص داده نشده است ارسال مجدد داشته باشند. زمانی که TCP SACK از کار می افتد میزان بسیار زیادی از ارسال های مجدد از یک جریان داده لازم است اتفاق بیفتد تا تمام جریان داده مجدد ارسال شود.

MSS چیست؟

MSS) maximum segment size) یک پارامتر در هدر TCP یک بسته است که مقدار کل داده های موجود در بخش TCP بازسازی شده را مشخص می کند. اگر اندازه یک بخش یا segment بسیار بزرگ و بیشتر از اندازه تعریف شده باشد به صورت کامل آن segment  نادیده گرفته می شود و ارسال نخواهد شد.

TCP SACKs:

TCP داده های کاربر را با یک واحد به نام segment ارسال و دریافت می کند. TCP segment شامل TCP HEADER ، option، و داده های کاربر است.

هر TCP Segment دارای یک شماره تکراری یا (Sequence Number(SEQ  و ACK) Acknowledgement Number) است. شماره های SEQ برای ردیابی بخش هایی که توسط گیرنده به طور موفقیت آمیزی دریافت می شوند استفاده می شوند  و شماره ACK هم Segment  بعدی مورد انتظار برای دریافت کننده را نشان می دهد.

Selective Acknowledgement: SACK

با یک مثال فرایند کار (Selective Acknowledgement(SACK را توضیح خواهیم دارد: در این مثال فرض کنید یوزر A  یک کیلوبایت دیتا را از طریق 13 segment  به اندازه 100بایت را به یوزر B ارسال کند. در این ارسال segment 3،5،7 از بین می روند و به یوزر B ارسال نمی شود. با مکانیزم SACK  یوزر B با فیلد TCP option فرستنده را از دریافت موفقیت آمیز segment های (1,2,4,6,8-13) آگاه می کند در نتیجه تنها یوزر A نیاز به ارسال مجدد segment های 3،5 و 7 را لازم می داند. بنابراین به طور قابل توجهی صرفه جویی در پهنای باند شبکه انجام خواهد شد.

 اما این آسیب پذیری ها که با نام های  CVE-2019-11477 ، CVE-2019-11478 و CVE-2019-11479 کشف شده اند که هر کدام به روشی  با تغییر در هسته لینوکس باعث مصرف بیش ازحد منابع، فراهم شدن حمله DOS و در نهایت از دسترس خارج شدن سیستم کاربر خواهد شد.

اما راهکار های مقابله با این آسیب پذیری:

یکی از اقداماتی که میتوان استفاده نمود نصب اسکریپت تشخیص برای اینکه آیا سیستم شما آسیب پذیر به این نقص می باشد یاخیر؟ که برای این کار می توانید  با کلیک برروی Determine if your system is vulnerable این اسکریپت را دانلود نمایید.

اما به صورت کلی پیشنهاد داده می شود متناسب با سیستم عامل خود اقدام به آپدیت بسته kernel سیستم عامل خود نمایید. و یا با دستور زیر این ویژگی را غیر فعال نمایید:

echo "0" > /proc/sys/net/ipv4/tcp_sack
echo "net.ipv4.tcp_sack = 0" >> /etc/sysctl.conf
sysctl -p

اشتراک گذاری در linkedin

به تیم متخصص ما اعتماد کنید!

تخفیف مخاطبین مرکز محتوا: Blog01

از کد Blog01 می‌تونید برای خرید اشتراک خدمات سرور مجازی و هاست استفاده کنید و از %10 تخفیف تو سفارش این خدمات بهره‌مند بشید!

محتوای مقاله مفید بود؟

0 0 رای ها
این مقاله چطور بود؟
اشتراک در
اطلاع از
0 دیدگاه
بازخوردهای آنلاین
مشاهده همه دیدگاه ها