ماوس های بلوتوث می توانند باعث آشکار شدن کلمه های عبور شما شوند!
ما در این مقاله یک آسیب پذیری پنهان در ارتباط ماوس های بلوتوث که ممکن است باعث درز و آشکار شدن اطلاعات شما، شامل کلمه های عبور شوند را به شما معرفی می کنیم.
ارتباطاتی که از طریق ماوس های بلوتوث ایجاد می شوند، عموماً رمزگذاری نشده است هستند. وقتی شتاب دهی پیش فرض ماوس فعال باشد با Sniffing (بو کشیدن) ارتباط ماوس، ما می توانیم حرکات و خط سیر ماوس بر روی صفحه نمایش را از نو بازسازی کنیم. در نتیجه اگر کلمه های عبور با استفاده از یک صفحه کلید نرم افزاری تایپ شوند حرکات ماوس Sniff شده کلمه های عبور را آشکار می سازند. ما در سیستم های لینوکس بازسازی خط سیر ماوس را به شکلی بسیار واضح و عالی و در سیستم های ویندوز و مکینتاش این بازسازی را در حدی نزدیک به عالی مشاهده نمودیم.
با استفاده از این Sniffer، ما قادر خواهیم بود یک hexadump/trace رمزگذاری نشده از حرکات خام منتشر شده توسط ماوس را به شکل پسیو به دست آوریم. چنین ردی، اگر چه بی حاصل به نظر می رسد اما از پتانسیل آشکار نمودن کلمه های عبور کاربر از طریق بازسازی حرکات نشان گر ماوس بر روی صفحه نمایش برخوردار است. سناریویی را در نظر بگیرید که در آن یک نفر با استفاده از یک صفحه کلید نرم افزاری نظیر نمونه های مبتنی بر وب که توسط بانک HSBC مورد استفاده قرار می گیرد اطلاعات محرمانه مربوط به حساب خود را تایپ می کند. اگر فعالیت این فرد Sniff شده باشد، امکان دارد ردی از کلمه عبور که اساساً مجموعه ای ازکلیک های ماوس در محل های گوناگون است در حرکات خام ماوس Sniff شده پنهان شده باشد. یک mapping صحیح از حرکات خام در مقایسه با مکان های نشان گر بر روی صفحه نمایش ممکن است منجر به آشکار شدن یک رونوشت عالی از کلمه عبور شود. بدین ترتیب، ما اعتقاد داریم که ارتباطات بی سیم از طریق ماوس بلوتوث/RF باید رمزگذاری شود. در غیر این صورت، این نوع ارتباط ممکن است منجر به تهاجمی عمیق و قابل توجه به حریم خصوصی کاربر گردد.
ما در کوشش خود برای Sniff کلمه های عبور به موفقیت های نسبتاً خوبی دست پیدا کردیم. علی الخصوص، ما توانستیم در یک سیستم لینوکس کلمه های عبور را به خوبی حدس بزنیم در حالی که در سیستم های تحت ویندوز و Mac OS X تا حدودی موفق به بازسازی دوباره کلمه های عبور شدیم. چالش بزرگی که در این جا وجود دارد دامنه محدود و برد کوتاه ارتباطات بلوتوث است زیرا تصور این که یک قربانی الزاماً در مجاورت ما قرار دارد فرضی غیر عملی است. برای غلبه بر این مشکل ما از یک رادیوی USRP2 نرم افزاری با آنتن های ویژه که می تواند ارتباطات بلوتوث را از فاصله 30 متری Sniff کند استفاده کردیم. شکل (1)، حرکات پیش بینی شده یک نشان گر ماوس بلوتوث در سیستم های لینوکس، ویندوز و Mac OS را نشان می دهد.
به روشنی مشاهده می شود که می توانیم به خوبی حرکت های واقعی ماوس را در لینوکس پیش بینی کنیم. همانگونه که بعداً مفصلاً توضیح خواهیم داد، نقصانی که از این منظر در دو سیستم دیگر وجود دارد به واسطه استراتژی های خاص آن ها در زمینه mapping حرکات خام مکان نشان گر؛ مثلاً شتاب دهی ماوس حاصل می شود. تا جایی که به دانش ما مربوط می شود آسیب پذیری پنهان در ارتباطات ماوس بلوتوث قبلاً نامکشوف یا به طور گسترده ای نادیده گرفته شده بود. به عنوان مثال Logitech در مطلبی که در یک white paper در هفتم جولای 2009 به چاپ رسید اشاره کرده بود از آن جائی که تغییر مکان یک ماوس نمی تواند هیچ اطلاعات مفیدی در اختیار یک هکر قرار دهد در نتیجه نیازی به رمزگذاری آن وجود ندارد. بنابراین هدف ما به صدا درآوردن زنگ هشداری برای این صنعت است تا به آن ها بگوئیم ارتباطات رمزگذاری نشده از طریق ماوس بلوتوث ممکن است باعث به خطر افتادن حریم خصوصی و امنیت کاربران شود. ما قصد داریم تولید کنندگان ماوس های بلوتوث/RF را به رمزگذاری داده ها و تقویت مکانیزم و اصول امنیتی مورد استفاده در device pairing ترغیب کنیم.
به ترتیب فرکانس ها hopping sequence گفته می شود. شمای frequency-hopping می تواند از تداخل سایر سیگنال ها در محیط هایی که از نظر فرکانس رادیویی شلوغ هستند جلوگیری به عمل آورد.
ما در اصل از یک Sniffer بلوتوث تجاری ساخت Frontline که یک وسیله USB است استفاده کردیم. این وسیله، داده های Snif شده را با فرمت hexdump بیرون می دهد.
برای انجام Sniffing، ابزار FTS4BT باید فرکانس hopping sequence توافق شدن بین یک ابزار بلوتوث Master و Slave را جمع آوری کند. این وسیله تنها زمانی می تواند شروع به Sniffing کند که ساعت خود را با وسیله Master؛ که معمولاً ماوس است سینک نماید. هر چند برای فعال نمودن Sniffing از فواصل دورتر، ما می توانیم از چندین رادیوی تعریف شده توسط نرم افزار (SDR)، رادیوی GNU و (Universal Software Radio Peripheral 2 (USRP2 استفاده کنیم. این کار به ما اجازه داد ارتباطات بلوتوث را از فاصله ای 30 متری Snif کنیم. یک Sniffer کامل با استفاده از USRP2 هنوز تحت توسعه قرار دارد. ما در این مقاله نتایج به دست آمده از Frontline Sniffer را برای شما تشریح می کنیم.
مشخصات و چگونگی به کارگیری شتاب دهی ماوس در سیستم عامل های مختلف فرق می کند. در ادامه این مقاله ما نتایج به دست آمده از ویژگی شتاب دهی ماوس در سیستم عامل های مختلف را برای شما تشریح خواهیم کرد.
سایر تنظیمات مربوط به ماوس را می توان در بخش InputDevice در /etc/X11/xorg.comf پیدا کرد.
در لینوکس برنامه های کاربردی چگونه رخدادهای ماوس را دریافت می کنند؟
شکل (2)، پُشته درایور ورودی در لینوکس را نشان می دهد. برنامه های کاربردی لینوکس؛ مثلاً سیستمX11 از طریق گره ها یا فایل هایی که در دایرکتوری dev/ قرار گرفته اند با سایر ابزار ارتباط برقرار می کنند. به طور خاص،dev/input/mice/ برای تمام ماوس های متصل به سیستم مورد استفاده قرار می گیرد. درایور (mousedev(PS2-emulator این فایل های ابزار را ایجاد می کند. فرمت داده های مربوط به حرکت خام ماوس که برای تمام برنامه های کاربردی در دسترس قرار دارد استاندراد PS/2 است. به طور خاص، برای یک ماوس 5 دکمه ای که ما معمولاً به کار می گیریم، از Intellimouse extension استاندارد PS/2 استفاده می شود. ما می توانیم از طریق فایلی به نام device file به ابزار متصل به سیستم لینوکس دسترسی پیدا کنیم.
Microsoft Bluetooth Mouse 5000
hexadump-[ACL RECEIVE]2E 20 0B 00 07 00 41 00 A1
11 00
{FE}00 00 01
فیلدهایی که در پرانتزها دیده می شوند حرکت X و Yماوس را نشان می دهند. این داده ها در فرمت دوتایی نمایش داده می شوند.
Logitech V470-Cordless Laser mouse
hexadump-[ACL RECEIVE]2E 20 0C 00 08 00 41 00 A1
02 00
{F3 FF FF} 00 00
در این جا سه فیلد موجود در پرانتزها برای محاسبه حرکت ماوس به کار برده می شود.
قوانین زیر به حرکت اعمال می شود: اولین فیلد را (X-raw(F3، دومین فیلد را (Y1-raw(FFو سومین فیلد را
Y2-raw (FF) در نظر بگیرید. X-mouse و Y-mpuse نشان دهنده حرکت های خام ماوس بر روی محورهای X و Y است.
ما همچنین استراتژهای شتاب دهی ماوس را در ویندوز و مکینتاش مورد بررسی قرار دادیم. آن ها در مقایسه با لینوکس پیچیده تر هستند. ما الگوریتم های مربوط به مهندسی معکوس حرکت های نشان گر ماوس از داده های خام را برای ویندوز و مکینتاش نیز طراحی کردیم.
با توجه به نتایج حاصل از بازسازی حرکت ماوس در شکل(1)، می توانیم مشاهده کنیم که مسیر پیش بینی شده در ویندوز و مکینتاش دقیقاً با مسیر واقعی تطبیق نمی کند. ما اعتقاد داریم که تفاوت اندکی که در این جا وجود دارد به واسطه استراتژی محاسبات در ویندوز و مکنیتاش ایجاد شده است. در لینوکس، رخداد ماوس بدون هر نوع باقی مانده ای از یک رخداد به رخداد دیگر به صورت رخداد به رخداد پردازش می شود.
هر چند در ویندوز و مکینتاش، الگوریتم های شتاب دهی ماوس ممکن است مکان ماوس را از گروهی از رخدادهای ماوس محاسبه کنند که این کار منجر به ایجاد خطایی اندک در پیش بینی مسیر حرکت می شود زیرا ما به عنوان یک شخص ثالث در مورد رخدادهایی که در کنار هم در یک batch مشابه پردازش می شوند علم و آگاهی لازم را نداریم.
آسیب پذیری پنهان در ارتباطات ماوس بلوتوث که به شکل گسترده ای نادیده گرفته شده است. این موضوع باعث درز کلمه های عبور و آشکار شدن آن برای دیگران می شود.
وجود حرکت های غیرمستقیم اما کاملاً مشهود نشان گر ماوس در hexadump خام ارتباطات ماوس بلوتوث.
نظریه شتاب دهی ماوس /نشان گر و این که چگونه چنین مفهومی می تواند در سه سیستم عامل عمده برای بازسازی مختصات نشان گر ماوس بر روی صفحه نمایش مورد استفاده قرار گیرد.
ما اعتقاد داریم که تمام ماوس های RF در معرض حمله قرار دارند.
منبع: بزرگراه رایانه، شماره ی 140
ارتباطاتی که از طریق ماوس های بلوتوث ایجاد می شوند، عموماً رمزگذاری نشده است هستند. وقتی شتاب دهی پیش فرض ماوس فعال باشد با Sniffing (بو کشیدن) ارتباط ماوس، ما می توانیم حرکات و خط سیر ماوس بر روی صفحه نمایش را از نو بازسازی کنیم. در نتیجه اگر کلمه های عبور با استفاده از یک صفحه کلید نرم افزاری تایپ شوند حرکات ماوس Sniff شده کلمه های عبور را آشکار می سازند. ما در سیستم های لینوکس بازسازی خط سیر ماوس را به شکلی بسیار واضح و عالی و در سیستم های ویندوز و مکینتاش این بازسازی را در حدی نزدیک به عالی مشاهده نمودیم.
مقدمه
با استفاده از این Sniffer، ما قادر خواهیم بود یک hexadump/trace رمزگذاری نشده از حرکات خام منتشر شده توسط ماوس را به شکل پسیو به دست آوریم. چنین ردی، اگر چه بی حاصل به نظر می رسد اما از پتانسیل آشکار نمودن کلمه های عبور کاربر از طریق بازسازی حرکات نشان گر ماوس بر روی صفحه نمایش برخوردار است. سناریویی را در نظر بگیرید که در آن یک نفر با استفاده از یک صفحه کلید نرم افزاری نظیر نمونه های مبتنی بر وب که توسط بانک HSBC مورد استفاده قرار می گیرد اطلاعات محرمانه مربوط به حساب خود را تایپ می کند. اگر فعالیت این فرد Sniff شده باشد، امکان دارد ردی از کلمه عبور که اساساً مجموعه ای ازکلیک های ماوس در محل های گوناگون است در حرکات خام ماوس Sniff شده پنهان شده باشد. یک mapping صحیح از حرکات خام در مقایسه با مکان های نشان گر بر روی صفحه نمایش ممکن است منجر به آشکار شدن یک رونوشت عالی از کلمه عبور شود. بدین ترتیب، ما اعتقاد داریم که ارتباطات بی سیم از طریق ماوس بلوتوث/RF باید رمزگذاری شود. در غیر این صورت، این نوع ارتباط ممکن است منجر به تهاجمی عمیق و قابل توجه به حریم خصوصی کاربر گردد.
ما در کوشش خود برای Sniff کلمه های عبور به موفقیت های نسبتاً خوبی دست پیدا کردیم. علی الخصوص، ما توانستیم در یک سیستم لینوکس کلمه های عبور را به خوبی حدس بزنیم در حالی که در سیستم های تحت ویندوز و Mac OS X تا حدودی موفق به بازسازی دوباره کلمه های عبور شدیم. چالش بزرگی که در این جا وجود دارد دامنه محدود و برد کوتاه ارتباطات بلوتوث است زیرا تصور این که یک قربانی الزاماً در مجاورت ما قرار دارد فرضی غیر عملی است. برای غلبه بر این مشکل ما از یک رادیوی USRP2 نرم افزاری با آنتن های ویژه که می تواند ارتباطات بلوتوث را از فاصله 30 متری Sniff کند استفاده کردیم. شکل (1)، حرکات پیش بینی شده یک نشان گر ماوس بلوتوث در سیستم های لینوکس، ویندوز و Mac OS را نشان می دهد.
به روشنی مشاهده می شود که می توانیم به خوبی حرکت های واقعی ماوس را در لینوکس پیش بینی کنیم. همانگونه که بعداً مفصلاً توضیح خواهیم داد، نقصانی که از این منظر در دو سیستم دیگر وجود دارد به واسطه استراتژی های خاص آن ها در زمینه mapping حرکات خام مکان نشان گر؛ مثلاً شتاب دهی ماوس حاصل می شود. تا جایی که به دانش ما مربوط می شود آسیب پذیری پنهان در ارتباطات ماوس بلوتوث قبلاً نامکشوف یا به طور گسترده ای نادیده گرفته شده بود. به عنوان مثال Logitech در مطلبی که در یک white paper در هفتم جولای 2009 به چاپ رسید اشاره کرده بود از آن جائی که تغییر مکان یک ماوس نمی تواند هیچ اطلاعات مفیدی در اختیار یک هکر قرار دهد در نتیجه نیازی به رمزگذاری آن وجود ندارد. بنابراین هدف ما به صدا درآوردن زنگ هشداری برای این صنعت است تا به آن ها بگوئیم ارتباطات رمزگذاری نشده از طریق ماوس بلوتوث ممکن است باعث به خطر افتادن حریم خصوصی و امنیت کاربران شود. ما قصد داریم تولید کنندگان ماوس های بلوتوث/RF را به رمزگذاری داده ها و تقویت مکانیزم و اصول امنیتی مورد استفاده در device pairing ترغیب کنیم.
Sniffing (بو کشیدن) ارتباطات بلوتوث
به ترتیب فرکانس ها hopping sequence گفته می شود. شمای frequency-hopping می تواند از تداخل سایر سیگنال ها در محیط هایی که از نظر فرکانس رادیویی شلوغ هستند جلوگیری به عمل آورد.
ما در اصل از یک Sniffer بلوتوث تجاری ساخت Frontline که یک وسیله USB است استفاده کردیم. این وسیله، داده های Snif شده را با فرمت hexdump بیرون می دهد.
برای انجام Sniffing، ابزار FTS4BT باید فرکانس hopping sequence توافق شدن بین یک ابزار بلوتوث Master و Slave را جمع آوری کند. این وسیله تنها زمانی می تواند شروع به Sniffing کند که ساعت خود را با وسیله Master؛ که معمولاً ماوس است سینک نماید. هر چند برای فعال نمودن Sniffing از فواصل دورتر، ما می توانیم از چندین رادیوی تعریف شده توسط نرم افزار (SDR)، رادیوی GNU و (Universal Software Radio Peripheral 2 (USRP2 استفاده کنیم. این کار به ما اجازه داد ارتباطات بلوتوث را از فاصله ای 30 متری Snif کنیم. یک Sniffer کامل با استفاده از USRP2 هنوز تحت توسعه قرار دارد. ما در این مقاله نتایج به دست آمده از Frontline Sniffer را برای شما تشریح می کنیم.
از حرکات خام ماوس تا حرکات نشان گر بر روی صفحه نمایش
مشخصات و چگونگی به کارگیری شتاب دهی ماوس در سیستم عامل های مختلف فرق می کند. در ادامه این مقاله ما نتایج به دست آمده از ویژگی شتاب دهی ماوس در سیستم عامل های مختلف را برای شما تشریح خواهیم کرد.
شتاب دهی ماوس در لینوکس
سایر تنظیمات مربوط به ماوس را می توان در بخش InputDevice در /etc/X11/xorg.comf پیدا کرد.
در لینوکس برنامه های کاربردی چگونه رخدادهای ماوس را دریافت می کنند؟
شکل (2)، پُشته درایور ورودی در لینوکس را نشان می دهد. برنامه های کاربردی لینوکس؛ مثلاً سیستمX11 از طریق گره ها یا فایل هایی که در دایرکتوری dev/ قرار گرفته اند با سایر ابزار ارتباط برقرار می کنند. به طور خاص،dev/input/mice/ برای تمام ماوس های متصل به سیستم مورد استفاده قرار می گیرد. درایور (mousedev(PS2-emulator این فایل های ابزار را ایجاد می کند. فرمت داده های مربوط به حرکت خام ماوس که برای تمام برنامه های کاربردی در دسترس قرار دارد استاندراد PS/2 است. به طور خاص، برای یک ماوس 5 دکمه ای که ما معمولاً به کار می گیریم، از Intellimouse extension استاندارد PS/2 استفاده می شود. ما می توانیم از طریق فایلی به نام device file به ابزار متصل به سیستم لینوکس دسترسی پیدا کنیم.
Semantics داده های خام ماوس بلوتوث
Microsoft Bluetooth Mouse 5000
hexadump-[ACL RECEIVE]2E 20 0B 00 07 00 41 00 A1
11 00
{FE}00 00 01
فیلدهایی که در پرانتزها دیده می شوند حرکت X و Yماوس را نشان می دهند. این داده ها در فرمت دوتایی نمایش داده می شوند.
Logitech V470-Cordless Laser mouse
hexadump-[ACL RECEIVE]2E 20 0C 00 08 00 41 00 A1
02 00
{F3 FF FF} 00 00
در این جا سه فیلد موجود در پرانتزها برای محاسبه حرکت ماوس به کار برده می شود.
قوانین زیر به حرکت اعمال می شود: اولین فیلد را (X-raw(F3، دومین فیلد را (Y1-raw(FFو سومین فیلد را
Y2-raw (FF) در نظر بگیرید. X-mouse و Y-mpuse نشان دهنده حرکت های خام ماوس بر روی محورهای X و Y است.
ما همچنین استراتژهای شتاب دهی ماوس را در ویندوز و مکینتاش مورد بررسی قرار دادیم. آن ها در مقایسه با لینوکس پیچیده تر هستند. ما الگوریتم های مربوط به مهندسی معکوس حرکت های نشان گر ماوس از داده های خام را برای ویندوز و مکینتاش نیز طراحی کردیم.
با توجه به نتایج حاصل از بازسازی حرکت ماوس در شکل(1)، می توانیم مشاهده کنیم که مسیر پیش بینی شده در ویندوز و مکینتاش دقیقاً با مسیر واقعی تطبیق نمی کند. ما اعتقاد داریم که تفاوت اندکی که در این جا وجود دارد به واسطه استراتژی محاسبات در ویندوز و مکنیتاش ایجاد شده است. در لینوکس، رخداد ماوس بدون هر نوع باقی مانده ای از یک رخداد به رخداد دیگر به صورت رخداد به رخداد پردازش می شود.
هر چند در ویندوز و مکینتاش، الگوریتم های شتاب دهی ماوس ممکن است مکان ماوس را از گروهی از رخدادهای ماوس محاسبه کنند که این کار منجر به ایجاد خطایی اندک در پیش بینی مسیر حرکت می شود زیرا ما به عنوان یک شخص ثالث در مورد رخدادهایی که در کنار هم در یک batch مشابه پردازش می شوند علم و آگاهی لازم را نداریم.
نتیجه گیری و کارهای آتی
آسیب پذیری پنهان در ارتباطات ماوس بلوتوث که به شکل گسترده ای نادیده گرفته شده است. این موضوع باعث درز کلمه های عبور و آشکار شدن آن برای دیگران می شود.
وجود حرکت های غیرمستقیم اما کاملاً مشهود نشان گر ماوس در hexadump خام ارتباطات ماوس بلوتوث.
نظریه شتاب دهی ماوس /نشان گر و این که چگونه چنین مفهومی می تواند در سه سیستم عامل عمده برای بازسازی مختصات نشان گر ماوس بر روی صفحه نمایش مورد استفاده قرار گیرد.
ما اعتقاد داریم که تمام ماوس های RF در معرض حمله قرار دارند.
منبع: بزرگراه رایانه، شماره ی 140