بدون کلید، بدون مشکل؟ آسیبپذیریهای قفلهای هوشمند Master Lock
چکیده
قفلهای هوشمند به دلیل راحتی و کارایی بیشتر نسبت به قفلهای سنتی، به یکی از اجزای محبوب و مهم خانههای هوشمند تبدیل شدهاند. این مقاله یک محصول، یعنی Master Lock Deadbolt D1000، را عمیقاً تحلیل میکند. پژوهشگران برنامه اندرویدی Master Lock Vault Enterprise را مهندسی معکوس، پروتکلهای ارتباطی اختصاصی را تحلیل و چند آسیبپذیری را کشف کردند: (۱) حملات بازپخش میتوانند امکان بازکردن قفل بدون احراز هویت را فراهم کنند؛ (۲) مهمانان سابق پس از پایان دسترسی نیز میتوانند قفل را باز کنند؛ (۳) کاربران مخرب میتوانند دسترسی موقت را تمدید کرده و سایر کاربران را از قفل خارج کنند؛ (۴) مهاجمان میتوانند رویدادهای ممیزی را جعل و از بارگذاری رویدادهای واقعی در سرورهای تلهمتری جلوگیری کنند؛ و (۵) پیامهای مخدوش Bluetooth Low Energy (BLE) میتوانند باعث منع سرویس (DoS)، نشت و خرابی حافظه شوند. پژوهشگران برای نمایش اثبات مفهوم، برنامه اندرویدیای ساختند که پروتکلها را پیادهسازی میکرد. در پایان، راهکارهای مقابله و پیامدهای این یافتهها برای امنیت قفلهای هوشمند و دستگاههای مشابه IoT بررسی میشود.
۱. مقدمه
قفل هوشمند به کاربران اجازه میدهد در را با صفحهکلید، برنامه تلفن همراه یا جاکلیدی الکترونیکی باز کنند. اندازه بازار جهانی قفل هوشمند در سال ۲۰۲۴ حدود ۲٫۸ میلیارد دلار برآورد شده است. قفلهای هوشمند فقط محبوب نیستند؛ از نظر امنیتی نیز حیاتیاند، زیرا بهعنوان جزء مورد اعتماد کنترل دسترسی در درها قرار میگیرند. بنابراین حمله به آنها میتواند پیامد واقعی برای امنیت فیزیکی انسانها داشته باشد.
این قفلها برای اتاقهای هتل و اقامتگاههای اجارهای و دادن دسترسی موقت به نگهدارندگان حیوانات، نظافتچیها یا کارکنان تعمیر و نگهداری increasingly رایجاند. در سناریوی معمول، مالک به دیگران اجازه میدهد برای مدت محدود قفل را باز کنند. مطالعه Mare و همکاران نشان داد قفل هوشمند دومین دستگاه هوشمند رایج در اقامتگاههای Airbnb بوده است. Hazazi و Shehab نیز در مصاحبه نیمهساختاریافته با ۲۹ نفر دریافتند قابلیتهای محبوب شامل کنترل از راه دور، ورود بدون کلید و سهولت دادن دسترسی به دیگران است.
یک قفل هوشمند معمولی دستکم سه سامانه دارد: خود قفل، تلفن همراه کاربر و سرور راه دور سازنده. ارتباط قفل و تلفن معمولاً از Wi‑Fi یا BLE استفاده میکند. برخی قفلها Wi‑Fi داخلی دارند و مستقیماً به اینترنت متصل میشوند؛ این روش برای دستگاه محدود از نظر منابع پرهزینهتر است، سختافزار و انرژی بیشتری میخواهد و سطح حمله اینترنتی را نیز افزایش میدهد.
راهکار دیگر، معماری دستگاه–دروازه (device-gateway architecture) یا mobile-as-a-gateway IoT است که در آن تلفن، دروازه اینترنتی میان قفل و سرور سازنده است و قفل فقط با Bluetooth به تلفن متصل میشود. Level، August، Yale و Kevo از نمونههای این معماریاند. مقاله همین معماری را در محصول Master Lock بررسی میکند؛ طبق متن مقاله، درآمد شرکت در سال ۲۰۲۲ حدود ۸۶۰ میلیون دلار بوده است.
شکل ۱ — معماری Master Lock شامل قفل هوشمند، تلفن کاربر بهعنوان دروازه و سرورهای SDK، تلهمتری و API.
طبق شکل ۱، سه سرور استفاده میشود: سرور SDK برای دریافت بهروزرسانی Firmware، سرور تلهمتری برای بارگذاری رویدادهای ممیزی مانند باز و بستهشدن قفل، و سرور API عمومی برای ثبتنام، احراز هویت و صدور پروفایل دسترسی. کاربر با این پروفایل میتواند به قفل احراز هویت شده و عملیات دارای سطح دسترسی مانند قفلکردن و بازکردن را انجام دهد.
کارهای پیشین در سالهای ۲۰۱۶ تا ۲۰۱۹ آسیبپذیریهای گستردهای در August، Dana و Kevo نشان دادند: چهار محصول گذرواژه را بهصورت متن ساده روی BLE میفرستادند، پنج محصول در برابر replay آسیبپذیر بودند و پنج محصول اجازه میدادند مهمان لغوشده با حالت هواپیما همچنان قفل را باز کند. Master Lock در مقایسه بهتر بود و در مطالعه Rose و Ramsey از ۱۶ قفل، یکی از چهار قفلی بود که آسیبپذیری برای آن پیدا نشد. بعدها Knight، Lord و Arief نقاط پایانی API با حفاظت ناکافی را یافتند که امکان دورزدن محدودیت ساعت دسترسی و بازکردن پس از لغو را میداد؛ آنها ارتباط Bluetooth را رمزگذاریشده یافتند و نتوانستند بیشتر تحلیلش کنند.
دستاوردهای پژوهش
به نظر میرسد Master Lock آسیبپذیریهای گزارششده قبلی را patch کرده و APIها را امنتر کرده است. با این حال، نویسندگان تحلیل عمیقتری از برنامه تلفن، رمزنگاری قفل و پروتکل سفارشی Bluetooth انجام داده و نقصهای طراحی جدیدی یافتهاند. سه حمله به مهاجم نزدیک قفل اجازه بازکردن، جعل گزارش ممیزی و جلوگیری از کارکرد قفل را میدهد و دو حمله دیگر به مهمان موقت اجازه میدهد بعد از انقضا یا لغو نیز قفل را باز کند. یافتهها با یک برنامه Android سفارشی و اجرای حملات اثبات مفهوم اعتبارسنجی شدند. پژوهشگران در مارس ۲۰۲۵ یافتهها را افشا کردند و طبق مقاله، Master Lock قصد داشت در ژوئن ۲۰۲۵ راهکارهای کاهش آسیبپذیری را منتشر کند.
این کار نشان میدهد امنیت قفلهای هوشمند به تحلیل عمیق پروتکل نیاز دارد؛ حملات ممکن است به اندازه حملات سال ۲۰۱۶ جدی باشند اما به مهاجم حرفهایتر و شناخت جزئیات طراحی نیاز داشته باشند.
۲. مدلهای تهدید و نمای کلی حملات
۲.۱. مدل تهدید
همه مهاجمان توان مهندسی معکوس برنامه را دارند، از جمله استخراج اسرار ثابت لازم برای احراز هویت و استفاده از سرور تلهمتری. دو توانمندی در نظر گرفته میشود:
- A1: حضور فیزیکی نزدیک قفل، شنود ارتباط رمزگذاریشده BLE و تزریق بستههای دلخواه BLE.
- A2: داشتن دسترسی موقت قانونی در گذشته، مانند مهمان هتل، که بعداً لغو یا منقضی شده است.
اهداف امنیتی عبارتاند از: G1 فقط کاربران احراز هویتشده بتوانند عملیات ممتاز مانند قفل و بازکردن را انجام دهند؛ G2 کنترل دسترسی پس از لغو یا انقضا اعمال شود؛ G3 یکپارچگی گزارش ممیزی؛ G4 ایمنی حافظه؛ و G5 دسترسپذیری قفل برای کاربران معتبر.
این اهداف از قابلیتهای تبلیغشده و انتظارات معمول از IoT استخراج شدهاند. برای نمونه، Master Lock گفته است کدهای دستی مشاهدهشده تا تغییر کد توسط مدیر و انجام یک Bluetooth unlock برای بازنویسی کدهای قدیمی معتبر میمانند و نیز هر بار قفل باز/بسته یا فعال/غیرفعال شود یا کد موقت مشاهده شود، ثبت میشود.
پنج حمله
- بازپخش نشست: A1 میتواند یک نشست کامل BLE را ضبط و فرمانها، از جمله unlock، را بدون داشتن access profile معتبر تکرار کند؛ G1 نقض میشود.
- فراتر رفتن از دسترسی: A2 میتواند access profile را نگه دارد و تا انقضای اصلی، حتی بعد از revoke، قفل را کنترل کند؛ G2 نقض میشود.
- دستکاری ساعت: A2 میتواند ساعت را به گذشته یا آینده ببرد و دسترسی خود را تمدید یا کاربران قانونی را قفل کند؛ G2 و G5 نقض میشوند.
- دستکاری گزارش ممیزی: A1 میتواند رویداد جعلی به telemetry بفرستد و از بارگذاری رویداد واقعی جلوگیری کند؛ G3 نقض میشود.
- پیامهای مخدوش: A1 میتواند با پیام مخدوش BLE باعث DoS یا خرابی حافظه شود و A2 با دسترسی معتبر حتی میتواند خواندن غیرمجاز حافظه انجام دهد؛ G4 و G5 نقض میشوند.
۳. پیشزمینه
۳.۱. نمادگذاری
رمزگذاری پیام m با AES-CTR، کلید k و nonce n با AES-CTR.Enc(k,n,m) و رمزگشایی ciphertext c با AES-CTR.Dec(k,n,c) نشان داده میشود. برای AES-CBC نیز از AES-CBC.Enc و AES-CBC.Dec استفاده میشود. الحاق رشتههای بایتی با ∥ و طول با |a| نشان داده میشود. بایتها بهصورت hexadecimal مانند 25CAFE نوشته میشوند و |a|₂ نمایش big-endian یک مقدار دو بایتی است.
۳.۲. محصولات Bluetooth Master Lock
Master Lock قفلهای سنتی و مجموعهای از قفلهای Bluetooth و الکترونیکی عرضه میکند و ادعاهایی درباره مقاومت در برابر حملات فیزیکی و هک، رمزنگاری سطح نظامی و قابلیتهای امنیتی پیشرفته دارد. محصولات شامل قفلهای آویز Bluetooth، lock box و سختافزار در با door controller و deadbolt هستند. کاربران از Master Lock Vault Enterprise یا Home استفاده میکنند. بازاریابی محصول بر جایگزینی کلید سنتی با تلفن، کلیدهای دیجیتال رمزگذاریشده، مدیریت و پایش از راه دور و تاریخچهای شامل زمان، مکان و شخص دسترسییافته تأکید دارد. Enterprise نیز امکان اضافه/حذف کاربران و تغییر دسترسی را میدهد.
محور این مقاله Deadbolt D1000 است؛ نویسندگان از تحلیل قبلی درباره این مدل اطلاع نداشتند و آن را برای حفاظت مسکونی یا تجاری محتملتر میدانند.
۳.۳. Bluetooth Low Energy
قفل برای صرفهجویی انرژی بیشتر اوقات غیرفعال است و تبلیغات BLE نمیفرستد، بنابراین با اسکن عادی کشف نمیشود. با لمس دکمه یا صفحه لمسی بیدار میشود، سپس تلفن آن را کشف و متصل میکند. ارتباط بر GATT استوار است: سرویسها با UUID مشخص میشوند و شامل characteristicها هستند. هر characteristic یک نقطه داده قابل خواندن یا نوشتن است. قفل GATT server و تلفن GATT client است.
۴. مهندسی معکوس
برنامه Master Lock Vault Enterprise نسخه 2.28.0.1، منتشرشده در ۱۰ آوریل ۲۰۲۴، مهندسی معکوس شد. Vault Home نیز از همان BLE protocol استفاده میکند و فقط endpointهای سرور متفاوتاند. APK شامل DEX است که از Java/Kotlin ساخته میشود و میتوان آن را به Smali، Jasmin یا Jimple و سپس Java decompile کرد. Master Lock برای دشوارکردن reverse engineering از چند روش obfuscation استفاده میکند. نویسندگان تحلیل ایستا را محور قرار داده و فقط بخشهایی را بهصورت پویا اجرا کردند.
۴.۱. تغییر نام
نام package، class، annotation، متغیر کلاس و متغیر نمونه به رشتههای تصادفی تغییر میکند و گاهی نامی مشابه توابع کتابخانهای به اشیا داده میشود. هدف، حذف اطلاعات معنایی نامها و دشوارکردن پیدا کردن کد مرتبط است. پژوهشگران نامها را با نامهای معنادار یا نامهای یکتا مانند integer_1 و class_A جایگزین کردند.
۴.۲. رمزگذاری ثابتها
اعداد و رشتههای حساس رمزگذاری شده و در runtime decode/decrypt میشوند؛ کد decode و کلیدهای محلی نیز مبهم شدهاند. این کار جستوجوی کلیدواژهای و تحلیل قالب پیام را دشوار میکند. پژوهشگران با dynamic partial evaluation و ابزارهایی مانند dex2jar ثابتهای رمزگشاییشده را بازیابی کردند؛ وابستگی به کتابخانههای Android یکی از موانع اجرای مستقیم JAR روی JVM بود.
۴.۳. فراخوانی Native
برخی ثابتهای عددی با توابع native جایگزین میشوند و بعد محاسبه اصلاحی مقدار اصلی را بازمیسازد. هدف افزایش پیچیدگی و دشوارکردن تحلیل ایستا و اجرای غیرAndroid است. پژوهشگران توابع native را با نسخههای محلی دارای مقدار جایگزین تعویض کردند؛ چون رفتار باید روی همه دستگاههای Android قطعی بماند.
۴.۴. Reflection
هدف توابع حساس بهصورت رشته و از طریق Reflection تعیین میشود و در نتیجه call target در کد صریح نیست. پژوهشگران invocation targetها را جستوجو و در صورت نیاز رشتههای رمزگذاریشده را با ارزیابی پویا بازیابی کردند. ایجاد breakpoint در Class.forName، Class.getMethod و Class.getField نیز برای مشاهده هدفها مفید بود.
۴.۵. بارگذاری پویا DEX
بخشهای حساس در DEXهای جداگانه و رمزگذاریشده داخل APK قرار گرفته و runtime بارگذاری میشوند. پژوهشگران کد loader مرتبط با dalvik.system را اصلاح کردند، DEX را هنگام load روی دیسک نوشتند، آن را به JAR تبدیل کردند و در JVM بهعنوان runtime library بارگذاری کردند.
۴.۶. مبهمسازی جریان کنترل
مسیرهای انحرافی، شرطهای زائد، branch و exception handlerها برای پنهانکردن مسیر واقعی اجرا استفاده میشوند. این کار decompiler را مختل میکند و خواندن Smali را دشوار میسازد. در این پروژه هزاران خط bytecode برای بارگذاری توابع رمزنگاری BLE از DEXهای خارجی وجود داشت. پژوهشگران با breakpoint در توابع کتابخانه JVM، آرگومانها، return value و call stack را بررسی کردند و سپس خروجی کد بازسازیشده را با bytecode اصلی و محصول واقعی مقایسه کردند. deobfuscation تهاجمیتر میتواند ساختار بهتری ایجاد کند، اما خطا را نیز افزایش میدهد؛ بنابراین برای توابع پیچیده از آن پرهیز شد.
پایان بخش اول: ادامه مقاله از پروتکلهای ارتباطی در صفحه ۷ PDF در Master_Lock_Smart_Locks_405_05_02.html آمده است.