stringtranslate.com

Base informática confiable

La base informática confiable ( TCB ) de un sistema informático es el conjunto de todos los componentes de hardware , firmware y/o software que son críticos para su seguridad , en el sentido de que los errores o vulnerabilidades que ocurren dentro de la TCB podrían poner en peligro las propiedades de seguridad del sistema. sistema entero. Por el contrario, las partes de un sistema informático que se encuentran fuera de la TCB no deben poder comportarse mal de manera que se pierdan más privilegios de los que se les otorgan de acuerdo con la política de seguridad del sistema .

El cuidadoso diseño e implementación de la base informática confiable de un sistema es fundamental para su seguridad general. Los sistemas operativos modernos se esfuerzan por reducir el tamaño del TCB [ no verificado en el cuerpo ] para que sea factible un examen exhaustivo de su base de código (mediante auditoría de software manual o asistida por computadora o verificación de programa ).

Definición y caracterización

El término base informática confiable se remonta a John Rushby , [1] quien la definió como la combinación del núcleo del sistema operativo y los procesos confiables . Este último se refiere a procesos a los que se les permite violar las reglas de control de acceso del sistema. En el artículo clásico Autenticación en sistemas distribuidos: teoría y práctica [2] Lampson et al. Definir el TCB de un sistema informático como simplemente

una pequeña cantidad de software y hardware de la que depende la seguridad y que distinguimos de una cantidad mucho mayor que puede comportarse mal sin afectar la seguridad.

Ambas definiciones, si bien son claras y convenientes, no son teóricamente exactas ni pretenden serlo, ya que, por ejemplo, un proceso de servidor de red bajo un sistema operativo tipo UNIX podría ser víctima de una violación de seguridad y comprometer una parte importante de la seguridad del sistema, pero no es parte del TCB del sistema operativo. El Libro Naranja , otra referencia clásica de la literatura sobre seguridad informática , proporciona [3] una definición más formal del TCB de un sistema informático, como

la totalidad de los mecanismos de protección que contiene, incluidos hardware, firmware y software, cuya combinación es responsable de hacer cumplir una política de seguridad informática.

En otras palabras, una base informática confiable (TCB) es una combinación de hardware, software y controles que trabajan juntos para formar una base confiable para hacer cumplir su política de seguridad.

El Libro Naranja explica además que

[l]a capacidad de una base informática confiable para aplicar correctamente una política de seguridad unificada depende de la corrección de los mecanismos dentro de la base informática confiable, la protección de esos mecanismos para garantizar su corrección y la entrada correcta de los parámetros relacionados con la seguridad. política.

En otras palabras, una determinada pieza de hardware o software es parte de la TCB si y sólo si ha sido diseñada para ser parte del mecanismo que proporciona seguridad al sistema informático. En los sistemas operativos , esto normalmente consiste en el kernel (o microkernel ) y un conjunto selecto de utilidades del sistema (por ejemplo, programas setuid y demonios en sistemas UNIX). En los lenguajes de programación diseñados con características de seguridad integradas, como Java y E , el TCB está formado por el tiempo de ejecución del lenguaje y la biblioteca estándar. [4]

Propiedades

Basado en la política de seguridad.

Como consecuencia de la definición anterior del Libro Naranja, los límites de la TCB dependen estrechamente de las características específicas de cómo se desarrolla la política de seguridad. En el ejemplo anterior del servidor de red, aunque, digamos, un servidor web que sirve a una aplicación multiusuario no es parte del TCB del sistema operativo, tiene la responsabilidad de realizar el control de acceso para que los usuarios no puedan usurpar la identidad y los privilegios de entre sí. En este sentido, definitivamente forma parte del TCB de un sistema informático mayor que comprende el servidor UNIX, los navegadores del usuario y la aplicación Web; en otras palabras, irrumpir en el servidor web mediante, por ejemplo, un desbordamiento del buffer, puede no considerarse como un compromiso del sistema operativo propiamente dicho, pero ciertamente constituye un exploit dañino para la aplicación web.

Esta relatividad fundamental de los límites de la TCB se ejemplifica con el concepto de 'objetivo de evaluación' ('TOE') en el proceso de seguridad de Criterios Comunes : en el curso de una evaluación de seguridad de Criterios Comunes, una de las primeras decisiones que deben Lo que se debe hacer es el límite de la auditoría en términos de la lista de componentes del sistema que estarán bajo escrutinio.

Un requisito previo para la seguridad

Los sistemas que no tienen una base informática confiable como parte de su diseño no brindan seguridad propia: solo son seguros en la medida en que la seguridad se les proporciona por medios externos (por ejemplo, una computadora ubicada en una habitación cerrada con llave y sin conexión a la red). puede considerarse seguro dependiendo de la política, independientemente del software que ejecute). Esto se debe a que, como David J. Farber et al. En pocas palabras, [5] [e]n un sistema informático, la integridad de las capas inferiores suele ser tratada como axiomática por las capas superiores . En lo que respecta a la seguridad informática, razonar sobre las propiedades de seguridad de un sistema informático requiere ser capaz de hacer suposiciones sólidas sobre lo que puede y, más importante aún, no puede hacer; sin embargo, salvo motivos para creer lo contrario, una computadora es capaz de hacer todo lo que puede hacer una máquina Von Neumann general . Obviamente, esto incluye operaciones que se considerarían contrarias a todas las políticas de seguridad, excepto a las más simples, como divulgar un correo electrónico o una contraseña que deben mantenerse en secreto; sin embargo, salvo disposiciones especiales en la arquitectura del sistema, no se puede negar que la computadora podría programarse para realizar estas tareas indeseables.

Estas disposiciones especiales que tienen como objetivo impedir que se ejecuten ciertos tipos de acciones, en esencia, constituyen la base informática confiable. Por este motivo, el Libro Naranja (que sigue siendo una referencia sobre el diseño de sistemas operativos seguros desde 2007 ) caracteriza los distintos niveles de garantía de seguridad que define principalmente en términos de la estructura y las características de seguridad del TCB.

Las partes de software del TCB necesitan protegerse

Como se describe en el Libro Naranja antes mencionado, las partes de software de la base informática confiable deben protegerse contra la manipulación para que tengan algún efecto. Esto se debe a la arquitectura von Neumann implementada por prácticamente todas las computadoras modernas: dado que el código de máquina puede procesarse como un tipo más de datos más, cualquier programa puede leerlo y sobrescribirlo. Esto puede evitarse mediante disposiciones especiales de gestión de memoria que posteriormente deben tratarse como parte del TCB. Específicamente, la base informática confiable debe al menos impedir que se escriba en su propio software.

En muchas CPU modernas , la protección de la memoria que aloja el TCB se logra agregando una pieza de hardware especializada llamada unidad de administración de memoria (MMU), que es programable por el sistema operativo para permitir y denegar el acceso de un programa en ejecución a áreas específicas. rangos de la memoria del sistema. Por supuesto, el sistema operativo también puede prohibir dicha programación a otros programas. Esta técnica se llama modo supervisor ; En comparación con enfoques más toscos (como almacenar el TCB en ROM , o equivalentemente, usar la arquitectura Harvard ), tiene la ventaja de permitir que el software crítico para la seguridad se actualice en el campo, aunque permite actualizaciones seguras de la base informática confiable. problemas de arranque propios. [6]

Confiable versus digno de confianza

Como se indicó anteriormente, se requiere confianza en la base informática confiable para lograr avances en la determinación de la seguridad del sistema informático. En otras palabras, la base informática confiable es “confiable” ante todo en el sentido de que hay que confiar en ella, y no necesariamente de que sea digna de confianza. En los sistemas operativos del mundo real se descubren habitualmente errores de seguridad críticos, lo que demuestra los límites prácticos de dicha confianza. [7]

La alternativa es la verificación formal del software , que utiliza técnicas de prueba matemática para mostrar la ausencia de errores. Los investigadores de NICTA y su filial Open Kernel Labs realizaron recientemente una verificación formal de seL4, un miembro de la familia de micronúcleos L4 , demostrando la corrección funcional de la implementación C del kernel. [8] Esto convierte a seL4 en el primer núcleo de un sistema operativo que cierra la brecha entre confianza y confiabilidad, suponiendo que la prueba matemática esté libre de errores.

Tamaño del TCB

Debido a la necesidad antes mencionada de aplicar técnicas costosas como la verificación formal o la revisión manual, el tamaño del TCB tiene consecuencias inmediatas en la economía del proceso de aseguramiento del TCB y en la confiabilidad del producto resultante (en términos de la expectativa matemática del número de errores no encontrados durante la verificación o revisión). Por lo tanto, para reducir los costes y los riesgos de seguridad, el TCB debería mantenerse lo más pequeño posible. Este es un argumento clave en el debate sobre la preferencia de los micronúcleos a los monolíticos . [9]

Ejemplos

AIX materializa la base informática confiable como un componente opcional en su sistema de administración de paquetes en el momento de la instalación. [10]

Ver también

Referencias

  1. ^ Rushby, John (1981). "Diseño y Verificación de Sistemas Seguros". 8º Simposio ACM sobre principios de sistemas operativos . Pacific Grove, California, Estados Unidos. págs. 12-21.
  2. ^ B. Lampson, M. Abadi, M. Burrows y E. Wobber, Autenticación en sistemas distribuidos: teoría y práctica, Transacciones ACM en sistemas informáticos 1992, en la página 6.
  3. ^ Criterios de evaluación de sistemas informáticos confiables del Departamento de Defensa, DoD 5200.28-STD, 1985. En el glosario bajo la entrada Trusted Computing Base (TCB) .
  4. ^ M. Miller, C. Morningstar y B. Frantz, Instrumentos financieros basados ​​en capacidades (una oda al diagrama de Granovetter), en el párrafo Agregación subjetiva .
  5. ^ W. Arbaugh, D. Farber y J. Smith, A Secure and Reliable Bootstrap Architecture, 1997, también conocidos como los "documentos de protección".
  6. ^ Una arquitectura Bootstrap segura y confiable, op. cit.
  7. ^ Bruce Schneier , La cinta de correr con parche de seguridad (2001)
  8. ^ Klein, Gerwin; Elphinstone, Kevin; Heiser, Gernot ; Andrónico, junio; Polla, David; Derrin, Felipe; Elkaduwe, Dhammika; Engelhardt, Kai; Kolanski, Rafal; Norris, Michael; Sewell, Thomas; Tuch, Harvey; Winwood, Simon (octubre de 2009). "seL4: Verificación formal de un kernel de sistema operativo" (PDF) . 22º Simposio ACM sobre principios de sistemas operativos . Big Sky, Montana, Estados Unidos. págs. 207–220.
  9. ^ Andrew S. Tanenbaum , Debate Tanenbaum-Torvalds, parte II (12 de mayo de 2006)
  10. ^ AIX 4.3 Elementos de seguridad, agosto de 2000, capítulo 6.