Articulo de referencia

Base de computación confiable

La base de computación confiable ( TCB , por sus siglas en inglés) de un sistema informático es el conjunto de todos los componentes de hardware , firmware y/o software que son ...

La base de computación confiable ( TCB , por sus siglas en inglés) 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 se produzcan 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 que se filtren más privilegios de los que se les otorgan de acuerdo con la política de seguridad del sistema .

El diseño e implementación cuidadosos de la base de computación confiable de un sistema son fundamentales para su seguridad general. Los sistemas operativos modernos se esfuerzan por reducir el tamaño de la base de computación confiable para que sea factible un examen exhaustivo de su código fuente (mediante auditoría de software manual o asistida por computadora o verificación de programas ).

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 de confianza . Estos últimos se refieren a los 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. definen el TCB de un sistema informático 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 funcionar mal sin afectar a 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 brecha de seguridad y comprometer una parte importante de la seguridad del sistema, pero no forma parte del TCB del sistema operativo. Por lo tanto, 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 el hardware, el firmware y el software, cuya combinación es responsable de hacer cumplir una política de seguridad informática.

En otras palabras, una base de computación confiable (TCB, por sus siglas en inglés) es una combinación de hardware, software y controles que trabajan juntos para formar una base confiable que permita hacer cumplir su política de seguridad.

El Libro Naranja explica además que

La capacidad de una base de computación confiable para aplicar correctamente una política de seguridad unificada depende de la corrección de los mecanismos dentro de la base de computación 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, un componente de hardware o software forma parte del TCB si y solo si ha sido diseñado para ser parte del mecanismo que proporciona seguridad al sistema informático. En los sistemas operativos , esto generalmente consiste en el núcleo (o micronúcleo ) y un conjunto selecto de utilidades del sistema (por ejemplo, programas setuid y demonios en sistemas UNIX). En 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 ]

El término núcleo de seguridad se utiliza en cierta literatura sobre seguridad informática para referirse a una implementación del concepto de monitor de referencia : los mecanismos de hardware y software que median el acceso entre sujetos y objetos deben ser resistentes a la manipulación, deben invocarse siempre y deben ser lo suficientemente pequeños como para poder ser analizados. [ 5 ] El Libro Naranja trata un núcleo de seguridad como una posible forma de la base de computación confiable, junto con otras formas de implementar el mecanismo de validación de referencia. [ 3 ]

Propiedades

Basado en la política de seguridad

Como consecuencia de la definición del Libro Naranja anterior, los límites del TCB dependen en gran medida de los detalles de cómo se implementa la política de seguridad. En el ejemplo del servidor de red mencionado anteriormente, aunque, por ejemplo, un servidor web que da servicio a una aplicación multiusuario no forme 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 otros. En este sentido, definitivamente forma parte del TCB del sistema informático más amplio que comprende el servidor UNIX, los navegadores de los usuarios y la aplicación web ; en otras palabras, una intrusión en el servidor web, por ejemplo, mediante un desbordamiento de búfer, puede no considerarse una vulneración del sistema operativo propiamente dicho, pero sin duda constituye una vulnerabilidad perjudicial para 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 los Criterios Comunes : en el transcurso de una evaluación de seguridad de los Criterios Comunes, una de las primeras decisiones que deben tomarse 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 de computación confiable como parte de su diseño no proporcionan seguridad por sí mismos: solo son seguros en la medida en que la seguridad les es proporcionada por medios externos (por ejemplo, una computadora que se encuentra en una habitación cerrada sin conexión de red puede considerarse segura dependiendo de la política, independientemente del software que ejecute). Esto se debe a que, como lo expresaron David J. Farber et al., [ 6 ] [i]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 más importante, lo que no puede hacer; sin embargo, a menos que haya alguna razón para creer lo contrario, una computadora es capaz de hacer todo lo que una máquina Von Neumann general puede hacer. Esto obviamente incluye operaciones que se considerarían contrarias a todas las políticas de seguridad excepto las más simples, como divulgar un correo electrónico o una contraseña que debería mantenerse en secreto; Sin embargo, salvo que existan disposiciones especiales en la arquitectura del sistema, es innegable que el ordenador podría programarse para realizar estas tareas indeseables.

Estas disposiciones especiales que tienen como objetivo evitar que se ejecuten ciertos tipos de acciones, en esencia, constituyen la base de la computación confiable. Por esta razón, el Libro Naranja (que sigue siendo una referencia sobre 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 del TCB.

Las partes de software del TCB necesitan protegerse.

Como se indica en el Libro Naranja mencionado anteriormente, las partes de software de la base de computación confiable deben protegerse contra manipulaciones para ser efectivas. Esto se debe a la arquitectura von Neumann implementada en prácticamente todos los ordenadores modernos: dado que el código máquina puede procesarse como un tipo de dato más, cualquier programa puede leerlo y sobrescribirlo. Esto se puede prevenir mediante disposiciones especiales de gestión de memoria que, posteriormente, deben considerarse parte de la base de computación confiable. Específicamente, la base de computación confiable debe, como mínimo, impedir que se escriba en su propio software.

En muchas CPU modernas , la protección de la memoria que aloja la TCB se logra mediante la adición de un componente de hardware especializado llamado unidad de gestió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 impedir dicha programación a otros programas. Esta técnica se denomina modo supervisor ; en comparación con enfoques más rudimentarios (como almacenar la TCB en la ROM o, equivalentemente, usar la arquitectura Harvard ), tiene la ventaja de permitir que el software crítico para la seguridad se actualice en campo, aunque permitir actualizaciones seguras de la base de computación confiable plantea sus propios problemas de arranque. [ 7 ]

Confiable vs. digno de confianza

Como se indicó anteriormente , la confianza en la base de computación confiable es necesaria para avanzar en la verificación de la seguridad del sistema informático. En otras palabras, la base de computación confiable es "confiable" ante todo en el sentido de que debe ser confiable, y no necesariamente en que sea digna de confianza. Los sistemas operativos del mundo real presentan habitualmente fallos de seguridad críticos, lo que demuestra los límites prácticos de dicha confianza. [ 8 ]

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

Tamaño TCB

Debido a la necesidad 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 garantía 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 costos y riesgos de seguridad, el TCB debe 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 . [ 10 ]

Ejemplos

AIX materializa la base de computación confiable como un componente opcional en su sistema de gestión de paquetes en tiempo de instalación . [ 11 ]

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. pp. 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. 1 2 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 de Computación Confiable (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. "Criterios de evaluación de sistemas informáticos confiables: Fundamentos de las clases de evaluación" . Departamento de Defensa. Criterios de evaluación de sistemas informáticos confiables . 1985. Consultado el 25 de junio de 2026 .
  6. W. Arbaugh, D. Farber y J. Smith, Una arquitectura de arranque segura y fiable , 1997, también conocida como los “documentos de Aegis”.
  7. Una arquitectura de arranque segura y confiable , op. cit.
  8. Bruce Schneier , La cinta de correr de los parches de seguridad (2001)
  9. 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 sistema operativo" (PDF) . 22.º Simposio ACM sobre Principios de Sistemas Operativos . Big Sky, Montana, EE. UU. págs. 207–220 . 
  10. Andrew S. Tanenbaum , Debate Tanenbaum-Torvalds, parte II (12 de mayo de 2006)
  11. Elementos de seguridad de AIX 4.3 , agosto de 2000, capítulo 6.