Инженер заинтересовался тем, как работает его умный пылесос iLife A11, и начал отслеживать сетевой трафик, исходящий от устройства. Именно тогда он заметил, что пылесос постоянно отправляет логи и телеметрию производителю — без его согласия. Пользователь по имени Харишанкар решил заблокировать IP-адреса серверов телеметрии в своей сети, оставив открытыми только серверы прошивки и OTA-обновлений. Устройство работало какое-то время, но вскоре просто отказалось включаться. После длительного расследования он обнаружил, что на его пылесос была отправлена команда дистанционного отключения.
Он несколько раз отправлял устройство в сервисный центр, где техники включали его, не находили никаких неисправностей и возвращали владельцу. Дома пылесос работал пару дней, а затем снова не включался. После нескольких циклов «туда-сюда» сервисный центр, вероятно, устал и просто перестал принимать устройство, заявив, что гарантия закончилась. Из-за этого Харишанкар решил разобрать пылесос, чтобы выяснить, что именно его «убило» и можно ли его оживить.
Поскольку A11 — умное устройство, в нём использовался SoC AllWinner A33 с операционной системой TinaLinux, а также микроконтроллер GD32F103 для управления множеством датчиков: лидаром, гироскопами и энкодерами. Инженер создал коннекторы для плат и написал Python-скрипты, чтобы управлять ими с компьютера — видимо, для тестирования каждого компонента по отдельности и поиска неисправности. Затем он собрал джойстик на Raspberry Pi, чтобы вручную управлять пылесосом, доказав, что с аппаратной частью всё в порядке.
Далее он занялся программным обеспечением и операционной системой — и здесь раскрылась мрачная правда: его умный пылесос был кошмаром с точки зрения безопасности и чёрной дырой для личных данных. Во-первых, Android Debug Bridge (ADB), дающий полный root-доступ к устройству, не был защищён паролем или шифрованием. Производитель добавил кустарный механизм безопасности, просто убрав ключевой файл, из-за чего устройство отключалось вскоре после загрузки, — но Харишанкар легко обошёл это. Затем он обнаружил, что пылесос использует Google Cartographer для построения живой 3D-карты его дома.
Это само по себе неудивительно: умный пылесос должен ориентироваться в пространстве. Однако тревожно то, что все эти данные отправлялись на серверы производителя. Логично, что устройство передаёт данные — его встроенный SoC недостаточно мощный для обработки всего объёма. Но iLife, похоже, не согласовала это с пользователями. А самое тревожное открытие: в логах неработающего пылесоса Харишанкар нашёл команду с меткой времени, точно совпадающей с моментом, когда устройство перестало работать. Это была команда отключения. После её реверса и перезагрузки пылесос снова ожил.
Оригинал
Уникальность