محمد لینوکس

همه چیز به غیر از لینوکس!

محمد لینوکس

همه چیز به غیر از لینوکس!

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

هفتمین نقطه آسیب پذیر : ( 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 ، نمونه ای در این زمینه بوده که می توان آن را از طریق آدرس 
http://www.foundstone.com/knowledge/free_tools.html  دریافت نمود. در مواردیکه امکان استفاده از ابزارهای  پویشگر وجود ندارد ، می توان بررسی لازم در خصوص نصب و اجراء 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 ( استفاده شده بعنوان رمزهای عبور ) استفاده گردد. در این راستا لازم است اسامی بگونه ای انتخاب گردند که  غیر قابل حدس بوده و بصورت ادواری و در محدوده های خاص زمانی نیز تغییر داده شوند .

  • با استفاده از امکانات موجود می بایست بررسی لازم در خصوص  استحکام اسامی در نظر گرفته شده برای رمزهای عبور راانجام داد.در این رابطه می توان از خودآموز و ابزار ارائه شده در آدرس  http://www.sans.org/resources/idfaq/snmp.php  ، استفاده کرد.

  • 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 ، ممکن است بصورت پیش فرض در نسخه مربوطه در نظر گرفته شده باشد ). بدین ترتیب علاوه بر افزایش سرعت در عملیات ، رمزنگاری انجام شده نیز از استحکام مناسبی برخوردار خواهد بود.

نظرات 0 + ارسال نظر
برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد