GNU/Linux >> Znalost Linux >  >> Linux

Pochopení Linusova zákona pro bezpečnost open source

V roce 2021 existuje více důvodů, proč lidé milují Linux než kdykoli předtím. V této sérii se podělím o 21 různých důvodů, proč používat Linux. Tento článek pojednává o vlivu Linuxu na bezpečnost softwaru s otevřeným zdrojovým kódem.

Často vychvalovanou předností softwaru s otevřeným zdrojovým kódem je, že jeho kód může zkontrolovat (nebo „auditovat“, jak rádi říkají bezpečnostní profesionálové) kdokoli a kdokoli. Pokud se však skutečně zeptáte mnoha uživatelů s otevřeným zdrojovým kódem, kdy naposledy zkontrolovali kód, můžete dostat odpovědi od prázdného pohledu až po rozpačité mumlání. A kromě toho existuje několik opravdu velkých aplikací s otevřeným zdrojovým kódem, takže může být obtížné efektivně zkontrolovat každý jednotlivý řádek kódu.

Když vyvodíme z těchto trochu nepohodlných pravd, musíte si položit otázku:Když se nikdo na kód nedívá, opravdu záleží na tom, zda je otevřený nebo ne?

Měli byste důvěřovat open source?

V amatérských počítačích máme tendenci dělat banální předpoklad, že open source je „bezpečnější“ než cokoli jiného. Často se nebavíme o tom, co to znamená, jaký je základ srovnání ("bezpečnější" než co?) nebo jak bylo vůbec dosaženo závěru. Je to nebezpečné prohlášení, protože to znamená, že pokud něco nazýváte open source , automaticky a magicky zdědí vylepšené zabezpečení. O tom open source není a ve skutečnosti je to to, proti čemu je open source zabezpečení hodně proti.

Nikdy byste neměli předpokládat, že aplikace je bezpečná, pokud jste její kód osobně neprověřili a neporozuměli mu. Jakmile to uděláte, můžete přiřadit maximální důvěru k té aplikaci. Naprostá důvěra není věc, kterou děláte na počítači; je to něco, co děláte ve své vlastní mysli:důvěřujete softwaru, protože se rozhodnete věřit, že je bezpečný, alespoň dokud někdo nenajde způsob, jak tento software zneužít.

Jste jediná osoba, která může tomuto kódu důvěřovat, takže každý uživatel, který chce tento luxus, musí kód zkontrolovat sám. Být za slovo někoho jiného se nepočítá!

Dokud si tedy sami neprověříte a nepochopíte kódovou základnu, maximální úroveň důvěryhodnosti, kterou můžete aplikaci dát, je spektrum od přibližně vůbec nedůvěryhodnévelmi důvěryhodné . Na to není žádný cheat sheet. Je to osobní volba, kterou musíte udělat sami. Pokud jste od lidí, kterým silně důvěřujete, slyšeli, že aplikace je bezpečná, pak tomuto softwaru možná důvěřujete více než něčemu, pro co jste nedostali žádná důvěryhodná doporučení.

Protože nemůžete auditovat proprietární (neotevřený zdrojový) kód, nemůžete mu nikdy přiřadit maximální důvěryhodnost .

Linusův zákon

Další zdroje pro Linux

  • Cheat pro příkazy Linuxu
  • Cheat sheet pro pokročilé příkazy systému Linux
  • Bezplatný online kurz:Technický přehled RHEL
  • Síťový cheat pro Linux
  • Cheat sheet SELinux
  • Cheat pro běžné příkazy pro Linux
  • Co jsou kontejnery systému Linux?
  • Naše nejnovější články o Linuxu

Realita je taková, že ne každý je programátor a ne každý, kdo je programátor, má čas věnovat se recenzování stovek a stovek řádků kódu. Pokud tedy nechcete kód auditovat sami, musíte se rozhodnout důvěřovat (do určité míry) lidem, kteří dělají auditní kód.

Takže kdo přesně provádí auditní kód?

Linusův zákon tvrdí, že při dostatečném počtu očí jsou všechny brouci mělké , ale ve skutečnosti nevíme, kolik očních bulv „stačí“. Nepodceňujte však počet. Software velmi často recenzuje více lidí, než si dokážete představit. Původní vývojář nebo vývojáři zjevně znají kód, který napsali. Nicméně, open source je často skupinové úsilí, takže čím déle je kód otevřený, tím více vývojářů softwaru jej nakonec uvidí. Vývojář musí zkontrolovat hlavní části kódu projektu, protože se musí naučit kódovou základnu, aby pro něj mohl psát nové funkce.

Open source baliči se také zapojují do mnoha projektů, aby je zpřístupnili distribuci Linuxu. Někdy může být aplikace zabalena téměř bez znalosti kódu, ale často se programátor seznámí s kódem projektu, a to jak proto, že se nechce podepisovat na softwaru, kterému nedůvěřuje, tak proto, že možná bude muset provést úpravy. aby se to správně zkompilovalo. Reportéři chyb a triageři se také někdy seznámí s kódovou základnou, když se snaží vyřešit anomálie od vtípků po velké havárie. Samozřejmě, že někteří reportéři chyb nechtěně odhalují zranitelnost kódu nikoli tím, že by jej sami zkontrolovali, ale tím, že upozornili na něco, co zjevně nefunguje tak, jak bylo zamýšleno. Systémoví správci se často důvěrně seznamují s kódem důležitého softwaru, na který se jejich uživatelé spoléhají. Konečně existují bezpečnostní výzkumníci, kteří se zabývají pouze kódem, aby odhalili potenciální zneužití.

Důvěra a transparentnost

Někteří lidé předpokládají, že protože hlavní software se skládá ze stovek tisíc řádků kódu, je v podstatě nemožné provést audit. Nenechte se zmást tím, kolik kódu je potřeba ke spuštění aplikace. Ve skutečnosti nemusíte číst miliony řádků. Kód je vysoce strukturovaný a zneužitelné chyby jsou zřídkakdy jen jeden řádek skrytý mezi miliony řádků; obvykle se jedná o celé funkce.

Samozřejmě existují výjimky. Někdy je vážná chyba zabezpečení povolena pouze jedním systémovým voláním nebo propojením s jednou chybnou knihovnou. Naštěstí jsou tyto druhy chyb relativně snadno rozpoznatelné díky aktivní roli bezpečnostních výzkumníků a databází zranitelnosti.

Někteří lidé poukazují na bug trackery, jako je webová stránka Common Vulnerabilities and Exposures (CVE), a vyvozují z toho, že je vlastně tak jasné, že open source není bezpečný. Koneckonců, proti spoustě projektů s otevřeným zdrojovým kódem jsou vystaveny stovky bezpečnostních rizik, které mohou všichni vidět. Nenechte se tím zmást. To, že nevidíte chyby v uzavřeném softwaru, neznamená, že tyto chyby neexistují. Ve skutečnosti víme, že to dělají, protože jsou na ně také podány útoky. Rozdíl je v tom, že vše exploity proti open source aplikacím jsou k dispozici vývojářům (a uživatelům), aby je mohli zmírnit. To je část systému, která zvyšuje důvěru v open source, a u proprietárního softwaru to zcela chybí.

Na žádném kódu nemusí být nikdy "dost" očí, ale čím silnější a rozmanitější je komunita kolem kódu, tím větší šance je odhalit a opravit slabiny.

Důvěra a lidé

U open source pravděpodobnost, že si mnoho vývojářů, z nichž každý pracuje na stejném projektu, všimlo něčeho nezabezpečeného ale všichni stejně mlčeli o tom, že chyba je považována za nízkou, protože lidé se zřídka vzájemně dohodnou na spiknutí tímto způsobem. Nedávno jsme viděli, jak nesourodé může být lidské chování při zmírňování COVID-19:

  • Všichni jsme identifikovali chybu (virus).
  • Víme, jak zabránit jejímu šíření (zůstaňte doma).
  • Přesto se virus dál šíří, protože jeden nebo více lidí se odchýlí od plánu zmírňování.

Totéž platí pro chyby v softwaru. Pokud je tam chyba, někdo, kdo si jí všimne, ji odhalí (samozřejmě za předpokladu, že ji někdo uvidí).

U proprietárního softwaru však může být vysoká pravděpodobnost, že si mnoho vývojářů pracujících na projektu všimne něčeho, co není bezpečné, ale stejně mlčí, protože proprietární model spoléhá na výplaty. Pokud se vývojář vyjádří proti chybě, může v nejlepším případě poškodit reputaci softwaru, a tím snížit tržby, nebo v nejhorším případě může být vyhozen z práce. Vývojáři, kteří jsou placeni za tajnou práci na softwaru, nemají tendenci mluvit o jeho nedostatcích. Pokud jste někdy pracovali jako vývojáři, pravděpodobně jste podepsali smlouvu o mlčenlivosti a byli jste poučeni o důležitosti obchodních tajemství a tak dále. Proprietární software nabádá a častěji vynucuje mlčení i přes vážné nedostatky.

Důvěra a software

Nevěřte softwaru, který jste neprověřili.

Pokud musíte důvěřovat softwaru, který jste neprověřili, pak se rozhodněte, že budete důvěřovat kódu, který je vystaven mnoha vývojářům, kteří nezávisle na sobě pravděpodobně budou mluvit o zranitelnosti.

Open source není ze své podstaty bezpečnější než proprietární software, ale systémy, které to opravují, jsou mnohem lépe plánovány, implementovány a personálně zajištěny.


Linux
  1. 10 odlehčených webových prohlížečů s otevřeným zdrojovým kódem pro Linux

  2. Získejte zdrojový kód pro jakýkoli příkaz Linux

  3. Důvod, proč nepoužít chmod -R 777 na interním serveru pro zdrojový kód projektu?

  1. 10 nejlepších Open Source účetního softwaru pro Linux

  2. VSCodium – Open Source kód Visual Studio bez sledovačů

  3. Pixelorama – Open Source Editor pro Pixel Art

  1. 4 open source nástroje pro provoz linuxového serveru

  2. Faucet:Open source řadič SDN pro vysokorychlostní produkční sítě

  3. 5 open source strategických a simulačních her pro Linux