نزدیک به دو هفته از اعلام عمومی آسیب‌پذیری EFail میگذره و بسیاری از گروه‌ها و سازمان‌ها نظرات مختلفی در مورد این آسیب‌پذیری ارائه داده‌اند. در آیس‌کت با توجه به قوانین جرائم سایبری موجود در ایران معمولاً حرفی از آسیب‌پذیری‌ها نمیزنیم، چراکه برای درک یک مطلب امینتی شما باید حتماً نحوه اکسپلویت کردن اون آسیب‌پذیری را به چشم ببینید و این موضوع متاسفانه برخلاف بسیاری از کشورهای پیشرفته خلاف قوانین هست و کمترین مجازات اینکار بسته شدن وبسایت خاطی است، اما با توجه به اهمیت موضوع تصمیم گرفتیم برای درک بهتر این آسیب‌پذیری پر سر و صدا مطلبی رو منتشر کنیم. لازم به ذکر است که این مطلب تنها بصورت تئوری به تشریح آسیب‌پذیری میپردازیم و هیچگونه اکسپلویتی ارائه نشده است، اما در هر صورت توجه داشته باشید که آیس‌کت و نویسندگان آن هیچ مسئولیتی در قبال استفاده نادرست شما از این مطلب ندارد و این مطلب تنها برای افزایش آگاهی و محافظت شما در برابر این آسیب‌پذیری منتشر شده است.

آسیب‌پذیری EFail که چندی قبل بصورت عمومی منتشر شد، به فرد حمله‌گر اجازه میدهد ایمیل‌های رمزنگاری شده شما به شیوه PGP یا S/MIME را رمزگشایی و مشاهده کند، البته به شرط آنکنه ایمیل‌های رمزنگاری شده شما را از راه‌هایی نظیر حملات MITM، دزدی مستقیم ایمیل‌های رمزنگاری شده از کامپیوتر شخصی شما، حمله به سروری که ایمیل‌های شما در آن قرار دارد و... بدست آورده باشد.

برخلاف چیزی که از متخصصان امنیت اطلاعات ممکنه شنیده باشید و یا در سایت‌ها خوانده باشید، این آسیب‌پذیری هیچ ربطی به پروتکل PGP یا GnuPG ندارد و این استاندارد همچنان کاملاً امن است. متاسفانه برخی افراد و سازمان‌ها از جمله EFF بدون بررسی این مشکل سریعاً اقدام به انتشار بیانه‌هایی غیر معقول کردند که از جمله آنها غیرفعال کردن کامل رمزنگاری در ایمیل‌ها بود!، پیشنهادی که بسیاری از افراد، گروه‌ها و سازمان‌ها از جمله GnuPG و Mozilla به آن اعتراض کردند و گمانه‌زنی‌هایی مبنی بر اینکه این بنیاد (EFF) برخلاف شعارش که حفظ امنیت داده‌ها و آزادی بیان است، با آژانس‌های اطلاعاتی در ارتباط است و هدف آن برخلاف شعارش نقض حقوق افراد در داشتن حریم شخصی است. البته این بنیاد (EFF) بطور همزمان کاربران را تشویق میکرد که بجای PGP از روش‌های جدید مانند Signal استفاده کنند که خوشبختانه یک روز بعد از این پیشنهاد، یک آسیب‌پذیری XSS در برنامه Signal پیدا شد که مراتب میتوانست خطرناک‌تر از آسیب‌پذیری EFail باشد و همین امر منجر به ساکت شدن EFF در این زمینه شد، ضمن اینکه EFF هرگز از استاندارد S/MIME صحبتی نکرد و تمام اتهامات را به PGP وارد کرد، لذا GnuPG در صفحه رسمی توییتر خود بصراحت اعلام کرد به EFF مشکوک است و EFF برخلاف آنچه ماموریت خود میداند بدون مشورت با هیچکدام از افراد کلیدی PGP اقدام به توصیه‌های نابجا کرده است.

لارم به ذکر است که مشکل این آسیب‌پذیری از نحوه پیاده‌سازی این پروتکل‌ها در کلاینت‌های ایمیل است و همانطور که گفته شد PGP هیچ مشکلی ندارد. در زیر به بررسی این مشکل با توجه به Technical Paper منتشر شده توسط تیم امنیتی کاشف EFail میپردازیم (البته بصورت مختصر).

 

همانطور که میدانید ایمیل راه حلی قدیمی برای برقراری ارتباط بین افراد است. ایمیل به خودی خود بصورت Plaintext ارسال میشود، یعنی محتوای آن کاملاً قابل خواندن برای هر کسی است. تنها سد امنیتی برای ایمیل‌ها استفاده از TLS است. TLS همانند SSL وظیفه حفاظت داده‌ها به هنگام انتقال داده‌ها را دارد (در واقع TLS نسخه جدیدی از پروتکل SSL است) و مطمعن میشود که داده‌های شما بصورت رمزنگاری شده رد و بدل شوند. اما چه اتفاقی میافتد اگر با استفاده از حملاتی که برای این پروتکل‌ها طراحی شده است این لایه امنیتی را دور بزنیم؟ چه اتفاقی میافتد اگر سروری که ایمیل شما از آن سرویس میگیرد هک شود و یا توسط مدیر سرور مورد سوء استفاده قرار گیرد؟

واضح است که اطلاعات شما قابل خواندن میشود، پس برای حفظ امنیت و اطمینان از اینکه هیچکس جز گیرنده ایمیل نتواند آنرا بخواند، از پروتکل‌های رمزنگاری end-to end نظر PGP و S/MIME استفاده میکنیم. این پروتکل‌ها با استفاده از روش رمزنگاری نامتقارن مطمئن میشوند که تنها گیرنده پیام قادر به خواندن آنها است، بنابراین اگر در بین راه TLS توسط ISP، دولت‌ها یا فرد هکر مورد حمله قرار گرفت و یا ایمیل سرور ارائه دهنده ایمیل شما مانند GMail هک شد و اطلاعات آن دزدیده شد و یا کسی فایل‌های شما را بطور مستقیم از کامپیوترتان کپی کرد، تنها چیزی که مشاهده میکند چند خط پیام رمزنگاری شده است که بدون کلید خصوصی و رمز عبور شما قابل خواندن نیست. واضح است که این مورد برای فعالین حقوق بشر، روزنامه‌نگاران و سایر افرادی که نیازمند حریم خصوصی قوی هستد بسیار ضروری است.

 

EFail چگونه باعث دور زدن PGP و S/MIME میشود؟

در ابتدا باز هم تکرار میکنم که این آسیب‌پیذری به دلیل وجود باگ در PGP یا S/MIME بروز نمیکند، بلکه مشکل اصلی پیاده‌سازی این استاندارد توسط برنامه‌نویسان است. مشکل از آنجایی شروع میشود که فرد هکر با نفوذ به TLS (یا دزدی مستقیم از کامپیوتر، یا هک کردن سرور میزبان ایمیل شما) ایمیل رمزنگاری شده شما را مشاهده میکند. بطور مثال متن زیر عبارت رمز شده «test message from icecat.ir» است که بوسیله کلید عمومی من رمزنگاری شده است و به شکل زیر در آمده است:

-----BEGIN PGP MESSAGE----- 
hQIMA2Ui3ljp/JzoAQ/+OwH9zSe5bAU51TnHQcwPK6mV9XU5utTXTiiLrfOifZxN 
4QuJkyxZ3c2RWrF4pAbXIlGrnHVez//RK1zwMC40tUi8GmCJvnboURQoMTfJE6ia 
ZwaS7qtvID9q1X7Ep5VeKbP2pKgYe4iEVStKkoxSiq1k6hH41GIwTglkEXJOurCY 
cWjvYSQSM8joNFAsO5/JBLY3bQ6jPW0NoyuQK3tPrbUVDNMTkbAWu7iYZwoCP09L 
8BqQoVbToxCUq36JQVcLBK+iABUJo+tSPzMj7BCxFvtESp/2AX1je4pGF/HKkDha 
LCceu63EyfTF+HWXzDzNkRQuUafRdDtKL4LZZwAz2aB6nMPNDyZq06xLB5GI0XL4 
jCOLHDyRqmbNhPYaEXGZzhC5tZQiUIiMigPdL+05mD90oJE+AmQwrhfWo+gKtrn2 
hFTVqB8P0BUNem1jNaIdBid2JwxeQF3PhKkcoDReV7bA1M8MDLZ5cVpEp6wxxQtr 
1szTmfOYJZE7O2IVPNei4pah7RaVMp7T1KquAQr21/9kLA8aQH+de3SKrCYGMpqE 
DIDER3ub3PAArJQJflrfhFATOWxYlpAvOhJSVqQnZ1U4q/6ycsMdD/P3E5zopSBB 
7SAwq+9Cus8nhDPV/rRIkfo4GjP0uFIq2bJ3Ap9qqZnWQeY95jVszEePvzIpVYDS 
6QGCQSAfENeqnUkNrn4Blmkp+TZOXVzkXb9wawspsiAhmrEb9N5Xp4j7Co9UM3Tt 
oFbzgY1a++D0OZzI/LNFNzK3xvSPO0j0kjv3WnQqtTVjj0MmjWrbUqORcwhXbtzm 
1KCIRSoARLaqJ4QuVEFxa8P55eUu4bo+VZbwz0/Poo3ZB5/kxbYqInHMfsYgU4Wb 
MPR3Vk3PlBcHv1dhyuoZcb5IEcFZFARLD7cOKIy2SQbrXFtvAetem8SnQi1Gjspj 
uVnRMUTksZUjCRhCtyxBdNLt9hTMAlnBzl1fx0NHcPJiw5g9v6/oZ/hyYXaWRowm 
ou5yjbYgw907WqUwO/nzJBEuWHkSTZjI313IDphYeS049x0hAndAYj//BNq1yNFe 
1m0klPY5YF3EBCBfgkaP3/0hGAsVxDjSU8vMhxu0/8/Pz43+H+dEcu1Z8WV16KPo 
sGt2I3m3dxPah65Xzf/sio0EmKUbKggGu6VWOrgmco+m1OotEG/U5aPIT0AoDgGn 
9MyvtBlxlZ6oz+GJyb/HZxIAv4lqtxpgV2NkETwL2PglfxEI19K2kAW9aRCNAfXu 
XD+0KNAHEDTZ5XM9BZYqGSKljUWUbbQ9wwbY5nZGfgleq5jKBybvceE+HkUwdkj1 
iq0s0QFml4zrT/LBb7ycML2KCg29xUh6ZicBQi+XNs5pnuTifzfjEKsQMKeCZ8HH 
pCEagrmhG/4VKwQCBJ1u49M07kXADaayP6yMe9TeBrtATxRRgIXtA834POrGbmBD 
O1ikAuICRsnwoOTPRr7u9eviqzT9FLGwwclwGFi6tnkP11eJr106RgFlix13Bi6L 
lS2Qa3nTQjjW5P/V5vJ3XQ1aw9mogakPnQ+ZZj8LLKpc1UczXFyV5ykfPxxk0rOi
=oMwj 
-----END PGP MESSAGE-----

 

 حال چه اتفاقی می‌افتد اگر من بعد از دزدیدن این پیام رمزشده، ایمیل زیر را برای قربانی ارسال کنم؟

 

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

جریان از این قرار است که من یک عکس در ایمیل قرار داده‌ام که آدرس آن بجای یک عکس واقعی، آدرسی از سایت و اسکریپت خودم است که بطور ویژه برای بهره برداری از این اکسپلویت نوشته‌ام. هر آنچه که جلوی کاراکتر = در آدرس قرمز رنگ اول نوشته شود، در دیتابیس سایت من جهت بررسی ذخیره میشود، اما چه عبارتی در مقابل این = قرار میگیرد؟

هنگامی که ایمیل به دست قربانی میرسد، با توجه به محتوای کد شده آن، کلاینت از کاربر درخواست کلید خصوصی و رمز عبور را میکند، با وارد کردن آن، کلاینت اقدام به دیکد کردن متون رمزنگاری شده میکند، لازم به ذکر است که من در مقابل = متن رمزنگاری شده‌ای که دزدیده‌ام را نوشته‌ام (بصورت Bold در تصویر دیده میشود).

بنابراین به محض دیکد کردن و به هنگام رندر، در واقع این متن بجای متن بالا بارگذاری میشود:

واضح هست که به هنگام لود شدن این تصویر، درخواستی به سایت و اسکریپت من فرستاده میشه که در اون متن «test message from icecat.ir» قرار گرفته و این متن در دیتابیس جهت بازبینی من قرار میگیره.

پس همانطور که مشاهده کردید، مشکل ربطی به PGP یا S/MIME ندارد، بلکه ایراد از کلاینت‌های ایمیل است که بدون بررسی کد فرستاده شده منجر به Exfiltration اطلاعات رمزنگاری شده میشود. (Exfiltration به معنی انتقال بدون اجازه اطلاعات از یک کامپیوتر میباشد)

 

چه کسانی در معرض خطرند؟

شما تنها زمانی در خطر هستید که اولاً از رمزنگاری PGP یا S/MIME برای ایمیل‌های خود استفاده کنید و دوماً فرد مهاجم به هر طریقی به ایمیل‌های رمزنگاری شده شما دسترسی داشته باشد. همانطور که در مثال بالا هم دیدید من اول یک ایمیل رمزنگاری شده داشتم و سپس با استفاده از EFail اقدام به رمزگشاییش کردم. اگر کلاً ایمیل‌های خود را رمزنگاری نمیکنید، پس این آسیب‌پذیری به هیچ عنوان ارتباطی با شما ندارد.

 

مصون ماندن از حمله

بهترین کار برای اینکه از حملات EFail در امان باشید این است که کلاینت‌های ایمیل خود را بروز کنید، اما تا زمانیکه پچ مربوط به این آسیب‌پذیری اعمال گردد و نسخه جدیدی منتشر شود، به راحتی میتوانید با خاموش کردن Remote Content در کلاینت ایمیل خود از بروز این مشکل جلوگیری کنید. در Thunderbird این مورد بطور پیشفرض خاموش است و شما را ایمن نگاه میدارد، اما به هنگام باز کردن ایمیل باید توجه کنید در پنجره Pop-up باز شده برای نمایش محتوای خارجی (Remote Content) دکمه Allow را فشار ندهید. همچنین پلاگین Enigmail خود را حتماً بروزرسانی کنید، چراکه در نسخه جدید میتواند پیام هشداری در صورت آلودگی به این حمله به شما نشان دهد.

 

آیا باید کلید خود را Revoke کنم؟

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

 

کدام کلاینت‌ها در معرض این آسیب‌پذیری هستند؟

در زیر به معرفی کلاینت‌های آسیب‌پذیر نسبت به EFail پرداخته‌ایم، توجه داشته باشید که حمله EFail به دو صورت حمله مستقیم و همچنین حمله به CBC (شیوه مورد استفاده در استاندارد S/MIME) یا CFB (شیوه مورد استفاده در استاندارد PGP) انجام میپذیرد. شما میتوانید با کلیک بر روی هر کدام از عکس‌ها، آنرا بزرگتر ببنید:

لیست زیر وضعیت کلاینت‌های مختلف را در صورت استفاده از S/MIME نمایش میدهد:

 

وضعیت محصولات مختلف نسبت به EFail در صورت استفاده از PGP:

 

همچنین محصولات زیر بصورت مستقیم و بدون نیاز به تغییر CBC یا CFB نسبت به EFail آسیب‌پذیرند، یعنی برای اکسپلویت کردن آنها تنها لازم است همانند آنچه پیشتر شرح داده شد، تگ IMG خود را بوسیله یک ایمیل برای هدف خود ارسال کنیم:

efail direct attack

رنگبندی‌ها:

  • سبز: محصول آسیب‌پذیر نیست.
  • نارنجی: محصول در صورت دخالت کاربر آسیب‎پذیر است.
  • قرمز: محصول حتی بدون دخالت کاربر آسیب‌پذیر است.

 

منابع: