Получение списка расширений Chrome простым скриптом

Discussion in 'Мировые новости. Обсуждения.' started by d3l3t3, 19 Mar 2012.

  1. d3l3t3

    d3l3t3 Banned

    Joined:
    3 Dec 2010
    Messages:
    1,771
    Likes Received:
    98
    Reputations:
    10
    Польский специалист по безопасности Кржиштоф Котович (Krzysztof Kotowicz) показал несколько строчек Javascript, с помощью которых можно получить список расширений, установленных у пользователя в браузере Chrome (или любом другом браузере семейства Chromium).

    Рабочее демо (проверка наличия/отсутствия у пользователя десятка самых популярных расширений)

    Исходный код

    Этот скрипт нельзя в назвать вредоносной программой в полном смысле этого смысла, но всё-таки он представляет собой потенциальную опасность, потому что такими методами злоумышленник может осуществлять «фингерпринтинг» юзеров, то есть идентифицировать отдельных пользователей с целью слежения. Обычно для этих целей используют файлы cookies, но если они отключены в браузере, то можно использовать и вот такие более экзотические способы.

    Фингерпринтинг означает получение уникального «отпечатка» компьютера пользователя, то есть совокупности информации из user-agent браузера, сведений о версии операционной системы, разрешении экрана и другой информации. Каждый по отдельности такой факт совершенно не оригинален, но все вместе они представляют собой уникальное сочетание фактов, которое можно сравнить с «отпечатком пальца» (fingerprint).

    Созданный польским специалистов скрипт — это демонстрация концепции, которая должна показать теоретическую возможность слежки за пользователями без использования cookies. Сам скрипт исключительно простой.

    Code:
    var detect = function(base, if_installed, if_not_installed) {
    
        var s = document.createElement('script');
    
        s.onerror = if_not_installed;
    
        s.onload = if_installed;
    
        document.body.appendChild(s);
    
        s.src = base + '/manifest.json';
    
    }
    
    detect('chrome-extension://' + addon_id_youre_after, function() {alert('boom!');});
    
    Функционал основан на том, что у каждого расширения Chrome есть уникальный URI, который начинается с chrome-extension://. Достаточно просто составить список URI для самых популярных расширений и обратиться к этим URI с веб-страницы. Проверка происходит очень быстро, так что можно увеличить список проверяемых расширений, если у вас есть цель действительно получить оригинальный «отпечаток» браузера пользователя.

    Как вариант, вы можете проверять только некоторые специфичные расширения и надёжно идентифицировать тех пользователей, у которых установлены эти расширения.

    Дата: 19.03.2012
    http://www.xakep.ru/post/58440/