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


در بخش سوم اين مقاله به بررسی نقاط آسيب پذير سرويس های Clear Text و Sendmail ، خواهيم پرداخت .
پنجمين نقطه آسيب پذير : :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" نيز استفاده نمود. برنامه فوق،امکان جستجوی الگوئی خاص نظير "sername " و يا " assword " را در شبکه فراهم می نمايد. ( اولين حروف، بمنظور سازگاری با حروف بزرگ احتمالی ، در نظر گرفته نشده است ) . برای دريافت برنامه فوق ، می توان از آدرس 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 مناسب نسخه های نصب شده ، با موفقيت همراه بوده است .در اين رابطه می توان به چندين نمونه از حملات اخير اشاره نمود :

خطرات و تهديدات مرتبط با 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 اجراء گردد، می بايست از صحت پيکربندی انجام شده اطمينان حاصل گردد. در اين رابطه می توان از منابع اطلاعاتی زير استفاده نمود :
    Controlling SMTP Relaying - Tips - sendmail.org
    Sendmail cf/README - Anti-Spam Configuration Control
    در نسخه Sendmail 8.9.0 ، امکان open relay بصورت پيش فرض غيرفعال می باشد.تعداد زيادی از عرضه کنندگان سيستم های عامل ، مجددا" آن رادر پيکربندی پيش فرض خود فعال می نمايند. در صورت استفاده از نسخه Sendmail ارائه شده بهمراه سيستم عامل ، می بايست دقت لازم در اينخصوص را انجام داد ( عدم استفاده سرويس دهنده برای realying ).
  • در زمان استفاده از نسخه جديد sendmail ( سوئيچ نمودن به يک نسخه ديگر ) ، لازم است تدابير لازم در خصوص تغيير فايل های پيکربندی ارائه شده توسط نسخه قديمی ، انديشيده گردد . برای آگاهی از جزئيات بيشتر در ارتباط با پيکربندی Sendmail ، می توان از آدرس Sendmail 8.12.11 cf/README - Sendmail Configuration Files استفاده نمود.
  • در موارديکه برنامه 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 ، استفاده گردد.

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