když člověk vidím tails, co vše nějak záplatují a hackují, skoro to vypadá, že Linux desktop není dobře navržen pro bezpečnost - aplikace pod jedním uživatelem si mohou navzájem číst paměť, upravovat procesy, X server dovolí komunikoliv vidět obsah jiných aplikací.
Na serveru je běžné, že každá aplikace běží pod svým účtem a nevidím nikam dál, pokročilé techniky, které používá Windows nebo Mac OS na odstínění aplikací mezi sebou v Linuxu prostě nejsou.
Používáte někdo Tails? Z počátku jsem na to koukal nadšeně, pak jsem dospěl do stádia, že nemůžeme být systém bezpečný, když mu lautr nerozumím a jen hledám jak co vyřešit a obejít.
myslel jsem, že tails je zajímavý, ale vše je takový blackbox, že pokud něco nefunguje, je těžké získat ucelenější informace a problém vyřešit.
Pokud je něco příliš komplikované, je obtížné říct, jestli to je bezpečné nebo nikoliv, mám rád openbsd, všechny informace dostupné v man, všechny balíčky mají make jeden jak druhý, dobrá komunita, snadno se dá debugovat ve zdrojových kódech (lehce získám kód, k aktuálnímu balíčku/systému).
nepomáhá? Řekl bych, že za poslední roky se výrazně zvedly schopnosti MacOS/Windowsu na ochranu, např. sandboxing (u macu u všeho, u Windows pro UWP a k dispozici je api pro ostatní aplikace) výrazně omezuje jak jedna aplikace může číst obsah paměti a souborů jiné aplikaci pod stejným uživatelem, flatpak i firejail jsou takové neomalené pokusy. Na macu spuštěná aplikace ti bez povolení nemůže přistoupit do home složky a zapisovat si co chce, na linuxu ano.
Stejné to je např. s Control Flow Guard u Windows, pro Linux neexistuje žádná alternativa, ASLR a stack guard jsou jen takové začátky.
UAC na Windows je opět poměrně robustní, naproti tomu sudo na linuxu je šílenost (pro desktop), kterákoliv aplikace může poměrně jednoduše pro můj terminál přetížit sudo a odchytit heslo aniž bych něco viděl, protože .bashrc je zapisovatelný čímkoliv a nastavit si alias si mohu jak nic. Nebo kdo používá \sudo? A i to se dá obejít přes podvržení nové cesty do PATH.
Naštěstí linux desktop není cílem útoků a používá ho minimum uživatelů, ale to neznamená, že na to je připravené, právě naopak, není. Viz i důvody proč vznikl Tails a pokusil se odstínit jednotlivé aplikace mezi sebou. Nedá se ani porovnávat počet kritických chyb, protože u Linuxu nejsou hlášeny, nelze hlásit chyby na něco, co tam není.
Linux na servery mám rád, je robustní, rozumím si s auditd i selinux, ale je s tím dost práce pro každou aplikaci než se vše nastaví, ani na Redhat nejsou selinux pravidla dobře připravena na vše, a to je průkopník. Pro desktop to je ale hodně pozadu.
třeba ten flatpak, teoreticky to je super, stejně jako selinux, ale celá slabina je v definici pravidel, spoustu hotových balíčků požaduje oprávnění na filesystem=home (tím dokáže přepsat nastavení, které je v home složce vč. authorized_keys, .bashrc a dalších) nebo třeba devices=all (to má např. Firefox). Balíček si sám definuje pravidla a jejich granualita je zatím velice malá. Další podrobnosti třeba na https://flatkill.org/2020/. Jako cesta dobrá, ale ještě s tím je dost práce.
wayland je také super, ale pak se tam strčí xwayland kvůli zpětné kompatibilitě a jsme zase na začátku, aplikace si mohou vidět obsah okna navzájem, naštěstí pouze pro jiné v xwayland.
Tails má svoje místo, Linux pro desktop dneska není bezpečný a dá dost práce ho zabezpečit. Linux je pořád něco co používám denně už asi 20 let, na serverech mě živí, ale desktop je pořád takový nedodělaný.
A mas jistotu ze Tails v pozadi nezaridila samotna NSA?
https://www.theguardian.com/world/2013/oct/04/tor-attacks-nsa-users-online-anonymity
no právěže nemám, na to jsem narážel v prvním příspěvku. Samotný kód https://gitlab.tails.boum.org/tails/tails je dost rozsáhlý, GPG podpis se tam objeví občas, stejně jako code review, author commitu ve stylu "127.0.0.1" je šílenost pro něco, co o sobě tvrdí, že to je bezpečná distribuce.
Bezpečnost jde od spodu, nemohu tvrdit o něčem, že to je bezpečné, když mám nepořádek uvnitř.
ad ASLR a stackguard jako začátky - no nevím kde to bylo dřív. Co si pamatuju tak jsem si úspěšně hrál s SELinuxem a Solar Designer patchi v době, kdy ještě ani nebylo ve Wintel světě vše na NT jádru ;-) Už v té době stylem že do ~home/.ssh měl přístup jen t_ssh_user.
ad UAC - myslíte tu legraci, která zahltila dotazy uživatele tak, že je naučila povolovat úplně vše automaticky? (a ano, která "izolovala" to, že sice NTFS má už od začátku docela pokročilý systém nastavení práv, ale nikdy ho nikdo nebyl schopen nastavit v defaultu pořádně?)
A když jsme u security - pamatujete na SAS která měla za úkol zajistit, že uživatel vždy ví komu to heslo dává (modulo custom GINA)? To už je dneska taky pryč.
ad UWP - není to už efektivně mrtvá cesta? Určitě žiju v určité bublině, ale i tak neznám nikoho kdo by jakoukoli UWP aplikaci používal (a od pohřbení WIndows Phone tuplem ne).
...Nicméně pořád přes veškeré pokroky je tu taková standardní cesta, outlook/web browser -> ms office/adobe/jiný soft -> privilege escalation -> data v háji, která jak se můžeme přesvědčit v tisku i tlači, tak je využitelná a využívaná pořád stejně ve velkém.
ad Redhat a selinux - bohužel musím souhlasit, po 20 letech to je docela slabota.
Edit (nenechalo mě to editnout) - s tím že do sebe Xwokna vidí jste si jistý? Je to už skoro kilopátek takže se můžu dost plést, ale jestli si pamatuju aspoň trochu dobře, tak je/bylo defaultně že (nejste-li windowmanager) na sebe právě Xwokna neviděj, dokud to už_nevím_kde nepovolíte.
ASLR a stackguard jsou dobré věci, ale sami o sobě tu ochranu neudělají. S Tím selinux se za tu dobu nic podstatné nestalo a pořád to je ve stejném stavu, správci balíčků to ignorují, stejně jako autoři SW.
Ano jsem, xwayland bezpečnost neřeší, stejně jako x server, viz třeba poznámka u archu na https://wiki.archlinux.org/index.php/wayland
"Regarding Security: XWayland is an X Server, so it does not have the security features of Wayland!"
Jinak s ostatními věcmi to vidím stejně, UAC je sice dobrý, ale učí uživatele to odklikávat, co je ale zajímavější je, že ve firmách právo na odkliknutí uživateli nedáváme, tím se elimunuje obrovské množství bezpečnostní problémů, těch 0day zase tolik není, jak to bylo dříve.
UWP nahradil WPF a pořád vypadá živý, spousta aplikací je v něm napsaných a kdoví, jestli ho MS nechá žít nebo nikoliv (člověk nikdy neví).
linux containery nejsou navrženy jako bezpečnostní enkláva, sami o sobě mohu naopak dveře do systému otevřít. Stačí je spustit pod rootem (spousta veřejných obrazů nepodporuje běh pod jiným uživatelem než root, vtipné), mountnout jim chráněné soubory nebo sockety a je problém na světě. Je nutné hlídat aktualizaci userspace prostředí uvnitř containerů. Někdy stačí, když útočník může v containeru spustit vlastní kód a získá tak přístup do sítě, pak může napadat další zařízení (doma např. routery), ve firmách cokoliv, takže nutnost izolovat síť jednotlivých kontainerů a nepoužívat jejich výchozí bridge.
containerd (docker) např. běží pod rootem, mám z takových služeb pak respekt.