Linux es un sistema operativo bien protegido

27 Jul 2009 en Software

A principios de este mes de julio apareció una explotación de seguridad que fue publicada para el kernel Linux. Sin embargo, en el kernel Linux principal (mainline, donde se actualiza el código), la brecha había sido corregida semanas antes. De esta manera, al aparecer una explotación pública, la mayoría de los usuarios Linux habían aplicado el patch.
Esta explotación publicada podría haber sido del tipo “zero day” del kernel Linux. Pero esto no fue así porque el bug o brecha que posibilita la explotación, fue detectado por el scan que realiza Coverity desde 2004.
Coverity detectó el bug en marzo y así permitió que el patch llegara el 5 de julio, antes que la explotación que lo hizo el 17 de ese mes.
Para quiénes no hayan aplicado el patch: la brecha y su explotación involucran a componentes como un defecto en un null pointer. Esta clase de pointer generalmente conduce a una caída del sistema, pero éste en particular, podría ser usado en combinación con la optimización del compilador de código, permitiendo que el atacante tome control de algunos bloques de memoria en la computadora objetivo.
El 16 de julio se procedió a desactivar la opción de optimización de compilación para reforzar la seguridad mediante el bloqueo de los vectores de explotación.
Los errores null pointer son frecuentes en el software open source y el sistema Scan de Coventry los registra. Esta clase de errores representa un 28% de los bugs presentes en una muestra de más de 200 apliaciones open source. El proyecto de Coventry es patrocinado por el Departamento de Defensa de los EE.UU.
Es difícil establecer qué proporción de los bugs representan amenazas de seguridad en relación al total de las detectadas. Muchas vulnerabilidades dependen del tamaño del entorno en el que se desempeña una aplicación.
David Maxwell, especialista open source de Coverity, nos dice que “la gente de sistemas tiende a descomponer las cosas en sus menores partes, para determinar que A conecta con B y luego con C. Pero la naturaleza de los problemas de seguridad es que son problemas de sistema. Tienen que ser vistos como A más B, más C en su interacción completa. Es difícil establecer, por ejemplo, cuántas partes “A” combinadas conforman una brecha.”
Antes de finales de este año, Coverity publicará un reporte de lo registrado por Scan. En él constará la evolución general del código open source y las tendencias que ha presentado.
En los últimos dos años, Coverity registró un aumento del 153% en los defectos que aparecen cuando la gene va incorporando nuevo código. Esta información en sí misma ratifica el valor de una estrategia de continuo escrutinio del código. Años atrás, se revisaban los proyectos open source solamente hasta que se detectaban los defectos iniciales y se los corregía.