Мат “Корень зла” или Carrier-IQ

20 Янв 2010
862
0
16
Drahelas
#1
CIQ или Carrier iQ это, по сути, часть программного обеспечения, встроенного в большинство мобильных устройств, не только Android, но Nokia, Blackberry и, вероятно, во многих других. В основном, эта программа полностью скрыта от глаз и, что хуже всего, довольно сложно убивается. Программа имеет рут права, а это значит, что CIQ делает то что хочет и не спрашивает у вас по этому вопросу никакого разрешения.

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

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

Наш дорогой Дэв нашел изначальную версию, вместе с тоннами информации, включая руководство по использованию, тренинговые видео и кучу материала, который поднимет ваши волосы дыбом. То что вы видите, это не просто косметические изменения. В устройстве от Samsung меню и опросы сильно урезаны, а у HTC почти полностью отсутствуют. Например, опция отказа от всего этого полностью убрана в HTC, а в Samsung запрятана так, что найти ее почти не возможно. Помимо этого вы можете увидеть некоторые "Ивенты" и "Тригеры", которые позволяют CIQ собирать информацию.

Вот часть уже известных HTC тригеров:

Key in HTCDialer Pressed or Keyboard Keys pressed -
Intent – com.htc.android.iqagent.action.ui01

App Opened –
Intent – com.htc.android.iqagent.action.ui15

Sms Received –
Intent – com.htc.android.iqagent.action.smsnotify

Screen Off/On –
Intent – com.htc.android.iqagent.action.ui02

Call Received –
Intent – com.htc.android.iqagent.action.ui15

Media Statistics –
Intent – com.htc.android.iqagent.action.mp03

Location Statistics –
Intent – com.htc.android.iqagent.action.lc30


Известные Тригеры в Samsung Предоставлено XDA member k0nane:

UI01: screen tapped in any location, or InputMethod (any soft keyboard) key pressed.
NT10: HTTP request read.
NT0F: HTTP request send.
UI11: unknown, located in the View class, which has its own IQClientThreadRunnable subclass.
AL34: loading started in a browser frame – URL.
AL35: loading started in a browser frame – data receive begin and end, page render begin and end.
AL36: data length.

Интересно? Продолжим дальше? В оригинальной версии программы она должна собирать данные о статусе сети, идентификации устройства и много чего ещё. Что же происходит со всеми этими "замерами"? Все эти "замеры" затем направляются на "портал" где Администратор может видеть, фильтровать и располагоать всё, что прислало приложение так, как ему\ей удобно. В документах было описано, что CIQ может считать этими "замерами" что угодно и записывать их, если надо. Для примера - админ записывает дату по количеству прерванных звонков по Москве в 5 вечера. Так как все эти данные могуть быть доступы через разные триггеры, тот же админ может получить не только информацию по оборванному звонку, но и получить данные о том, где именно вы находились в тот момент времени, как часто и какими приложениями вы пользовались и даже что вы набирали на вашем смартфоне (увы, но это не преувеличение - CIQ может работать и как кейлоггер).

Кстати куски кода этой программы есть даже в кернелах именных интерфейсов Sense и Touchwiz, так что даже если вы сможете убрать CIQ из Рома, то не обязательно это получится сделать полностью. Вот вырезка из кода:

#define SDIO_TTY_DEV “sdio_tty_ciq_0”
#define SDIO_CIQ “sdio_ciq”
#define SDIO_TTY_DEV_TEST “sdio_tty_ciq_test_0″
#define TTY_CIQ_MODULE_NAME “sdio_tty_ciq”
static int channel_name_to_id(char *name)
{
pr_info(TEST_MODULE_NAME “%s: channel name %s\n”, func, name);

if (!strncmp(name, “SDIO_RPC_TEST”,
strnlen(“SDIO_RPC_TEST”, CHANNEL_NAME_SIZE)))
return SDIO_RPC;
else if (!strncmp(name, “SDIO_QMI_TEST”,
strnlen(“SDIO_QMI_TEST”, TEST_CH_NAME_SIZE)))
return SDIO_QMI;
else if (!strncmp(name, “SDIO_RMNT_TEST“,
strnlen(“SDIO_RMNT_TEST”, TEST_CH_NAME_SIZE)))
return SDIO_RMNT;
else if (!strncmp(name, “SDIO_DIAG_TEST“,
strnlen(“SDIO_DIAG”, TEST_CH_NAME_SIZE)))
return SDIO_DIAG;
else if (!strncmp(name, “SDIO_DUN_TEST”,
strnlen(“SDIO_DUN_TEST”, TEST_CH_NAME_SIZE)))
return SDIO_DUN;
else if (!strncmp(name, “SDIO_SMEM_TEST“,
strnlen(“SDIO_SMEM_TEST”, TEST_CH_NAME_SIZE)))
return SDIO_SMEM;
else if (!strncmp(name, “SDIO_CIQ_TEST”,
strnlen(“SDIO_CIQ_TEST”, TEST_CH_NAME_SIZE)))
return SDIO_CIQ;
else
return SDIO_MAX_CHANNELS;
return SDIO_MAX_CHANNELS;
}

Мы уже привели достаточное количество фактов, так что, давайте рассмотрим основную проблему с Carier-IQ на наших устройствах - это явное нарушение наших прав как потребителей и нарушение на неприкосновенность частной информации. К счастью, пока есть возможность увидеть, есть ли данный зверь на вашем устройстве (если вы с Андройдом) и даже подрезать возможности данной программы. TrevE позаботился о нас, написав Android Security Test, который можно взять в его оригинальном блоге.

После адресованного TrevE компанией Carier-IQ письма с требованием убрать все статьи об этой программе и изъять из доступа Android Security Test, Carier-IQ пытается "заткнуть" ему рот судом.
В России это может выглядеть не совсем так, но большинство мировых операторов пользуется подобным софтом.

http://4pda.ru/2011/11/24/50519/#more-50519
 
Последнее редактирование:
12 Окт 2009
658
0
16
42
в квартире
#3
Очередная раскрутка "Всемирного зла", "Вселенской слежки" ну и придуманные кем то непонятным права человека)))