یک مهندس که به عملکرد جاروبرقی هوشمند iLife A11 خود مشکوک شده بود، ترافیک شبکه آن را زیر نظر گرفت. او متوجه شد که دستگاه به طور مداوم در حال ارسال گزارشها و دادههای تلهمتری (Telemetry) به سازنده است؛ اقدامی که او هرگز به آن رضایت نداده بود. این کاربر (Harishankar) تصمیم گرفت آدرسهای IP سرورهای تلهمتری را در شبکه خود مسدود کند، اما سرورهای آپدیت (OTA) را باز نگه داشت. اگرچه دستگاه هوشمند او برای مدتی کار کرد، اما به زودی از روشن شدن خودداری کرد. پس از تحقیقات طولانی، او کشف کرد که یک فرمان خاموشی از راه دور (Remote Kill Command) برای دستگاهش صادر شده است.
سردرگمی در مرکز خدمات
او دستگاه را چندین بار به مرکز خدمات فرستاد، جایی که تکنسینها آن را روشن کرده و هیچ مشکلی در آن نمیدیدند. وقتی جاروبرقی به او بازگردانده میشد، چند روزی کار میکرد و دوباره از بوت شدن باز میماند. پس از چندین بار رفت و برگشت، مرکز خدمات احتمالاً خسته شد و با اعلام اینکه دستگاه خارج از گارانتی است، از پذیرش آن خودداری کرد. به همین دلیل، او تصمیم گرفت دستگاه را کالبدشکافی کند تا بفهمد چه چیزی آن را از کار انداخته و آیا میتواند دوباره آن را راهاندازی کند.
از آنجایی که A11 یک دستگاه هوشمند بود، دارای یک SoC (سیستم روی تراشه) AllWinner A33 با سیستم عامل TinaLinux، به همراه یک میکروکنترلر GD32F103 برای مدیریت حسگرهای متعدد (لیدار، ژیروسکوپ و غیره) بود. او کانکتورهای PCB سفارشی ساخت و اسکریپتهای پایتون نوشت تا آنها را با کامپیوتر کنترل کند، احتمالاً برای آزمایش جداگانه هر قطعه و شناسایی مشکل. در ادامه، او یک جویاستیک رزبری پای (Raspberry Pi) برای راهاندازی دستی جاروبرقی ساخت که ثابت میکرد سختافزار دستگاه هیچ مشکلی ندارد.

حقیقت تلخ: کابوس امنیتی و جمعآوری داده
با بررسی این موضوع، او به سراغ نرمافزار و سیستم عامل رفت و در آنجا حقیقت تلخ را کشف کرد: جاروبرقی هوشمند او یک کابوس امنیتی و یک حفره سیاه برای دادههای شخصیاش بود.
اول از همه، «پل دیباگ اندروید» (ADB) آن، که به او دسترسی کامل روت (Root) به جاروبرقی را میداد، با هیچ نوع رمز عبور یا رمزگذاری محافظت نمیشد. (سازنده یک پروتکل امنیتی موقتی با حذف یک فایل حیاتی اضافه کرده بود، اما Harishankar به راحتی آن را دور زد). سپس او کشف کرد که دستگاه از Google Cartographer برای ساخت یک نقشه سهبعدی زنده از خانه او استفاده میکرده است.
این به خودی خود غیرعادی نیست؛ بالاخره این یک جاروبرقی هوشمند است و برای ناوبری به این دادهها نیاز دارد. اما نکته نگرانکننده این بود که دستگاه تمام این دادهها را به سرور سازنده ارسال میکرد. منطقی است که دستگاه این دادهها را برای پردازش ارسال کند، زیرا SoC داخلی آن به اندازه کافی قدرتمند نیست، اما به نظر میرسد شرکت iLife این موضوع را به وضوح با مشتریان خود در میان نگذاشته بود.
علاوه بر این، این مهندس یک کشف نگرانکننده دیگر داشت: در اعماق لاگهای (Logs) جاروبرقی از کار افتادهاش، فرمانی با برچسب زمانی پیدا کرد که دقیقاً با زمان توقف کار دستگاه مطابقت داشت. این به وضوح یک فرمان خاموشی (Kill Command) بود. پس از اینکه او این فرمان را معکوس کرد و دستگاه را ریبوت کرد، جاروبرقی دوباره به زندگی بازگشت.

چرا جاروبرقی در مرکز خدمات کار میکرد؟
پاسخ ساده بود: تکنسینها فریمور (Firmware) جاروبرقی را ریست میکردند، در نتیجه کد خاموشی حذف میشد، و سپس آن را به یک شبکه باز (بدون فایروال) متصل میکردند که باعث میشد عادی کار کند. اما به محض اینکه دستگاه دوباره به شبکه خانگی کاربر (که سرورهای تلهمتری آن مسدود شده بودند) متصل میشد، از راه دور «آجر» میشد، زیرا نمیتوانست با سرورهای سازنده ارتباط برقرار کند.
از آنجایی که او قابلیتهای جمعآوری داده دستگاه را مسدود کرده بود، سازنده تصمیم گرفت آن را به طور کامل از کار بیندازد. هاریشانکار میگوید: «کسی—یا چیزی—از راه دور فرمان خاموشی صادر کرده بود. چه این یک تنبیه عمدی بوده باشد یا اجرای خودکار “انطباق”، نتیجه یکی بود: یک دستگاه مصرفی علیه صاحب خود اقدام کرده بود.»
هشدار جدی برای امنیت اینترنت اشیا (IoT)
متأسفانه، بسیاری از برندهای دیگر جاروبرقی هوشمند از سختافزار مشابهی استفاده میکنند، بنابراین دور از ذهن نیست که آنها نیز تنظیمات یکسانی داشته باشند. این امر به ویژه در مورد دستگاههای ارزانقیمتی صادق است که سختافزار ضعیفتری دارند و قادر به پردازش لبه (Edge Computing) نیستند، به این معنی که مجبورند دادهها را برای پردازش به سروری دوردست ارسال کنند. اما از آنجایی که اطلاعات شما به دستگاه دیگری خارج از کنترل شما منتقل میشود، شما واقعاً نمیدانید چه اتفاقی برای آن میافتد، و این به سازنده آزادی کامل میدهد تا هر طور که میخواهد از آن استفاده کند.
پیروزی نهایی و توصیه کلیدی
در پایان، این مالک توانست پس از تمام تغییراتی که اعمال کرد، جاروبرقی خود را به صورت کاملاً محلی (Local) و بدون کنترل سازنده راهاندازی کند. این به او کمک کرد تا کنترل دادههای خود را پس بگیرد و از دستگاه هوشمند ۳۰۰ دلاری خود که نرمافزاری «آجر» شده بود، طبق شرایط خودش استفاده کند. و اما توصیه او برای بقیه ما که دانش فنی و زمان لازم برای دنبال کردن دستاوردهای او را نداریم، این است:
«هرگز از شبکه وایفای اصلی خود برای دستگاههای IoT (اینترنت اشیا) استفاده نکنید» و «با آنها مانند غریبهها در خانه خود رفتار کنید.»