Co to znamená
Útok na dodavatelský řetězec (anglicky supply chain attack) nemíří na vaši aplikaci přímo. Míří na něco, čemu vaše aplikace bez ptaní důvěřuje: na open source knihovnu, na nástroj v sestavovací lince, na rozšíření editoru nebo na účet člověka, který některý z těch balíčků spravuje. Jakmile útočník ovládne jedno takové místo, dostane se škodlivý kód ke všem, kdo si danou verzi stáhnou, a to úplně běžnou cestou, přes instalaci závislostí.
Typický postup má tři kroky: útočník získá kontrolu nad balíčkem (phishingem na správce, převzetím opuštěného projektu nebo dlouhodobým budováním důvěry v komunitě), vydá novou verzi se skrytým kódem a čeká, až si ji projekty stáhnou při rutinní aktualizaci. Zvlášť účinné to je u balíčků, které se spouštějí už při instalaci, tedy dřív, než kdokoli spustí samotnou aplikaci.
Proč to řešit
Dnešní aplikace se skládají ze stovek cizích balíčků, z nichž drtivou většinu nikdo ve vašem týmu vědomě nevybral. Plocha, kterou musíte hlídat, tak není velikost vašeho kódu, ale velikost všeho, co si pod sebou táhne. Klasická obrana v podobě revize kódu nebo penetračního testu tenhle typ rizika nezachytí: revize prochází změny, které napsal váš tým, a test zkouší aplikaci, která v tu chvíli běží bez škodlivé verze. Podrobný rozbor i konkrétní opatření popisuje článek Skrytá hrozba ve vašem kódu.
Bezpečnost dodavatelského řetězce navíc není jen dobrá praxe. Pro organizace spadající pod NIS2 je výslovnou povinností, včetně evidence komponent (SBOM) a ověřování integrity závislostí.
