ЭкспСримСнт с созданиСм NPM-ΠΏΠ°ΠΊΠ΅Ρ‚Π°, зависимого ΠΎΡ‚ всСх ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ

Один ΠΈΠ· Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² JavaScript-ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΏΡ€ΠΎΠ²Ρ‘Π» экспСримСнт с созданиСм ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ΠΌ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ NPM ΠΏΠ°ΠΊΠ΅Ρ‚Π° «everything», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ зависимостями всС ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ. Для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ возмоТности ΠΏΠ°ΠΊΠ΅Ρ‚ «everything» связан прямыми зависимостями с ΠΏΡΡ‚ΡŒΡŽ ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ «@everything-registry/chunk-N», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΠΏΡ€ΠΈΠ²ΡΠ·Ρ‹Π²Π°ΡŽΡ‚ΡΡ зависимостями ΠΊ Π±ΠΎΠ»Π΅Π΅ 3000 ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² «sub-chunk-N», Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… осущСствляСтся привязка ΠΊ 800 ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ.

Π Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ «everything» Π² NPM ΠΏΡ€ΠΈΠ²Π΅Π»ΠΎ ΠΊ Π΄Π²ΡƒΠΌ интСрСсным эффСктам. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ… ΠΏΠ°ΠΊΠ΅Ρ‚ «everything» стал своСобразным инструмСнтом для ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ DoS-Π°Ρ‚Π°ΠΊ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° Π΅Π³ΠΎ установки ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² Ρ€Π°Π·ΠΌΠ΅Ρ‰Ρ‘Π½Π½Ρ‹Ρ… Π² NPM ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΈ ΠΈΡΡ‡Π΅Ρ€ΠΏΠ°Π½ΠΈΡŽ ΠΈΠΌΠ΅ΡŽΡ‰Π΅Π³ΠΎΡΡ дискового пространства ΠΈΠ»ΠΈ остановкС выполнСния сборочных процСссов. По статистикС NPM ΠΏΠ°ΠΊΠ΅Ρ‚ Π±Ρ‹Π» Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½ ΠΎΠΊΠΎΠ»ΠΎ 250 Ρ€Π°Π·, Π½ΠΎ Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ ΠΌΠ΅ΡˆΠ°Π΅Ρ‚ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² зависимости ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ ΠΏΠ°ΠΊΠ΅Ρ‚Ρƒ послС Π²Π·Π»ΠΎΠΌΠ° ΡƒΡ‡Ρ‘Ρ‚Π½ΠΎΠΉ записи Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° для ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ дивСрсии. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, нСвольно Π°Ρ‚Π°ΠΊΠ΅ оказались ΠΏΠΎΠ΄Π²Π΅Ρ€ΠΆΠ΅Π½Ρ‹ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ слуТбы ΠΈ инструмСнты ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡŽΡ‰ΠΈΠ΅ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Π½ΠΎΠ²Ρ‹Ρ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Π΅ΠΌΡ‹Ρ… Π² NPM.

Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ… публикация ΠΏΠ°ΠΊΠ΅Ρ‚Π° «everything» фактичСски Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π»Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ удалСния Π»ΡŽΠ±Ρ‹Ρ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π² NPM, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ оказались Π² спискС Π΅Π³ΠΎ зависимостСй. ΠŸΠ°ΠΊΠ΅Ρ‚ ΠΈΠ· NPM ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ΄Π°Π»Ρ‘Π½ Π°Π²Ρ‚ΠΎΡ€ΠΎΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли ΠΎΠ½ Π΅Ρ‰Ρ‘ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² зависимостях Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², Π½ΠΎ послС ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ «everything» зависимостями оказались ΠΎΡ…Π²Π°Ρ‡Π΅Π½Ρ‹ всС ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ. ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‡Ρ‚ΠΎ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ самого ΠΏΠ°ΠΊΠ΅Ρ‚Π° «everything» Ρ‚Π°ΠΊΠΆΠ΅ оказалось Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ 9 Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Π±Ρ‹Π» Ρ€Π°Π·ΠΌΠ΅Ρ‰Ρ‘Π½ тСстовый ΠΏΠ°ΠΊΠ΅Ρ‚ «everything-else», Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±Ρ‹Π»Π° ΡƒΠΊΠ°Π·Π°Π½Π° строка «everything» Π² спискС зависимостСй. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΏΠ°ΠΊΠ΅Ρ‚ «everything» послС ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ оказался Π² зависимостях Ρƒ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π°.

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

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