Share This
Связаться со мной
Крути в низ
Categories
//Прошивку терминала Starlink скачали и проанализировали

Прошивку терминала Starlink скачали и проанализировали

09.07.2021Category : My Habr

proshivku terminala starlink skachali i proanalizirovali 0e59997 - Прошивку терминала Starlink скачали и проанализировали

Для прерывания процесса загрузки пользовательского терминала нужно ввести команду "‘falcon".

Инженер из Бельгии по имени Леннерт Воутерс (Lennert Wouters) сумел скачать и проанализировать прошивку спутникового терминала Starlink. В ходе своих изысканий он сделал несколько интересных наблюдений и обнаружил, что существуют разные версии терминала, включая отдельную версию оборудования для разработчиков, которая защищена флагом геозоны. Даже инженеры SpaceX не везде могут работать в режиме настройки такого оборудования.

Эксперт рассказал, что получил комплект Starlink в конце мая, успел за несколько дней провести начальные исследования оборудования, выгрузить и извлечь прошивку пользовательского терминала системы. Он также добавил, что SpaceX поощряет действия энтузиастов, которые могут найти уязвимости в спутниковом комплекте, открыла доступ к программе багбаунти на портале bugcrowd и дает за обнаруженные программные дыры в прошивке или работе устройств до $25 тыс.

После сборки и настройки комплекта Starlink Воутерс сначала обновил его до последней версии прошивки и провел тестирование скорости. Он получил 268 Мбит при скачивании и 49 Мбит при загрузки в сети.

После проведения штатных проверок и изучения работы и принципов разборки терминала по роликами на YouTube, Воутерс начал операцию по его вскрытия и получению доступа к центральному чипу на базе 4-х ядерного SoC Cortex-A53.

В процессе разборки инженер нашел в корпусе терминала несколько разъемов — для кабеля Ethernet и управления двигателем, а также один дополнительный незадействованный четырехпиновый разъем интерфейса отладки по UART. К нему и подключился Воутерс для проверки механизма загрузки.

proshivku terminala starlink skachali i proanalizirovali 5e2f9ad - Прошивку терминала Starlink скачали и проанализировали

Инженер обнаружил, что терминал использует загрузчик U-Boot, а для прерывания процесса загрузки нужно ввести команду "‘falcon", хотя это не поможет в текущей конфигурации, так как последовательный ввод в терминале настроен на nulldev.

В процессе работы U-Boot загружает ядро, RAM-диск и Flattened Device Tree (FDT) из образа Flattened uImage Tree (FIT), который хранится на встроенной карте памяти MultiMediaCard (eMMC). При загрузке проверяется целостность (с помощью SHA256) и подлинность (по RSA 2048) кода ядра, RAM-диска и FDT. В система реализована полная доверенная цепочка загрузки (TF-A) от начального загрузчика ROM до операционной системы Linux.

proshivku terminala starlink skachali i proanalizirovali 2ee81c8 - Прошивку терминала Starlink скачали и проанализировали

proshivku terminala starlink skachali i proanalizirovali 23170d4 - Прошивку терминала Starlink скачали и проанализировали

Оставшаяся часть процесса загрузки также содержит интересные фрагменты информации. Например, там можно видеть аргументы командной строки ядра, а также начальные адреса и длину некоторых разделов. Кроме того понятно, что SoC содержит 4 ядра.

proshivku terminala starlink skachali i proanalizirovali c38ce56 - Прошивку терминала Starlink скачали и проанализировали

Наконец, когда терминал завершает процесс загрузки, появляется приглашение для входа в систему.

Воутерс сделал несколько попыток угадать заводские учетные данные, но ничего не получилось. Он решил пойти глубже и начал разбирать антенну терминала для получения прямого доступа к центральному чипу и карте памяти устройства.

proshivku terminala starlink skachali i proanalizirovali 2b5364a - Прошивку терминала Starlink скачали и проанализировали

Оказалось, что центральный чип в корпусе с flip-chip BGA с металлической крышкой имеет маркировку ST GLLCCOCA6BF. Он подключен к энергозависимому хранилищу DRAM и энергонезависимому флэш-хранилищу в виде микросхемы eMMC.

Исследователь обнаружил, что встроенная карта памяти eMMC, содержащая флеш-память и контроллер, очень похожа на SD-карту, а ее микросхема Micron eMMC имеет маркировку JY976. Оказалось, что это микросхема MTFC4GACAJCN-1M с 4 ГБ флэш-памяти в корпусе BGA-153.

Воутерс решил не демонтировать чип памяти, что могло бы привести к его повреждению, а попытался сбросить внутрисхемный дамп eMMC.

proshivku terminala starlink skachali i proanalizirovali 3a44d39 - Прошивку терминала Starlink скачали и проанализировали

Инженер смог идентифицировать сигналы CLK, CMD и D0 по 10 контрольным точкам около центрального SoC. Это были линии CMD, CLK и 8 линий данных с чипа памяти.

proshivku terminala starlink skachali i proanalizirovali fad4dd7 - Прошивку терминала Starlink скачали и проанализировали

Сигнал CLK был единственным повторяющимся сигналом, CMD — это сигнал, который был первым активным после того, как CLK начал переключаться, а D0 — это первая линия данных для отправки данных. К счастью, определение оставшихся 7 строк данных не нужно для дампа содержимого eMMC.

proshivku terminala starlink skachali i proanalizirovali 233b768 - Прошивку терминала Starlink скачали и проанализировали

Подключение считывателя к карте памяти терминала.

proshivku terminala starlink skachali i proanalizirovali 5e9fb6f - Прошивку терминала Starlink скачали и проанализировали

Получение данных с карты памяти.

После анализа скачанных данных и изучения модификации U-Boot от SpaceX на Github, Воутерс понял, что некоторые части прошивки хранятся в кастомном формате, который содержит в себе данные кода исправления ошибок (ECC). Исследователь решил убрать эти данные ECC с помощью скрипта Python и смог расшифровать файл spacex_catson_boot.h, в котором содержится информация о процессе загрузки терминала. Также инженер смог прочитать другие файлы системы и даже нашел возможность зайти в систему под root. Оказалось, что для этого нужна другая версия терминала. Текущая пользовательская версия терминала не имеет такой возможности и ее нельзя переделать.

Вдобавок исследователь обнаружил из ссылок в прошивке, что пользовательский терминал содержит защищенный элемент STMicroelectronics STSAFE. Назначение защищенного элемента не совсем понятно. Воутерс предположил, что SpaceX использует его для удаленной аутентификации терминала.

Инженер рассказал, что каждому ядру центрального чипа поставлена своя задача.

############################

# System Information

############################

#

# The user terminal phased-array computers are Catson SoCs with a quad-core

# Cortex-A53.

#

# We dedicate one core to control, while leaving the other three to handle

# interrupts and auxiliary processes.

#

# CPU 0: Control process.

# CPU 1: Lower-MAC RX process.

# CPU 2: Lower-MAC TX process.

# CPU 3: PhyFW and utility core — interrupts, auxiliary processes, miscellaneous

Воутерс подытожил, что он только начал работать с терминалом и продолжит изучать его внутренний код. В его планах рассказывать публично о новых открытиях после проверки всех данных.

9 февраля 2021 года Starlink открыла прием предзаказов на подключение к системе спутникового интернета. Компания принимает те запросы, где сейчас у нее есть разрешения на оказания услуг и технические возможности их предоставить в скорое время.

В января энтузиаст безвозвратно разобрал антенну Starlink и изучил ее элементы под рентгеном.

В начале ноября прошлого года бета-тестеры Starlink показали, как выглядит присланный им комплект оборудования для спутникового интернета.

SpaceX с мая 2019 года выводит на орбиту группы мини-спутников в рамках проекта Starlink. SpaceX собирается обеспечить глобальное покрытие сети спутникового интернета Starlink к сентябрю этого года.

  • 5 views
  • 0 Comment

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Связаться со мной
Close