حملات Man-in-the-Middle Attack (ارتباط ربایی SSL) – قسمت چهارم

در این مقاله قصد داریم به بررسی جعل SSL بپردازیم. این حمله ذاتا یكی از قویترین حملات MITM است زیرا سرویس­هایی را مورد سوء استفاده قرار می­دهد كه مردم آن­ها را ایمن فرض می­كنند.  
SSL و HTTPS
لایه سوكت امن (SSL) یا لایه امنیت انتقال (TLS) پروتكل­هایی هستند كه با استفاده از رمزگذاری ارتباطات شبكه، امنیت را تامین می­كنند. این پروتكل معمولا برای پیاده­سازی امنیت سرویس­هایی كه پروتكل­ها ارائه می­دهند، به پروتكل های دیگر وابسته است. نمونه­هایی از ابین قبیل پروتكل­ها عبارتند از SMTPS، IMAPS، و اغلب HTTPS. هدف نهایی این پروتكل ایجاد یك كانال امن بر روی شبكه­های ناامن است.
در این‌جا بر روی حملات SSL بر روی HTTP كه به عنوان HTTPS شناخته می­شوند تمركز می­كنیم زیرا یكی از رایج‌ترین كاربردهای SSL است. احتمالا شما هر روز از HTTPS استفاده می­كنید. بیشتر سرویس­های پست الكترونیكی محبوب و برنامه­های بانكداری آنلاین بر HTTPS تكیه می­كنند تا اطمینان حاصل نمایند ارتباط بین مرورگر وب شما و سرویس­های آن­ها رمزگذاری می­شود. اگر سرویس­های مذكور از این تكنولوژی استفاده نكنند، هر كسی می تواند با استفاده از یك شنودكننده بسته بر روی شبكه شما نام كاربری، رمز عبور و سایر مواردی كه به طور معمول باید مخفیانه باشند را به سرقت ببرد.
فرآیندهایی كه از پروتكل HTTPS استفاده می­كنند برای اطمینان از امنیت داده­ها، گواهینامه­هایی معتبر را بین سرور و كلاینت ارسال می­كنند. به عنوان مثال فرض كنید كاربری سعی دارد به یك حساب پست الكترونیكی Gmail متصل شود. این اقدام شامل چند مرحله مجزا می­شود كه در شكل 1 نشان داده شده است.
شكل (1): فرآیند ارتباط HTTPS
برای این ارتباط مراحل زیر صورت می­گیرد:
1. مرورگر كلاینت با استفاده از HTTP روی پورت 80 به سایت http://mail.google.com متصل می­شود.
2. سرور، كلاینت را با استفاده از كد پاسخ HTTP 302 به نسخه HTTPS سایت هدایت می­كند.
3. كلاینت روی پورت 443 به سایت http://mail.google.com  متصل می­شود.
4. سرور یك گواهینامه حاوی امضای دیجیتالی را برای كلاینت ارسال می­كند. این گواهینامه به منظور بررسی هویت سایت استفاده می­شود.
5. كلاینت گواهینامه را دریافت می­كند و با توجه به لیست مراجع گواهینامه معتبر خود، گواهینامه مزبور را بررسی می­كند.
6. ارتباطات رمزگذاری می­شود.
اگر فرآیند اعتبارسنجی گواهینامه با شكست مواجه شود به این معنی است كه وب سایت به منظور بررسی هویت آن با شكست مواجه شده است. در این مرحله به طور معمول یك خطای ارائه گواهینامه نمایش داده می­شود و كاربر می تواند انتخاب كند كه با پذیرفتن خطر به آن وب سایت متصل شود زیرا واقعا مشخص نیست كه وب سایتی كه به آن متصل می­شود همان وب سایت اصلی است.
حمله علیه  HTTPS
چندین سال پیش، زمانی‌كه حمله ای منتشر شد كه می توانست فرآیند ارتباط را با موفقیت ارتباط ربایی نماید، پروتكل بسیار امن HTTPS  مطرح شد.   
ماكسی مارلین اسپایك، یك محقق امنیتی معروف فرضیه ای ارائه داد كه در اكثر موارد SSL به طور مستقیم به كار برده نشود. در این حالت در اكثر موارد ارتباط SSL از طریق HTTPS آغاز می­شود و كاربران از طریق یك كد پاسخ HTTP 302 یا با كلیك كردن بر روی لینكی كه آن‌ها را به HTTPS هدایت می­كند به یك HTTPS هدایت می­شوند.
فرآیند ارتباط ربایی SSL نسبتا ساده است. در شكل 2 خلاصه ای از این حمله را مشاهده می­كنید.
شكل (2): ارتباط ربایی HTTPS
مراحل اجرای فرآیند مشخص شده در شكل 2 به شرح زیر است:
1. ترافیك­های بین سرور و كلاینت ابتدا توسط هكر دریافت شده و پس از اعمال تغییراتی برای طرف مقابل فرستاده می­شود.
2. اگر هكر با یك آدرس HTTPS مواجه شود، با استفاده از sslstrip، آن آدرس را با یك لینك HTTP عوض می­كند و تغییرات را نگه می­دارد.
3. ماشین مهاجم یك گواهینامه از طرف سرور به كلاینت ارائه می­دهد و سپس اطلاعات كلاینت را به سرقت می­برد.  
4. ترافیك­ها توسط هكر از وب سایت امن دریافت می­شوند و به كلاینت ارائه داده می­شوند.
این فرآیند به خوبی كار می­كند و تا آن­جا كه به سرور مربوط می­شود، ترافیك را به صورت SSL دریافت می­كند و متوجه این حمله نمی­شود. تنها تفاوت قابل مشاهده در سمت كلاینت است كه ترافیك را در مرورگر خود به صورت HTTPS دریافت نمی­كند. در این حالت یك كاربر آگاه می­تواند از وجود چنین حمله ای مطلع شود.
دفاع در برابر ارتباط ربایی SSL
همانطور كه قبلا اشاره شد، ارتباط ربایی SSL در این روش تقریبا از سمت سرور غیر قابل تشخیص است. در این حالت سرور نمی­تواند تشخیص دهد كه ارتباط آن با كلاینت از طریق یك واسط است. خوشبختانه، مواردی وجود دارد كه می تواند از طرف كاربر اعمال شود تا این نوع حملات را تشخیص داده و در برابر آن از خود دفاع نماید.
·         اطمینان حاصل نمایید كه ارتباطات امن از طریق HTTPS انجام می­شود: در این نوع حملات اگر شما هنگام ورود به بانكداری آنلاین خود متوجه شدید كه فقط یك ارتباط استاندارد HTTP است، می­توانید اطمینان حاصل نمایید كه گرفتار این حمله شده اید. برای پیشگیری از این نوع حملات، هنگام مشاهده وب سایت­ها باید قدرت تشخیص ارتباط امن از ارتباط ناامن را داشته باشید.
·         انجام كارهای بانكداری آنلاین در منزل: شانس افراد خرابكار برای دسترسی به اطلاعات ترافیك شما بر روی شبكه خانگی به مراتب كمتر از دسترسی به اطلاعات ترافیك شما بر روی شبكه كاری است. البته به آن دلیل نیست كه شبكه خانگی شما امن تر است، بلكه واقعیت آن است كه اگر شما تنها یك یا دو كامپیوتر در خانه دارید، بیشترین نگرانی شما در مورد شرائط ارتباط ربایی نشست می تواند افرادی باشند كه مشغول مشاهده یك فیلم ویدئویی هك شده بر روی یوتیوب هستند. اما در شبكه كاری نمی دانید در اتاق‌ها و یا شعبه­های دیگر شركت چه می گذرد در نتیجه منابع حمله احتمالی زیاد است. توجه داشته باشید كه یكی از بزرگترین هدف‌ها در ارتباط ربایی نشست، بانكداری آنلاین است.
·         امن‌سازی ماشین‌های شبكه داخلی: معمولا این‌گونه حملات از دورن شبكه اجرا می‌شوند. اگر دستگاه‌های شبكه امن باشند در نتیجه شانس كمتری وجود دارد تا میزبان‌هایی كه برای راه اندازی حمله ارتباط ربایی از آن‌ها سوء استفاده می‌شوند، به خطر بیفتند.  
خلاصه
این نوع از حمله MITM یكی از مرگبارترین حملات است زیرا زمانی اتفاق می افتد كه ما فكر می­كنیم یك ارتباط امن با وب سایت مورد نظر داریم در صورتی­كه این ارتباط كاملا ناامن است. اگر شما در نظر بگیرید كه هر روز چندین سایت امن را مشاهده می­كنید و سپس در نظر بگیرید كه با توجه به توان بالقوه این حمله تمامی این اتصالات ناامن باشند و اطلاعات به دست افراد خرابكار بیفتد، می­توانید درك كنید كه شما و سازمان شما تا چه میزان تحت تاثیر این حمله قرار می‌گیرد.

About Mahyar

OrcID: 0000-0001-8875-3362 ​PhD Candidate (National Academy of Sciences of Ukraine - Institute for Telecommunications and Global Information) MCP - MCSA - MCSE - MCTS Azure Security Engineer Associate MCITP: Enterprise Administrator CCNA, CCNP (R&S , Security) ISO/IEC 27001 Lead Auditor CHFI v10 ECIH v2

Check Also

کشف مقایر متغیر های Plain Text از حافظه در سیستم عامل اندروید

1. Upload the file$ adb push gdbserver /sdcard  2. Enter a shell and become root …