Hledat
Přihlásit se
  • Věda a technika
  • Herní doupě
  • Tipy pro PC
  • IT Byznys
  • Mobily
  • Počítače
  • Počítače
  • Témata
  • Poradna
  • Diskuzní fórum
  • Video
  • Bazar
  • Blogy
  • MĚŘENÍ RYCHLOSTI
  • RSS
  • Facebook Twitter Google+ YouTube
  • Hardware
  • Software
  • Počítače
  • Notebooky
  • Služby na webu
  • Apple
  • Google
  • Microsoft
  • Seznam
  • Tiskové zprávy
Další témata
  • Týden Živě
  • Zprávy Živě
  • Testy
  • Pitvy
Všechna videa
X

Doporučit článek

Vaše jméno:

Váš e-mail:

E-mail adresáta:

Komentář:

kontrolní kód

Odeslat

Blogy Živě » Linux zblízka

Linux zblízka

 

Deset pilířů bezpečnosti v Linuxu

25. 8. 2010, uzivatel2

V dnešním příspěvku shrnou téma “bezpečnost v Linuxu”. Pochopitelně se nejedná o vyčerpávající výčet dostupných řešení, ale jde o základní nastínění dostupných technologií a principů chování. Velká část následujícího textu pochopitelně platí i pro jiné operační systémy.

1. Balíčkovací systém : Za hlavní bezpečnostní prvek Linuxu považuji způsob distribuce softwaru. Hlavními výhodami této formy distribuce je:

  • Při výhradním použivání balíčkovacího systému a důvěryhodných repozitářů se nesetkáme s malwarem. Vzhledem k podepisování balíčků nehrozí podstrčení vadného balíčku.
  • Balíčkovací systém provádí aktualizace veškerého instalovaného softwaru. (Aktualizuje nejen samotnou distribuci a další produkty distributora.)
  • Balíčkovací systém ošetřuje a řeší závislosti. Bez něj by bylo nanejvýš obtížné v složitých situacích vybrat kompatibilní verze sdílených knihoven a zajistit celkovou konzistenci systému.
  • Balíčky zaručují i správné odinstalování softwaru. V systému nezůstává balast po odinstalovaném softwaru a nezdařených instalacích.

2. Systém práv : Základní principy práv v Linuxu jsou:

  • Existuje právě jeden superuživatel zvaný root.
  • Některé činnosti může provádět pouze root.
  • Uživatelé mohou být členy skupiny, práva lze přidělit skupině.
  • Uživatel má jen nezbytné minimum práv. K běžné práci není žádoucí ani potřebné mít root práva. Root uživatel se správně využívá jen k administraci systému a to převážně jen prostřednictvím dočasného zvyšování práv (příkaz sudo). Jde o důsledek UNIXového přístupu k programování (modulární, spousta malých spolupracujících jednoúčelových částí, přidělování pouze nezbytného minima práv a prostředků).

Kromě toho Linux, linuxové souborové systémy a aplikace často podporují i jiné modely bezpečnosti jako např. access contorl list (ACL).

Nepostradatelnou roli hrají speciální souborová práva :

  • právo spouštět soubory : Toto právo podstatně zvyšuje bezpečnost. K vykonání škodlivého kódu totiž nestačí pouhé jeho spuštění, před spuštěním musí škodlivý kód navíc získat právo spuštění.
  • Setuid bit : Pomocí tohoto práva může jeden uživatel umožnit spouštět pod svým účtem určitý program jinému uživateli. Příklady smysluplného použití setuid bitu jsou implementace sudo, utilita pro sdílení dat mezi účty…

3. Různé utility a limity : Některé procesy potřebují pro svůj bezvadný chod zajistit dostatečný přístup ke zdrojům. K tomu lze využít především:

  • nice/renice : Nejčastějším prostředkem nastavování výpočetní priority uživatelských procesů je příkaz nice a související renice, který umožňuje nastavit prioritu od maxima (hodnota -20) do minima (20). Špatným použitím příkazu renice nelze celkově přetížit systém, protože klíčové procesy (především jaderná vlákna) mají jiné třídy plánovače a podstatně vyšší prioritu nedosažitelnou pomocí nice.
  • kill : Tento příkaz posílá signál procesu. Takto lze mimo jiné problémový proces požádat o ukončení nebo jej nechat rovnou jádrem ukončit.
  • ionice : Narozdíl od nice příkaz ionice ovlivňuje prioritu v oblasti vstupně výstupních operací.
  • mount : Souborové systémy lze připojovat s mnoha omezeními. Díky tomu můžeme např. zakázat spouštění programů z flash disků a dalších vyměnitelných médií, stanovit měkké a tvrdé diskové kvóty, připojit disk jen pro čtení…
  • různé diagnostické nástroje : Tyto utility umožňují včas odhalit problém a včas předcházet incidentu.
  • systémové volání setrlimit/getrlimit : Jádro kontroluje u procesů dodržování různých limitů jako maximální čás běhu programu, maximální velikost zásobníku, maximální počet otevřených souborů… Tyto limity lze zjistit s pomocí cat /proc/self/limits a nastavit voláním setrlimit. Pozor: Podpora pro méně obvyklé limity závisí na verzi jádra.

4. Antiviry apod. : Využití antivirů na linuxových desktopech je velmi neobvyklé, protože neexistují reálné hrozby. Antiviry jsou převážně nasazovány na linuxové servery, kde filtrují hrozby pro operační systém Windows. Například linuxový mailový server bude obsahovat nějaký antivir a antispamový software (např. SpamAssassine), které filtrují příchozí poštu.

Linux se výrazně liší od Windows. Problematika specificky linuxových hrozeb je skutečně vážně diskutována; např. na třetí stránce odkazovaného popularizačního pdf od Tomasze Kojma (ClamAV) se upozorňuje na možnost šíření linuxových virů pomocí hlavičkových souborů. (Jinou implementaci zneužití hlavičkových souborů jsem naznačil v minulém příspěvku.) Žádný výrobce však na základě těchto postřehů neimplementoval účinné heuristiky, které by proaktivně vystupovali proti hrozbám nultého dne.

Otázka, zda existují skutečné antiviry pro Linux, je proto sporná. “Linuxové antiviry” jsou de facto porty antivirů pro Windows. Software zaměřený na hrozby směřující proti Windows pravděpodobně neposkytne dostatečnou ochranu Linuxového prostředí proti (hypotetickým) budoucím závažným hrozbám určených pro Linux. Navíc dodavatelé těchto řešení zpravidla nedisponují ani dostatkem odborníků na systémy Unixového typu.

5. Netfilter/Iptable : Linux obsahuje vestavěný firewall/router. Backend Netfilter je integrován přímo do síťového subsystému jádra.

6. Bezpečnostní moduly : Jedná se například o jaderné moduly SeLinux, AppArmour atd. Tento software začlení na různá místa v jádře “háčky”, které vyvolávají různé kontroly splňování nadefinovaných podmínek. Screenshot z nastavování SeLinuxu vidíme výše. Tyto moduly umožňují neuvěřitelně precisovat bezpečnostní politiku. Je však třeba si nejprve uvědomit :

  • zda takto mocný nástroj vůbec potřebujete,
  • že definice správné politiky není jednoduchá a špatná definice snadno nadělá víc škody než užitku,
  • že bezpečnostní moduly snižují výkon jádra.

7. randomizace paměti : Je veřejným tajemstvím, že naprostá většina exploitů nějak využívá přetečení/podtečení datových struktur. Například přetečení zásobníku (Stack buffer overflow) a return-to-libc attacks mohou klidně vést k vykonání podsunutého kódu (tzv. shellcode). Prostředky obrany jsou:

  • Volba jazyka a prostředí (např. Java) kontrolujícího rozsahy polí, délky řetězců apod. nebo použití speciálních pomůcek při vývoji softwaru (např. stackguard).
  • Nastavení práv k jednotlivým úsekům paměti. Toto řešení vyžaduje hardwarovou podporu a obecně není v plném rozsahu dostupné na všech architekturách.
  • Randomizace uspořádání paměti (Address space layout randomization)

Randomizace paměti (ASLR) sice chyby v programu neodstraní, ale znemožní autoru malwaru dopředu odhadnout adresy v paměti a rovnou implementovat skok na shellkód. ASLR je tak velmi účinnou ochranou před vykonání podstrčeného kódu.

Částečně související příspěvek týkající se umístění v paměti: Vytvoření dynamické knihovny v Linuxu

8. prostředky autorizace, autentizace a šifrování : Různé distribuce obsahují různé prostředky. Základem však jsou:

  • autorizační framework Linux Pluggable Authentication Modules (PAM),
  • podpora asymetrycké kryptografie v uživatelském prostoru (např. GPG) a jádře,
  • navazující desktopové klíčenky (např. démon GNOME Keyring).

9. izolace a virtualizace : Virtualizace je bezpečnostní technologie minimálně z těchto důvodů :

  • V případě incidentu minimalizuje jeho důsledky, brání “probublávání” chyby celým systémem. (Samotná modulární architektura Linuxu s minimálními závislostmi mezi subsystémy brání propagaci chyby jen částečně.)
  • Snižuje a minimalizuje riziko chybné administrace a různých softwarových konfliktů. Například vaše (špatné) poinstalační nastavení nového serveru můžete kolidovat s nastavením již dříve instalavaného jiného serveru. Instalace do virtualizovaných strojů tyto dva servery preventivně úplně izoluje.

Linux podporuje nejrůznější virtualizační technologie včetně system-level virtualizací. Samotná novější jádra disponují jmennými prostory (namespace), což je analogie jailu ze systému FreeBSD nebo zón ze systému Solaris. Za zmínku stojí i starý unixový příkaz chroot, který umožňuje de facto virtualizovat souborový systém.

10. Standardy a dokumentace : Bez standardů by různí distributoři různé detaily implementovali libovolně. Tím by se snižovala kompatibilita distribucí a při přenášení aplikací mezi distribucemi by se nečekaně objevovali různé chyby. Navíc fixovaná rozhraní API a distribuce zdrojového kódu eliminují důsledky rozdílů ve výsledné ABI; podrobnosti viz začátek příspěvku Linuxové ovladače.

Štítky: Bezpečnost, Přehledy, Principy Linuxu, První krůčky v Linuxu


Publikováno v rubrice Nezařazené. Reakce v diskuzi lze sledovat prostřednictvím RSS 2.0. Odkazování není povoleno.

« Linux na kancelářských počítačích
Může virus napadat zdrojové kódy? »
 

Komentáře v diskuzi

1.  Anonymous(193.179.131.xxx)   25. 8. 2010, 16:01

11. Zkušenost uživatelů - Linux používají především, uživatelé, kteří znají rizika a jsou schopni se jim bránit.
12. Nízká penetrace systému u uživatelů - Linux má pouze 1% desktopových PC. Je tedy nerentabilní tvořit pro něj malware za účelem zisku.

2.  VfB(81.19.41.xxx)   25. 8. 2010, 19:39

myslím si že pokud je cílem malware například stát se zombie pro DDoS útoky nebo použít mail server pro spamování okolí tak je mnohem výhodnější použít server (kde je linux mnohem rozšířenější než windows) než desktop, který může majitel kdykoliv vypnout

jinak musím pochválit parádní článek, jen tak dál

3.  Hulvat(92.52.2.xxx)   25. 8. 2010, 23:20

Anonymous:
11. suhlasim
12. casty argument neznalcov. Ako si sam poznamenal, linux ma 1% DESKTOPOVYCH PC. Ale co sa tyka serverov, ma celkom vysoku penetraciu. Tam je ovela rentabilnejsie vytvaranie virusov a malware za ucelom zisku ako pri nejakej stanici jozka mrkvicku v hornej dolnej.

ad clanok) zatial asi jeden z najlepsich tohto blogu. ;)

4.  Anonymous(193.179.131.xxx)   26. 8. 2010, 07:51

Hulvat [3] Server je mnohem těžší napadnout. A to díky:
- jsou v průměru lépe zabezpečeny, aktualizovány a spravovány než standardní desktop.
- Nelze využít spolupráce uživatele. Je nutno využít přímé díry v systému, což je i na “děravých” Windows docela problém, protože moc takovýchto děr neexistuje.
- Je mnohem profitabilnější zapojit do botnetu desktop nic netušícího uživatele, než se pokoušet ovládnou server o čemž se admin velice brzo dozví.

5.  Vykook(86.49.7.xxx)   28. 8. 2010, 15:18

“Existuje právě jeden superuživatel zvaný root.” Toto neni tak uplne pravda. Superuzivatelu muzes mit v podstate libovolne mnoho. Dva uzivatele muzou mit totiz stejne UID.

6.  uzivatel2(ověřeno)   28. 8. 2010, 21:34

re 5 : Existuje právě jeden superuživatel, což je uživatel s UID 0. Účet tohoto superuživatele si můžete v příslušných konfiguračních souborech různě pojmenovat a nastavit. (Vícenásobné pojmenování root uživatele nemá valný smysl.) Ve všech ohledech se však pořád jedná jen o jednoho uživatele.

Přidat komentář

*
Opište prosím text z obrázku.
Anti-Spam Image


Aktuální články a bleskovky

Naprogramujte si vlastního robota nebo MP3 přehrávač
Naprogramujte si vlastního robota nebo MP3 přehrávač
Ad ACTA: rozhodne až zákon
Ad ACTA: rozhodne až zákon
Týden Živě 162: Když nateče do počítače voda
Týden Živě 162: Když nateče do počítače voda
Nejlepší virtuální tiskárna pro Windows
Nejlepší virtuální tiskárna pro Windows



Linux zblízka využívá WordPress MU a běží na Blog.zive.cz. Vytvořte si svůj vlastní blog
Sledování přes RSS: články a komentáře


  • Seznam odkazů

    • Kontakt na autora blogu
    • Moje články pro LE
    • Různé přílohy k blogu
    • Stránky autora blogu
  • Poslední příspěvky

    • Kontroverze okolo Křišťálové lupy
    • Deset největších open source inovací
    • Nová “daň” za software
    • Má smysl kupovat TV tuner?
    • Zvýšila se v Linuxu spotřeba?
    • Porušování GPL licence ve světě Androidu
    • Je bezplatnost Linuxu výhodou?
    • Potřebujeme nová uživatelská rozhraní?
    • Podvod s hlasováním v přímém přenosu
    • Facebook není zadarmo
    • Nápad na startup
    • Co hrají linuxáci?
    • Nová cloudová platforma OpenShift
    • Kvalitní linuxové antiviry pro desktop ve skutečnosti neexistují
    • Lze věřit anketám na internetu?
  • Administrace

    • Přihlásit se

1202_infobox.png

Časopis Computer

  • Zrychlete Windows
  • Test 25 notebookových brašen
  • Ultrabook Toshiba Portégé 
  • Pitva Blu-ray mechaniky
  • Radíme s koupí Wi-Fi routeru

Partnerská sekce pro IT profesionály:
Microsoft TechNet/MSDN


Video Živě

Týden Živě 162. - 5. února 2012
Zprávy Živě - 4. února 2012
Ultrabook Toshiba Portege Z830
3D Blu-ray rekordér LG BDS590

další videa »






Mladá Fronta a.s. Mladá Fronta a.s.
Tiráž | Autoři | Připomínky | Odběr novinek | RSS | Textová verze
Copyright 2000–2012 Mladá fronta a.s. | Inzerce: onlinesales@mf.cz | Kontakt na redakci | Návštěvnost měří NetMonitor