1. Понять

Правда ли, что наши смартфоны и ноутбуки постоянно нас слушают

И что нажать, чтобы запретить им это делать

Правда ли, что наши смартфоны и ноутбуки постоянно нас слушаютПравда ли, что наши смартфоны и ноутбуки постоянно нас слушают

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




На что спо­соб­ны со­вре­мен­ные при­ло­же­ния и что зна­ют о нас наши смарт­фо­ны

Нач­нем с са­мо­го на­ча­ла — за­гля­нем в поль­зо­ва­тель­ское со­гла­ше­ние од­но­го при­ло­же­ния для об­ме­на со­об­ще­ни­я­ми. Мы же все под­пи­сы­ва­ем этот до­ку­мент, не чи­тая? А те­перь про­чи­та­ем. И вот сра­зу же наше вни­ма­ние при­вле­ка­ет пункт, ко­то­рый гла­сит:

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

Этот пункт по­ло­же­ния на­ме­ка­ет на то, что со­об­ще­ния мо­гут про­хо­дить сер­вер­ное ска­ни­ро­ва­ние. Вот как это про­ис­хо­дит: текст со­об­ще­ния до­став­ля­ет­ся на сер­ве­ры толь­ко с транс­порт­ным шиф­ро­ва­ни­ем (оно нуж­но, толь­ко что­бы за­щи­тить ка­нал свя­зи, на сер­ве­ре та­кое со­об­ще­ние мо­жет быть рас­шиф­ро­ва­но), где при­ме­ня­ют­ся филь­тры или ML-мо­де­ли[1], ко­то­рые по­ме­ча­ют или уда­ля­ют спам, вре­до­нос­ные ссыл­ки или за­пре­щен­ный кон­тент. Та­ким об­ра­зом при­ло­же­ние ав­то­ма­ти­че­ски по­лу­ча­ет до­ступ к пол­но­му со­дер­жи­мо­му лю­бо­го от­прав­лен­но­го со смарт­фо­на со­об­ще­ния или вло­же­ния, а так­же ме­та­дан­ные[2] и ре­зуль­та­ты ана­ли­за. Это на­ру­ша­ет прин­цип при­ват­но­сти.

Если за­гля­нуть в та­кой же до­ку­мент для дру­го­го мес­сен­дже­ра, мы встре­тим по­хо­жую фор­му­ли­ров­ку:

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

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

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

В чем по­тен­ци­аль­ная опас­ность по­пу­ляр­ных про­грамм для со­зво­нов

Звон­ки в неко­то­ром при­ло­же­нии для об­ме­на со­об­ще­ни­я­ми про­из­во­дят­ся че­рез We­bRTC (Web Real-Time Com­mu­ni­ca­tion) — это тех­но­ло­гия, ко­то­рая поз­во­ля­ет ор­га­ни­зо­вы­вать пря­мую пе­ре­да­чу аудио и ви­део меж­ду бра­у­зе­ра­ми в ре­аль­ном вре­ме­ни без необ­хо­ди­мо­сти уста­нав­ли­вать до­пол­ни­тель­ные рас­ши­ре­ния и при­ло­же­ния на устрой­ство. То есть бра­у­зе­ры по­лу­ча­ют встро­ен­ные ме­ха­низ­мы и раз­ре­ше­ния для ра­бо­ты ка­ме­ры и мик­ро­фо­на. По та­ко­му прин­ци­пу ра­бо­та­ет мно­же­ство про­грамм для со­зво­нов.

В це­лом We­bRTC очень удо­бен и яв­ля­ет­ся стан­дар­том, но в то же вре­мя име­ет несколь­ко уяз­ви­мо­стей:

1. IP-leak — утеч­ка IP-ад­ре­са

We­bRTC ис­поль­зу­ет со­еди­не­ние P2P (peer-to-peer — «пи­рин­го­вый», или «рав­ный к рав­но­му»). «Рав­ный к рав­но­му» озна­ча­ет, что два ком­пью­те­ра под­клю­ча­ют­ся друг к дру­гу на­пря­мую, а не че­рез сер­вер. Для это­го We­bRTC ищет ло­каль­ные и пуб­лич­ные IP-ад­ре­са устрой­ства, что­бы вы­брать луч­ший марш­рут. Ко­гда сайт ис­поль­зу­ет We­bRTC, он мо­жет за­про­сить эти ад­ре­са. Как след­ствие, даже если вы си­ди­те че­рез VPN, сайт зна­ет ваш на­сто­я­щий IP-ад­рес. Та­ким об­ра­зом мож­но от­сле­дить ваше ре­аль­ное ме­сто­по­ло­же­ние — си­ту­а­ция ми­нус вайб.

2. Вре­до­нос­ный JavaScript

Лю­бой сайт мо­жет за­пус­кать JS-код на ва­шем устрой­стве. HTML-стра­ни­ца со­сто­ит из раз­лич­ных ре­сур­сов (тек­ста, кар­ти­нок, сти­лей) и скрип­тов (ин­струк­ций, ко­то­рые по­мо­га­ют сай­ту ре­а­ги­ро­вать на дей­ствия поль­зо­ва­те­лей), на­пи­сан­ных на язы­ке JavaScript. Ко­гда вы от­кры­ва­е­те сайт в бра­у­зе­ре, он за­гру­жа­ет эти дан­ные с сер­ве­ра. Если в коде есть строч­ка <script>, то бра­у­зер вы­пол­нит этот код пря­мо на ком­пью­те­ре. Скрипт мо­гут на­пи­сать с раз­ны­ми на­ме­ре­ни­я­ми, по­это­му все­гда есть ве­ро­ят­ность, что он сво­ру­ет ваш IP-ад­рес, све­де­ния о том, ка­кие се­те­вые под­клю­че­ния есть на устрой­стве (Wi-Fi, 4G, VPN), и ин­фор­ма­цию о на­ли­чии ло­каль­ных устройств в сети (ка­ме­ры, прин­те­ры). Та­кие хит­ро­сти поз­во­лят свя­зать вашу ак­тив­ность в ин­тер­не­те с вами лич­но. С по­мо­щью све­де­ний о ло­каль­ной сети мож­но най­ти уяз­ви­мые устрой­ства и по­про­бо­вать к ним под­клю­чить­ся.

Как ра­бо­та­ет шиф­ро­ва­ние в мес­сен­дже­рах и га­ран­ти­ру­ет ли оно без­опас­ность пе­ре­пис­ки

Бу­дем чест­ны: ни­кто не лю­бит лиш­ние уши в диа­ло­ге. При­ват­ность пе­ре­пис­ки мо­жет обес­пе­чить сквоз­ное шиф­ро­ва­ние дан­ных. E2EE (end-to-end en­cryp­tion) — это ме­тод за­щи­ты дан­ных, при ко­то­ром со­об­ще­ния или фай­лы шиф­ру­ют­ся на устрой­стве от­пра­ви­те­ля и рас­шиф­ро­вы­ва­ют­ся толь­ко на устрой­стве по­лу­ча­те­ля. Ра­бо­та­ет это так: мама пи­шет вам со­об­ще­ние, и пе­ред от­прав­кой ее смарт­фон ис­поль­зу­ет от­кры­тый ключ, это со­об­ще­ние шиф­ру­ю­щий. Шифр пе­ре­сы­ла­ет­ся че­рез сер­вер, ко­то­рый не по­ни­ма­ет ни сло­ва из на­пи­сан­но­го. Ваш те­ле­фон по­лу­ча­ет это нечто и де­шиф­ру­ет с по­мо­щью за­кры­то­го клю­ча. Вот как мно­го дей­ствий про­ис­хо­дит, что­бы до­ста­вить со­об­ще­ние «Ты по­ку­шал?», но зато это оста­ет­ся толь­ко меж­ду вами.

При этом сер­вер мес­сен­дже­ра за­щи­ща­ет толь­ко со­дер­жи­мое со­об­ще­ний, но не ме­та­дан­ные. Ме­та­дан­ные — это дан­ные о дан­ных: ID по­лу­ча­те­ля и от­пра­ви­те­ля, вре­мя и дата от­прав­ки со­об­ще­ния, дли­тель­ность звон­ка и т. д. Эти дан­ные обыч­но ис­поль­зу­ют­ся для штат­ной ра­бо­ты мес­сен­дже­ров, сбо­ра ста­ти­сти­ки, что­бы раз­ра­бот­чи­ки по­ни­ма­ли, ка­кие функ­ции наи­бо­лее вос­тре­бо­ва­ны, что­бы по­том как-то их улуч­шить. Но точ­но так же ме­та­дан­ные мо­гут ис­поль­зо­вать­ся под­ло: на­при­мер, для на­строй­ки тар­ге­ти­ро­ван­ной ре­кла­мы или для слеж­ки. То есть, если вы на­пи­са­ли дру­гу в 22:00, ни­кто не узна­ет, что имен­но вы на­пи­са­ли, но вы­яс­нить, что в 22:00 вы кон­так­ти­ро­ва­ли с кон­крет­ным че­ло­ве­ком, очень даже мож­но.

В чем глав­ные уяз­ви­мо­сти устройств на An­droid

Один из поль­зо­ва­те­лей сер­ви­са GitHub про­ана­ли­зи­ро­вал код неко­то­ро­го при­ло­же­ния, сов­ме­сти­мо­го с опе­ра­ци­он­ной си­сте­мой An­droid.

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

2. При­ло­же­ние со­би­ра­ет очень мно­го пер­со­наль­ных дан­ных. Пер­со­наль­ные дан­ные вклю­ча­ют воз­раст, пол, ID из дру­гих соц­се­тей, ад­ре­са по­чты, но­ме­ра те­ле­фо­нов, точ­ную гео­ло­ка­цию. Так­же код со­дер­жит ка­стом­ные па­ра­мет­ры, ко­то­рые поз­во­ля­ют раз­ра­бот­чи­кам со­би­рать лю­бую до­пол­ни­тель­ную ин­фор­ма­цию. Про­грам­ма так­же пе­ре­да­ет ин­фор­ма­цию о со­бы­ти­ях, ко­то­рые про­ис­хо­дят на устрой­стве: вза­и­мо­дей­ствия с ре­кла­мой, руч­ной за­пуск, вре­мя, про­ве­ден­ное в при­ло­же­нии, и спи­сок всех уста­нов­лен­ных при­ло­же­ний на устрой­стве.

3. У каж­до­го при­ло­же­ния для An­droid есть файл An­droid­Man­i­fest.xml — это до­ку­мент, где про­пи­са­ны раз­ре­ше­ния, ко­то­рые за­пра­ши­ва­ет при­ло­же­ние, и пе­ре­чис­ле­ние того, что ис­поль­зу­ет­ся для вза­и­мо­дей­ствия с опе­ра­ци­он­ной си­сте­мой устрой­ства. Спи­сок огром­ный и в це­лом со­от­вет­ству­ет ана­ло­гич­ным фай­лам лю­бо­го дру­го­го мес­сен­дже­ра, но са­мое ин­те­рес­ное вот:

<ser­vice an­droid:name="an­droidx.work.impl.fore­ground.Sys­tem­Fore­ground­Ser­vice" an­droid:en­abled="@bool/​​​​en­able_sys­tem_­fore­ground_ser­vice_de­fault" an­droid:ex­ported="false" an­droid:di­rect­BootAware="false" an­droid:fore­ground­Ser­vice­Type="mi­cro­phone|cam­era|lo­ca­tion|me­di­aPlay­back|data­Sync"/&​​​​gt;

Бу! Ис­пу­га­лись? Не бой­тесь. Сама по себе эта строч­ка не дает ав­то­ма­ти­че­ско­го скры­то­го до­сту­па к мик­ро­фо­ну, ка­ме­ре и за­хва­ту экра­на. Здесь про­сто рас­ска­зы­ва­ет­ся, что при­ло­же­ние мо­жет за­пус­кать эти функ­ции в фо­но­вом ре­жи­ме, если ему раз­ре­шат, и, если ему раз­ре­ша­ют, оно по­ка­зы­ва­ет уве­дом­ле­ния о сво­ей ак­тив­но­сти. На­чи­ная с An­droid 12 си­сте­ма так­же по­ка­зы­ва­ет ин­ди­ка­то­ры ра­бо­ты мик­ро­фо­на/​​ка­ме­ры.

4. При­ло­же­ние име­ет воз­мож­ность «за­кре­пить­ся» в си­сте­ме. Ему до­сту­пен ав­то­за­пуск при за­груз­ке устрой­ства, бла­го­да­ря чему про­грам­ма и ее фо­но­вые служ­бы мо­гут ав­то­ма­ти­че­ски за­пус­кать­ся сра­зу по­сле вклю­че­ния устрой­ства. Бла­го­да­ря строч­ке RE­CEIVE_­BOOT_­COM­PLETED при­ло­же­ние по­лу­ча­ет пра­во узна­вать, ко­гда те­ле­фон вклю­чил­ся. Дру­гие при­ло­же­ния ис­поль­зу­ют это, на­при­мер, что­бы вклю­чать по­лу­че­ние уве­дом­ле­ний.

5. При­ло­же­ние мо­жет фик­си­ро­вать и пе­ре­да­вать текст, ко­то­рый поль­зо­ва­тель вво­дил по­след­ним, а так­же све­де­ния о прав­ках и от­ве­тах в ча­тах. Это не си­стем­ный кей­логгер[3], но фак­ти­че­ски это спо­соб­ность со­би­рать дан­ные о дей­стви­ях поль­зо­ва­те­ля внут­ри са­мо­го при­ло­же­ния.

6. По­тен­ци­ал для уста­нов­ки до­пол­ни­тель­но­го ПО. Раз­ре­ше­ние RE­QUEST_IN­STAL­L_­PACK­AGES поз­во­ля­ет при­ло­же­нию пред­ла­гать уста­нов­ку фай­лов APK. Поль­зо­ва­тель дол­жен под­твер­дить уста­нов­ку, но с его по­мо­щью при­ло­же­ние мо­жет до­бав­лять до­пол­ни­тель­ные мо­ду­ли, об­нов­ле­ния или даже вре­до­нос­ные про­грам­мы вне офи­ци­аль­ных ма­га­зи­нов. А DOWN­LOAD­_WITH­OUT_NO­TI­FI­CA­TION поз­во­ля­ет ска­чи­вать что-то без уве­дом­ле­ния поль­зо­ва­те­ля.

7. Раз­ре­ше­ние на по­сто­ян­ный за­хват экра­на. FORE­GROUND_SER­VICE_­ME­DI­A_PRO­JEC­TION дает при­ло­же­нию воз­мож­ность за­пи­сы­вать всё, что про­ис­хо­дит на экране устрой­ства, даже ко­гда оно ра­бо­та­ет на фоне, если поль­зо­ва­тель дал на это раз­ре­ше­ние. В мес­сен­дже­рах это ис­поль­зу­ет­ся для де­мон­стра­ции экра­на на со­звоне. Но по­тен­ци­аль­но при­ло­же­ние мо­жет ви­деть и со­хра­нять все дей­ствия поль­зо­ва­те­ля на экране, вклю­чая пе­ре­пис­ки, па­ро­ли и лич­ные дан­ные.

8. Хо­ро­шие но­во­сти! В An­droid­Man­i­fest.xml нет ука­за­ний на пря­мые раз­ре­ше­ния для из­ме­не­ния си­стем­ных фай­лов, по­лу­че­ние root-до­сту­па (пол­ный кон­троль за опе­ра­ци­он­ной си­сте­мой устрой­ства) или вме­ша­тель­ство в ра­бо­ту дру­гих при­ло­же­ний.

В код при­ло­же­ния для iOS ни­кто не за­лез, но опе­ра­ци­он­ная си­сте­ма чет­ко огра­ни­чи­ва­ет все раз­ре­ше­ния для при­ло­же­ний и стро­го кон­тро­ли­ру­ет до­ступ к экран­ной за­пи­си. Во-пер­вых, если при­ло­же­ние ис­поль­зу­ет мик­ро­фон, то в верх­ней ча­сти экра­на по­яв­ля­ет­ся оран­же­вый ин­ди­ка­тор, если ка­ме­ру — зе­ле­ный. Эта функ­ция до­ступ­на поль­зо­ва­те­лям с вер­сии iOS 14, ко­то­рая вы­пу­ще­на в 2020 году. Во-вто­рых, мож­но про­ве­рить, ка­кие при­ло­же­ния ис­поль­зу­ют мик­ро­фон в на­строй­ках: в «Пунк­те управ­ле­ния» мож­но уви­деть, ка­кое при­ло­же­ние за­пи­сы­ва­ет аудио в дан­ный мо­мент. В на­строй­ках так­же мож­но уточ­нить, ка­кое при­ло­же­ние име­ет пра­во ис­поль­зо­вать мик­ро­фон при за­бло­ки­ро­ван­ном экране.

Ито­ги

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

Об­лож­ка: кол­лаж «Цеха». Фото: © Alexey Boldin, New Africa / Shut­ter­stock / Fotodom