Π€ΠΎΠ½Π΄ 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