حمله یک مرد در میانه (MITM) اصطلاحی کلی برای زمانی است که هکر خود را در مکالمه بین کاربر و یک برنامه قرار می دهد - یا برای شنود یا جعل هویت یکی از طرفین ، به نظر می رسد تبادل عادی اطلاعات است در جریان است. در رمزنگاری و امنیت رایانه، حملهٔ شخص میانی، شیوهای از شنود فعال است که حملهکننده، ارتباط مستقلی را با قربانی، برقرار میکند و پیامهای بین آنها را بازپخش میکند. به گونهای که آنها را معتقد میکند که در یک ارتباط مستقیم و خصوصی با یکدیگر، صحبت میکنند؛ در حالی که همه گفتگوهای آنها توسط حملهکننده، کنترل میشود. حملهکننده باید توانایی شنود همه پیامهای فرستاده شده بین دو قربانی و گذاشتن پیغام تازه را داشته باشد که در بسیاری از شرایط درست کار کنند. برای نمونه، حملهکنندهای با حوزهٔ دریافت یک پیام رمزنگاری نشده نقطه دسترسی بیسیم ، میتواند خودش را به عنوان یک مرد میانی جا بزند. یک حملهکنندهٔ مرد میانی در صورتی میتواند موفق شود که هر نقطهٔ انتهایی را با رضایت دیگری جعل هویت کند. این یک حمله (یا نبودِ) احراز هویت دو جانبهاست. بیشتر پروتکلهای رمزنگاری، شامل برخی از اشکال احراز هویت نقاط انتهایی، به ویژه برای جلوگیری از حملات مرد میانی هستند. برای نمونه، امنیت لایه انتقال (SSL) میتواند یک یا هر دو طرف را با استفاده از مجوز گواهی مورد اعتماد دو طرفه، احراز هویت کند.
هدف از حمله ، سرقت اطلاعات شخصی مانند اعتبار ورود به سیستم ، جزئیات حساب و شماره کارت اعتباری است. اهداف ، معمولاً کاربران برنامه های مالی ، مشاغل ، سایت های تجارت الکترونیکی و سایر وب سایت هایی هستند که ورود به آنها لازم است.
اطلاعات به دست آمده در هنگام حمله می تواند برای اهداف مختلفی از جمله سرقت هویت ، انتقال وجه تأیید نشده یا تغییر رمز عبور غیرقانونی استفاده شود.
بعلاوه ، می توان از آن برای بدست آوردن جای پا در داخل یک محیط امن در طول مرحله نفوذ استفاده کرد.
فرض کنید Alice میخواهد با Bob ارتباط برقرار کند. ضمناً، Mallory میخواهد که جلوی این مکالمه را با شنود و احتمالاً، رساندن پیغام غلط به Bob را بگیرد.
در آغاز، Alice کلید (رمزنگاری) عمومی خود را از Bob درخواست میکند. اگر Bob کلید عمومی خود را به Alice بدهد و Mallory توانایی شنود آن کلید را داشته باشد یک حمله شخص میانی آغاز میشود. Mallory یک پیام جعلی را که مدعی ارسال از طرف Bob است به Alice میفرستد اما به جای آن، کلید عمومی خودش را جایگزین آن میکند.
Alice با اعتقاد به اینکه کلید عمومی Bob را در اختیار دارد پیام خود را با کلید Mallory رمزنگاری میکند و پیام رمزنگاری شده را به Bob میفرستد. Mallory دوباره جلوی پیام را میگیرد و آن را با استفاده از کلید خصوصی خود رمزگشایی میکند و احتمالاً اگر بخواهد، آن را تغییر داده و دوباره با استفاده از کلید عمومی Bob رمزنگاری کرده و به Bob میفرستد. هنگامی که Bob پیام رمزنگاری شده تازه را دریافت میکند گمان میکند که پیام از طرف Alice آمدهاست.
در حقیقت Alice پیامی را که به Bob میفرستد Mallory شنود میکند.
Mallory دوباره این پیام را برای Bob مخابره میکند. Bob توانایی تشخیص پیام واقعی از سوی Alice را ندارد.
Bob با کلید رمزنگاری شدهاش پاسخ میدهد.
Mallory کلید Bob را با کلید خودش عوض کرده و پیامی را که مدعی کلید Bob است، دوباره برای Alice میفرستد.
Alice با اعتقاد به این موضوع که کلید در دست او متعلق به Bob است پیام را رمزنگاری کرده و گمان میکند که فقط Bob میتواند آن را بخواند.
با این وجود به دلیل اینکه پیام با کلید Mallory رمزنگاری شدهاست Mallory میتواند آن را رمزگشایی، خوانده، و مدیریت کند (و در صورت مطلوب بودن)، دوباره آن را با کلید عمومی Bob رمزنگاری کرده و به سمت Bob هدایت کند.
Bob تصور میکند که این پیام، یک ارتباط ایمن از طرف Alice است.
این نمونه نیاز Alice و Bob را برای داشتن راهی به منظور اطمینان از این که آنها به درستی از کلید عمومی یکدیگر به جای کلید عمومی مهاجم استفاده کنند نشان میدهد. در غیر این صورت، چنین حملاتی معمولاً ممکن و اصولاً در برابر هر پیامی هستند که با استفاده از فناوری کلید عمومی ارسال میشود. خوشبختانه روشهای گوناگونی برای دفاع در برابر حمله شخص میانی وجود دارند.
انواع روشهای دفاع در برابر حمله شخص میانی، از روشهای احراز هویت استفاده میکنند که بر پایهٔ موارد زیر است:
زیرساخت کلید عمومی
احراز هویت متقابل زیرساخت کلید عمومی. دفاع عمده، با انجام احراز هویت دوطرفه است. در این مورد، علاوه بر اینکه نرمافزار، کاربر را اعتبارسنجی میکند (در صورتی که برنامه گولزننده باشد استفادهٔ زیادی ندارد)، دستگاههای کاربران را نیز تأیید میکند. از این رو برنامههای گول زننده را از برنامههای اصلی تشخیص میدهد.
احراز هویت دو طرفه قویتر، همچون:
کلیدهای محرمانه (معمولاً با رمزی حاوی بینظمی زیاد اطلاعات و بنابراین، ایمنی بالا) و یا
گذرواژهها (معمولاً با رمزی حاوی بینظمی کم اطلاعات و بنابراین، دارای ایمنی کمتر است)
آزمون تأخیر زمانی، از جمله محاسبات طولانی رمزنگاری تابع Hash، که ممکن است دهها ثانیه طول بکشد. اگر ارتباط هر دو طرف به طور معمول ۲۰ ثانیه طول بکشد و محاسبات برای رسیدن پیام به هر یک از طرفین ۶۰ ثانیه طول بکشد این میتواند نشان دهندهٔ وجود شخص ثالث باشد.
پد یکبار مصرف که با فرض امنیت و اطمینان به پد یکبار مصرف، نسبت به حمله شخص میانی مصون است.
تصدیق Carry-forward
آزمونی که با حذف گواهیهای به خطر افتادهٔ صادره از مراجع صادرکنندهٔ گواهی برای رایانههای واقعی، انجام میشود و گواهیهای به خطر افتاده، پیش از حذف، برای تحلیل، به ناحیهٔ جعبه شنی فرستاده میشوند.
به طور کلی، درستی کلیدهای عمومی را باید از طریق روشی مطمئن شد، اما احتیاج به محرمانه بودن کلید ندارند. گذرواژهها و کلیدهای رمز به اشتراک گذاشته شده، نیازهای محرمانگی بیش تری را طلب میکنند. کلیدهای عمومی به وسیلهٔ یک مرکز تأیید گواهی که کلید عمومی آن از طریق یک کانال امن (برای نمونه، توسط یک مرورگر وب یا یک برنامهٔ نصب شدهٔ سامانهای) توزیع شدهاست بررسی میشود. کلیدهای عمومی نیز میتوانند از طریق یک وبگاه مورد اعتماد که کلید عمومی آن از طریق یک کانال امن (برای نمونه با جلسات چهره به چهره) توزیع شده، تأیید بشوند.
برای طبقهبندی پروتکلهایی که با استفاده از شکلهای گوناگون کلید و گذرواژه از حملات مرد میانی جلوگیری میکنند به پروتکل تبادل کلید نگاه کنید.
به طور کلی ، حمله MITM برابر است با این که یک پستچی صورت حساب بانکی شما را باز کند ، مشخصات حساب خود را بنویسد و سپس پاکت را دوباره بسته و آن را به درب خانه تحویل دهد.
حملات پیشرفته مردی در میان :
اجرای موفقیت آمیز MITM دارای دو مرحله مشخص است: رهگیری و رمزگشایی.
مرحله اول قبل از رسیدن به مقصد مورد نظر ، ترافیک کاربر را از طریق شبکه مهاجم رهگیری می کند.
متداول ترین (و ساده ترین) روش برای انجام این کار ، این است که در آن یک مهاجم WiFi hotspots رایگان را در دسترس عموم قرار می دهد. به طور معمول به روشی مطابق با مکان آنها نامگذاری می شود ، از WiFi hotspots با رمز عبور محافظت نمی شود. هنگامی که یک قربانی به چنین نقطه اتصالی متصل می شود ، مهاجم دید کامل نسبت به هرگونه تبادل داده آنلاین را بدست می آورد.
مهاجمین که مایلند رویکرد فعال تری برای رهگیری داشته باشند ، ممکن است یکی از حملات زیر را انجام دهند:
IP spoofing : شامل یک مهاجم است که با تغییر دادن هدرهای بسته در آدرس IP ، خود را به عنوان یک برنامه معرفی می کند. در نتیجه ، کاربرانی که می خواهند به یک URL متصل به برنامه دسترسی پیدا کنند به وب سایت مهاجم ارسال می شوند.
ARP spoofing : روند پیوند دادن آدرس MAC مهاجم با آدرس IP یک کاربر قانونی در یک شبکه محلی با استفاده از پیام های جعلی ARP نام دارد . در نتیجه ، داده های ارسال شده توسط کاربر به آدرس IP میزبان در عوض به مهاجم منتقل می شود.
DNS spoofing : همچنین به عنوان DNS cache poisoning شناخته می شود ، شامل نفوذ به یک سرور DNS و تغییر رکورد آدرس وب سایت است. در نتیجه ، کاربرانی که قصد دسترسی به سایت را دارند با تغییر رکورد DNS به سایت مهاجم هدایت می شوند .
رمزگشایی :
پس از رهگیری ، هرگونه ترافیک SSL دو طرفه ، باید بدون هشدار به کاربر یا برنامه رمزگشایی شود. تعدادی از روش ها برای دستیابی به این هدف وجود دارد:
HTTPS spoofing : پس از درخواست اولیه اتصال به یک سایت امن ، یک گواهی جعلی برای مرورگر قربانی می فرستد. این حکم اثر انگشت انگشتی دیجیتال مرتبط با برنامه به خطر افتاده را دارد ، که مرورگر آن را با توجه به لیست موجود از سایت های معتبر تأیید می کند. سپس مهاجم می تواند به داده ها وارد شده و قربانی قبل از انتقال به برنامه دسترسی داشته باشد.
SSL BEAST : در اینجا ، رایانه قربانی با JavaScript مخرب آلوده می شود و کوکی های رمزگذاری شده ارسال شده توسط یک برنامه وب را رهگیری می کند. سپس زنجیره بلوک رمزگذاری برنامه (CBC) به خطر می افتد تا کوکی ها و رمزهای تأیید اعتبار آن رمزگشایی شود. (browser exploit against SSL/TLS) targets a TLS version 1.0 vulnerability in SSL
SSL hijacking : وقتی مهاجم کلیدهای احراز هویت جعلی را به کاربر و برنامه در حین دست دادن TCP منتقل می کند ، به نظر می رسد یک اتصال ایمن است ، ولی در حقیقت ، مرد میانی کل جلسه را کنترل می کند.
SSL stripping : نقطه اتصال HTTPS به HTTP را با رهگیری احراز هویت TLS که از برنامه به کاربر ارسال شده است را پایین می آورد. مهاجم ضمن حفظ جلسه ایمن با برنامه ، یک نسخه رمزگذاری نشده از برنامه را برای کاربر ارسال می کند. در همین حال ، کل جلسه کاربر برای مهاجم قابل مشاهده است.
Man in the middle attack prevention | پیشگیری حمله مردی در میان
مسدود کردن حملات MITM به چندین مرحله عملی از طرف کاربران و همچنین ترکیبی از روش های رمزگذاری و تأیید برای برنامه ها نیاز دارد.
از اتصال WiFi که با رمز عبور محافظت نمی شود خودداری کنید.
توجه به اعلان های مرورگر که یک وب سایت را به عنوان ناامن گزارش می کنند.
هنگامی که از یک برنامه ایمن استفاده نمی شود ، بلافاصله از آن خارج شوید.
عدم استفاده از شبکه های عمومی (به عنوان مثال کافی شاپ ها ، هتل ها) هنگام انجام معاملات حساس.
Framework for Man-In-The-Middle attacks
MITMf برای پاسخگویی به نیاز ابزاری مدرن برای انجام حملات Man-In-The-Middle نوشته شده است. این یک نمونه ابزار برای تست این حملات میباشد که میتوانید با مراجعه به لینک زیر آن را دریافت کنید :
موفق باشید
هدف از حمله ، سرقت اطلاعات شخصی مانند اعتبار ورود به سیستم ، جزئیات حساب و شماره کارت اعتباری است. اهداف ، معمولاً کاربران برنامه های مالی ، مشاغل ، سایت های تجارت الکترونیکی و سایر وب سایت هایی هستند که ورود به آنها لازم است.
اطلاعات به دست آمده در هنگام حمله می تواند برای اهداف مختلفی از جمله سرقت هویت ، انتقال وجه تأیید نشده یا تغییر رمز عبور غیرقانونی استفاده شود.
بعلاوه ، می توان از آن برای بدست آوردن جای پا در داخل یک محیط امن در طول مرحله نفوذ استفاده کرد.
فرض کنید Alice میخواهد با Bob ارتباط برقرار کند. ضمناً، Mallory میخواهد که جلوی این مکالمه را با شنود و احتمالاً، رساندن پیغام غلط به Bob را بگیرد.
در آغاز، Alice کلید (رمزنگاری) عمومی خود را از Bob درخواست میکند. اگر Bob کلید عمومی خود را به Alice بدهد و Mallory توانایی شنود آن کلید را داشته باشد یک حمله شخص میانی آغاز میشود. Mallory یک پیام جعلی را که مدعی ارسال از طرف Bob است به Alice میفرستد اما به جای آن، کلید عمومی خودش را جایگزین آن میکند.
Alice با اعتقاد به اینکه کلید عمومی Bob را در اختیار دارد پیام خود را با کلید Mallory رمزنگاری میکند و پیام رمزنگاری شده را به Bob میفرستد. Mallory دوباره جلوی پیام را میگیرد و آن را با استفاده از کلید خصوصی خود رمزگشایی میکند و احتمالاً اگر بخواهد، آن را تغییر داده و دوباره با استفاده از کلید عمومی Bob رمزنگاری کرده و به Bob میفرستد. هنگامی که Bob پیام رمزنگاری شده تازه را دریافت میکند گمان میکند که پیام از طرف Alice آمدهاست.
در حقیقت Alice پیامی را که به Bob میفرستد Mallory شنود میکند.
کد:
Alice "Hi Bob, it's Alice. Give me your key"--> Mallory Bob
کد:
Alice Mallory "Hi Bob, it's Alice. Give me your key"--> Bob
کد:
Alice Mallory <--[Bob's_key] Bob
کد:
Alice <--[Mallory's_key] Mallory Bob
Alice با اعتقاد به این موضوع که کلید در دست او متعلق به Bob است پیام را رمزنگاری کرده و گمان میکند که فقط Bob میتواند آن را بخواند.
کد:
Alice "Meet me at the bus stop!"[encrypted with Mallory's key]--> Mallory Bob
کد:
Alice' Mallory "Meet me at 22nd Ave!"[encrypted with Bob's key]--> Bob
Bob تصور میکند که این پیام، یک ارتباط ایمن از طرف Alice است.
این نمونه نیاز Alice و Bob را برای داشتن راهی به منظور اطمینان از این که آنها به درستی از کلید عمومی یکدیگر به جای کلید عمومی مهاجم استفاده کنند نشان میدهد. در غیر این صورت، چنین حملاتی معمولاً ممکن و اصولاً در برابر هر پیامی هستند که با استفاده از فناوری کلید عمومی ارسال میشود. خوشبختانه روشهای گوناگونی برای دفاع در برابر حمله شخص میانی وجود دارند.
انواع روشهای دفاع در برابر حمله شخص میانی، از روشهای احراز هویت استفاده میکنند که بر پایهٔ موارد زیر است:
زیرساخت کلید عمومی
احراز هویت متقابل زیرساخت کلید عمومی. دفاع عمده، با انجام احراز هویت دوطرفه است. در این مورد، علاوه بر اینکه نرمافزار، کاربر را اعتبارسنجی میکند (در صورتی که برنامه گولزننده باشد استفادهٔ زیادی ندارد)، دستگاههای کاربران را نیز تأیید میکند. از این رو برنامههای گول زننده را از برنامههای اصلی تشخیص میدهد.
احراز هویت دو طرفه قویتر، همچون:
کلیدهای محرمانه (معمولاً با رمزی حاوی بینظمی زیاد اطلاعات و بنابراین، ایمنی بالا) و یا
گذرواژهها (معمولاً با رمزی حاوی بینظمی کم اطلاعات و بنابراین، دارای ایمنی کمتر است)
آزمون تأخیر زمانی، از جمله محاسبات طولانی رمزنگاری تابع Hash، که ممکن است دهها ثانیه طول بکشد. اگر ارتباط هر دو طرف به طور معمول ۲۰ ثانیه طول بکشد و محاسبات برای رسیدن پیام به هر یک از طرفین ۶۰ ثانیه طول بکشد این میتواند نشان دهندهٔ وجود شخص ثالث باشد.
پد یکبار مصرف که با فرض امنیت و اطمینان به پد یکبار مصرف، نسبت به حمله شخص میانی مصون است.
تصدیق Carry-forward
آزمونی که با حذف گواهیهای به خطر افتادهٔ صادره از مراجع صادرکنندهٔ گواهی برای رایانههای واقعی، انجام میشود و گواهیهای به خطر افتاده، پیش از حذف، برای تحلیل، به ناحیهٔ جعبه شنی فرستاده میشوند.
به طور کلی، درستی کلیدهای عمومی را باید از طریق روشی مطمئن شد، اما احتیاج به محرمانه بودن کلید ندارند. گذرواژهها و کلیدهای رمز به اشتراک گذاشته شده، نیازهای محرمانگی بیش تری را طلب میکنند. کلیدهای عمومی به وسیلهٔ یک مرکز تأیید گواهی که کلید عمومی آن از طریق یک کانال امن (برای نمونه، توسط یک مرورگر وب یا یک برنامهٔ نصب شدهٔ سامانهای) توزیع شدهاست بررسی میشود. کلیدهای عمومی نیز میتوانند از طریق یک وبگاه مورد اعتماد که کلید عمومی آن از طریق یک کانال امن (برای نمونه با جلسات چهره به چهره) توزیع شده، تأیید بشوند.
برای طبقهبندی پروتکلهایی که با استفاده از شکلهای گوناگون کلید و گذرواژه از حملات مرد میانی جلوگیری میکنند به پروتکل تبادل کلید نگاه کنید.
به طور کلی ، حمله MITM برابر است با این که یک پستچی صورت حساب بانکی شما را باز کند ، مشخصات حساب خود را بنویسد و سپس پاکت را دوباره بسته و آن را به درب خانه تحویل دهد.
حملات پیشرفته مردی در میان :
اجرای موفقیت آمیز MITM دارای دو مرحله مشخص است: رهگیری و رمزگشایی.
مرحله اول قبل از رسیدن به مقصد مورد نظر ، ترافیک کاربر را از طریق شبکه مهاجم رهگیری می کند.
متداول ترین (و ساده ترین) روش برای انجام این کار ، این است که در آن یک مهاجم WiFi hotspots رایگان را در دسترس عموم قرار می دهد. به طور معمول به روشی مطابق با مکان آنها نامگذاری می شود ، از WiFi hotspots با رمز عبور محافظت نمی شود. هنگامی که یک قربانی به چنین نقطه اتصالی متصل می شود ، مهاجم دید کامل نسبت به هرگونه تبادل داده آنلاین را بدست می آورد.
مهاجمین که مایلند رویکرد فعال تری برای رهگیری داشته باشند ، ممکن است یکی از حملات زیر را انجام دهند:
IP spoofing : شامل یک مهاجم است که با تغییر دادن هدرهای بسته در آدرس IP ، خود را به عنوان یک برنامه معرفی می کند. در نتیجه ، کاربرانی که می خواهند به یک URL متصل به برنامه دسترسی پیدا کنند به وب سایت مهاجم ارسال می شوند.
ARP spoofing : روند پیوند دادن آدرس MAC مهاجم با آدرس IP یک کاربر قانونی در یک شبکه محلی با استفاده از پیام های جعلی ARP نام دارد . در نتیجه ، داده های ارسال شده توسط کاربر به آدرس IP میزبان در عوض به مهاجم منتقل می شود.
DNS spoofing : همچنین به عنوان DNS cache poisoning شناخته می شود ، شامل نفوذ به یک سرور DNS و تغییر رکورد آدرس وب سایت است. در نتیجه ، کاربرانی که قصد دسترسی به سایت را دارند با تغییر رکورد DNS به سایت مهاجم هدایت می شوند .
رمزگشایی :
پس از رهگیری ، هرگونه ترافیک SSL دو طرفه ، باید بدون هشدار به کاربر یا برنامه رمزگشایی شود. تعدادی از روش ها برای دستیابی به این هدف وجود دارد:
HTTPS spoofing : پس از درخواست اولیه اتصال به یک سایت امن ، یک گواهی جعلی برای مرورگر قربانی می فرستد. این حکم اثر انگشت انگشتی دیجیتال مرتبط با برنامه به خطر افتاده را دارد ، که مرورگر آن را با توجه به لیست موجود از سایت های معتبر تأیید می کند. سپس مهاجم می تواند به داده ها وارد شده و قربانی قبل از انتقال به برنامه دسترسی داشته باشد.
SSL BEAST : در اینجا ، رایانه قربانی با JavaScript مخرب آلوده می شود و کوکی های رمزگذاری شده ارسال شده توسط یک برنامه وب را رهگیری می کند. سپس زنجیره بلوک رمزگذاری برنامه (CBC) به خطر می افتد تا کوکی ها و رمزهای تأیید اعتبار آن رمزگشایی شود. (browser exploit against SSL/TLS) targets a TLS version 1.0 vulnerability in SSL
SSL hijacking : وقتی مهاجم کلیدهای احراز هویت جعلی را به کاربر و برنامه در حین دست دادن TCP منتقل می کند ، به نظر می رسد یک اتصال ایمن است ، ولی در حقیقت ، مرد میانی کل جلسه را کنترل می کند.
SSL stripping : نقطه اتصال HTTPS به HTTP را با رهگیری احراز هویت TLS که از برنامه به کاربر ارسال شده است را پایین می آورد. مهاجم ضمن حفظ جلسه ایمن با برنامه ، یک نسخه رمزگذاری نشده از برنامه را برای کاربر ارسال می کند. در همین حال ، کل جلسه کاربر برای مهاجم قابل مشاهده است.
Man in the middle attack prevention | پیشگیری حمله مردی در میان
مسدود کردن حملات MITM به چندین مرحله عملی از طرف کاربران و همچنین ترکیبی از روش های رمزگذاری و تأیید برای برنامه ها نیاز دارد.
از اتصال WiFi که با رمز عبور محافظت نمی شود خودداری کنید.
توجه به اعلان های مرورگر که یک وب سایت را به عنوان ناامن گزارش می کنند.
هنگامی که از یک برنامه ایمن استفاده نمی شود ، بلافاصله از آن خارج شوید.
عدم استفاده از شبکه های عمومی (به عنوان مثال کافی شاپ ها ، هتل ها) هنگام انجام معاملات حساس.
Framework for Man-In-The-Middle attacks
MITMf برای پاسخگویی به نیاز ابزاری مدرن برای انجام حملات Man-In-The-Middle نوشته شده است. این یک نمونه ابزار برای تست این حملات میباشد که میتوانید با مراجعه به لینک زیر آن را دریافت کنید :
کد:
https://github.com/byt3bl33d3r/MITMf