ΠΡΠ°ΠΊΠ°ΡΠ° ΡΡΠ΅ΡΡ ΠΏΠ°ΠΊΠ΅ΡΠΈΡΠ΅ Π² 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-hook Π² ΡΠ°ΠΉΠ»Π° 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.

Π‘ΡΠ΅Π΄ Π΄ΡΡΠ³ΠΎΡΠΎ, Π² ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡΠ° Π½Π° ΡΠ΅ΡΠ²Π΅Ρ, 25 ΠΏΠ°ΠΊΠ΅ΡΠ° Π½Π° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΡΠ° CrowdStrike, ΡΠ°Π·Π²ΠΈΠ²Π°ΡΠ° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° Π·Π°ΡΠΈΡΠ° ΠΎΡ Π°ΡΠ°ΠΊΠΈ ΡΡΠ΅Π· Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ (Supply Chain). ΠΠΎ ΡΠ²ΡΡΠ΄Π΅Π½ΠΈΡ Π½Π° CrowdStrike ΠΊΠΎΠΌΠΏΡΠΎΠΌΠ΅ΡΠΈΡΠ°Π½ΠΈΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠΈ Π½Π΅ ΡΠ° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ Π² ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° Falcon ΠΈ Π°ΡΠ°ΠΊΠ°ΡΠ° Π½Π΅ ΡΠ΅ Π΅ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΠΈΠ»Π° ΡΡΠ΅Π΄ ΠΊΠ»ΠΈΠ΅Π½ΡΠΈΡΠ΅. Π‘ΡΡΠΎ ΡΠ°ΠΊΠ° ΡΡΠ°Π½Π° ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ, ΡΠ΅ ΠΏΡΠ΅Π΄ΠΈΡΠ½Π°ΡΠ° Π²ΡΠ»Π½Π° Π½Π° ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½Π΅ Π½Π° Π·Π»ΠΎΠ½Π°ΠΌΠ΅ΡΠ΅Π½ΠΈ Π²Π΅ΡΡΠΈΠΈ Π² NPM, ΠΈΠ·Π²ΡΡΡΠ²Π°Π½Π° Π±Π΅Π· ΡΠ΅ΡΠ²Π΅ΠΉ, Π΅ Π·Π°ΡΠ΅Π³Π½Π°Π»Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° gemini-cli, ΡΠ°Π·Π²ΠΈΠ²Π°Π½ ΠΎΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ Google.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
