Preguntador / comentarista por primera vez, lector desde hace mucho tiempo.
Como alguien que actualmente está pensando mucho y amp; escribir sobre medidas que podrían mejorar de manera fundamental la seguridad informática (es decir, involucrando no solo el tipo de pasos evolutivos, bastante modestos en los que se centran la mayoría de los fabricantes de tecnología en este momento, sino que los cambios de "gran salto" podrían romper la compatibilidad hacia atrás, pero los sistemas podrían em> mucho más seguro). Me gusta mucho la idea de utilizar un aislamiento general robusto del proceso para intentar evitar que los programas en modo de usuario (o, de todos modos, lo que hoy llamamos programas en "modo de usuario") puedan hacer cosas desagradables como tratar de leer / robar datos utilizados por otros programas en modo usuario o golpear el sistema operativo con ataques de escalamiento de privilegios.
Ahora, ciertamente hay compañías / organizaciones que han intentado o están intentando implementar esquemas de aislamiento de privilegios sólidos en el software. Por ejemplo, el SO de Singularity de desarrollo de Microsoft que puso casi todo en "procesos aislados sellados" que solo podían comunicarse entre sí y con el SO mediante "contratos" de paso de mensajes restrictivos. (Ciertamente, hay otros, incluidos algunos que están en uso con los gobiernos para los escenarios de alta seguridad militar / inteligencia). Sin embargo, supongo que soy una persona que es reacia a confiar tremendamente en las defensas de seguridad que no están arraigadas. Al final del día, en algún tipo de aplicación directa de hardware. Lo que me lleva a mis dos preguntas (muy relacionadas):
En primer lugar, ¿hay microprocesadores no gubernamentales, producidos comercialmente hoy en día, destinados a la computación multipropósito? ¿No hay chips de tarjetas inteligentes o algo así, que utilicen conjuntos de instrucciones / arquitecturas específicamente diseñadas para imponer un aislamiento / separación de procesos sólido? (De tal manera que ni siquiera un ataque que explote una falla profunda en el kernel del sistema operativo que se ejecuta en el dispositivo sería suficiente para permitir que los códigos maliciosos en un proceso se salgan del aislamiento).
Segundo, ¿qué tipo de cambios necesitarías hacer al conjunto de instrucciones x86-64 & ¿Arquitectura de chip correspondiente para que sea capaz de proporcionar soporte forzado por hardware a un aislamiento / separación de procesos individuales fuerte del SO?
(FYI, sé que Intel ha agregado algunas capacidades de seguridad propietarias a algunos de sus chips en los últimos 5-10 años, con Skylake con SGX este año se supone que traerá algunas capacidades para aislar un programa dado que tiene alto necesidades de seguridad del resto del sistema. Pero mucho más grandes, se necesitarían pasos adicionales para lograr el aislamiento forzado por hardware de, digamos, como mínimo, todos los procesos que hoy se ejecutan en modo de usuario. ¿O me equivoco al respecto?)