Когда мы говорим о компьютерах – персональных, смартфонах, автомобильных – мы обычно предполагаем, что есть только одна операционная система: единая, неделимая часть программного обеспечения, которая управляет каждой индивидуальной частью оборудования, от процессора до контроллера USB или беспроводной связи. Если происходит сбой в системе, мы почти всегда виним операционную систему, или, возможно, программный драйвер, встроенный в ОС
Почти в каждом учебнике по компьютерам приводятся три основных блока, из которых они состоят: аппаратное обеспечение, операционная система и все остальное (конечного пользователя) программное обеспечение, которое работает под управлением ОС. На самом деле, без возможности доступа пользователя, практически каждый компьютер имеет несколько операционных систем, работающих одновременно, управляющих разными отдельными частями компьютера – и что беспокоит больше всего, эти ОС обычно проприетарные, с закрытым исходным кодом, в них устранены все обнаруженные ошибки, и они имеют широкий, низкоуровневый доступ к вашим данным.
Возьмём, например, ваш смартфон. Существует, безусловно, первичная ОС – Android, iOS, Windows Phone – но также есть, по крайней мере, две другие операционные системы: baseband ОС и ОС SIM-карты, обе работают на своём собственном процессоре, который является отдельной SoC (электронная схема, выполняющая функции целого устройства). Когда ваш телефон включен, запущены обе эти операционные системы, управляя каждая своей соответствующей областью применения.
Когда вы отправляете текст или получаете вызов (или делаете что-нибудь ещё по беспроводной связи), на самом деле управление передается baseband OS, которая выполняет всю рутинную работу с GSM, UMTS, LTE, HSPDA, и т.д. Когда вам нужно защитить некоторые данные на вашей телефонной SIM-карте, управление берет на себя Java Card, которая имеет эксклюзивный доступ к зашифрованным данным на SIM–карте.
На первый взгляд кажется довольно разумным делать именно так – в конце концов, в современном компьютере так много различных аппаратных устройств, что было бы очень трудно для кого-то, если он не Google или Apple, создать оптимальное решение для всех возможных сочетаний.
Также имеет смысл с точки зрения эффективности иметь несколько компьютеров, которые работают параллельно – хорошо, что baseband ОС и процессор могут управлять отправкой и получением данных по сотовому соединению, оставляя SoC свободно работать на более ресурсоёмких задачах, таких как отображение небольших спрайтов конфетки или воспроизведение вызывающе громкой музыки в метро. В теории, этот вид инкапсуляции также может быть более безопасным – нет никаких оснований допускать, чтобы пользователи имели прямой доступ к baseband или SIM-карте, и такая инкапсуляция также позволит помешать хакерским/вредоносным программам получить доступ к важным защищённым областям.
На практике операционные системы часто реализуются в очень беспорядочной и небезопасной среде. Для начала важно отметить, что почти все эти вторичные ОС являются проприетарным программным обеспечением с закрытым исходным кодом, все права на которое принадлежат разработчикам аппаратного обеспечения компьютера (Qualcomm, Broadcom, Realtek, и т.д.). Так как разработчики действительно не имеют никаких законных оснований для предоставления прямого доступа к своим аппаратным устройствам, существует, как правило, очень мало общедоступной документации по работе этих ОС.
Кроме того, согласно сведениям Тома Холверды из OS News, эти операционные системы часто являются устаревшими и полностью небезопасными, с унаследованной функциональностью. Все эти факторы в совокупности делают вторичные ОС очень, очень небезопасными.
Мы хотели бы привести вам пример вторичной операционной системы, но тот факт, что практически нет общедоступной документации, делает это очень затруднительным. Лучший пример, который мы можем привести – Qualcomm REX ОС, которая работает на baseband процессорах компании с 1999 года. Есть признаки того, что Qualcomm окончательно прекратила использование REX ОС в 2012 году, но трудно получить какие-либо определённые данные. REX ОС – это операционная система реального времени (RTOS), которая работает на baseband процессоре Qualcomm (в данном случае ядро ARMv5).
Baseband процессор (и, таким образом, REX ОС) имеет прямой доступ к аппаратной части телефона (динамики, микрофоны), а также, казалось бы, есть возможность записывать в ту же память SoC (или процессора приложений). REX ОС основана на очень старой и большой базе кодов 90-х годов и реализует многие стандарты из 80-х (включая набор команд Hayes dial-up модема). Мы только знаем эту информацию, кстати, потому что хакеру удалось вскрыть REX ОС.
Как вы можете догадаться, большая, с закрытым источником база кодов, реализующая старые стандарты – это действительно плохая идея. Холверда говорит, что REX ОС автоматически выполняет любые команды, которые она получает через эфир от базовой станции оператора – и да, в случае, если вам интересно, есть команды, которые выполняют целый ряд отвратительных действий, например, включение автоответа, выполнение произвольного кода или просто блокирование вашего устройства.
Само собой разумеется, что в теории, можно установить собственную базовую станцию (скажем, с программируемыми параметрами радиосвязи) и вызывать много хаоса. Когда вы слышите, что iPhone был взломан вследствие baseband эксплойта, это означает, что хакеры нашли ошибку в baseband ОС или процессоре, что позволило им получить повышенный доступ к любой части устройства.
Это лишь один пример вторичной ОС. Как я упоминал ранее, ваша SIM-карта также имеет небольшой процессор, который работает на крошечном ядре и может выполнять программы на Java. (SIM-карты и их ОС были недавно взломаны, кстати). Если ваш компьютер имеет какую-то область безопасного хранения, такую как ARM’s TrustZone, там тоже есть, вероятно, ещё отдельная ОС и процессор. Очень маленького размера гибкие ARM ядра и отсутствие документации означает, что очень трудно сказать насколько много отдельных ОС одновременно работает на вашем компьютере.
В классическом pre-интернете, использующим метод безопасность-через-маскировку, мы не знаем насколько безопасны эти ОС, пока они не будут (публично) открыты. Если АНБ желает развернуть широкомасштабное получение незаконного доступа, которое дает ему доступ ко всем телефонным звонкам, baseband будет тем местом, чтобы сделать это.
Единственным реальным решением этой проблемы является уход от аппаратного и программного обеспечения с закрытым исходным кодом. Есть несколько признаков того, что некоторые baseband процессоры переходят на открытые решения, такие как OKL4, но опять же очень трудно найти какие-либо точные данные, потому что коммерческие компании, такие как Qualcomm, не имеют привычки разглашать сведения о внутренней работе своих чипов.
Пока же просто следует знать, что в большинстве ваших устройств работают несколько операционных систем – некоторые из них вероятно очень небезопасны, и вы ничего не можете с этим поделать.
Комментарии (4)
Но про процессор в симке я давно знал.