stringtranslate.com

Base informática confiable

La base de cómputo 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 ocurran dentro de la TCB podrían poner en peligro las propiedades de seguridad de todo el sistema. Por el contrario, las partes de un sistema informático que se encuentran fuera de la TCB no deben poder comportarse de manera incorrecta 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 diseño y la implementación cuidadosos de la base informática confiable de un sistema son fundamentales para su seguridad general. Los sistemas operativos modernos se esfuerzan por reducir el tamaño de la base informática confiable [ no verificada en el cuerpo ] de modo que sea posible realizar un examen exhaustivo de su base de código (mediante una auditoría de software o una verificación de programas manuales o asistidas por computadora ).

Definición y caracterización

El término se remonta a John Rushby [1] , quien lo definió como la combinación del núcleo del sistema operativo y los procesos confiables . Este último se refiere a los procesos a los que se les permite violar las reglas de control de acceso del sistema. En el artículo clásico Authentication in Distributed Systems: Theory and Practice [2], Lampson et al. definen el TCB de un sistema informático simplemente como

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, aunque claras y convenientes, no son exactas en teoría 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, la 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 parámetros relacionados con la política de seguridad.

En otras palabras, una pieza determinada de hardware o software es parte del TCB si y solo si ha sido diseñado para ser parte del mecanismo que proporciona su seguridad al sistema informático. En los sistemas operativos , esto normalmente consiste en el núcleo (o micronúcleo ) y un conjunto seleccionado de utilidades del sistema (por ejemplo, programas setuid y daemons 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 entorno 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 del Libro Naranja anterior, los límites del TCB dependen estrechamente de los detalles específicos de cómo se desarrolla la política de seguridad. En el ejemplo del servidor de red anterior, aunque, por ejemplo, un servidor web que sirve a una aplicación multiusuario no forma 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 los demás. En este sentido, definitivamente forma parte del TCB del sistema informático más grande que comprende el servidor UNIX, los navegadores del usuario y la aplicación web; en otras palabras, la violación del servidor web a través, por ejemplo, de un desbordamiento de búfer puede no considerarse una vulneración del sistema operativo propiamente dicho, pero sin duda constituye una explotación perjudicial de la aplicación web.

Esta relatividad fundamental del límite del 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 se deben tomar es el límite de la auditoría en términos de la lista de componentes del sistema que serán objeto de escrutinio.

Un requisito previo para la seguridad

Los sistemas que no tienen una base informática fiable como parte de su diseño no proporcionan seguridad por sí mismos: sólo son seguros en la medida en que la seguridad les es proporcionada por medios externos (por ejemplo, un ordenador situado en una habitación cerrada 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. lo expresan, [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 poder hacer suposiciones sólidas sobre lo que puede y, lo que es más importante, lo que no puede hacer; sin embargo, salvo que haya alguna razón para creer lo contrario, un ordenador puede hacer todo lo que puede hacer una máquina de Von Neumann general . Esto obviamente incluye operaciones que se considerarían contrarias a todas las políticas de seguridad, salvo las más simples, como divulgar un correo electrónico o una contraseña que debería mantenerse en secreto; Sin embargo, salvo disposiciones especiales en la arquitectura del sistema, no se puede negar que el ordenador podría programarse para realizar estas tareas indeseables.

Estas disposiciones especiales que tienen como objetivo impedir la ejecución de determinados tipos de acciones constituyen, en esencia, la base informática de confianza. Por este motivo, el Libro Naranja (que sigue siendo una referencia en el diseño de sistemas operativos seguros a partir de 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 de la TCB.

Las partes de software del TCB necesitan protegerse

Como se indica en el Libro Naranja antes mencionado, las partes de software de la base de computación confiable deben protegerse contra la manipulación para que tengan algún efecto. Esto se debe a la arquitectura de von Neumann implementada por prácticamente todos los ordenadores modernos: dado que el código de máquina se puede procesar como cualquier otro tipo de datos, cualquier programa puede leerlo y sobrescribirlo. Esto se puede evitar mediante disposiciones especiales de gestión de memoria que posteriormente deben tratarse como parte de la base de computación confiable. En concreto, la base de computación 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 especializada de hardware llamada unidad de administración de memoria (MMU), que es programable por el sistema operativo para permitir o denegar el acceso de un programa en ejecución a rangos específicos de la memoria del sistema. Por supuesto, el sistema operativo también puede denegar dicha programación a los otros programas. Esta técnica se llama modo supervisor ; en comparación con enfoques más rudimentarios (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 permitir actualizaciones seguras de la base informática confiable plantea sus propios problemas de arranque. [6]

Confiable vs. digno de confianza

Como se ha dicho antes, para poder avanzar en la determinación de la seguridad del sistema informático es necesaria la confianza en la base informática de confianza. En otras palabras, la base informática de confianza es “de confianza” ante todo en el sentido de que hay que confiar en ella, y no necesariamente en que sea digna de confianza. En los sistemas operativos del mundo real se descubren rutinariamente errores críticos para la seguridad, lo que da fe de 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 demostrar la ausencia de errores. Los investigadores de NICTA y su filial Open Kernel Labs han realizado recientemente una verificación formal de seL4, un miembro de la familia de microkernels L4 , que demuestra la corrección funcional de la implementación C del núcleo. [8] Esto convierte a seL4 en el primer núcleo de sistema operativo que cierra la brecha entre la confianza y la fiabilidad, 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 costos 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 microkernels a los kernels monolíticos . [9]

Ejemplos

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

Véase 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, EE. UU., págs. 12-21.
  2. ^ B. Lampson, M. Abadi, M. Burrows y E. Wobber, Autenticación en sistemas distribuidos: teoría y práctica, ACM Transactions on Computer Systems 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 Base informática confiable (TCB) .
  4. ^ M. Miller, C. Morningstar y B. Frantz, Instrumentos financieros basados ​​en capacidad (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 aegis”.
  6. ^ Una arquitectura Bootstrap segura y confiable, op. cit.
  7. ^ Bruce Schneier , La rutina de los parches de seguridad (2001)
  8. ^ Klein, Gerwin; Elphinstone, Kevin; Heiser, Gernot ; Andronick, June; Cock, David; Derrin, Philip; Elkaduwe, Dhammika; Engelhardt, Kai; Kolanski, Rafal; Norrish, Michael; Sewell, Thomas; Tuch, Harvey; Winwood, Simon (octubre de 2009). "seL4: verificación formal de un núcleo de SO" (PDF) . 22º Simposio ACM sobre Principios de Sistemas Operativos . Big Sky, Montana, EE. UU., 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.