بخشی از مقاله

افزایش امنیت شبکه های کامپیوتری با استفاده از متد جدید پورت ناکینگ پویا بر پایه رمز یکبار مصرف

 

چکیده

در سال های اخیر شبکه های کامپیوتری همواره در معرض خطرانواع حملات سایبری بوده و این حملات عموما شامل حملات شناسایی و دست یابی به خدمات هستند. در این حملات مهاجمین ابتدا اقدام به جمع آوری اطلاعات و شناسایی سرویس های در حال اجرای شبکه قربانی به منظور آسیب رسانی و دست یابی به خدمات هستند. پورت ناکینگ Port) (Knocking یک روش احراز هویت به منظور جلوگیری از شناسایی و استفاده از خدمات آسیب پذیر توسط مهاجمین بوده و هدف آن مخفی نگه داشتن پورت ها و خدمات از دید مهاجمین و عدم کارآیی حملات شناسایی بوده است. در این مقاله روش جدیدی با هدف ایجاد پورت ناکینگ پویا بر پایه رمز یکبار مصرف با کمک دستگاه توکن امنیتی Security) (Token و تانلینگ به منظور از بین بردن مشکلات NAT-Knocking، حملات بازپخش، استراق سمع و مردم میانی معرفی گردیده است.

واژههای کلیدی: امنیت شبکه – فایروال – احراز هویت – امنیت پورت – پورت ناکینگ

-1 مقدمه

امنیت اطلاعات و ایمن سازی شبکه های کامپیوتری در برابر حملات از جمله موضوعاتی است که این روزها مورد توجه تمامی سازمان ها و شرکت ها قرار گرفته است . بدون تردید رشد سریع دنیای ارتباطات، از دهه 90 میلادی به بعد موجب آن گردیده است که شبکه های کامپیوتری دارای ساختار بسیار پیچیده تر از سابق شده و همچنین نرم افزارها بزرگتر، دارای ساختاری مرکب و در بسیاری از موارد نیز نیاز به اتصال به اینترنت داشته باشند. همان طور که شبکه های ارتباطی و نرم افزارهای مورد استفاده در آن رشد نموده و پیشرفت داشته اند، خراب کاری ها و حملات نیز روز به روز در حال پیشرفت و رو به افزایش است. در یک شبکه کامپیوتری، سرویسها و پروتکل های متعددی نصب و پیکربندی میشود که برخی از این سرویس ها و پروتکل ها دارای استعداد لازم برای انواع حملات بوده و لازم است در زمان نصب و پیکربندی آنان، دقت لازم در خصوص رعایت مسائل ایمنی انجام شود.

فایروال ها یکی از اساسی ترین عناصر برای افزایش سطح امنیت اطلاعات می باشند که استفاده از آن به یک ضرورت اجتناب ناپذیر در شبکه های کامپیوتری تبدیل شده است. همچنین استفاده از سیستم های تشخیص و جلوگیری از نفوذ یعنی IDS و IPS در کنار فایروال نیز می تواند بسیار مفید باشند که در نهایت منجر به ارتقا سطح امنیت شبکه شوند.

تبادل اطلاعات توسط پروتکل TCP/IP با محوریت پورت ها صورت می پذیرد و در این رابطه تعداد 65535 پورت TCP و به همین تعداد، پورت UDP وجود دارد که می توان از آنها جهت مبادله اطلاعات بهره برد. پیوند سه عنصر پروتکل های در

1

حال اجرا، پورت های باز و سرویس های فعال زمینه ساز حملات در شبکه های کامپیوتری می باشد لذا فیلترینگ پورت ها برای افراد غیر مجاز از جمله مهمترین عملیاتی است که توسط فایروال ها انجام می شود. فیلترینگ پورت ها می تواند در سطح هدر یک بسته اطلاعاتی نظیر آدرس و شماره پورت مبدا و آدرس و شماره پورت مقصد و سایر موارد دیگر باشد .[1]

یکی از دغدغه های اصلی در دنیای امنیت مفهوم احراز هویت می باشد که راه حل های بسیاری نیز برای آن ارائه شده است. ملزم نمودن کاربر به ارائه نام کاربری و رمز عبور قبل از استفاده از سرویس، یکی از محبوب ترین و پرکاربردترین آن ها نیز محسوب می شود.

از آنجایی که سرویس هایی نظیر وب ملزم به ارائه خدمات به عموم هستند، نیاز به باز بودن پورت های این دست سرویس ها برای همگان غیر قابل انکار است اما برخی از پورت ها در زمان های خاص و توسط اشخاص خاصی مورد استفاده قرار می گیرند و نیازی به خدمات دائمی آن ها نمی باشد و پس از اتمام کار باید بسته گردند زیرا ارائه خدمات این دست سرویس ها خطرناک بوده و شبکه را مستعد انواع حملات قرار می دهند. در اکثر موارد مهاجمین با استفاده از ابزارهایی نظیر پورت اسکنرها اقدام به جمع آوری اطلاعاتی نظیر پورت های باز و سرویس های در حال اجرا از شبکه قربانی پرداخته و سپس اقدام به پیدا نمودن آسیب پذیری در سرویس ها می نمایند. کشف این آسیب پذیری می تواند منجر به نقص یکی از موارد محرمانگی، یکپارچگی و در دسترس بودن شود. همچنین حمله کننده می تواند با تغییر اطلاعات هدر بسته نظیر آدرس IP مبدا، محتوای دلخواه خود را در بسته قرار داده و با ارسال آن فایروال را دور بزنند. اینجاست که مکانیزم ضربه به زدن به پورت یا پورت ناکینگ جهت افزایش امنیت مطرح می گردد .[2] پورت ناکینگ می تواند سرویس ها را از طریق انتقال اطلاعات برروی پورت های بسته، از دید مهاجمان مخفی نگه دارد. تعاریف متعددی از پورت ناکینگ وجود دارد که در ادامه به برخی از آنها می پردازیم.
B. Maddock این مکانیزم را بدین صورت تعریف کرده است که پورت ناکینگ یک روش انتقال اطلاعات از طریق پورت های بسته برروی یک کامپیوتر شبکه ای است .[3] همچنین معروف ترین تعریف از M.Krzywinski است که می گوید پورت ناکینگ یک روش ایجاد اتصال به یک کامپیوتر شبکه ای است که هیچ پورت بازی ندارد. همچنین در تعریف دیگری می گوید پورت ناکینگ یک روش پنهانی انتقال اطلاعات در شبکه های کامپیوتری می باشد .[4]

به کارگیری پورت ناکینگ به عنوان اولین لایه دفاعی یک روش بسیار کارآمد و قدرتمند در مقابل حملات روز صفر )Zero-Day(، جستجوی فراگیر (Brute Force)، پورت اسکنرها، سرویس هایی که هیچ گونه ساز و کار امنیتی نظیر احراز هویت ندارند و آسیب پذیری های اصلاح نشده می تواند ایفای نقش کند. پورت ناکینگ برای کاربرانی که نیاز دارند به صورت خاص به فایروال دسترسی داشته باشند، مناسب خواهد بود.

-2 پورت ناکینگ

در شبکه های کامپیوتری پورت ناکینگ به یک روش باز کردن پورت از بیرون شبکه برروی فایروال از طریق ایجاد یک سری اتصال اطلاق می شود که می تواند با نظم ترتیب خاصی برروی مجموعه ای از پورت های بسته از پیش تعریف شده اعمال گردد. به عبارت دیگر، پورت ناکینگ یک روشی از احراز هویت است که به منظور احراز هویت از پورت های بسته جهت انتقال اطلاعات استفاده می کند. در واقع پورت ناکینگ اطلاعات را برروی پورت های بسته ارسال می نماید. آنچه اتفاق می افتد این است که کاربرانی که قصد استفاده از چنین سرویس هایی را دارند، پروسه احراز هویت خود را به منظور ارتقاء سطح دسترسی و به دست آوردن سرویس و استفاده از آن، به وسیله ارسال بسته های بدون پاسخ از سرور آغاز می نمایند .[5] یکی از مزیت های اصلی پورت ناکینگ ایجاد یک لایه اضافی امنیتی علاوه بر لایه های امنیتی موجود است.

به بیان ساده تر پورت ناکینگ از 4 گام تشکیل شده است: (شکل (1

2


شکل -1 مراحل پورت ناکینگ

در گام اول کلاینت A به برنامه ای که روی پورت n در حال گوش کردن است، نمی تواند متصل شود. همچنین کلاینت B نیز روی هیچ پورتی توانایی برقراری اتصال را ندارد.

در گام دوم کلاینت A به ترتیب به مجموعه ای از پورت های از پیش تعیین شده، بسته SYN ارسال می کند که به آن دنباله

ناک )Knock Sequence( می گویند.
در گام سوم، زمانی که فرآیند سرور(فایروال) یک پورت ناکینگ معتبر را شناسایی کرد، اقدام به باز کردن پورت n برای آن کلاینت می نماید.

در گام آخر، کلاینت A با پورت n اتصال برقرار کرده و از به صورت عادی از برنامه پشت فایروال استفاده خواهد کرد.
از آنجایی که اکثر سیستم های احراز هویت به صورت نرم افزاری ایجاد و پیاده سازی شده اند و ممکن است در هر لحظه آسیب پذیری جدیدی در آن ها کشف شود و یا این که وجود داشته باشند که ما از آن ها بی خبر باشیم، بنابراین پورت ناکینگ یک لایه محافظتی بسیار قدرتمند نسبت به آن ها است. همچنین اگر از طریق پورت ناکینگ برروی سرویسی که خود دارای احراز هویت درونی است نظیر تلنت )Telnet(، احراز هویت مجددی صورت گیرد، منجر به آن می شود که در صورت عبور از لایه ی حافظتی پورت ناکینگ یک احراز هویت دیگر برای سرویس باقی بماند که آن احراز هویت ذاتی خود سرویس است. یکی دیگر از مزایای پورت ناکینگ، پنهان کاری است. فایروال بگونه ای تنظیم شده است که تمام بسته ها را رد کرده و اصطلاحا Drop نماید. بنابراین مهاجم نمی تواند با اسکن پورت سرنخی را به دست آورد و یا اصلا متوجه شود سروری وجود دارد یا خیر .[6]

شکل2 عملکرد یک سیستم پورت ناکینگ را نشان می دهد.

3

شکل -2 نحوه عملکرد پورت ناکینگ
به طور پیش فرض تمامی پورت ها برروی فایروال بسته بوده و تمامی درخواست ها در محدوده پورت های خاص چه از نوع TCP و یا UDP ثبت و مانیتور گردیده و مابقی Drop می شوند. روند کار پورت ناکینگ با ارسال بسته های SYN از سوی کلاینت که حاوی سرآیند IP و سرآیند نوع پروتکل که TCP یا UDP می باشد، آغاز می گردد. در صورتی که توالی خاصی از پورت ها به ترتیب به فایروال رسیدند، اقدامات از پیش تعریف شده ای مانند باز کردن پورت SSH یا FTP برای آن کلاینت انجام خواهد گرفت و عملیات پورت ناکینگ پایان می یابد. حال می توان از یک تایمر جهت بستن خودکار پورت استفاده نمود.
با توجه به تعداد پورت های TCP که 65535 پورت می باشد، اگر و فقط اگر از 4 توالی ناکینگ استفاده کنیم، تعداد 4^65353 حالت وجود خواهد داشت. حال کافی است که UDP و یا هر پروتکل دیگری را نیز به توالی خود اضافه نماییم، در نتیجه به یک عدد سرسام آور خواهیم رسید که استراق سمع را از سوی هکرها بسیار دشوار خواهد ساخت. مهم تر از همه آنکه پورت ناکینگ را می توان برروی اکثر سیستم عامل ها پیاده سازی و اجرا نمود. اگرچه مکانیزم پورت ناکینگ باعث می شود که فرآیند احراز هویت امن تر از گذشته گردد، با این حال برخی از حملات وجود دارند که بر کارآیی پورت ناکینگ تاثیر گذاشته و امکان سوء استفاده از اتصال های صورت گرفته را به مهاجمین به منظور حمله می دهند . برخی از این حملات شناخته شده عبارتند از DoS-Knocking و حملات بازپخش (Replay Attack( و حملات مرد میانی و .NAT-Knocking حملات از نوع DoS-Knocking زمانی رخ می دهد که حمله کنندگان سیلی از پکت های تصادفی را به سرور ارسال کنند .[7] در این حالت فایروال باید یک بافر برای هر درخواست کننده جهت تکمیل باقیمانده فرآیند پورت ناکینگ اختصاص دهد، که این امر منجر به اشغال فضای بسیار زیادی از حافظه گشته و در نتیجه باعث از کار افتادن سرویس می گردد. مشکل NAT-Knocking نیز زمانی رخ می دهد که سیستم مانیتورینگ نمی تواند کاربر و یا کاربرانی را که احراز هویت شده اند را از دیگران تشخیص دهد. این سناریو در شبکه هایی رخ می دهد که از NAT استفاده می کنند. در نتیجه تمام کاربران شبکه داخلی با یک آدرس یکسان از خارج شبکه دیده می شوند. از این رو وقتی که پروسه پورت ناکینگ یک کاربر با موفقیت به پایان رسید عملا تمامی کاربران که پشت شبکه NAT قرار دارند نیز می توانند از این خدمات استفاده نمایند .[8]

-3 مطالعات و کارهای انجام شده
M.Krzywinski در سال 2003 مقاله ای در Sys Admin ارائه کرده است .[9] او اقدام به طراحی یک نمونه پایه از پورت ناکینگ با استفاده از زبان برنامه نویسی پرل نمود. در این طرح کلاینت می توانست به برنامه در حال اجرای کاملا ایزوله شده که در ابتدا هیچ پورتی برروی آن باز نبود متصل شود. این شیوه از یک روش جهت رمز نمودن IP کاربر و قرار دادن آن در دنباله ی ناک استفاده می کرد و پس از رمزنگاری شدن، برروی بازه ای از پورت های میزبان ارسال می کرد. این روش، کارآمد و قابل اجرا از پورت ناکینگ بود. از مزایای این روش باز و بسته کردن داینامیک پورت های فایروال است. یعنی در یک شبکه

4

ممکن است برنامه ها و سرویس های مختلفی در حال کار باشند و در نتیجه هرکدام هر وقت که نیاز به دسترسی داشتند باید پورت های مربوط به آن باز شود. در این طرح از IP درخواست دهنده سرویس، پورت، زمان و Checksum در توالی ناک استفاده می شود. اما این روش در مقابل حملات باز پخش ناکارآمد بود و هیچ طرحی نیز برای رفع مشکلNAT-Knocking در آن ارائه نشد.

J.B. Ward براساس طرح اولیه M.Krzywinski که بر پایه بسته های TCP کار می کرد، پروژه ای را با نام Doorman با استفاده از تکنیک پورت ناکینگ پیاده سازی نمود .[10] در این روش، رول های فایروال براساس دستورات صادر شده توسط Doorman اضافه و یا حذف می شود. از مزایای این روش استفاده از UDP و ایجاد حداقل سربار آن است. از معایب این روش این است که جدول های درهم MD5 به راحتی در جدول Rainbow شکسته می شود و حمله کنندگان به راحتی می توانند اطلاعات داخل ناک را بدست آورند.

مقاله ای توسط C.K. Tan با عنوان مدیریت سرور از راه دور با استفاده از پورت ناکینگ پویا جهت از بین بردن مشکل حملات باز پخش منتشر شد .[11] یکی از مشکلات پورت ناکینگ بدین صورت است که اگر ساز و کار پورت ناکینگ از توالی های ایستا استفاده شود، حمله کنندگان به راحتی قابلیت این را دارند که دنباله ی ناک را شناسایی کرده و به پورت و سرویس دسترسی داشته باشند. در این روش نیازی به دنباله از پیش تعریف شده نبود. در عوض، دنباله به صورت پویا تعریف می شد. یکی از مزایای این روش چند کاربره بودن آن و عدم نیاز به توزیع یک توالی بین تمام کاربران است. از معایب این روش می توان به پیاده سازی بسیار سخت و پیچیده آن اشاره کرد. یکی دیگر از معایب این روش نیاز به نگهداری یک فایل هش از رمزهای عبور تمامی کاربران برروی سرور است. در نتیجه باید از این فایل در مقابل مهاجمین محافظت نمود. همچنین در این روش باید به منظور جلوگیری از حملات باز پخش حداقل به آن مهر زمانی (Timestamps( اضافه نمود.

D. Worth و همکاران روشی را با نام COK که سرنام Cryptographic One-Time Knocking می باشد، ارائه کردند .[12] او توصیف کرد که استفاده به تنهایی از رمزنگاری که IP درخواست دهنده به عنوان جزئی از ناک قرار دارد در شبکه هایی نظیر Wifi Hotspot ها و ... که از NAT استفاده می کنند موجب باز شدن سرویس برای همه کاربران آن شبکه خواهد شد. D. Worth استفاده از OTP یا رمز عبور یکبار مصرف را به همراه رمزنگاری پیشنهاد کرد. انعطاف پذیری رمز عبور یکبار مصرف به تکرار آن است که براساس یکی از رمزنگاری های توابع هش نظیر MD5 و SHA1 کار می کند . حملات از نوع بازپخش در تقابل با رمز عبور یکبار مصرف شکست می خورند زیرا امکان استفاده دوباره از یک رمز عبور وجود ندارد. این روش فقط سازگار با فایروال IP Tables است.

یکی از مطالعات انجام شده، روش ناک به صورت Silent است. این روش با استفاده از رمزنگاری بلوکی AES و تابع چکیده ساز MD4 منجر به افزایش امنیت گردید. اما نتایج شبیه سازی آن نشان داد که این روش باعث ایجاد سربار زیاد و هدر رفتن منابع می شود و پیاده سازی و اجرای آن بسیار دشوار است .[13]

Al-Bahadili و H.Hadi روش پورت ناکینگ هیبریدی را پیشنهاد دادند . در این روش نشان داده شده است که بسته های TCP دارای یک ظرفیت و بار اضافی هستند که نشان می دهد این قبیل سرویس ها به خودی خود باعث افزایش سربار سیستم می شوند .[14]

رویکرد دیگری توسط Srivastava و همکاران ارائه گردید. آن ها الگوریتمی را پیشنهاد دادند که با استفاده از رمزنگاری AES یک توالی ناک امن را پیاده سازی می کرد. در این روش کلاینت درخواست خود را برای پسورد یکبار مصرف از طریق پیامک ارسال و دریافت می نمود. علاوه بر این آدرس IP مبدا از یک الگوی مشخص یا توالی از پیش تعریف شده تبعیت نمی کرد. بنابراین مهاجمین نمی توانستند با مانیتورینگ ترافیک، توالی ناک را بدست آورند .[15]

روش ساده ضربه زدن به پورت در مقابل حملات بازپخش و اسکن پورت توسط F.Ali و همکاران ارائه شد .[16] در این روش به جای اینکه پورت های مقصد بررسی شوند، پورت های باز شده در سمت مبدا برای ایجاد بسته ناک نیز مورد بررسی

در متن اصلی مقاله به هم ریختگی وجود ندارد. برای مطالعه بیشتر مقاله آن را خریداری کنید