¿Qué es OpenBSD?

 

 

¿Qué es BSD? 

BSD son las iniciales de Berkeley Software Distribution (en español, Distribución de Software Berkeley) y se utiliza para identificar un sistema operativo derivado del sistema Unix nacido a partir de las aportaciones realizadas a ese sistema por la Universidad de California en Berkeley.

En los primeros años del sistema Unix sus creadores, los Laboratorios Bell de la compañía AT&T, autorizaron a la Universidad de California en Berkeley y a otras universidades a utilizar el código fuente y adaptarlo a sus necesidades. Durante la década de los setenta y los ochenta Berkeley utilizó el sistema para sus investigaciones en materia de sistemas operativos. Cuando AT&T retiró el permiso de uso a la universidad por motivos comerciales la universidad promovió la creación de una versión inspirada en el sistema Unix utilizando las aportaciones que ellos habían realizado, permitiendo luego su distribución con fines académicos y al cabo de algún tiempo reduciendo al mínimo las restricciones referente a su copia, distribución o modificación.

Algunos sistemas operativos descendientes del sistema desarrollado por Berkeley son SunOS, FreeBSD, NetBSD, OpenBSD y Mac OS X. BSD también ha hecho grandes contribuciones en el campo de los sistemas operativos en general, como por ejemplo:

 

OpenBSD se creó como un fork de NetBSD debido a las diferencias filosóficas y personales entre Theo de Raadt y los demás miembros fundadores de NetBSD. Dejando aparte el hecho de que la seguridad sea la principal razón para que OpenBSD exista, el proyecto también tiene otras metas. Siendo un descendiente de NetBSD, es un sistema operativo muy portable. Actualmente corre sobre 17 plataformas distintas[1] de hardware

Licencia

Una de las metas del proyecto OpenBSD es "mantener el espíritu del copyright original Berkeley Unix", que permitía una "fuente de distribución relativamente libre de restricciones". Con este fin, la licencia Consorcio de sistemas de internet (ISC), una versión simplificada de la licencia BSD sin formalismos innecesarios según la Convención de Berna, se adopta para el nuevo código, aunque se aceptan las licencias MIT o BSD. La licencia GNU (GPL) se consideraba demasiado restrictiva en comparación con éstas: el código licenciado bajo la GNU, y bajo otras licencias que el proyecto considera poco deseables, no se acepta para su incorporación al sistema básico. Además el código existente bajo estas licencias es reemplazado o relicenciado cuando se puede de forma intensiva, aunque algunos casos como el compilador GCC no tienen reemplazo posible y la creación de uno se considera poco práctico.

A pesar de ello OpenBSD ha hecho importantes avances: de especial interés es el desarrollo de OpenSSH, basado en el paquete SSH original y desarrollado por el equipo OpenBSD. Apareció por primera vez en OpenBSD 2.6[3], actualmente es la implementación sencilla de SSH más extendida, disponible como estándar o como opción en muchos sistemas operativos. Es interesante mencionar el desarrollo, tras las restricciones de licencia sobre IPFilter, del filtro de paquetes PF, que aparece por primera vez en OpenBSD 3.0[4] y actualmente está disponible en DragonFly BSD, NetBSD y FreeBSD. Posteriormente se han ido incluyendo en OpenBSD los equivalentes de las aplicaciones GPL diff, grep, gzip, bc, dc, nm y size, pero con licencias BSD. Los desarrolladores de OpenBSD también están detrás del desarrollo de OpenBGPD, OpenOSPFD, OpenNTPD y OpenCVS, alternativas a software existente con licencias BSD.

En junio de 2001, y debido a modificaciones de Darren Reed en la redacción de la licencia de IPFilter, se lleva a cabo una auditoría sistemática de las licencias de los códigos fuentes de OpenBSD. Se encontró código fuente sin licencia, licenciado de forma ambigua o utilizado en contra de los términos de licencia en más de cien archivos. Para asegurar que las licencias se habían aplicado de forma correcta se intentó contactar con los poseedores de los copyright originales: algunos trozos de código fueron eliminados, otros fueron reemplazados, y otros, incluyendo las herramientas de rutinas multicasting, mrinfo y map-mbone, que estaban licenciadas por Xerox sólo para investigación, fueron relicenciadas de forma que OpenBSD pudiese seguir utilizándolas. También es destacable que durante esta auditoría se eliminó todo el software de Daniel J. Bernstein del árbol de fuentes. Bernstein pidió que toda versión modificada de su código debía ser aprobada por él antes de distribuirlo, una petición en que los desarrolladores de OpenBSD no estaban dispuestos a invertir esfuerzos. Aún tras la publicación de OpenBSD 3.8[5], no existe software de Bernstein en las fuentes.

Seguridad

Hasta Junio de 2002, la página web de OpenBSD ostentaba el eslogan: "Ningún fallo de seguridad remoto en la instalación por defecto en los últimos 6 años". Esto debió ser cambiado por: "Un sólo agujero de seguridad en la instalación por defecto, en más de 8 años", después de que se encontrara un agujero en OpenSSH y posteriormente por: "Solo dos agujeros de seguridad en la instalación por defecto, en más de 10 años", al encontrase un fallo en el módulo de ipv6. Alguna gente ha criticado este lema, ya que casi nada está activado en la instalación por defecto de OpenBSD, y las versiones estables han incluido software en el que posteriormente se encontraron agujeros de seguridad. El equipo de programadores de OpenBSD mantiene que el eslogan se refiere una instalación por defecto del sistema operativo, y que es correcto ajustándose a su definición. Uno de las innovaciones fundamentales del proyecto OpenBSD es introducir el concepto del sistema operativo "Seguro por Defecto". Según la ciencia de la seguridad informática, es estándar, y además fundamental, activar la menor cantidad posible de servicios en máquinas que se encuentren en producción. Aun con todo, incluso sin tener en cuenta esta práctica, OpenBSD es un sistema extremadamente seguro y estable.

Como parte de una "limpieza de cadenas"[6], todas las apariciones de strcpy, strcat, sprintf y vsprintf en el código han sido sustituidas por variantes más seguras, tales como strlcpy, strlcat, snprintf, vsnprintf y asprintf. Adicionalmente a sus permanentes auditorías de código, OpenBSD contiene criptografía fuerte. Más recientemente, muchas nuevas tecnologías han sido integradas en el sistema, incrementando aún más su seguridad. Desde la versión 3.3 [7], ProPolice está activado por defecto en el compilador GCC, garantizando protección adicional ante ataques de desbordamiento de pila. En OpenBSD 3.4[8], esta protección fue activada también en el kernel. OpenBSD también implementa el sistema W^X (pronunciado W XOR X), que es un esquema de gestión de memoria de gran detalle, que asegura que la memoria es editable o ejecutable, pero jamás las dos, proveyendo así de otra capa de protección contra los desbordamientos de buffer. Separación de privilegios, revocación de privilegios y carga de librerías totalmente aleatoria también contribuyen a aumentar la seguridad del sistema.

En Mayo de 2004, OpenBSD/sparc fue más allá en la protección de la pila, añadiendo StackGhost.

Un analizador estático de dimensiones fue añadido al compilador, que intenta encontrar fallos comunes de programación en tiempo de compilación. Se puede user Systrace para proteger los puertos del sistema.

OpenBSD usa un algoritmo de cifrado de passwords derivado del Blowfish de Bruce Schneier. Este sistema se aprovecha de la lentitud inherente del cifrado del Blowfish para hacer la comprobación de passwords un trabajo muy intensivo para la CPU, dificultando sobremanera el procesamiento paralelo. Se espera que así se frustren los intentos de descifrado.

Debido a todas estas características, OpenBSD se usa mucho en el sector de seguridad informática como sistema operativo para cortafuegos (llamados firewalls) y sistemas de detección de intrusos. El filtro de paquetes de OpenBSD, pf es un potente cortafuegos desarrollado a causa de problemas con la licencia de ipf. OpenBSD fue el primer sistema operativo libre que se distribuyó con un sistema de filtrado de paquetes incorporado.

Filosofía

La filosofía de Openbsd puede ser reducida a 3 palabras "Free Functional and Secure" (Libre Funcional y Seguro). La palabra free hace referencia a su licencia (explicada arriba), la palabra funcional se refiere al estado en el cual se decide finalizar el versionado de los programas, y secure por su extrema revisión y supervisión del código incluido en sus versiones.