ΠŸΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ чСрвя Shai-Hulud скомпромСтировано 600 NPM-ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²

Зафиксирована вторая Π°Ρ‚Π°ΠΊΠ° Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ NPM, проводимая с использованиСм ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΡΠ°ΠΌΠΎΡ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡŽΡ‰Π΅Π³ΠΎΡΡ чСрвя Shai-Hulud, ΠΏΠΎΠ΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅Π³ΠΎ врСдоносноС ПО Π² зависимости. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π°Ρ‚Π°ΠΊΠΈ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Ρ‹ врСдоносныС выпуски 605 ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², Π½Π°ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… Π² суммС Π±ΠΎΠ»Π΅Π΅ 100 ΠΌΠ»Π½ Π·Π°Π³Ρ€ΡƒΠ·ΠΎΠΊ.

Для провСдСния Π°Ρ‚Π°ΠΊΠΈ Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΠΈ ΠΏΡƒΡ‚Ρ‘ΠΌ Ρ„ΠΈΡˆΠΈΠ½Π³Π° ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚ΠΈΠ»ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΡƒΡ‡Ρ‘Ρ‚Π½ΠΎΠΉ записи ΡΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· популярных ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ Π² качСствС зависимости Ρƒ большого числа ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ². Π’ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π²ΡˆΠΈΡΡŒ Π·Π°Ρ…Π²Π°Ρ‡Π΅Π½Π½ΠΎΠΉ ΡƒΡ‡Ρ‘Ρ‚Π½ΡƒΡŽ записью Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»ΠΈ Ρ€Π΅Π»ΠΈΠ· ΠΏΠ°ΠΊΠ΅Ρ‚Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΊΠΎΠ΄ для Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ чСрвя ΠΏΡ€ΠΈ установкС ΠΏΠΎΡ€Π°ΠΆΡ‘Π½Π½ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π² числС зависимостСй. Π—Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹ΠΉ Ρ‡Π΅Ρ€Π²ΡŒ выполняСт поиск ΡƒΡ‡Ρ‘Ρ‚Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ, загруТая ΠΈ запуская ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ TruffleHog.

Π’ случаС обнаруТСния Ρ‚ΠΎΠΊΠ΅Π½Π° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Ρƒ NPM Ρ‡Π΅Ρ€Π²ΡŒ автоматичСски ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ΅Ρ‚ Π½ΠΎΠ²Ρ‹Π΅ врСдоносныС Ρ€Π΅Π»ΠΈΠ·Ρ‹ для ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ. Π’Π°ΠΊΠΈΠΌ способом ΠΏΠΎ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅ пораТаСтся всё Π΄Π΅Ρ€Π΅Π²ΠΎ зависимостСй. Помимо NPM-Ρ‚ΠΎΠΊΠ΅Π½Π° Ρ‡Π΅Ρ€Π²ΡŒ сохраняСт ΠΊΠ»ΡŽΡ‡ΠΈ доступа ΠΊ GitHub ΠΈ ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹ΠΌ сСрвисам AWS, Azure ΠΈ GCP (Google Cloud Platform), Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ окруТСния ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ способСн ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ сканСр TruffleHog.

НайдСнныС Π² систСмС ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² GitHub Ρ‡Π΅Ρ€Π΅Π· созданиС Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π² с Ρ…Π°ΠΎΡ‚ΠΈΡ‡Π½Ρ‹ΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Β«qzx15djl71alh6p80hΒ») ΠΈ Ρ„Ρ€Π°Π·ΠΎΠΉ Β«Sha1-Hulud: The Second ComingΒ» Π² описании, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π² Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ выводятся Π² Π»ΠΎΠ³ΠΈ GitHub Actions. Π’ создаваСмом Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ размСщатся Ρ„Π°ΠΉΠ» Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ JSON (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, jsonactionsSecrets.json ΠΈΠ»ΠΈ contents.json), Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ присутствуСт строка с Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ base64 ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΎ систСмС, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ окруТСния ΠΈ Π·Π°Ρ…Π²Π°Ρ‡Π΅Π½Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. Для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π²ΠΎΠ²Π½Π΅ ΠΈΠ· систСм Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΉ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ Π½Π° Π±Π°Π·Π΅ GitHub Ρ‡Π΅Ρ€Π²ΡŒ создаёт ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ GitHub Actions с ΠΈΠΌΠ΅Π½Π΅ΠΌ Β«.github/workflows/formatter_123456789.ymlΒ» ΠΈ настраиваСт runner с ΠΈΠΌΠ΅Π½Π΅ΠΌ SHA1HULUD.

ΠžΡ‚Π»ΠΈΡ‡ΠΈΡ ΠΎΡ‚ ΠΏΠΎΡ…ΠΎΠΆΠ΅ΠΉ ΡΠ΅Π½Ρ‚ΡΠ±Ρ€ΡŒΡΠΊΠΎΠΉ Π°Ρ‚Π°ΠΊΠΈ сводятся ΠΊ ΠΈΠ½ΠΎΠΌΡƒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ подстановки врСдоносного ΠΊΠΎΠ΄Π° Π² ΠΏΠ°ΠΊΠ΅Ρ‚. Π’ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… Ρ‡Π΅Ρ€Π²Ρ‘ΠΌ врСдоносных Ρ€Π΅Π»ΠΈΠ·Π°Ρ… заявляСтся рСализация ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈ JavaScript-ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Bun. Π’ Ρ„Π°ΠΉΠ» package.json Π² ΡΠ΅ΠΊΡ†ΠΈΡŽ Β«preinstallΒ», ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΡƒΡŽ скрипты, запускаСмыС Π΄ΠΎ Π½Π°Ρ‡Π°Π»Π° установки, добавляСтся ΠΊΠΎΠΌΠ°Π½Π΄Π° Β«node setup_bun.jsΒ».

 ΠŸΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ чСрвя Shai-Hulud скомпромСтировано 600 NPM-ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²

Π’ Ρ„Π°ΠΉΠ»Π΅ Β«setup_bun.jsΒ» присутствуСт ΠΊΠΎΠ΄ для выполнСния обфусцированного скрипта Β«bun_environment.jsΒ», содСрТащСго ΠΊΠΎΠ΄ чСрвя. Для своСго дальнСйшСго распространСния Ρ‡Π΅Ρ€Π²ΡŒ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊΠΎΠ΄ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², вносит измСнСния Π² Ρ„Π°ΠΉΠ» package.json (ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ Π½ΠΎΠΌΠ΅Ρ€ вСрсии ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π²Ρ‹Π·ΠΎΠ² setup_bun.js), добавляСт Ρ„Π°ΠΉΠ»Ρ‹ setup_bun.js ΠΈ bun_environment.js, ΠΏΠ΅Ρ€Π΅ΡƒΠΏΠ°ΠΊΠΎΠ²Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΈ выполняСт ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Β«npm publishΒ» для размСщСния Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ€Π΅Π»ΠΈΠ·Π°.

Π‘Ρ€Π΅Π΄ΠΈ скомпромСтированных популярных ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²: @zapier/zapier-sdk (2.8 ΠΌΠ»Π½ Π·Π°Π³Ρ€ΡƒΠ·ΠΎΠΊ Π² нСдСлю), @posthog/core (2.8 ΠΌΠ»Π½), posthog-node (1.5 ΠΌΠ»Π½), @asyncapi/specs (1.4 ΠΌΠ»Π½), @postman/tunnel-agent (1.2 ΠΌΠ»Π½). ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ Π°Ρ‚Π°ΠΊΠ° Π½Π°Ρ‡Π°Π»Π°ΡΡŒ с ΠΊΠΎΠΌΠΏΡ€ΠΎΠΌΠ΅Ρ‚Π°Ρ†ΠΈΠΈ ΡΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚ @asyncapi/specs.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ