مهمترين نقاط آسيب پذير يونيکس و لينوکس ( بخش چهارم ) مهمترين نقاط آسيب پذير يونيکس و لينوکس ( بخش چهارم )

در بخش چهارم اين مقاله به بررسی نقاط آسيب پذير ( Simple Network Management Protocol (SNMP و ( Secure Shell (SSH ، خواهيم پرداخت .
هفتمين نقطه آسيب پذير : ( Simple Network Management Protocol (SNMP
از پروتکل SNMP بمنظور کنترل ، مانيتورينگ از راه دور و پيکربندی تمامی دستگاه های پيشرفته مبتنی بر TCP/IP در ابعاد گسترده ای استفاده می شود.با اينکه استفاده از SNMP در بين پلات فرم های متفاوت شبکه استفاده می گردد، ولی در اغلب موارد از آن بمنظور پيکربندی و مديريت دستگاههائی نظير چاپگر ، روترها ، سوئيچ ها ، Access point ها و دريافت داده های مورد نياز دستگاههای مانيتورينگ شبکه ، استفاده می شود .
SNMP ، از روش های متفاوتی بمنظور مبادله پيام بين ايستگاههای مديريت SNMP و دستگاههای شبکه ای استفاده می نمايد . روش های استفاده شده بمنظور برخورد با پيام های مبادله شده و مکانيزم تائيد و معتبر سازی پيا م ها، از جمله عوامل اصلی در رابطه با نقاط آسيب پذير SNMP می باشند .
نقاط آسيب پذير مرتبط با روش های استفاده شده در SNMP ( نسخه يک ) بهمراه جزئيات مربوطه را می توان در آدرس CERT - 2002 - 03 ، مشاهده نمود . نقاط آسيب پذير متعددی در SNMP متاثر از روش برخورد با پيام ها توسط ايستگاه های مديريتی است . نقاط آسيب پذير فوق، به نسخه ای خاص از SNMP محدود نبوده و محصولات متعدد ارائه شده توسط توليد کنندگان را نيز شامل می گردد . مهاجمان با استفاده از نقاط آسيب پذير فوق ، قادر به انجام حملات متفاوت از نوع DoS ( از کار افتادن يک سرويس ) تا پيکربندی و مديريت ناخواسته ماشين آلات و تجهيزات مبتنی بر SNMP ، می باشند .
برخی از نقاط آسيب پذير در ارتباط با SNMP متاثر از روش های استفاده شده بمنظور تائيد و معتبر سازی پيام ها در نسخه های قديمی SNMP است ( توارث مشکلات ) . نسخه های يک و دو SNMP ، از يک " رشته مشترک " غيررمز شده بعنوان تنها گزينه موجود برای تائيد پيام ها استفاده می نمايند . عدم استفاده از روش های مناسب رمزنگاری ، می تواند عاملی مهم در پيدايش نقاط آسيب پذير باشد. نگرش پيش فرض نسبت به " رشته مشترک " که توسط تعداد زيادی از دستگاههای SNMP استفاده می گردد ، از ذيگر عوامل مهم در ارتباط با عرضه نقاط آسيب پذير است( برخی از توليد کنندگان بمنظور افزايش سطح ايمنی مربوط به داده های حساس ، رشته را بصورت "اختصاصی " تغيير و استفاده می نمايند ) . شنود اطلاعاتی و ترافيک SNMP ، می تواند افشاء اطلاعات و ساختار شبکه ( سيستم ها و دستگاههای متصل شده به آن ) را بدنبال داشته باشد . مهاجمين با استفاده از اطلاعات فوق ، قادر به انتخاب مناسب و دقيق هدف خود بمنظور برنامه ريزی حملات خود می باشند .
اکثر توليد کنندگان بصورت پيش فرض نسخه يک SNMP را فعال و تعدادی ديگر، محصولاتی را ارائه می نمايند که قادر به استفاده ازمدل های امنيتی نسخه شماره سه SNMP نمی باشند. ( با استفاده از مدل های امنيـی ارائه شده در نسخه شماره سه SNMP ، می توان پيکربندی لازم در خصوص روش های تائيد را بهبود بخشيد ) .
SNMP ، مختص يونيکس نمی باشد و در ابعاد وسيعی در ويندوز ، در تجهيزات شبکه ای ، در چاپگرها ، access point ها و Bridges ، استفاده می گردد. با توجه به نتايج حاصل از آناليز حملات مبتنی بر SNMP ، مشخص شده است که اکثر حملات در اين رابطه بدليل ضعف در پيکربندی SNMP در سيستم های يونيکس است .

سيستم های عامل در معرض تهديد
تقريبا" بر روی تمامی سيستم های يونيکس و لينوکس يک نسخه SNMP نصب و بهمراه آن عرضه می گردند. در اغلب موارد پروتکل فوق ، بصورت پيش فرض فعال می باشد. اکثر دستگاه ها و سيستم های عامل شبکه ای مبتنی بر SNMP دارای نقطه آسيب پذير فوق بوده و در معرض تهديد قرار خواهند داشت .

نحوه تشخيص آسيب پذيری سيستم
بمنظور بررسی نصب SNMP بر روی دستگاههای موجود و متصل شده در شبکه ، می توان از يک برنامه کمکی و يا روش دستی استفاده نمود. برنامه پويشگر SNScan ، نمونه ای در اين زمينه بوده که می توان آن را از طريق آدرس Foundstone - A division of McAfee دريافت نمود. در موارديکه امکان استفاده از ابزارهای پويشگر وجود ندارد ، می توان بررسی لازم در خصوص نصب و اجراء SNMP را بصورت دستی انجام داد. در اين راستا می توان به مستندات سيستم عامل مربوطه مراجعه تا پس از آگاهی از نحوه پياده سازی SNMP ، عمليات لازم بمنظور تشخيص فعال بودن SNMP را انجام داد . در اين رابطه می توان ، جستجوی لازم در ليست پردازه ها برای يافتن "snmp" در حال اجراء بر روی پورت های 161 و 162 را انجام داد . وجود صرفا " يک نمونه SNMP ، دليلی بر آسيب پذيری سيستم است . بمنظور آگاهی از جزيئات لازم در اينخصوص می توان از آدرس CERT - 2002 - 03 استفاده نمود . در صورت تحقق يکی از شرايط زير و نصب SNMP ، سيستم در معرض آسيب و تهديد قرار خواهد داشت :

  • وجود اسامی SNMP Community پيش فرض و يا خالی ( اسامی استفاده شده بعنوان رمزهای عبور )
  • وجود اسامی SNMP Community قابل حدس
  • وجود رشته های مخفی SNMP Community

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

  • غير فعال نمودن SNMP در صورت عدم ضرورت استفاده از آن
  • استفاده از يک مدل امنيتی مبتنی بر کاربر SNMPv3 ، بمنظور تائيد پيام ها و رمزنگاری داده ها ( در صورت امکان )
  • در صورت استفاده از SNMP نسخه يک و يا دو ، می بايست آخرين نسخه Patch ارائه شده توسط توليد کننده ، نصب گردد برای آگاهی از مشخصات توليدکننگان، می توان به بخش ضميمه CERT Advisory CA-2002-03 ، مراجعه نمود .
  • SNMP را در گلوگاه های ورودی شبکه فيلتر نمائيد ( پورت 161 مربوط به TCP/UDP و پورت 162 مربوطه به TCP/UDP ) . عمليات فوق را در موارديکه ضرورتی به مديريت دستگاهها بصورت خارجی وجود ندارد ، می بايست انجام داد .
  • از کنترل دستيابی مبتنی بر ميزبان بر روی سيستم های SNMP agent استفاده گردد . ويژگی فوق ممکن است توسط SNMP agent سيستم های عامل دارای محدوديت هائی باشد ، ولی می توان کنترل لازم در خصوص پذيرش درخواست ها توسط agent مربوطه را انجام داد. در اکثر سيستم های يونيکس ، می توان عمليات فوق را توسط يک TCP-Wrapper و يا پيکربندی Xined انجام داد . استفاده از يک فايروال فيلترينگ بسته های اطلاعاتی مبتنی بر agent بر روی يک ميزبان نيز می تواند در بلاک نمودن درخواست های ناخواسته SNMP موثر واقع شود .

حفاظت در مقابل رشته های قابل حدس

  • غير فعال نمودن SNMP در صورت عدم ضرورت استفاده از آن
  • استفاده از يک مدل امنيتی مبتنی بر کاربر SNMPv3 ، بمنظور تائيد پيام ها و رمزنگاری داده ها ( در صورت امکان )
  • در صورت استفاده از SNMP نسخه يک و يا دو ، می بايست از يک سياست خاص بمنظور اسامی community ( استفاده شده بعنوان رمزهای عبور ) استفاده گردد. در اين راستا لازم است اسامی بگونه ای انتخاب گردند که غير قابل حدس بوده و بصورت ادواری و در محدوده های خاص زمانی نيز تغيير داده شوند .
  • با استفاده از امکانات موجود می بايست بررسی لازم در خصوص استحکام اسامی در نظر گرفته شده برای رمزهای عبور راانجام داد.در اين رابطه می توان از خودآموز و ابزار ارائه شده در آدرس SANS Institute - Intrusion Detection FAQ: Using SNMP for Reconnaissance ، استفاده کرد.
  • SNMP را در گلوگاه های ورودی شبکه فيلتر نمائيد ( پورت 161 مربوط به TCP/UDP و پورت 162 مربوطه به TCP/UDP ) . عمليات فوق را در موارديکه ضرورتی به مديريت دستگاهها بصورت خارجی وجود ندارد ، می بايست انجام داد . پيکربندی فيلترينگ را صرفا" بمنظور ترافيک مجاز SNMP بين subnet های مميزی شده ، انجام دهيد.


هشتمين نقطه آسيب پذير : :( Secure Shell (SSH
SSH ، يک سرويس عمومی برای ايمن سازی Login ، اجرای دستورات و ارسال فايل در يک شبکه است .اکثر سيستم های مبتنی بر يونيکس از بسته نرم افزاری OpenSSH ( نسخه فوق بصورت open-source است ) و يا نسخه تجاری SSH Communication Security ، استفاده می نمايند . با اينکه SSH دارای ايمنی مناسبتری نسبت به telnet,ftp و برنامه های R-Command می باشد ، ولی همچنان در هر دو نسخه اشاره شده ، ضعف های امنيتی متعددی وجود دارد . اکثر ضعف های موجود صرفا" اشکالات جزئی بوده و تعداد اندکی از آنان ، حائز اهميت بوده و می بايست بلافاصله نسبت به برطرف نموودن آنان اقدام گردد . مهمترين تهديد مرتبط با ضعف های امنيتی SSH ، امکان دستيابی (سطح ريشه) به ماشين آسيب پذير توسط مهاجمان است . با توجه به رشد چشمگير استفاده از سرويس گيرندگان و سرويس دهندگان SSH در محيط های ويندوز، اکثر اطلاعات ارائه شده در رابطه با نقطه آسيب پذير فوق ، به نسخه های پياده سازی شده SSH در ويندوز و nix * ( يونيکس ، لينوکس ) بر می گردد .عدم مديريت مناسب SSH ، خصوصا" در ارتباط با پيکربندی و بکارگيری patch ها و بهنگام سازی لازم ، می تواند مسائل و مشکلات خاص خود را بدنبال داشته باشد .
SSH2 ، ابزاری قدرتمند
تعداد زيادی از نقاط آسيیب پذير تشخيص داده شده در پروتکل هائی نظير POP3 ( جايگزين با SSH2 SFTP ) ، برنامه Telnet ، سرويس HTTP , و ابزارهای مبتنی بر rhost ( نظير : روش های تائيد ,rsh , rlogin ,rcp ) باعث ارسال اطلاعات بصورت clear text و يا عدم پردازش مناسب session های سرويس گيرنده - سرويس دهنده می گردد. پروتکل SSH1 ، دارای پتانسيل آسيب پذيری بالائی خصوصا" در ارتباط با session موقتی رمزنشده می باشد . بدين دليل مديران سيستم و شبکه ، استفاده از پروتکل SSH2 را گزينه ای شايسته در اينخصوص می دانند( در موارديکه امکان آن وجود دارد) . لازم است به اين نکته مهم اشاره گردد که SSH1 و SSH2 با يکديگر سازگار نبوده و لازم است نسخه SSH بر روی سرويس گيرنده و سرويس دهنده يکسان باشند (در اين رابطه موارد استثنا ء نيز وجود دارد ) .
کاربران OpenSSH می بايست به اين نکته توجه نمايند که کتابخانه های OpenSSH در مقابل پتانسيل های ايجاد شده توسط OpenSSH ، دارای نرم افزارهای آسيب پذير مختص خود می باشند. بمنظور آگاهی از جزئيات مربوطه ، می توان از آدرس CERT Advisory 2002-23 استفاده نمود .در سال 2002 يک نسخه آلوده از OpenSSH ( نسخه فوق دارای يک trojan-horse بود ) در زمان کوتاهی گسترش و باعث آسيب های فراوانی گرديد. بمنظور کسب اطلاعات بيشتر در اين رابطه و اطمينان از عدم آسيب پذيری سيستم خود در مقابل نسخه آلوده فوق ، می توان از آدرس http://www.openssh.org/txt/trojan.adv استفاده نمود .

سيستم های عامل در معرض تهديد
هر نسخه يونيکس و يا لينوکس که بر روی آن OpenSSH 3.3 و يا بعد از آن ( نسخه ارائه شده در سال 2003 ،version 3.6.1) و يا SSH Communication Security's SSH 3.0.0 و يا بعد از آن ( نسخه ارائه شده در سال 2003 شماره version 3.5.2 ) نصب واجراء می گردد ، در معرض اين آسيب قرار خواهد داشت .

نحوه تشخيص آسيب پذيری سيستم
با استفاده از يک پويشگر مناسب ، می توان بررسی لازم در خصوص آسيب پذيری يک نسخه را انجام داد . در اين رابطه می توان با اجرای دستور " ssh -V " ، از شماره نسخه نصب شده بر روی سيستم آگاه گرديد. ScanSSH ، ابزاری مفيد بمنظور تشخيص از راه دور سرويس دهندگان SSH آسيب پذير بدليل عدم Patching ، می باشد. دستور خطی ScanSSH ، ليستی از آدرس های شبکه را برای سرويس دهندگان پويش و گزارشی در ارتباط با شماره نسخه های آنان را ارائه می نمايد . آخرين نسخهScanSSH که در سال 2001 ارائه شده است را می توان از آدرس http://www.monkey.org/~provos/scanssh دريافت نمود .

نحوه حفاظت در مقابل نقطه آسيب پذير
بمنظور حفاظت در مقابل نقطه آسيب پذير فوق ، موارد زير پيشنهاد می گردد :

  • نسخه SSH و يا OpenSSH را به آخرين نسخه موجود ارتقاء دهيد . درصورتيکه SSH و يا OpenSSH بهمراه سيستم عامل ، نصب شده باشد ، می بايست آخرين Patchمربوطه را از سايت ارائه دهنده سيستم عامل دريافت و آن را برروی سيستم نصب نمود. در صورت استفاده از OpenSSL ، از نصب آخرين نسخه آن مطمئن شويد .
  • حتی المقدور سعی گردد، نسخه SSH1 به SSH2 ارتقاء يابد .در رابطه با توسعه SSH1 در آينده تصميم خاصی وجود نداشته و توسعه SSH2 مورد نظر می باشد .
  • دو نسخه پياده سازی شده SSH ، دارای مجموعه ای از گزينه های انتخابی بوده که مديران سيستم با استفاده از آنان و با توجه به سياست های موجود می توانند پيکربندی مناسبی در اينخصوص را انجام دهند. امکان محدوديت در دستيابی به ماشين مورد نظر و اتصال به آن ، روش های تائيد کاربران و ماهيت کاربران مجاز ، نمونه هائی از گزينه های انتخابی بوده که می توان از آنان بمنظور پيکربندی مطلوب استفاده گردد.
  • پيکربندی مناسب سرويس گيرندگان SSH در زمان اتصال به سرويس دهنده ای که SSH را حمايت نمی نمايد . در چنين مواردی سرويس گيرنده ممکن است به عقب برگشته و استفاده از rsh را در اين رابطه مفيد تشخيص دهد . بمنظور پيشگيری از مواردی اينچنين می بايست به کليد FallBackToRsh در فايل پيکربندی SSH ، مقدار NO را نسبت داد .
  • از رمزنگاری blowfish در مقابل 3DES استفاده گردد (روش 3DES ، ممکن است بصورت پيش فرض در نسخه مربوطه در نظر گرفته شده باشد ). بدين ترتيب علاوه بر افزايش سرعت در عمليات ، رمزنگاری انجام شده نيز از استحکام مناسبی برخوردار خواهد بود.

در بخش پنجم اين مقاله به بررسی ساير نقاط آسيب پذير يونيکس و لينوکس خواهيم پرداخت .