id: Гость   вход   регистрация
текущее время 16:36 28/03/2024
Владелец: unknown (создано 30/07/2013 13:25), редакция от 30/07/2013 14:55 (автор: unknown) Печать
Категории: софт, анонимность, приватность, tor, уязвимости, атаки, свободный софт, firefox
https://www.pgpru.com/Новости/2013/FPdetectiveВыявляетПопыткиОпределенияПрофиляСистемыИз-подБраузера
создать
просмотр
редакции
ссылки

30.07 // FPdetective выявляет попытки определения профиля системы из-под браузера


Исследователи Gьnes Acar, Claudia Diaz, Seda Gurses, Bart Preneel (Католический университет Лёвен, группа по изучению вопросов компьютерной безопасности и промышленной криптографии), Nick Nikiforakis, Frank Piessens (Бельгийский Междисциплинарный институт широкополосных технологий, проект Distrinet), Marc Juarez (Институт исследований искусственного интеллекта) обратили внимание на многочисленные утечки персонифицирующих сведений, которые создаёт веб-браузер пользователя при работе с онлайн-сервисами. Раньше такие исследования проводились на кем-то ранее написанных скриптах сбора таких данных или исследователи сами пытались создавать подобные инструменты.


В данном случае был создан проект FPDetective (от слова FingerPrinting), который выявляет неизвестные попытки сканирования браузера пользователя и позволяет выяснить, какие методики применяют сайты, вторгающиеся в приватность такого рода сведений.


Впервые внимание на проблему отпечатков браузера было в полной мере обращено Eckersly, который показал, что такие характеристики, как разрешение экрана и список установленных шрифтов позволяют проводить идентификацию уникальности устройств пользователей и различать их между собой. В отличие от cookie-файлов управлять такой идентификацией сложно. При помощи инструмента FPdetective исследователи показали, что масштаб распространённости этого явления гораздо больше, чем считалось ранее. Они выявили 17 новых идентифицирующих скриптов (как коммерческих, так и самодельных), активных даже на 500 топовых сайтах. Также ими были обнаружены ранее неизвестные способы сбора отпечатков браузера и уклонения от его идентификации: например удаления скрипта после сбора отпечатка и сбор через виджеты третьих сторон.


Исследователями были проверены на устойчивость к этим атакам Tor Browser и Firegloves — оба этих средства имеют встроенную защиту от профилирования по отпечаткам, однако в обеих средствах были найдены уязвимости, позволяющие профилировать пользователя, что указывает на сложность защиты от профилирования. Также было проверено расширение Do-Not-Track, которые сообщает сайтам, что пользователь не желает, чтобы за ним следили. Как было выявлено, включение этого расширения никак не влияет на профилирование и просто игнорируется профилирующими скриптами.


Отдельного внимания заслуживает уязвимость Tor Browser. Он предназначен для работы с анонимной сетью Tor и в настоящий момент им пользуются не более 800 000 человек в день, поэтому их профилирование является критической угрозой для анонимности. В Tor Browser встроена защита в том числе и от профилирования по установленным в системе шрифтам, но исследователям удалось выяснить, что эта защита обходится и список всех шрифтов может быть выявлен. Патч, исправляющий данную уязвимость был отправлен в Torproject.


Исследователи отмечают, что незаметный без специальных средств, широкораспространяющийся и вторгающийся характер слежки за пользователями посредством сбора отпечатков браузеров требует более активного внимания со стороны специалистов в области сетевой приватности. Возможно, хорошим началом в этом послужит инструмент FPDetective.


Публикация "FPDetective: Dusting the web for fingerprinters" будет представлена на конференции по компьютерной и коммуникационной безопасности CCS-2013 в Берлине.


Источник: fileКатолический университет Лёвен, группа по изучению вопросов компьютерной безопасности и промышленной криптографии


 
На страницу: 1, 2 След.
Комментарии [скрыть комментарии/форму]
— Гость (30/07/2013 14:39)   <#>
- Интересно в NoScript помогает противостоять этим атакам?
– Где этот инструмент FPDetective?
— unknown (30/07/2013 15:10, исправлен 30/07/2013 15:13)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664

Сам по себе, скорее всего нет. В работе он даже не упомянут, в отличие от Firegloves. Некоторые вещи выявляются и без JS. А индивидуальные настройки NoScript у разных пользователей облегчают профилирование.



Может не опубликовали ещё:


We hope that our framework, which will be freely available to other researchers, will contribute by providing a means to shed light on fingerprinting practices and techniques.

В статье только описано из чего и как он сделан.

— Гость (30/07/2013 20:18)   <#>
Эх, unknown, к сожалению, я всё-таки оказался скорее прав, чем нет. Судя по всему, идеальное распознавание профиля делается.

Firegloves — интересный проект, хоть и, как пишут, уже заброшенный. Рекомендую включить JS и попроходить их тест. Когда первый раз проходишь, пишет, что вы новый юзер. Когда проходишь второй и последующие разы, что бы ни менял, он уверенно пишет
Result of the analysis
Result: Known user with the same browser, but different settings.

Идеальное профилирование уже есть и работает? Не разбирался с их методикой.


Это неудивительно ни чуть. Даже судя по хабру и вебмастерам, которые там обитают, в среде веб-разработчиков очень популярно городить костыли, которые бы позволили точно распознавать пользователя в его последующие визиты.

Статью стоит более внимательно прочитать, но это потом. Пока что скажу вам спасибо за перевод и в благодарность дарю вам zero-day в TBB, обнаруженный при внешнем анализе трафика TBB на роутерах:

  1. Дефолтный TBB, распаковываем, запускаем. Тесты проводились на amd64, но, полагаю, это не важно.
  2. Для тестов я прописал себе hostname=trahni-eja-v-repe и DNS=OpenDNS (208.67.222.222), хотя какой в данном случае стоит DNS — совершенно не важно.
  3. Запускаем снифер:
    # tcpdump -vvv -i eth0 -e -n udp port 53
  4. Запускаем netstat в петле:
    # while true; do netstat -apn |grep 208.67 ; sleep .001; done
  5. Запускаем TBB.
  6. Немного ждём.
  7. Замечаем, что ещё до открытия firefox из TBB в логах появляется замечательное:
    # tcpdump -vvv -i eth0 -e -n udp port 53
    tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
    XX.XX:XX.521327 MY_MAC > ROUTER_MAC, ethertype IPv4 (0x0800), length 77: 
        (tos 0x0, ttl 64, id 48833, offset 0, flags [DF], proto UDP (17), length 63)
        MY_IP.34752 > 208.67.222.222.53: [bad udp cksum 0xc36d -> 0x06df!] 
        13712+ A? trahni-eja-v-repe. (35)
    XX.XX:XX.563337 ROUTER_MAC > MY_MAC, ethertype IPv4 (0x0800), length 93: 
        (tos 0x0, ttl 128, id 31142, offset 0, flags [none], proto UDP (17), length 79)
        208.67.222.222.53 > MY_IP.34752: [udp sum ok] 
        13712 q: A? trahni-eja-v-repe. 1/0/0 trahni-eja-v-repe. [0s] A 67.215.65.132 (51)
    # while true; do netstat -apn |grep 208.67 ; sleep .001; done
    udp        0      0 MY_IP:34752        208.67.222.222:53       ESTABLISHED 21651/firefox
    udp        0      0 MY_IP:34752        208.67.222.222:53       ESTABLISHED 21651/firefox
    udp        0      0 MY_IP:34752        208.67.222.222:53       ESTABLISHED 21651/firefox
  8. Задумываемся о жизни.

Действительно, зачем моему DNS-серверу знать, какой у меня hostname? Я что, сам своего IP-адреса не знаю? Не DHCP же. 67.215.65.132 — это то, что возвращает OpenDNS, когда должно быть no IP found.

P.S. Проверяем, багрепортим, если что.

Что странно, Linux иногда не даёт сменить hostname: пишешь произвольное слово в hostname, а он говорит, что оно is not valid hostname или что-то в том духе. Правда, после перезагрузки попробовал, и всё сработало. Что это было — так и не понял.
— Гость (30/07/2013 22:03)   <#>

Вы изменили имя хоста не определив его сетевой адрес (через /etc/hosts). И файерфокс очень любопытный, хочет знать имя, а затем адрес этого имени.
— Гость (30/07/2013 23:03)   <#>

Зачем анонимному браузеру знать мой локальный IP и имя? Его предел знаний — то, что я — socks-прокси на 127.0.0.1:PORT, больше ничего ему про систему знать не требуется. Сейчас вообще убрал hostname из настроек, теперь Linux мне говорит, что я некто _none_ или (none) — так лучше?

Посмотрел /etc/hosts, там прописаны 2 строчки:
127.0.0.1 localhost
127.0.1.1 HOSTNAME
Вопрос: почему HOSTNAME висит не на 127.0.0.1? Маска на lo, конечно, 0xff000000, но, тем не менее.


Видимо, да. Кстати, изменил я его ранее, просто при описании теста поменял его ещё раз, что помогло вам догадаться. В любом случае, я нахожу такое поведение TBB странным и противоречащим его дизайну, сути и духу.
— Гость (30/07/2013 23:46)   <#>
Пишите патч, багрепорт, что-нибудь. Иначе ничего не изменить.

Мне вот и с обычными браузерами непонятно, а зачем имя хоста, системы? https://mxr.mozilla.org/mozill...../nsSystemInfo.cpp#57
— Гость (31/07/2013 00:53)   <#>

Кастую unknown'а в багтрекер.


Про обычные браузеры нет смысла говорить, оно там за тем же, зачем и всякие geoip в about:config и др. подобные настройки. Цель — как можно больше поведать информации удалённой стороне о себе, тем самым сделав как можно более тонкую заточку предоставляемого сервиса под себя. Ну, об обратной стороне такого подхода мы знаем. Пока претензии только конкретно к TBB. К тому же, если сегдня этот функционал находится в спящем состоянии, то завтра из-за bug2bug-несовместимости TBB попытается что-нибудь зарезолвить через Tor у своего же местного ISP, и вот тогда будет полный epic fail.
— unknown (31/07/2013 11:02, исправлен 31/07/2013 11:02)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664

Попробую выкроить время и поэкспериментировать. Вообще у меня все UDP запросы для заторенных пользователей завёрнуты через файрволл в сам же тор, так что по крайней мере через местного провайдера не отрезолвится, как уже было.



Есть ещё команда hostname и набор смежных команд, которые в её мане описаны. Или примеры, как корректно менять hostname.

— Гость (31/07/2013 14:20)   <#>

Не нашёл этого в коде. Получение адреса хоста используется только при автоматическом детектировании прокси с использованием скриптов.
В коде нет, а в tcpdump'е есть.
— Гость (01/08/2013 02:02)   <#>

Хотите сказать, что tcpdump и netstat оговаривают белый пушистый лис firefox? :) Ну тогда запустите pftop -s1 на промежуточном роутере и убедитесь.
— unknown (01/08/2013 09:38, исправлен 01/08/2013 12:01)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664

Кстати, возможно, если в снифере как-то заданы опции DNS-resolution. Когда-то видел такое в Wireshark — он почему-то упорно хотел отрезолвить локалхост через внешние DNS сервера.


Preventing Tor DNS Leaks:


Может корректнее использовать опцию -p, чтобы не переводить сетевуху в "неразборчивый" режим?

— Гость (01/08/2013 23:43)   <#>

Опция -n запрещает DNS-резволинг при выводе пакетов, а включение -p максимум приведёт к тому, что вы какие-то подозрительные пакеты в сети попросту не увидите, к DNS это не имеет ни малейшего отношения.
— Гость (01/08/2013 23:50)   <#>
P.S. Строго говоря, команда tcpdump -vvv -i eth0 -e -n udp port 53 покажет все пакеты, которые физически ходят в сети с данными параметрами, но обычно сети делают на свичах, а не хабах, поэтому чужих пакетов вы всё равно не увидите, так что разницы никакой. В любом случае, tcpdump выводит, какие параметры у конкретного пакета, что даёт возможность однозначно судить о том, откуда он взялся. Обратите внимание на стрелку «->» в параметрах пакета. Она означает, что пакет был выпущен самой системой (ядром), т.е. это пакет out, исходящий.
— unknown (02/08/2013 11:05)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664

Перегруженный или глючные свич может пропускать какие-то жалкие проценты пакетов с чужого порта. Сам когда-то такое видел на снифере, возможно сейчас такого глючного железа уже не делают.
— Гость (02/08/2013 12:38)   <#>
И всё так скрипты зло, а web2.0 закладка, а профилирование это цветочки.
JavaScript-код, который потенциально мог использоваться для совершения DDoS-атаки с использованием актуальных версий браузеров, не содержащих известных уязвимостей.
На страницу: 1, 2 След.
Ваша оценка документа [показать результаты]
-3-2-1 0+1+2+3