Índice
TEMA 1. INTRODUCCIÓN A LA SEGURIDAD INFORMÁTICA
TEMA 2. FUNDAMENTOS DE CRIPTOGRAFÍA
TEMA 4. AMENAZAS PROGRAMADAS. VIRUS
TEMA
5. SEGURIDAD EN SISTEMAS OPERATIVOS
1.- INTRODUCCIÓN A LA SEGURIDAD INFORMÁTICA.
Definición de Conceptos
Definición de seguridad informática:
medidas para preservar la información. Al establecer la seguridad
de la información nos encontramos con varios criterios o propiedades
fundamentales a preservar, que son:
Propiedades a preservar | Descripción |
Confidenciabilidad | La información debe estar disponible para los usuarios autorizados a manejar la misma (control de acceso). En el secreto debe incluirse, no sólo el de los datos, sino también el del flujo de información (cifrado de la información). |
Integridad de los datos | Permite asegurar que no se ha falseado la información. |
Autenticidad | Asegura el origen y destino de la información (firma electrónica). |
Disponibilidad | Garantiza la accesibilidad a los datos, un fallo en la disponibilidad de la información puede ser a causa de un ataque externo o de una mal configuración o implementación de la arquitectura del hardware y software. |
Conceptos de seguridad:
Clasificación de tipos de Vulnerabilidades por naturaleza:
Medidas de seguridad
Hay muchas, pero se tienen que limitar en función del coste de la información.
Las medidas de seguridad a establecer en un sistema de tratamiento de la información, son de cuatro tipos:
Principios fundamentales en la seguridad de la información
Objetivo: obtener, aplicar y cumplir unas nociones básicas en el diseño de un sistema de seguridad.
2.- FUNDAMENTOS DE CRIPTOGRAFÍA
La criptografía tiene como objetivo la protección
-ocultamiento frente a observadores no autorizados- de la información,
mediante un método matemático (interviene una llave o clave)
se transforma la información (texto en claro) en otra información
ininteligible (texto cifrado).
Para descifrar el texto en clave es necesario la
llave, el método matemático se conoce.
Criptosistema
Criptosistema: es una quíntupla de 5 elementos donde:
Todo criptosistema debe cumplir la siguiente
condición:
Si tenemos un mensaje m, lo ciframos empleando la clave k y luego lo desciframos empleando la misma clave, obtenemos de nuevo el mensaje original m.
C=Ek(m) , k pertenece a K, Ek pertenece
a E, m pertenece a M, m pertenece a C
m=Dk(c) , Dk pertenece a D
Existen dos tipos fundamentales de criptosistemas:
Dp'(Ek(m))
<> m, si p' es otra llave pública no se puede obtener el
mensaje. Dado k no se puede sacar p y dado p no se
puede sacar k (propiedad fundamental).
Cantidad de información
La cantidad de información es
una medida de la disminución de incertidumbre acerca de un suceso.
Cuanto más probabilidad P(xi) de que ocurra un suceso xi,
menos cantidad de información y viceversa.
Un ejemplo: supongamos que tenemos una bolsa con
nueve bolas negras y una blanca. ¿Cuánta información
obtenemos si alguien nos dice que ha sacado una bola blanca de la bolsa?.Y
¿cuánta obtenemos si después saca otra y nos dice
que es negra?.
La respuesta a la primera pregunta es que nos aporta información,
puesto que estábamos casi seguros de que la bola tenía que
salir negra. Análogamente si hubiera
salido negra diríamos que ese suceso no nos suministra poca
información. En cuanto a la segunda pregunta, claramente podemos
contestar que no nos aporta ninguna información, ya que al no quedar
bolas blancas sabíamos que iba a salir negra.
Este concepto de información es cuantificable
y se puede definir como:
Entropía
Dada una variable aleatoria X={x1,x2,x3,...,xn} y sus probabilidades asociadas pi, i=1...n, se defina entropía de la variable X, y se representa por H(X), como el valor medio ponderado de la cantidad de información de los diversos estados:
Dos propiedades de la entropía son:
Entropía condicional
Entropía condicionada de un suceso sobre otro (X, Y):
H(X/Y) = -Si[Sj[P(xi, yi)lg2P(xi/yi)]], donde Si[] es sumatorio desde i=1 hasta N y Sj es sumatorio desde j=1 hasta N
Cantidad de infomación entre dos variables
La cantidad de información que nos aporta el hecho de conocer X al medir la incertidumbre sobre Y es igual a la disminución de entropía que este conocimiento conlleva.
Sus propiedades son las siguientes:
i. I(X, Y ) = I(Y, X)
ii. I(X, Y )>= conjunto vacío
Criptosistema seguro de Shannon
Diremos que un criptosistema es seguro si la cantidad de información que nos aporta el hecho de conocer el mensaje cifrado c sobre la entropía del texto claro m vale cero. Es decir:
Redundancia
Si una persona lee un mensaje en el que faltan algunas letras, normalmente puede reconstruirlo. Esto ocurre porque casi todos los símbolos de un mensaje en lenguaje natural contienen información que se puede extraer de los símbolos de alrededor, o en otras palabras, porque el lenguaje natural es redundante. Puesto que tenemos mecanismos para definir la cantidad de información que presenta un suceso, podemos intentar medir el exceso de información (redundancia) de un lenguaje.
Índice de un leguaje:
El índice del Inglés es Vk = 1.3, necesita 1.3 bits por letra.
Índice absoluto de un lenguaje:
R = lg2(N), donde N es el número de letras de un lenguaje.
El índice del Español es R = 4.7 bits
La redundancia de un lenguaje se define como la diferencia entre el índice e índice absoluto del lenguaje:
Redundancia = R - V
El índice de redundancia es: I = R - V
/ R
Desinformación
Desinformación de un criptosistema es la entropía condicionada del conjunto de los mensajes cifrados: H(M/C)
H(M)=H(M/C), el conocimiento de C no informa del conocimiento de M
Distancia de unicidad
La distancia de unicidad es la cantidad de mensaje cifrado necesario para entender el mensaje. Es la longitud mínima de un sistema cifrado que aproxima el valor de H(K/C) a cero.
Confusión y Difusión
Las dos técnicas básicas para ocultar la redundancia en un texto claro son la confusión y la difusión.
Confusión: trata de confundir entre el texto cifrado y el claro, para ello se hace la sustitución.
Difusión: diluir
la redundancia del lenguaje repartiendo a lo largo del texto cifrado, para
ello se hace la transposición (cambiar de sitio los caracteres).
Aritmética Modular
Dados dos números a, b pertenecientes a N, la operación módulo es:
x mod y
Definiciones
Concurrencia módulo n: a y b son concurrentes cuando hablamos de módulo n
Para la suma se cumplen las propiedades: asociativa,
conmutativa, elemento neutro y elemento simétrico.
Para el producto se cumplen: asociativa, conmutativa
y elemento neutro.
La propiedad del producto con respecto la suma:
distributiva.
Algoritmo de Euclides (básico)
Permite calcular el máximo común divisor
de dos números.
Algoritmo:
Dados dos números a y b:
g0 = a
g1 = b
while (g1 != 0)
{
x = g0 % g1
g0 = g1
g1 = x
}//Al final g0 tendrá el mínimo
Existencia de la Inversa
a * b = 1 (mod n), dado a y n ¿existe a-1?
Si el máximo común divisor (a, n) = 1 sí existe a-1.
Función de Euler
CCR (conjunto reducido de resto): es el conjunto de números que son primos relativos con n (no comparte ningún divisor con n).
Þ(n) -» número de elementos de CRR.
Þ(n) = P[piei-1 (pi-1)], donde
P[] es el productorio desde i=1 hasta n
siendo n(estructura de cualquier número) = P[piei]
Ejemplo:
4 = 2*2 = 22
24 = 31*23
Þ(24) = 30*(3-1)*2(3-1)*(2-1) = 2*22
= 8
Si in número es primo Þ(primo) = primo - 1
Teorema:
Si m.c.d.(a, n) = 1 -» aÞ(n) = 1
n = p*q, p y q son dos números primos
m.c.d.(a, n) = 1, a(p-1)(q-1) = 1
aÞ(n) = 1 = a * aÞ(n)-1-»inversa de a
a-1= aÞ(n)-1
Algoritmo extendido de Euclides
e.e(n,a)
g0 = n, g1 = a
u0 = 1, n1 = 0
v0 = 0, v1 = 1
i = 1
While (gi != 0)
{
c = gi-1/gi
gi+1 = gi-1 % gi
ui+1 = ui-1 - c * ui
vi+1 = vi-1 - c vi
i++
}
Algoritmo de exponenciación rápida
b = 20*b0 + 21*b1 +...+ 2nbn
ab = a20*b0 + 21*b1 +...+ 2nbn = a20*b0*a21*b1*...
a2i
= (a2i-1)2
z = b
x = a
r = 1
While (z > 0)
{
if (z % 1 == 1)
r = r * x;//módulo n
x = x * x;
z = z / z;
}
Algoritmo de Lemann (para saber si un número grande es primo o no, tiene una probabilidad del 50%)
p «- nº
a aleatorio < p
b = a (p-1)/2 mod p
Si b mod p <> 1 y bmod p <> p-1
p no es primo
Sino
p tiene un 50% de ser primo
Para generar un número primo de x bits, el
bit 0 y el x-1 se ponen a 1 y los demás de un modo aleatorio.
Con una tabla de números primos pequeños
dividimos el número, si nos dice que puede ser primo aplicamos n
(n = 10) veces el algoritmo de Lemann, por lo que la probabilidad de que
p sea primo será de 1 contra 2n.
Números primos fuertes: son números primos relacionados de una forma determinada:
p y q, son 2 números primos.
1.- m.c.d. (p-1, q-1)
<<< (un número pequeño)
2.- p-1 -» p' q-1 -» q'
>>> p' y q' tienen factores primos grandes
3.- p'-1 y q'-1
>>> tienen factores primos grandes
4.- p'+1 y q'+1
>>> tienen factores primos grandes
Métodos de cifrado clásicos
1.- Monoalfabéticos: un algoritmo que establece una correspondencia sobre otro alfabeto. El alfabeto alternativo es la clase de cifrado. Es un método de sustitución.
Cifrado del Cesar: dado el alfabeto se fabrica un alfabeto alternativo que es desplazando 3 caracteres del alfabeto original.
Ejemplo:
c = k1*m+k2
c = m + k
Problema -» el cambio carácter a carácter hace que el texto de salida tenga una frecuencia similar al original.
2.- Cifrados Polialfabético: se utilizan varias tablas.
Ejemplo:
El caracter i-ésimo
se desplaza con la tabla i-ésima: ci = mi + ki mod n
Dispersión -» hacen permutaciones de un carácter en un texto.
Ejemplo:
Programa trans
-e 23 = 4-5-8-1,21-22
Tipos de algoritmos simétricos
Cifrado por Bloques
DES: trabaja con bloques de 8 bytes y emplea
llaves de 8 bytes (total 56 bits efectivos), de cada 9 bits hay 1 bit de
paridad. Para poder descifrar 8 bytes se han de probar todas las claves.
El conocimiento del mensaje cifrado no hace el conocimiento del descifrado
de un bloque de la llave. Se puede implementar mediante puertas lógicas.
problema -» cuando se da un patrón
muy básico al hacer una transformación (DES) el patrón
continua siendo el mismo.
Modo ECB: se cogen 8 bytes y se codifican y así sucesivamente.
Modo CBC: el mensaje se dividen en bloques (modo de cifrado encadenado, resuelve el problema de los patrones similares) se coge el bloque primero y se cifra con DES teniendo en cuenta un vector de inicialización.
Caso general:
Algoritmo de descifrado:
El modo CBC es el modo por defecto para los algoritmos que trabajan por bloque.
Registro de desplazamiento
Red de Feistel
Dividen un bloque de longitud n en dos mitades, L y R. Se define entonces un cifrado de producto iterativo en el que la salida de cada ronda se usa como entrada para la siguiente .
Esquema:
(DES se aplica 16
veces)
Cifrar
Li = Ri-1
Ri = (Li-1)
xor (f(Ri-1, Ki))
Descifrar
Ri-1 = Li
Li-1 = (Ri)
xor (f(Li, Ki))
Si dadas 2 llaves K1, K2 -» existe otra llave K que es la composición de las dos. EK = EK1(EK2)
Función f del DES en la red Feistel
S-Box, es una tabla de sustitución en la cual
entran n bits y salen m bits.
El DES utiliza 8 cajas de 6x4, entran 6 bits y salen
4.
Algoritmo DES
Cifrados asimétricos
Son rápidos, fácil de implementar y difícil de trabajar en un sistema abierto.
Algoritmos de llave pública
Hay 2 llaves, una pública y otra privada.
Lo que se cifra con una llave se descifra con la
otra y sólo con la otra.
Algoritmo reversible: las llaves se pueden utilizar
tanto para cifrar como para descifrar (algoritmo RSA).
Esquema:
Cualquier persona puede descifrar el mensaje con la llave pública, pero al cifrarse con la llave privada se consigue autenticidad.
Para conseguir secreto y autenticidad 1º se
firma (autenticidad) y 2º se cifra (mensaje secreto).
Algoritmo RSA
RSA se basa en la dificultad para factorizar grandes números. Las claves pública y privada se calculan a partir de un número que se obtiene como producto de dos primos grandes. El atacante se enfrentaría, si quiere recuperar un texto claro a partir del criptograma y la llave pública, a un problema de factorización.
Método:
Seleccionamos p, q dos números primos y secretos.
n = p * q -» público
e (número primo relativo a p y q) = (p-1)*(q-1), los números más usuales suelen ser el 3 o 65535.
Cuando dos números no comparten ningún factor, existe la inversa módulo n.
Existe d, tal que e * d ~ 1 en mod (p-1)*(q-1)
e*d = K*(p-1)*(q-1) + 1
C = me en módulo n
Cd en módulo n = (me)d = med = m(p-q)(q-1)+1 = m.m(q-1)(q-1)+1(función de Euler) = m.mÞ(n)
Si m>p y m<q entonces
{
m y n són
primos entre si -» mÞ(n) = 1
}
llave privada = (d, n) cifrar -» c =
me (mod n)
llave pública = (e, n) descifrar
-» m = cd (mod n)
La llave privada RSA se guarda en un fichero protegido con triple DES.
Inconvenientes de cifrado
Los algoritmos de llave pública són muy lentos frente a los de llave privada.
Solución
Se genera una llave s (llave
de sesión) aleatoria (muy grande) y se mantiene en secreto.
Se cifra con DES el mensaje
m con la llave s.
EDES S (m)
Se envía la llave s cifrada en RSA con llave
pública.
EPB(S)
Quién lo recibe:
S = DKB(C2)
-» m = DS(C1)
Donde
C1
C2
EDES
S(m), EPB(S)
ES(m)
Firma
Sabemos que un mensaje m puede ser autentificado
codificando con la llave privada Kp el resultado de aplicarle
una función resume, EKp(r(m)). Esa
información adicional (que se denomina firma) puede ser generada
por el poseedor de la clave privada Kp. Cualquiera que tenga
la llave pública correspondiente podrá decodificar y vericar
la firma.
Inconvenientes de la firma
Solución Función Resume (Hash),
es una función no inyectiva (no tiene inversa) que su resultado
es una cadena de tamaño fijo. Tiene la propiedad que al más
mínimo cambio en la entrada produce un resultado muy distinto. Dado
un resultado de función, es imposible saber de que texto viene.
Para que un función no tenga inversa debe
cumplir:
En la práctica se utilizan funciones de 128
bits (md5: tiene 128 bits, sha1 tiene 256 bits).
Si un texto es modificado, con funciones hash es
facil detectarlo
Hay una variante de estas funciones, son las MAC:
hacen un resumen de un texto con una contraseña.
Calculamos la función resume y se adjunta
con el mensaje, posteriormente se cifra el resume.
|
|
|
|
La persona que no tiene programas para desencriptar, puede leer el texto.
Comprobar la autenticidad
Calculamos H(T1)
= y
Desciframos DPA(T2)
= x
Si x = y -» correcto
x <> y -» mensaje alterado
Problema
Saber que la llave pública
de A es de A.
2 soluciones
a)
horizontal (lo utiliza el PGP): dar la clave en persona. Dar la clave entre
intermediarios que son de fiar (el intermediario firma con su llave privada,
la llave pública de otro, por lo que podemos saber su autenticidad).
b) vertical: inclusión en un proceso, un tercero de confianza (que
está en un plano superior, ejemplo un notario).
Certificados
Certificado: un objeto que nos relaciona una llave pública con una descripción (paquete que contiene la llave y datos).
Problema: modificación de datos.
Solución: se debe firmar por el notario.
En la práctica se usa el estándar X509
Documentos PKCS 7 ,10 y 12 -» describe como se utiliza el RSA.
Certificado X509
Lenguaje ASN.1 para generar estructuras de datos.
X509 |
|
|
|
|
|
|
|
Campos del Suject.
Common Name |
Country |
Locality |
State |
Organization |
Organization unit name |
Certificados autofirmados.
Subject = Issuer, la llave pública firma la
llave privada.
En la práctica hay unos notarios admitidos
comúnmente (empresa) que tienen su certificado autofirmado.
Problema estratégico: ¿cómo
se sabe que el certificado es de la empresa emisora?
Obtención de un certificado
PKCS12 (es un contenedor personal): contiene todos
los datos y las dos llaves protegidas por contraseña.
PKCS10 (es un contenedor de petición): petición
de certificado (muy parecido al certificado de autofirmado).
En el PKCS10 se genera una llave privada y la autoridad
certificadora manda un certificado request con la llave pública.
PKCS10 y certificado tienen un formato binario llamado BER -» DER (subconjunto del BER).
Formato PEM???????????????:
------------------------Begin certificate request-----------------------------------
.....................binario........................
------------------------End certificate request------------------------------------
Base 64 (ocupa un 33% más del original): formato
de codificación de datos, representa la información binaria
con un subconjunto del conjunto ASCII.
De cada 2 bytes obtenemos 3 caracteres.
Programa mimencode -u (transforma a base 64)
Formato PEM:
------------------------Begin certificate request-----------------------------------
base 64
------------------------End certificate request------------------------------------
En el caso de perder la clave privada o es robada, hay dos posibles soluciones:
En general todas las redes de computadoras se construyen conceptualmente sobre diferentes capas de abstracción, que desarrollan tareas distintas y proporcionan un protocolo unificado a las capas superiores. La Criptografía podrá entonces ser empleada en diferentes niveles de abstracción. Por ejemplo, podemos cifrar un fichero antes de transmitirlo por la red, lo cual correspondería al nivel de abstracción mayor, o podemos enviarlo en claro, pero a través de un protocolo de bajo nivel que cifre cada uno de los paquetes en los que se va a subdividir el fichero en el momento de transmitirlo.
Redes: es un sistema por el cual distintos ordenadores
pueden comunicarse de forma directa.
Redes más extendidas son TCP/IP.
Estructura de TCP/IP
Está formado por capas.
DNS: es una aplicación que se encarga de traducir los nombres
en direcciones IP.
SSL
SSL es un protocolo de comunicación (SSL v2,
SSL v3, TLS (estándar para internet)) que da una capa de seguridad
en comunicaciones on-line a bajo nivel.
En el certificado para SSL:
Common name: se pone el nombre del servidor.
1º conectar con servidor
2º servidor manda certificado
3º el cliente comprobará el valor de
la firma y si el common name es igual con el http://.......
4º cliente y servidor intercambian protocolos
criptográficos
5º hay que comprobar que el certificado es
correcto de verdad
El cliente genera un desafío que suele ser una llave de sesión aleatoria, y la envía cifrada con la llave pública del servidor; el servidor, si el es el dueño del certificado podrá descifrarlo y con la llave de sesión se podrán comunicar cliente-servidor.
En el caso de que el servidor quiera autentificar
al cliente. El servidor pide un certificado al cliente, este lo envía.
El servidor comprueba el certificado y le envía un reto.
Mail seguro
S-MIME (MIME seguro)
En los correos hay un problema con los caracteres
de control.
Correo electrónico: es texto de 7 bits.
1ª ampliación: texto de 8 bits.
Solución:
quoted-printable: coger los caracteres extraños
y se codifican = XY.
base 64: recodificación completa por cada
2 bytes -» 3 bytes.
MIME: solución para enviar correo con texto
y datos binarios combinados.
Está compuesto por:
cabecera
MIME-Versión: 1.0
Content-type: text/plain
Content-transfer: encoding:
quoted/printable
From
Subject:
From :
To Cc:
cabecera mail
From
Subject:
From:
To:
Cc:
Texto
A nivel técnico no existe el correo adjunto, se envían varios mensajes (mensajes múltiples partes).
Mensajes múltiples partes:
cabecera
MIME-Versión: 1.0
Content-type: multipart
/mixed;boundary (limitador) = "código único"
alternative
signed
Cuerpo del mensaje:
.
.
Texto de aviso MIME
.
.
__ "código"
parte
__"código"
parte
__"código"__
Cada parte del cuerpo del mail tiene el aspecto de MIME otra vez.
parte:
El MIME es recursivo y una de sus partes puede ser otro mensaje múltiple -» mixed.
Firma
Content-type: multipart/signed;boundary = "código"
__"código"
mensaje: cifrado
con la llave privada del emisor.
__"código"
content-type:application/x_pkcs7_signature
content-transfer-encoding = base 64
__"código"__
Mensaje Cifrado
Content_type: application/x_pkcs7_encrypted
Content_transfer_enconding: base 64
PKCS12: Se guarda (uso personal) los certificados, datos, autoridades...
PKCS 7:
Cadena de certificación: en un certificado se incluyen todos los certificados intermedios
PKCS 7 admite varias firmas, datos de la firma encriptados con distintas llaves públicas.
Si se envía el mismo mail cifrado para distintas personas:
Un certificado se caracteriza por el número
de serie y por quién lo firma.
Vulnerabilidades
Cuando un sistema se conecta a una red, el perímetro de seguridad aumenta.
Cada socket en escucha de un servidor es un punto de acceso al sistema.
Problema snifing: pinchar la red para escuchar la transmisión de datos.
Solución: encriptación.
Sistemas Criptográficos
Problema suplantación: es la suplantación
de la identidad dentro de una red. Puede haber suplantación de usuario,
IP,...
Usuario: se utiliza un usuario y password de otro.
IP: un pc se asigna la IP de otro.
Hijacking: el usuario con una comunicación
abierta es expulsada y se utiliza.
Protocolo smtp: emisor se puede cambiar. Solución:
firma digital.
Problema denegación de servicio: atacar al
servidor para que deje de funcionar.
Problema introducción directa en un sistema:
una persona gana acceso directo sin suplantar a nadie. Se produce por error
en aplicación.
Lista de correo donde se publican fallos de programas:
bugraq@segurityforcus.com
Hay unos organismos llamas CERT que se encargan de avisar sobre problemas graves que pueden ocurrir.
CERT en la uji -» REDIRIS:
analiza el tráfico de la red en busca de cosas anómalas.
Cuando queremos que el servidor
responda a unos hosts y otros no. Se añade un software que limita
el acceso dependiendo de la IP del host (wraper).
Firewall
Es un conjunto de políticas y técnicas cuya misión es aislar al máximo un trozo de la red del resto (coger una red de una empresa y aislarla al máximo de internet).
1º establecer políticas (quién pasará, quién no y en qué condiciones).
Para implementar las políticas de entrada
y salida se utiliza la técnica de filtrado de paquetes (establecer
un punto de la red donde se unen una red con internet, se pueda hacer una
selección de paquetes TCP/IP en base a la política).
Un firewall se configura aplicando una serie de reglas:
1ª regla política:
aceptar, denegar
Las reglas son de tipo entrada (paquetes que entran), salida(que salen)
y tránsito (que se mueven).
2º decir la IP de origen, de destino y máscara.
Si se especifica se puede poner un protocolo (TCP,
UDP,...)
En el caso de protocolos asociados a un punto se
debe especificar el número de puerto.
Se puede especificar el tipo de paquete para el
protocolo.
Las reglas se aplican en orden (importante!).
Ejemplo
En A sólo queremos un servidor de web
Firewall:
Existen 3 generaciones de comandos de firewall
con el linux.
iptables -A input -s 0/0 -d ip/32 -p tcp --dport 80 -j accept
Una forma de suavizar el firewall
entrada: ...........
.......
sentencias anteriores
puerto: 1024 en adelante
-» permitir
ACK activo
......
.....
Cuando un paquete es de respuesta a uno de petición
el ACL está activo.
Si se reciben paquetes de otras partes el ACK no
está activo y ser rechazan.
4.- AMENAZAS PROGRAMADAS. VIRUS
Conceptos
Caballo de troya: un programa que realiza
ciertas acciones, el cual no estaba destinado para ello.
Defensa: una estrategia
en política de seguridad más efectiva.
Virus: código cuya misión principal es sobrevivir a costa de los recursos de otros.
Gusano: programa que sobrevive en la red,
es como un virus.
Primero virus surgen con MS-DOS
Etapas
a)- Virus-MS-DOS / Mancintosh
b)- Virus - Windows 9x
c)- Virus - para aplicaciones (actuales)
MS-DOS
Clasificación
Virus arranque
Los virus se graban en el sector de arranque
En el ordenador el virus se copia en la parte más alta.
Virus de programa
Código que se pega al programa y al arrancar
el programa se ejecuta el virus.
Se contagian con el paso de programas, juegos...
Programas
Tipos
5.- SEGURIDAD EN SISTEMAS OPERATIVOS
Un sistema operativo gestiona procesos, memoria, usuarios, ficheros y dispositivos.
MS-DOS: S.O. que no proporciona protección para los procesos, memoria... Es un sistema monouruario y monotarea.
Usuario: es un elemento de uso de la máquina. El usuario se identifica mediante un identificador:
usuario (nombre descriptivo (un nombre, lo utilizan los usuarios), identificado (número, lo utiliza la máquina))
La autentificación se realiza mediante el uso de una password. Existen otras formas de identificación, se pueden basar en algo que el usuario es, sabe o tiene:
Password
Una clave clave secreta que sólo debe saber el usuario, lo longitud mínima razonable es 6 caracteres.
Hay sistemas que requieren de 2 passwords -»
2 personas.
La password se guarda mediante una función
unidireccional (Hash md5), se cifra pero no se puede descifrar.
En UNIX
0 --(DES)--» cifrado
(el cero se cifra con DES con la password)
UNIX clásico
Los passwords se guardaban
el fichero /etc/password, cifrados (es de acceso común):
username:password:ID:grupo:nombre y apellidos:home:shell
password cifrada: 8 caracteres en binario, se expanden en caracteres obteniendo 11 caracteres + 2 adicionales (semilla, se juntan con la password para cifrar).
UNIX moderno
username:X:ID:grupo:nombre y apellidos:home:shell
La password se guarda en
el fichero /etc/shadow, además contiene información adicional
como tiempo de caducidad (fichero de acceso restringido).
Gestión procesos y memoria
Los procesos tienen el identificador del usuario que los lanza, permite proteger el proceso del resto.
La memoria se divide por páginas. Las páginas son asignadas a los procesos y también guardan el ID. Si un proceso intenta acceder a una zona de memoria que no le corresponde, se anula dicho proceso.
En UNIX, un proceso tiene 2 identificadores de usuario:
Ficheros y dispositivos
Los dispositivos tienen un sistema de protección igual a los ficheros.
Tabla de acceso a los ficheros:
La tabla se puede tener en cuenta por filas o por columnas.
Recorrer la tabla por columnas: para cada usuario
se comprueba que ficheros/recursos puede acceder.
Recorrer la tabla por filas: para cada recurso se
comprueba que usuario puede acceder al fichero.
Dado un fichero se almacena una lista (ACL) de los
usuarios que pueden acceder y como.
Lista ACL: 3536 owned| 4546 read| 678 execute| *
delete
En UNIX normal, se definen permisos propios, de grupo
y para todos los usuarios.