December 5th, 2010

manandmoon

Отпечатки пальцев

Wall Street Journal публикует статью об идентификации браузеров и телефонов. Тема не новая, но почему-то мало известная, даже в хакерской среде. Между тем, собрав достаточно информации о пользовательском компьютере и его браузере, можно практически безошибочно выделить его из толпы посетителей, невзирая на стертые куки, прокси и прочие стандартные хитрости. В основном эти технологии используются для ловли кардеров и жуликов, но последнее время подтянулись и рекламщики (и попортили малину ловцам кардеров, да)

Несолько известных проектов на эту тему:

41st Parameter(http://www.the41.com/)
Наверное, самй мейнстримный поставщик услуг по идентификации. Их коды я видел на overstock.com, 2checkout.com, на сайтах авиакомпаний итп. Используют только javascript, поэтому их код бежит на любых компьютерах. Собирают: разрешение экрана (из window.screen), установку системных часов (часовой пояс, переход на летнее время), данные о браузере (из window.navigator), языковые установки (document.defaultCharset итп), названия и версии установленных плагинов. Поскольку в IE невозможно сказать "дай мне список всех плагинов", то там они берут список самых популярных плагинов (flash, acrobat итп) и запрашивают версии по отдельности.
Дальше у них, видимо, есть какой-то детектор совпадений, по типу нечеткой логики или locality sensitive hashing, который говорит, насколько данная пользователя похожа на уже известные экземпляры. Нечеткость требуется потому, что пользователь в принципе может поменять любой из собранных параметров: скачать новую версию браузера, переключить разрешение экрана итп. Вообще довольно интересная задача: узнавание объектов в условиях шума. Не знаю, к сожалению, что как у них это реализовано.

Cкрипт:
https://www.2checkout.com/static/checkout/javascript/user-prefs.js
Распакованая версия:
http://pastebin.com/JW8bY2J3

Iovation (http://www.iovation.com/)
Специализируется на игровых сайтах и казино. Стоит, например на Eve Online. Берет данные не только из джаваскрипта, но и из флэша и собственной спайвары под названием ReputationShield. Ценой раздражения пользователей собирает о компьютере вообще все, что можно: от джаваскриптовских переменных, как у 41го параметра, до MAC-адреса, наличия дебаггера, виртуализации итп.
Поскольку у них есть доступ ко всей подноготной, то они не слишком заморачиваются нечеткой логикой. Более того любое несовпадение с базой данных или попытка ухода от слежки (стирание куков, например) ими считается за признак злоуго умысла. Честному человеку, мол, нечего скрывать. Статистически, наверное, так оно и есть, но все равно противно.
Обсуждение на форуме по покерному ИИ

Скрипты:
https://mpsnare.iesnare.com/snare.js
https://mpsnare.iesnare.com/script/logo.js
https://mpsnare.iesnare.com/stmgw.swf
https://ci-mpsnare.iovation.com/StmOCX.cab
Распакованая версия:
http://pastebin.com/EQwAFG3d

Panopticlick (https://panopticlick.eff.org/)
Демонстнационная версия, от Electornic Frontier Foundation. Использует Javascript, Java и Flash. Собирает список плагинов, заголовки HTTP запроса, посланного на сервер, разрешение экрана, наличие куков и список проинсталлированых шрифтов (через флэш или джаву). Последнее, кстати, оказывается очень мощным сигналом. Поскольку, это всего лишь демка, то никаких сложных сравнений она не производит - все данные сваливаются в кучу, берется хэш и сравнивается с базой. Поэтому любое изменение конфигурации ее полностью запутывает. Меня, например, только что не узнала, не смотря на то, что на сайте был неоднократно.
Скрипты лежат открыто на сайте.

BrowserSpy (http://browserspy.dk/)
Другая демострация. В отличие от Panopticlick, никакой базы данных там нет, зато можно поиграть с каждым сигналом по отдельности. Кроме обычных сигналов есть и довольно экзотические - например, максимально количество параллельных соединений или использование OpenDNS. Все исходники тоже лежат на сайте
manandmoon

Вирусологическое

Если кому интересно поиграть:

Бот ZeuS версия 1.2.7.19

Панель управления к нему (cPanel 1.2.10.1)

Антивирусы определяют как Banker.Bancos или Zbot. Не знаю, забэкдоренная версия или нет. В любом случае работать с подобным софтом нужно на отдельной изолированной машине (виртуальная не годится, зевс их умеет определять)