Свързана със Северна Корея хакерска група вече не разчита само на фалшиви интервюта за работа, а краде идентификационни данни на разработчици, за да вгражда зловреден софтуер в доверени софтуерни проекти.

Групата, проследявана под името DeceptiveDevelopment, е използвала откраднатия достъп, за да променя код в публични и частни хранилища в периода между април и септември 2026 г. Всеки компрометиран проект след това се превръща в нов входен вектор към системите на хората, които го използват.

Групата е известна от години с това, че подмамва разработчици чрез фалшиви специалисти по подбор на персонал и тестове по програмиране. В по-ранни кампании основната ѝ цел беше кражбата на криптовалутни портфейли и данни за вход, запазени в браузърите.

Новата активност е по-мащабна, тъй като един заразен разработчик вече може да изложи на риск десетки или дори стотици други потребители.

Изследователите отбелязват, че тази промяна показва колко високо севернокорейските групи ценят компютрите на разработчиците. Един-единствен лаптоп често съдържа данни за достъп до Git, ключове за облачни услуги и права за публикуване на пакети. Това е далеч по-полезно за един киберпрестъпник от една открадната парола.

Анализаторите от ESET отбелязват тази промяна в своя доклад за активността на APT групите (APT Activity Report), който обхваща периода от април до септември 2026 г. и беше публикуван на 28 октомври в WeLiveSecurity.

Севернокорейски хакери крадат идентификационни данни на разработчици

В доклада се посочва, че групата е преминала от примамки с фалшиви интервюта за работа към по-широки компрометирания на веригата за доставки на софтуер. Изследователите от ESET са установили, че атаката все още започва с примамка, като например фалшива задача за наемане на работа, която изисква от разработчика да стартира даден проект.

Същият трик беше описан и при фалшиви предизвикателства за интервюта за работа, насочени към програмисти на свободна практика. След като разработчикът стартира файла, зловредният софтуер претърсва компютъра за идентификационни данни за Git, SSH ключове и токени за достъп.

Атакуващите ги използват, за да влязат от името на разработчика и да добавят злонамерен код в собствените хранилища на жертвата. Те често пренаписват историята на промените (commit history) след това, което помага да скрият модификациите си от колегите в екипа, които проверяват журнала на проекта.

След това заразените файлове се разпространяват чрез платформите, на които разработчиците имат най-голямо доверие. ESET са открили засегнати елементи в npm, огледалния сървър за Go модули (Go module mirror), Packagist, PyPI и магазините за разширения за браузъри. Повечето от засегнатите проекти са малки инструменти, поддържани от отделни разработчици.

Това предполага, че разпространението е било автоматизирано, а не внимателно подбрано, като всеки компрометиран проект се е превърнал в нова входна точка за всеки, който го изтегли.

Верига на изпълнение чрез използване на NullReceive (Източник - ESET)
Верига на изпълнение чрез използване на NullReceive (Източник – ESET)

В края на няколко вериги на заразяване ESET са открили два основни инструмента. Първият е OmniStealer – написан на Python зловреден софтуер за кражба на информация (infostealer), който работи на няколко операционни системи и се обновява често.

Той атакува данни за вход в браузъри, крипто портфейли, мениджъри на пароли и тайни ключове на разработчици. Вторият е DEV#POPPER – троянски кон за отдалечен достъп (RAT), написан на Node.js.

По-ранни проучвания върху DEV#POPPER показаха, че той може да записва натиснатите клавиши и да изпълнява отдалечени команди. Новите версии добавят своя код към приложения, които разработчиците отварят всеки ден, включително VS Code, Cursor и Discord, така че зловредният софтуер се стартира отново при всяко отваряне на някое от тях.

Блокчейн трикове и трудна за премахване инфраструктура

Групата е работила и върху това да направи сървърите си по-трудни за спиране. ESET са изследвали npm пакети, които използват метод, публично наричан NullReceiver.

Зареждащият модул (loader) проверява последната транзакция от твърдо кодиран Ethereum адрес. След това прочита IP адреса на командния сървър от адреса на получателя на иначе празен превод. Кампания в npm, използваща NullReceiver и докладвана по-рано тази година, прилагаше същата идея.

Това дава на атакуващите голямо предимство. Те могат да превключат към нов сървър само с една нова транзакция и не се налага да обновяват нито един пакет.

Записите в блокчейна също така не могат да бъдат свалени. ESET са открили този метод и вътре в компрометирано хранилище, притежавано от реален разработчик и стартирано чрез скрита задача във VS Code.

Според проследяването на ESET това е първият случай на базирано на блокчейн търсене на сървър, вградено директно в проект, хостван в GitHub. Хакерите също така са преместили своите примамки и зловреден код към услуги, които са по-трудни за премахване.

Фалшивите Web3 задачи по програмиране от ранния етап на атаката са били разположени в Gitea – алтернатива на GitHub, която потребителите могат да хостват сами, така че няма централен екип, на когото да бъдат докладвани.

По-късен зловреден код е бил съхраняван в JSONBin.io, JSONHosting и Pinata – шлюз към мрежата IPFS. В IPFS файловете се намират по тяхното съдържание, така че закриването на акаунт невинаги премахва самия файл.

ESET заключава, че групата е използвала тези шест месеца, за да достигне до повече жертви и да направи свалянето на инфраструктурата си по-малко болезнено. По-широк поглед върху командните сървъри, базирани на блокчейн, показва, че и други групи копират този подход.

Разработчиците могат да намалят риска с няколко навика. Никога не стартирайте код от специалист по подбор на персонал на основната си работна машина. Подменяйте Git токените, SSH ключовете и ключовете за публикуване на пакети след всяко съмнение за заразяване. Преглеждайте скорошните промени (commits) за пренаписана история. Също така приемайте неочаквания блокчейн трафик от системите за компилиране като предупредителен знак.

Индикатори за компрометиране (IoCs):-

ТипИндикаторРоля в кампанията
ТехникаNullReceiverПрочита IP адреса на сървъра от адреса на получателя в Ethereum транзакция
Зловреден софтуерOmniStealerНаписан на Python софтуер за кражба на информация (infostealer) за данни от браузъри, портфейли, мениджъри на пароли и тайни на разработчици
Зловреден софтуерDEV#POPPER RATТроянски кон за отдалечен достъп на Node.js, който поддържа устойчивост във VS Code, Cursor и Discord
УстойчивостСкрита задача във VS CodeСтартира веригата за търсене в блокчейна от компрометирано хранилище
Хостинг услугаGiteaХоства фалшиви Web3 задачи по програмиране
Хостинг услугаJSONBin.io, JSONHostingХостват данни със зловреден код от по-късен етап
Хостинг услугаPinata (IPFS шлюз)Хоства зловреден код, който е труден за премахване
Целеви платформиnpm, Go module mirror, Packagist, PyPI, магазини за разширения за браузъриКанали, използвани за разпространение на заразен код

Забележка: IP адресите и домейните са умишлено обезвредени (напр. [.]), за да се предотврати случайно зареждане или превръщане в активни връзки. Възстановявайте ги само в рамките на контролирани платформи за разузнаване на заплахи като MISP, VirusTotal или вашата SIEM система.