از روز ۱۰ مرداد ناگهان یک اختلال گستره به جان اینترنت ایران افتاد و حتی در مواردی به سطح قطع کامل اینترنت برخی از آیاسپیها و اپراتورها هم رسید.
هم دادههای نتبلاکس و هم رادار ابرآروان وجود این اختلال و کاهش سطح پوششدهی سراسری اینترنت را تأیید میکردند.
با گذشت چند ساعت از اختلال در توضیح علت مشکل خبر رسید که حوضچه مخابراتی منطقه ۸ تهران دچار حریق شده (اینجا)؛ یعنی به عبارتی نقطه حساسی آسیب دیده که با عبور ۲۷۰۰ رشته فیبر نوری، هابِ فیبرهای مخابرات و زیرساخت محسوب میشود (و البته چنین حجمی از تراکم در یک نقطه در نوع خودش به لحاظ امنیتی واقعا حیرتانگیز است).
ولی در گیرودار این آتشسوزی که بیتردید در وضعیت اختلال شدید اینترنت موثر بود، شواهد و قرائن دیگری هم وجود داشت که نشان میداد همزمان حملاتی سایبری از نوع MitM از سمت زیرساخت در جریان بوده است (مثلا نگاه کنید به اینجا و اینجا و اینجا).
با این مقدمه میرسیم به این سوال که داستان حمله MitM چیست، دقیقا چه کار میکند و در برابرش چه باید کرد؟
عنوان MitM مخفف Man in the Middle یا «مرد میانی» است و انتخاب این نام از این جهت بوده که در این روشِ حمله یک شخص ثالث (هکر) بین گفتگوی دو طرف وارد میشود و بعد به جعل هویت و شنود اطلاعات دست میزند. هدف هم چیزی نیست جز سرقت اطلاعات شخصی مثل نام کاربری و رمز کاربران در سایتها و پلاتفرمهای مختلف، اطلاعات مالی کاربران در سایتهای فروشگاهی و غیره.
به طور خلاصه و ساده در این حمله هکر شبیه به سارقی است که در لباس پستچی ظاهر میشود و بسته را از شما تحویل میگیرد. حالا یا محتوای داخلش را برمیدارد و تغییر میدهد و بعد به مقصد تحویل میدهد یا همان بسته را به یک آدرس جعلی ارسال میکند.
در این حمله با استفاده از نرمافزار یا سختافزارهای کامپیوتری که اصطلاحا packet sniffer گفته میشود، در ارتباط بین کاربر (کلاینت) و سرور مانع ایجاد میشود تا ترافیک شبکه از زیر دست هکر بگذرد. به این ترتیب دست هکر برای جرح و تعدیل محتوای پکتهای داده و تغییر مسیر آنها باز میشود. به طور کلی دو نوع حمله MitM وجود دارد:
اول حملهای که در حالت «نشست فعال» (Active Session) صورت میگیرد. به این معنی که هکر ارتباط اولیه کاربر با سرور را قطع میکند و بعد خودش را به جای او قرار میدهد. از این مرحله به بعد هکر میتواند تمام کارهای یک کاربر عادی را انجام بدهد. مثلا اگر هدف حمله یک ایمیل آدرس بوده (ایمیل هاجک)، میتواند رمز آن را تغییر بدهد، ایمیلها را پاک کند، به دیگران ایمیل ارسال کند، فایلهای ضمیمه را دانلود کند و غیره.
نوع دوم، حمله در حالت «نشست غیرفعال» (Passive Attack) است. در این حالت حملهکننده میتواند بیسر و صدا و به طور نامحسوسی ترافیک شبکه را رصد کند و دنبال نام کاربری و رمزها و هر چیزی که میخواهد بگردد و قربانی همچنان تصور کند که تبادل اطلاعات به شکل عادی در جریان است. قاعدتا اگر فرصت مهیا باشد این حمله میتواند به حالت اول (نشست فعال) تبدیل بشود.
حالا به سوال اصلیتر این چند روز میرسیم. آیا گواهی SSL میتواند باعث دفع حمله MitM بشود؟ این سوال از این جهت مطرح بود که میدیدیم اتصال به برخی سایتها (علیرغم استفاده از پروتکل https) همچنان از سوی مرورگر یا نرمافزارهای اینترنت سکیوریتی «غیرایمن» محسوب میشد.
در مطلب قبلی اشاره شده که گواهی SSL یکی از پروتکلهایی است که برای رمزنگاری ترافیک و برقراری ارتباط امن بین کاربر (کلاینت) و سرور کاربرد دارد و همینکه آدرس یک وبسایت با https آغاز میشود به این معنی است که دارد از این گواهی استفاده میکند.
الگوریتمهای رمزنگاری باید دو عمل را انجام بدهند: یکی تایید (authentication) و دیگری رمزگذاری (encryption). برای انجام این عملیات از یک جفت کلید خصوصی و عمومی استفاده میشود. به این معنی که هر کسی میتواند یک داده را با «کلید عمومی» (Public Key) رمزگذاری کند، اما در عوض فقط کسی قادر به رمزگشایی آن داده است که «کلید خصوصی» (Private Key) را داشته باشد. بنابراین ارتباط ایمن تنها زمانی برقرار میشود که هر دو کلید با هم جفت (Pair) شوند.
وقتی شما گواهی SSL را روی سرور نصب میکنید، هرگونه مداخله شخص ثالث (از جمله حملات MitM) کنار گذاشته میشود. حتی اگر هکر امکان مسدودسازی دادههای میان کاربر و سرور را داشته باشد، ولی باز هم قادر به رمزگشایی نخواهد بود. به این دلیل ساده که «کلید خصوصی» منحصرا متعلق به سرور است و هکر این کلید را ندارد.
پس هکر باید یک ترفند بزند و به کاربر وانمود کند که خودش «سرور» است. برای اینکار باید گواهی جعلی و کلید خصوصی خودش را استفاده بکند. منتها از آنجایی که گواهیهای SSL از سمت مراجع شناختهشده صادر میشود، بنابراین هکر نمیتواند گواهی معتبری جعل کند. هر زمان که هکر سعی کند یک گواهی را جعل و کلید خصوصی خودش را ارائه کند، مرورگر متوجه غیرمعتبر بودنش میشود و با دادن پیام اتصال غیرامن (Not Secure) کاربر را متوجه خطر میکند.
در نتیجه ساختار گواهی SSL به گونهای است که وقوع حمله MitM را دفع و بلااثر میکند و این که مرورگر هنگام ورود به یک وب سایت با پروتکل https همچنان پیام «اتصال غیرامن» را نشان میدهد میتواند به این معنی باشد که شخص ثالثی این وسط تلاش کرده با ایجاد گواهی جعلی و کلید خصوصی خودش، قربانی را فریب بدهد و ترافیکش را رصد کند (از جستجوهایش در گوگل تا نام کاربری و رمز و پرداختهای اینترنتی و همه چیز، به استثنای دادههای رد و بدل شده داخل پیامرسانهایی که لایه جداگانه رمزگذاری دارند). حالا شما به جای «شخص ثالث» بگذارید فیلترچیهای دولت.
مقابله موثر با MitM در واقع فقط روی روتر یا سمت سرور میتواند باشد و کاربر کنترل ویژهای نمیتواند روی امنیت ترافیک داشته باشد. با این حال حداقل این نکات را میشود برای محافظت و افزایش ایمنی درنظر داشت:
الف. به طور کلی از وایفای عمومی و رایگان (مثل کافه و بیمارستان و ادارات و غیره) استفاده نکنید، مگر اینکه ترافیک DNS را با ابزارهایی مثل DNSCrypt رمزگذاری کرده باشید تا نشت اطلاعات و آسیبپذیری در برابر حملات MitM به حداقل برسد.
ب. از ورود به سایتها و اپلیکیشنهایی که علیرغم استفاده از پروتکل https همچنان از سوی مرورگر یا نرمافزار اینترنت سکیورتی «غیرایمن» محسوب میشوند خودداری کنید (مگر اینکه در مورد علت خطا حتم داشته باشید یا اطلاعات حساسی بین شما و وبسایت و اپلیکیشن جابجا نمیشود).
ج. مهمتر همه استفاده از VPN است تا ترافیک شما رمزگذاری بشود (فیلترشکنهایی که فقط IP یا جغرافیای شما را تغییر میدهند به مفت هم نمیارزند). در این حالت شرکت ارائهدهنده اینترنت (آیاسپی) هم قادر به انجام حمله MitM نخواهد بود.
وندا نوژن
فیلترنت و ماجرای اختلال عمدی پروتکلهای SSL/TLS
گام جدید صیانت: فعالسازی چراغخاموش «حالت کودک» در گوگل و نحوه دور زدن آن<br/>