ΠΡΠ°ΠΊΠ°ΡΠ° ΡΡΠ΅ΡΡ ΠΏΠ°ΠΊΠ΅ΡΠΈΡΠ΅ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΠΎ 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.

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