75 % komercialnih aplikacij vključuje zastarelo odprtokodno kodo z ranljivostmi

Podjetje Synopsys analizirali 1253 komercialnih baz kode in ugotovili, da so skoraj vse (99 %) pregledanih komercialnih aplikacij vključevale vsaj eno odprtokodno komponento in da je bilo 70 % kode v pregledanih repozitorijih odprtokodne. Za primerjavo, v podobni študiji leta 2015 je bil delež odprte kode 36-odstoten.

Vendar pa v večini primerov uporabljena odprtokodna koda tretje osebe ni posodobljena in vsebuje morebitne varnostne težave – 91 % pregledanih kodnih baz ima odprte komponente, ki niso bile posodobljene več kot 5 let ali so bile v opuščeni obliki že dolgo vsaj dve leti in jih ne vzdržujejo razvijalci. Posledično 75 % odprtokodne kode, identificirane v repozitorijih, vsebuje nepopravljene znane ranljivosti, od katerih jih ima polovica visoko stopnjo nevarnosti. V vzorcu 2018 je bil delež kode z ranljivostmi 60 %.

Najpogostejša nevarna ranljivost je bila
problem CVE-2018-16487 (oddaljeno izvajanje kode) v knjižnici lodash za Node.js, katerega ranljive različice so bile odkrite več kot 500-krat. Najstarejša nepopravljena ranljivost je bila težava v demonu lpd (CVE-1999-0061), revidirano leta 1999.

Poleg varnosti v kodnih bazah komercialnih projektov je prisoten tudi malomaren odnos do spoštovanja pogojev brezplačnih licenc.
V 73 % baz kode so bile odkrite težave z zakonitostjo uporabe odprtokodnih kod, na primer nezdružljive licence (običajno je koda GPL vključena v komercialne izdelke, ne da bi odprli izpeljan izdelek) ali uporaba kode brez navedbe licence. 93 % vseh težav z licenco se pojavi v spletnih in mobilnih aplikacijah. Pri igrah, sistemih navidezne resničnosti, multimedijskih in zabavnih programih so bile kršitve opažene v 59 % primerov.

Skupaj je študija opredelila 124 tipičnih odprtih komponent, ki se pogosto uporabljajo v vseh kodnih bazah. Najbolj priljubljeni so: jQuery (55 %), Bootstrap (40 %), Font Awesome (31 %), Lodash (30 %) in jQuery UI (29 %). Med programskimi jeziki so najbolj priljubljeni JavaScript (uporabljen v 74 % projektov), ​​C++ (57 %), Shell (54 %), C (50 %), Python (46 %), Java (40 %), TypeScript (36 %), C# (36 %); Perl (30 %) in Ruby (25 %). Skupni delež programskih jezikov je:
JavaScript (51 %), C++ (10 %), Java (7 %), Python (7 %), Ruby (5 %), Go (4 %), C (4 %), PHP (4 %), TypeScript ( 4 %), C# (3 %), Perl (2 %) in Shell (1 %).

Vir: opennet.ru

Dodaj komentar