Статья Браузерные расширения — идеальный шпион: Стиллер паролей на JavaScript, который невозможно заметить

Admin

Администратор

Браузерные расширения — идеальный шпион: Стиллер паролей на JavaScript.​

Почему это работает?​

Когда мы говорим о вирусах, мы представляем .exe файлы или сложные эксплойты. Но мы забываем, что браузер — это программа, которой мы доверяем больше всего. Браузерные расширения (Extensions) обладают уникальной привилегией: они живут внутри DOM (Document Object Model).

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

1. Анатомия «тихого» расширения​


Чтобы расширение превратилось в шпиона, ему нужно всего три компонента:

  1. manifest.json: Запрашивает права на доступ к страницам.
  2. Content Script: JavaScript-код, который внедряется на каждую открытую вкладку.
  3. C2 (Command & Control): Сервер, куда будут уходить данные.


Манифест (Разрешения)​

Злоумышленнику достаточно запросить доступ к storage и <all_urls>. Пользователи часто кликают «Установить», не читая список разрешений.

JSON:
{
"manifest_version": 3,
"name": "Super PDF Converter",
"permissions": ["storage", "tabs"],
"host_permissions": ["<all_urls>"],
"content_scripts": [{
"matches": ["<all_urls>"],
"js": ["content.js"]
}]
}


2. Логика шпионажа (Content Script)​

Вместо того чтобы искать конкретные кнопки «Войти», современный стиллер просто вешает «прослушку» на все поля ввода.

JavaScript:
// content.js
document.addEventListener('input', (e) => {
const field = e.target;
if (field.type === 'password' || field.name.includes('pass')) {
const data = {
url: window.location.href,
login: findRelatedLogin(field), // Ищет соседнее поле с логином
password: field.value,
timestamp: Date.now()
};
saveToQueue(data);
}
});



В чем фишка? Скрипт не отправляет данные мгновенно (это палевно). Он накапливает их в chrome.storage и ждет удобного момента.


3. Скрытность и обход детекторов​

Почему расширение-стиллер сложно заметить антивирусом?
  1. Это просто JS: Для антивируса это обычный скрипт, такой же, как на любом сайте.
  2. Динамическая загрузка: Основной вредоносный код может подгружаться с внешнего сервера уже после установки расширения (техника Remote Code Execution).
  3. Обфускация: Имена переменных меняются на бессмысленные a, b, c, а строки шифруются через Base64 или кастомные алгоритмы.
  4. Имитация полезности: Расширение действительно может конвертировать PDF или менять тему в VK, выполняя свою заявленную функцию.


4. Эксфильтрация данных (Exfiltration)​

Самый опасный момент — отправка паролей на сервер злоумышленника. Чтобы не светиться в Network Tab (панель разработчика), используются хитрости:
  • WebSockets: Соединение висит постоянно, данные уходят мелкими пакетами.
  • Имитация запросов к аналитике: Данные маскируются под Google Analytics или Facebook Pixel.
  • DNS Tunneling: Данные кодируются в поддомены при попытке разрешить DNS-имя.


5. Как защититься?​

  1. Принцип минимализма: Каждое расширение — это потенциальная дыра. Удалите всё, чем не пользуетесь каждый день.
  2. Проверка автора: Не ставьте расширения с 10 скачиваниями и вчерашней датой регистрации.
  3. Менеджеры паролей: Используйте автономные менеджеры (KeePass, Bitwarden). Они вставляют пароли через буфер обмена или свои механизмы, которые сложнее перехватить простым input слушателем.
  4. 2FA (Двухфакторка): Даже если стиллер украл пароль, без кода из SMS или приложения он бесполезен. Это ваша главная линия обороны.

Итог​

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