Stacki ületäitmisel enimkasutatud Java-koodilõik sisaldab viga

Java

Aastal avaldatud uuring Oktoober 2018 ajakirjas Empirical Software Engineering akadeemikud Sebastian Baltes ja Stephan Diehl selgus, et koodilõik pakuti vastus küsimusele Virnade ülevool 2010. aasta septembris, autor Andreas Lundblad, Java arendaja Palantiris, see on kogukonna platvormil kõige enam kasutatav Java-koodijupp.

Kuid eelmise nädala postituses, Lundblad selgitas, et kood oli vigane ja see teisendas baitide arvu valesti inimesele loetavas vormingus. Kõnealune kood on kogunud üle tuhande soovituse ja on kaasatud ka paljudesse projektidesse ning seda leidub GitHubi hoidlates umbes 7 tuhat korda.

Tähelepanuväärne on see kasutajad viga ei leidnud kes kasutasid seda koodi oma projektides, vaid vihje algne autor.

Vaadeldav kood teisendas baidisuuruse loetavas vormis, näiteks 110592 teisendati "110.6 kB" või "108.0 KiB". Kood pakuti välja varem pakutud nõuande variandina, optimeeritud logaritmide abil, milles väärtus määrati tsükli algväärtuse jagamisel «10 18, 10 15, 10 12, 10 19, 10 6, 10 3 ja 10 0 " , isegi kui jagaja on suurem kui algne väärtus baitides.

Optimeeritud versiooni ebatäpsete arvutuste tõttu (pika väärtuse ülevool), väga suurte arvude töötlemise tulemus (eksabaiti) ei vastanud tegelikkusele.

Lundblad selgitas, et kood sisaldas tühist teisendusviga, mille tulemuseks olid faili suuruse hinnangud vaid veidi ebatäpsed. Sellest hoolimata oleks see hinnanguliselt olnud palju hullem.

Kood võis sisaldada turvanõrkust, näiteks. Kui see nii oleks, oleks kõigi haavatavate rakenduste parandamine võtnud kuid või aastaid, mis paljastaks kasutajaid rünnakutele.

Samuti üritas probleemile tähelepanu juhtida nõuande autor kasutada näiteid allikale viitamata ja litsentsi täpsustamata.

„Koostööseanssidel, kus osalesid mitmed inimkooderid, hindasime iga kooditüki käsitsi turvanõrkuste osas vastavalt CWE (Common Weakness Enumeration) juhistele.

Vähemalt ühes GitHubi hostitud projektis kasutatud 72,483 69 skannitud koodijupist leidsime kokku 29 haavatavat koodijuppi, mis on liigitatud XNUMX tüüpi. Paljud uuritud koodijuppidest pole veel fikseeritud, "ütlesid teadlased oma aruandes.

69 haavatavat koodijuppi leitud Stack Overflow lehelt taaskasutatud kokku 2859 GitHubi projektis. Stack Overflow jagatud koodijuppide kvaliteedi parandamiseks on nad välja töötanud brauserilaiendi, mis võimaldab Stack Overflow'i kasutajatel otsida koodilõikudest haavatavusi, kui nad need platvormile alla laadivad.

Vaatamata teadlaste hoiatustele kopeerivad arendajad siiski Stack Overflow koodi oma projektidesse ilma analüüsi tegemata.

Ashkan Sami, IT dotsent, tehnika ja infotehnoloogia Iraani Shirazi ülikoolis

"Uuringuga üritati uurida, kuidas vigane kood migreeritakse Stack Overflow'st GitHubi. Põhimõtteliselt oleme püüdnud näidata seda, et Stack Overflow koodi kasutamine ilma seda lähemalt uurimata võib põhjustada rakenduste haavatavusi, ”ütles Sami. Uuringus viidatakse ka akadeemilisele artiklile 2017. aastast.

Selle artikli kohaselt kasutati Stacki ületäitmisel postitatud 1161 ebaturvalist koodijuppi 1.3 miljonis Google Plays saadaval olevas Android-rakenduses.

Lisaks varasemale uuringule ei teadnud 46% arendajatest, kes kasutasid StackOverflow koodi autorit täpsustamata, 75%, et koodil on CC BY-SA litsents ja 67% ei teadnud, et see viitab omistamise vajadusele.

Teiste uuringute andmete kohaselt on näidiskoodi kasutamine seotud mitte ainult koodis olevate vigade riskiga, vaid ka haavatavustega.

Näiteks pärast 72483 69 C ++ koodinäidiste analüüsimist StackOverflow'is tuvastasid teadlased 0.09 valimis (mis on XNUMX%) tõsised haavatavused, mis on kantud kõige populaarsemate soovituste loendisse.

allikas: https://programming.guide


Jäta oma kommentaar

Sinu e-postiaadressi ei avaldata. Kohustuslikud väljad on tähistatud *

*

*

  1. Andmete eest vastutab: Miguel Ángel Gatón
  2. Andmete eesmärk: Rämpsposti kontrollimine, kommentaaride haldamine.
  3. Seadustamine: teie nõusolek
  4. Andmete edastamine: andmeid ei edastata kolmandatele isikutele, välja arvatud juriidilise kohustuse alusel.
  5. Andmete salvestamine: andmebaas, mida haldab Occentus Networks (EL)
  6. Õigused: igal ajal saate oma teavet piirata, taastada ja kustutada.