В каждом смартфоне прячется вторая, скрытая, операционная система

Да, в каждом смартфоне (неважно, будь то Android-, iOS- или WP-аппарат) с радиомодулем, обеспечивающим мобильную связь с сотовой сетью (например, 3G или LTE), есть не одна, а целых две операционные системы.

Помимо основной ОС, с которой и взаимодействует конечный пользователь (например, Андроид или iOS), имеется вторая, скрытая и небольшая операционная система, обслуживающая ту часть телефона, которая работает с радиоэфиром. Так как такая функциональность требует большой оперативности, то применяется операционная система реального времени.


Файлы этой операционной системы, естественно, хранятся отдельно от данных телефона, а сама ОС работает на отдельном процессоре – чипе радиомодема. Как правило, эта вторая ОС реального времени – всегда проприетарная, то есть, закрытая, ее исходных кодов нет в открытом доступе и никто этих исходников кроме разработчиков и, возможно, сертификационных служб (спецслужб?), никогда не видел.

Например, ОС, работающая с радиомодемом Qualcomm MSM6280, называется AMSS, она построена на собственном закрытом ядре компании «REX» и обслуживает одновременно 69 задач, которые управляют всем от USB до GPS. Все это работает на отдельном мобильном процессоре ARMv5.

Проблема очевидна: никто не вникал толком как работает радиомодуль и скрытая проприетарная операционная система, никто никогда толком не пытался поднять вопрос о безопасности всего этого недокументированного закрытого ПО, представляющего собой, фактически, «кота в мешке».
real os 1
Это по крайней мере странно, ибо скрытая ОС, функционирующая на любом современном устройстве с радиомодулем, занимает далеко не последнее место в управлении конфиденциальной информацией и обеспечении безопасности пользователя.

Конечно, вы можете «по умолчанию» полагаться на заявление, что та же AMSS безопасна и на сто процентов надежна. Но что если это на самом деле не так? Что, если имея на своем телефоне самую защищенную и сверхнадежную в мире основную операционную систему, вы получите большую брешь в безопасности в виде никем незамеченной второй ОС?

Небезопасность ПО, обслуживающего радиомодули, это следствие ошибочной проектировки и стандартизации. Стандарты, по которым работают радиомодемы, были разработаны аж в 80-е годы, а стандарты, по которым работает соответствующий софт, были разработаны в 90-е годы. Для мобильной электроники это очень большой срок.

Представим на секунду, что появился эксплойт, использующий баги скрытой операционной системы. Все телефоны, работающие под управлением ОС, к которой написан эксплойт, автоматически окажутся в зоне катастрофического риска. Что еще хуже, радиомодем автоматически доверяет всему, что он получает от базовой станции (т.е. сотовой вышки). Ничего не проверяется, вся принимаемая и передаваемая информация по умолчанию считается стопроцентно надежной. Кроме того, в большинстве смартфонов, процессор радиомодема считается главным, а процессор приложений (на котором «крутится» привычная нам пользовательская ОС) – второстепенным.

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

Примерно с такими мыслями исследователь в области информационной безопасности, Ральф-Филипп Вайнманн из Люксембургского университета (да, это тот самый Ральф, который в далеком 2010 году за 20 секунд взломал iPhone), принялся за инженерный анализ (также известный как обратный инжиниринг) программного обеспечения радиомодемов компаний Qualcomm и Infineon.

Исследователь легко обнаружил большое количество багов и общий программный бардак в скрытых ОС, которые могут запросто привести к созданию эксплойтов не только вызывающих сбои смартфонов, но и позволяющие атакующему удаленно выполнять произвольный код. И все это по воздуху, без непосредственного физического воздействия на телефон. Например, Ральф-Филипп обнаружил, что достаточно создать эксплойт, отсылающий сообщение из всего 73 байтов, чтобы получить возможность выполнять на устройстве код удаленно.

Злоумышленник, получивший такой мощный инструмент в свои руки, может, например, включить вам невидимый и неслышимый автоответчик, используя модемные команды Hayes. Этот «язык общения» телефонных Dial-UP модемов был разработан еще в 1981 году, но, тем не менее, он до сих пор применяется в современных смартфонах!
real os 2
Базовая станция оператора Sprint

Несмотря на то, что мы можем худо-бедно доверять базовым станциям больших операторов, подразумевая их безопасность, стоит понимать, что базовые станции – это не какое-то суперэксклюзивное сверхсекретное оборудование – базовые станции дешевеют с каждым днем, есть даже прецеденты продажи таковых на eBay’е. Кроме того, уже есть свободное и открытое программное обеспечение, выполняющее роль БС на обычном компьютере.

Достаточно, при наличии большого желания, средств и знаний,  установить фальшивую базовую станцию (например, в центре деловой части города) и вы получите возможность включать и отключать микрофоны, камеры, устанавливать и запускать руткиты, делать звонки и отсылать SMS-ки по любым номерам и так далее. Вы даже можете навсегда вывести телефон из строя!

Это довольно серьезная проблема, тем не менее, не особо поднимаемая и освещаемая в СМИ.

Конечно, не каждому под силу разработать неоднократно упомянутый эксплойт, и не каждому под силу достаточно глубоко «нырнуть» в темный омут закрытого софта, закрытых спецификаций, заниматься реверс-инжинирингом и созданием фальшивых базовых станций. Но что если кто-то, все-таки, уделит этому время? И что если этот кто-то будет успешен в своих изысканиях (и это не фантазии – подобное уже случалось совсем недавно)?

P.S. Если говорить совсем уж точно, то в смартфонах работает не две, а целые три операционные системы, две из которых скрытые. Помимо ОС реального времени, обрабатывающей данные для радиомодема, совсем крохотная операционная система работает внутри SIM-карты. Да, как бы это ни звучало странно, внутри SIM-карты есть собственный процессор и собственная память, которыми управляет отдельная ОС.


Источник:
Интересно? Делись:

Блог: http://romanlovetext.blogspot.com/