ΠžΡ‚ΠΊΡ€ΠΈΡ‚ Π΅ Π·Π»ΠΎΠ½Π°ΠΌΠ΅Ρ€Π΅Π½ ΠΏΠ°ΠΊΠ΅Ρ‚ rustdecimal Π² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅Ρ‚ΠΎ Π½Π° Rust crates.io

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ Π½Π° Π΅Π·ΠΈΠΊΠ° Rust ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅Π΄ΠΈΡ…Π°, Ρ‡Π΅ Π² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅Ρ‚ΠΎ crates.io Π΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½ ΠΏΠ°ΠΊΠ΅Ρ‚ rustdecimal, ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Ρ‰ Π·Π»ΠΎΠ²Ρ€Π΅Π΄Π΅Π½ ΠΊΠΎΠ΄. ΠŸΠ°ΠΊΠ΅Ρ‚ΡŠΡ‚ сС основава Π½Π° лСгитимния ΠΏΠ°ΠΊΠ΅Ρ‚ rust_decimal ΠΈ сС разпространява с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° сходство Π² ΠΈΠΌΠ΅Ρ‚ΠΎ (typesquatting) с ΠΎΡ‡Π°ΠΊΠ²Π°Π½Π΅Ρ‚ΠΎ, Ρ‡Π΅ потрСбитСлят няма Π΄Π° Π·Π°Π±Π΅Π»Π΅ΠΆΠΈ липсата Π½Π° Π΄ΠΎΠ»Π½Π° Ρ‡Π΅Ρ€Ρ‚Π°, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Ρ‚ΡŠΡ€ΡΠΈ ΠΈΠ»ΠΈ ΠΈΠ·Π±ΠΈΡ€Π° ΠΌΠΎΠ΄ΡƒΠ» ΠΎΡ‚ списък.

Врябва Π΄Π° сС ΠΎΡ‚Π±Π΅Π»Π΅ΠΆΠΈ, Ρ‡Π΅ Ρ‚Π°Π·ΠΈ стратСгия сС ΠΎΠΊΠ°Π·Π° ΡƒΡΠΏΠ΅ΡˆΠ½Π° ΠΈ ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ Π½Π° броя Π½Π° изтСглянията, фиктивният ΠΏΠ°ΠΊΠ΅Ρ‚ бСшС само ΠΌΠ°Π»ΠΊΠΎ Π·Π°Π΄ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»Π° (~111 хиляди изтСгляния Π½Π° rustdecimal 1.23.1 ΠΈ 113 хиляди Π½Π° оригиналния rust_decimal 1.23.1) . Π’ ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ ΠΏΠΎ-голямата част ΠΎΡ‚ изтСглянията бяха Π½Π° Π±Π΅Π·Π²Ρ€Π΅Π΄Π΅Π½ ΠΊΠ»ΠΎΠ½ΠΈΠ½Π³, ΠΊΠΎΠΉΡ‚ΠΎ Π½Π΅ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° Π·Π»ΠΎΠ½Π°ΠΌΠ΅Ρ€Π΅Π½ ΠΊΠΎΠ΄. Π—Π»ΠΎΠ½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ бяха Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ Π½Π° 25 ΠΌΠ°Ρ€Ρ‚ във вСрсия rustdecimal 1.23.5, която бСшС ΠΈΠ·Ρ‚Π΅Π³Π»Π΅Π½Π° ΠΎΠΊΠΎΠ»ΠΎ 500 ΠΏΡŠΡ‚ΠΈ, ΠΏΡ€Π΅Π΄ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ Π΄Π° бъдС ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½ ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΡŠΡ‚ Π΄Π° бъдС Π±Π»ΠΎΠΊΠΈΡ€Π°Π½ (ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π° сС, Ρ‡Π΅ ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ изтСгляния Π½Π° Π·Π»ΠΎΠ½Π°ΠΌΠ΅Ρ€Π΅Π½Π°Ρ‚Π° вСрсия са Π½Π°ΠΏΡ€Π°Π²Π΅Π½ΠΈ ΠΎΡ‚ Π±ΠΎΡ‚ΠΎΠ²Π΅) ΠΈ Π½Π΅ Π΅ Π±ΠΈΠ» ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ ΠΊΠ°Ρ‚ΠΎ зависимости ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ, ΠΏΡ€ΠΈΡΡŠΡΡ‚Π²Π°Ρ‰ΠΈ Π² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅Ρ‚ΠΎ (възмоТно Π΅ злонамСрСният ΠΏΠ°ΠΊΠ΅Ρ‚ Π΄Π° Π΅ Π±ΠΈΠ» зависимост ΠΎΡ‚ ΠΊΡ€Π°ΠΉΠ½ΠΈΡ‚Π΅ прилоТСния).

Π—Π»ΠΎΠ½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ сС ΡΡŠΡΡ‚ΠΎΡΡ‚ Π² добавянС Π½Π° Π½ΠΎΠ²Π° функция, Decimal::new, чиято рСализация ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°ΡˆΠ΅ обфусциран ΠΊΠΎΠ΄ Π·Π° изтСглянС ΠΎΡ‚ външСн ΡΡŠΡ€Π²ΡŠΡ€ ΠΈ стартиранС Π½Π° изпълним Ρ„Π°ΠΉΠ». ΠŸΡ€ΠΈ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° функцията сС провСрява ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°Ρ‚Π° Π½Π° срСдата GITLAB_CI ΠΈ Π°ΠΊΠΎ Π΅ Π·Π°Π΄Π°Π΄Π΅Π½Π°, Ρ„Π°ΠΉΠ»ΡŠΡ‚ /tmp/git-updater.bin сС изтСгля ΠΎΡ‚ външния ΡΡŠΡ€Π²ΡŠΡ€. ЗлонамСрСният ΠΌΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ‚ΠΎΡ€ Π·Π° изтСглянС ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°ΡˆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π° Π½Π° Linux ΠΈ macOS (ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Windows Π½Π΅ сС ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°ΡˆΠ΅).

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΡˆΠ΅ сС, Ρ‡Π΅ Π·Π»ΠΎΠ½Π°ΠΌΠ΅Ρ€Π΅Π½Π°Ρ‚Π° функция Ρ‰Π΅ бъдС изпълнСна ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° тСстванС Π½Π° систСми Π·Π° Π½Π΅ΠΏΡ€Π΅ΠΊΡŠΡΠ½Π°Ρ‚Π° интСграция. Π‘Π»Π΅Π΄ ΠΊΠ°Ρ‚ΠΎ Π±Π»ΠΎΠΊΠΈΡ€Π°Ρ…Π° rustdecimal, администраторитС Π½Π° crates.io Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π°Ρ…Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅Ρ‚ΠΎ Π·Π° ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ Π·Π»ΠΎΠ½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈ вмъквания, Π½ΠΎ Π½Π΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Ρ…Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ. БобствСницитС Π½Π° систСми Π·Π° Π½Π΅ΠΏΡ€Π΅ΠΊΡŠΡΠ½Π°Ρ‚Π° интСграция, Π±Π°Π·ΠΈΡ€Π°Π½ΠΈ Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° GitLab, сС ΡΡŠΠ²Π΅Ρ‚Π²Π°Ρ‚ Π΄Π° Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€Π°Ρ‚, Ρ‡Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ‚Π΅, тСствани Π½Π° Ρ‚Π΅Ρ…Π½ΠΈΡ‚Π΅ ΡΡŠΡ€Π²ΡŠΡ€ΠΈ, Π½Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ ΠΏΠ°ΠΊΠ΅Ρ‚Π° rustdecimal Π² Ρ‚Π΅Ρ…Π½ΠΈΡ‚Π΅ зависимости.

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

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€