Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Entrevista a Anthony G. Basile
#1

Anthony G. Basile, aka blueness, es una de las personas que está detrás de proyectos como PaX/Grsecurity, Gentoo Hardened o Tin Hat, un sistema operativo basado en Gentoo que tiene una razón de ser muy interesante.


Nos ha dejado hacerle algunas preguntas sobre su labor en algunos de éstos proyectos, y su forma de ver varios aspectos de la seguridad actualmente.


Personalmente he disfrutado mucho haciendo la entrevista y me gustaría agradecerle que haya compartido con nosotros un poquito de su tiempo. Los dejo con él.


1. Cuéntanos algo sobre tí, trabajo, hobbies, y qué haces cuando no tienes un ordenador entre manos.

Soy profesor en D'Youville College, en Buffalo, NY. Es una pequeña escuela con unos 3000 estudiantes. Soy el director del programa "Information Technology", que es cómo lo llamamos, pero es una licenciatura de ingeniería informática con énfasis en programación y diseño de sistemas. La mayoría de mi vida la paso enseñando, administrando servidores, y después llego a casa para escribir código para varias iniciativas en Gentoo.

Por otro lado, paso tiempo con mi perro Daniel. Vamos al parque todas las mañanas para hacer ejercicio.


2. ¿Por qué Gentoo Hardened? Y, ¿por qué basado en Gentoo y no Debian, Fedora u otro sabor de GNU/Linux?

Primero, ¿por qué Gentoo? Gentoo es una distribución "desde el código", no es como una distribución tradicional. Más o menos creas tu propia distribución cada vez que configuras una nueva máquina con Gentoo. Una vez que tienes los binarios básicos en tu disco duro, depende de tí el cómo vas a recompilar el sistema entero como tú quieres. Ni Debian ni Fedora te dan ésto. Por ejemplo, si quieres construir un sistema sin el módulo de soporte de autenticación PAM, como podría ser para un sistema embebido, ¡puedes! Pero en sistemas con binarios, ésa decisión ya está tomada por tí por parte de los los desarrolladores. Por lo que, si vas a construir una distribución derivada, y quieres construirla a tu manera, como Tin Hat (luego hablaremos de ello), la elección del "padre" en obvia.


La otra razón para elegir Gentoo como raiz de Tin Hat es que también soy desarrollador de Gentoo, trabajo en el kernel y en hardening, por lo que ya estoy familiarizado con las elecciones que he de tomar a nivel de código. Gentoo te da más opciones que Debian, ¡pero no es infinitamente abierto! Nosotros parcheamos código fuente y decidimos qué características añadir o quitar en éste nivel. Por ejemplo, yo sé y estoy involucrado en cómo construimos los binarios ELF, por lo que diseño el sistema en un nivel más bajo.


Finalmente, ¿por qué Hardened? Porque la idea principal detrás de Tin Hat era un sistema que tuviera cero fugas de información. Cuando está funcionando, no queremos que un atacante sea capaz de entrar y ver qué está pasando, y cuando se apaga, ¡no queremos si quiera que un atacante sepa que había un sistema operativo corriendo en la máquina! Por ésto, el hardening es crítico para nuestros propósitos.



3. ¿Podemos decir que Gentoo (Hardened) es una buena distribución para escritorio, o es mejor para otros entornos? ¿Por qué?

Gentoo, hardened u otro, puede ser usado igual para escritorio, servidor o embebido. No hay un entorno en el que es mejor. Pero la carga de construir el sistema está en el usuario. Por lo que, ¡mejor que sepas lo que estás haciendo! Para continuar con mi ejemplo de antes, ¡no debes desactivar PAM a la ligera!

Una vez que lo has diseñado como lo quieres, Gentoo funciona muy bien. Yo prefiero Gentoo en mis escritorios o servidores a Ubuntu (que suelen usar los estudiantes) porque los construyo de forma precisa con las cosas que yo quiero. Raramente sufro la frustración de que un paquete no se genere como yo quiero.



4. ¿Cuáles son las ventajas de portage contra, por ejemplo, APT?


Comparar portage y APT es como comparar manzanas y tomates --- ambos pueden ser rojos, ¡pero por dentro son muy diferentes!

Portage es una suite para compilar paquetes entre dependencias, desde el código, a un sistema funcional. Toda la información está ahí. Desde el código, a la manera en la que tiene que ser compilado para que termine en un sistema coherente.

APT es más restringido en alcance. Resuelve dependencias, descarga, instala los binarios precompilados, y configura los paquetes en el sistema. Portage hace éso también, pero tiene una dimensión extra, en el sentido de que compila el código según las decisiones del usuario. Puedes pensar en portage como en una capa que abstrae las decisiones de los desarrolladores sobre la manera de compilar un paquete para dárselas al usuario final --- nada que ver con APT.



5. ¿Cuales fueron las motivaciones para desarrollar Tin Hat?


Comenzó durante un experimento en una clase de Sistemas Operativos Modernos, dónde estábamos discutiendo la idea de "información cero". ¿Bajo qué condiciones se filtra la información y qué tipo de información es filtrada?

Queríamos un sistema que, al final, ¡ni siquiera filtrara el hecho de que hay un sistema operativo! ¡Información cero!

El usuario podría decir plausiblemente "éste ordenador no tiene nada en él", y que un atacante no fuera capaz de probar que éra incorrecto. Esto es un ideal extremo, pero fuímos en ésa dirección.

Al menos cuando cuando el ordenador se apaga, podemos asegurar que todo es limpiado. Por ello, sería muy difícil probar que el ordenador ha tenido alguna vez algo corriendo en él. Ponemos todo en RAM.

Cuando el ordenador está corriendo, queremos asegurar que el sistema es tan seguro como es posible para que un atacante no pueda entrar de forma remota. Por éso decidimos añadir la cantidad mayor de hardening posible sin hacer el sistema inutilizable.

Esperamos haber llegado a algo atractivo para el usuario paranóico de verdad



6. ¿Qué opinas acerca de las mitigaciones activadas en el kernel por defecto?


Ésto es absolutamente necesario a día de hoy, especialmente para exploits 0day.

Es imposible para los desarrolladores escribir código que garantice el 100% de seguridad. No hay humanos que tengan tanta perspicacia para saber cómo se puede abusar del código. Tarde o temprano, hasta el código mejor escrito tendrá alguna fisura que pueda ser aprovechada para un exploit. Por lo tanto, la seguridad se tiene que hacer a varios niveles: los desarrolladores deben escribir de forma tan segura como sea posible (ej: sanitizar la entrada del usuario), las herramientas deben de incluir medidas para prevenir exploits (ej: protección stack smashing) y el kernel debe hacer su parte (ej: prevenir de ejecutar memoria que también se puede escribir).

Núnca tendrás un sistema 100% seguro, pero según te frustras más y más con los vectores de ataque, las posibilidades de una explotación satisfactoria disminuyen.

Ok, puede que un desarrollador no se diera cuenta de que tiene un mapa de memoria en modo lectura/escritura/ejecución en uno de sus plugins, ¡pero PaX lo hace! En primer lugar, él no debería estar desarrollando de ésa forma, pero si ésto ocurre se cae en el siguiente nivel de seguridad.

La forma en la que se trabaja en Gentoo Hardened es que cuando detectamos paquetes que fallan avisamos a los desarrolladores. Cada capa ayuda a mejorar las otras capas y al sistema entero.



7. ¿Por qué grsec/PaX no está incluido por defecto de alguna manera?


Está incluido por defecto en Tin Hat. La máxima seguridad en las herramientas y el kernel está activada mientras el sistema siga siendo usable para escritorio. Una característica no activada por defecto es RBAC, unas reglas de acceso del sistema. Esto es más apropiado en servidores que hacen la misma tarea una y otra vez. Ahí, el sistema RBAC puede aprender la rutina y construir las reglas apropiadas, permitiendo sólo ésas tareas y nada más. En un escritorio, que es lo que Tin Hat pretende ser, RBAC es más difícil de implementar para que no interrumpa el uso normal.

En Gentoo, como parte de la filosofía, depende del usuario final añadir o no añadir el hardening que él quiera, por lo que no incluimos grsec/pax por defecto. No queremos limitar ésa elección. Hay algunos paquetes mal escritos que rompen con algunos aspectos del hardening.

Si el usuario final no quiere seguridad, ¿por qué forzarle?



8. ¿Qué opinas acerca de Qubes OS? ¿La disminución del rendimiento justifica la seguridad en éste caso?


No he mirado Qubes OS en profundidad, pero la seguridad es diferente a la que busca Tin Hat. Qubes OS pretende securizar mediante el aislamiento entre programas utilizando máquinas virtuales ligeras. ¡Ésto no llega a los extremos de ocultar los datos y el sistema operativo entero! El nivel de paranoia es diferente.

Imagina que vives en un régimen represivo dónde las autoridades pueden confiscar tu ordenador y obligarte a descifrar los discos duros. Con Tin Hat, cuando el sistema se apaga, no hay nada que pueda obtener el atacante. No hay nada que "entregar". A lo mejor el atacante puede obtener el sistema de arranque --- un pendrive bootable.

Para ser honestos, yo he tenido sistemas Tin Hat corriendo durante meses. Mientras no haya un fallo eléctrico, el sistema funciona y puede ser borrado en un segundo. Todos los datos que quieras guardar los puedes almacenar de forma remota mediante una conexión cifrada. Puedes bloggear acerca de las violaciones de los derechos humanos utilizando Tor para ocultar tus pasos y no necesitas guardar nada en local.



9. ¿Qué hay de las mitigaciones en los smartphones? Parece que Apple dió el primer paso implementando ASLR en sus dispositivos. ¿Son necesarias las mitigaciones para los últimos dispositivos móviles?

La diferencia entre los dispositivos móviles y los ordenadores está desapareciendo. De hecho, está pasando con todos nuestros dispositivos.

¡No me sorprenderá ver que un día nuestras neveras sean dispositivos con IP para que la compañía pueda loggear y hacer diagnósticos! (O ver qué comidas preferimos) ¿Imaginas virus en redes dónde todos los dispositivos tienen CPUs e IPs?



10. Estudiando las mitigaciones actualues podemos intentar imaginar cómo puede ser el futuro de la explotación. ¿Qué imaginas acerca de ésto?


Es difícil decir lo que puede conseguir el ingenio de alguien para eludir los esfuerzos actuales de las mitigaciones. Ciertamente si tú fueras un escritor de virus, querrías saber todas las técnicas para prevenir su propagación. Ésto incluye saber evadir la detección de los escáners. No sé mucho sobre ese aspecto de la seguridad por lo que no puedo predecir que la dirección de la explotación vaya a ser en esa dirección.

Pero una vez el ataque llega a la máquina, queremos prevenir cualquier tipo de corrupción o abuso de memoria tanto en espacio de usuario cómo de kernel. Éste progreso se está haciendo todos los días por el equipo de grsec y PaX.

Dado que las técnicas de explotación se están cerrando, lo que permanece son agujeros más exóticos que requieren técnicas más concretas. Por ello, no veo que la explotación se esté terminando, pero no vamos a volver a los tiempos del clásico "stack smashing" que afectaba a un alto tanto por ciento de binarios. El número de binarios afectados está disminuyendo y las técnicas se están volviendo más particulares y no tan fáciles de transferir a otras situaciones.

No creo que a estas alturas del juego nos estemos perdiendo una familia de técnicas grande, por lo que las técnicas futuras serán cada vez más limitadas en alcance.

11. ¿Lees blogs? ¿Cuál es tu manera de estar actualizado?


Sigo muchos feeds RSS y estoy en muchas listas de correo. Aquí hay algunas:

Cosas del kernel y seguridad:
- http://kernel.org/kdist/rss.xml
- http://feeds.feedburner.com/grsecurity
- http://freshmeat.net/index.atom
- todos los feeds de http://seclists.org
- lkml y muchas listas de http://vger.kernel.org/vger-lists.html

Noticias geeks generales:
- http://www.theregister.co.uk/headlines.atom
- http://rss.golem.de/node/feed?category=
- http://slashdot.org/slashdot.rss
- http://digg.com/rss/index.xml


12. ¿Cinco herramientas que debes tener en tu ordenador?

um .... sólo necesito tres

busybox, kernel, un destornillador...

Fuente: http://www.securitybydefault.com/2011/11/entrevista-anthony-g-basile-blueness-de.html
#2
hum, interesante entrevista se vé que tiene buenos argumentos para continuar con su trabajo/proyecto y los explicó muy bien además de tener buena historia
WWW


Posibles temas similares...
Tema Autor Respuestas Vistas Último mensaje
  entrevista a Patrick Volkerding fundador de slackware jcifuentes 2 266 11-06-2017, 02:13 AM
Último mensaje: mispracticas2009



Usuarios navegando en este tema: 1 invitado(s)