GNU/Linux >> Znalost Linux >  >> Linux

Linux nebo Windows – bezpečnostní problém

Uvedu zde některé špatné názory:

1) Linux je bezpečnější díky menšímu tržnímu podílu.

Ne na trhu serverů, kde jsou veřejné stroje celý den napadány roboty, viry, hackery atd.:

http://cs.wikipedia.org/wiki/Usage_share_of_operating_systems#Servers

2) Windows je v posledních verzích bezpečnější.

Přinejmenším na úrovni jádra vidíte více zpráv CVE o zneužívání vzdáleného spouštění a eskalaci oprávnění ve Windows, více lokálních útoků DoS na víceuživatelské prostředí v Linuxu a také najdete kritičtější CVE ve Windows (měl jsem spoustu statistických rozpisů z databáze CVE, ale nemohu najít příspěvek, který jsem napsal před měsíci, takže mě to frustruje! Google mi nepomáhá ho najít...).

Jak můžete vidět, Server 2008 má mnohem vyšší vážený průměr závažnosti CVE:

http://www.cvedetails.com/top-50-product-cvssscore-distribution.php (navíc všechny zranitelnosti Linuxu za 1,2 dne vs. posledních 5 let vývoje v roce 2008!)

Samozřejmě, že používáte něco jako Ubuntu, které je dodáváno se spoustou softwaru a předkonfigurací navíc, jsou podle rozmaru softwaru, který na něm běží.

Můj názor na toto téma:Linux je postaven na mnoha unixových konceptech, 40 let vývoje softwaru a lidí, kteří tyto krabice ubíjejí k smrti, je zabezpečený hlavně Unixovou zkouškou ohněm, a to nesmírně pomohlo, získali jsme spoustu lekcí a přímo je aplikovali na Linux.

Má to něco společného s open source povahou Linuxu?

Hodně to souvisí s tím, přinejmenším s rychlostí, kterou vyšší hlasitost CVE jsou řešeny. To také umožňuje najít a opravit spoustu menších problémů (hlavně kvůli oblíbenosti , protože open-source bez popularity znamená málo očí na kódu a malý zájem o opravu).

Jeho základní architektura (a rozdíl od Windows)?

To, že jsou postaveny na prostředí pro více uživatelů, hodně pomáhá, tyto systémy byly postaveny tak, aby na nich byly spousty lidí najednou a žádný uživatel by neměl mít možnost přerušit druhého.


Platné důvody:

  1. Menší uživatelská základna v Linuxu činí z desktopového Linuxu méně atraktivní cíl. Pokud pouze 0,1 % počítačů používá Ubuntu 10.04 a váš trojský kůň funguje pouze na této konkrétní verzi Linuxu, pravděpodobně se nikdy nechytne. Pokud váš trojský kůň funguje pouze na Windows XP, stále můžete zaútočit na ~25 % trhu.
  2. Často (ne vždy) je uživatelská základna informovanější a více zaměřená na bezpečnost. To znamená, že operační systémy jako Ubuntu učinily Linux přístupnějším a můžete najít lidi, kteří na něm dělají hloupé věci.

Navíc z poněkud diskutabilních důvodů byste mohli namítnout, že Linux má často bezpečnější design (to už nemusí být tak pravda, protože ostatní operační systémy dohánějí).

  1. Dobré oddělení oprávnění a řízení přístupu pomocí su /sudo , které ve starších verzích Windows ve skutečnosti neexistují.
  2. Řekněme, že potřebujete nějaký nový software (editor obrázků, LaTeX nebo Python atd.), který není ve vašem operačním systému předinstalovaný. V Linuxu v 99 % případů používáte správce balíčků k automatickému stahování a instalaci kryptograficky podepsaného softwaru ověřeného z řetězce důvěry. Automaticky to použije také pro aktualizace (takže je snadné udržovat veškerý software v celém systému aktuální a rychle opravovat bezpečnostní díry). Ve Windows, většinu času, když potřebuji nainstalovat něco nového, musím to vyhledat na webu, stáhnout a nainstalovat z nějaké náhodné http webové stránky, která by mohla načíst jejich software spyware/bloatware/trojské koně nebo bych mohl být předmětem k útoku MITM a místo toho si stáhněte/nainstalujte nějaký virus a každá aplikace má svůj vlastní (jiný) instalátor/automatický aktualizátor. (To znamená, že lidé příliš důvěřují PPA, náhodným skriptům na internetu nebo přidávání rozšíření prohlížeče jako hlavní bezpečnostní zranitelnosti Linuxu/Windows).
  3. ssh . Vaše standardní připojení k jinému vzdálenému počítači prostřednictvím ssh je velmi pohodlné a výkonné, což je z hlediska zabezpečení výrazně lepší než jakékoli vzdálené ověřování systému Windows. Kdykoli se připojíte k počítači ssh, kryptograficky zkontrolujete, zda se hostitelský klíč druhého počítače nezměnil oproti dříve používanému klíči; můžete použít svůj soukromý klíč ssh k reakci na token výzvy, aniž byste umožnili odposlechům používat opakované útoky nebo keyloggerům, aby viděli vaše heslo. Poté je veškerý provoz mezi těmito dvěma stroji zašifrován; navíc je triviální nastavit jej na linuxovém boxu.
  4. Různé bezplatné nástroje pro zabezpečení Linuxu:SELinux, AppArmor, wireshark, iptables (nebo obal jako ufw), ssh, cron, top (opravdu htop), fail2ban, tripwire, GPG, OpenSSL, md5sum/sha256sum atd. Je také velmi snadné nastavit skripty, skenovat soubor protokolu a e-mailem upozornění a dělat vše z příkazového řádku atd. Je pravda, že většina (všechny?) z nich má pravděpodobně ekvivalenty pro Windows, ale obvykle buď nejsou zdarma, nebo se mění hodně mezi verzemi. Nastavení cronjob je v podstatě automatizace nějakého úkolu je v podstatě stejné jako za posledních 20 let; zatímco nastavení automatické úlohy ve Windows bude mít dramatické změny mezi operačními systémy.

Neplatné důvody:

  1. Linusův zákon:„při dostatečném pozorování jsou všechny chyby mělké“, proto je open source bezpečnější než uzavřený software. Tento argument nepovažuji za nijak zvlášť přesvědčivý, protože bylo zjištěno, že v open-source věcech (např. Debian OpenSSL) již měsíce/roky existují významné bezpečnostní díry. Je to ještě horší, když útočníci mohou číst zdroj, hledat chyby (nebo se dokonce snažit zavést skryté chyby do kódové základny). Nevěřím však, že software s blízkými zdroji je ve své podstatě bezpečnější – lidé stále dělají chyby a můžete snadno někomu zaplatit, aby vnesl díry do proprietární kódové základny (a s menšími očními bulvy si toho možná nebudete moci všimnout); Je zřejmé, že v softwaru blízkého zdroje často existují bezpečnostní chyby a zadní vrátka a jsou také napadeny. (Tohle považuji víceméně za remízu.)

Mám podezření, že situace ohledně virů/malwaru v Linuxu je v podstatě taková, jaká by byla „normální“, a že situace ohledně virů/malwaru ve Windows je statistický šílenec, spíše „Dragon King“ než Černá labuť.

Windows má neobvykle barokní sadu API, Win32, nativní API NT, dál a dál, a byly mezi nimi nějaké problémy, například Win32 je v podstatě ASCII rozhraní, zatímco NT nativní je Unicode. To alespoň usnadnilo malware. Jako příklad rokokového detailu přemýšlejte o názvech souborů magických zařízení, AUX, CON, LP, které fungují v libovolném adresáři.

Nativní API systému Windows nebylo nikdy ve skutečnosti zdokumentováno a tento nedostatek dokumentace však plyne i do jiných věcí, jako například:jaká sada přípon názvů souborů je pro spustitelné soubory? Proč název souboru určuje, zda je soubor spustitelný nebo ne? Nešířil se červ NIMDA například nějakým problémem se soubory ".eml". Nikdo nevěděl, že soubory .eml byly v té době spustitelné.

Windows nemá žádnou tradici oddělování privilegií, ve skutečnosti má tradici jediného uživatele root. Spousta aplikací to stále předpokládá. Windows nemá žádnou tradici oddělování dat od spustitelných souborů. Dám vám makra aplikace Word vložená do souboru .doc jako příklad neoddělených dat a pokynů, které v minulosti způsobovaly virové problémy.

Linux má přinejmenším tradice opačné ke všem výše uvedeným bodům:mírně efektivní diskreční řízení přístupu, dostatečně jednoduché na to, aby bylo možné jej používat každý den, a přesto dostatečně komplexní, aby udrželo tradiční viry souborového typu na uzdě. Rozhraní systémového volání je jen mírně komplikované, a protože zdrojový kód je volně dostupný, existuje více zdrojů dokumentace. Spustitelné soubory obvykle žijí v adresářích "bin" a data žijí v jiném. Každý spustitelný soubor má svůj vlastní konfigurační soubor, spíše než sdílení velkého starého registru. Datové soubory žijí v adresářích pro jednotlivé uživatele a téměř nikdy neobsahují druh všemocných maker, jaké obsahují datové soubory aplikace Word atd.

Také "linux" ve skutečnosti neexistuje jako "Windows". Existují stovky distribucí, z nichž každá přizpůsobuje téměř každý aspekt detailů nízké úrovně. Různé verze kompilátorů, různá linuxová jádra, některé plně modulární, některé bez modulů. To platí prakticky pro všechny softwarové aspekty systému, od jádra po e-mailové klienty. Zatímco uživatelé "Windows" většinou používají e-mailové klienty Outlook, uživatelé Linuxu používají řadu stovek různých klientů, každý v desítkách verzí. Neexistuje žádná uživatelská základna pro žádnou danou verzi jakéhokoli daného softwaru:uživatelská základna není jen rozbitá, ale také rozbitá. Díky tomu je mnohem těžší najít zranitelnost na vhodném počtu hostitelů nebo napsat exploit, který by fungoval na dostatečně velkém počtu instancí softwaru.


Linux
  1. Můj příběh o Linuxu:Proč seznamovat lidi s Raspberry Pi

  2. problém s backspace v linuxovém souboru

  3. BCRYPT – Proč jej distribuce Linuxu nepoužívají ve výchozím nastavení?

  1. Zvládněte příkaz Linux ls

  2. Zabezpečení Linuxu:8 dalších ovládacích prvků uzamčení systému

  3. 13 kurzů zabezpečení Linuxu

  1. Vyhledejte příkaz v Linuxu

  2. Sledovat, jak dlouho trvá příkaz v UNIX/LINUX?

  3. Jaký je nejrychlejší způsob spojení dvou nebo více souborů v Linuxu?