بررسی حفره های امنیتی و آموزش نحوه تامیین امنیت برنامه ها در سرور مجازی

بررسی حفره های امنیتی و آموزش نحوه تامیین امنیت برنامه ها در سرور مجازی

vps

سلام خدمت کاربران محترم فراویر در این پست به بررسی حفره های امنیتی راه کار های برطرف کردن آن ها  در سرور مجازی می پردازیم.

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

و این مسدود سازی هم برای محافظت در برابر دیگر سرور ها و همچنین حساب کاربران می باشد.

به همین علت در این آموزش ما با بررسی آسیب پذیری ها به شما راه کار های تامیین امنیت را آموزش می هیم.

بررسی حفره امنیتی portmapper و روش از بین بردن آن :

این مشکل امنیتی با گستردگی بالا که در سیستم ها ویندوزی و لینوکسی وجود دارد سبب بروز حملات انکار سیستم (DOS/DDoS) می شود.

بررسی پروتکل RPC :

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

فرایند این پروتکل به این صورت است که از سمت کلاینت در خواست سرویس ارسال می شود

و در مقابل در سمت سرور درخواست در یافت می شود و سرویس در خواستی فراهم می شود.

در این پروتکل مانند درخواست های معمولی باید تا دریافت پاسخ منتظر بمانید

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

توجه داشته باشید برنامه های مانند NFS daemons , lock manager و license manager در سرور هایی با سیستم عامل unix از RPC استفاده می کنند.

که روز به روز بر تعداد اکسپلویت های آن ها دارد اضافه می شود .

و در صورتی که سرویس در سیستم مورد نظر فعال باشد امکان سوء استفاده از آن وجود دارد.

در این فاریند دو برنامه portmapper و rpcbind و همچنین پورت 111 نیز مورد استفاده قرار می گیرد.

بررسی portmapper وrpcbind :

یکی از برنامه های RCP  برنامه portmapper است که میتواند یک پورت خاص را توسط شماره نسخه خود ایجاد کند.

توجه داشته باشید برای ثبت یک RCP از اطلاعاتی مانند  شماره نسخه و شماره سرویس پروتکل و همچنین از پورت های TCP و با UDP استفاده می کنند.

همچنین این برنامه بر روی پورت 111 در پروتکل TCP یا UDP قابلیت اجرایی دارد.

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

در این صورت سیستم ها برای اتصال به این برنامه ها باید یک پورت ثابت و شناخته شده دارد که این کار را portmapper انجام می دهد.

در نتیجه برای دسترسی به سرویس مورد نظر باید از portmapper استفاده کنیم .در غیر این صورت درخواست سیستم رد می شود.

همچنین باید توجه داشته باشید پروتکل RCP از امنیت پایینی بر خوردار است.

و همچنین برای اتصال قبل portmapper باید از rpcbind  استفاده کنید.

چون برای برقراری ارتباط با portmapper اول باید با rpcbind ارتباط برقرار کنید.

هنگام فراخانی یک شماره برنامه توسط پروتکل RPC برای مشخص کردن آدرسی که پاسخ درخواست باید به آن ارسال شود با rpcbind ارتباط برقرار می کند .

در صورتی که پورت شماره 111 فعال بود

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

همچنین در دیگر نسخه ها به علاوه پورت 111 , پورت های بزرگتر نیز مورد استفاده قرار می گیرد.

تفاوت این پورت ها در نوع سیستم عامل ها و نسخه آن ها می باشد.

با توجه به این موضوع در فایروال ها و روتر ها با استفاده از ACL ها و فایروال ها که برای عدم دسترسی به rpcbind یا portmapper بر روی پورت 111 تنظیم شده اند.

اما نقطه ضعف این مسئله همین جاست که شما می توانید با ارسال یک درخواست در شماره پورت های بالا تر بپرخید.

در این صورت خرابکاران می توانند از این طریق از راه دور اطلاعات RPC یک سیستم را به دست آورند.

آموزش روش ایمن کردن portmapper

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

و یا با مسدود سازی کل ترافیک ارسالی روی پورت 111 TCP و UDP  از روی شبکه سرور خود.

در زیر به چند روش دیگر امن سازی این سرویس می پردازیم :

استفاده از ابزار TCP Wrappers

برای محدود سازی دسترسی به سرویس های  portmap  باید از این ابزار استفاده کنید .

و توجه کنید برای این کار باید فقط از آی پی ها استفاده کنید به این دلیل که با حملاتی مانند DNS poisoning می توانند نام ها را جعل کنند.

استفاده از IPTables در *nix برای امن کردن portmapper :

با اضافه کردن rule  های زیر به iptables  می توانید دسترسی به یک شبکه خاص را محدود کنید.

در این دو دستور زیر فقط برای درخواست های اتصال TCP برای سرویس portmap  از سمت لوکال هاست و 192.168.0.0/24 مجوز صادر می شود:

iptables -A INPUT -p tcp -s! 192.168.0.0/24 –dport 111 -j DROP

iptables -A INPUT -p tcp -s 127.0.0.1 –dport 111 -j ACCEPT

iptables -A INPUT -p udp -s! 192.168.0.0/24 –dport 111 -j DROP

حفره امنیتی NetBIOS :

NetBIOS در واقع یک API(رابط برنامه نویسی) است که امکان مبادله اطلاعات  و داده را بین برنامه های نصب شده را در شبکه  دارد LAN  دارد.

در ابتدا در شبکه خصوصی IBM این برنامه ایجاد شد و بعد ها در مایکروسافت توسعه داده شده

همچنین توجه داشته باشید این برنامه به تنهایی نمیتواند در شبکه مسیر یابی کند و معمولا در شبکه های لوکال استفاده می شود.

NetBIOS از طریق 3 پورت پیش فرض  137 و 138 و 139 میتواند سه سرویس متفاوت شامل:

توزیع دیتاگرام (DGM) و نام (NS) و نشستها (SSN) را ارائه دهد.

از طریق TCP/IP و هم به صورت UCP و هم به صورت UDP انجام میشود. 

در این دوره به علاوه NetBIOS از برنامه SMB هم استفاده می شود که از شماره پورت های 139 و 445 استفاده می شود.

نحوه برطرف کردن این آسیب پذیری :

بهترین راه حل برای جلوگیری از این حفره امنیتی مسدود کردن پورت های 137 و 138 و 139 و 445 TCP و UDP می باشد.

همچنین پیشنهاد می شود از وصله به روزرسانی استفاده کنند.

بررسی حفره امنیتی mDNS :

در شبکه های کوچک که سرور نام محلی ندارند برای تبدیل آی پی آدرس ها از mDNS  استفاده می شود.

اینبرنامه از نظر ساختار بسته ها تفاوتی با DNS ندارد. همچنین این برنامه از پروتکل UDP و پورت 5353 و با آی پی های چند قسمتی مقابل استفاده می کند.

IPv4: 224.0.0.251

IPv6: FF02::FB

هنگامی که یک سیستم (کلاینت) برای ترجمه یک نام درخواستی ارسال میکند به صورت چند بخش در شبکه ارسال می شود.

و طبق این درخواست سیستمی که دارای نام موردظر باشد جستجو می شود

و هنگامی که آن سیستم پیدا شد یک آدرس آی پی به عنوان پاسخ  درخواست ما به صورت چند بخشی در شبکه ارسال می کند .

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

بررسی حفره امنیتی Open DNS Resolver :

نباید هیچ پاسخی به درخواست های Recursive توسط DNS Server ها ارسال شود.

فقط در صورتی که سرور مورد نظر به عنوان یک Recursive شناخته باشد.

که این موضوع معمولا در سرور ها مخصوصا سرور های میزبانی این گونه نیست.

مشکل کار همین جا است ما در مواقعی با روی سرور خود Recursive  را فعال نگه می داریم .

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

که در نتیجه باعث بروز حملاتی به سرور های دیگر  مانند Amplification می شوند.

پیشنهاد میکنم این سرویس را از روی سرور خود غیر فعال کنید.

آموزش غیر فعای کردن Recursive DNS در سرور لینوکسی :

ابتدا باید فایل config  را پیدا کنید (فایل مربوط به DNS Server) .این فایل معمولا در مسیر زیر وجود دارد :

/etc/named.conf<br />/var/named/chroot/etc/named.conf<br />/etc/bind/named.conf

در ادامه در فایل به دنبال عبارت recursion  بگردید و با تغییر کلمه yes به no آن را غیر فعال کنید:

;recursion no

در آخر برای ثبت تغییرات یک بار سرویس named را ریستارت کنید :

service named restart

امیدوارم این آموزش برای شما مفید واقع شود همراه همیشگی شما فراویر 🙂

 

 

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

پاسخی بگذارید

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