Arquitectura de protección de memoria de Ring 1 y Ring 2

6

He escuchado que Las protecciones de memoria de Ring 1 y Ring 2 ya no se utilizan básicamente en los sistemas modernos.

Sin embargo, cuando comprobé las cosas, todo lo que encontré fue que estos anillos están asociados de alguna manera con los controladores y el acceso de los controladores.

¿Se han eliminado realmente por completo o hay elementos de estos dos anillos de protección presentes dentro de los sistemas operativos del sistema que todavía se usan comúnmente (por ejemplo, OSX, Windows 7-10 y distribuciones de Linux comunes como Mint o Ubuntu)? Si es así, ¿qué tipo de código escribiría para requerir acceso a esta parte del sistema? Si efectivamente se han eliminado, o están en proceso de ser eliminados, ¿cuál es la razón de este cambio?

Supongo que los dos anillos actúan como una especie de capa intermedia, como middleware, entre el Kernal (anillo 0) y la capa de aplicación (anillo 3) ...

    
pregunta Guy Incognito 15.06.2016 - 16:56
fuente

1 respuesta

4

El sistema de cuatro anillos fue diseñado por Intel para que cualquiera lo use, y Microsoft eligió un esquema para simplificar el trabajo de desarrollo y proporcionar un sistema operativo más rápido a costa de cierta seguridad. En lo que respecta a Microsoft, no se han eliminado, por mucho que nunca se utilizaron para empezar. Microsoft no le pidió a Intel que hiciera un sistema de dos anillos; Intel proporcionó un sistema de propósito general de cuatro anillos, y Microsoft decidió usarlo de la manera que considerara más adecuada.

Intel ha proporcionado una forma para que los sistemas operativos brinden seguridad adicional para evitar que los controladores malintencionados bloqueen el sistema, y Microsoft optó por una forma diferente ( drivers firmados ), que es opcional en el modo de 32 bits, y se requiere en el modo de 64 bits. Microsoft requiere la validación de que los controladores no afectarán al sistema antes de firmar un binario. Recordarás que Windows 95/98 era conocido por fallar. Esto se debe a que los controladores solían tener errores y el sistema operativo no tenía protección de esos controladores, ya que todos estaban en el Anillo 0.

Creo que hay algunos sistemas operativos modernos todavía en uso que usan más de dos niveles de timbre, y como una cuestión de compatibilidad con versiones anteriores, los fabricantes de hardware no pueden excluir esos dos anillos "no utilizados". El hecho de que Microsoft ni el núcleo principal de Linux utilicen más de dos niveles no significa que alguien no pueda escribir un sistema operativo que use la protección adicional que brindan los Anillos 1 y 2. La protección del hardware contra software malicioso o simplemente defectuoso era absolutamente necesaria en una época en la que no podíamos verificar el comportamiento del programa de antemano, y los procesadores eran demasiado lentos para hacer toda la protección del software.

Microsoft también lanzó un proyecto de investigación llamado Singularity , y un sistema operativo donde todo el código se ejecuta en Ring 0, y todas las páginas en la memoria no usan selectores de segmento. En otras palabras, no hay protección de hardware contra programas maliciosos. Esto se traduce en un aumento significativo de la velocidad, ya que los programas ya no tienen que pasar por los niveles de anillo para llamar al código del kernel, pero todo el código debe ser verificable de forma estática, como lo sería si se escribiera en .NET sin usar la palabra clave "no seguro". El sistema operativo puede verificar estáticamente que un programa no es malicioso antes de la ejecución. El código fuente completo está disponible de forma gratuita.

Es probable que la protección del hardware nunca se elimine gradualmente, porque simplemente hay demasiados sistemas que dependen de ella. Se necesitaría un esfuerzo coordinado entre los proveedores de hardware y software, y probablemente costaría miles de millones o incluso billones de dólares a largo plazo, sin ninguna reducción significativa del costo en términos de potencia de operación / velocidad / etc. Es probable que los dos anillos, 0 y 3, continúen usándose en el futuro inmediato siempre que solo haya tres sistemas operativos principales (Microsoft, Apple, Linux). Se necesitaría un cambio significativo en el mercado para alterar el status quo.

    
respondido por el phyrfox 15.06.2016 - 18:11
fuente

Lea otras preguntas en las etiquetas