bylo by dobré říct také druhou stránku věci, útoků na vývojářské stroje, kde vývojář používá vlastní CA, který má ale položený volně na disku a je možné efektivně ho použít k MitM útokům, přibývá velice rychle.
Obvykle člověk pracuje pod jediným OS účtem, kde má vše, zajistit, že nějaký program si to proskenuje a stáhne co potřebuje zase není tak velký problém pro útočníky, spouštíme si na počítačích kde co.
on nemusí mít žádný přístup, jemu stačí, když ti dokáže spustit u tebe kód, tj. třeba můžeš instalovat balíček z pip/npm, který je napadený nebo využije nějakou další díru v prohlížeči a načte lokální soubory.
Třeba tenhle mkcert, pokud tomu nevěnuješ pozornost a postupuješ podle jejich návodu nebo i tohoto článku, privátní k CA ti skončí v ~/.local složce pod tvým uživatelem a není šifrovaný.
Ano, přesně tenhle přístup je na začátku napadení, podceňování rizika, pak útočník postupně získává přístup k tvým účtům a tam se objevují některé napadené balíčky, kterým logicky důvěřuješ a pěkně se to šíří.
Tak ještě jednou, aby to bylo jasné. Když u tebe spustí nějaký kód, tak tohle je celkem nesmyslný útok. To už si rovnou může přidat např. SSH klíč, spustit keylogger nebo něco podobného a dělat si co chce a nemusí se obtěžovat s nesmyslem CA a MITM.
Nejedná se o žádné podcenění rizika, protože tohle totiž není žádné riziko ani problém, ale až důsledek. Opravdoví problém je, že útočník na stroji spustí svůj kód.
navštívením webové stránky se ti na počítači spustí cizí kód. Instalováním jakkéhokoliv balíčku z npm/pip a dalších se ti na počítači spoustí cizí kód. Jak to děláš, že cizí kód u sebe nespouštíš? Jak jsi si jistý, že jsi nespustil nic, co má pod kontrolou útočník?
Proto mají být ssh klíče šifrované.
Spuštěný kód pod tvým uživatelem ti třeba nedovolí změnit obsah zobrazené stránky či s ní snadno manipulovat. Přidání proxy serverů a využití instalovaného CA to dovolí snadno.
Podceňuješ riziko. Tyhle útoky běží a jsou aktuální.
Já žádné riziko nepodceňuji, jenom říkám, že je to důsledek jiného rizika. Je to samé jako říct, že za vás může útočník vystupovat, když spustíte škodlivý kód. Ano může a je to mnohem větší problém, než MITM. Ale pořád to riziko je právě ve spuštění škodlivého kódu, zbytek je až důsledek. Zaměřovat se na následky a prohlašovat, jak je ten důsledek obrovský problém, ale nic neřeší.
Navíc i když má útočník CA, které napadený důvěřuje, tak ho ještě musí donutit se připojit někam co ovládá tj. např. jak zmiňuješ nastavením proxy serveru. Pak ale nestačí jenom "proskenování"/stažení CA, ale musí mít útočník možnost zápisu. Pak už má mnohem lepší možnosti útoku např. snadný alias na sudo. Čímž nechci tenhle útok nijak zlehčovat, ale mnohem jednoduší je donutit napadeného přidat útočníkovu CA (např. nějakým aliasem), protože lidí co se jim válí důvěryhodná nezabezpečená CA jen tak na disku asi moc nebude.
Nechápeš pointu. Když se někomu u tebe podaří spustit cizí kód, tak má daleko více lepších možností, než ti dělat MitM. Ano, udělat to v případě nešifrovaného CA certu může, ale daleko efektivnější bude třeba přidat nějaký kód do .profile, .bashrc a podobných souborů nebo ukrást data k nějakému projektu v nešifrovaném $HOME.
Navíc tím, že tady ty certifikáty většinou používáš jenom ty, tak ani nemůže použít MitM na nikoho dalšího (většinou nikdo další nemá tvou CA na testování v důvěryhodných).
15. 2. 2024, 11:03 editováno autorem komentáře
opět je to nesmyslná racionalizace, ty útoky jsou, probíhají a útočníci na to cílí. Útočník může mít nějaké záměry, třeba získat přístup do služeb, kam se přihlašuješ, nechce být viděn a nechce dělat persistentní změny na disku (či v profilu), což se dá snadno detekovat. Ten CA mu dává moc podvrhnout ti skoro jakoukoliv stránku a nabourat komunikaci. Ve spojení s jiným útokem to může být dost fatální.
Spustit kód nemusí být doslova, může zneužít nějakou zranitelnost nějakého nástroje a přes něj si je schopný přečíst nějaká data (např. log4j zranitelnosti), nemusí mít vyloženě možnost si spustit libovolnou binárku.
Čím dál více infiiltrací do nějaké infrastruktury je přes napadené vývojáře a jejich osobní počítače. Někdy ten řetězec je poměrně dlouhý a jednotlivé kroky nemusí dávat smysl.
Mít pro uživatele CA privátní klíč pod svým účtem v čitelné podobě je prostě nebezpečné. Ten CA se instaluje do systémového uložiště a platí pro všechny uživatele, tj. vč. běžících služeb.
Ne opravdu mít pouze CA nestačí a nedává útočníkovi žádnou moc. Potřebuje ještě něco. Útočník buď musí donutit napadaného přijít na jeho server a nebo potřebuje udělat nějakou změnu, která, aby přežila minimálně restart, musí být perzistentní.
A ano čím dál víc infiltrací probíhá pomocí CA, ale je potřeba dodat, že se spíš jedná o firemní CA než nějaké vývojářské CA.