Π‘Π°ΠΌΠΎΡ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡŽΡ‰ΠΈΠΉΡΡ Ρ‡Π΅Ρ€Π²ΡŒ ΠΏΠΎΡ€Π°Π·ΠΈΠ» 187 ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π² NPM

Атака Π½Π° ΡΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π°ΡŽΡ‰ΠΈΡ… ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ NPM ΠΏΠ΅Ρ€Π΅ΡˆΠ»Π° Π½Π° Π½ΠΎΠ²Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ. Π’ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ использованию врСдоносного ПО для ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Π° ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ΅ΠΉ ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΡˆΠ»ΠΈ ΠΊ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΡŽ Π² скомпромСтированныС ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ чСрвя для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ подстановки врСдоносного ПО Π² зависимости. ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ чСрвя зафиксировано послС ΠΊΠΎΠΌΠΏΡ€ΠΎΠΌΠ΅Ρ‚Π°Ρ†ΠΈΠΈ NPM-ΠΏΠ°ΠΊΠ΅Ρ‚Π° @ctrl/tinycolor, ΠΈΠΌΠ΅ΡŽΡ‰Π΅Π³ΠΎ 2.2 ΠΌΠ»Π½ Π΅ΠΆΠ΅Π½Π΅Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Π·Π°Π³Ρ€ΡƒΠ·ΠΎΠΊ ΠΈ задСйствованного Π² качСствС прямой зависимости Π² 964 ΠΏΠ°ΠΊΠ΅Ρ‚Π°Ρ…. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ активности чСрвя Π°Ρ‚Π°ΠΊΠ° ΠΎΡ…Π²Π°Ρ‚ΠΈΠ»Π° 187 ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π±Ρ‹Π»ΠΈ сформированы врСдоносныС выпуски (477 врСдоносных Ρ€Π΅Π»ΠΈΠ·ΠΎΠ²).

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

ВрСдоносныС Ρ€Π΅Π»ΠΈΠ·Ρ‹ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΡŽΡ‚ΡΡ для 20 Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ популярных ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΈΠΌΠ΅Π΅Ρ‚ доступ Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹ΠΉ NPM-Ρ‚ΠΎΠΊΠ΅Π½. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Ρ€Π΅Π»ΠΈΠ·Π° Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π² Ρ„ΠΎΡ€ΠΌΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ NpmModule.updatePackage, которая Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ исходный Π°Ρ€Ρ…ΠΈΠ² ΠΏΠ°ΠΊΠ΅Ρ‚Π°, измСняСт Π½ΠΎΠΌΠ΅Ρ€ вСрсии ΠΈ добавляСт postinstall-Ρ…ΡƒΠΊ Π² Ρ„Π°ΠΉΠ» package.json, подставляСт ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ bundle.js, ΠΏΠ΅Ρ€Π΅ΡƒΠΏΠ°ΠΊΠΎΠ²Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΈ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ΅Ρ‚ Π΅Π³ΠΎ. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ΡΡ Ρ€Π°Π±ΠΎΡ‚Π° Π² Linux ΠΈ macOS.

Π§Π΅Ρ€Π²ΡŽ присвоСно ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠ΅ имя Shai-Hulud (гигантский Ρ‡Π΅Ρ€Π²ΡŒ, ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π΅ΠΌΡ‹ΠΉ Π² Ρ€ΠΎΠΌΠ°Π½Π΅ Π”ΡŽΠ½Π°). НайдСнныС Π² систСмС ΡƒΡ‡Ρ‘Ρ‚Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² GitHub Ρ‡Π΅Ρ€Π΅Π· созданиС Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π² с ΠΈΠΌΠ΅Π½Π΅ΠΌ Shai-Hulud (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Β«B611/Shai-HuludΒ»), Π° Ρ‚Π°ΠΊΠΆΠ΅ Π² Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ ΠΎΡ‚Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Π² Π»ΠΎΠ³Π°Ρ… GitHub Actions. Π’ создаваСмом Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ размСщаСтся Ρ„Π°ΠΉΠ» data.json, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ присутствуСт строка с Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ base64 ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΎ систСмС, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… окруТСния ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‡Π΅Π½Π½Ρ‹Ρ… ΠΊΠ»ΡŽΡ‡Π°Ρ… доступа. Π’ CI Π½Π° Π±Π°Π·Π΅ GitHub для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π½Π° внСшний хост Ρ‡Π΅Ρ€Π²ΡŒ создаёт ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ GitHub Actions (.github/workflows/shai-hulud-workflow.yml). Будя ΠΏΠΎ всСму, Π°Ρ‚Π°ΠΊΠ° Π½Π΅ ограничиваСтся упомянутыми 187 ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½Π° GitHub ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡŽΡ‚ ΠΏΠΎΡΠ²Π»ΡΡ‚ΡŒΡΡ Π½ΠΎΠ²Ρ‹Π΅ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ с ΠΈΠΌΠ΅Π½Π΅ΠΌ Shai-Hulud ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠΌ data.json.

 Π‘Π°ΠΌΠΎΡ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡŽΡ‰ΠΈΠΉΡΡ Ρ‡Π΅Ρ€Π²ΡŒ ΠΏΠΎΡ€Π°Π·ΠΈΠ» 187 ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π² NPM

Π‘Ρ€Π΅Π΄ΠΈ ΠΏΡ€ΠΎΡ‡Π΅Π³ΠΎ, Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ активности чСрвя ΠΏΠΎΡ€Π°ΠΆΡ‘Π½Π½Ρ‹ΠΌΠΈ оказались 25 ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ CrowdStrike, Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‰Π΅ΠΉ инструмСнты для Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΎΡ‚ Π°Ρ‚Π°ΠΊ Ρ‡Π΅Ρ€Π΅Π· зависимости (Supply Chain). По заявлСнию CrowdStrike скомпромСтированныС ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ Π½Π΅ использовались Π² ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ Falcon ΠΈ Π°Ρ‚Π°ΠΊΠ° Π½Π΅ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΠΈΠ»Π°ΡΡŒ Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ². Π’Π°ΠΊΠΆΠ΅ стало извСстно, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΡˆΠ»Π°Ρ Π²ΠΎΠ»Π½Π° ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ врСдоносных Ρ€Π΅Π»ΠΈΠ·ΠΎΠ² Π² NPM, ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΠ²ΡˆΠ°ΡΡΡ Π±Π΅Π· чСрвя, Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΠ»Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ gemini-cli, Ρ€Π°Π·Π²ΠΈΠ²Π°Π΅ΠΌΡ‹ΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Google.

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

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