Admin
Администратор
Браузерные расширения — идеальный шпион: Стиллер паролей на JavaScript.
Почему это работает?
Когда мы говорим о вирусах, мы представляем .exe файлы или сложные эксплойты. Но мы забываем, что браузер — это программа, которой мы доверяем больше всего. Браузерные расширения (Extensions) обладают уникальной привилегией: они живут внутри DOM (Document Object Model).Если расширение имеет разрешение на доступ к сайтам, оно может читать всё, что видите вы, и всё, что вы вводите в поля форм.
1. Анатомия «тихого» расширения
Чтобы расширение превратилось в шпиона, ему нужно всего три компонента:
- manifest.json: Запрашивает права на доступ к страницам.
- Content Script: JavaScript-код, который внедряется на каждую открытую вкладку.
- 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. Скрытность и обход детекторов
Почему расширение-стиллер сложно заметить антивирусом?- Это просто JS: Для антивируса это обычный скрипт, такой же, как на любом сайте.
- Динамическая загрузка: Основной вредоносный код может подгружаться с внешнего сервера уже после установки расширения (техника Remote Code Execution).
- Обфускация: Имена переменных меняются на бессмысленные a, b, c, а строки шифруются через Base64 или кастомные алгоритмы.
- Имитация полезности: Расширение действительно может конвертировать PDF или менять тему в VK, выполняя свою заявленную функцию.
4. Эксфильтрация данных (Exfiltration)
Самый опасный момент — отправка паролей на сервер злоумышленника. Чтобы не светиться в Network Tab (панель разработчика), используются хитрости:- WebSockets: Соединение висит постоянно, данные уходят мелкими пакетами.
- Имитация запросов к аналитике: Данные маскируются под Google Analytics или Facebook Pixel.
- DNS Tunneling: Данные кодируются в поддомены при попытке разрешить DNS-имя.
5. Как защититься?
- Принцип минимализма: Каждое расширение — это потенциальная дыра. Удалите всё, чем не пользуетесь каждый день.
- Проверка автора: Не ставьте расширения с 10 скачиваниями и вчерашней датой регистрации.
- Менеджеры паролей: Используйте автономные менеджеры (KeePass, Bitwarden). Они вставляют пароли через буфер обмена или свои механизмы, которые сложнее перехватить простым input слушателем.
- 2FA (Двухфакторка): Даже если стиллер украл пароль, без кода из SMS или приложения он бесполезен. Это ваша главная линия обороны.