Coverity policzyło luki bezpieczeństwa w Open Source

| Technologia

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.

Coverity luka dziura Open Source Linux Samba glibc PostgreSQL Amanda OpenVPN OpenSSL Gnome KDE Apache FreeBSD bezpieczeństwo