9 de octubre de 2009

¿Es tu procesador más seguro que el mío?

¿Qué pregunta más absurda, verdad? Hasta hace bien poco lo único que diferenciaba a los grandes fabricantes de procesadores, léase Intel y AMD, era el precio, la carrera por subir los ciclos de reloj de sus procesadores, y los primeros juegos de instrucciones "dedicados" (¿alguien se acuerda del pentium MMX?) a las actividades más frecuentes de sistema operativo y usuarios, donde por cierto AMD siempre iba un poco por detrás, esto también ocurría en la fiabilidad de los procesadores, muy cuestionada al principio de los tiempos:

¿Cuanto dinero perdió AMD con este vídeo?

Pero AMD solucionó esos problemas volviendo a ganarse la confianza de los consumidores, innovó la arquitectura x86 y saltó hacia los 64 bits hace ya varios años, demostrando que ellos también hacían I+D. En ese caso le tocó a Intel hacer ingeniería inversa y clonar su idea, que fue rápidamente adaptada por Microsoft (& cia) sacando sistemas operativos de 64 bits en sus familias XP, Vista y, dentro de unos días, Windows 7. Así la carrera entre estos dos gigantes ha seguido año tras año, dejó de ser una buena idea subir los ciclos a los procesadores sin comprometer la alimentación y la temperatura y surgieron las arquitecturas basadas en los multiprocesadores que ahora todos conocemos, 2, 4, 8, 16 núcleos (AMD se atrevió con 3), etc.

Mientras tanto,,, ¿Qué pasó con la Seguridad, tenía cabida a nivel procesador? Con este brevísimo repaso a la historia de los procesadores y sus dos grandes fabricantes os pongo en antecedentes de la idea que hoy quiero tratar con vosotros: hay procesadores más seguros que otros, y lo que es peor, no lo aprovechamos. Los fabricantes se han hecho eco de la conocida como “trusted computing” y han incluido mejoras de seguridad y protección a nivel hardware.

Intel Trusted Execution Technology

La arquitectura de ejecución de confianza que ha generado Intel para sus últimos procesadores es cuanto menos interesante, implanta aislación entre procesos, almacenamiento cifrado, protección de los dispositivos de entrada/salida (desde el teclado, hasta la tarjeta grafica), entornos protegidos para los procesos más importantes del sistema, etc. Todo ello a nivel hardware, ¿interesante, verdad? Estamos dejando que el procesador asuma ciertas tareas que históricamente han sido responsabilidad de los sistemas operativos, veamos la arquitectura:


Como veis procesador, chipset y BIOS trabajan en colaboración para ofrecer al sistema operativo y software que corre en el PC particiones protegidas (de forma parecida a como los sistemas operativos lo hacen con su estructura en anillo) donde solo se almacenarán las instrucciones del software crítico, como por ejemplo el kernel de nuestro S.O. o los datos críticos como la clave privada de una infraestructura PKI, impidiendo así que el software no autorizado tenga acceso a esas regiones de memoria o que un dispositivo con DMA intente leer, el procesador impedirá todo. Pero esto puede llegar más lejos, ¿se acabaron los keyloggers?, al menos la tecnología ITET permite que no tengamos que preocuparnos por los que son software, cifrando los datos cuando llegan al procesador y haciendo que no puedan ser interpretados, lo mismo para eventos del ratón, información que se manda a una impresora, etc. Eso sí, recordemos que es protección a nivel procesador, basada en tecnología hardware pero que protege de ataques software, no es la panacea claro está, pero es una gran ayuda.

Características adicionales son la protección contra ataques conocidos (¡buffer overflow!) y los dominios de confianza, a los que se asignan particiones para servicios, sistemas operativos virtuales, procesos, etc. estas pueden ser estándar o protegidas, esta imagen lo ilustra muy bien:

Virtualizar a nivel hardware, ¿es virtualizar?

Finalmente un detalle acerca de él cifrado, la tecnología “Trusted Execution” dispone de su propia infraestructura PKI, en ella la clave privada nunca abandona el “Trusted Protection Module”, es la clave publica la que se comparte y utiliza, así las aplicaciones pueden aprovecharse de esta característica para realizar el cifrado. Esto se extiende de sobremanera, un “domain manager” puede generar un par de claves (con un password que el usuario especifica por software, habría que ver el software claro) y desplegar agentes sobre varios sistemas de confianza, estos agentes pueden verificar una serie de condiciones para saber si el equipo en que se ejecutan son de confianza, si no lo es avisará al “domain manager”, esto se puede hacer a nivel de un procesador y sus entornos virtuales o a nivel de red, lo que es una enorme ventaja para los administradores que podrán aprovechar esta capacidad de la CPU para reparar en tiempo real equipos donde el sistema operativo se ha bloqueado, resetear parámetros de la BIOS, administrar recursos (un volcado de emergencia, por ejemplo), con el consiguiente e importante ahorro en microinformática, ¿merece la pena?, apuesto que sí.

ITDirector para clientes, tráfico ICMP cifrado, se entiende ;-)


AMD Trusted Platform Module y AMD Virtualization

¿Se ha quedado AMD atrás en esta tecnología? Quizás, pero a día de hoy su plataforma de confianza ofrece prácticamente las mismas posibilidades que la de Intel, al menos a nivel local del procesador:

- Autenticación.
- Protección de datos / cifrado.
- Identidad y gestión de acceso.
- Gestión de Password.
- Network Access Control.
- Seguridad en capas
- Virtualización de entornos

Todo ello basado en los estándares reconocidos por el Trusted Computing Group, que parece ser son los que el mercado está aceptando de facto tanto para el Trusted Computing como para el Trusted Network Connect. La única pega que ahora mismo veo (y no he podido comprobar) es que las soluciones de administración remota de PC’s y servidores (conocidas como DASH y SMASH) no incluyen el concepto de “dominio de confianza” que permita al igual que en Intel comprobar si, por ejemplo, un sistema ha dejado de ser de confianza, o llegar a administrar a nivel BIOS, o generar un par de claves para ese sistema. Quizás sea por desconocimiento pero yo no lo he encontrado.

¿Es tu procesador más seguro que el mío?

La respuesta es "depende", la tecnología hardware está ahí, y se puede aprovechar muy bien para hacer hardening al nivel más bajo, si conocemos estas posibilidades y las aprovechamos podremos hacer que los sistemas de nuestros puestos de trabajo y servidores sean más seguros, no es la panacea es verdad, pero es una capa adicional que podemos aprovechar y encima, ¡ahorrando dinero! Estas cuestiones se nos plantearán en la próxima renovación del parqué informático y, como no, tenemos que ponerlas sobre la mesa.

Y esto es todo por hoy, la verdad que tenía pensado hablar de Análisis Forense o de ECC, pero al final me pareció este un tema más interesante. Me voy unos días de puente, intentaremos volver la semana que viene.

Portaros bien y cuidado en la carretera.

Salu2

0 comentarios: