Страницы

четверг, 12 августа 2010 г.

Вопреки заявлениям Google, открытый Chromium тоже следит за вами

Google обладает большим количеством великолепных сервисов, качество которых воистину впечатляюще. Однако его мания слежки за всем и вся зачастую переходит границы. Шуточно, но очень доходчиво об этом рассказывает ролик Google Toilet, которые, наверняка, многие здесь уже видели. Да и все, наверное, помнят историю со сбором открытого Wi-Fi трафика. В этой небольшой статье речь пойдет о браузере Chromium.

Итак, многим из нас нравится браузер Chrome. Но далеко не всем его политика конфиденциальности, которая позволяет использовать практически любые сведения о просматриваемых вами сайтов «в целях улучшения качества сервисов Google». Но у нас же есть Chromium! Он Open Source, а значит шпионского кода там быть не должно. Эта догадка подтверждается английской википедией, говорящей что разница между Chrome и Chromium в отсутствии гугль-брендирования, автообновления и, ура, отсутствии отправки «шпионских» данных в Google!

Давайте посмотрим, так ли это на самом деле!

Итак, запускаем сниффер, запускаем браузер, и…. Вы уже догадались, не правда ли? Перво-наперво браузер лезет на Google получить идентификационную куку (заметьте, я не произвожу никаких действий в интерфейсе):


HEAD / HTTP/1.1
Host: www.google.com
Connection: keep-alive
Content-Length: 0
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US)
AppleWebKit/534.6 (KHTML, like Gecko) Chrome/6.0.489.0 Safari/534.6
Accept-Encoding: gzip,deflate,sdch
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.3


HTTP/1.1 302 Found
Location: www.google.ru/
Cache-Control: private
Content-Type: text/html; charset=UTF-8
Set-Cookie:
PREF=ID=632128af861ebb83:TM=1281420591:LM=1281420591:S=ELyyEhjZ2JNSeGMV;
expires=Thu, 09-Aug-2012 06:09:51 GMT; path=/; domain=.google.com
Set-Cookie: NID=37=r81qA-
WGJc3SVSCovGM80YSzQb0LXRe39SHMzqClX_9reL_jYI7q3Y3UKfXAdVtkv8m5fZl1W6XR-
of4k10wGAw4LQYK5LTatCv3BOGwcmOc5V_1yhWjo9Hj6qbX2acc; expires=Wed, 09-
Feb-2011 06:09:51 GMT; path=/; domain=.google.com; HttpOnly

Date: Tue, 10 Aug 2010 06:09:51 GMT
Server: gws
Content-Length: 218
X-XSS-Protection: 1; mode=block


И, затем начинает пинговать гугловый сервис финансовой аналитики:

GET /tools/pso/ping?
as=chrome&brand=&pid=&hl=en&rep=2&rlz=I7:1I7GGLL_ru,W1:1W1GGLL_ru,T4:1T4GGL­L_ru,C1:1C1_____enRU392RU392,C2:1C2_____enRU392,R7:1R7GGLL_ru&dcc=T
HTTP/1.1
Accept: text/*
User-Agent: Mozilla/4.0 (compatible; Win32)
Host: clients1.google.com


HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Date: Tue, 10 Aug 2010 06:10:07 GMT
Expires: Tue, 10 Aug 2010 06:10:07 GMT
Cache-Control: private, max-age=0
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Server: GSE
Transfer-Encoding: chunked

rlzT4: 1T4GGLL_ru
rlzR7: 1R7GGLL_ru
rlzW1: 1W1GGLL_ru
rlzC1: 1C1_____enRU392RU392
rlzC2: 1C2_____enRU392
rlzI7: 1I7GGLL_ru
dcc: T
set_dcc:
T4:1T4GGLL_ru,R7:1R7GGLL_ru,W1:1W1GGLL_ru,C1:1C1_____enRU392RU392,C2:1C2_____enRU392,I7:1I7GGLL_ru
events:
stateful-events:
crc32: 7c33310f


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

//
// Ping information.
//

// rep=2: includes the new stateful events.
const char kProtocolCgiArgument[] = "rep=2";

const char kEventsCgiVariable[] = "events";
const char kStatefulEventsCgiVariable[] = "stateful-events";
const char kEventsCgiSeparator = ',';

const char kRlzCgiVariable[] = "rlz";
const char kRlzCgiSeparator[] = ",";
const char kRlzCgiIndicator[] = ":";

const char kProductSignatureCgiVariable[] = "as";
const char kProductBrandCgiVariable[] = "brand";
const char kProductLanguageCgiVariable[] = "hl";
const char kProductIdCgiVariable[] = "pid";

const char kDccCgiVariable[] = "dcc";
const char kRlsCgiVariable[] = "rls";
const char kMachineIdCgiVariable[] = "id";
const char kSetDccResponseVariable[] = "set_dcc";

//
// Financial server information.
//

const char kFinancialPingPath[] = "/tools/pso/ping";
const char kFinancialServer[] = "clients1.google.com";
const char kFinancialPingType[] = "GET";

const int kFinancialPort = 80;

// Ping times in 100-nanosecond intervals.
const int64 kEventsPingInterval = 24LL * 3600LL * 10000000LL; // 1 day
const int64 kNoEventsPingInterval = kEventsPingInterval * 7LL; // 1 week

const char kFinancialPingUserAgent[] = "Mozilla/4.0 (compatible; Win32)";
const char* kFinancialPingResponseObjects[] = { "text/*", NULL };



Причем, напомню, что сам гугль утверждает, что данный код используется ТОЛЬКО для маркировки брендированных скачек и его нету даже в Chrome, скачанном с оффсайта, не говоря уж о «в склянь свободном», белом и пушистом Chromium.

Обсуждение данной проблемы я поднял в официальной гуглогруппе Chromium-discuss, где получено подтверждение аномальности данного поведения. Интересно, гугл снова «по ошибке» решил подсобрать по-больше данных о пользователях?

Источник с Хабра с комментариями



А это реакция OpenNET на выявленный беспредел


Ошибка привела к отправке RLZ-параметров Google из браузера Chromium

Вчера один из энтузиастов обнаружил странное поведение свежего снапшота web-браузера Chromium, которое проявлялось в отправке на сервер Google RLZ-параметров, несмотря на все уверения Google, что такое поведение свойственно только web-браузеру Chrome. При слежении сниффером за свежеустановленным Chromium, который был просто запущен первый раз, без открытия каких-либо сайтов, была выявлена скрытая отправка 3-запросов к серверам Google.

Разработчики Chromium рассмотрев жалобу пришли к выводу, что задействование RLZ-библиотеки в Chromium, связано с внесенным в конце июля регрессивным изменением, в результате которого код был помещен не только в ветку Google Chrome, но и в сборку Chromium для платформы Windows. Сборки Chromium для Linux проблеме не подвержены. Статус исправление ошибки можно наблюдать на данной странице.

http://www.opennet.ru/opennews/art.shtml?num=27588


P.S. Обрадовало то, что в версии для Linux эти изменения не коснулись, видимо сообщество GNU/Linux так легко не проведешь.