El fragment de codi Java més utilitzat en Stack Overflow conté un error

Java

Un estudi publicat en octubre de 2018 a la revista Empirical Programari Engineering pels acadèmics Sebastian Baltes i Stephan Diehl revelar que un fragment de codi proporcionat en resposta a una pregunta d' Stack Overflow al setembre de 2010 per Andreas Lundblad, Desenvolupador de Java en Palantir, és el fragment de codi Java més utilitzat en la plataforma de la comunitat.

No obstant això, en una publicació la setmana passada, Lundblad va explicar que el codi era defectuós i que s'estava convertint incorrectament la quantitat de bytes en formats llegibles per humans. El codi en qüestió ha acumulat més de mil recomanacions i també s'ha inclòs en molts projectes i es troba en dipòsits a GitHub aproximadament 7 mil vegades.

És de destacar que l'error no va ser trobat pels usuaris que van utilitzar aquest codi en els seus projectes, sinó per l'autor original de l'consell.

El codi considerat convertir la mida de l'octet en forma llegible, per exemple 110592 convertit a 110.6 kB o 108.0 KiB. El codi es va proposar com una variant de l'consell proposat anteriorment, optimitzat utilitzant logaritmes, en què el valor es va determinar dividint el valor inicial en un cicle per «10 18 anys, 10 15, 10 12, 10 19, 10 6, 10 3 i 10 0 " , Fins mentre que el divisor és més gran que el valor original en bytes.

A causa de càlculs inexactes en la versió optimitzada (Desbordament de la valor llarg), el resultat de l'processament de nombres molt grans (Exabytes) no es corresponia amb la realitat.

Lundblad va explicar que el codi contenia un error de conversió trivial que només donava com a resultat estimacions de mida del fitxer lleugerament inexactes. Dit això, s'estima que hauria estat molt pitjor que això.

El codi podria haver contingut una vulnerabilitat de seguretat, Per exemple. Si aquest fos el cas, hauria portat mesos o anys reparar totes les aplicacions vulnerables, el que hauria exposat als usuaris a atacs.

L'autor de l'consell també va tractar de cridar l'atenció sobre el problema d'utilitzar exemples sense referència a la font i sense especificar una llicència.

«En les sessions de col·laboració que van involucrar a múltiples codificadors humans, avaluem manualment les vulnerabilitats de seguretat de cada fragment de codi d'acord amb les instruccions de CWE (Enumeració de Debilitat Comú).

Dels 72,483 fragments de codi examinats utilitzats en al menys un projecte allotjat en GitHub, trobem un total de 69 fragments de codi vulnerables classificats en 29 tipus. Molts dels fragments de codi estudiats encara no estan arreglats «, van dir els investigadors en el seu informe.

Els 69 fragments de codi vulnerables trobats en Stack Overflow es van reutilitzar en un total de 2859 projectes de GitHub. Per millorar la qualitat dels fragments de codi compartit en Stack Overflow, han desenvolupat una extensió de navegador que permet als usuaris de Stack Overflow buscar vulnerabilitats en els fragments quan els descarreguen a la plataforma.

No obstant això, tot i les advertències dels investigadors, els desenvolupadors encara copien el codi Stack Overflow en els seus projectes sense realitzar una anàlisi.

Ashkan Sami, professor associat de TI, enginyeria i tecnologia de la informació a la Universitat de Shiraz a l'Iran, va dir que

«La investigació va ser un intent d'examinar com migra el codi defectuós de Stack Overflow a GitHub. Bàsicament, el que hem estat tractant de mostrar és que l'ús de el codi Stack Overflow sense examinar detingudament pot generar vulnerabilitats en les aplicacions », va dir Sami. L'estudi també fa referència a un article acadèmic de 2017.

Segons aquest article, 1161 fragments de codi insegurs publicats en Stack Overflow es van utilitzar en 1.3 milions d'aplicacions d'Android disponibles a Google Play.

A més que un estudi anterior, el 46% dels desenvolupadors que van utilitzar el codi de StackOverflow sense especificar l'autor, el 75% no sabia que el codi té llicència de CC BY-SA i el 67% no sabia que això implica la necessitat d'atribució.

D'acord amb les dades d'altres estudis, el utilitzar el codi d'exemple no només s'associa amb el risc de la presència d'errors en el codi, sinó també les vulnerabilitats.

Per exemple, després d'analitzar 72483 exemples de codi C ++ en StackOverflow, els investigadors van identificar vulnerabilitats greus en 69 exemples (que és 0.09%), inclosos en la llista de les recomanacions més habituals.

font: https://programming.guide


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.