کنفرانس DEFCON 27. ماشین شما ماشین من است. قسمت 1

خلاصه سخنرانی:

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

تولید کنندگان زیادی وجود دارند که سیستم های هشدار اختیاری را ارائه می دهند که این راحتی و آرامش خاطر را فراهم می کنند. اما چقدر می توانیم به ارائه دهندگان این سیستم ها برای محافظت از دسترسی به خودروهای ما در حوزه دیجیتال اعتماد کنیم؟ در این سخنرانی، Jmaxxz در مورد آنچه که هنگام بررسی یکی از این سیستم ها کشف کرد صحبت خواهد کرد.

Jmaxxz به خاطر کارش با سیستم‌های خانه هوشمند August Smart Lock شناخته می‌شود (ارائه در DEFCON 24 "Backdooring The Frontdoor"). در سال های اخیر تمرکز او بر روی دستگاه های اینترنت اشیا بوده است. او در بخش‌های «روز صفر دهکده اینترنت اشیا» در DEFCON 24 و DEFCON 25 شرکت کرد و در نهایت تصمیم گرفت که زمان آن رسیده است که محصولی از بازار ثانویه خودرو را بررسی کند - یک راه‌انداز از راه دور (از این پس RS نامیده می‌شود).

کنفرانس DEFCON 27. ماشین شما ماشین من است. قسمت 1

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

کنفرانس DEFCON 27. ماشین شما ماشین من است. قسمت 1

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

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

کنفرانس DEFCON 27. ماشین شما ماشین من است. قسمت 1

بنابراین بسیار عالی خواهد بود اگر او فقط بتواند تلفن خود را بیرون بیاورد، برنامه را باز کند و Start را فشار دهد. من یک محصول شخص ثالث به نام MyCar پیدا کردم که کاملاً با استارت فورتین سازگار است. این یک جا کلیدی کوچک با یک سیم کارت و یک گیرنده GPS است که می توانید آن را در ماشین خود قرار دهید و آن را به ریموت استارت متصل کنید. سپس با استفاده از یک اپلیکیشن موبایل می توانید موتور را از راه دور روشن کنید، قفل ها را باز کنید و مواردی از این دست.

کنفرانس DEFCON 27. ماشین شما ماشین من است. قسمت 1

من فکر کردم که این عالی خواهد بود: درست پس از فرود هواپیما، دوست من می تواند موتور را روشن کند، و زمانی که به ماشین برسد، کابین از قبل گرم خواهد شد.

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

کنفرانس DEFCON 27. ماشین شما ماشین من است. قسمت 1

چرا این موضوع را به شما می گویم؟ راه اندازی از راه دور از طریق ایموبلایزر کار می کند. در اسلاید بعدی نموداری از اتصال دستگاه Fortin EVO One به ایموبلایزر را مشاهده می کنید - در پایین سمت چپ یک جفت مخاطب را مشاهده می کنید که به عنوان IMO تعیین شده اند. در سمت راست بالای نمودار دو خط می بینید: CAN LOW و CAN HIGH. اینها مخاطبین برای اتصال به اتوبوس CAN خودرو هستند. دلیل اینکه راه‌اندازهای راه دور به گذرگاه CAN متصل می‌شوند، کاهش هزینه‌های نصب است، زیرا در حین نصب از اتصالات کمتری استفاده می‌شود. اگر راه‌انداز از راه دور بتواند داده‌ها را از گذرگاه CAN بخواند یا دستورات را از طریق گذرگاه CAN ارسال کند، این امر زمان نصب سیستم راه‌اندازی موتور از راه دور را کاهش می‌دهد.

در سمت چپ بالای نمودار یک دسته کامل از GPIO وجود دارد که با کنترل یا خواندن اطلاعات مربوط به دستگاه مرتبط است. برای مثال، می خواهید با فشار دادن دکمه قفل، چراغ ها چشمک بزنند یا بوق به صدا درآید. مواردی از این دست را می توان با استفاده از این GPIO ها کنترل کرد. در پایین سمت چپ نمودار می توانید یک کانکتور بزرگ و درهم را ببینید - این رابطی است که قفل مکانیکی را دور می زند. یعنی نیازی نیست کلید را وارد کنید و به جرقه بچرخانید زیرا این رابط به رله سیستم استارت از راه دور اجازه می دهد تا مستقیماً با قفل برقی ارتباط برقرار کند.

کنفرانس DEFCON 27. ماشین شما ماشین من است. قسمت 1

اسلایدهای زیر مراحل نصب استارت راه دور را نشان می دهد. این عمدتا شامل برداشتن پوشش ستون فرمان، نصب و اتصال واحد DS است. بسیار ترسناک به نظر می رسد، اما انجام آن آسان است.

کنفرانس DEFCON 27. ماشین شما ماشین من است. قسمت 1

خود کنترل از راه دور به چیزی که فورتین پیوند داده می نامد متصل می شود. این سیستم از پروتکل انتقال داده فیزیکی اختصاصی UART استفاده می کند - یک فرستنده ناهمزمان جهانی که داده ها را با سرعت 9600 باود مبادله می کند. راه انداز از راه دور فورتین به سادگی از طریق یک اتوبوس UART به دو کنترل از راه دور که در اسلاید می بینید متصل می شود.

کنفرانس DEFCON 27. ماشین شما ماشین من است. قسمت 1

با نصب DS ، به این فکر کردم که چگونه چنین دستگاه هایی می توانند بر ایمنی خودرو تأثیر بگذارند. بدیهی است که DS باید ایموبلایزر را دور بزند، پس این امر از نظر امکان سرقت یا رهگیری کنترل خودرو چقدر ایمن است؟ این نه تنها برای انتقال داده از طریق شبکه تلفن همراه، بلکه در مورد خود سیگنال شروع از راه دور نیز صدق می کند. بنابراین من شروع به جستجو در اینترنت برای اطلاعات سازنده در مورد پروتکل انتقال داده مورد استفاده کردم و به انجمن هایی رسیدم که در آن افراد نوشتند که Fortin از ارائه این پروتکل خودداری کرده است. یکی از دلایل: "ما چنین اطلاعاتی را توزیع نمی کنیم زیرا EVO یک اسباب بازی برای آماتورها نیست، برای استفاده حرفه ای ها در نظر گرفته شده است.

کنفرانس DEFCON 27. ماشین شما ماشین من است. قسمت 1

به عنوان یک حرفه ای، تصمیم گرفتم دستگاه خودم را روی دسکتاپ بسازم. من یک واحد سیستم EVO دوم را در دست گرفتم، یک برد مداری که خودرو را نشان می‌داد مونتاژ کردم، سوئیچ‌هایی را برای شبیه‌سازی احتراق، دکمه‌ای برای پدال ترمز و یک دسته کامل LED برای نشان دادن حالات مختلف اضافه کردم.

کنفرانس DEFCON 27. ماشین شما ماشین من است. قسمت 1

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

کنفرانس DEFCON 27. ماشین شما ماشین من است. قسمت 1

لطفاً توجه داشته باشید که هرگاه دکمه‌ای را روی ریموت کنترل فشار می‌دهم، پیامی که آنتن به DS من می‌فرستد همیشه با 0C شروع می‌شود و با 0D پایان می‌یابد. بنابراین اگر آنچه را که به دست می آوریم تقسیم کنیم، با فرض اینکه 0C شروع و 0D پایان است، به چیزی شبیه به این می رسیم.

کنفرانس DEFCON 27. ماشین شما ماشین من است. قسمت 1

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

کنفرانس DEFCON 27. ماشین شما ماشین من است. قسمت 1

در اینجا یک ساختار تیمی معمولی به نظر می رسد.

کنفرانس DEFCON 27. ماشین شما ماشین من است. قسمت 1

هنگامی که دکمه ای را روی کنترل از راه دور فشار می دهید، آنتن چنین دستوری را به راه اندازی از راه دور ارسال می کند. با بایت 0C و به دنبال آن 2 بایت بیدار می شود که فکر می کنم نشان دهنده جهت انتقال است. این جالب است زیرا UART از قبل یک جهت سیگنال دارد، بنابراین من این بایت ها را به عنوان "آشغال" علامت گذاری کردم، فقط آنها را به عنوان یک ثابت در نظر بگیرید. به دنبال آن یک بایت منفرد نشان دهنده دستوری است که کاربر می خواهد اجرا کند. این می تواند قفل کردن درها یا باز کردن آنها، خاموش کردن زنگ هشدار و غیره باشد. به طور کلی، هر کاری که می خواهید از راه دور انجام دهید با این دستور مرتبط است. محموله FF FF F1 یک آدرس یا شناسه است که آنتن راه دوری را که پیام از آن آمده است را شناسایی می کند. اگر واحد DS شناسه را تشخیص ندهد، دستور نادیده گرفته می شود. اگر DS شناسه را بپذیرد، یک روش چند مرحله ای آغاز می شود که شامل بررسی وجود کلید در احتراق، روشن یا خاموش کردن موتور، فشار دادن پدال ترمز و غیره است. در واقع، این فرآیند اهمیت زیادی ندارد، فقط این است که دستگاه در حال یادگیری ID است.

در انتهای پیام یک بایت با چک جمع و یک بایت نشان دهنده پایان دستور وجود دارد. اکنون که فهمیدیم پروتکل چگونه کار می کند، چه کاری می توانیم در مورد آن انجام دهیم؟ من چند تا ویدیو در مورد این موضوع دارم. متأسفانه، به دلایلی ویدیو بدون صدا است، بنابراین من به شما خواهم گفت که چه اتفاقی روی صفحه می افتد. در سمت چپ ستون فرمان روی محفظه پانل ابزار یک جعبه سفید رنگ وجود دارد که حاوی قطعات الکترونیکی با سیستم عامل Particle.IO است که پروتکل Fortin را درک می کند. سیم با نوک آبی آنتن است. این مورد به من اجازه می دهد تا با واحد راه انداز از راه دور از داخل ماشین تعامل کنم و ببینم چه اتفاقی در صفحه لپ تاپ می افتد.

کنفرانس DEFCON 27. ماشین شما ماشین من است. قسمت 1

بنابراین من دستور قفل باز کردن قفل را به ماشین می فرستم اما کار نمی کند زیرا DS از این آنتن اطلاعی ندارد. همانطور که قبلاً اشاره کردم ، این فقط یک UART است که خاصیت آن پشتیبانی از ارتباطات دو طرفه است که به لطف آن می توانید از راه دور اطلاعاتی در مورد وضعیت خودرو بدست آورید. به عنوان مثال، اگر موتور به طور فیزیکی روشن یا خاموش شده باشد، واحد DS پیام مربوطه را به آنتن کنترل از راه دور ارسال می کند. در این صورت، پیام حاوی آدرس همین آنتن خواهد بود.

کنفرانس DEFCON 27. ماشین شما ماشین من است. قسمت 1

مشکل این است که ارتباط با استفاده از پروتکل UART انجام می شود و هر کسی که به گذرگاه UART متصل می شود می تواند آدرسی را که یک پیام داده شده ارسال می شود ببیند، بنابراین سیستم عامل من این توانایی را دارد که آدرس یک آنتن موجود را شبیه سازی کند، که من این کار را انجام می دهم. با دستور مناسب

کنفرانس DEFCON 27. ماشین شما ماشین من است. قسمت 1

برای ایجاد پیام، فقط باید درب ماشین را باز کنید. همانطور که مشاهده می کنید DS پیغام باز بودن در را به آنتن می دهد و زنگ فوراً روشن می شود.

کنفرانس DEFCON 27. ماشین شما ماشین من است. قسمت 1

برای خاموش کردن دزدگیر، دستور باز کردن قفل را می فرستم و پس از آن صدای دزدگیر خاموش می شود و قفل ماشین باز می شود. شما باید حرف من را قبول کنید، زیرا ما نتوانستیم این ویدیو را با صدا پخش کنیم. بیایید سعی کنیم ویدیو را دوباره پخش کنیم.

کنفرانس DEFCON 27. ماشین شما ماشین من است. قسمت 1

خوب، صدا ظاهر شد (یادداشت مترجم: همان ویدیو با صدا روی صفحه پخش می شود). بنابراین، دیدید که چگونه دستور DS را فرستادم و زنگ هشدار را روشن کردم، همه بدون کلید. حالا بیایید سعی کنیم ماشین را به همین روش روشن کنیم؛ برای این کار ویدیوی زیر را تماشا کنید.

معمولاً اگر فقط "شروع" را تایپ کنید و سعی کنید موتور را روشن کنید، کار نمی کند. دلیل آن این است که این یک ماشین گیربکس دستی است و سیستم های راه انداز از راه دور رویه خاصی برای چنین خودروهایی دارند. در این حالت، باید دکمه استارت از راه دور را در حالی که کلید در استارت است و موتور در حال کار است فشار دهید. سپس می توانید کلید را بیرون بیاورید، از ماشین پیاده شوید، در را ببندید، پس از آن DS موتور را خاموش می کند و در را قفل می کند. این کار برای جلوگیری از پاسخ دادن خودرو به استارت موتور از راه دور در حین رانندگی انجام می شود، زیرا این کار خطرناک است. با این حال، این یک ویژگی امنیتی کامل نیست. اثبات این امر با نگاه کردن به واحد راه انداز از راه دور EVO بسیار آسان است. این سیم حلقه زرد را می بینید که برای کار با گیربکس دستی طراحی شده است. در صورت برش، این بلوک برای خودرویی با گیربکس اتوماتیک قابل استفاده است. این طراحی واحد به شما این امکان را می دهد که در هنگام نصب DS در خودروهایی با انواع گیربکس از تنظیمات خاصی استفاده نکنید.

کنفرانس DEFCON 27. ماشین شما ماشین من است. قسمت 1

بنابراین سیستم به فرمان "شروع" پاسخ نداد، بنابراین من می خواهم این بلوک را در جای خود قرار دهم و فقط این سیم را قطع کنم تا اتصال قطع شود. اکنون، اگر فرمان «شروع» را تکرار کنید، یک سیگنال صوتی به صدا در می‌آید و نشانگرهای وضعیت سیستم‌های خودرو بر روی صفحه ابزار روشن می‌شوند، همانطور که وقتی کلیدی در قفل قرار می‌گیرد اتفاق می‌افتد.

کنفرانس DEFCON 27. ماشین شما ماشین من است. قسمت 1

در حال حاضر خودرویی داریم که می‌توانیم از راه دور بدون کلید در احتراق آن را روشن کنیم، اما ماژول DS تمام چیزی نیست که نیاز داریم. در شرایط عادی، هنوز نمی‌توانید با ماشینی که از راه دور راه‌اندازی شده است، رانندگی کنید، اما به هر حال بیایید تلاش کنیم.

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

با این حال، اگر هیچ کلیدی نداشته باشید، وقتی پدال ترمز را فشار دهید، ماشین متوقف می شود. دور زدن این محدودیت بسیار آسان است. شما باید بفهمید که چگونه خودرو به استارت از راه دور می گوید که ترمز زده شده است. چندین پورت چند رنگ را در پشت محفظه ماژول EVO می بینید - کابل گذرگاه CAN در اینجا وصل می شود. کافی است پس از استارت زدن خودرو از راه دور، این کابل را از واحد DS جدا کنید و به فشار دادن پدال ترمز پاسخی نخواهد داد. از آنجایی که این واحد در زیر پوشش ستون فرمان قرار دارد، من از طریق لپ تاپ فرمان "شروع" را می دهم، ماشین روشن می شود، در را باز می کنم، از ماشین پیاده می شوم و کانکتور CAN bus را از واحد EVO خارج می کنم. همانطور که می بینید، موتور ماشین روشن است، اما ما هنوز هیچ کلیدی در احتراق نداریم.

حالا اگر پدال ترمز را فشار دهید هیچ اتفاقی نمی افتد زیرا EVO نمی داند فشار داده شده است. پس از آن، می توانم پشت فرمان بنشینم، ترمز را فشار دهم، چوب دنده را به موقعیت "Drive" حرکت دهم و ماشین شروع به حرکت می کند. همه این کارها بدون هیچ کلیدی انجام می شود.

21:40

کنفرانس DEFCON 27. ماشین شما ماشین من است. قسمت 2

چند تبلیغ 🙂

از اینکه با ما ماندید متشکرم آیا مقالات ما را دوست دارید؟ آیا می خواهید مطالب جالب تری ببینید؟ با ثبت سفارش یا معرفی به دوستان از ما حمایت کنید ابر VPS برای توسعه دهندگان از 4.99 دلار, یک آنالوگ منحصر به فرد از سرورهای سطح ورودی که توسط ما برای شما اختراع شده است: تمام حقیقت در مورد VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps از 19 دلار یا چگونه سرور را به اشتراک بگذاریم؟ (در دسترس با RAID1 و RAID10، حداکثر 24 هسته و حداکثر 40 گیگابایت DDR4).

Dell R730xd 2 برابر ارزان تر در مرکز داده Equinix Tier IV در آمستردام؟ فقط اینجا 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV از 199 دلار در هلند! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - از 99 دلار! در مورد بخوانید نحوه ساخت شرکت زیرساخت کلاس با استفاده از سرورهای Dell R730xd E5-2650 v4 به ارزش 9000 یورو برای یک پنی؟

منبع: www.habr.com

اضافه کردن نظر