Společnost Synopsys 1253 komerční kódové báze a dospěla k závěru, že téměř všechny (99%) zkoumané komerční aplikace obsahují alespoň jednu komponentu s otevřeným zdrojovým kódem, přičemž 70% kódu v prozkoumaných repozitářích je otevřeného. Pro srovnání, v podobné studii z roku 2015 byla podíl otevřeného kódu 36%.
Většinou však použitý cizí otevřený kód není aktualizován a obsahuje potenciální bezpečnostní problémy — ve 91% zkoumaných kódových základech se nacházejí otevřené komponenty, které nebyly aktualizovány více než 5 let, nebo které jsou minimálně dva roky opuštěné a nemají vývojáře. V důsledku toho 75% identifikovaného otevřeného kódu v repozitářích obsahuje neopravitelné známé zranitelnosti, z nichž polovina má vysokou úroveň nebezpečí. Při vzorkování ze roku 2018 byl podíl kódu se zranitelnostmi 60%.
Nejčastější nebezpečnou zranitelností se stala
problém (vzdálené provádění kódu) v knihovně pro Node.js, zranitelné verze se objevily více než 500krát. Nejstarší neopravitelnou zranitelností byla chyba v démonu lpd (), opravená v roce 1999.
Kromě bezpečnosti kódových základen komerčních projektů je také patrné nezodpovědné chování při dodržování podmínek svobodných licencí.
Ve 73% kódových základen byly zjištěny problémy s legalitou používání otevřeného kódu, například nekompatibility licencí (obvykle je GPL-kód zahrnut do komerčních produktů bez zveřejnění odvozeného produktu) nebo použití kódu bez uvedení licence. 93% všech problémů s licencemi se projevuje v síťových a mobilních aplikacích. V hrách, systémech virtuální reality a multimediálních a zábavních programech byla porušení zjištěna v 59% případů.
V rámci výzkumu bylo identifikováno 124 typových otevřených komponentů, které se běžně používají ve všech kódových základech. Nejpopulárnější z nich: jQuery (55%), Bootstrap (40%), Font Awesome (31%), Lodash (30%) a jQuery UI (29%). Z hlediska programovacích jazyků jsou nejpopulárnější JavaScript (používán v 74% projektů), C++ (57%), Shell (54%), C (50%), Python (46%), Java (40%), TypeScript (36%), C# (36%); Perl (30%) a Ruby (25%). Celkový podíl programovacích jazyků činí:
JavaScript (51%), C++ (10%), Java (7%), Python (7%), Ruby (5%), Go (4%), C (4%), PHP (4%), TypeScript (4%), C# (3%), Perl (2%) a Shell (1%).
Zdroj: opennet.ru
