TCP/IP یکی از پروتکل های مطرح در عرصه شبکه های کامپیوتری است که از چهار لایه متفاوت فیزیکی ، شبکه ، حمل و کاربرد تشکیل شده است . شکل زیر ارتباط پروتکل چهار لایه ای TCP/IP و مدل مرجع OSI هفت لایه ای را نشان می دهد :
هر لایه دارای مکانیزم های امنیتی ، پروتکل ها و برنامه های مختص به خود می باشد . در ادامه به برخی از امکانات امنیتی متداول و مرتبط با هر یک از لایه های پروتکل TCP/IP اشاره می گردد :
لایه فیزیکی : معادل لایه های اول و دوم مدل مرجع OSI
Packet Filters ، به منظور استقرار بین یک شبکه داخلی و یک شبکه خارجی طراحی می گردند. برای برخورد مناسب ( ارسال ، نپذیرفتن ، حذف ) با بسته های اطلاعاتی ورودی و یا خروجی از یک شبکه از مجموعه قوانین تعریف شده خاصی استفاده می گردد . ACL ( برگرفته از Access Control List ) روتر ، نمونه ای از یک Packet Filter می باشد .
NAT ، ( برگرفته از Network Address Translation ) ، مکانیزمی برای ترجمه آدرس است . اکثر کاربران اینترنت با سرعت بالا از NAT استفاده می نمایند . تکنولوژی فوق به منظور تامین امنیت کاربران ، آدرس داخلی آنان را از دید شبکه های خارجی مخفی نگه می دارد .
CHAP ( برگرفته از Challenge Handshake Authentication Protocol ) ، یک پروتکل "تائید" است که از آن به عنوان گزینه ای جایگزین در مقابل ارسال معمولی و رمز نشده نام و رمز عبور استفاده می گردد . پروتکل فوق از الگوریتم MD5 برای رمزنگاری رمزهای عبور استفاده می نماید .
PAP ( برگرفته از Password Authentication Protocol ) . پروتکل فوق ، به عنوان بهترین گزینه امنیتی در لایه فیزیکی مطرح نمی باشد و با ارائه امکاناتی کاربران را ملزم به درج نام و رمز عبور می نماید . اطلاعات درج شده توسط کاربران به صورت متن معمولی ( رمز نشده ) ارسال می گردد ( مهمترین محدودیت پروتکل PAP ) .
لایه شبکه : معادل لایه سوم مدل مرجع OSI
PPTP ( برگرفته از Point to Point Tunneling Protocol ) توسط کنسرسیومی متشکل از مایکروسافت و 3com پیاده سازی و هدف آن ارائه امکانات لازم به منظور کپسوله سازی داده می باشد . امنیت لازم برای PPTP توسط رمزنگاری Point-to-point مایکروسافت ارائه شده است .
L2TP : پروتکل VPN فوق به منظور امنیت و بر اساس پروتکل های PPTP و L2F پیاده سازی شده است .
IPsec : از پروتکل فوق به منظور حفاظت بسته های اطلاعاتی IP و دفاع در مقابل حملات شبکه ای استفاده می گردد . IPsec از پروتکل های امنیتی و مدیریت کلید پویا استفاده نموده و دارای دو پیکربندی پایه AH ( برگرفته از Authenticated Header ) و ESP ( برگرفته از Encapsulated Secure Payload ) می باشد .
لایه حمل : معادل لایه های چهارم و پنجم مدل مرجع OSI
SSL ( برگرفته از Secure Sockets Layer ) ، پروتکلی است که با استفاده از آن به کابران این اطمینان داده می شود که به صورت ایمن اقدام به مبادله اطلاعات بر روی شبکه ( نظیر اینترنت ) نمایند .
TLS ( برگرفته از Transport Layer Security ) ، پروتکلی مشابه پروتکل SSL است و از یک رویکرد لایه ای به منظور امنیت داده استفاده می نماید . TLS از چندین پروتکل زیر مجموعه دیگر تشکیل می گردد .
لایه کاربرد : برخی از وظایف لایه پنجم و معادل لایه های ششم و هفتم مدل مرجع OSI
RADIUS ( برگرفته از Remote Authentication Dial-In User Service ) متداولترین پروتکل تائید کاربران dialup در دنیای شبکه های کامپیوتری است . پروتکل فوق امکانات لازم برای تائید و اعطای مجوز لازم به کابران dialup شبکه های کامپیوتری را فراهم می نماید .
TACACS ( برگرفته از Terminal Access Controller Access Control System ) ، یک پروتکل "تائید" قدیمی در شبکه های مبتنی بر سیستم عامل یونیکس است که این امکان را برای یک سرویس دهنده راه دور فراهم می نماید تا رمز عبور درج شده توسط کاربران را به یک سرویس دهنده تائید شده هدایت تا صلاحیت آنان برای استفاده از یک سیستم بررسی گردد .
Kerberos توسط MIT و به عنوان یک پروتکل تائید قدرتمند پیاده سازی شده است . پروتکل فوق برای تائید مجوز کاربران در ارتباط با اشیاء متفاوت از tickets استفاده می نماید . Kerberos ، امکانات لازم به منظور رمزنگاری ، پیوستگی داده و محرمانگی را ارائه می نماید .
S-MIME ( برگرفته از Secure / Multipurpose Internet Mail Extensions ) ، پروتکلی به منظور ایمن سازی نامه های الکترونیکی است . پروتکل فوق با بهره گیری از امکاناتی نظیر رمزنگاری و امضاء دیجیتال ، امنیت نامه های الکترونیکی را تضمین می نماید .
کارشناسان امینت اطلاعات بر این عقیده هستند که چون نمی توان یک شبکه و یا host را صرفا" با استفاده از امکانات امنیتی یک لایه صددرصد ایمن نمود ، می بایست از رویکرد "دفاع در عمق " و یا امنیت لایه ای ( layered security ) استفاده نمود . ایده "دفاع در عمق" می تواند بطرز قابل توجهی کاهش حملات موفقیت آمیز را به دنبال داشته باشد .
تشخیص Packet Sniffing در یک شبکه
همه روزه شاهد ابداع فن آوری های جدیدی در عرصه دنیای گسترده امنیت اطلاعات می باشیم. ابداع هر فن آوری جدید از یک طرف کارشناسان امنیت اطلاعات را امیدوار به برپاسازی و نگهداری یک شبکه ایمن می نماید و از طرف دیگر مهاجمان را امیدوار به تدارک حملاتی که شانس موفقیت بیشتری را داشته باشند. چراکه آنان نیز از آخرین فن آوری های موجود در این عرصه به خوبی استفاده خواهند کرد . شاید به همین دلیل باشد که بسیاری از کارشناسان فن آوری اطلاعات و ارتباطات بر این عقیده هستند ، مادامیکه دانش مهاجمان بیش از کارشناسان امنیت اطلاعات است امکان مقابله منطقی ، ساختیافته و به موقع با بسیاری از حملات وجود نخواهد داشت .( چگونه می توان با چیزی مقابله نمود که نسبت به آن شناخت مناسبی وجود ندارد؟ ) . این یک واقعیت تلخ در دنیای امنیت اطلاعات است که بسیاری از پتانسیل هائی که به منظور تسهیل در امر استفاده کامپیوتر و یا افزایش کارآئی سیستم ایجاد و یا به عنوان محصولات و ابزارهائی در جهت حفاظت و ایمن سازی شبکه های کامپیوتری عرضه می گردند ، توسط مهاجمان و به منظور برنامه ریزی حملات در شبکه های کامپیوتری نیز مورد استفاده قرار خواهند گرفت . این موضوع در رابطه با packet sniffing نیز صدق می کند .
packet sniffing چیست ؟
یکی از قدیمی ترین روش های سرقت اطلاعات در یک شبکه ، استفاده از فرآیندی موسوم به packet sniffing است . در این روش مهاجمان از تکنیک هائی به منظور تکثیر بسته های اطلاعاتی که در طول شبکه حرکت می کنند ، استفاده نموده و در ادامه با آنالیز آنان از وجود اطلاعات حساس در یک شبکه آگاهی می یابند . امروزه پروتکل هائی نظیر IPSec به منظور پیشگیری از packet sniffing طراحی شده است که با استفاده از آن بسته های اطلاعاتی رمزنگاری می گردند . در حال حاضر تعداد بسیار زیادی از شبکه ها از تکنولوژی IPSec استفاده نمی نمایند و یا صرفا" بخش اندکی از داده های مربوطه را رمزنگاری می نمایند و همین امر باعث شده است که packet sniffing همچنان یکی از روش های متداول به منظور سرقت اطلاعات باشد .
یک packet sniffer که در برخی موارد از آن به عنوان network monitor و یا network analyzer نیز یاد می شود ، می تواند توسط مدیران شبکه به منظور مشاهده و اشکال زدائی ترافیک موجود بر روی شبکه استفاده گردد تا به کمک آن بسته های اطلاعاتی خطاگونه و گلوگاه های حساس شبکه شناسائی و زمینه لازم به منظور انتقال موثر داده ها فراهم گردد . به عبارت ساده تر ، یک packet sniffer تمامی بسته های اطلاعاتی که از طریق یک اینترفیش مشخص شده در شبکه ارسال می گردند را حمع آْوری تا امکان بررسی و آنالیز آنان فراهم گردد . عموما" از برنامه های packet sniffer به منظور جمع آوری بسته های اطلاعاتی به مقصد یک دستگاه خاص استفاده می گردد. برنامه های فوق قادر به جمع آوری تمامی بسته های اطلاعاتی قابل حرکت در شبکه صرفنظر از مقصد مربوطه نیز می باشند .
یک مهاجم با استقرار یک packet sniffer در شبکه ، قادر به جمع آوری و آنالیز تمامی ترافیک شبکه خواهد بود . اطلاعات مربوط به نام و رمز عبور عموما" به صورت متن معمولی و رمز نشده ارسال می گردد و این بدان معنی است که با آنالیز بسته های اطلاعاتی ، امکان مشاهده اینگونه اطلاعات حساس وجود خواهد داشت . یک packet sniffer صرفا" قادر به جمع آوری اطلاعات مربوط به بسته های اطلاعاتی درون یک subnet مشخص شده است . بنابراین یک مهاجم نمی تواند یک packet sniffer را در شبکه خود نصب نماید و از آن طریق به شبکه شما دستیابی و اقدام به جمع آوری نام و رمز عبور به منظور سوء استفاده از سایر ماشین های موجود در شبکه نماید . مهاجمان به منظور نیل به اهداف مخرب خود می بایست یک packet sniffer را بر روی یک کامپیوتر موجود در شبکه اجراء نمایند .
نحوه کار packet sniffing
نحوه کار packet sniffing به روشی برمی گردد که شبکه های اترنت بر اساس آن کار می کنند . در یک شبکه اترنت ، هر زمان که کامپیوتری یک بسته اطلاعاتی را ارسال می نماید ، بسته اطلاعاتی به عنوان یک broadcast ارسال می گردد . این بدان معنی است که هر کامپیوتر موجود در شبکه بسته های اطلاعاتی ارسالی را مشاهده نموده و بجزء کامپیوتر مقصد سایر دستگاه های موجود از بسته اطلاعاتی صرفنظر خواهند کرد . packet sniffing با کپی یک نسخه از بسته های اطلاعاتی ارسالی در شبکه، فعالیت خود را سازماندهی می نماید .
آیا روش هائی به منظور تشخیص وجود یک packet sniffer در شبکه وجود دارد ؟
تشخیص وجود یک packet sniffer بر روی شبکه کار آسانی نخواهد بود . برنامه های فوق به صورت passive در شبکه عمل نموده و به سادگی اقدام به جمع آوری بسته های اطلاعاتی می نمایند .خوشبختانه ، امروزه با استفاده از روش هائی می توان وجود احتمالی یک packet sniffer را در شبکه تشخیص داد .