محمد لینوکس

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

محمد لینوکس

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

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

پنجمین نقطه آسیب پذیر :  :Clear Text Services
تعداد زیادی از سرویس های شبکه استفاده شده توسط سیستم های مبتنی بر یونیکس ، بصورت  plain text بوده و  از رمزنگاری خاصی استفاده نمی نمایند. ضعف در رمزنگاری ، امکان شنود اطلاعاتی ( مشاهده ترافیک شبکه )  را فراهم و مهاجمان در ادامه امکان دستیابی به محتویات ارتباط ایجاد شده و یا اطلاعات حساس کاربران نظیر داده های مرتبط با رمز عبور را بدست خواهند آورد.  مثلا" بمنظور تشخیص  اطلاعات مرتبط با FTP و یا telnet ( اطلاعات login ) ، یک مهاجم ، می تواند  یک  sniffer  را در شبکه  و در محلی بین مسیر ارتباطی، مستقر نماید (بعنوان سرویس دهنده FTP و یا یا Client LAN ) . تبادل اطلاعات بین دستورات ورودی توسط سرویس گیرندگان و پاسخ های ارائه شده توسط سرویس های موجود بر روی سرویس دهنده ، بصورت plain-text خواهد بود. بدین ترتیب ،امکان ردیابی ( رهگیری ) داده و یا کلیدهای فشرده شده توسط کاربر بسادگی فراهم می گردد. اغلب مهاجمان در حملات اخیر خود از برنامه های مختص شنود اطلاعاتی استفاده و عمدتا" اینگونه برنامه ها را  بر روی دستگاهها ی  آسییب پذیر نصب می نمایند. در چنین مواردی ، تشخیص نام و رمز عبور کاربر در داده های جمع آوری شده ( شنود اطلاعاتی ) ، بسادگی میسر خواهد شد.جدول زیر،  لیست برخی از سرویس های شبکه یونیکس را که اطلاعات را بصورت Clear Text  ، مبادله می نمایند ، نشان می دهد :

آیتم ارسالی

Clear Auth

Clear Content

پورت

سرویس

متن ، باینری

Yes Yes 21 , 20 FTP
متن ، باینری N/A Yes 69 TFTP
متن Yes Yes 23 telnet
متن ، باینری N/A Yes 25 SMTP
متن ، باینری Yes Yes 110 POP3
متن ، باینری Yes Yes 143 IMAP
متن Yes Yes 513 rlogin
متن Yes Yes 514 rsh
متن ، باینری Yes Yes 80 HTTP

سرویس هائی نظیر Telnet و FTP که شامل اطلاعات  مربوط به تائید هویت کاربران می باشند ، اطلاعات مورد نظر را بصورت متن  ارسال  که  بالاترین ریسک را بدنبال خواهد داشت . در چنین مواردی مهاجمان می توانند با استفاده مجدد از داده های حساس کاربران نظیر نام و رمز عبور، با خیال راحت ! به سیستم دستیابی نمایند .علاوه براین ، اجرای دستورات  بصورت clear text می تواند توسط مهاجمان استفاده تا با استفاده از آنان دستورات دلخواه خود را بدون الزامی برای تائید ، اجراء نمایند. سرویس های Clear text  ، می توانند زمینه تهدیدات مختلفی نظیر  :  تسهیل در انجام  حملات  ، دستیابی از راه دور ، اجرای دستورات بر روی یک سیستم مقصد ، شنود و تشخیص اطلاعات را بدنبال داشته باشد .

سیستم های عامل در معرض تهدید
تمامی  نمونه های یونیکس  ارائه شده ، از سرویس ها ی Clear text استفاده می نمایند. ( telnet و FTP دو نمونه متدواول در این زمینه می باشند ) . تمامی  نمونه نسخه های  ارائه شده یونیکس و  لینوکس ( تنها استنثاء در این  رابطه، مربوط به آخرین ویرایش  Free/OpenBSD  می باشد ) ، بصورت پیش فرض ، برخی از سرویس های فوق را نصب می نمایند .

نحوه تشخیص آسیب پذیری سیستم
موثرترین و مطمئن ترین روش بمنظور تشخیص نقطه آسیب پذیر فوق (سرویس های clear text )  ، بکارگیری  نرم افزاری مشابه با  ابزارهای استفاده شده (sniffer) توسط مهاجمان است. متداولترین برنامه موجود در این زمینه ،  tcpdump می باشد. برای دریافت برنامه "tcpdump " می توان از آدرس 
http://www.tcpdump.org/  ،  استفاده نمود . نحوه فعال نمودن برنامه فوق،بمنظور تشخیص هر گونه ارتباط clear text ،  بصورت زیر است :

  # tcpdump -X -s 1600

دراین راستا می توان از برنامه های دیگر نظیر : "ngrep" نیز استفاده نمود. برنامه فوق،امکان جستجوی الگوئی خاص نظیر "username " و یا " password " را در شبکه فراهم می نماید.  ( اولین حروف، بمنظور سازگاری با حروف بزرگ احتمالی ، در نظر گرفته نشده است ) . برای دریافت برنامه فوق ، می توان از آدرس    http://www.packetfactory.net/projects/ngrep/  استفاده نمود . نحوه فعال نمودن برنامه فوق ،  بصورت زیر است :

  # ngrep assword

در این رابطه می توان از ابزارهای متنوع  دیگری بمنظور تشخیص داده های حساس کاربران ( نام و رمز عبور )  استفاده نمود . Dsniff ، متداولترین ابزار در این زمینه است . برنامه فوق ، بررسی لازم در خصوص تمامی زوج نام و رمزعبور بر روی پروتکل های Plain text حجیم، نظیر FTP ، Telnet و POP3 را انجام و پس از تشخیص، آنان را نمایش خواهد داد. برای بدست آوردن برنامه فوق می توان از آدرس  http://www.monkey.org/~dugsong/dsniff/   استفاده نمود . نحوه فعال نمودن برنامه فوق ،  بصورت زیر است :

 # /usr/sbin/dsniff

نحوه حفاظت در مقابل نقطه آسیب پذیر 
استفاده از رمزنگاری End-To-End و یا حداقل رمزنگاری Link-level می تواند در این زمینه مفید واقع گردد. برخی پروتکل ها از لحاظ رمزنگاری معادل یکدیگر می باشند( نظیر : POP3S و HTTPS ) . برای پروتکل هائی که دارای قابلیت ها  و امکانات  , ذاتی رمزنگاری نمی باشند ، می توان آنان را از طریق  SSH : Secure Shell ، و یا  SSL connection انجام داد( tunneling ) .
OpenSSH یک نمونه پیاده سازی شده متداول و انعطاف پذیر ازSSH  است.( قابل دسترس در آدرس  
http://www.openssh.org/  ) . برنامه فوق، در اکثر نسخه های یونیکس اجراء و می توان از آن بمنظور ارتباطات از راه دور ( replaces telnet ,rlogin ,rsh ) و tunneling ( پروتکل هائی نظیر POP3,SMTP و X11 )   استفاده گردد .
دستور زیر نحوه tunnel نمودن POP3 را بر روی SSH connection  نشان می دهد. بر روی  سرویس دهنده POP3 ، می بایست سرویس دهنده SSH نیز اجراء گردد. در ابتدا آن را بر روی ماشین سرویس گیرنده اجراء می نمائیم :

# ssh -L 110:pop3.mail.server.com:110 username@pop3.mail.server.com

در ادامه ، برنامه سرویس گیرنده پست الکترونیکی را به localhost اشاره می دهیم ، پورت TCP 110  ( برخلاف روال معمول که بصورت : pop3.mail.server.com ، پورت 110 است )  . بدین ترتیب ، تمامی ارتباطات بین ماشین و سرویس دهنده پست الکترونیکی بصورت رمز شده انجام خواهد شد ( tunneled over SSH  ) .
یکی دیگر از راه حل های متداول رمزنگاری مبتنی بر tunneling ، استفاده از stunnel است . روش فوق ، پروتکل SSL را پیاده سازی( با استفاده از OpenSSL Toolkit ) و می توان آن را  بمنظور tunel نمودن پروتکل های متفاوت plain text بخدمت گرفت . برای دریافت برنامه فوق ، می توان از آدرس 
http://www.stunnel.org/  استفاده نمود.

ششمین نقطه آسیب پذیر : : Sendmail
Sendmail ، برنامه ای است که از آن بمنظور ارسال ، دریافت و فوروارد نمودن  نامه های الکترونیکی در اغلب سیستم های یونیکس و لینوکس استفاده می گردد. Sendmail ، یکی از متداولترین MTA : Mail Transfer Agent  در اینترنت بوده که بطور گسترده ای از آن بعنوان "آژانش توزیع نامه های الکترونیکی" بهمراه سرویس دهندگان پست الکترونیکی ، استفاده می گردد  . Sendmail ، یکی از اهداف اولیه مهاجمان  در سالیان اخیر بوده و تاکنون حملات متعددی را در ارتباط با آن شاهد بوده ایم. اکثر حملات انجام شده بدلیل قدیمی بودن  و یا عدم patch مناسب نسخه های نصب شده ، با موفقیت همراه بوده است .در این رابطه  می توان به چندین نمونه از حملات اخیر اشاره نمود :

- CERT Advisory CA-2003-12 Buffer Overflow in Sendmail 
- CERT Advisory CA-2003-07 Remote Buffer Overflow in Sendmail 
- CERT Advisory CA-2003-25 Buffer Overflow in Sendmail 

خطرات و تهدیدات مرتبط با Sendmail را می توان به دو گروه عمده  تقسیم نمود :  از دست رفتن امتیازات که علت  آن buffer overflow  خواهد بود و پیکربندی نادرست سیستم که می تواند تبعات منفی را بدنبال داشته باشد ( مثلا" تبدیل یک سیستم به مرکزی آلوده برای توزیع نامه های الکترونیکی ) .عامل اصلی در بروز تهدیدات نوع اول ، عمدتا" به استفاده از نسخه های قدیمی و یا عدم  patching مناسب سیستم برمی گردد.علت اصلی تهدیدات نوع دوم ، به استفاده از فایل های پیکربندی پیش فرض و نادرست برمی گردد .

سیستم های عامل در معرض تهدید
تقریبا" تمامی نسخه های لینوکس و یونیکس بهمراه یک نسخه نصب شده از Sendmail عرضه می گردند. سرویس فوق،  بصورت پیش فرض فعال می باشد .

نحوه تشخیص آسیب پذیری سیستم
Sendmail ، در گذشته دارای نقاط آسیب پذیر فراوانی بوده که بتدریج  وبا ارائه نسخه های جدیدتر و patch های مربوطه ، میزان  آسیب پذیری آن کاهش یافته است .هر نسخه قدیمی و یا Patch نشده نرم فزار فوق در معرض آسیب قرار خواهد داشت . بمنطور مشخص نمودن شماره نسخه برنامه sendmail ، می توان از دستور زیر استفاده نمود :

echo \$Z | /usr/lib/sendmail -bt -d0
 

مسیر مشخص شده sendmail  در دستور فوق ، با توجه به پیکربندی سیستم ، می تواند متفاوت باشد. برای آگاهی از آخرین نسخه ارائه شده Sendmail می توان از آدرس  http://www.sendmail.org/current-release.html  استفاده نمود .

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

  •  نسخه موجود را به آخرین نسخه ارتقاء و از آخرین patch های موجود ، استفاده گردد . برای دریافت source code می توان از آدرس http://www.sendmail.org/  استفاده نمود. در صورتیکه نسخه sendmail بهمراه سیستم عامل ارائه شده است  ( یک Package ) ، می توان برای دریافت patch مربوطه به سایت عرضه کنندگان سیستم عامل مراجعه نمود.

  • برنامه sendmail عموما" بصورت پیش فرض در اکثر سیستم های یونیکس و لینوکس ( حتی آنانی که بعنوان سرویس دهنده mail  مورد نظر نبوده و فعالیت آنان در ارتباط با  mail نخواهد بود) نصب می گردد. برنامه Sendmail را در حالت daemon بر روی ماشین های فوق ، اجراء ننمائید ( غیر فعال نمودن سوئیچ  bd -  ) . امکان ارسال نامه الکترونیکی توسط سیستم های فوق ، همچنان وجود خواهد داشت . در این رابطه می بایست پیکربندی سیستم بگونه ای انجام شود که به یک mail relay در فایل پیکربندی sendmail ، اشاره گردد.فایل پیکربندی،  sendmail.cf نام داشته و معمولا" در آدرس  etc/mail/sendmail.cf  قرار دارد .

  • در صورتیکه  لازم است sendmail در حالت daemon اجراء گردد، می بایست از صحت پیکربندی انجام شده اطمینان حاصل گردد. در این رابطه می توان از منابع اطلاعاتی زیر استفاده نمود :
    http://www.sendmail.org/tips/relaying.html 
    http://www.sendmail.org/m4/anti_spam.html 
    در نسخه  Sendmail 8.9.0 ، امکان open relay  بصورت پیش فرض غیرفعال می باشد.تعداد زیادی از عرضه کنندگان سیستم های عامل ، مجددا" آن رادر پیکربندی پیش فرض خود فعال می نمایند. در صورت استفاده از نسخه  Sendmail  ارائه شده بهمراه سیستم عامل ، می بایست دقت لازم در اینخصوص را انجام داد ( عدم استفاده سرویس دهنده برای  realying  ).
     

  • در زمان استفاده از نسخه جدید sendmail ( سوئیچ نمودن به یک نسخه دیگر ) ،  لازم است تدابیر لازم در خصوص تغییر فایل های پیکربندی ارائه شده توسط نسخه قدیمی ، اندیشیده گردد . برای آگاهی از جزئیات  بیشتر در ارتباط با پیکربندی Sendmail ، می توان از آدرس http://www.sendmail.org/m4/readme.html  استفاده نمود.

  •  در مواردیکه برنامه  Sendmail  از منابع موجود بر روی اینترنت Download  می گردد ، می بایست  بمنظور اطمینان از مجاز بودن نسخه تکثیری  از  PGP signature  استفاده نمود. در این رابطه لازم است به این نکته دقت شود که بدون بررسی integrity مربوطه به source code  برنامه Sendmail ، نمی بایست از آن استفاده شود. در گذشته ، نسخه هائی از Trojan ها در Sendmail  مستقر تا در زمان مناسب حرکت مخرب خود را آغاز نمایند .   بمنظور دریافت اطلاعات تکمیلی در این رابطه می توان از آدرس   CERT Advisory CA-2002-28  استفاده نمود. کلیدهای استفاده شده بمنظور sign نمودن برنامه Sendmail دریافتی را می توان از آدرس http://www.sendmail.org/ftp/PGPKEYS   بدست آورد . در صورت فقدان  PGP ، می بایست از MD5 Checksum بمنظور بررسی integrity  کد منبع Sendmail ، استفاده گردد.

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

http://www.sendmail.org/secure-install.html
http://www.sendmail.org/m4/security_notes.html
http://www.sendmail.org/~gshapiro/security.pdf 
 

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