وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

چطور سرور Memcached را ایمن کنیم

0 448
زمان لازم برای مطالعه: 3 دقیقه

شرح آسیب پذیری پیشفرض سرور و سرویس  Memcache

سرویس memcached یا memcache Daemon بصورت پیشفرض بصورت عمومی روی پورت 11212 UDP و TCP برای همه در دسترس است ، مانند دیگر ابزار ممکن است با یک تل نت ساده به memcacehd متصل شد و دستور stat را برای بدست آوردن اطلاعات درباره خود سرویس و یا دریافت اطلاعات درباره اطلاعات کش شده استفاده کرد ، بر اساس نوع کاربری این سرویس در زیرساخت شما ، قوائد مدیریت فن آوری اطلاعات سازمان ، و استاندارد های برنامه نویسی ، این سرویس میتواند اطلاعات بسیار حساسی را کش کند، در صورتی که چنین سرویسی بصورت عمومی در دسترس باشد میتواند اطلاعات حساس  را به اشخاص ثالث بدون اطلاعات شما ارائه کند

سرویس memcached مبتنی بر UDP می تواند برای حمله آمپلیفایری DOS مورد سوءاستفاده قرار گیرد ، حمله کننده تعداد زیادی بسته UDP را به سرویس ممکش با یک IP آدرس Spoof شده منبع ارسال کرده و تا ظرفیت سرور قربانی را با پاسخ های Memcached پر کند.

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

پیشنهاد می‌کنیم بخوانید:  روش نصب Memcached بر روی CentOS 8

نسخه های آسیب پذیر

همه نسخه های memchaced در زمان انتشار این مطلب در وبلاگ رسانگار با توجه به تنظیمات پیشفرض تحت تاثیر این آسیب پذیری هستند

چطور بررسی کنیم که memcache سرور در خطر آسیب پذیری است

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

(مقدار <ipaddress> را با آدرس ای پی سرور خود جایگزین کنید ) :

تست روی UDP:

 echo -en "\x00\x00\x00\x00\x00\x01\x00\x00stats\r\n" | nc -u ipaddress 11211 

خروجی اگر آسیب پذیر باشد

STAT pid 1111
STAT uptime 246345
STAT time 1526499414
STAT version 1.4.4
STAT pointer_size 64
[...]

تست روی  TCP:

nmap -Pn -p 11211 <ipaddress> --script memcached-info

اگر باز باشد خروجی به شکل زیر است :

Starting Nmap 6.40 ( http://nmap.org ) at 2015-04-01 10:09 EDT
Nmap scan report for xx.xx.xx.xx
Host is up (0.063s latency).
PORT      STATE SERVICE
11211/tcp open  unknown
| memcached-info: 
|   Process ID           1726 |   Uptime               43215969 seconds |   Server time          2015-04-01T14:09:03 |   Architecture         32 bit |   Used CPU (user)      0.728889 |   Used CPU (system)    1.032842 |   Current connections  10 |   Total connections    1678 |   Maximum connections  1024 |   TCP Port             11211 |   UDP Port             11211 |_  Authentication       no Nmap done: 1 IP address (1 host up) scanned in 0.36 seconds

راه کار رفع آسیب پذیری و ایمن سازی memcached:

 اگر سازمان و سرور شما نیاز به memcached ندارد

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

اگر memcached  مورد نیاز سرور محلی است

 

پیشنهاد می‌کنیم بخوانید:  افزایش امنیت سرویس ها در سرور مجازی

مسیر پیش فرض فایل پیکربندی در آدرس :  /etc/sysconfig/memcached قرار دارد ، آن را باز کرده و

OPTIONS=""

را به عبارت زیر تغییر دهید تا دسترسی به سرویس فقط برای کدهای لوکال امکان پذیر شود

OPTIONS="-l 127.0.0.1"

سپس سرویس را با دستور زیر ریست کنید

service memcached restart

بصورت پیشفرض سرویسهایی که از memcached استفاده می کنند از 127.0.0.1 برای اتصال استفاده می کنند ،  اگر برای اتصال از IP دیگر روی سرور استفاده می شود مطمئن شوید که آن آی پی را در تنظیمات اصلاح کنید

اگر memcached برای سرورهای دیگر در سازمان شما لازم است

بهترین راه مسدود کردن دسترسی عمومی به سرویس و باز کردن دسترسی فقط برای آدرس های IP با ابزاری مانند iptables یا فایروال سخت افزاری در صورت در دسترس بودن می باشد

 

بصورت دلخواه : 

تنظیمات پیشرفته تری می تواند برای اجازه دسترسی به سرورهای با تصدیق به روش SASL استفاده شود

http://www.shanison.com/2014/04/29/setup-memcached-with-sasl-authentication/

memcached با Zimbra:

https://wiki.zimbra.com/wiki/Blocking_Memcached_Attack

در صورت وجود هرگونه سوال آن را از طریق بخش نظرات وبلاگ رسانگار با ما در میان بگذارید

5/5 (2 رای)
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید