Nebezpečný open-source

MyEgo.cz

home foto blogy mywindows.cz kontakt

Nebezpečný open-source

Business 05.04.05

Někteří lidé v souvislostí s open-source softwarem argumentují, že je bezpečnější. Nemyslím si to. To, že vystavíte zdrojové kódy na internetu (kde si je kdokoliv může stáhnout) bude znamenat, že zkoumání slabých míst ve vašem software je mnohem snazší než u closed-source produktů. Zastánce open-source komunity zde sice ihned namítne, že zájemce si reportovanou či jím objevenou chybu může sám opravit, protože má k dispozici zdrojové kódy, ale to není ona podstata problému, to je demagogie.

Reportovaný problém

Bezpečnostní problém open-source aplikace, který je veřejně reportovaný hackerem, bezpečnostním konzultantem či vývojářem (sám jsem reportů podal několik, zejména na PunBB a NucleusCMS, ale vždy vývojáři, nikdy veřejně) se ve velice krátké době objeví na webech jako je třeba securitytracker.com. Vezměme si třeba příklad tohoto reportu zneužití PunBB ve verzi 1.2.3. Na první pohled tento report vypadá jako bezvadná věc, nicméně, opak je pravdou. Ještě před tímto reportem je možné, že u desítek či stovek fór byla daná chyba zneužita, odcizena data, a až potom chyba reportována, a i poté, co je chyba reportována, naleznete na internetu stovky PunBB fór, která nejsou ve verzi 1.2.4, která tuto chybu opravuje. Stačí si udělat malý google-search a můžete se stát "hackerem", zvládne to i malé dítě.

Reportovaná chyba tak významně přispěje k rizikovosti používání tohoto open-source software, a pokud neodebíráte nějaký security-bulletin, či nesledujete denně stránky všech aplikací, které provozujete, jste velice snadno napadnutelní.

Skrytý problém

Říká se, že v každém programu je alespoň jedna chyba. Otevřené zdrojové kódy ovšem komukoliv, kdo umí jen trošku programovat, umožňují hledat a nalézat chyby ve stávajících aplikacích, a tyto zneužívat ve svůj prospěch, aniž jsou povinni tyto chyby komukoliv oznamovat. Je dobrým zvykem špičkových programátorů, že tyto chyby reportují nejdříve tvůrci aplikace, a dají mu čas na jejich odstranění, nicméně, i po jejich odstranění zase uživatelé systému narážejí na již zmíněný paradox "Reportovaného problému" a praktickou nemožnost včasného upgrade všech instalací napadnutelného systému.

Aplikace s uzavřeným kódem, oproti tomu, je napadnutelná řádově méně snadno, útočník nemá k dispozici zdrojové kódy, a musí postupovat spíše velice pomalou a nespolehlivou metodou pokus-a-omyl než jednoduchým prozkoumáním zdrojových kódů.

Proč je closed-source software lepší?

Jediným, velice teoretickým, plusem open-source software je fakt, že může být psán "lépe" než software, který je closed-source, protože špičkový programátor počítá s tím, že zdrojové kódy jsou k dispozici, kdežto closed-source programátor se může spolehnout na to, že jeho zdroják jen tak někdo neuvidí.

Toto je ale skutečně jen teorie, v praxi člověk spíše narazí spíše na to, že open-source software, zvláště ten v GNU GPL licenci, je psán narychlo, bez řádného testování, což většinou u closed-source komerčního software nemůže projít. Testování je potom až veřejné, udělá se prostě nový release, na fóru GNU GPL software se zjistí, co nefunguje, tak se to opraví, a udělá se opět nový release a tak pořád dokola.

GNU GPL je zdarma, ale za kvalitu je většinou nutné platit. Vím to i ze svého vývoje, takový BLOG:CMS, poskytovaný právě v GNU GPL licenci, je pro mne zábava. Naopak, F-ART:CMS, to je business. Pokud vím, že je v BLOG:CMS nyní stará verze PunBB (kterou dělá Rickard Anderson a je součástí BLOG:CMS), která je napadnutelná, je mi to vcelku jedno, je na uživatelích, aby si stáhli novou verzi PunBB . Jenže většina lidí to neudělá, a raději si počká na nový release BLOG:CMS, který toto bude obsahovat.

Nicméně, bezpečnostně to již může být pozdě.

Oproti tomu, komerční F-ART:CMS, ten je o zodpovědnosti a zárukách. Veškeré problémy jsou automaticky ihned řešeny, a klientovi je automaticky a zdarma proveden upgrade systému. A v tom je asi hlavní a typický rozdíl mezi open-source a closed-source software. Open-source produkt je často jen zábava, může to být mimořádně rozsáhlý a fuknčně dokonalý produkt, ale je bez garancí a záruk, zato closed-source (F-ART:CMS) je komerční produkt, a s ním je automaticky spojen business model a garance.


Komentáře

  1. 1 pest 05.04.05, 03:04:34
    FB

    s chybami je to samozřejme pravda, ale mít možnost si něco v programu upravit je velice příjemná záležitost. Ale je fakt, že tu mám jediný program do kterého hrabu :)

  2. 2 Mlog 05.04.05, 04:04:01
    FB

    Já to vidím na Mozille.
    Za bezpečnostní chybu se platí kolem 500USD a to není zrovna málo, takže pro zkušeného programátora je skoro zábava prolézat zdrojáky ;)

  3. 3 Ondřej Kubečka 05.04.05, 05:04:05
    FB

    Překvapuje mě, že se s tím setkávám i u vás, člověka v oboru poučeného. Totiž základní nedorozumění: OSS s GPL nebo jinou licencí neznamená nutně zdarma, stejně jako uzavřený kód není vždy komerční. OSS pouze znamená, že k aplikaci uživatel zároveň dostává i zdrojový kód, ať už mu byla licence udělena zdarma či za peníze. Existuje na to celkem profláknutý příměr, co znamená tzv. free software: totiž "free as a speech, not free as a glass of beer". V češtině se tedy obvykle hovoří o svobodném software.

    Vámi načrtnuté scénáře ohledně pro komerční/zdarma software tak namnoze mohou platit, leč nemusí být nutně přenositelné na oblast aplikací s uzavřeným a otevřeným kódem.

    Na závěr: mít kód není špatná věc, už jsem na to narazil, že se člověk může obsloužit sám a nemusí čekat, až se někdo uráčí se s jeho drobností zabývat. Zejména proti uzavřeným aplikacím velkých nadnárodních společností nezanedbatelná výhoda. ;)

  4. 4 Radek Hulán 05.04.05, 05:04:26
    FB

    [3] zmatek v tom máte Vy, já nikde v článku netvrdím, že OSS musí být zdarma.. Příště je lepší pozorněji číst, a méně se hádat ;-)

  5. 5 Ondřej Kubečka 05.04.05, 06:04:17
    FB

    [4]
    Tak to se omlouvám, to jsem jenom špatně pochopil, ale na druhou stranu mám dojem, že např. věty "GNU GPL je zdarma, ale za kvalitu je nutné platit." (3. oddíl, 3. odstavec, 1. věta) a "Oproti tomu, komerční F-ART:CMS" (3. oddíl, 5. odstavec, 1. věta) v daném kontextu k určitému nepochopení přinejmenším svádí.

    Hádat jsem se nechtěl. OSS má samozřejmě, jako každé jiné řešení své výhody i nevýhody. A jestliže se o něm mluví výhradně jako o bezpečném (ne-li samospasitelném) řešení, hrozí, že jeho uživatelé podlehnou falešnému pocitu bezpečí, což je skoro to nejhorší. Na druhou stranu, samozřejmě stejně falešný dojem mohou získat po přečtení marketingové brožury komerčního řešení a mají stejně tak zaděláno na malér.

  6. 6 Pavel F. 05.04.05, 07:04:02
    FB

    Z celého článku vidím jen problém, jak upozornit uživatele o nové verzi. Čím dál více programů a utilitek na mém compu používá updatovací systém, kdy při spuštění (nebo za nějaký časový interval) se dotáže serveru na nejnovější verzi. Méně komfortní verze jen nabídne URL na stažení nejnovější verze, komfortní verze rovnou stáhne diff patch a opatchuje aplikaci.
    Jinak podle Vaší teorie, pokud většina GPL aplikací je šmejd, tak by se Linux na serverech mohl akorát tak zahrabat a všude by chytří admini jen nasazovali closed-systémy.

  7. 7 Radek Hulán 05.04.05, 07:04:18
    FB

    [6] Linux je především zdarma, což Win2k3 server není.. A jádro Linuxu je rozhodně dobře vyladěno, nicméně, podívej se na Apache, máme verzi 2.0.53, či PHP a MySQL jsou na desátých "patches", updatů je moc, ale zde se o ně starají profíci, takže se jich nebezpečí tolik netýká. Prostě to musí sledovat, a pokud je něco vydáno, spustí znovu skript a překompilují to a pak jen apachectl restart..

    Software pro masovou "veřejnost" by takto ale fungovat nemohl, a třeba posun Firefoxu během dvou měsíců z 1.0 preview na 1.0, 1.0.1 a 1.0.2 je hodně špatně pro lidi, protože na updates kašlou...

  8. 8 Pachollini 06.04.05, 12:04:15
    FB

    To jsem blázen, já myslel, že F-ART CMS je stejně jako BLOG CMS založený na Nucleusu, který je uvolněný pod GNU GPL licencí, takže F-ART CMS musí být také open source, nebo ne?

  9. 9 Radek Hulán 06.04.05, 01:04:12
    FB

    [8] jádro ano, ale cokoliv jiného kolem ne, pokud jsem já jediným autorem, mohu si stanovit jakoukoliv licenci JÁ chci..

  10. 10 Pachollini 06.04.05, 11:04:27
    FB

    Nejsem právník ani odborník na licence, ale GNU GPL jsem vždy chápal tak, že když na takto licencovaném SW založím svůj SW, musím ho také uvolnit pod GNU GPL, což platí i pro moduly (a naopak: pokud můj systém obsahuje GNU GPL moduly, musí být také uvolněn pod touto licencí).
    Viz GNU GPL FAQ:
    If I add a module to a GPL-covered program, do I have to use the GPL as the license for my module?
    The GPL says that the whole combined program has to be released under the GPL. So your module has to be available for use under the GPL.

    But you can give additional permission for the use of your code. You can, if you wish, release your program under a license which is more lax than the GPL but compatible with the GPL. The license list page gives a partial list of GPL-compatible licenses. http://www.gnu.org/licenses/gpl-faq.html#GPLModuleLicense

    Nebo také http://www.gnu.org/licenses/gpl-faq.html#GPLInProprietarySystem
    a http://www.gnu.org/licenses/gpl-faq.html#MereAggregation: Combining two modules means connecting them together so that they form a single larger program. If either part is covered by the GPL, the whole combination must also be released under the GPL--if you can't, or won't, do that, you may not combine them.

  11. 11 David Jaša 07.04.05, 11:04:13
    FB

    [6]
    [7]

    Updaty jsou problém téměř všude. Naštěstí těch pár online počítačů, co spravuju, je Ubuntu Warty (stable) a tam jednou za čas updatuju celou distribuci.

    Mimochodem zrovna Firefox by měl kontrolovat, jestli už není dostupná nová verze, ne?

  12. 12 Void 07.04.05, 07:04:13
    FB

    S nazorem p.Hulana se nemuzu ztotoznit. Ano uznavam, ze je mnohem jednodussi hledat chybu v otevrenem kodu, ale na chybu se prijde rychle a na patch se neceka dlouho. Kdyz to srovnam s drzosti Microsoftu, tak se mi chce brecet.

    Nemluvim z role nejakeho zaryteho linuxaka apod. Jde mi o to, ze Linux, BSD, ci Solaris 10 jsou na tom z hlediska bezpecnosti podstatne lepe, nez vetsina zavrenych reseni operacnich systemu.

    Navic kdyz mame k dispozici nastroje jako Nessus (http://www.nessus.org ), ktere skutecne zjisti, co se serverem deje a kde je nutne updatovat, tak ani neni nutne zoufale projizdet vsechny bugtracky a sledovat, co se deje.

    Doted jsem mluvil o serverech. V pripade desktopu je stejne tak potesujici, ze system, na kterem pracuji je otevreny zmenam a vylepsenim. Jsem soudny a umim si vybrat, co si nainstaluji, jak to nakongiguruji a jak to pobezi. A stejne tak pada volba i na nastroje, ktere zvolim. U takove Opery verim, ze je kvalitni a bezpecna a pouziji ji i v pripade, ze je closed-source. V pripade sshd je tomu jinak a chci videt, co se vlastne deje.

    Nejen hackeri umi programovat, i admini ;]

    // OT: Omlouvam se, ze jsem opomel diakritiku, zvyku z irc se spatne"zbavuje". Zapracuji na sobe ;]

  13. 13 Zrzan 29.12.06, 02:12:53
    FB

    [1] Hmm a kolik uživatelů open source programů asi ve skutečnosti zvládne úpravu chyb ve zdrojovém kódu?Bezpečnost volně šiřitelných programů je jen iluze, kterou se nám někdo snaží podstrčit.Na internetu se nesmí nikomu věřit!!!.