Firma Synopsys 1253 komercyjnych baz kodu i doszła do wniosku, że prawie wszystkie (99%) rozważane aplikacje komercyjne zawierają przynajmniej jeden komponent z otwartym kodem źródłowym, a 70% kodu w rozważanych repozytoriach jest otwarte. Dla porównania, w podobnym badaniu z 2015 roku udział otwartego kodu wynosił 36%.
Jednak w większości przypadków wykorzystany zewnętrzny kod otwarty nie jest aktualizowany i zawiera potencjalne problemy z bezpieczeństwem - w 91% badanych baz kodów znajdują się otwarte komponenty, które nie były aktualizowane przez ponad 5 lat lub przez co najmniej dwa lata są w porzuconym stanie i nie są wspierane przez programistów. W rezultacie w 75% wykrytego w repozytoriach otwartego kodu obecne są niezałatane znane podatności, z których połowa ma wysoki poziom niebezpieczeństwa. W próbie z 2018 roku udział kodu z podatnościami wynosił 60%.
Najczęściej występującą niebezpieczną podatnością stała się
problem (zdalne wykonywanie kodu) w bibliotece dla Node.js, wersje wrażliwe na tę podatność wystąpiły ponad 500 razy. Najstarszą niezałataną podatnością była kwestia w demonie lpd (), naprawiona w 1999 roku.
Oprócz bezpieczeństwa w bazach kodu projektów komercyjnych dostrzega się również lekceważące podejście do przestrzegania warunków licencji Open Source.
W 73% baz kodów znaleziono problemy z legalnością używania otwartego kodu, na przykład niezgodności licencyjne (zwykle kod GPL jest włączany do komercyjnych produktów bez udostępnienia produktu pochodnego) lub używanie kodu bez wskazania licencji. 93% wszystkich problemów z licencjami występuje w aplikacjach sieciowych i mobilnych. W grach, systemach wirtualnej rzeczywistości, programach multimedialnych i rozrywkowych naruszenia zauważono w 59% przypadków.
W trakcie badania wyodrębniono 124 typowe komponenty otwarte, które są zwykle używane we wszystkich bazach kodów. Najbardziej popularne z nich to: jQuery (55%), Bootstrap (40%), Font Awesome (31%), Lodash (30%) i jQuery UI (29%). W zakresie języków programowania najpopularniejsze są JavaScript (używany w 74% projektów), C++ (57%), Shell (54%), C (50%), Python (46%), Java (40%), TypeScript (36%), C# (36%); Perl (30%) i Ruby (25%). Całkowity udział języków programowania wynosi:
JavaScript (51%), C++ (10%), Java (7%), Python (7%), Ruby (5%), Go (4%), C (4%), PHP (4%), TypeScript (4%), C# (3%), Perl (2%) oraz Shell (1%).
Źródło: opennet.ru
