ΠžΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€, Π²Ρ‹ΡΠ²ΠΈΠ²ΡˆΠΈΠΉ 200 врСдоносных ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π² NPM ΠΈ PyPI

Π€ΠΎΠ½Π΄ OpenSSF (Open Source Security Foundation), сформированный ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ Linux Foundation ΠΈ Π½Π°Ρ†Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Π½Π° ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ бСзопасности ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ ПО, прСдставил ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Package Analysis, Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ систСму Π°Π½Π°Π»ΠΈΠ·Π° наличия врСдоносного ΠΊΠΎΠ΄Π° Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π°Ρ…. Код ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° написан Π½Π° языкС Go ΠΈ распространяСтся ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ Apache 2.0. ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ сканированиС Ρ€ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π² NPM ΠΈ PyPI ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ инструмСнтария ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ Π²Ρ‹ΡΠ²ΠΈΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ 200 Ρ€Π°Π½Π΅Π΅ Π½Π΅ Π·Π°ΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹Ρ… врСдоносных ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ².

Основная Ρ‡Π°ΡΡ‚ΡŒ выявлСнных ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½Ρ‹Ρ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ пСрСсСчСниСм ΠΈΠΌΡ‘Π½ с Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌΠΈ Π½Π΅ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ зависимостями ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² (Π°Ρ‚Π°ΠΊΠ° dependency confusion) ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ тайпсквотинга (Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠΌΡ‘Π½, ΠΏΠΎΡ…ΠΎΠΆΠΈΡ… Π½Π° названия популярных Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ), Π° Ρ‚Π°ΠΊΠΆΠ΅ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ Π² процСссС установки скрипты, ΠΎΠ±Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΠ΅ΡΡ ΠΊ внСшним хостам. По мнСнию Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Package Analysis, большая Ρ‡Π°ΡΡ‚ΡŒ выявлСнных ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½Ρ‹Ρ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² скорСС всСго создана исслСдоватСлями бСзопасности, ΡƒΡ‡Π°ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… получСния Π²ΠΎΠ·Π½Π°Π³Ρ€Π°ΠΆΠ΄Π΅Π½ΠΈΠΉ Π·Π° выявлСниС уязвимостСй (bug bountie), Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ отправляСмыС Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ систСмы, ΠΈ дСйствия Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ явно, Π±Π΅Π· ΠΏΠΎΠΏΡ‹Ρ‚ΠΎΠΊ ΡΠΊΡ€Ρ‹Ρ‚ΡŒ своё ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅.

Из ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² с врСдоносной Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΡ‚ΠΌΠ΅Ρ‡Π°ΡŽΡ‚ΡΡ:

  • PyPI-ΠΏΠ°ΠΊΠ΅Ρ‚ discordcmd, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ зафиксирована ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° Π½Π΅Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Ρ… запросов ΠΊ raw.githubusercontent.com, Discord API ΠΈ ipinfo.io. Π£ΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π» ΠΊΠΎΠ΄ бэкдора с GitHub ΠΈ устанавливал Π΅Π³ΠΎ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Windows-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Discord, послС Ρ‡Π΅Π³ΠΎ запускал процСсс поиска Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ² Discord Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ ΠΈΡ… Π½Π° внСшний Discord-сСрвСр, ΠΏΠΎΠ΄ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰ΠΈΠΌ.
  • NPM-ΠΏΠ°ΠΊΠ΅Ρ‚ colorsss, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Π°ΠΊΠΆΠ΅ пытался ΠΏΠ΅Ρ€Π΅ΡΡ‹Π»Π°Ρ‚ΡŒ Π½Π° внСшний сСрвСр Ρ‚ΠΎΠΊΠ΅Π½Ρ‹ ΠΎΡ‚ ΡƒΡ‡Ρ‘Ρ‚Π½ΠΎΠΉ записи Π² Discord.
  • NPM-ΠΏΠ°ΠΊΠ΅Ρ‚ @roku-web-core/ajax — Π² процСссС установки отправлял Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ систСмС ΠΈ запускал ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ (reverse shell), ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠΉ внСшниС соСдинСния ΠΈ Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.
  • PyPI-ΠΏΠ°ΠΊΠ΅Ρ‚ secrevthree — запускал reverse shell ΠΏΡ€ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠ³ΠΎ модуля.
  • NPM-ΠΏΠ°ΠΊΠ΅Ρ‚ random-vouchercode-generator — послС импортирования Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ отправлял запрос Π½Π° внСшний сСрвСр, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π» ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΈ врСмя Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π΅Ρ‘ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ.

Π Π°Π±ΠΎΡ‚Π° Package Analysis сводится ΠΊ Π°Π½Π°Π»ΠΈΠ·Ρƒ Π² исходных тСкстах ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΊΠΎΠ΄Π° для установки сСтСвых соСдинСний, доступа ΠΊ Ρ„Π°ΠΉΠ»Π°ΠΌ ΠΈ запуска ΠΊΠΎΠΌΠ°Π½Π΄. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ отслСТиваСтся ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ состояния ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² для опрСдСлСния добавлСния врСдоносных вставок Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· выпусков ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π±Π΅Π·ΠΎΠ±ΠΈΠ΄Π½ΠΎΠ³ΠΎ ПО. Для ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° появлСния Π½ΠΎΠ²Ρ‹Ρ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π² рСпозиториях ΠΈ внСсСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Ρ€Π°Π½Π΅Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ‰Ρ‘Π½Π½Ρ‹Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ примСняСтся инструмСнтарий Package Feeds, ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… Ρ€Π°Π±ΠΎΡ‚Ρƒ с рСпозиториями NPM, PyPI, Go, RubyGems, Packagist, NuGet ΠΈ Crate.

Package Analysis Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Ρ‚Ρ€ΠΈ Π±Π°Π·ΠΎΠ²Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ Π² связкС, Ρ‚Π°ΠΊ ΠΈ ΠΏΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ:

  • ΠŸΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ запуска Ρ€Π°Π±ΠΎΡ‚ ΠΏΠΎ Π°Π½Π°Π»ΠΈΠ·Ρƒ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π½Π° основС Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Package Feeds.
  • Анализатор, нСпосрСдствСнно ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‰ΠΈΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΈ ΠΎΡ†Π΅Π½ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ Π΅Π³ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ с использованиСм ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² статичСского Π°Π½Π°Π»ΠΈΠ·Π° ΠΈ динамичСской трассировки. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° осущСствляСтся Π² ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ.
  • Π—Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ, ΠΏΠΎΠΌΠ΅Ρ‰Π°ΡŽΡ‰ΠΈΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ BigQuery.

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

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