‫ بررسي آسيب پذيري Heartbleed در شبكه هاي بيسيم

 

شماره :IRCRE201407175
تاريخ:93/4/31
بر اساس گزارش محقق پروژه، 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 همچنين در تاييد هويت ارتباطات 802.1x و peer 2 peer  مورد استفاده قرار مي گيرد.
به منظور سواستفاده از كلاينت هاي آسيب پذير، hostapd ( همراه با وصله cupid ) مي تواند جهت راه اندازي يك شبكه مخرب مورد استفاده قرار گيرد به نحوي كه هر زمان كه كلاينت آسيب پذير سعي در اتصال و درخواست ارتباط TLS را مي كند، hostapd درخواست هاي heartbeat مخرب را ارسال مي نمايد.
 در اين حالت حتي پيغام "Server Hello" نيز براي كلاينت ارسال  نمي گردد و به محض اينكه كلاينت آسيب پذير، درخواست ارتباط TLS را داده و پيغام "Client Hello" را ارسال مي كند، درخواست هاي heartbeat برايش فرستاده مي شود. در حالي كه كلاينت از دريافت پاسخ خشنود مي باشد، بيشتر از 64 كيلوبايت از حافظه خوانده مي شود. از جمله مواردي كه به احتمال زياد از حافظه خوانده خواهد شد كليد خصوصي  گواهينامه  مورد استفاده در ارتباط TLS و همچنين  اطلاعات كاربر جهت تصديق هويت مي باشد.
به منظور سواستفاده از سرورهاي آسيب پذير مي توان wpa_supplicant (همراه با وصله cupid) را بدين شكل مورد استفاده قرار داد كه يك درخواست ارتباط به يك شبكه آسيب پذير ارسال و درست بعد از اينكه ارتباط TLS برقرار شد درخواست مخرب heartbeat ارسال گردد.
براي اين منظور ابتدا يك نام كاربري(EAP Identity) فراهم شده و سپس يك اتصال TLS بر مبناي EAP جهت تصديق هويت (با استفاده از EAP-PEAP) ايجاد مي گردد. در ادامه cupid درخواست هاي heartbeat را درست بعد از پيغام "Client Hello" براي شبكه آسيب پذير ارسال مي نمايد بدون اينكه نيازي به برقراري كامل ارتباط TLS (handshake) باشد و در نهايت موجب مي شود تا به ازاي هر درخواست heartbeat حدود بيشتر از  64 كيلو بايت از حافظه خوانده شود.
نكته مهم اينست كه نيازي به برقراري كامل ارتباط TLS جهت حمله heartbleed نمي باشد. همچنين نيازي به رد و بدل شدن كليدهاي واقعي و گواهي نيز نمي باشد. در واقع امكان ارسال و دريافت پاسخ هاي heartbeat درست بعد از پيغام "Client Hello" (قبل از اينكه گواهينامه ها ارائه شوند يا كليد هاي نشست رد و بدل شوند) وجود دارد.
به منظور بهره برداري از اين آسيب پذيري نيازي به ارائه نام كاربري و رمز عبور معتبر هم نمي باشد. بعضي اوقات جهت سوء استفاده از يك سرور آسيب پذير فقط بايد يك نام كاربري معتبر(بدون رمز عبور) ارائه گردد تا EAP كاربر را به سرور احراز هويت مناسب هدايت كند كه اين را به راحتي مي توان از طريق شنود كردن  زماني كه كاربر حقيقي سعي در برقراري ارتباط دارد بدست آورد.

چه نرم افزارهايي تحت تاثير اين آسيب پذيري قرار دارند؟
بر روي سيستم عامل Ubuntu ، اگر يك نسخه آسيب پذير OpenSSL مورد استفاده قرار گيرد، wpa_supplicant، hostapd و freeradius كه به صورت پيش فرض بر روي آن نصب شده، ممكن است مورد سوء استفاده قرار گيرد.
سيستم عامل آندرويد، نسخه هاي 4.1.0 و 4.1.1 از نسخه آسيب پذير OpenSSL استفاده مي كنند. همچنين تمام نسخه هاي آندرويد از wpa_supplicant براي اتصال به شبكه هاي بي سيم استفاده مي كنند، به همين خاطر فرض بر اين است كه احتمالا آسيب پذير هستند.
اگر از دستگاهي با سيستم عامل آندرويد، نسخه 4.1.0 يا 4.1.1 استفاده مي شود بايد از اتصال به شبكه هاي   بي سيم ناشناس اجتناب شود مگر اينكه ROM دستگاه ارتقاء داده شود.
اگر از سيستم عامل لينوكس جهت اتصال به شبكه هاي بي سيم استفاده شود، بايد از ارتقاء كتابخانه هاي OpenSSL اطمينان حاصل كرد. بدين منظور مي بايست توصيه هاي heartbleed مورد توجه قرار گيرد.
اگر از يك روتر خانگي استفاده مي شود، احتمالا در برابر چنين حمله اي امن مي باشد زيرا بيشتر روترهاي خانگي از يك تك كليد  براي امنيت بي سيم استفاده مي كنند و مكانيزم احراز هويت EAP را مورد استفاده قرار   نمي دهند.
ولي در صورتيكه از راهكارهاي سازماني براي اتصال به شبكه بي سيم استفاده مي نماييد، مي بايست آسيب پذيري را بررسي نموده زيرا اكثر راهكارهاي سازماني قابل مديريت، از مكانيزم تاييد هويت EAP استفاده مي نمايند و همچنين بسياري از تجهيزات از OpenSSL استفاده مي كنند. 
به خاطر داشته باشيد، EAP در تاييد هويت ارتباطات 802.1x و peer 2 peer  نيز مورد استفاده قرار مي گيرد. كه مي بايست بررسي و به روزرساني هاي مربوطه صورت گيرد.
 

 


نظرات

بدون نظر
شما برای نظر دادن باید وارد شوید

نوشته

 
تاریخ ایجاد: 7 مهر 1393

دسته‌ها

امتیاز

امتیاز شما
تعداد امتیازها:0