Chrome es el navegador web más utilizado hoy en día, sin embargo, sabemos en los últimos años la empresa ha tenido que lidiar con una gran cantidad de problemas y vulnerabilidades para mantener seguros a los usuarios, y ha sido hasta ahora cuando han revelado abiertamente quién es el culpable de la mayoría de las vulnerabilidades que existen hoy en día en su navegador.

En realidad, no se trata de quién, sino de qué, pues los ingenieros de Google han declarado a ZDNet que el responsable del 70% de las vulnerabilidades en el navegador y culpable de 125 errores de seguridad y 130 errores críticos encontrados solamente en el último año se debe a los lenguajes de programación C y C++, pues estos a su vez generan enormes problemas en la administración de memoria.

Según Google, casi la mitad de este 70% son vulnerabilidades de uso después de la liberación de memoria, problema que se genera por la gestión incorrecta de direcciones de memoria, dejando la “puerta abierta” a los cibercriminales.

chrome-memory-bugs.png

“C y C+ no vienen con restricciones o advertencias para prevenir o alertar a los desarrolladores cuando están cometiendo errores básicos de administración de memoria. Estos primeros errores de codificación dan lugar a que se introduzcan vulnerabilidades de administración de memoria en las aplicaciones”.

Los ingenieros de Mountain View mencionan que ambos lenguajes de programación fueron creados hace décadas, cuando los ataques cibernéticos no eran tan relevantes ni poderosos como ahora, de ahí que hoy en día sean los responsables de un gran número de fallas de seguridad.

El uso de la regla de 2

Debido a los enormes problemas y dolores de cabeza que les están generando C y C+ (que son la base del código de Chrome), la empresa está ya pensando en soluciones, pero de momento ZDNet menciona que internamente los ingenieros de Chrome siguen algo llamado “Rule of Two” (lo que se podría traducir como la regla de 2).

¿Qué dice esta regla?, que no se pueden cumplir más de 2 de las siguientes condiciones cada vez que van a escribir una nueva característica para Chrome.

  • El código controla las entradas no confiables.
  • El código se ejecuta sin espacio aislado.
  • El código está escrito en C o C++

rule-of-two.png

¿Adiós a C y C++?

Una de las grandes diferencias entre Chrome (también los navegadores que usan Chromium) y Firefox es que este último utiliza un lenguaje llamado Rust, el cual fue creado por ellos mismos y está totalmente enfocado en la seguridad para la memoria, es decir, no comete los errores de C y C++.

Por esta razón, en Google siguen analizando la posibilidad de usar Rust, Swift, JavaScript, Kotlin y Java como lenguajes de programación para reemplazar el código C y C++ en Chrome.

EL problema es que Google no ha revelado planes a corto plazo para que se de este cambio, por lo que los usuarios preocupados en la seguridad probablemente quieran cambiar de navegador mientras Google, Microsoft, Brave y demás empresas que usan Chromium solucionan este problema.