» »

Kako hroščati so odprtokodni programi

Kako hroščati so odprtokodni programi

OSNews - V zadnjem obdobju smo večkrat bili priča raznim kampanjam, kako "preluknjani" naj bi pravzaprav bili odprtokodni programi. Pri Coverityju so se zato odločili za metodo, ki daje otipljivejše in s številkami podkrepljene rezultate. V sodelovanju s Stanfordsko univerzo so tako napisali programje, ki v izvorni kodi izvede statično analizo možnih hroščev (npr. spominski izpusti, prekoračitve, napake pri kazalcih, uporaba že "osvobojenega" dinamično zaseženega pomnilnika in druge možne ranljivosti).

Skozi to sito so spustili 32 odprtokodnih izdelkov in našteli v povprečju 0,43 hrošča na 1000 vrstic kode. Še bolje od tega povprečja so jo odnesli najpopularnejši izdelki. V 3 milijonih vrstic Linuxovega jedra naj bi tako odkrili po enega žužka le na vsakih 3000 vrstic, pri Apachu pa le v vsaki 4000. vrstici. Razlog za zadovoljstvo imate lahko tudi spletni mojstri, ki prisegate na navezo LAMP, kjer so v povprečju odkrili 0,29 napak/kilovrstico. Najslabše jo je odnesla AMANDA (pripomoček za delanje varnostnih kopij prek omrežja), kjer so na vsakih 1000 vrstic odkrili kar 1,237 hrošča, medtem ko je "zmagal" večpredstavnostni predvajalnik XMMS z le 0,051 napake na kilovrstico.

Več o rezultatih in metodologiji lahko izveste od tule, kjer se morate najprej brezplačno registrirati. Žal nikjer ne piše nič o tem, kako so upoštevali komentarje, "dekorativne" prazne vrstice in podobne možne trike za "olepševanje" statistike. Sicer pa se, če tudi sami snujete kakšen odprtokodni projekt, na taisti strani lahko domenite, da podobno analizo naredijo brezplačno tudi za vas.

Sicer najbrž vsi poznamo primerjalno analizo laži, podlih laži in statistike, vseeno pa bi najbrž marsikoga zanimali rezultati podobne analize Microsoftove kode, ki bi jo lahko dal na podlagi kakšnega NDA...

41 komentarjev

christooss ::

Hm zanimive informacije

Me prav zanima kakšna tema se bo razvila :)
Zakaj je nebo modro? Da imamo lahko sladoled Modro Nebo

Looooooka ::

tko ja...primerji xmms z microsoftom.
good one.
Naj grejo drugic na freshmeat in randomly vzamejo 100 programov... bo rezultat presenetljivo horrifying.
Ce gres pa testirat program k ga meljejo skupi ze 10 let pol pa to ni neka statistika.
V tem casu bi ze cel office zdebugal ce bi se kksn(neumnez) odlocu da bo naenkrat koda dostopna vsem pekom.

ghaefb ::

Kdo primerja xmms z mikrosoftom ?
Kje si pa ti to pobral... xmms je dokaj majhna aplikacija, microsoft je pa firma, tvoja primerjava je sele lepa :P

In zakaj bi morali pobirat iz freshmeata programe, a da bi jih pol primerjali z nekimi random windols programi al kaj ? a si to mislu.
Eni ste res smesni.

EDIT: Aja, kul novica, zanimiva staistika ni kaj. (me je troll zgoraj tako zabaval, da sem pozabu kaj sem sploh hotu napisat)
_ghaefb

Zgodovina sprememb…

  • spremenil: ghaefb ()

darkolord ::

V 3 milijonih vrstic Linuxovega jedra naj bi tako odkrili po enega žužka le na vsakih 3000 vrstic

Hmmm, to pomeni, da jih je potemtakem vse skupaj 1000, kar niti ni tako malo...

Meni se sicer tudi zdi, da to razmerje ("hrošči" / število vrstic) ne pove kaj dosti...

carota ::

metalc: za lažjo primerjavo bi bilo bolje, če bi vse rezultate pisal 1 bug na X vrstic kode ali pa X.X buga na 1000 vrstic ne pa malo tako malo drugače.

Lp

balocom ::

Sm odprtokodni projekti so večinoma plod dela v prostem času, Ms pa ne. Pa Ms dela sm os pa serverje, odprtakodaTM pa marsikaj.
V svetu brez googla bi bil najbolj uporabljen ukaz v bash-u ukaz man

BigWhale ::

Hja, treba upostevati tudi to, da en buffer overrun bug se ne pomeni, da je exploitable in da sploh kadarkoli pride do moznosti, da se ga iskoristi.

Jaka83 ::

balocom: Kje to piše, da M$ dela samo OS-e?
BTW: Prvič slišim, da M$ dela serverje, najbrž si mislil Windows XXXX Server različice.

balocom ::

Ups, na office pozabu pa works pa na igrce (ker je pa njihov zaden komad?).
V svetu brez googla bi bil najbolj uporabljen ukaz v bash-u ukaz man

darkolord ::

Tole so skupine izdelkov... Tukaj pa igrice

Zgodovina sprememb…

  • spremenilo: darkolord ()

rovtarček ::

in spet wins vs. linux flame war, pa jst mam očutek da so tle odzad sponzorji.

p.s. se priporočam, za mali denar, oblubim noro flamanje, 3je modi ne bojo mogl sprot brisat :D
Osem tisoč sto sedeminšestdeset rovtarčkov je suvalo kuglfrinkla v rit,
ko so ugotovili, da stvar je zanimiva, so poklicali še Serious Sama
http://img90.imageshack.us/img90/856/rovt0df.jpg

3p ::

Zanimiva statistika, ki pa je seveda precej omejena...
Avtomatiziranje ugotavljanje števila napak seveda ne more vključevati najpogostejšega razreda nepravilnosti: "Program deluje, ne deluje pa kot bi moral (ne naredi, kar bi moral)."
Pa še nečesa ne upošteva. Kaj je bolj kritično: ena napaka v programu dolgem 1000 vrstic ali 10 napak v programu dolgem 10000 vrstic?

driver_x ::

Taka statistika ne pove kaj dosti. Kar se mene tiče, takih napak, kot jih opisuje statistika, sploh ne bi smelo biti. Če lahko napake avtomatizirano poiščejo v okviru raziskave, zakaj tega ne naredijo že razvijalci. Tudi ni vseeno, ali je taka napaka v kodi, ki se kliče enkrat v 1.000.000 primerov ali pa morda že ob zagonu programa.

sverde21 ::

bugi so in bodo... pač programer ne premisli vseh možnosti zlorabe kode...

BTW zakaj ni nikjer kolk bugov ma M$ programje na 1000 vrstic >:D
<?php echo `w`; ?>

rovtarček ::

BTW zakaj ni nikjer kolk bugov ma M$ programje na 1000 vrstic


zakaj kej, dej pošl M$ email da hočeš met kodo, da boš pregledal koliko napak ima :D
Osem tisoč sto sedeminšestdeset rovtarčkov je suvalo kuglfrinkla v rit,
ko so ugotovili, da stvar je zanimiva, so poklicali še Serious Sama
http://img90.imageshack.us/img90/856/rovt0df.jpg

sverde21 ::

lol jst ne morm dobit kode... ampak kakšna firma jo pa lahko dobi....:\
<?php echo `w`; ?>

jlpktnst ::

Točno tako, kaj nam to pomaga, če pa ne moremo primerjat s konkurenco.

rovtarček ::

kodo on winsow pa ne moreš kr tak dobit, mogoč določene dele, pa še te so ble zakonsko izsiljene.
Osem tisoč sto sedeminšestdeset rovtarčkov je suvalo kuglfrinkla v rit,
ko so ugotovili, da stvar je zanimiva, so poklicali še Serious Sama
http://img90.imageshack.us/img90/856/rovt0df.jpg

hanibal ::

- darkolord


M$ je samo distributer večine teh igric.
In ne, khmm izdelovalec, ali kako bi se že temu reklo?
Axis of Evil - M$, SCO, RIAA, MPAA

darkolord ::

Igrice delajo povečini studii, ki pa so v lasti Microsofta

Jaka83 ::

hanibal: A si mislil da Bili sedi cele dneve pred compom in programira vse kar pride iz M$-ja la kaj? :\

No skratka sploh ne vem zakaj ST meša drek tam kjer ga ni treba, itak nikol ne nastane kakšna konstruktivna debata iz M$ VS OpenSource.

CaqKa ::

>>> Hja, treba upostevati tudi to, da en buffer overrun bug se ne pomeni, da je exploitable in da sploh kadarkoli pride do moznosti, da se ga iskoristi.

pa treba upoštevat tudi to da skripta nekaterih napak ni mogla zaznat. in to predvsem onih ta kritičnih ;)

>>> Taka statistika ne pove kaj dosti. Kar se mene tiče, takih napak, kot jih opisuje statistika, sploh ne bi smelo biti. Če lahko napake avtomatizirano poiščejo v okviru raziskave, zakaj tega ne naredijo že razvijalci.

ej da se ne morem bolj strinjat. v kolikor se da neke buge avtomatično poiskat.. wtf jih ne poiščejo sami?

in 1000 bugov v kernelu.. kaj pa oni bugi ko so se skripti izmuznili?
jaz se s temi bugi nebi hvalil da jih je malo. sploh pa ne zato ker so očitno še taki ki se jih da z skripto najt..
kriza.

Daedalus ::

Eni vsaj ne "skrivajo" svojih napak pred celim belim svetom0:) kot to rado počne neko podjetje in so ob tem hvali, kako varno kodo producira...

flejm on...
Man is condemned to be free; because once thrown into the world,
he is responsible for everything he does.
[J.P.Sartre]

Pegaz ::

OpenSource buge vsaj popravi... pri Microsoftu pa vemo, kako to je.;)

64202 ::

> ej da se ne morem bolj strinjat. v kolikor se da neke buge avtomatično poiskat.. wtf jih ne poiščejo sami?

Ni 100% staticnih preverjalnikov, ze zaradi tega ker "100% staticno preverjanje" ni definiran pojem. Torej lahko pozabis na to, da bi nasel kar vse buge, ki bi jih lahko. V vsak tak preverjalnik gre veliko dela in vecinoma iscejo nek zelo specificen razred bugov.
I am NaN, I am a free man!

GupeM ::

Pa kva vam je folk. Če še niste se gre novica za število bigov na število vrstic in ne za to kdo svojo kodo skriva in kdo ne. To kdo kaže svoje napake in kdo ne tukaj sploh ni pomembno. Raje imam plačljiv program pa dela normalno in ne vem koliko bugov ima, kot pa opensource program s 100 bugi na 1000 vrstic. Če mislte da bom zarad tega, ker vem koliko bugov ima nek program uporabljal ta program se motite.

Looooooka ::

opensource vse buge najde,zlorabi...in sele pol jih nekdo popravi.
pr microsoftu mas pa windowsupdate.
ampak itak...enkrat na pet let jim rata nek bug najdt k je clo ulalala nevarn in pac ostane v spominu.
in ce so sli s skriptami pregledvat zadeve to tud pomen da je bugov lahko velik vec ne pa manj.
sploh pa again...primerjat kerga kol od teh programov z microsoftovimi je sala.ze v vrsticah kode pomojem ni primerjave.
in tud ce bi bli bugi not je glih zato closed in ne opensource.
sam se to bi mankal... exploits.forwinblowz.net pa miljardo frocov,ki bi pol po moznosti se veselo visual c++ piratiziral zato da bojo lahko po forumih sprasval kako se skompajla exploit.
to veselje naj majo kr linuxasi pa se se naprej kregajo kaj je narobe s kernelom...na winsih se bomo pa pac kregal ker spil je bl bedn od druzga.

64202 ::

> sploh pa again...primerjat kerga kol od teh programov z microsoftovimi je sala.ze v vrsticah kode pomojem ni primerjave.

Ja, res neverjetno, da MS-ju rata pokurit 30 miljonov vrstic za en crap ass taskbar, notepad, gnil fajl menedzer in nikakav brskalnik z najslabsim security recordom od vsega softvera do zdej.

:P
I am NaN, I am a free man!

Matevžk ::

na winsih se bomo pa pac kregal ker spil je bl bedn od druzga

Aja, to počnete, končno je nekdo odgovoril :D. "Naš" kernel je pa bolj za strežnike in resne delovne postaje :)).

Sicer se mi pa ideja avtomatiziranega iskanja potencialnih bugov res zdi malo čudna ... mar bi še objavili točne lokacije napak, da bi se avtorji softvera lahko kaj naučili iz tega.
lp, Matevžk

darkolord ::

resne delovne postaje

tuki je sicer obratno, ampak okej... ne bomo se kregali 8-)

64202 ::

> Sicer se mi pa ideja avtomatiziranega iskanja potencialnih bugov res zdi malo čudna ... mar bi še objavili točne lokacije napak, da bi se avtorji softvera lahko kaj naučili iz tega.

Saj so dobili, v KDE svn recimo je slo kar nekaj bugfixov "found by coverity".
I am NaN, I am a free man!

minmax ::

fantje... ta orodja za samodejno odkrivanje nepravilnosti so zaenkrat še vedno precej visoka znanost, in gre vanje ogromno energije. odprtokodnih dobrih še ni. za tole raziskavo je moralo ministrstvo za domovinsko varnost plačat firmi, da je pognala svoj zelo drag izdelek skozi in povedala rezultate

kdor pozna teoretične osnove račualništva ve, da ni mogoče niti ugotoviti ali se program ustavi na vseh vhodih, kaj šele da bi se ugotovilo ali deluje pravilno (poenostavljeno povedano). zato je napisat program, ki kaj koristnega pove o nekem drugem programu, kar velik dosežek.

so pa taki avtomatizirani testi OGROMEN korak naprej k večji zanesljivosti in varnosti programske opreme. pustite vnemar svete vojne in se raje navdušujte nad dejstvom, da je to dokaz, da taka orodja dejansko delujejo in nam omogočajo vsaj za odtenek bolj varno ustvarjanje programja.

in ja... ustvarjalci načeloma popravijo vse tako najdene buge zelo hitro - ker navadno jih ni težko. samba ima že vse tako najdene odpravljene...

tudi sama metrika pri tem ni kaj bistveno pomembna, ker so mnogo resnejši bugi drugje kot v takih 'trivialnih' napakah...

HT33L ::

its not a bug its a feature! :D

gumby ::

a so ta program pognali tud na svojem source-u? >:D:D
my brain hurts

SXR ::

Hmm, nisem povsem prepričan ali članek hoče povedat kako hroščati so odprtokodni programi ali zaprtokodni (beri Microsoft). Slednjih niso testirali (kako že?) žal, ker jih pač ne morejo (razen proizvajalca samega) in to je dejstvo. O tem, da je generičen testni program praktično nemogoče napisat nima smisla zgubljat besed. Poleg tega statistika pri bugih nima nobenega smisla (razen v univerzah kjer radi počnejo take in podobne stvari). Zakaj? Zato ker je predvsem važno kakšne narave je program in kakšen hrošče vsebuje, 50 ali 100 nima veze važen in kritičen je lahko samo eden v pravem, nesrečnem segmentu kode.
You can talk rationaly about kernel design, the issue of free-ness is emotional.

Matevžk ::

... in tega kritičnega hrošča je skoraj vedno nemogoče zaznati avtomatsko (ali pa, če zaznamo ga, je nemogoče avtomatsko zaznati njegovo visoko prioriteto; izgubi se v kupu drugih podobnih, a nekritičnih).
Res je.
Članek (novica) pa pove ravno toliko kot statistika. :D
lp, Matevžk

MrStein ::

CaqKa, 0,3 buge na 1000 vrstic po moje sploh ni slabo.
Je pa brez veze o tem debatirat, če nimamo nič pametnega za primerjat.

Tak, kot če bi ugibali, ali je fgzžk 5 velik volumen ali mali, ne da bi vedeli, koliko je sploh en fgzžk.
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!

minmax ::

caqua: Linux kernel ima VELIKO več bugov kot 1000... toliko so jih zgolj našli s tem omejenim samodejnim programom. ta cifra čisto nič ne pove. Edina korist od nje je to, da so ali bodo teh 1000 bugov popravili in potem boš vedel, da ima 1000 bugov manj. ne moreš primerjat niti z drugimi programi niti ugotavljat kaj to pomeni za kvaliteto programa. vse kar te lahko tolaži je, da jih je ali jih bo kmalu 1000 manj... nihče seveda ni povedal, da tudi MS uporablja orodja za samodejno odkrivanje bugov in vlaga ogromno denarja v te tehnologije (MS Research je v špici ...)

konkretno pri sambi so že vse tako najdene odpravili

matevzek: ... bistvo je v tem, da je cilj odpraviti _vse_ samodejno zaznane hrosce... in se sploh ne ukvarjati s tem ali so varnostne luknje, ali zgolj morijo uporabnika... cilj je vse odpraviti. navadno so ti avtomatsko najdeni bugi precej trivialni (npr. manjka kak check) in jih je zato tudi trivialno odpraviti. sem in tja zahtevajo tudi arhitekturne spremembe - npr. spremembe API ali ABI... takrat je sicer malo večja jeba, a takih primerov je malo.

Matevžk ::

Ja, minmax, razumem, finta je le, da je lahko 99 % od teh 1000 hroščev v "can't happen" scenariju (in to ne v takem, ki se potem po pomoti vseeno zgodi, ampak resno mislim; morda je v 99 % predvideno, zakaj je to tako). Po drugi strani pa, kot rečeno, 50 % resnih (security ali usability) hroščev skoraj gotovo ni med temi 1000 ali kolikorkoliže na ta način odkritih ;). (Sej če js prov razumem, se strinjava, sam mal debatirava, da nisva kr čist tih. :D)
lp, Matevžk

OwcA ::

Otroška radovednost - gonilo napredka.

64202 ::

I am NaN, I am a free man!


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Še ena ranljivost v Linux jedru

Oddelek: Novice / Varnost
284244 (3185) fiction
»

Prvi operacijski sistem brez programskih hroščev

Oddelek: Novice / Operacijski sistemi
494963 (2520) techfreak :)
»

Mozilla odvisna od Googla? (strani: 1 2 )

Oddelek: Novice / Brskalniki
6610031 (7598) poweroff
»

Kako hroščati so odprtokodni programi

Oddelek: Novice / Varnost
415840 (3481) 64202
»

Microsoft trdi, da je varnost Linuxa mit (strani: 1 2 3 )

Oddelek: Novice / Ostala programska oprema
12910811 (7572) _n00b_

Več podobnih tem