بر اساس گزارش محقق پروژه، Cupid به دو وصله ای كه می تواند به برنامه های hostapd و wpa_supplicant در لینوكس اعمال شود نامگذاری شده است. این وصله رفتار دو برنامه ذكر شده را جهت سواستفاده از نقص heartbleed در ارتباطات TLS كه در انواع خاصی از شبكه های بی سیم با رمز عبور محافظت شده اتفاق می افتد تغییر می دهد.
بر اساس گزارش محقق پروژه، Cupid به دو وصله ای كه می تواند به برنامه های hostapd و wpa_supplicant در لینوكس اعمال شود نامگذاری شده است. این وصله رفتار دو برنامه ذكر شده را جهت سواستفاده از نقص heartbleed در ارتباطات TLS كه در انواع خاصی از شبكه های بی سیم با رمز عبور محافظت شده اتفاق می افتد تغییر می دهد.
به گزارش افتانا (پایگاه خبری امنیت فناوری اطلاعات)،Hostapd برنامه ایست كه یك Access Point قابل تنظیم را بر روی لینوكس نصب می كند و قادر است تا تقریبا هر نوع پیكر بندی از شبكه های بی سیم را ایجاد نموده و به كاربران اجازه اتصال به آن را بدهد.
Wpa_supplicant برنامه ایست كه جهت اتصال به شبكه های بی سیم در لینوكس و اندروید مورد استفاده قرار می گیرد.
نكته جالب این است كه، هر دو برنامه توسط یك شخص نوشته شده است و كدهای شبیه به یكدیگر دارد.
نحوه انجام حمله:
این نوع از حمله اساسا شبیه حمله heartbleed است كه بر اساس یك بسته heartbeat مخرب پایه ریزی شده است. همانند حمله heartbleed كه در ارتباطات TLS مبتنی بر پروتكل TCP اتفاق می افتد، در اینجا نیز كلاینت و سرور هر دو ممكن است مورد سوء استفاده قرار گرفته و فرآیندهای حافظه در هر دو سمت ارتباط خوانده شود.
تفاوتی كه در این سناریو وجود دارد این است كه در این حالت ارتباط TLS بر مبنای EAP می باشد كه یك مكانیزم اعتبار سنجی مورد استفاده در شبكه های بی سیم است. EAP یك چارچوب مورد استفاده در مكانیزم های تایید هویت مختلف است و چند نمونه از آن كه از TLS استفاده می كنند شامل EAP-PEAP، EAP-TLS، EAP-TTLS می باشند. EAP همچنین در تایید هویت ارتباطات ۸۰۲.۱x و peer ۲ peer مورد استفاده قرار می گیرد.
به منظور سواستفاده از كلاینت های آسیب پذیر، hostapd ( همراه با وصله cupid ) می تواند جهت راه اندازی یك شبكه مخرب مورد استفاده قرار گیرد به نحوی كه هر زمان كه كلاینت آسیب پذیر سعی در اتصال و درخواست ارتباط TLS را می كند، hostapd درخواست های heartbeat مخرب را ارسال می نماید.در این حالت حتی پیغام "Server Hello" نیز برای كلاینت ارسال نمی گردد و به محض اینكه كلاینت آسیب پذیر، درخواست ارتباط TLS را داده و پیغام "Client Hello" را ارسال می كند، درخواست های heartbeat برایش فرستاده می شود.
در حالی كه كلاینت از دریافت پاسخ خشنود می باشد، بیشتر از ۶۴ كیلوبایت از حافظه خوانده می شود. از جمله مواردی كه به احتمال زیاد از حافظه خوانده خواهد شد كلید خصوصی گواهینامه مورد استفاده در ارتباط TLS و همچنین اطلاعات كاربر جهت تصدیق هویت می باشد.به منظور سواستفاده از سرورهای آسیب پذیر می توان wpa_supplicant (همراه با وصله cupid) را بدین شكل مورد استفاده قرار داد كه یك درخواست ارتباط به یك شبكه آسیب پذیر ارسال و درست بعد از اینكه ارتباط TLS برقرار شد درخواست مخرب heartbeat ارسال گردد.
برای این منظور ابتدا یك نام كاربری(EAP Identity) فراهم شده و سپس یك اتصال TLS بر مبنای EAP جهت تصدیق هویت (با استفاده از EAP-PEAP) ایجاد می گردد. در ادامه cupid درخواست های heartbeat را درست بعد از پیغام "Client Hello" برای شبكه آسیب پذیر ارسال می نماید بدون اینكه نیازی به برقراری كامل ارتباط TLS (handshake) باشد و در نهایت موجب می شود تا به ازای هر درخواست heartbeat حدود بیشتر از ۶۴ كیلو بایت از حافظه خوانده شود.
نكته مهم اینست كه نیازی به برقراری كامل ارتباط TLS جهت حمله heartbleed نمی باشد. همچنین نیازی به رد و بدل شدن كلیدهای واقعی و گواهی نیز نمی باشد. در واقع امكان ارسال و دریافت پاسخ های heartbeat درست بعد از پیغام "Client Hello" (قبل از اینكه گواهینامه ها ارائه شوند یا كلید های نشست رد و بدل شوند) وجود دارد.
به منظور بهره برداری از این آسیب پذیری نیازی به ارائه نام كاربری و رمز عبور معتبر هم نمی باشد. بعضی اوقات جهت سوء استفاده از یك سرور آسیب پذیر فقط باید یك نام كاربری معتبر(بدون رمز عبور) ارائه گردد تا EAP كاربر را به سرور احراز هویت مناسب هدایت كند كه این را به راحتی می توان از طریق شنود كردن زمانی كه كاربر حقیقی سعی در برقراری ارتباط دارد بدست آورد.
چه نرم افزارهایی تحت تاثیر این آسیب پذیری قرار دارند؟
بر روی سیستم عامل Ubuntu ، اگر یك نسخه آسیب پذیر OpenSSL مورد استفاده قرار گیرد، wpa_supplicant، hostapd و freeradius كه به صورت پیش فرض بر روی آن نصب شده، ممكن است مورد سوء استفاده قرار گیرد.
سیستم عامل آندروید، نسخه های ۴.۱.۰ و ۴.۱.۱ از نسخه آسیب پذیر OpenSSL استفاده می كنند. همچنین تمام نسخه های آندروید از wpa_supplicant برای اتصال به شبكه های بی سیم استفاده می كنند، به همین خاطر فرض بر این است كه احتمالا آسیب پذیر هستند.
اگر از دستگاهی با سیستم عامل آندروید، نسخه ۴.۱.۰ یا ۴.۱.۱ استفاده می شود باید از اتصال به شبكه های بی سیم ناشناس اجتناب شود مگر اینكه ROM دستگاه ارتقاء داده شود.اگر از سیستم عامل لینوكس جهت اتصال به شبكه های بی سیم استفاده شود، باید از ارتقاء كتابخانه های OpenSSL اطمینان حاصل كرد. بدین منظور می بایست توصیه های heartbleed مورد توجه قرار گیرد.
اگر از یك روتر خانگی استفاده می شود، احتمالا در برابر چنین حمله ای امن می باشد زیرا بیشتر روترهای خانگی از یك تك كلید برای امنیت بی سیم استفاده می كنند و مكانیزم احراز هویت EAP را مورد استفاده قرار نمی دهند.
ولی در صورتیكه از راهكارهای سازمانی برای اتصال به شبكه بی سیم استفاده می نمایید، می بایست آسیب پذیری را بررسی نموده زیرا اكثر راهكارهای سازمانی قابل مدیریت، از مكانیزم تایید هویت EAP استفاده می نمایند و همچنین بسیاری از تجهیزات از OpenSSL استفاده می كنند. به خاطر داشته باشید، EAP در تایید هویت ارتباطات ۸۰۲.۱x و peer ۲ peer نیز مورد استفاده قرار می گیرد. كه می بایست بررسی و به روزرسانی های مربوطه صورت گیرد.