Мар­кетин­говый треш и тоталь­ная слеж­ка — вот какое впе­чат­ление у меня в пос­леднее вре­мя от завод­ских вер­сий Android. Нель­зя ли най­ти чис­тую, надеж­ную и при­ват­ную ОС для телефо­на, при этом не жер­твуя удобс­твом? Авто­ры GrapheneOS при­ложи­ли серь­езные уси­лия, что­бы человек не толь­ко вер­нул кон­троль над сво­им телефо­ном, но и не потерял в ком­форте. Получи­лось ли у них? Сей­час рас­ска­жу!

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

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

www

Мы уже писали про шпи­онские замаш­ки некото­рых популяр­ных про­шивок. Хоть статье уже исполни­лось шесть лет, акту­аль­нос­ти она не потеря­ла, раз­ве что объ­емы утеч­ки ста­ли боль­ше, а каналы — скрыт­нее.

GrapheneOS (ранее извес­тная как CopperheadOS) — это про­шив­ка на осно­ве AOSP, в которой сде­лан мак­сималь­ный упор на кон­фиден­циаль­ность и защиту поль­зовате­ля от вся­кого рода шпи­онских штук. При этом, в отли­чие от Ъ‑защищен­ных поделок, она сох­раня­ет юза­бель­ность, поз­воляя уста­нав­ливать при­ложе­ния и сох­раняя при­выч­ный интерфейс.

К обес­печению при­ват­ности раз­работ­чики GrapheneOS под­ходят очень методич­но и пос­ледова­тель­но: вмес­то кра­сиво­го брен­динга все уси­лия вкла­дыва­ются в глу­боко тех­ничес­кие улуч­шения, а все фичи дол­жны в пер­вую оче­редь не ухуд­шать безопас­ность, даже если поль­зовате­ли про­сят добавить что‑то прос­то кра­сивое. Сер­висы Google Play по умол­чанию отсутс­тву­ют, но мож­но уста­новить их внутрь спе­циаль­ной песоч­ницы, где они будут иметь огра­ничен­ные пра­ва.

Эти и дру­гие фиш­ки дела­ют GrapheneOS самой прод­винутой защищен­ной ОС для смар­тфо­нов в 2025 году. Я поль­зуюсь ей уже некото­рое вре­мя и хотел бы поделить­ся сво­им опы­том. Как знать — может, про­читав эту статью, и ты захочешь уста­новить себе GrapheneOS!

 

Графеновая броня

Сра­зу ого­ворюсь, что все опи­сан­ное в сегод­няшней статье при­мени­мо далеко не на всех устрой­ствах. Акту­аль­ная вер­сия GrapheneOS сов­мести­ма лишь с устрой­ства­ми Google Pixel 6 и выше, Pixel 4 и 5 про­дол­жают получать толь­ко обновле­ния безопас­ности, а некото­рые ста­рые вер­сии про­шив­ки работа­ли так­же на более ста­рых Pixel и Nexus 5 и выше. Такие высокие тре­бова­ния — не при­хоть мар­кетоло­гов (тут их вооб­ще нет), а жиз­ненная необ­ходимость: ина­че не обес­печить адек­ватную защиту. Вот непол­ный спи­сок обя­затель­ных тре­бова­ний к устрой­ству, что­бы раз­работ­чики вооб­ще взя­лись за пор­тирова­ние GrapheneOS на него:

  • под­дер­жка всех аппа­рат­ных мер безопас­ности для сто­рон­них опе­раци­онных сис­тем;
  • ми­нимум пять лет офи­циаль­ной под­дер­жки устрой­ства про­изво­дите­лем, вклю­чая регуляр­ные обновле­ния драй­веров;
  • ап­парат­ная вир­туали­зация;
  • изо­лиро­ван­ные модули ради­освя­зи, обра­бот­ки изоб­ражений и дру­гие;
  • ве­рифи­циро­ван­ная заг­рузка с защитой от пониже­ния вер­сии про­шив­ки и заг­рузчи­ка;
  • на­личие аппа­рат­ного хра­нили­ща клю­чей и аппа­рат­ная же про­вер­ка паролей с трот­тлин­гом, что­бы избе­жать брут­форса;
  • ап­парат­ная под­дер­жка фун­кций ано­ними­зации, нап­ример ран­домиза­ции MAC-адре­сов Wi-Fi;
  • воз­можность отклю­чения переда­чи дан­ных по USB и отла­доч­ных про­токо­лов в кон­трол­лере USB-пор­та.

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

info

Под при­ват­ностью я понимаю защиту от слеж­ки пос­торон­ними лицами, а под безопас­ностью — защиту от неав­торизо­ван­ного дос­тупа к ком­понен­там сис­темы. Нап­ример, рек­ламные SDK пред­став­ляют проб­лему для при­ват­ности, но не для безопас­ности, а экс­пло­ит для Chrome, который обхо­дит песоч­ницу и поз­воля­ет выпол­нять код в сис­теме, — это уже проб­лема безопас­ности, а не при­ват­ности. В реаль­нос­ти грань доволь­но тон­ка, а проб­лемы безопас­ности могут нап­рямую перерас­ти в проб­лемы при­ват­ности, так что деление доволь­но условное.

Что же кон­крет­но может пред­ложить GrapheneOS для защиты поль­зовате­ля? Даже замет­ных изме­нений доволь­но мно­го. Давай прой­дем­ся по ним по поряд­ку.

 

Sandboxed Google Play

Сер­висы Google Play глу­боко интегри­рова­ны в сис­тему любого смар­тфо­на на Android. Обыч­но они уста­нов­лены как сис­темное при­ложе­ние, име­ют широкие пра­ва и могут скрыт­но делать что угод­но: хоть сле­дить за тво­ей локаци­ей, хоть выг­ружать кон­такты (это зовет­ся син­хро­низа­цией), хоть ус­танав­ливать сом­нитель­ный софт, иног­да поч­ти неот­личимый от спай­вари. Отоз­вать у них эти раз­решения не то что­бы невоз­можно, но доволь­но зат­рудни­тель­но, а некото­рые заб­рать и прав­да нель­зя.

Мно­гие ска­жут: да что слож­ного, прос­то не ставь их и живи спо­кой­но! Без сер­висов Google Play дей­стви­тель­но мож­но жить, и мно­гие кас­томные про­шив­ки пос­тавля­ются без них, вот толь­ко поль­зовать­ся таким телефо­ном замет­но менее удоб­но. В час­тнос­ти, перес­тает работать Play Market, так что уста­нав­ливать при­ложе­ния при­ходит­ся вруч­ную или из сто­рон­них магази­нов, некото­рые при­ложе­ния отка­зыва­ются работать или работа­ют неп­равиль­но, хро­мает дос­тавка уве­дом­лений, и про­исхо­дят дру­гие неп­рият­ные вещи. Замена в виде microG помога­ет далеко не всег­да, так что для удобс­тва, конеч­но, луч­ше дер­жать нас­тоящие сер­висы.

GrapheneOS эту проб­лему реша­ет очень эле­ган­тно. Туда уста­нав­лива­ются нас­тоящие сер­висы Google Play, но работа­ют они в песоч­нице, спе­циаль­но дорабо­тан­ной для сов­мести­мос­ти с ними. Туда же мож­но уста­новить и Android Auto — точ­нее, часть под­систе­мы, которая отве­чает за тран­сля­цию телефо­на на авто­мобиль­ный бор­ткомпь­ютер и тре­бует для это­го широких при­виле­гий.

Ус­танав­лива­ются такие при­ложе­ния через встро­енный магазин GrapheneOS App Store. Из недос­татков — при­ложе­ний мало, и все они доволь­но спе­цифи­чес­кие (сер­висы Google Play, Android Auto, GrapheneOS Auditor и подоб­ные).

info

Android Auto в силу фун­дамен­таль­ных осо­бен­ностей его устрой­ства пол­ностью запихать в песоч­ницу сов­сем без при­виле­гий невоз­можно. В GrapheneOS есть спе­циаль­ное рас­ширение для под­дер­жки этой важ­ной фун­кции. Если ты решишь поль­зовать­ся Android Auto в GrapheneOS, прос­то имей в виду, что песоч­ница тут не нас­толь­ко неп­риступ­ная, как в слу­чае с дру­гими при­ложе­ниями. Впро­чем, серь­езных рис­ков это не несет: поч­ти все при­виле­гии Android Auto все же мож­но отоб­рать в рам­ках обыч­ной песоч­ницы без потери фун­кци­ональ­нос­ти.

Под­клю­чить какие‑то свои репози­тории в GrapheneOS App Store невоз­можно, так что пос­ле уста­нов­ки все­го необ­ходимо­го в пер­вый день он ста­новит­ся не нужен, а уда­лить само при­ложе­ние магази­на нель­зя.

Пе­соч­ница с гуг­лосер­висами нас­толь­ко спе­цифи­чес­кая, что под нее сде­лали даже отдель­ные меню в нас­трой­ках. Там мож­но, в час­тнос­ти, управлять спец­разре­шени­ями этих сер­висов и перех­ватывать зап­росы к Google Location API и Play Integrity API.

Нуж­но при этом понимать, что, нес­мотря на все уси­лия раз­работ­чиков GrapheneOS, гуг­лосер­висы соз­давались с уче­том пос­тоян­ного наличия при­виле­гиро­ван­ного дос­тупа к сис­теме и некото­рые фичи могут не дей­ство­вать, ког­да сер­вис запущен в песоч­нице. Нап­ример, работа с аппа­рат­ными клю­чами FIDO2 пока не под­держи­вает­ся, но ее обе­щают реали­зовать в будущем.

Песочница для задиры
Пе­соч­ница для задиры

Google Location API

Сер­висы геоло­кации Google полага­ются не толь­ко на GPS, но и на дру­гие источни­ки — в час­тнос­ти, сотовые выш­ки и бли­жай­шие точ­ки дос­тупа Wi-Fi. Эта фича зна­читель­но улуч­шает точ­ность позици­они­рова­ния и спо­соб­на работать даже без дос­тупа к GPS.

Сле­дуя полити­ке мак­сималь­ной изо­ляции проп­риетар­ных сер­висов Google от сис­темы, раз­работ­чики GrapheneOS встро­или в сис­тему аль­тер­натив­ную реали­зацию сер­виса локации, которая работа­ет на тех же прин­ципах, но не полага­ется на Google. Это зна­читель­но улуч­шает при­ват­ность и работа­ет доволь­но ста­биль­но, но если по какой‑то осо­бой при­чине тебе понадо­бил­ся сер­вис имен­но от Google — мож­но перек­лючить­ся на него.

Для это­го исполь­зуй перек­лючатель Reroute location requests to OS APIs в нас­трой­ках Sandboxed Google Play и пре­дос­тавь сер­висам Google пос­тоян­ный фоновый дос­туп к геоло­кации. Под­робнос­ти — на офи­циаль­ной спра­воч­ной стра­нице.

Из замет­ных неудобств, воз­ника­ющих от при­нуди­тель­ного затал­кивания гуг­лосер­висов в песоч­ницу, могу отме­тить менее при­ятную про­цеду­ру уста­нов­ки и обновле­ния при­ложе­ний. Если при тра­дици­онной работе гуг­ломар­кета при­ложе­ние мож­но уста­новить одной кноп­кой, то в GrapheneOS пос­ле нажатия кноп­ки уста­нов­ки в Play Market нуж­но дож­дать­ся ска­чива­ния, опре­делить­ся с дос­тупом к сети для нового при­ложе­ния и под­твер­дить уста­нов­ку во всплы­вающем в слу­чай­ный момент окне, которое может появить­ся вне­зап­но пря­мо во вре­мя активной работы с дру­гим при­ложе­нием. Очень лег­ко его зак­рыть слу­чай­ным тапом, и про­цесс при­дет­ся начинать сна­чала.

При обновле­нии уста­нов­ку новой вер­сии тоже нуж­но под­тверждать вруч­ную. Уста­нов­ка поряд­ка 30 при­ложе­ний при перехо­де на GrapheneOS прев­ратилась в пыт­ку, потому что всплы­вающие одно поверх дру­гого под­твержде­ния уста­нов­ки мешали друг дру­гу и про­цесс час­то пре­рывал­ся, так что пос­тавил все нуж­ное я раза с пятого.

Запрос при установке приложения
Зап­рос при уста­нов­ке при­ложе­ния
 

Отключение доступа в сеть

Я уже упо­минал раз­решение на дос­туп в интернет. Так вот, это не прос­то фай­рвол, который может резать соеди­нения отдель­ных при­ложе­ний, а пол­ноцен­но реали­зован­ный механизм спу­фин­га важ­ных API для работы с сетью. Нап­ример, вмес­то прос­того отка­за в дос­тупе при попыт­ке поль­зовать­ся интерне­том при­ложе­ние получит ошиб­ку, говоря­щую об отсутс­твии сетево­го соеди­нения, а API про­вер­ки дос­тупа к интерне­ту будет говорить, что устрой­ство вооб­ще ни к какой сети не под­клю­чено.

Продолжение доступно только участникам

Материалы из последних выпусков становятся доступны по отдельности только через два месяца после публикации. Чтобы продолжить чтение, необходимо стать участником сообщества «Xakep.ru».

Присоединяйся к сообществу «Xakep.ru»!

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    0 комментариев
    Межтекстовые Отзывы
    Посмотреть все комментарии