El papel de la confianza en seguridad de la
computadora
El papel de la confianza es crucial a entender la
naturaleza de la seguridad de la computadora. Los artículos
presentan teorías y los mecanismos para analizar y realzar seguridad
de la computadora, pero cualesquiera teorías o mecanismo se basan
sobre ciertas asunciones. Cuando alguien entiende las asunciones
sus políticas de la seguridad, mecanismos, y los procedimientos se
reclinan encendido, ella tendrá una comprensión muy buena de cómo
es eficaz son esas políticas, mecanismos, y procedimientos.
Examinemos las consecuencias de esta máxima.
Un administrador de sistema recibe un remiendo de la
seguridad para el sistema operativo de su computadora. Ella lo
instala. ¿Ella ha mejorado la seguridad de su sistema?
Ella tiene de hecho, dado la corrección de ciertas asunciones:
-
Ella está asumiendo que el remiendo vino del vendedor y
no fue tratado de forzar con en tránsito, más bien que de un
atacante que intenta trampearla en la instalación de un remiendo
falso que abriría realmente los agujeros de la seguridad.
-
Ella está asumiendo que el vendedor probó el remiendo a
fondo. Los vendedores están a menudo bajo presión considerable
de publicar remiendos rápidamente y de probarlos a veces solamente
contra un ataque particular. La vulnerabilidad puede ser más
profunda, sin embargo, y otros ataques pueden tener éxito.
Cuando alguien lanzó una hazaña de un código del sistema
operativo del vendedor, el vendedor lanzó un remiendo que corregía
sobre 24 horas. Desafortunadamente, el remiendo abrió un
segundo agujero, uno que era lejos más fácil de explotar. El
remiendo siguiente (lanzado 48 horas más adelante) fijó ambos
problemas correctamente.
-
Ella está asumiendo que el ambiente de la prueba del
vendedor corresponde a su ambiente. Si no, el remiendo puede no
trabajar según lo esperado. Como ejemplo, el remiendo de un
vendedor reajustó una vez propiedades de executables a la raíz del
usuario. En algunas instalaciones, los procedimientos de
mantenimiento requirieron que estos executables sean poseídos por el
compartimiento del usuario. El remiendo del vendedor tuvo que
ser deshecho y ser fijado para la configuración local. Esta
asunción también cubre conflictos posibles entre diversos remiendos,
así como los remiendos que están en conflicto el uno con el otro
(tal como remiendos de diversos vendedores del software a que el
sistema está utilizando).
-
Ella está asumiendo que el remiendo está instalado
correctamente. Algunos remiendos son simples instalar, porque
son ficheros simplemente ejecutables. Otros son complejo,
requiriendo al administrador de sistema configurar de nuevo
características network-oriented, agregan a usuario, modifican el
contenido de un registro, dan las derechas a un cierto sistema de
usuarios, y después reanudan el sistema. Un error en
cualesquiera de estos pasos podría evitar que el remiendo corrija los
problemas, al igual que una inconsistencia entre los ambientes en los
cuales el remiendo fue desarrollado y en cuáles se aplica el
remiendo. Además, el remiendo puede demandar requerir
privilegios específicos, cuando en realidad los privilegios son
innecesarios y en el hecho peligroso
Estas asunciones son bastante de alto nivel, pero
de invalidaciones de cualesquiera de ellos las marcas el remiendo un
problema potencial de la seguridad.
Las asunciones se presentan también en un mucho nivel
inferior. Considere la verificación formal, una panacea
oft-oft-touted para los problemas de la seguridad. El aspecto
importante es que la verificación formal proporciona una prueba
matemática formal que es un programa dado P es correctthat, dado
fijado de entradas i, j, k, el programa P producirá la salida x que
su especificación requiere. Este nivel del aseguramiento es
mayor que la mayoría de los programas existentes proporcionan, y por
lo tanto hacen P un programa deseable. Suponga que un programa
seguridad-relacionado S se ha verificado formalmente para el sistema
operativo O. ¿Qué asunciones serían hechas cuando fue
instalado?
-
La verificación formal de S es correctthat es, la prueba
no tiene ningún error. Porque la verificación formal confía
en provers automatizados del teorema así como análisis humano, los
provers del teorema deben ser programados correctamente.
-
Las asunciones hechas en la verificación formal de S
están correctas; específicamente, las condiciones previas
sostienen en el ambiente en el cual el programa debe ser ejecutado.
Estas condiciones previas se alimentan típicamente a los
provers del teorema así como el programa S. Un aspecto
implícito de esta asunción es que la versión de O en el ambiente en
el cual el programa debe ser ejecutado es igual que la versión de O
usada para verificar S.
-
El programa será transformado en un ejecutable que
acciones correspondan a ésas indicadas por el código de fuente;
es decir el recopilador, el linker, el cargador, y cualquier
biblioteca están correctos. Un experimento con una versión del
sistema operativo de UNIX demostró cómo la devastación de un
recopilador aparejado podría ser, y los atacantes han substituido
bibliotecas por otras que realizaron funciones adicionales, de tal
modo aumentando riesgos de la seguridad.
-
El hardware ejecutará el programa según lo previsto.
Un programa que confía en cálculos de la coma flotante
rendiría resultados incorrectos en algunas virutas de la CPU de la
computadora, sin importar cualquier verificación formal del programa,
debido a un defecto en estas virutas. Semejantemente, un
programa que confía en entradas del hardware asume que las
condiciones específicas causan esas entradas
El punto es que cualquier política, mecanismo, o
procedimiento de la seguridad está basada en las asunciones que, si
son incorrectas, destruyen la superestructura en la cual se construye.
Los analistas y los diseñadores (y los usuarios) deben llevar
esto en mente, porque a menos que entiendan lo que se basa la
política, el mecanismo, o el procedimiento de la seguridad encendido,
ellos saltan de una asunción injustificable a una conclusión
errónea. esto es un artículo agregado por Meden Reece
|