История с Carrier IQ

Про CarrierIQ слышали, наверно, многие, кто следит за новостями. Это некое ПО, которое встроено в операционную систему — в том числе в iOS, Android и BlackBerry OS — и занималось, если верить особо истеричным журналистам, сбором не только информации о перемещении пользователей, но и сбором текстов сообщений и всех остальных клавиатурных событий на телефонах. Не могу сказать про Android, но в iOS 5 достаточно отключить отправку данных о “Диагностике и Использовании” в настройках (она и так отключена по умолчанию), и никакие данные никому передаваться не будут. Но журналисты успели окрестить Carrier IQ и руткитом, и трояном, и другими ругательными словами.
Еще немного общей информации — о том, откуда это ПО взялось в телефоне. Это не злоумышленники, взломав систему на вашем телефоне, установили этот “кейлоггер”, как назвал его Эрик Шмидт. Это делают производители телефонов по просьбе мобильных операторов, которые используют информацию, собираемую Carrier IQ для того, чтобы мониторить различное поведение пользователей в мобильных сетях, а также обеспечивать улучшения для работы этих самых сетей. Конечно, существует вероятность, что данные могли бы использоваться и с какой-то более “злой” целью, но вы будете меньше этого опасаться, если будете лучше понимать, что именно и как собирала Carrier IQ и что отправлялось на сервер.

Если говорить о высокоуровневом описании работы CIQ, то выглядит это следующим образом — ПО получает информацию, известную как “метрика”. После этого происходит анализ этой метрики, основываясь на текущем “профиле”, установленном на устройстве. Профиль создается в Carrier IQ по запросу мобильного оператора и определяет, релевантен ли этот конкретный аспект работы телефонной службы, например, уровень сигнала или уровень использования батареи. Само ПО от Carrier IQ собирает эти метрики, и загружает их для анализа оператором. Весь код, отвечающий за определение того, какие метрики подаются в CIQ для проработки, интегрируются в систему телефона производителем телефонов.
[ad#intext-inside]
Предположим, что оператор хочет узнать о сорвавшемся звонке. Производитель телефона внедряет код, который подает приложение Carrier IQ метрику при разрыве телефонного звонка. Когда приложение CIQ получает эту метрику, оно изучает, стоит ли сохранять эти данные и отправляет ее оператору, основываясь на профиле, установленном на устройстве.
Вот табличка метрик, которые собирает Carrier IQ — в частности, на Samsung Epic 4G Touch. Этот список не включает метрики, которые могут подаваться ПО модема, что может содержать дополнительные данные по радиочипу.

Metric ID Метрика Отправляемые данные Ситуация
AL34, AL35, AL36 Событие при отрисовке страницы браузера Internal page ID, БЕЗ данных, относящихся к содержимому страницы или UR Загрузка страницы
LC18, LC30 Событие позиционирования GPS и не-GPS данные о местоположении Изменение местоположения, относящиеся к телефонной связи события
NT0F, NT10 HTTP событие Тип запроса, длина контента, локальный порт, код статуса, URL, без содержимого страницы HTTP запрос отправлен или получен
NT07 Сетевое событие Внутренний идентификатор Изменение сетевого состояния
DO3M, GS18, GS19, GS46, GS47, GS6E, RF02, RF04, RF05, RF1A, RF55 События, относящиеся к связи Различные данные по телефонной связи и радиопередаче Разрыв звонка, проблемы сервиса, событие радиопередачи, и тд.
HW03, HW10, HW11 Аппаратное событие Уровень батареи, напряжение, температура, и тд. Изменение аппаратного состояния
UI01 Нажатие кнопки Код нажатия Нажатая кнопка только при наборе номера
UI08, UI09 Различные события в интерфейсе Тип сети, состояние батареи Изменение состояния интерфейса
GS01, GS02, GS03, LO03 Звонок Номер, состояние Начало звонка, получение звонка или неудачный звонок
UI13, UI15, UI19 Событие приложения Имя приложения Новое приложение, выключение приложения, переход в фоновый режим и выход из него
QU04, QU05 Событие опросника Данные вопроса Опрос завершен
MG01, MG02 SMS событие Длина сообщения, номер, статус, текст сообщения НЕ передается Получение/отправка сообщения

Что все это означает:
1. Carrier IQ не записывает содержимое SMS, содержимое просматриваемых страниц или содержимое писем, даже если бы операторы или производители телефонов захотели это сделать. Метрики с этой информацией отсутствуют.
2. Carrier IQ (на этом конкретном телефоне) могут записывать, какие кнопки набора номера нажимаются, чтобы определить, куда совершается звонок. Я не юрист, но я думаю, что мобильные операторы и так имеют доступ к этой информации.
3. Carrier IQ (на этом конкретном телефоне) не могут записывать другие клавиатурные события, кроме тех, которые происходят при наборе номера.
4. Carrier IQ может сообщать местоположение по GPS в некоторых ситуациях.
5. Carrier IQ может сохранять адреса посещаемых страниц, но не содержимое этих страниц или другие HTTP-данные.
[ad#intext-inside]
ЗАЧЕМ СОБИРАТЬ ЭТИ ДАННЫЕ?
Набор данных, которые потенциально могут собираться, подтверждает слова Carrier IQ о том, что эти данные используются для диагностирования и улучшения сети, приложений и проблем с аппаратной частью телефона. Каждая метрика в таблице потенциально может улучшить впечатления пользователя в мобильной сети. Если оператор хочет уулучшить покрытие, им нужно знать, где и когда обрываются звонки. Если производитель телефона хочет улучшить время работы телефона от батареи, им крайне важно знание о том, какие приложения больше всего потребляют энергию.
Тем не менее, даже если сейчас информация, которая собирается, нужна для улучшения жизни пользователей, ситуацию со сбором этой информации нужно улучшить. В частности:
1. Потребители должны иметь возможность отказаться от сбора такой информации.
2. Операторы должны более четко дать понять, какие данные собираются.
3. Кто-то сторонний должен следить за тем, какие данные собираются, чтобы предотвратить незаконное использование.
4. Те verbose debugging логи, продемонстрированные в видео Тревора Экхарта, являются риском для приватности, и должны быть исправлены командой HTC.
5. Следует изучить легальность сбора полных URL-адресов с параметрами запросов и других подобных данных.
ОТСЮДА
Отдельно я бы хотел еще добавить, что в iOS CarrierIQ имеет доступ к следующим данным:
– номер телефона
– оператор
– страна
– активный звонок (только факт звонка, но не номер, который был набран или с которого звонили)
– местоположение (только если включены) Location Services
Приложение Carrier IQ не обладает доступом к уровню графического интерфейса, где, собственно, происходит набор текста.
Забавно, что в Windows Phone 7 Carrier IQ вообще отсутствует. И Apple пообещала в последующих обновлениях системы полностью удалить код Carrier IQ из системы. Если же у вас Android, то путем нехитрого гуглежа вы найдете способы удаления Carrier IQ со своего телефона хоть сегодня.