دومین نقطه آسیب پذیر : ( Remote Procedure Calls (RPC
با استفاده از RPC برنامه های موجود بر روی یک کامپیوتر قادر به اجرای روتین هائی در کامپیوتر دوم از طریق ارسال داده و بازیابی نتایج می باشند . با توجه به جایگاه عملیاتی RPC ، استفاده از آن بسیار متداول بوده و درموارد متعددی از آن بمنظور ارائه سرویس های توزیع شده شبکه نظیر مدیریت از راه دور ، اشتراک فایل NFS و NIS استفاده می گردد.وجود ضعف های امنیتی متعدد در RPC باعث بهره برداری مهاجمان بمنظور انجام حملات مختلفی شده است .دراکثر موارد ، سرویس های RPC با مجوزهای بیش از حد معمول ، اجراء می گردند . بدین ترتیب یک مهاجم غیر مجاز قادر به استفاده از سیستم های آسیب پذیر در جهت اهداف خود خواهد بود.اکثر حملات از نوع DoS در سال 1999 و اوایل سال 2000 در ارتباط با سیستم هائی بود که دارای ضعف امنیـتی و نقظه آسیب پذیر RPC بودند. مثلا" حملات گشترده و موفقیت آمیز در رابطه با سیستم های نظامی امریکا ، بدلیل نقطه آسیب پذیر RPC کشف شده در صدها دستگاه کامپیوتر مربوط به وزارت دفاع امریکا بوده است . اخیرا" نیز وجود یک ضعف امنیتی DCOM RPC در ویندوز ، باعث انتشار گسترده یک کرم در سطح اینترنت گردید .
سیستم های عامل در معرض تهدید :
تمامی نسخه های یونیکس و لینوکس که بر روی آنان سرویس های RPC نصب شده است در معرض این آسیب می باشند .
نحوه تشخیص آسیب پذیری سیستم
با استفاده از یک پویشگر نقاط آسیب پذیر و یا دستور " rpcinfo" ، می توان از اجراء یکی از سرویس های متداول RPC بر روی سیستم آگاه گرید :
RPC Service |
RPC Program Number |
rpc.ttdbserverd |
100083 |
rpc.cmsd |
100068 |
rpc.statd |
100024 |
rpc.mountd |
100005 |
sadmind |
100232 |
cachefsd |
100235 |
snmpXdmid |
100249 |
سرویس های RPC ، عموما" از طریق حملات buffer Overflow ، مورد سوء استفاده قرار می گیرند .علت این امر ، عدم انجام بررسی لازم و کافی در خصوص خطاها و یا اعتبار داده های ورودی توسط برنامه های RPC است . نقاط آسیب پذیر Buffer overflow ، این امکان را برای یک مهاجم فراهم می نماید که داده غیر قابل پیش بینی را ( اغلب بصورت کد مخرب ) به درون حافظه برنامه ، ارسال نماید . با توجه به ضعف موجود در رابطه با بررسی خطاء و صحت داده ، داده ارسالی مکان هائی حساس و کلیدی که مورد استفاده پردازنده می باشند را بازنویسی می نماید.در یک تهاجم موفقیت آمیز Overflow ، کد مخرب ارسالی ،در ادامه توسط سیستم عامل اجراء می گردد . با توجه به اینکه تعداد زیادی از سرویس های RPC ، با مجوزهای بیش از حد معمول ، اجراء می گردند ، استفاده موفقیت آمیز از نقاط آسیب پذیر فوق می تواند امکان دسـیابی غیر مجاز و از راه دور را به سیستم فراهم می نماید.
نحوه حفاظت در مقابل نقطه آسیب پذیر
بمنظور حفاظت سیستم در مقابل حملات مبتنی بر RPC ، موارد زیر پیشنهاد می گردد :
- غیر فعال نمودن و یا حذف هر یک از سرویس های RPC که ضرورتی به استفاده از آن بر روی شبکه نمی باشد .
- نصب آخرین Patch ارائه شده در رابطه با سرویس هائی که امکان حذف آنان وجود ندارد:
- برای نرم افزار سولاریس از آدرس ( http://sunsolve.sun.com ) استفاده گردد.
- برای IBM AIX از آدرس : http://www.ibm.com/support/us و http://techsupport.services.ibm.com/server/fixes استفاده گردد.
- برای نرم افزار SGI از آدرس : http://support.sgi.com استفاده گردد .
- برای کامپک ( Digital Unix ) از آدرس http://www.compaq.com/support
- برای لینوکس از آدرس : http://www.redhat.com/apps/support/errata و http://www.debian.org./security استفاده گردد .
- عملیات جستجو بمنظور آگاهی و نصب آخرین Patch مربوطه می بایست بصورت مستمر انجام شود.
- پورت 111 ( TCP و UDP ) مربوط به RPC portmapper و پورت 135 ( TCP و UDP ) مربوط به Windows RPC را در سطح روتر و یا فایروال بلاک نمائید .
- پورت های Loopback 32770 ، 32789 مربوط بهTCP و UDP را بلاک نمائید .
- فعال نمودن یک پشته غیراجرائی بر روی سیستم های عاملی که از ویژگی فوق ، حمایت می نمایند. استفاده از یک پشته غیراجرائی ، لایه ای حفاظتی در مقابل تمامی حملات Buffer overflows نبوده ولی می تواند عاملی موثر در جهت مقابله با برخی از حملات استاندارد گردد.
- در ارتباط با سیستم های فایل NFS صادراتی ، مراحل زیر می بایست دنبال گردد :
- استفاده از میزبان / IP مبتنی بر لیست های صادراتی
- پیکربندی سیستم های فایل صادراتی بصورت فقط خواندنی
- استفاده از "nfsbug" برای پویش نقاط آسیب پذیر
برای اخذ اطلاعات تکمیلی در رابطه با نقاط آسیب پذیر RPC ، می توان از آدرس های زیر استفاده نمود :