Vrijeme je za testiranje jezika. Koji su programski jezici najsigurniji i koji imaju udubljenja u oklopu? Izvješće iz WhiteSourcea ispitalo je sigurnosne ranjivosti u nekim od najpopularnijih programskih jezika i promatralo trendove visokih sigurnosnih ranjivosti tijekom godina.

Svi imamo omiljeni programski jezik iz nekog razloga. Ili vam se sviđa sintaksa, alati s kojima je možete koristiti ili ste jednostavno naviknuti na to. Da li sigurnost jezika dolazi u obzir kad ovo razmislite?

Izvještaj sa WhiteSource razmatra sigurnosne ranjivosti u popularnim programskim jezicima.

Koji su njihovi vrhunski odabiri za najsigurniji programski jezik?

Jezične ranjivosti
Pogledajmo popis iz izvješća i podijelimo ga.

Ukupno prijavljeni ranjivosti otvorenog koda po jeziku:

C (46,9%)
PHP (16.7%)
Java (11.4%)
JavaScript (10,2%)
Python (5,45%)
C ++ (5,23%)
Rubin (4,25%)
WhiteSource izvukao svoje podatke iz svoje baze podataka koja uključuje više izvora, uključujući “National Vulnerability Database, sigurnosne napomene, GitHub problem trackeri, i popularni open source problem problem trackeri”.

Sigurnosni profili
Dok vas na početku možda šokira veliki broj koji se hvalio C-om , brojevi ne govore cijelu priču. C je stariji jezik i iza mnogih velikih projekata. (C je oko sine 1972! Vidljiv je uspon i pad i opet se uzdiže od zvonastih dna.) Sve u svemu, kada ovo uzmete u obzir, to je još uvijek siguran jezik.

Jezici radne stanice poput Jave koriste veliki postotak programskog stanovništva, što objašnjava njegovu prilično visoku poziciju na popisu. Visoke sigurnosne ranjivosti za Javu opale su od 2015. Jedna od najvećih sigurnosnih problema Jave predstavljena je problemima deserizacije. Problemi s deseralizacijom obično su jedinstveni za Javu i nisu pronađeni u PHP-u, Ruby-u ili Pythonu.

JavaScript se često rangira kao najpopularniji programski jezik broj jedan, stoga imajte to na umu pri razmatranju porasta njegovih ranjivosti. Prema istraživanju WhiteSourcea, „61% JS ranjivosti je putovanje putom i kripto, 70% tih paketa se jedva koristi, održava ili podržava, a manje od 2000 preuzimanja u 2018.“. Jedan od razloga zašto ljudi izbjegavaju preuzimanje tih paketa je zahvaljujući popularnosti automatiziranih alata.

Kada je riječ o PHP-u , sigurnosne ranjivosti su prilično dosljedne. Međutim, ima problema s SQL Injection (CWE-89) ranjivostima. Ovo stavlja veliki trag u PHP oklop. U 2017. i 2018. ranjivosti SQL Injection bile su visoke. U posljednje vrijeme PHP je sve manje popularan. Ne znamo kakva je njegova budućnost; bilo tko imati bilo koji predviđanja?

Sada se Pythonovo vrijeme hvali. U prosjeku, ima najnižu razinu visokih sigurnosnih propusta u posljednjih 5 godina. U 2018. godini, sigurnosne ranjivosti jezika su se smanjile i općenito se smanjuju od 2015. godine.

U izvješću se dalje objašnjava da su automatizirani alati postali bolji u pronalaženju ranjivosti u komponentama otvorenog koda i to je jedan od velikih razloga zašto se taj broj povećava. U stvari, “postotak kritičnih ranjivosti se smanjuje u većini jezika koje smo istraživali, isključujući JavaScript i PHP .”

Pitanje koji je jezik “najsigurniji” je teško pitanje bez iskrenog, konačnog odgovora. Ne postoji jedna vrsta sigurnosti i svaki jezik ima svoje slučajeve upotrebe.