بخشی از مقاله

چکیده

دستهبندی و شناسایی جریانهای ترافیکی در اینترنت کاربردهای وسیعی در حوزه مدیریت شبکه و اعمال سیاستهای امنیتی دارد. اما بسیاری از برنامههای کاربردی برای غلبه بر سیاستهای فیلترینگ و نیز حفظ امنیت، اقدام به رمزنگاری ترافیک کاربران میکنند. یکی از این نرمافزارهای پیامرسان کاربردی اسکایپ است که سرویسهای متعددی از جمله: ارسال پیام، صوت، ویدیو، ارسال فایل و SkypeOut را پشتیبانی میکند. اسکایپ همهی این سرویسها را از طریق یک شماره پورت تصادفی ارسال میکند که این شماره را هنگام نصب به هر کاربر تخصیص میدهد. از اینرو دستهبندی و شناسایی این ترافیکها با روشهای سنتی نظیر روشهای مبتنی بر پورت یا بازرسی عمیق بستهها، امکانپذیر نیست. به این منظور برای شناسایی ترافیکهای رمز شده از روشهای آماری مانند یادگیری ماشین که نیازی به بررسی محتوای بستهها ندارند استفاده میشود. در این مقاله به کمک الگوریتمهای متعدد یادگیر ماشین سرویسهای مختلف اسکایپ را مورد ارزیابی قرار میدهیم و نتایج دستهبندی سرویسهای اسکایپ را تحت الگوریتمهای مختلف با هم مقایسه میکنیم. نتایج نشان میدهد الگوریتمهای Randon Forest و KNN میزان دقت و فراخونی بیشتری نسبت به سایر الگوریتمها دارند. همهی الگوریتمها، سرویس SkypeOut را با دقت بالایی شناسایی کردهاند اما به دلیل تشابه ویژگیهای ترافیکی ویدیو و صوت، درصد کمتری از این سرویسها شناسایی شدهاند.

واژههای کلیدی: دسته بندی ترافیک، سرویسهای اسکایپ، ترافیک رمز شده، یادگیری ماشین.

-1 مقدمه

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

اسکایپ به دلیل کیفیت بالا در انتقال صوت یکی از سرویس های پیام-رسان محبوب است که استفاده از آن در بین کاربران مختلف سازمانی، موسسات علمی و پژوهشی و نیز کاربران عادی رو به افزایش است. این نرم-افزار ترافیک کاربران را رمز نموده و برای ارتباط با کاربران دیگر شبکه از شماره پورت تصادفی استفاده میکند. با توجه به سیاستهای مدیریت ترافیک و پالایش محتوای در شبکههای مختلف، شناسایی پروتکل و ترافیک اسکایپ میتواند حائز اهمیت باشد. در چند سال اخیر مقالات زیادی در زمینه تشخیص ترافیکهای رمزشده ارایه شده است. در مقاله [2] برای تشخیص ترافیک های رمز شده اسکایپ و SSH از سایر ترافیکها, روشهای یادگیری ماشین استفاده شده است، به این منظور پنج تا از الگوریتمهای C4.5، AdaBoost، RIPPER، SVM
 
وNaïve Bayesian را روی مجموعه دادهها اجرا کردهاند. این مطالعه نشان میدهد که الگوریتم C4.5 در شبکههای مختلف نسبت به سایر الگوریتمهای مورد ارزیابی نتایج بهتری را بدست میآورد. Yuan و همکاران[3] با بازرسی عمیق محتوای بستههای کنترلی رمز نشدهی آغازین، الگوی خاصی برای شناسایی جریانهای اسکایپ ارائه نمودند و بر اساس آن سیستم برخط Skytracer را طراحی کردند. دقت و فراخوانی این سیستم به ترتیب %98,93 و  %99,54 است. Branch و همکاران در مقاله [4] با کمک گرفتن از روش-های یادگیر ماشین و با داشتن تنها 5 ثانیه از هر جریان، در تشخیص ترافیک اسکایپ به دقتی معادل %98 و فراخونی %99 رسیدند. الگوریتم مورد استفاده در C4. 5 [4] است که در آن از ویژگیهایی مانند: فاصله زمانی بین دو بسته متوالی، تعداد رخداد بستههای کمتر از 80 بایت و ویژگیهای آماری بسته-های بیش از 80 بایت استفاده شده است. Bonfiglio و همکاران در [5] با استفاده از ویژگیهایی مانند اندازه بستهها و فاصله زمانی بین دو بسته متوالی، به تحیل رفتار جریانهای ویدیو و صوت در ترافیکهای اسکایپ پرداختهاند و الگوی خاصی از هر جریان را استخراج کردهاند. Adami و همکاران [6]

از ترکیبی از روش آماری و بررسی عمیق بستهها استفاده کردهاند تا سرویسهای صوت و انتقال فایل اسکایپ را از هم تفکیک کنند. Korczynski و [7] Duda در سال 2014 بر اساس مدل مارکوف مرتبه اول، روشی برای شناسایی و دستهبندی ترافیکهای رمز شده مبتنی بر SSL/TLS ارائه نمودند. در روش مذکور، به ازای هر جریان ترافیکی یک مدل مارکوف مرتبه اول ایجاد شده و با مدلهای مارکوف موجود در پایگاه داده مقایسه میشود. در نهایت، نوع ترافیک ورودی بر اساس میزان مطابقت آن مدلهای موجود مشخص میگردد. مقالههایی که در حوزه تشخیص ترافیک اسکایپ ارایه شده است، با دقت بالایی جریانهای اسکایپ را تشخیص دادهاند. تنها مقالهای که در زمینه دستهبندی سرویسهای اسکایپ ارایه شده است، مقاله Korczynski و [8] Duda است. آنها با استفاده از دو روش بازرسی عمیق بستهها و ویژگیهای آماری بستهها، طی سه مرحله همهی سرویسهای اسکایپ را از هم تفکیک کردهاند . طبق نتایج ارایه شده، F-Measure مربوط به ترافیک-های ویدیو و صوت مقادیر 66 1 و 64 2 را دارند که به نسبت کمتر از سایر سرویسهای اسکایپ است.

در این مقاله ما با استفاده از الگوریتمهای یادگیری ماشین سرویس های مختلف اسکایپ را از هم تفکیک میکنیم. ترافیکهای ما مجموعهای از ترافیکهای سرویسهای مختلف اسکایپ است که در محیطهای Mac، Linux و Windows جمعآوری شده است. این مقاله در 6 بخش ارایه میشود که به ترتیب شامل: مقدمه و مروری بر کارهای گذشته است. معرفی پروتکل اسکایپ و معماری آن هم در بخش دوم ارایه شده است. بخش بعدی دستهبندی سرویسهای اسکایپ به کمک روشهای یادگیر ماشین و چهارمین بخش شامل مقایسه و ارزیابی الگوریتم-های یادگیر مختلف در دستهبندی ترافیک میباشد, سپس نتیجهگیری کارهای انجام شده وآخرین بخش هم تشکر و قدردانی است.

-2 معرفی پروتکل اسکایپ

اسکایپ توسط تیم توسعهدهنده kazza در سال 2003 آغاز شد. این نرمافزار کاربردی از مکانیزمهای مبهم و پیچیدهای برای برقراری ارتباط، ارسال ترافیک، عبور از دیواره آتش و NAT استفاده میکند. از اینرو بسیاری از محققین به کار در این زمینه علاقهمند شدند. اسکایپ از الگوریتم قوی AES 256-bit برای رمزنگاری ترافیک استفاده میکند. همچنین به دلیل استفاده از شماره پورت تصادفی ممکن است جریانهایش توسط دیواره آتش بلاک شود. اگر این شماره پورت توسط دیواره آتش بلاک شود از شماره پورت 80 یا 443 استفاده میکند. ویژگی دیگر اسکایپ از دو پروتکل UDP و TCP استفاده میکند، از TCP برای برقراری ارتباط و بسته به شرایط و محدودیتهای شبکه از دو پروتکل UDP و TCP برای ارسال ترافیک استفاده میکند .[7]

1-2 معماری اسکایپ

برخلاف دیگر نرم افزارهای پیامرسان کاربردی که از معماری client-server استفاده میکنند، اسکایپ مبتنی بر شبکه peer-2-peer است که شامل مجموعه نودهای: کلاینت، سوپر نودها، سرورهای login و به روز رسانی و buddy list است .[9]

1.    نودهای کلاینت: نودهای اصلی شبکه که نرم افزار اسکایپ روی این نودها نصب شده است و میخواهند باهم در ارتباط باشند.

2.    سوپر نودها: که مسئول پیدا کردن نودها در شبکه و انتقال ترافیکهای یک کلاینت به کلاینت موردنظر دیگر میباشد. نودهای کلاینتی که پهنای باند، حافظه کافی، توان پردازش بالا و IP معتبرداشته باشند میتوانند به سوپر نود تبدیل شوند.

3.    سرور :login پروفایل، نام کاربری و گذرواژه کاربران در این سیستم ذخیره میشود.

4.    سرور به روز رسانی: برای اطلاع از آخرین نسخه نرم افزار، زمان که اسکایپ اجرا میشود، نرم افزار کلاینت پیغام هایی در قالب http به این سرور می فرستند تا از آخرین نسخه آن باخبر شود.

5.    :Buddy list در این سرور لیست دوستان هر کاربر ذخیره می-شود و زمانی که کاربر از کامپیوتر دیگری به اسکایپ وصل می-شود، لیست دوستان از این سرور بازیابی میشود. هر کاربر برای اولین بار، وقتی میخواهد به شبکه اسکایپ وصل شود آدرس سوپر نودها را ندارد، از اینرو به یکی از نودهای bootstrap وصل میشود و از طریق این نودها به شبکه متصل میگردد. IP و پورت این نودهای bootstrap در یک فایل به صورت رمز شده در کامپیوتر کاربر، زمان نصب اسکایپ ذخیره میشود. این لیست هر بار که کاربر به شبکه وصل می شود به روزرسانی میشود. جزئیات و چگونگی کارکرد اسکایپ در مقاله [10] به طور کامل ارایه شده است.

-3 دستهبندی سرویسهای اسکایپ به کمک روشهای یادگیر ماشین

روشهای یادگیر ماشین به دو دسته یادگیری با نظارت 2و یادگیری بدون نظارت تقسیم میشوند. در یادگیری با نظارت مجموعه دادهها به دو قسمت آموزشی3 و آزمایشی 4 تقسیم شدهاند. در این روش دستهها از قبل مشخص هستند و هر یک از دادههای آموزشی به دستهای خاص نسبت داده شده است،. ولی در یادگیری بدون نظارت، دستهها از قبل تعریف نشده است و هیچ اطلاعاتی بهجز دادههای آموزشی در اختیار یادگیرنده قرار ندارد و این یادگیرنده است که بایستی در دادهها به دنبال ساختاری خاص بگردد تا براساس شباهت دادهها را دستهبندی کند.

در این مقاله از روش یادگیری با نظارت استفاده میکنیم، که استفاده از این روش نیاز به چند مرحله دارد .[4] ابتدا باید مجموعه داده را جمعآوری کنیم، ویژگیهایی که برای دستهبندی ترافیکهای اسکایپ مناسب است استخراج نماییم و سپس مجموعه داده را بر اساس آن ویژگیها ایجاد کنیم. در این مرحله مجموعه دادهها را به دو قسمت آموزشی و آزمایشی تقسیم میکنیم، قسمتی که به عنوان دادههای آموزشی انتخاب شده، الگوریتم های یادگیر را روی آنها اجرا میکنیم تا دستهبندی5 از ترافیکهای ورودی بسازد. مرحله آخر قسمت باقیمانده که داده آزمایش ما هستند به ورودی دستهبند میدهیم تا نتایجی از میزان دقت6 و فراخونی7 هر دسته را به ما بدهد. متداولترین معیارها برای سنجش یک دستهبند: precision، recall و F-Measure است. : Recall طبق فرمول 1، نسبت میزان کل نمونههای دستهبندی شده و مرتبط به نسبت کل نمونههای مرتبط را بیان میکند. :Precision نسبت میزان کل نمونههای دستهبندی شده و مرتبط به نسبت کل نمونهها را بیان میکند - فرمول . - 2 و F-Measure ترکیبی از دو معیار قبلی است، زمانیکه بخواهیم کارایی یک دستهبند را با یک عدد بسنجیم از این معیار استفاده میکنیم - فرمول . - 3

1-3 انتخاب ویژگی

مجموعهای از ویژگیهای جریان که م ستقل از محتوای ب ستهها ه ستند در جدول 1 ارایه شده ا ست. در روشهای یادگیر ما شین به منظور ت شخیص ترافیک رمز شده از این ویژگیها ا ستفاده می شود. ما در این کار به منظور کشف رفتار خاص هر کدام از سرویسهای اسکایپ از ویژگیهای اندازه بستهها، نرخ ارسال جریان و فاصله زمانی دو بسته متوالی یک جریان استفاده میکنیم.

2-3 دستهبندی

روش کار به این صورت است که ترافیکهای مربوط به سرویسهای مختلف اسکایپ - پیام، صوت، ویدیو، آپلود فایل، دانلود فایل و - SkypeOut را جمع-آوری و سپس مجموعه دادهها را براساس ویژگیهای انتخاب شده ایجاد کردیم. کل سرویسهای هر کدام از سیستمعاملها را جدا در دو بخش بی-سیم و سیمی تفکیک شده و در هر بخش ترافیکهای رفت 8و برگشت9 را از هم جدا نمودیم. بعد از پردازش مجموعه داده و تبدیل آنها به فرمت قابل خواندن برای نرم افزار Weka، مقدار %66 کل دادهها را به عنوان دادههای آموزشی و باقیمانده را برای آزمایش در نظر میگیریم. سپس الگوریتمهای bagging، J48، Random Forest و KNN را روی آنها اجرا کردیم و نتایج الگوریتمهای مختلف را با هم مقایسه میکنیم.

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