Coverity policzyło luki bezpieczeństwa w Open Source
Na zlecenie amerykańskiego Departamentu Bezpieczeństwa Wewnętrznego (DHS) przeprowadzono badania dotyczące liczby luk bezpieczeństwa w kodzie popularnych opensource’owych programów. Specjaliści przyjrzeli się m.in. Sambie, PHP, Perlowi czy Amandzie. Z badań wynika, że w tego typu oprogramowaniu można znaleźć średnio 1 błąd bezpieczeństwa na 1000 linii kodu.
Od czasu, gdy DHS rozpoczął swój projekt poprawiania luk w programach typu Open Source, naprawiono 7826 takich dziur, czyli jedną co dwie godziny.
Departament w marcu 2006 roku zapłacił firmie Coverity 300 000 dolarów za sprawdzenie kodu 180 opensource’owych programów, z których wiele jest używanych przez agendy amerykańskiego rządu.
Przyjrzyjmy się zatem, jak sprawowały się najpopularniejsze z tych programów.
W Sambie znaleziono 236 błędów w 450 000 linii. Tak więc wypada ona znacznie lepiej, niż przecięty opensource’owy projekt. Z tych 236 błędów poprawiono 228.
Bardzo dobrze wypada też Linux. W jądrze 2.6 odkryto 0,127 błędu na 1000 linii. Jądro to składa się z 3 milionów 639 tysięcy 322 linii. Kolejne badania dowiodły, że w ciągu ostatnich dwóch lat developerzy Linuksa usunęli 452 błędy w jądrze, 48 jest potwierdzonych, ale jeszcze niezałatanych, a kolejnych 413 błędów czeka na potwierdzenie i łaty.
Z kolei we FreeBSD znaleziono 1 błąd na 2615 linii kodu, jednak dotychczas twórcy tego systemu nie poprawili żadnego z 605 niedociągnięć.
Serwer Apache składa się ze 135 916 linii, a liczba błędów wynosi 0,14 na 1000 linii. Dotychczas poprawiono 3 błędy, potwierdzono istnienie 7, które jeszcze nie zostały załatane, a 12 dalszych czeka na potwierdzenie i łaty.
Bardzo dobrym rezultatem może poszczycić się system bazodanowy PostgreSQL. Wśród 909 148 linii częstotliwość występowania błędów wynosi 0,041 na 1000 linii. Dotychczas załatano 53 luki znalezione przez Coverity, czyli wszystkie, których istnienie potwierdzono. Na weryfikację i łaty czeka 37 dziur.
Jednak najlepszy wynik osiągnął jeden z najczęściej używanych przez developerów programów, biblioteka glibc. W 588 931 liniach kodu wykryto jedynie 83 błędy, które zostały załatane na bieżąco. Teraz w glibc nie istnieje żaden znany błąd. Podobnie zresztą jak w Amandzie (99 073 linie) i courier-maildir (82 229 linii).
Coverity zbadało też graficzne interfejsy użytkownika.
W KDE w 4 712 273 liniach kodu poprawiono 1554 błędy, zweryfikowano 25, a na potwierdzenie czeka jeszcze 65. Z kolei Gnome w 430 809 liniach poprawiło 357 błędów, potwierdzono istnienie 5, a 214 czeka na weryfikację.
W popularnym OpenVPN znaleziono tylko 1 błąd (na 69 223 linie), ale nie został on jeszcze poprawiony. Z kolei OpenSSL składa się z 221 194 linii kodu. Dotychczas poprawiono 24 luki, 1 potwierdzono, a 24 czekają na weryfikację.
Coverity nie chciał natomiast ujawnić wyników testowania produktów o zamkniętym kodzie. Firma na zlecenie swoich klientów sprawdziła 400 takich produktów. Nasi klienci nie byliby zadowoleni, gdybyśmy ujawnili liczbę błędów w ich kodzie – stwierdzili przedstawiciele Coverity.
Komentarze (7)
mikroos, 9 stycznia 2008, 15:22
FreeBSD bardziej dziurawy od Linuksa? Prawdę mówiąc mimo, iż jestem fanem Pingwina, jestem zaskoczony. Pozytywnie rzecz jasna
jajos, 9 stycznia 2008, 16:57
Cześć, może ja czegoś nie doczytałem, jednak jest napisane ze jajko 2.6 ma 0,33 błędu a FreeBSD 1 na 2615 linii kodu. Więc linux ma mniej dziur..
mikroos, 9 stycznia 2008, 17:21
1/2615 = 0,382/1000
Czyli FreeBSD ma ich trzykrotnie więcej, co zresztą napisałem w poprzednim poście (tylko od drugiej strony, tzn. pisząc, że FreeBSD jest bardziej dziurawy) Choć oczywiście pozostaje pytanie, na ile poważne są to dziury, ale tutaj odpowiedzieć nie potrafię.
trasz, 12 stycznia 2008, 11:47
Ze statystykami FreeBSD jest ten problem, ze, dlugo zanim Coverity zaczelo skanowac caly swiat open source, FreeBSD postawilo sobie wlasny serwer z ich oprogramowaniem. Na publicznym http://scan.coverity.com nikt z developerow FreeBSD nie odznaczal bledow poprawionych albo uznanych za falszywe pozytywy, dlatego statystyki wygladaja tak, jak wygladaja. Ludzie z Coverity wiedza o tym problemie ("The Scan statistics for FreeBSD have not been pulling in the numbers from that work, though it has been on my to-do list to fix that for some time") i obiecali poprawic: http://scan.coverity.com/, wpis z 11 stycznia 2008.
Wiecej informacji: http://www.informationweek.com/blog/main/archives/2008/01/oops_look_at_th.html
mikroos, 12 stycznia 2008, 13:44
Dzięki za informacje.
waldi888231200, 15 stycznia 2008, 23:16
No to teraz pojawią się wirusy na pingwina i całą resztę open. 8)
mikroos, 15 stycznia 2008, 23:19
Ach, cudowny i niezastąpiony waldi, który jak zawsze wie najlepiej to forum byłoby tak dziwacznie rozsądne gdyby nie Twoje uwagi