Nos alegra poder entrevistar a Oliver Pinter y Shawn Webb, los desarrolladores principales del proyecto HardenedBSD.
Fundado en 2014, el proyecto tiene como objetivo ofrecer una versión de FreeBSD con seguridad mejorada, con tecnologías modernas como la mitigación de exploits conocida como PAX y ASLR, pero también introduce un montón de nuevos sysctls en el sistema.
Fleximus: Antes de entrar en detalles, por favor, presentaos y dadnos una breve introducción sobre vuestro proyecto.
Oliver/Shawn:
Fleximus: ¿Cuándo te acercaste a FreeBSD y por qué decidisteis iniciar este subproyecto?
Shawn: Conocí FreeBSD por primera vez cuando era adolescente. Me lo presentó un grupo de hackers de la vieja escuela. Desde entonces me he enamorado de él. Oliver y yo fundamos HardenedBSD en abril de 2014. A los dos nos interesaba implementar ASLR para FreeBSD y Oliver ya tenía un parche listo. Creamos HardenedBSD para coordinar nuestro trabajo en ASLR junto con otras medidas de mitigación de exploits. Llevamos trabajando en ofrecer más tecnologías de mitigación de exploits desde que empezamos con HardenedBSD.
Oliver: La primera vez que probé FreeBSD fue con la versión 6.1-STABLE, pero compilar todo el sistema llevaba demasiado tiempo (KDE3 y OpenOffice), así que dejé FreeBSD a un lado hasta 2008, cuando me compré un ordenador nuevo. Este nuevo ordenador era lo suficientemente potente como para compilar todo el sistema en un tiempo razonable; la otra razón por la que cambié de Debian a FreeBSD fue el sinfín de daños en el sistema de archivos XFS. Probé muchas versiones de Linux —desde la 2.6.17 hasta la 2.6.32—, pero ninguna funcionaba, así que al final me pasé a FreeBSD.
El proyecto HardenedBSD se puso en marcha a partir de mi tesis universitaria, que se centró principalmente en la implementación de Intel S.M.A.P. en FreeBSD y, en segundo lugar, en ASLR. Un día recibí un correo de pipacs (un miembro del PaXTeam), en el que me decía que alguien más había empezado a trabajar en el endurecimiento de FreeBSD y me mandó un enlace a una entrada del blog de Shawn. Al principio trabajábamos en repositorios diferentes, hasta que me harté de tantos conflictos al fusionar o hacer «cherry-pick», y creé el repositorio de HardenedBSD en GitHub; esto fue en la primavera de 2014.
Fleximus: ¿Cuál es el objetivo a largo plazo de HardenedBSD? Que los parches se incorporen al código original y se conviertan en parte integral del sistema de FreeBSD parece ser uno de los principales. Hemos oído que esto podría suceder con FreeBSD 11.
Shawn: Queremos ofrecer al mundo una mayor seguridad. FreeBSD se usa mucho en algunas empresas y comunidades bastante grandes. FreeBSD va a la zaga del resto del mundo en tecnologías de mitigación de vulnerabilidades. Queremos llenar ese vacío.
Cuando FreeBSD lance la versión 11.0, le seguiremos en un plazo razonable (y por «razonable» entendemos «cuando esté listo») con nuestra primera versión oficial.
Con el tiempo, queremos empezar a vender nuestros propios dispositivos de seguridad. Ya hemos empezado a investigar eso y tenemos algo muy interesante en marcha.
Estamos añadiendo más elementos de refuerzo a nivel del sistema. Yo estoy reforzando las llamadas al sistema y los sysctls. Oliver sigue trabajando en Intel SMAP y está terminando PaX NOEXEC. Mi próxima gran tarea es renovar el funcionamiento de nuestro SEGVGUARD, siguiendo más de cerca el modelo de grsec. Oliver también empezará a trabajar en PaX UDEREF.
Hemos incorporado a un nuevo miembro a nuestro equipo. Se hace llamar «CTurt». Se está centrando en encontrar vulnerabilidades y explotarlas en FreeBSD, además de proporcionar parches para solucionarlas.
Fleximus: ¿Hay alguna diferencia clave en la implementación de ASLR o PAX en comparación con Linux o cualquier otro sistema que merezca la pena destacar?
Shawn: Nos hemos inspirado en la implementación de PaX, e incluso hemos colaborado con el equipo de PaX para asegurarnos de que la nuestra se implementara correctamente.
Oliver: Seguimos principalmente la documentación de PaX, pero de momento nos falta un poco de ella.
Fleximus: OpenBSD implementó ASLR en 2003 y terminó su implementación en 2008. ¿Echaste un vistazo a su código fuente para evaluar la posibilidad de migrar su trabajo a FreeBSD?
Shawn: Aunque OpenBSD tiene licencia BSD, he evitado mirar otras implementaciones para evitar problemas de licencia. Así, mi código es solo mío. No tengo que preocuparme por añadir a otros a la declaración de derechos de autor ni por usar sus derechos de autor en absoluto.
Fleximus: Hemos leído que escribiste parches para FreeBSD-11 y que ya los has retroportado a FreeBSD 10-STABLE. ¿Cuál es el estado actual del proyecto?
Shawn: Todo el trabajo que consideramos estable lo retroportamos a 10-STABLE. Mantenemos repositorios de paquetes tanto para 11-CURRENT/amd64 como para 10-STABLE/amd64.
Oliver: Al principio del proyecto, el código se desarrolló en 10-STABLE y se adaptó a 11-CURRENT. Shawn usaba 11-CURRENT y yo usaba 10-STABLE, por eso tenemos tantos conflictos de fusión. Principalmente nos centramos en los nuevos desarrollos en 11-CURRENT, y si la funcionalidad en cuestión es lo bastante estable, la incorporamos selectivamente también a 10-STABLE.
Fleximus: De hecho, hay una encuesta en marcha sobre si se debe eliminar el linuxulator (la capa de compatibilidad con Linux) de los códigos fuente o no. Como ya sabemos, cuantas más funciones y más código de compatibilidad haya, mayor es la superficie de ataque también.
Shawn: Voy a investigar un poco más sobre este tema. Aún no está decidido si vamos a eliminar la capa de compatibilidad con Linux. Tenemos que esperar a que se estabilicen las modificaciones de linuxulator y luego hacer algo más de trabajo. Tal y como están las cosas ahora mismo, se ha eliminado COMPAT_FREEBSD32 de nuestro kernel personalizado (la configuración del kernel HARDENEDBSD amd64). COMPAT_FREEBSD32 es necesario para que funcione el «linuxulator». Tendrías que compilar tu propio kernel con esa opción añadida para que el «linuxulator» funcione.
Fleximus: Os damos las gracias, Oliver y Shawn, por esta entrevista. Hemos obtenido más información y comprendemos mejor el proyecto HardenedBSD, y estamos aún más ilusionados por ver y probar los resultados.
Animamos a cualquiera que esté interesado en el proyecto a que colabore con sus aportaciones, ideas y opiniones. El proyecto también acepta las donaciones habituales, incluso bitcoins.
Shawn: Gracias por esta gran oportunidad. Nos lo estamos pasando genial haciendo lo que nos encanta. Esperamos que algún día podamos convertir esta pasión en un trabajo a tiempo completo. Es gracias a la comunidad que estamos donde estamos ahora. Estamos deseando devolverles el favor.
Referencias:
■


