بخشی از مقاله

چکیده

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

از آنجاییکه امروزه بسیاری از نرمافزارهای شبکه به منظور انتقال داده از رمزنگاری استفاده میکنند، روشهای سنتی شناسایی ترافیک همانند روشهای مبتنی بر پورت و روشهای مبتنی بر محتوا پاسخگو نمیباشند. در این مقاله با توجه به اینکه ترافیک انتخابی هدف، ترافیک TOR میباشد و بر اساس رمزنگاری TLS عمل میکند، 3 الگوریتم یادگیری ماشین به منظور شناسایی این نوع ترافیک انتخاب شده و در سه معیار دقت، بازنمایی و F-measure مورد ارزیابی و مقایسه قرار گرفته است. الگوریتمهای J48، PART و VFI در این مقاله مورد بررسی قرار گرفتهاند که نتایج بدست آمده نشان از عملکرد بهتر الگوریتم VFI در مقایسه با دو الگوریتم دیگر دارد.

-1مقدمه

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

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

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

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

روشهای یادگیری ماشین برای شناسایی نرمافزارهای شبکه، بر اساس اطلاعات آماری در هر جریان عمل میکنند. این اطلاعات آماری از ویژگیهای مستقل از محتوا، همانند اندازه بسته و توزیع زمانی بین ورود بستهها، نشات میگیرند.[3] الگوریتمهای یادگیری ماشین را میتوان به دو دسته عمده الگوریتمهای طبقهبندی و خوشهبندی تقسیمبندی کرد و از آنجاییکه الگوی ترافیکی تور از قبل در دسترس ما میباشد، تمرکز کار ما بر الگوریتمهای طبقهبندی می باشد.

ساختار مقاله به صورت زیر است: در بخش 2 به کارهای انجام شده در حوزه شناسایی و دستهبندی ترافیک اینترنت میپردازیم. در بخش 3 پروتکل تور و شبکه آن معرفی میشود. در بخش 4 راهکار پیشنهادی برای شناسایی ترافیک تور بیان میشود و بخش 5 این مقاله، به نحوه پیادهسازی راهکار پیشنهادی و ارزیابی آن اختصاص مییابد. در نهایت نتیجهگیری و سوی کارهای آتی در بخش پایانی ارائه میگردد.

-2 مروری بر کارهای انجام شده

در حوزه شناسایی ترافیک رمز شده، استفاده از روشهای DPI و استفاده از روشهای یادگیری ماشین مرسوم بوده است که در روشهای DPI محتوای رمز شده بستههای ترافیکی به منظور یافتن الگوی تکراری مورد بررسی قرار میگیرد که در مورد ترافیک تور نسبتا موفقیتآمیز بوده است و در بخش 4 به آن خواهیم پرداخت. روشهای یادگیری ماشین نیز به منظور شناسایی ترافیک رمز شده مورد توجه بوده است و در ادامه به دو نمونه از کارهای انجام شده در این حوزه میپردازیم که یکی از آنها به طور ویژه بر ترافیک تور تمرکز کرده است.

مقالهای از Guang-Lu Sun در سال 2011 برای شناسایی نرمافزارهایی که از ترافیک رمز شده استفاده میکنند، تدوین شده است.[4] در این مقاله از الگوریتم بیزین که یکی از الگوریتمهای پرکاربرد در این حوزه میباشد، استفاده شده است. در این مقاله، در ابتدا ویژگیهای آماری از جریانهای عبوری بدست میآید و سپس پروتکل نرمافزار کاربردی با استفاده از روش تخمین غیرپارامتری، شناسایی میشود. پارامترهای آماری همچون طول بسته، زمان بین رسیدن بستهها و تعداد بستهها مورد استفاده قرار میگیرند. تاکید این مقاله بر شناسایی ترافیکهای TOR و HTTPS بوده است که موفق شده است این دو ترافیک را با میزان 85 درصد در دو معیار precision و recall دستهبندی کند.

در مقالهای دیگر[5]، Peipei Fu و تیمش بر ترافیک رمز شده SSL تمرکز کردهاند و سعی کردهاند که سرویسهای مختلف google که از این رمزنگاری استفاده میکنند را شناسایی نمایند. در این مقاله در ابتدا تعدادی از نرمافزارهای مبتنی بر SSL بواسطه گواهینامههای SSL مطالعه میشوند و سپس الگوریتم یادگیری ماشین، C4.5، به منظور دستهبندی سرویسهای مختلف گوگل اعمال میشود. ویژگیهای آماری استفاده شده در این مقاله عبارتند از: اندازه بسته، زمان بین رسیدن بستهها و جهت جریان. نتایج بدست آمده نشان از نرخ بالای دو معیار precision و recall دارد. به عنوان نمونه، سرویس نقشه گوگل دارای recall و precision به مقدار 0,937 میباشند.

-3 معرفی TOR و شبکه آن

تور که بر اساس رمزنگاری TLS عمل میکند، یک پروژه کدباز و همچنین گستردهترین شبکه برای ناشناس ماندن در اینترنت میباشد. براساس دادههای آماری برگرفته از سایت رسمی تور، شبکه تور دارای بیش از 6 هزار relay و bridge فعال میباشد و روزانه بیش از 2 میلیون کاربر از این شبکه استفاده میکنند. تور یک شبکه توزیع شده کمتاخیر میباشد و از onion routerها تشکیل شده است. این شبکه دارای چندین سرور مرکزی برای نگهداری و انتشار directory information میباشد. کاربران تور میتوانند به صورت داوطلبانه یک relay ایجاد کنند.

در شبکه تور سه نقش مختلف - شکل - 1 به صورتهای Onion Proxy، Onion Router و Directory Server وجود دارد که در ادامه به توضیح هریک از آنها میپردازیم.

:Onion Proxy - OP - کاربران با استفاده از OP به شبکه تور متصل می شوند. OP به منظور دریافت directory information نودها به DS درخواستی ارسال میکند و سپس OP مدارهای ارتباطی را بر اساس directory information تشکیل میدهد.

Onion Router - OR - که به نود relay هم مشهور است، شامل نودهای entry، intermediate و exit میشود.

Directory Server - DS - اطلاعات مربوط به ORهای در دسترس را نگهداری میکند. این اطلاعات شامل پهنای باند، IP، کلید عمومی و غیره میشود که از آنها به عنوان directory information یاد میشود.

شکل :1 نحوه عملکرد شبکه [7] TOR

در مورد نحوه عملکرد شبکه تور، با توجه به شکل 1، باید چنین گفت که زمانی که کاربر توسط تور اقدام به گردش در اینترنت مینماید، یک مدار ساخته میشود. در ابتدا OP به منظور دریافت اطلاعات نودهای relay یک درخواست در قالب HTTP به DS ارسال مینماید. پس از دریافت این اطلاعات، سه OR به منظور تشکیل مدار انتخاب میشوند. بسته کاربر قبل از ارسال در ابتدا با کلید توافق شده با نود exit و سپس نود intermediate و در نهایت با نود entry رمز میشود. هر OR به محض دریافت بسته کاربر، آنرا رمزگشایی میکند و گام بعدی که بسته مورد نظر باید طی نماید را مییابد و درواقع در این شبکه هر نود به جای اطلاع از کل مسیر، فقط از نود قبلی و نود بعدی خود اطلاع دارد.

-4 چارچوب پیشنهادی برای شناسایی ترافیک TOR

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

طبق مقاله ای که در سال 2012 منتشر شده است[8]، ترافیک تور عادی دارای یک الگوری تکراری در پیغام  یباشد و به همین جهت فایروال کشورهایی همچون چین با روشهای DPI میتوانند به راحتی با دیدن این الگو که در بستههای ارسالی پس از برقراری ارتباط TCP وجود دارد، اقدام به مسدود کردن ارتباط کاربر با relay تور کنند. از این روی توسعه دهندهگان تور برای مبارزه با این فیلترینگ، افزونهای تحت عنوان obfsproxy را معرفی کردند3 که فاقد چنین الگوی تکراری در بستههای ارسالی میباشد و ترافیک بین کاربر و relay با روشهای DPI قابل مسدودسازی نخواهد بود.

بنا به آنچه گفته شد، استفاده از روشهای یادگیری ماشین جهت شناسایی ترافیک توری که از افزونههای مختلف استفاده میکند و ارزیابی میزان موفقیت آن، نمود بیشتری پیدا میکند و تلاش ما در این مقاله شناسایی این نوع از ترافیک تور میباشد. در این راستا ترافیک افزونههای obfsproxy و scramblesuit مورد بررسی و ارزیابی قرار گرفته است. افزونه scramblesuit علاوه بر داشتن مزیت اشاره شده برای obfsproxy، سعی میکند ویژگیهای آماری همچون اندازه بسته را متغیر نماید.

-1-4 ویژگیهای انتخاب شده

ویژگیهای مختلفی همچون اندازه بسته، مدت زمان جریان، مجموع تعداد بستهها، تعداد بایتهای ارسال یا دریافت شده، فاصله زمانی بین رسیدن بستهها و غیره را میتوان از ترافیک تور بدست آورد. از میان این ویژگیها، ما به انتخاب سه ویژگی "اندازه بسته"، "فاصله زمانی بین رسیدن بستهها" و "مدت زمان جریان" اکتفا کردیم تا با داشتن کمترین تعداد ویژگی، ضمن ارزیابی الگوریتمهای یادگیری اعمال شده، بار پردازشی کمتری داشته باشیم که در نتیجه آن، سرعت طبقهبندی ترافیک مورد نظر بالا رود. لازم به ذکر است ویژگی "مدت زمان جریان" از این جهت انتخاب شد که افزونههای تور نهایتا به دو یا سه bridge متصل میشوند و این باعث میشود میزان "مدت زمان جریان" به طرز چشمگیری افزایش یابد و به همین دلیل میتواند ویژگی خوبی برای تفکیک ترافیکهای ارسالی باشد.

-2-4 دادههای آموزشی و دادههای تست

در این پژوهش، برای بدست آوردن دادههای آموزشی مربوط به ترافیکهای obfsproxy و scramblesuit، دسترسی به پروتکل HTTP شامل بازدید از چندین سایت و ویدیو - با حجم کم - صورت گرفت. ترافیکهای مداخله کننده در دادههای آموزشی شامل موارد زیر میشوند:

·    ترافیک FTP

·    ترافیک Stunnel4

·    دسترسی مستقیم - بدون استفاده از ابزار ثانوی - به پروتکل HTTP

حجم ترافیک گرفته شده برای هریک از موارد بالا در جدول 1 نشان داده شده است:

جدول :1 حجم ترافیک انواع پروتکلها

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

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