Documentos de Académico
Documentos de Profesional
Documentos de Cultura
CONFIABILIDAD Y
SEGURIDAD
Objetivos
El objetivo de este capítulo es introducirlo a la confiabilidad y la seguridad del software.
Al estudiar este capítulo:
• Comprenderá por qué la confiabilidad y la seguridad son, por lo general, más
importantes que las características funcionales de un sistema de software;
• Entenderá las cuatro principales dimensiones de la confiabilidad, es decir: disponibilidad,
fiabilidad, protección y seguridad;
• Conocerá la terminología especializada que se usa cuando se analiza la seguridad y
confiabilidad;
• Sabrá que, para lograr un software confiable y seguro, necesita evitar errores durante el
desarrollo de un sistema, detectarlos y eliminarlos cuando el sistema esté en uso, así
como reducir el daño causado por fallas operativas.
Contenido
• 11.1 Propiedades de confiabilidad
• 11.2 Disponibilidad y fiabilidad
• 11.3 Protección
• 11.4 Seguridad
Introducción
Conforme los sistemas de cómputo se insertan profundamente en las
vidas empresariales y personales, se incrementan los problemas que
derivan de las fallas del sistema y del software.
Un ejemplo sería: Una falla del software del servidor en una empresa de
comercio electrónico podría conducir a dicha compañía hacia una gran pérdida
de ingresos y, posiblemente, también de clientes.
Introducción
La confiabilidad de los sistemas es ahora usualmente
más importante que su funcionalidad detallada por
las siguientes razones:
• 1. Las fallas del sistema afectan a un gran número
de individuos.
• 2. Los usuarios rechazan a menudo los sistemas
que son poco fiables, carecen de protecciones o
son inseguros.
• 3. Los costos por las fallas del sistema suelen ser
enormes.
• 4. Los sistemas no confiables pueden causar
pérdida de información.
Introducción
El software es siempre parte de un sistema más amplio.
Se ejecuta en un entorno operacional que incluye el hardware donde se produce el
software, en los usuarios de dicho software y los procesos de la organización o empresa
que se utiliza el software.
Por lo tanto, al diseñar un sistema confiable se debe considerar:
1. Falla del hardware: El hardware del sistema puede fallar por
errores en su diseño, componentes que se averían por errores de
fabricación o porque los componentes llegaron al final de su vida
operativa.
Figura
11.1: Principales
propiedades de
confiabilidad
1. Disponibilidad: De manera informal, la
disponibilidad de un sistema es la probabilidad de
que en un momento dado éste funcionará,
ejecutará y ofrecerá servicios útiles a los usuarios.
2. Fiabilidad: De manera informal, la fiabilidad de un
sistema es la probabilidad, durante un tiempo
determinado, de que el sistema brindará
correctamente servicios como espera el usuario.
3. Protección: De modo no convencional, la
protección de un sistema es un juicio de cuán
probable es que el sistema causará daños a las
personas o su ambiente.
4. Seguridad: Informalmente, la seguridad de un
sistema es un juicio de cuán probable es que el
sistema pueda resistir intrusiones accidentales o
deliberadas.
11.1 Propiedades de confiabilidad
Además de estas cuatro propiedades básicas de confiabilidad, también se pueden
considerar las siguientes:
• 1. Reparabilidad
• 2. Mantenibilidad
• 3. Supervivencia
• 4. Tolerancia para el error
11.1 Propiedades de confiabilidad
La noción de confiabilidad del sistema como propiedad que abarca la disponibilidad,
seguridad, fiabilidad y protección, se introdujo porque estas propiedades están
estrechamente relacionadas.
La operación segura del sistema depende, por lo general, de que éste se halle
disponible y opere de manera fiable. Un sistema se volvería no fiable cuando un
curioso corrompa sus datos.
11.1 Propiedades de confiabilidad
Por lo tanto, para desarrollar software confiable, es necesario garantizar que:
• 1. Se evite la entrada de errores accidentales en el sistema durante la especificación
y el desarrollo del software.
• 2. Se diseñen procesos de verificación y validación que sean efectivos en el
descubrimiento de errores residuales que afecten la confiabilidad del sistema.
• 3. Se desarrollen mecanismos de protección contra ataques externos que
comprometan la disponibilidad o la seguridad del sistema.
• 4. Se configuren correctamente el sistema utilizado y el software de apoyo para su
entorno operacional.
La figura 11.2 muestra la relación entre los costos y las mejoras incrementales en la
confiabilidad.
Sin embargo, si ya usa buenas prácticas, los costos de mejorar son mucho mayores
aun cuando los beneficios de dicha mejora sean modestos.
1. Fiabilidad: La probabilidad de
operación libre de falla durante cierto
tiempo, en un entorno dado, para un
propósito específico.
Los sistemas críticos para la protección son aquellos en los que resulta esencial
que la operación del sistema sea segura en todo momento; esto es, el sistema
nunca debe dañar a las personas o a su entorno, incluso cuando falle.
11.3 Protección
El software crítico para la protección se divide en dos clases:
• 1. Software primario crítico para la protección Éste es software embebido que sirve
como controlador en un sistema. El mal funcionamiento de tal software puede
repetirse en el hardware, lo cual derivaría en una lesión humana o daño ambiental.
• 2. Software secundario crítico para la protección Es un software que podría repercutir
indirectamente en una lesión. Un ejemplo de dicho software consiste en un sistema de
diseño de ingeniería auxiliado por computadora, cuyo mal funcionamiento ocasionaría
un error de diseño en el objeto por desarrollar.
11.3 Protección
Hay 4 razones por las que los sistemas de software que son fiables no necesariamente
son seguros:
• 1. Nunca se puede tener una total certeza de que un sistema de software esté libre de
fallas en el desarrollo y sea tolerante a los mismos.
• 2. La especificación podría estar incompleta en cuanto a que no describe el
comportamiento requerido del sistema en algunas situaciones críticas.
• 3. El mal funcionamiento del hardware origina que el sistema se comporte de forma
impredecible, y presente al software con un entorno no anticipado. Cuando los
componentes se hallan cerca de la falla física, éstos pueden comportarse de manera
errática y generar señales fuera de los rangos para el manejo del software.
• 4. Los operadores del sistema pueden generar entradas que no son individualmente
incorrectas, pero que, en ciertas situaciones, conducirían a un mal funcionamiento del
sistema.
11.3 Protección
Termino Definición
Accidente Evento no planeado o secuencia de eventos que derivan en muerte o lesión de un individuo, o
(contratiempo daño a la propiedad o al ambiente. Una sobredosis de insulina es un ejemplo de accidente.
Peligro Condición con el potencial para causar o contribuir a un accidente. Un ejemplo de riesgo es
una falla del sensor que mide la glucosa sanguínea.
Daño El daño puede variar desde el hecho de que muchas personas mueran como resultado de un
accidente, hasta una lesión o daño menor a la propiedad.
Severidad del peligro Una valoración del peor daño posible que resultaría de un peligro en particular. La severidad
del peligro puede ser desde catastrófico, cuando muchas personas mueren, hasta menor,
cuando sólo ocurre un daño mínimo
Probabilidad del La probabilidad de que ocurran eventos que causen peligro. Los valores de probabilidad
peligro tienden a ser arbitrarios, pero varían de “probable” (por ejemplo, 1/100 de posibilidad de que
ocurra un peligro) a “improbable”
Riesgo Ésta es una medida de probabilidad de que el sistema causará un accidente. El riesgo se valora
al considerar la posibilidad, severidad y verosimilitud de que el peligro conduzca a un
accidente. El riesgo de una sobredosis de insulina es quizá de medio a bajo.
Figura 11.6: Terminología de seguridad
11.3 Protección
La clave para garantizar la seguridad consiste en
cerciorarse de que no ocurrirán accidentes o de
que serán mínimas las consecuencias de un
accidente. Esto se logrará mediante tres formas
complementarias:
• 1. Evitar el peligro: El sistema está diseñado de
modo que se eviten los riesgos.
• 2. Detectar y eliminar el peligro: El sistema se
diseña de modo que los peligros se detecten y
eliminen antes de que ocasionen un accidente.
• 3. Limitar el daño: El sistema puede incluir
características de protección que minimicen el
daño que resulte de un accidente.
11.4 Seguridad
La seguridad es un atributo del
sistema que refleja la habilidad de
éste para protegerse a sí mismo
de ataques externos, que podrían
ser accidentales o deliberados.
Estos ataques externos son
posibles puesto que la mayoría de
las computadoras de propósito
general ahora están en red y, en
consecuencia, son accesibles a
personas externas.
11.4 Seguridad
Término Descripción
Activo Algo de valor que debe protegerse. El activo sería el sistema de software en sí o los datos usados
por dicho sistema.
Exposición Posible pérdida o daño a un sistema de cómputo. Esto sería la pérdida o el daño a los datos, o bien,
una pérdida de tiempo y esfuerzo si es necesaria la recuperación después de una violación a la
seguridad.
Vulnerabilidad Una debilidad en un sistema basado en computadora que puede aprovecharse para causar pérdida
o daño.
Ataque Aprovechamiento de una vulnerabilidad del sistema. Por lo general, es desde afuera del sistema y
es un intento deliberado por causar cierto daño.
Amenaza Circunstancias que tienen potencial para causar pérdida o daño. Se puede pensar en ellas como una
vulnerabilidad de sistema que está sujeta a un ataque.
Control Medida de protección que reduce la vulnerabilidad de un sistema. La encriptación es un ejemplo de
control que reduce la vulnerabilidad de un sistema de control de acceso débil.
Figura 11.7: Terminología de seguridad
11.4 Seguridad
Término Descripción