Directivas de seguridad informática


Seguridad y protección:


Un sistema informático ofrece servicios a usuarios humanos en el seno de una sociedad u organización. Algunos tipos de servicios son:Gestión de información (p.Ej. Transacciones financieras, archivos personales, etc.),Control de otras actividades (p.Ej. Procesos industriales, control de tráfico, etc.),Servicios empotrados en un aparato (p.Ej. Automóviles, robots…).

Los recursos del sistema informático son limitados:

hay un coste inherente a su utilización, que puede ser repercutido en forma de tarifa o impuestos a los usuarios.

En toda sociedad u organización humanas existen unas restricciones de uso de la información:

derechos de intimidad; información que representa o es sujeto de propiedad; etc. En tales casos es necesario restringir según qué usuario el acceso a la información del sistema.

SEGURIDAD INFORMÁTICA:

Garantizar la integridad, disponibilidad y privacidad de la información contenida en un sistema informático,Permitir la distinción de clases de usuarios, con diferentes autorizaciones sobre el uso de los recursos del sistema.

La seguridad informática:

es una materia amplia, que abarca entre otras cosas: los modos de trabajo de las personas, los dispositivos físicos de seguridad y la seguridad interna de la máquina y el sistema operativo.

Seguridad externa:

la referente a las instalaciones del sistema informático y al acceso de personas al sistema y su información. Contempla estas dos áreas:

Seguridad física

De las instalaciones. Incluye medidas de prevención o recuperación de siniestros, y control de acceso al sistema.

Seguridad operacional

Políticas y mecanismos de seguridad: niveles de autorización o responsabilidad, métodos de acceso, protocolos de comunicación.

Seguridad interna:

la que se refiere a la circuitería del sistema, o a los asuntos de seguridad del sistema operativo.

PROTECCIÓN

Parte de la seguridad interna relativa al control de acceso de programas, procesos o usuarios a los recursos de un sistema informático.

Tipos de amenazas
contra la integridad del sistema


Uso negligente o incorrecto
Siniestros (daños físicos al sistema)
Uso no autorizado o indebido
Sabotaje (acto deliberado de alterar el funcionamiento del sistema)

Estas amenazas pueden ser accidentales o intencionadas.

Intrusión:


Entrada no autorizada o indebida en el sistema. También llamada penetración.


Posibles efectos de las amenazas


Revelación de información no autorizada
Destrucción de información
Utilización indebida de servicios del sistema
Daños físicos al sistema
Degradación en el funcionamiento del sistema
Denegación de acceso a usuarios autorizados

Algunos intentos de intrusión


Basados en: oportunismo, búsqueda de información útil, programación, etc.

žRobo o espionaje de contraseñas
žAprovechar descuidos
žRecolección de basura
žInspección de información del sistema
žEscucha electrónica
žPrueba y error: programas analizadores de contraseñas, descifradores, etc.

Programas señuelo: caballo de Troya; ardid de engaño
Utilización de una «puerta trasera» (backdoor)
Explotación de agujeros del sistema

Software malicioso


Programas cuyo propósito directo o indirecto es violar la seguridad del sistema

Gusanos (worms) y virus: programas orientados al sabotaje del sistema
Caballos de Troya

Objetivos del sistema de seguridad


žEstablecer de forma eficaz un sistema de autorizaciones de utilización de los recursos y la información
žPrevenir o evitar las amenazas a la seguridad
žDetectar los intentos de intrusión y llevar un control de las operaciones auditoría
žRecuperarse de las violaciones de la seguridad robustez
žResolver lo anterior consumiendo el mínimo de recursos, y sin que represente una gran molestia a los usuarios (en suma, con el menor coste)


El sistema de autorizaciones ha de definir:

žForma en que se genera, añade, borra o extrae información
žFlujos de información interna permitidos
žAutorizaciones de acceso a la información
žAutorizaciones de uso de recursos en general

Seguridad. Principios nada válidos


žBuena fe: siempre habrá usuarios malintencionados o negligentes
žMenosprecio del atacante
žOptimismo (recordar la Ley de Murphy)


Seguridad


Principios de diseño

(Saltzer y Schroeder)

Mínimo privilegio


Cada sujeto ha de tener el mínimo de privilegios para realizar sus funciones Separación de privilegios
Procurar que tengan que satisfacerse varias condiciones para realizar una funciónMínimo mecanismo común
Minimizar los recursos compartidosSimplicidad de mecanismo
Evitar complicaciones innecesariasMediación completa
Hacer la comprobación de acceso siempreValores predeterminados seguros
La opción por omisión debería ser denegar el acceso al recurso Diseño público
La eficacia del sistema de seguridad no debe basarse en el secreto del diseñoAceptabilidad por los usuarios
El sistema de seguridad debe ser fácil de cumplir y poco molesto

Validación de usuarios

Validación o autentificación: mecanismos para admitir o denegar el acceso de usuarios

El mecanismo de validación ha de ser lo más cómodo, aceptado por los usuarios, barato y difícil de replicar o robar.

Debería minimizar las falsas aceptaciones así como los falsos rechazos de usuarios.

Clases de mecanismos:

Contraseña algo conocido por la persona
Artefacto algo poseído por la persona
Biometría algo carácterístico de la persona

Contraseñas

žEl mecanismo más popular y económico
žMuy fáciles de implementar
žNo requieren hardware adicional
žImponen esfuerzos al usuario
žSu sustracción o adivinación es difícil de detectar
žExigen mecanismos más elaborados para garantizar cierto nivel de seguridad

Artefactos

Tarjetas magnéticas, llaves, etc.

žCómodas de usar y aceptadas socialmente
žCasi siempre son multifunción (sirven para otras cosas)
žEvitan caballos de Troya
žPueden ser difíciles de replicar
žSu pérdida o robo es fácilmente detectado

Métodos biométricos

Carácterísticas fisiológicas (huella dactilar, vasos retinales) o conductuales (firma, patrón de voz, etc.)

žRequieren hardware más costoso
žPrácticamente imposibles de replicar
žLa tasa de falsos rechazos puede ser alta
žTienden a ser rechazados socialmente

Contraseñas


Si son fáciles de recordar, son fáciles de adivinar

Solución


Contraseñas aleatorias generadas por el sistema
difíciles de recordar se tienden a anotar se pueden robar

Contraseñas multinivel, o una por tipo de servicio incómodo

Reto dinámico: plantear un enigma conocido por el usuario impracticable

Limitación de intentos consecutivos, p.Ej. Con subsiguiente desconexión de la terminal o cancelación de la cuenta riesgo de denegación de servicio o de merma de eficiencia

Caducidad de contraseñas que expiren al cabo de cierto tiempo

Medidas de protección típicamente a cargo del sistema operativo o el hardware

Establecer niveles de privilegio mediante circuitería:

žModo dual de operación
žProtección de segmentos de memoria
žProtección de acceso a periféricos
žProtección de la gestión de eventos (interrupciones, temporizador…)


Limpieza de almacenamiento borrado evita obtención de información por recolección de basura

Servicios de registro de auditoría ofrecidos por el sistema operativo

Replicación de la información (copia de seguridad, etc.)

Autocomprobación de consistencia de la información (sumas de control, códigos correctores de error…) ð antivirus

Criptografía: cifrado en las transmisiones y en el almacenamiento de datos altamente sensibles (como las contraseñas, ficheros personales…)

Modelo formal de protección

En un computador, en materia de protección, consideramos que un conjunto de sujetos (entidades activas=procesos o usuarios) realiza operaciones sobre objetos (cualquier recurso, información, etc.)

Cada objeto admite un conjunto de operaciones sobre él.

Los sujetos y objetos pueden aparecer y desaparecer en el transcurso de la existencia del sistema (ej. Nuevos procesos, nuevos ficheros)

Derecho de acceso:


Autoridad de un sujeto para ejecutar una operación

Cada sujeto posee un conjunto de derechos de acceso sobre cada recurso.

Dominio de protección:


conjunto de derechos de acceso, como una lista de pares <objeto, conjunto de derechos>

En cada momento, un proceso se ejecuta dentro de un dominio de protección.

Dominios de protección

Ejemplo de representación de dominios de protección:

pepe.Cjuan.Ccca.Outimpresora D1leer escribir ejecutarborrar crear ejecutar imprimir D2leer escribir ejecutarborrar crear ejecutar
Al conjunto de dominios de protección se le llama a veces matriz de acceso

¿Qué representa un dominio de protección?
··un usuario (UNIX) o un grupo de usuarios
·un proceso
·un procedimiento (Hydra)
Los dominios de protección o los derechos de acceso pueden también considerarse objetos.

Por poner un caso, puede definirse el derecho de acceso que permita a un proceso ejecutarse en un dominio de protección determinado.


Ejemplo: matriz de acceso que define el ciclo de vida de un proceso de edición/compilación/ejecución de un programa.


pepe.C a.Out cc impresora D1 D2 D3 D1crear leer escribir cambiar a D2 leercrear borrar escribir ejecutar cambiar a D3 ejecutar imprimir eliminar eliminar eliminar

Obsérvese que en este ejemplo se atiende al principio de mínima necesidad.

Implementación
de los dominios de protección

La matriz de acceso es sólo una construcción teórica; potencialmente es ilimitada y además es escasa (muchas casillas en blanco).

Mecanismos desarrollados:

žReglas implícitas
žJerarquías de acceso
žEncapsulamiento (en lenguajes de programación)

žListas de acceso
žCapacidades
··Llaves y cerraduras

Reglas implícitas

Evitan expresar la información sobre protección en estructuras de datos.

Muy común es considerar que un usuario es un dominio de protección, o alguna variante de este principio.

Ejemplo: En Unix, cada objeto o proceso tiene un usuario propietario
. Determinadas operaciones (matar un proceso, cambiar permisos de un fichero) sólo se pueden efectuar si el usuario propietario del proceso actuante coincide con el del objeto.

El usuario se autentifica mediante un mecanismo de nombre y contraseña; tras autentificarse, queda en un dominio de protección correspondiente al UID del usuario.

Jerarquía de accesos

Establecer un conjunto de niveles jerárquicos de acceso a los recursos, y las transiciones permitidas entre ellos.

Modo dual de operación (modo supervisor/modo usuario): dos niveles.

Múltiples niveles de operación.
Ej. Modo núcleo, modo sistema, modo administrador, modo usuario.

Anillos de protección (MULTICS)

n niveles, cada uno asociado a un dominio de protección.
Cada proceso se ejecuta en un nivel k; tiene como dominio de protección a la uníón de los dominios de nivel i £ k.

Solución muy limitada: no se pueden definir dominios de protección que no sean jerárquicos.


Encapsulamiento en lenguajes de programación

Muchos lenguajes protegen los objetos declarados en los programas mediante estructuración del código en bloques, compilación separada de módulos, abstracción de tipos de datos, etc.

Listas de accesos

Cada objeto tiene asociada una lista de elementos <dominio,derechos>, con los derechos de acceso existentes sobre él ð las celdas no vacías de su columna en la matriz de accesos

La información de protección puede así estar dispersa: cada objeto tiene su lista aparte.

Las celdas vacías de la matriz de acceso no están representadas.

Variantes:

Listas con derechos por omisión (si no apareces en las listas, se te concede el derecho por omisión)
Listas denegatorias (quien aparece en ellas, no tiene el derecho indicado)

Capacidades

Una capacidad es la representación de un dominio de protección: funciona a modo de boleto que da derecho a acceder a un objeto, de la manera especificada en la propia capacidad.

Desde el punto de vista de un lenguaje de programación, una capacidad es un puntero protegido.

Una capacidad representa conceptualmente una fila de la matriz de accesos.

Una capacidad es un tipo especial de apuntador a objetos.

Cada sujeto (proceso) posee una lista de capacidades, que le permiten acceder de forma controlada a los objetos del sistema.

Basta la posesión de la capacidad para tener acceso al objeto correspondiente (con los derechos asociados a la capacidad). No hay verificación adicional.

El sistema ha de garantizar que un proceso no pueda utilizar capacidades que no posee.


Un proceso actúa sobre los objetos invocando servicios del tipo operación ( capacidad, parámetros… ), servicios proporcionados por el sistema operativo.


En el sistema puede haber muchas capacidades distintas que apunten al mismo objeto, pero con diferentes derechos.


Implementación de un sistema de capacidades

Como las capacidades son apuntadores a objetos, la implementación de un mecanismo de capacidades se entremezcla con la gestión de la memoria (primaria o secundaria).

La lista de capacidades, o las capacidades mismas han de estar protegidas por hardware, de forma que un proceso o usuario no pueda crear sus propias capacidades.


Formas de implementar el sistema:

žMemoria marcada
žMemoria segmentada
žCapacidades cifradas
Memoria marcada

Cada objeto tiene una marca que indica su tipo: en este caso, se distinguiría entre capacidades o palabras de memoria normales.
Sólo el sistema operativo estaría facultado para crear objetos de tipo capacidad.

Ejemplo:

direccióntipocontenido

. . .. . .

123NORMAL33124CAPACIDAD489783498125NORMAL12345126NORMAL970567

. . .. . .

Inconveniente: exige un modelo de memoria distinto al de Von Neumann.

Memoria segmentada

Se hace uso de una tabla local de capacidades por proceso; y una tabla global de objetos. Ambas estructuras han de estar protegidas, para evitar que un proceso cree o altere capacidades de forma incontrolada.

Ejemplo:

Ventaja: implementable a partir de un sistema de memoria segmentadaCapacidades cifradas

La capacidad es un patrón de bits formado por el identificador de objeto, los derechos de acceso y una suma de control (checksum):

id. Objetoderechossuma de control

Toda esta información está cifrada por el sistema, de forma que los componentes son irreconocibles.

No se precisan tablas de objetos ni de capacidades, puesto que toda la información de direccionamiento y protección está autocontenida en la capacidad.
Por ello este mecanismo es ideal para sistemas distribuidos.

Existe la probabilidad de generar indebidamente una capacidad válida, pero es prácticamente nula gracias al cifrado y la suma de control, si tienen una gran cantidad de bits.

En lugar de sumas de control, se pueden usar marcas de tiempo (timestamps) con el instante de creación de la capacidad ðdificulta más su generación indebida

Manipulación de capacidades

Podrán existir servicios para:

··crear una capacidad nueva
··destruir una capacidad
··recortar los derechos de una capacidad
·copiar o mover una capacidad a otro proceso o usuario

Para evitar problemas de seguridad, podemos definir un proceso propietario de cada capacidad, el cual sea el único con poder para eliminarla. O recortar sus derechos.


Comparación entre capacidades y listas de accesos

En un sistema basado en capacidades, la información de protección reside en los sujetos (las listas de capacidades), en vez de en los objetos, como ocurre con las listas de acceso.

Las capacidades son además direcciones de objetos.

Ventajas de las capacidades:


El sistema de acceso a objetos puede ser más rápido con capacidades, dado que no se hacen recorridos en listas. La dirección del objeto viene dada por la propia capacidad.

Se pueden transferir derechos de acceso entre los procesos fácilmente y sin tener que alterar listas de accesos.

Inconvenientes de las capacidades:


Es difícil conocer qué procesos tienen derechos de acceso sobre un objeto en particular.

Si un proceso revoca una capacidad, ¿cómo se consigue que afecte a los otros procesos que poseen esa misma capacidad?

Si un objeto desaparece, ¿cómo se invalidan todas las capacidades relativas a ese objeto?

Llaves y cerraduras

Mecanismo intermedio entre las listas de accesos y las capacidades.

Cada objeto dispone de un conjunto de cerradurasð patrones de bits únicos en el sistema. Cada cerradura se asocia a un conjunto de derechos.

Cada dominio de protección posee un conjunto de llaves ð patrones de bits únicos, cada uno de los cuales encaja con una llave en el sistema.


Un proceso puede efectuar una operación con un objeto sólo si el dominio bajo el que se ejecuta posee una llave específica para alguna de las cerraduras del objeto.

Tanto las llaves como las cerraduras han de estar protegidas, de la misma forma que las capacidades.


Este mecanismo goza de las ventajas de las capacidades, a la vez que simplifica el problema del borrado de objetos que existe con las capacidades.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.