You are on page 1of 23

PRIMERA UNIDAD DE APRENDIZAJE

SISTEMAS DE SEGURIDAD CRÍTICA

1.1. SEGURIDAD DE LA INFORMACIÓN Y SISTEMAS CRÍTICOS

Se denominan sistemas críticos a aquellos en los que un fallo o mal funcionamiento


ocasionaría consecuencias graves en el entorno en el que está trabajando, tanto humanas,
económicas o materiales (por ejemplo: desfibriladores cardíacos, sistemas de control de
aviónica, sistemas de control de las plantas de energía nuclear o de productos químicos,
sistemas de frenos de los automóviles, etc).

Los sistemas críticos deben tener aseguradas las siguientes propiedades:


 Confiabilidad sobre el sistema, su infraestructura y su funcionalidad
 Disponibilidad, asegurándose que el sistema esté activo y funcionando en todo
momento.
 Fiabilidad, durante un periodo de tiempo mínimo y predefinido, el sistema debe
funcionar correctamente tal como se espera.
o Corrección en el nivel de detalle preciso proporcionado al usuario.
o Precisión al proveer la información cuando esta es requerida.
 Seguridad al interactuar con los usuarios y el medio que lo rodea.
 Protección, porque debe ser capaz de soportar ataques e intrusiones premeditadas o
accidentales, para ello el sistema debe:
o Integridad sobre los datos y la información que maneja el sistema
o Permitir acceso solo a usuarios autorizados para acceder y modificar la
información.
o Garantizar la autenticación de los usuarios para implementar acciones de
auditoria.
 Mantenimiento, tanto en su forma preventiva como correctiva, se deben conocer las
condiciones que lo ameritan y el tiempo que el proceso demore.

La seguridad informática, ciberseguridad o seguridad de tecnologías de la información, es la


disciplina que se encarga del manejo de la seguridad en los sistemas, la que contempla tanto
el hardware (infraestructura computacional) y software (la información, bases de datos,
metadatos, archivos). Para ello se han desarrollado estándares, protocolos, métodos,
metodologías, algoritmos y leyes cuyo objetivo es minimizar los posibles riesgos. Sin
embargo, la seguridad informática no garantiza por si sola la seguridad de la información.

Como la mayoría de ataques y riesgos proviene del exterior de las organizaciones, la


seguridad de los sistemas depende fundamentalmente de la seguridad en la red, por lo que la
mayor parte del curso aborda el problema del aseguramiento en este sentido. El punto de
partida en el análisis de la seguridad es la capacidad de identificar de donde pueden venir las
amenazas, la mayoría de ellas proviene de:

Ing. Lucy Delgado Barra SISTEMAS DE SEGURIDAD CRITICOS


 Usuarios
 Programas maliciosos (virus, gusanos, troyano, bomba lógica, spyware o malware)
 Errores de programación usados como exploits.
 Intrusos (crackers, defacers, hackers, script kiddie o script boy, viruxers, etc.).
 Un siniestro o catástrofe natural
 Personal técnico interno
 Fallos electrónicos

NIST Computer Security Handbook, define el término computer security, de la siguiente


manera

Esta definición implica que hay tres factores claves en la seguridad computacional o
informática en torno a los cuales se han desarrollado todo un conjunto de definiciones y
recomendaciones (FIPS 199), que deben aplicarse en la etapa de definición de
requerimientos del sistema

• Confidencialidad: preservar las restricciones autorizadas sobre la información,


acceso y divulgación, incluyendo medios para proteger la privacidad personal y la
información de propiedad. Una pérdida de confidencialidad es la divulgación no
autorizada de información.
• Integridad: es proteger contra la modificación o destrucción indebida de la
información, incluyendo la garantía de no rechazo y autenticidad de la información.
Una pérdida de integridad es la modificación no autorizada o la destrucción de
información.
• Disponibilidad: Garantizar el acceso oportuno y fiable a la información y su uso. Una
pérdida de disponibilidad es la interrupción del acceso o el uso de información o un
sistema de información.
Ing. Lucy Delgado Barra SISTEMAS DE SEGURIDAD CRITICOS
Adicionalmente a ellos también es importante definir requerimientos en torno a:

• Autenticidad: garantizando que la información sea genuina y que esta pueda ser
verificada y de confianza; así como la confianza en la validez de la transmisión de
un mensaje o la fuente del mismo. Esto significa verificar que los usuarios son
quienes dicen ser y que cada entrada que llega al sistema proviene de una fuente
confiable.
• Rendición de cuentas: la meta de seguridad genera el requisito de que las acciones
de una entidad se rastreen exclusivamente a esa entidad. Esto apoya el no rechazo, la
disuasión, el aislamiento de fallas, la detección y prevención de intrusiones, y la
recuperación después de la acción y la acción legal. Debido a que los sistemas
verdaderamente seguros todavía no son un objetivo alcanzable, debemos ser capaces
de rastrear una violación de seguridad a una parte responsable. Los sistemas deben
mantener registros de sus actividades para permitir análisis forenses posteriores para
rastrear infracciones de seguridad o para ayudar en disputas de transacción.

Existen tres tipos fundamentales de sistemas críticos

a) Sistemas de seguridad críticos: son sistemas cuyo mal funcionamiento puede


provocar pérdidas de vida o generar un grave daño al medio ambiente en el tiempo,
por ejemplo: el sistema de control de fabricación de algún producto químico
b) Sistemas de misión críticos: son sistemas cuyo mal funcionamiento puede provocar
errores en algunas actividades dirigidas por objetivos, por ejemplo: el sistema de
navegación de una nave espacial
c) Sistemas de negocios críticos: son sistemas cuyo mal funcionamiento puede provocar
costes elevados para el negocio que lo utiliza, por ejemplo: un sistema de cuentas
bancarias

Según FIPS PUP 199, los costos de los ataques pueden ser de tres niveles:

• Bajo: si la pérdida tiene un efecto adverso limitado sobre la organización, sus


operaciones, activos organizacionales o individuos, lo que significa que la pérdida
de confidencialidad, integridad o disponibilidad podría (i) provocar una degradación
en la capacidad de la misión en una medida y duración tal que la organización sigue
desempeñando funciones primarias, pero otras funciones se reducen notablemente;
(ii) dar lugar a daños menores en los activos organizacionales; (iii) dar lugar a
pérdidas financieras menores; o (iv) resulte en menor daño a las personas.
• Moderado: la pérdida podría tener un efecto grave en las operaciones de la
organización, los activos de la organización o los individuos. La pérdida podría (i)
provocar una degradación significativa de la capacidad de la misión en la medida y
en la duración que la organización pueda desempeñar sus funciones primarias, pero
la eficacia de las funciones se reduce considerablemente; (ii) resultar en un daño
significativo a los activos de la organización; (iii) dar lugar a pérdidas financieras

Ing. Lucy Delgado Barra SISTEMAS DE SEGURIDAD CRITICOS


significativas; o (iv) resultar en un daño significativo a las personas, pero sin pérdida
de vidas o lesiones serias y mortales.
• Alto: la pérdida tiene un efecto adverso severo en las operaciones de la organización,
los activos de la organización o los individuos. La pérdida podría (i) provocar una
grave pérdida de la capacidad de la misión en una extensión y duración que la
organización no pueda llevar a cabo una o más de sus funciones primarias; (ii)
resultar en un daño importante a los activos de la organización; (iii) dar lugar a
pérdidas financieras importantes; o (iv) resultar en daño severo a personas que
implican pérdida de vidas o lesiones serias y potencialmente mortales.

1.2. CONFIABILIDAD, INTEGRIDAD Y DISPONIBILIDAD

1.2.1 Confiabilidad

La IEEE define confiabilidad como la “habilidad de un sistema o componente de realizar las


funciones requeridas bajo condiciones específicas en periodos de tiempo determinados”

El término “confiabilidad” fue propuesto por Laprie (1995) para cubrir los atributos
relacionados con sistemas de disponibilidad, fiabilidad, protección y seguridad. Dichas
propiedades están vinculadas, así que tiene sentido disponer de un solo término para tratarlas
a todas.

Figura 1.1 Atributos de la confiabilidad (Sommerville)

1. Disponibilidad: es la probabilidad de que en un momento dado éste funcionará, ejecutará


y ofrecerá servicios útiles a los usuarios.

2. Fiabilidad: es la probabilidad, durante un tiempo determinado, de que el sistema brindará


correctamente servicios como espera el usuario. La que considera los campos de:
• Disponibilidad: condición de trabajo que el sistema debe tener al ser encendido
luego de una parada de mantenimiento.
• Mantenibilidad: relacionado con que al ser apagado para mantenimiento el
sistema volverá a su condición de trabajo dentro de un periodo específico.
Ing. Lucy Delgado Barra SISTEMAS DE SEGURIDAD CRITICOS
• Reparabilidad: probabilidad de fallo del sistema y que pueda ser reparado bajo
condiciones y periodos específicos de tiempo.

3. Protección: cuán probable es que el sistema causará daños a las personas o su ambiente,
ello implica el preveer que el sistema falle de manera inmediata. Dentro de sus
dimensiones están:
• Disponibilidad: habilidad de entregar el servicio solamente a usuarios
autorizados, previstos en las especificaciones, cumple el mismo rol que la
disponibilidad como atributo de confiabilidad.
• Confidencialidad: habilidad de negar el servicio a usuarios no autorizados.

4. Seguridad: cuán probable es que el sistema pueda resistir intrusiones accidentales o


deliberadas. A su vez la seguridad tiene los siguientes campos asociados:
• Confidencialidad: prevención de la divulgación no autorizada de la información.
• Integridad: prevención de cualquier modificación de la información de manera
que no sea autorizada.
• Disponibilidad: prevención de la retención no autorizada de la información.
• Autentificación: todas las personas, programas y sistemas deben ser previamente
identificados.
• Sin desconocimiento: los mensajes recibidos deben de provenir realmente de
personas, programas o sistemas emisores aparentes.

No todas esas propiedades de confiabilidad son aplicables a todos los sistemas o


tienen la misma influencia, por ejemplo, si se considera un sistema de bomba de
insulina, las propiedades más importantes son la disponibilidad, la fiabilidad y la
protección, sin embargo, la seguridad no es importante porque la bomba no tiene
información confidencial o no puede ser atacada de manera maliciosa. Sin embargo,
para un sistema meteorológico a campo abierto, la disponibilidad y fiabilidad son las
propiedades más importantes, porque los costos de reparación suelen ser muy altos.
Mientras que para un sistema de información de pacientes, la seguridad es
importante, porque se deben mantener los datos de manera privada.

Además de estas cuatro propiedades básicas de confiabilidad, también se pueden considerar:

5. Reparabilidad: las fallas son inevitables, pero se minimizan si el sistema se repara


rápidamente (diagnósticar, accesar al componente y corregir). La reparabilidad en
software requiere que la organización tenga acceso al código fuente (difícil si se reutiliza
componentes)

6. Mantenibilidad: el uso constante genera nuevos requerimientos y se requieren cambio


para satisfacerlos. El software mantenible es aquel que económicamente se adapta para
lidiar con los nuevos requerimientos, y donde existe una baja probabilidad de que los
cambios insertarán nuevos errores en el sistema.

Ing. Lucy Delgado Barra SISTEMAS DE SEGURIDAD CRITICOS


7. Supervivencia: habilidad de un sistema para continuar entregando servicio en tanto está
bajo ataque y mientras que, potencialmente, parte del sistema se deshabilita. El trabajo
sobre supervivencia se enfoca en la identificación de los componentes clave del sistema
y en la garantía de que ellos puedan entregar un servicio mínimo. Para mejorar la
supervivencia se usan tres estrategias:
• resistencia al ataque
• reconocimiento del ataque
• recuperación del daño causado por un ataque.

8. Tolerancia para el error: propiedad parte de la usabilidad y refleja el diseño del sistema
para evitar y tolerar los errores de entrada de usuario. Cuando ocurren errores de usuario,
el sistema debe detectar dichos errores y corregirlos automáticamente o solicitar al
usuario que reintroduzca sus datos.

La confiabilidad no es fácil de cuantificar porque depende de muchos factores que


determinan el buen funcionamiento de sus atributos, sin embargo, hay dos maneras de
cuantificar la confiabilidad:

Predicción de la confiabilidad: se realiza mediante un lineamiento de la evaluación


segura del programa y fácilmente medible sobre las propiedades del código. Estos
modelos de predicción están basados en acercamientos relativos que en un futuro
asegurarán la eficiencia, de manera semejante a los modelos de predicción de
confiabilidad del hardware
Estimación de la confiabilidad: son modelos utilizados para realizar la estimación se
basan en la estimación de las tasas de fallos

En el caso del software los fallos o averías tienen un origen interno, aunque su manifestación
es externa, dentro de los tipos de fallos tenemos

o Fallos transitorios: desaparecen luego de un tiempo


o Fallos permanentes: no desaparecen hasta la reparación
o Fallos intermitentes: fallos transitorios con cierta periodicidad

La presencia de estos fallos degrada la confiabilidad del sistema, por lo que deben
desarrollarse acciones para evitarlos, estas acciones pueden ser:

 Prevención de fallos: evitarlos en el proceso de construcción


o Evitar fallos: durante el diseño
o Eliminar fallos: en el sistema ya construido ejecutar correcciones
 Tolerancia a fallos: aunque los fallos se produzcan, asegurar que el sistema siga
funcionando. Algunas técnicas usadas en esta área son:
o En el proceso de diseño: especificación rigurosa de requisitos, aplicación de
técnicas de diseño formales, uso de lenguajes abstractos y modulares,
implementación en base a componentes.

Ing. Lucy Delgado Barra SISTEMAS DE SEGURIDAD CRITICOS


o En el proceso de testing: revisiones frecuentes, inspecciones rigurosas al
código, verificación de funcionalidades.

Dado que los resultados no son absolutos se puede lograr:

Tolerancia completa por un intervalo de tiempo


Degradación aceptable, por un intervalo de tiempo el sistema funciona con
menores prestaciones hasta la reparación
Parada segura, se para en un estado que salvaguarda la integridad hasta la
reparación.

La tolerancia en los sistemas solo es posible por la redundancia, que implica el uso
de componentes destinados a la detección y recuperación de las fallas, aunque la
complejidad del sistema aumenta. En este caso se puede considerar:
o Redundancia estática: N versiones
o Redundancia dinámica: con un manejo dinámico de los fallos por parte del
programador, generando también N versiones

Garantizar la confiabilidad genera mayores costos en el proceso de implementación y


validación en una relación exponencial.

Figura 1.2 Relación confiabilidad/costo

En el caso del desarrollo de software, son buenas prácticas para garantizar la confiabilidad:

1. Evitar la entrada de errores accidentales en el sistema durante la especificación y el


desarrollo del software.

Ing. Lucy Delgado Barra SISTEMAS DE SEGURIDAD CRITICOS


Figura 1.3 Mapeo entrada/salida

2. Diseñar procesos de verificación y validación para descubrir errores residuales que


afecten la confiabilidad del sistema.
3. Desarrollar mecanismos de protección contra ataques externos que comprometan la
disponibilidad o la seguridad del sistema.
4. Configurar correctamente el sistema utilizado y el software de apoyo según el entorno
operacional.

Una falta de confiabilidad puede ocasionar:

1. Rechazo en los usuarios


2. Costos de los fallos de funcionamiento del sistema pueden ser enormes.
3. Pérdida de información.

El elevado costo de un fallo de funcionamiento en los sistemas críticos requiere el uso de


todos los métodos y técnicas en el desarrollo propuesto por la Ingeniería de Software,
asimismo es común que los desarrolladores se inclinen por las más usadas porque sus
debilidades son también conocidas. La mayoría de sistemas críticos son sistemas socio-
técnicos en los que existen profesionales en funciones de monitorización capacitadas para
responder a problemas inesperados, sin embargo, sus propias respuestas podrían introducir
errores. Existen tres tipos de componentes del sistema que pueden generar fallos:

1. El hardware del sistema por errores en el diseño.


2. El software del sistema por errores en las especificación, diseño o implementación.
3. Los usuarios del sistema debido a un uso incorrecto del mismo.

1.2.2 Disponibilidad y Fiabilidad

La fiabilidad de un sistema es la probabilidad de que el sistema funcione correctamente tal


y como se ha especificado, mientras que la disponibilidad de un sistema es la probabilidad
de que el sistema esté en disposición de funcionar para proporcionar los servicios ofertados
a los usuarios que lo soliciten.

Ing. Lucy Delgado Barra SISTEMAS DE SEGURIDAD CRITICOS


Ambas condiciones dependen del número de fallos que el sistema pueda presentar en su
funcionamiento. La fiabilidad considera las siguientes definiciones:

 Error humano: comportamiento humano que tiene como consecuencia la


introducción de fallas en el sistema. Por ejemplo, en una estación meteorológica un
programador podría decidir que la forma de calcular la hora para la siguiente
transmisión es agregar una hora a la hora actual. Esto funciona salvo cuando la hora
de transmisión es entre 23:00 y medianoche (medianoche es 00:00 en el reloj de 24
horas).
 Fallo del sistema: evento que tiene lugar en algún instante cuando el sistema no
funciona como esperan sus usuarios, debido a una característica del sistema. En el
ejemplo anterior si en el código no hay una verificación para saber si la hora es mayor
o igual a 23:00
 Error del sistema: estado erróneo del sistema que puede dar lugar a un
comportamiento del mismo inesperado por el usuario. En el ejemplo anterior, si se
establece la hora de transmisión en 24:xx en vez de 00.xx
 Defecto o caída del sistema: característica de un sistema software que puede dar lugar
a un error del sistema o que no se entregue un servicio, en el ejemplo si no se
transmiten datos por una hora inválida

La fiabilidad y disponibilidad se ven afectadas por estas cuatro situaciones, aunque en


diferente grado, así un error humano puede no ocasionar el fallo del sistema si fue previsto
en el diseño, un defecto puede corregirse, los errores pueden descubrirse y también
corregirse. Asimismo, la percepción de fiabilidad es distinta para cada usuario porque cada
uno lo usa de manera diferente. Estas ambigüedades se deben a las siguientes razones:

1. No todo el código de programa se ejecuta siempre, por lo que una falla en el desarrollo
(ejemplo: equivocarse al inicializar una variable) tal vez nunca se ejecute debido a la
forma en que se usa el programa.
2. Los errores son transitorios (ejemplo: una variable puede tener un valor incorrecto
causado por la ejecución de un código defectuoso, pero antes de que se acceda a ésta y
se origine una caída del sistema, es factible procesar alguna otra entrada del sistema que
restablezca el estado a un valor válido).
3. El sistema puede incluir mecanismos de detección de fallas y de protección, que aseguran
que el comportamiento erróneo se descubra y corrija antes de que resulten afectados los
servicios del sistema.

Son enfoques complementarios para mejorar la fiabilidad:

 Evitación de defectos o fallas de desarrollo: son técnicas para minimizar la


posibilidad de equivocaciones i/o fallas o la detección de las mismas, antes de que
produzcan defectos en el sistema. Ejemplos: evitar códigos del lenguaje de
programación proclives al error, como punteros y el uso de análisis estático para
descubrir anomalías del programa.
Ing. Lucy Delgado Barra SISTEMAS DE SEGURIDAD CRITICOS
 Detección y eliminación de defectos o fallas de desarrollo: técnicas de verificación
y validación, aumentando la posibilidad de detectar defectos antes de la utilización
del sistema. Ejemplos: pruebas y depuración sistemática, puntos de control.
 Tolerancia a defectos o fallas de desarrollo: técnicas para asegurar que los defectos
en el sistema no conduzcan a errores en el sistema o estos no generen caídas del
sistema

Problemas con la fiabilidad no influyen como con la confiabilidad, los usuarios aprender a
eludir los problemas que estos defectos pueden generar.

1.1.3 Seguridad

Es la propiedad del sistema de operar normal o anormalmente, sin peligro de causar daño
humano o causar daño al entorno del sistema. La mayoría de sistemas o dispositivos con
fallas críticas, sustentan su seguridad en el software a partir del cual implementan sistemas
de control.

Son términos de seguridad:

o Activo: algo que tiene valor y requiere ser protegido, puede ser también software y
datos
o Exposición: posible pérdida o daño
o Vulnerabilidad: debilidad que se puede usar para causar pérdida o daño
o Ataque: aprovechamiento de una vulnerabilidad, suele ser externo y deliberado
o Amenaza: circunstancia que puede causar pérdida o daño
o Control: medida de protección para reducir la vulnerabilidad

Existen tres tipos de amenzas:

 Amenazas a la confidencialidad del sistema y sus datos


 Amenazas a la integridad del sistema y sus datos
 Amenazas a la disponibilidad del sistema y sus datos

En el proceso de diseño del software, los requerimientos de seguridad son de tipo exclusivo
(situaciones indeseables), muy rara vez implican requerimientos de servicios, estos se
convierten entonces en requerimientos de seguridad funcionales.

En base a la criticidad de la seguridad se definen:

 Sistemas de seguridad críticos primarios: sistemas de software integrados cuyas


fallas pueden causar que el hardware asociado falle y amenace a gente de manera
directa. Por ejemplo, el sistema de control de suministro de insulina.
 Sistemas de seguridad críticos secundarios: sistemas cuyas fallas resultan en fallos
en otro sistema (socio-técnico), y estos podrían tener consecuencias en su seguridad.
Ing. Lucy Delgado Barra SISTEMAS DE SEGURIDAD CRITICOS
Por ejemplo, MHC-PMS (patient information system for mental health care) es
crítico de la seguridad ya que una falla puede llevar a una prescripción de tratamiento
inapropiada.

El desarrollo de sistemas seguros implica considerar las siguientes recomendaciones:

o Muchos de los servicios de seguridad pueden satisfacerse con etiquetas


autoexplicativas de una sola palabra: confidencialidad, autenticación, no rechazo o
integridad.
o Al desarrollar un mecanismo o algoritmo de seguridad, hay que considerar posibles
ataques a esas características de seguridad, ya que estos explotan una debilidad en el
mecanismo.
o Muchos procedimientos usados para proporcionar servicios de seguridad pueden ser
intuitivos, complejos y obvios en la declaración de un requisito particular del sistema.
o Es importante también la ubicación de los mecanismos de seguridad implementados.
Físicamente (por ejemplo, en qué puntos de una red) i/o lógicamente (por ejemplo,
en qué capa o capas de una arquitectura como TCP/IP).
o Los mecanismos de seguridad incorporan más de un algoritmo o protocolo que
requieren que los usuarios manejen alguna información secreta (por ejemplo, una
clave de cifrado) y ambas cosas deben ser consideradas y organizadas.
o La seguridad de la computadora y la red es un proceso permanente, una lucha entre
el perpetrador que intenta encontrar agujeros y debilidades y el diseñador o
administrador que trata de cerrarlos.
o Muchos usuarios y administradores solo invierten en seguridad hasta que ocurre un
fallo de seguridad, por lo que buenas prácticas son importantes en el diseño e
implementación inicial.
o La seguridad requiere un monitoreo regular y constante.
o La seguridad suele ser difícil de incorporar al sistema después de que el diseño se
completó.
o Muchos usuarios e incluso los administradores interpretan una fuerte seguridad como
un impedimento para el funcionamiento eficiente y fácil uso de un sistema.

Un sistema fiable no necesariamente seguro, ello se puede deber a:

Una especificación incompleta en el sentido de que no describe el comportamiento


requerido del sistema en algunas situaciones críticas. Esecir existe un error de
especificación y no de diseño.
Un mal funcionamiento del hardware que genera un comportamiento impredecible,
hace que el software enfrente un entorno inesperado.
Los operadores del sistema pueden generar entradas que no son individualmente
correctas, pero que, en situaciones particulares, pueden dar lugar a un mal
funcionamiento del sistema.

Ing. Lucy Delgado Barra SISTEMAS DE SEGURIDAD CRITICOS


La clave para garantizar la seguridad es asegurar que los accidentes no ocurran o que las
consecuencias de estos sean mínimas. Son enfoques para mejorar la seguridad:

 Evitación de contingencias o vulnerabilidades: en el diseño del sistema


 Detección y eliminación de contingencias o ataques: el sistema se diseña para que
las contingencias se detecten y eliminen antes de que provoquen un accidente.
 Limitación de exposición (daños) y recuperación: el sistema incluye características
de protección que minimizan el daño que puede resultar de un accidente.

1.1.4 Protección

Es el atributo del sistema que refleja su capacidad de protegerse de ataques externos sean
accidentales o provocados. Este atributo es fundamental en sistemas abiertos, lo más común,
conectados a Internet, estos sistemas aumentan la funcionalidad, pero pueden ser atacados
con intenciones hostiles, esta es la razón de versiones y parches. Un ejemplo de estos ataques
son los virus, el uso no autorizado de servicios y la modificación no autorizada del sistema
o sus datos. La protección es importante para todos los sistemas críticos. Sin un nivel
razonable de protección, la disponibilidad, fiabilidad y seguridad del sistema pueden
fracasar.

Un punto crucial aquí lo juega el sistema operativo, si este se vulneró, entonces todos los
métodos para asegurar la disponibilidad, fiabilidad y seguridad pueden fallar y el sistema de
software puede entonces corromperse y comportarse de forma impredecible. El S asegura
entonces condiciones iniciales

En segunda instancia están los errores en el diseño e implementación los que pueden
provocar agujeros de protección. Ejemplo de ello, es cuando el sistema no responde a
entradas inesperadas o si los límites de un vector no se verifican, entonces los atacantes
pueden explotar estas debilidades para tener acceso al sistema. Los incidentes de protección
más importantes tales como el gusano de Internet original (Spafford, 1989) y el gusano Code
Red (Berghel, 2001) se aprovecharon de que los programas en C no incluyen verificación de
los límites de los vectores. Los gusanos sobrescribieron parte de la memoria con código que
permitió el acceso no autorizado al sistema.

El control de hardware de los sistemas críticos para la protección es más fácil de implementar
y analizar que el control del software. A pesar de ello, ahora se construyen sistemas de tal
complejidad que no pueden controlarse tan sólo con el hardware. El control del software es
esencial debido a la necesidad de manejar gran cantidad de sensores y actuadores con leyes
de control complejas. Por ejemplo, una aeronave militar avanzada, aerodinámicamente
inestable, requiere ajuste continuo, controlado por software, de sus superficies de vuelo para
garantizar que no se desplome. El software crítico para la protección se divide en dos clases:

Ing. Lucy Delgado Barra SISTEMAS DE SEGURIDAD CRITICOS


 Software primario crítico para la protección sirve como controlador en un sistema.
El mal funcionamiento de este puede repetirse en el hardware, lo cual derivaría en
una lesión humana o daño ambiental.
 Software secundario crítico para la protección podría repercutir indirectamente en
una lesión. Por ejemplo, los sistemas CAD

Existen tres tipos de daños que pueden ser causados por ataques externos:

 Denegación de servicio: el sistema entra en un estado en que sus servicios normales


no están disponibles.
 Corrupción de programas o datos: los componentes software pueden ser alterados
de forma no autorizada, lo que puede afectar la fiabilidad y la seguridad.
 Revelación de información confidencial: la información gestionada puede ser
expuesta a personas no autorizadas.

En torno a la protección se definen los siguientes términos:

 Exposición: posible pérdida o daño en un sistema informático.


 Vulnerabilidad: debilidad en un sistema que se puede aprovechar para provocar
pérdidas o daños.
 Ataque: aprovechamiento de la vulnerabilidad de un sistema.
 Amenazas: circunstancias que potencialmente pueden provocar pérdidas o daños.
 Control: medida de protección para reducir la vulnerabilidad del sistema.

Son enfoques para mejorar la seguridad:

 Evitar la vulnerabilidad
 Detección y neutralización de ataques
 Limitación de exposición

Estos enfoques nos dicen que la protección está más en el uso de los sistemas que en sus
características técnicas

1.2 CRIPTOGRAFÍA

La palabra Criptografía proviene del griego "kryptos" que significa oculto, y "graphia", que
significa escritura, y su definición según el diccionario es "Arte de escribir con clave secreta
o de un modo enigmático". La Criptografía es el conjunto de técnicas (Teoría de la
Información, Algorítmica y Teoría de números o Matemática Discreta) para la protección o
el ocultamiento de la información frente a observadores no autorizados.

La criptografía debe proteger la información contra accesos no autorizado, interceptación,


modificación o inserción de información, prevenir acceso y uso no autorizado de los
recursos, prevenir la denegación de servicios a los que sí están permitidos. En la actualidad
Ing. Lucy Delgado Barra SISTEMAS DE SEGURIDAD CRITICOS
se centra su aplicación sobre redes telemáticas (identificación, autenticación, control de
acceso a recursos, confidencialidad e integridad de mensajes transmitidos y su no rechazo).

La encriptación es la tecnología hardware o software, para cifrar mensajes de correo


electrónico, información de base de datos y otros datos, con el fin de mantenerlos
confidenciales.

El encriptamiento es el conjunto de procesos que mantiene la seguridad en los sistemas


distribuidos, cuando dos entidades se comunican, deben establecer una clave de
comunicación para la autentificación, con ella se convierte un texto a un texto encriptado a
partir de un conjunto de transformaciones en las que se aplican diversos algoritmos a un
conjunto de parámetros de entrada. Con ello se implementa la codificación de información
antes de ser transmitida.

La estenografía es ocultar en el interior de una información inocua, otro tipo de información


que puede estar cifrada o no, lo que permite burlar el control.

El criptoanálisis es el conjunto de técnicas usadas para romper los códigos que encriptan la
información, finalmente, la criptología, agrupa tanto la criptografía como el criptoanálisis.

Las funciones o servicios de seguridad propios de la criptografía son:

 Confidencialidad: solamente usuarios autorizados tienen acceso a la información o


servicio.
 Integridad de la información: garantía a los usuarios de que la información original no
será alterada, ni intencional ni accidentalmente.
 Autenticación de usuario: proceso que permite al sistema verificar si el usuario que
pretende acceder o hacer uso del sistema es quien dice ser.
 Autenticación de remitente: proceso que permite a un usuario certificar que el mensaje
recibido fue enviado por el remitente y no por un suplantador.
 Autenticación del destinatario: proceso que garantiza la identidad del usuario
destinatario.
 No repudio en origen: que cuando se reciba un mensaje, el remitente no pueda negar
haber enviado dicho mensaje.
 No repudio en destino: que cuando se envía un mensaje, el destinatario no pueda negar
haberlo recibido cuando le llegue.
 Autenticación de actualidad (no replay): consiste en probar que el mensaje es actual, y
que no se trata de un mensaje antiguo reenviado.

Existen dos tipos de criptosistemas:

a) Criptosistema simétricos o de clave privada: son aquellos que emplean la misma clave
k tanto para cifrar como para descifrar, entonces emisor y receptor deben conocer la
clave k, lo que genera el problema adicional de transmitir la clave de forma segura.
Ing. Lucy Delgado Barra SISTEMAS DE SEGURIDAD CRITICOS
b) Criptosistema asimétricos o de llave pública, emplean una doble clave (kp, kP). Kp es
la clave privada y kP la clave pública. Una de ellas se usa para la transformación de
cifrado y la otra para la transformación de descifrado. A veces son intercambiables y se
debe cumplir que el conocimiento de la clave pública kP no permita calcular la clave
privada kp. En estos sistemas se pueden establecer comunicaciones seguras por canales
inseguros. Este tipo de sistemas se dividen en dos ramas:
 Cifrado de clave pública: un mensaje cifrado con la clave pública de un destinatario
no puede ser descifrado por nadie (ni siquiera el que lo cifró), excepto el poseedor
de la clave privada correspondiente, se utilizan para confidencialidad.
 Firmas digitales: el mensaje se firma con la clave privada del remitente y puede ser
verificado por cualquier persona que tenga acceso a la clave pública del remitente,
se utilizan para la autenticidad.

Dentro de las principales tecnologías de encriptación tenemos:

Virtual PrivateNetworking(VPN): usado para asegurar datos en Internet.


SecuresocketsLayer(SSL): para asegurar transacciones web cliente–servidor
S-MIME: para asegurar transacciones de e-mail
Protocolo WPA: para asegurar transacciones inalámbricas.
Key Hopping: nueva tecnología para redes WLAN 802.11a y 802.11b, basada en
MD5, tecnología usada en la autentificación de tarjetas de crédito. La tecnología
utiliza un sistema gestor de claves que permiten transmitir por ondas de radio claves
seguras saltando de frecuencia, lo que impide a los intrusos interceptar las claves y
romper la encriptación.

1.2.1 Cifrados y códigos

Hay dos métodos de alterar las representaciones de los mensajes para hacerlos ininteligibles
a intrusos:

 Usando códigos: consiste en sustituir unidades textuales semánticas más o menos largas
o complejas, habitualmente palabras o frases, para ocultar el mensaje; por ejemplo, "cielo
azul" podría significar «atacar al amanecer». En la segunda guerra mundial se usaron
códigos en lengua navaja para identificar mensajes militares. Por ejemplo, chai-da-gahy-
nail-tsaidi (asesino de tortugas) quería decir “armas antitanque”. Esta técnica requiere
recopilar la información secreta en un diccionario o libro de códigos (codebook).
 Por cifrado: es una transformación carácter por carácter o bit por bit, sin importar la
estructura lingüística del mensaje. Para descifrar se utiliza otro algoritmo que permite
obtener la cadena original. Estos sistemas están controlados por claves que son entradas
a los algoritmos usados. Si la clave de cifrado es igual que la de descifrado se dice que
es un cifrado simétrico. Si son distintas se dice que es un cifrado asimétrico. Es necesario
considerar el Principio de Kerckhoffs, llamado de seguridad por oscuridad, que define
que la seguridad de un sistema de cifrado debe estar en el secreto de las claves y no en

Ing. Lucy Delgado Barra SISTEMAS DE SEGURIDAD CRITICOS


el secreto del algoritmo. La difusión del algoritmo permite que los especialistas evalúen
la seguridad del algoritmo.

1.2.2 Evolución

 La criptografía surge en el antiguo Egipto, romanos y griegos para las órdenes militares.
Los espartanos utilizaron (400 A.C.) la Escitala, que usa transposición (alterar el orden)
se escribia en una tela sobre una vara, el mensaje sólo podía leerse si se enrollaba la tela
sobre un bastón del mismo grosor.

Figura 1.4.- La escitala

 Julio César se basó en la sustitución de cada letra por la situada tres puestos después en
el alfabeto latino (cifrado César).
 En la Edad Media por usos papales surgen los sistemas por sustitución polialfabética,
que emplea varios abecedarios, saltando de uno a otro cada tres o cuatro palabras. El
emisor y el destinatario han de ponerse de acuerdo para fijar la posición relativa de dos
círculos concéntricos, que determinará la correspondencia de los signos.

Figura 1.5.- Discos de Alberti

 Un siglo después, aparecen las claves, formada por una palabra o una frase, debe
transcribirse letra a letra sobre el texto original. Cada letra del texto se cambia por la
correspondiente en el alfabeto que comienza en la letra clave, Cifrado Vigenère (Blaise
de Vigenère, S. XVI). Débil por razones estadísticas.
 En el siglo XX apareces teletipos con rotores móviles que giraban con cada tecla
generando un código polialfabético complejo (traductores mecánicos, Rueda de
Jefferson)
 La primera patente data de 1919, y es obra del holandés Alexander Koch, que comparte
honores con el alemán Arthur Scherbius, el inventor de Enigma una máquina
criptográfica a rotor que los nazis creyeron inviolable (“hackeada” por Turing)
Ing. Lucy Delgado Barra SISTEMAS DE SEGURIDAD CRITICOS
Figura 1.6.- Rueda de Jefferson y Enigma

 Surgen luego los algoritmos modernos basados en tecnologías electrónicas y digitales

o DES (IBM)
o sistemas de cifrado asimétrico o de clave pública (como RSA)
o sistemas de cifrado simétricos o de clave privada
o la firma digital como aplicación del cifrado asimétrico

 El desarrollo de la teoría criptográfica actual, se sustenta en los trabajos de Claude


Shannon “A Mathematical Theory of Communication" (1948) y "Communication
Theory of Secrecy Systems" (1949) y Whitfield Diffie, Martin Hellman "New directions
in Cryptography" (1976). Con la publicación del algoritmo RSA en 1977 por parte de
los matemáticos Ron Rivest, Adi Shamir y Len Adleman la criptografía de clave pública
se consolida.

1.3 CRIPTOGRAFÍA SIMÉTRICA

Son sistemas de cifrado, definidos formalmente como una quíntupla (X, Y, K, E, D), donde:

 X conjunto de todos los mensajes sin cifrar (texto plano o plaintext) que pueden ser
enviados.
 Y conjunto de todos los posibles mensajes cifrados, o criptogramas.
 K conjunto de claves que se pueden emplear en el criptosistema.
 E conjunto de transformaciones de cifrado o familia de funciones que se aplica a cada
elemento de M para obtener un elemento de C. Existe una transformación diferente Ek
para cada valor posible de la clave k.
 D conjunto de transformaciones de descifrado, análogo a E.

Todo criptosistema funciona a partir de la siguiente relación:

Dk (Y) =Dk (Ek (X)) = X

Es claro entonces que el esquema de cifrado simétrico tiene cinco componentes:

 Texto plano o Plaintext: es el mensaje o dato inteligibles originales que se introduce en


el algoritmo como entrada.

Ing. Lucy Delgado Barra SISTEMAS DE SEGURIDAD CRITICOS


 Algoritmo de cifrado: algoritmo que realiza sustituciones y transformaciones en el texto
plano.
 Clave secreta: también se introduce en el algoritmo de cifrado, es un valor independiente
del texto sin formato y del algoritmo. El algoritmo producirá una salida diferente
dependiendo de la clave específica que se esté utilizando en ese momento, las
sustituciones y transformaciones exactas realizadas por el algoritmo dependen de la
clave.
 Texto cifrado: mensaje codificado producido a la salida. Depende del texto plano y de la
clave secreta. Para un texto plano, dos claves diferentes producirán dos textos cifrados
diferentes. El texto cifrado debe ser ininteligible.
 Algoritmo de descifrado: es esencialmente el algoritmo de cifrado ejecutado en sentido
inverso, toma el texto cifrado y la clave secreta y produce el texto plano original.

Figura 1.7 Modelo simplificado de la encriptación simétrica

Los requerimientos de seguridad son:

1. Un algoritmo de encriptación fuerte, de tal forma que, si una persona externa que conoce
e algoritmo y accede a un texto cifrado, no podrá desencriptarlo sin la clave o descubrir
la clave aun cuando posea varios textos encriptados y los textos planos originales.
2. El remitente y el receptor deberán obtener copias de la clave secreta de una manera
segura y deben mantener la llave segura.

Figura 1.8 Criptosistema Simétrico

Ing. Lucy Delgado Barra SISTEMAS DE SEGURIDAD CRITICOS


Los sistemas criptográficos se definen por:

a) El tipo de operaciones usadas en la transformación de texto plano en texto cifrado, estas


operaciones dependen del algoritmo de cifrado, los cuales consideran: la sustitución (cada
elemento del texto plano -bit, letra, grupo de bits o letras- se mapea en otro elemento, y
la transposición, para reordenar los elementos en el texto plano. En estas operaciones no
se debe perder información (operaciones reversibles).
b) El número de claves utilizadas, emisor y receptor pueden usar la misma clave (cifrado
simétrico o de clave privada) o usar diferentes claves (cifrado asimétrico o de clave
pública).
c) La forma en que se procesa el texto sin formato. Un cifrado de bloque procesa la entrada
de un bloque de elementos a la vez, produciendo un bloque de salida para cada bloque de
entrada. Un cifrado de flujo procesa los elementos de entrada de forma continua,
produciendo un elemento de salida a la vez, a medida que avanza.

1.3.1 Ataques

Atacar un sistema de encriptación siempre tiene por objetivo el obtener la clave de


encriptación, más que un mensaje particular, para ello existen dos esquemas posibles:

 El cirptoanálisis: usando el conocimiento del algoritmo de encriptación y algunos


ejemplos disponibles de texto plano y texto cifrado, pueden tener como objetivo la
obtención de la clave o la deducción de un texto específico.
 Fuerza bruta: se prueban todas las posibles claves sobre un determinado texto cifrado
hasta obtener un posible texto plano. Estadísticamente, se debe probar al menos la mitad
de todas las claves posibles para lograr el éxito.

La obtención de la clave quita toda la protección a mensajes pasados, presentes y futuros.


Existen varios tipos de ataques criptoanalíticos en función de la información conocida, los
ataques más complejos se dan cuando solo se tiene un texto cifrado, pero hay que suponer
siempre que el atacante conoce también el algoritmo, si esto es cierto es posible un ataque
de fuerza bruta, si este fuera el caso la cantidad de posibles claves o llaves debe ser enorme,
en este caso cabría esperar algún análisis estadístico sobre el texto cifrado, para obtener
alguna información posible sobre el texto plano (idioma, tipo de archivo, un listado desde
Java, etc.).

Un ataque es exitoso si genera una ruptura en el algoritmo, Bruce Schneier define el ataque:
"Romper un cifrado simplemente significa encontrar una debilidad en el cifrado que puede
ser explotada con una complejidad inferior a la de la fuerza bruta. No importa que la fuerza
bruta pudiera requerir 2128cifrados; un ataque que requiera 2110 cifrados se consideraría
una ruptura... puesto de una manera simple, una ruptura puede ser tan sólo una debilidad
certificacional: una evidencia de que el código no es tan bueno como se publicita" (Schneier,
2000).

Ing. Lucy Delgado Barra SISTEMAS DE SEGURIDAD CRITICOS


1.3.2 Tipos de ataques

a) Según el objetivo del atacante

 Ataques pasivos: no se altera el mensaje, solo se escucha. Usa técnicas de escucha


de paquetes (sniffing) y de análisis de tráfico.
 Ataques activos: se modifica la información o se crea información falsa. Hay muchas
técnicas que se usan en este tipo de ataques:
o Suplantación
o Modificación de mensajes: borrado (dropping attacks), modificado (tagging
attack) o reordenado
o Reactuación: capturar paquetes y retransmitirlo
o Degradación de servicio

b) Según el conocimiento previo: todo ataque se asume presumiendo el conocimiento del


algoritmo (Máxima de Shannon "el enemigo conoce el sistema"). Además del algoritmo
los ataques podrían conocer:

 Ataque con sólo texto cifrado disponible: sólo se tiene acceso a una colección de
textos cifrados o codificados.
 Ataque con texto plano o claro conocido: el atacante tiene un conjunto de textos
cifrados de los que conoce el correspondiente texto claro o descifrado.
 Ataque con texto claro escogido (ataque con texto cifrado elegido): el atacante puede
obtener los textos cifrados correspondientes a un conjunto arbitrario de textos claros
de su elección.
 Ataque adaptativo de texto claro escogido: como el anterior, pero el atacante puede
elegir textos claros subsiguientes basándose en la información obtenida de los
descifrados anteriormente.
 Ataque de clave relacionada: como un ataque de texto claro escogido, pero el atacante
puede obtener texto cifrado utilizando dos claves diferentes. Las claves son
desconocidas, pero la relación entre ambas es conocida; por ejemplo, dos claves que
difieren en un bit.

c) Clasificación según el objetivo en criptoanálisis: el criptógrafo Lars Knudsen (Knudsen,


1998) clasificó varios tipos de ataque sobre cifrados por bloques de acuerdo con la
cantidad y la calidad de la información secreta que pudiera ser descubierta:

 Ruptura total: se deduce la clave secreta.


 Deducción global: se descubre un algoritmo funcionalmente equivalente para el
cifrado y descifrado de mensajes, pero no la clave.
 Deducción local (o de instancia): se descubre textos claros o cifrados adicionales a
los conocidos previamente.
 Deducción de información: se descubre alguna información en el sentido de Shannon
que no era conocida previamente.

Ing. Lucy Delgado Barra SISTEMAS DE SEGURIDAD CRITICOS


 Distinción del algoritmo: distingue información cifrada de una permutación al azar.

d) Clasificación según el coste: según la cantidad de recursos que requieren:

 Tiempo: número de operaciones elementales (suma, XOR, desplazamientos, etc.).


 Memoria: cantidad de almacenamiento.
 Datos: cantidad de textos claros y cifrados necesaria.

Se dice que un sistema de cifrado es incondicionalmente seguro si el texto cifrado no


contiene suficiente información para determinar de forma exclusiva el texto plano,
independientemente de cuánto texto cifrado esté disponible. Prácticamente estos sistemas no
existen, así que hay que asegurar el cumplimiento de uno o ambos de los siguientes criterios,
con lo que se dice que el sistema es seguro desde el punto de vista computacional:

El costo de romper el cifrado excede el valor de la información cifrada.


El tiempo necesario para romper el cifrado excede la vida útil de la información.

Figura 1.9 Tiempo promedio para descifrar claves en un ataque de fuerza-bruta

Todos los algoritmos de encriptación simétrica, se basan en dos operaciones elementales: la


sustitución y la transposición.

1.3.3 Técnicas de Substitución

a) Sustitución Monoalfabética: existe un alfabeto y siempre al texto en claro le va a


corresponder el mismo criptograma.

Ing. Lucy Delgado Barra SISTEMAS DE SEGURIDAD CRITICOS


 Cifrado del César: algoritmo monográmico, sustituye cada letra del texto original por
otra situada tres posiciones delante de ella en el alfabeto que se esté utilizando (luego de
Z viene A)
 Ejemplo:
 MCla: MUCHOS AÑOS DESPUES
 Cripto: OXFKRV DQRV GHVSXHV
Para el alfabeto en español el valor numérico de cada letra es

El algoritmo de encriptación será:


C=E(3,p)=(p+3) mod 27

Generalizando, k es la clave toma 25 valores posibles


C=E(k,p)=(p+k) mod 27

El algoritmo de desencriptación será:


p=D(k,C)=(C-k) mod 27

Ejemplo de la fuerza-bruta para este cifrado: (algortimos conocidos, solo 26 claves y el


lenguaje es conocido)

 Cifrado Playfair, algoritmo poligrámico (digrámico), un par de letras de un texto claro


se convierten en otro par distinto, la clave es una matriz de cifrado de 5x5 (sin ñ y con
i=j). Veamos la matriz construida a partir de la palabra MONEDA

Ing. Lucy Delgado Barra SISTEMAS DE SEGURIDAD CRITICOS


Reglas:
1. Dos letras repetidas se separan por una x. Ejemplo MALLA sería MA LX LA, si la
palabra tiene un número impar de letras se coloca una x al final.
2. Si las dos letras se encuentran en el mismo fila de la matriz, cada una de ellas se
sustituye con la letra que esté a su derecha. Por ejemplo, ED se cifra como DM.
3. Si las dos letras se encuentran en la misma columna, cada una de las letras se
sustituye por la letra debajo de ella. Por ejemplo, AV se cifra HM
4. En otro caso, la primera letra de la pareja se sustituye por la que este en la intersección
de su misma fila y la columna de la segunda letra, la segunda letra se sustituye por la
que este en la intersección de su misma fila y la columna de la primera letra.
Por ejemplo: BT se cifra FR

COMO ESTAS = CO MO ES TA SX se cifraría como BN NM NT FQ NN

 Cifrado Atbash
 Cifrado de Polybios.

b) sustitución polialfabética: el criptograma del texto claro puede ser diferentes


dependiendo de la clave que se utilice para cifrar, por lo que se dice que existen múltiples
alfabetos de cifrado, de ahí el nombre de sustitución polialfabética.

 Cifrado de Alberti
 Cifrado por desplazamiento
 Cifrado de Vigenère
 Cifrado de Vernam
 Cifrado One-Time Pad

Ing. Lucy Delgado Barra SISTEMAS DE SEGURIDAD CRITICOS

You might also like