SQLite, la base de datos(info) más utilizada en aplicaciones tanto de movilidad como de escritorio, ha sido comprometida a nivel de seguridad. Según informaron el pasado viernes en TheHackerNews, un fallo hallado en el motor de la misma requerirá la actualización de millones de aplicaciones en el App Store, Google℗ Play, aplicaciones de escritorio e inclusive supondrá el lanzamiento de una nueva versión(estable) de todos los sistemas de Apple℗ y el resto de compañías.
El fallo, conocido como Magellan, es un problema en el software(máquina) que permitiría a un atacante ejecutar code arbitrario (código no firmado que no tiene que visualizar con la aplicación que se ejecuta) y malicioso, así como entrar a la memoria de la aplicación o hacer que esta se cierre inesperadamente.
Es un fallo suficiente importante, que ya ha sido arreglado y donde el grupo que ha localizado el mismo, no ha querido hacer públicos los detalles para eludir que nadie explote este. Solo ha informado a los encargados de SQLite para que solucionen el problema y ya lo han solventado, momento en que lo han hecho público. E inclusive se han lanzado algunas actualizaciones derivadas de ese cambio, como la última de Google℗ Chrome℗ para todos los sistemas, donde su motor Chromium se ha visto dañado por utilizar SQLite para su uso interno.
De hecho en Chrome, permite ser explotado de manera remota pues usa una librería llamada Web SQL API, que usa esta base de datos(info) para la gestión de las propias webs. Y esto permitiría que con un sencillo acceso a una página website inocua, pudieran explotar este fallo y entrar a nuestros equipos a través de Chrome℗ (en Mac℗ o cualquier otro sistema que use este navegador). Incluso afecta a algunos aparatos como Google℗ Home.
¿Qué es SQLite y cómo afecta a Apple?
Una base de datos(info) es una estructura que permite almacenar datos(info) en base a estructuras conocidas como tablas o entidades. Creamos estas con campos y logramos crear registros (o filas) que almacenen los datos, donde logramos recuperarlos más adelante consultando. Es la base de la gran mayoría de apps, sistemas, entornos… en el caso de SQLite dialogamos de una implementación muy ligera en carga de curso para el sistema y que está basada en un sencillo archivo. Una implementación que frente a otras soluciones como MySQL, no necesita un curso de servidor que conecte a los ficheros de base de datos.

Para que nos hagamos una idea, SQLite es ampliamente usado en iOS℗ o macOS (como, por ejemplo, la cartera de certificados y claves), en varias aplicaciones (como Whatsapp, Dropbox, Firefox, Chrome℗ y varias más que usamos en el día a día) y como librería en el afamado Core Data que usa además SQLite por defecto. Esto hace que afecte de manera indirecta inclusive a aplicaciones del sistema como Notas, por citar solo un pequeño ejemplo.
Al ser una implementación que solo necesita la librería y un fichero de la propia base de datos, cualquier sistema operativo de escritorio o terminal usa SQLite pues es suficiente competente y ligera. Apple℗ integra el controlador de esta librería por defecto en su librería de desarrollo para crear aplicaciones para todos sus sistemas, tanto móviles como de escritorio.
Así que estamos conversando de un fallo que afecta la implementación de probablemente, no solo todos los sistemas operativos en mayor o menor medida, además de millones de aplicaciones en el App Store, Google℗ Play o inclusive de descarga directa para nuestros escritorios.
¿Qué pasará ahora?
Todos los sistemas o aplicaciones tienen que actualizarse, porque cualquiera que use SQLite con una versión(estable) de motor anterior a la 3.26.0 es susceptible de permitir esta explotación que pondría en peligro nuestros sistemas y aplicaciones (y los datos(info) que hay en ella). El pasado 1 de diciembre ya se lanzó esta actualización que soluciona el fallo y de hecho, la pasada semana, Google℗ lanzó Chrome℗ 71 que soluciona este problema en su motor Chromium.

Pero el fallo supone que no solo Apple℗ debe actualizar sus herramientas(tools) de desarrollo para que usen la nueva versión(estable) de la librería, además ha de crear una nueva versión(estable) de todos sus sistemas y las aplicaciones nativas que usen SQLite, y publicarla como actualización de seguridad en la próxima versión(estable) que se publique al público. Así mismo, todas las aplicaciones de terceros que lo usen deberán igualmente actualizarse, además los motores de desarrollos e IDEs como Xcode.
En el caso que poseamos una aplicación nativa para Apple℗ y usemos SQLite (o Core Data), nuestra aplicación estará afectada y poseemos que esperar a que Apple℗ saque una nueva versión(estable) de Xcode con la librería actualizada. Una vez suceda esto, solo poseemos que generar una nueva versión(estable) de vuestro mismo code que ya esté en el App Store o distribuido por otro canal si no es iOS. Bastará volver a compilar para que se actualice la librería: a nivel de code no hay que hacer nada.
Aquí el problema son los miles, cientos de miles y puede que inclusive millones de aplicaciones que jamás se actualizarán porque están en obsolescencia o abandonadas, o porque cambiarles la versión(estable) podría suponerles demasiado trabajo y tarden mucho o prefieran no actualizar. Es responsabilidad de los programadores hacer este trabajo y comprometerse con la seguridad de sus usuarios.
Agujeros de seguridad, el gran peligro
Un agujero de seguridad es un gran peligro para cualquier aplicación o sistema. Es un fallo en el software(máquina) incitado por una mala implementación que permite, sabiendo cómo, explotar un fallo y adquirir cosas en un sistema que no deberían hacerse. Por ejemplo ejecutar un code malicioso u adquirir acceso a la memoria de una app.
Un fallo así no es un virus ni un troyano ni nada parecido. Y no hay ni un sólo sistema, aplicación o aparato que se libre de ellos. Afectan a todos por equivalente y en el buen trabajo de cada compañía responsable de cada elemento está nuestra seguridad. Lo exclusivo que logramos hacer contra ellos es que cuando se publiquen actualizaciones que arreglen estos problemas, instalarlos lo antes posible. De hecho, las actualizaciones son más importantes por los fallos de seguridad que arreglan que porque nos ofrendan tal o cual funcionalidad nueva.
Así que nunca dejéis de actualizar una aplicación o un sistema, pues es principal para corregir estos problemas que, como digo, nadie puede prevenirnos de ellos y afectan a todo. Otro día, si os interesa, hablaremos sobre la base de estos errores y por qué nadie se libra de ellos.
También te recomendamos
La edición de video en iOS℗ es posible: conjunto y primeros pasos
La Térmica, Cervezas Alhambra y Boa Mistura, unidos por las celosías de una sensacional pieza
–
La noticia Un fallo en la base de datos(info) SQLite afecta a millones de aplicaciones y a los sistemas de Apple℗ fue publicada originalmente en Applesfera por Julio(mes) César Fernández .