Apple всё ещё следит за вами. Без вашего согласия.
Apple всё ещё следит за вами. Без вашего согласия.

В текущей версии macOS Monterey, при каждом обновлении системы на системе, содержащей чип M1, такой же как и все новые блестящие/быстрые маки с ARM ("Apple Silicon"), процесс обновления обращается в Apple, чтобы получить специальную подпись загрузки, известную на жаргоне Apple как "билет" (он же ticket).

Это делается абсолютно незашифрованным способом, через стандартный открытый 80 порт HTTP (точно такой же протокол, который запрещен для использования сторонними разработчиками приложений в App Store при передаче приватных данных, таких как уникальные идентификаторы, служащие PII) на хост gs.apple.com.

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

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

Любой, кто следит за интернет-магистралями, может увидеть, в каком городе находится каждый серийный номер чипа (ECID), и может увидеть, куда они перемещаются, поскольку эти обновления выпускаются несколько раз в квартал.

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

Запросы передаются на сервер под названием gs.apple.com, который представляет собой API под управлением Apple и предоставляет сервис под названием TSS, который используется со времен старой iOS для предоставления "билетов" (подписей загрузки), позволяющих загружать ARM-процессоры, разработанные Apple (например, серии Ax и Mx).

Вот как это выглядит при обновлении в последнюю неделю января 2022 года на MacBookPro18,2 (M1 Max 16" MacBook Pro, 2021):

Обратите внимание, что это запрос, отправленный на сервер, и что он отправлен полностью незашифрованным.

POST /TSS/controller?action=2 HTTP/1.1
Host: gs.apple.com:80
Content-Type: text/xml; charset="utf-8"
Proxy-Connection: Keep-Alive
Pragma: no-cache
User-Agent: com.apple.MobileSoftwareUpdate.UpdateBrainService/1 CFNetwork/1327.0.4 Darwin/21.2.0
Content-Length: 15xxx
Connection: close

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>@ApImg4Ticket</key>
	<true/>
	<key>@BBTicket</key>
	<true/>
	<key>@Baobab,Ticket</key>
	<true/>
	<key>@HostPlatformInfo</key>
	<string>mac</string>
	<key>@SE,Ticket</key>
	<true/>
	<key>@VersionInfo</key>
	<string>libauthinstall-850.0.2</string>
	<key>ANE</key>
	<dict>

--- some lines redacted ---

	<key>ApBoardID</key>
	<integer>10</integer>
	<key>ApChipID</key>
	<integer>24577</integer>
	<key>ApECID</key>
	<integer>REDACTED UNIQUE APPLICATION PROCESSOR EC ID (a 16 digit integer)</integer>
	<key>ApNonce</key>
	<data>
	base64 data redacted
	</data>
	<key>ApProductionMode</key>
	<true/>
	<key>ApSecurityDomain</key>
	<integer>1</integer>
	<key>ApSecurityMode</key>
	<true/>

--- additional lines redacted ---

Если вы заблокируете это соединение или заблокируете (также незашифрованные) незащищенные OCSP-соединения, созданные mac (ранее сообщалось здесь) во время процесса обновления, обновление завершится ошибкой, и ваш компьютер останется устаревшим и доступным для уязвимостей безопасности.

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

Похоже, что Apple нисколько не заинтересована в том, чтобы обеспечить вам безопасность от злонамеренных действий, предпринятых самой Apple (либо умышленных, либо вынужденных).

Это мнение автора, с которым мы можем не быть согласны

Это огромный риск, учитывая, что Apple находится в той же юрисдикции, которая всерьёз покушалась на Джулиана Ассанжа за журналистскую деятельность. Можно подумать, что им лучше известно.

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

Эта уязвимость существует в последней/текущей версии macOS, macOS Monterey 12.3.1. Без проверки я предполагаю, что она существует и в iOS.

Apple, пожалуйста, прекратите передавать идентификаторы отслеживания в открытом виде по сети. Вы перешли черту, за которой кто-то может обоснованно подозревать вас в сохранении возможности отслеживания и для военной разведки. Использованию plaintext больше нет оправдания, вы даже запретили его использование разработчиками в App Store в рамках инициативы App Transport Security. Формируйте!

Вы даже создали (премиальную, платную) службу (под названием iCloud Private Relay) специально для сокрытия IP-адресов клиентов от рекламодателей и служб отслеживания электронной почты именно по этой причине. Вы не можете заявить, что не знаете о проблеме конфиденциальности. По какой-то причине вы не используете этот же сервис для защиты наиболее важной для безопасности (и потенциально критической для жизни) информации ваших пользователей (их местоположения) во время критически важных и частых/постоянных операций (обновления операционной системы), которые никто не должен пропускать.

Продолжение передачи идентификаторов в открытом виде будет расценено как злой умысел.

Исправьте это.

Джеффри Пол
- хакер и исследователь безопасности, живущий в Берлине, основатель EEQJ, консалтинговой и исследовательской организации.


Больше историй, подходов к реализации и инструментов для iOS-разработчика можно найти в авторском канале об iOS-разработке.

Канал об iOS-разработке
Канал об iOS-разработке

Комментарии (7)


  1. askharitonov
    12.04.2022 12:39
    +4

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


    1. domix32
      12.04.2022 20:08
      +3

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


      1. nitro80
        15.04.2022 04:38

        даже каких-то бонусов предложил в итоге

        Чифиру?


    1. dakuan
      13.04.2022 02:06
      +1

      это было наверное где-то в середине 2000-х

      А тут точно ошибки нет? Потому что в середине 2000х использование HTTP не было чем-то удивительным, подавляющее большинство сайтов вообще не использовало HTTPS.


      1. askharitonov
        13.04.2022 13:47

        Может и позже. Но, мне кажется, для веб-интерфейса к почте HTTPS стали использовать в целом раньше, чем он появился на большинстве сайтов. Сам адрес у меня там появился не позже 1999 года (сейчас посмотрел старые письма), то есть, вполне возможно, что дело было именно в середине 2000-х.


  1. K37
    12.04.2022 23:01
    +2

    Передача ID плейн текстом - грандиозно.


  1. Diamos
    14.04.2022 18:10
    +1

    Тут самое печальное в том, что даже Little Snitch полностью не решает проблему, т.к. бук стучится в apple еще на этапе загрузки. И вообще, последние маки, на которые можно установить систему и обновления без интернета — 2015 год. Всё что новее — привязано к ногам Apple через сопроцессор (с 2017 года известный как T2).