viernes, 29 de agosto de 2014
6.8 Cifrado
Existen muchas defensas frente a
los ataques informaticos, que abarcan toda la gama que va desde la
metodologia a la tecnologia. La herramienta de caracter mas general que
esta a disposicion de los usuarios y de los disenadores de sistemas es
la criptografia. En esta seccion vamos a explicar algunos detalles
acerca de la criptografia y de su uso en el campo de la seguridad
informatica.
En una computadora aislada, el sistema operativo puede determinar de manera fiable quienes son el emisor y el receptor de todas las comunicaciones interprocesos, ya que el sistema operativo controla todos los canales de comunicaciones de la computadora. En una red de computadoras, la situacion es bastante distinta. Una computadora conectada a la red recibe bits desde el exterior, y no tiene ninguna forma inmediata y fiable de determinar que maquina o aplicacion ha enviado esos bits. De forma similar, la propia computadora envia bits hacia la red sin tener ninguna forma de determinar quien puede llegar a recibirlos.
Comunmente, se utilizan las
direcciones de red para inferir los emisores y receptores potenciales
de los mensajes que circulan por la red. Los paquetes de red llegan con
una direccion de origen, como por ejemplo una direccion IP. Y cuando
una computadora envia mensajes, indica quinen es el receptor pretendido
del mismo especificando una direccion de destino. Sin embargo, para
aquellas aplicaciones en que la seguridad tenga importancia,
correriamos el riesgo de meternos en problemas si asumieramos que la
direccion de origen o de destino de un paquete permite determinar con
fiabilidad quien a enviado o recibido dicho paquete. Una computadora
maliciosa podria enviar un mensaje con una direccion de origen
falsificada y, asimismo, otras muchas computadoras distintas de la
especificada por la direccion de destino podrian (y normalmente hacen)
recibir un paquete. Por ejemplo, todos los encaminadores ubicados en la
ruta hacia el destino recibiran tambien el paquete. ?como puede,
entonces, decidir el sistema operativo si debe conceder una solicitud,
cuando no puede confiar en el origen especificado en dicha solicitud?
?y como se supone que debe proporcionar proteccion para una solicitud o
para un conjunto de datos, cuando no puede determinar quien recibira
la respuesta o el contenido del mensaje que envie a traves de la red?
Generalmente, se considera
impracticable construir una red (de cualquier tamano) en la que se
pueda “confiar” en este sentido en las direcciones de origen y destino
de los paquetes. Por tanto, la unica alternativa es eliminar, de alguna
manera, la necesidad de confiar en la red; este es el trabajo de la
criptografia. Desde un punto de vista abstracto, la criptografia
se utiliza para restringir los emisores y/o receptores potenciales de
un mensaje. La criptografia moderna se basa en una serie de secretos,
denominados clave , que se distribuyen selectivamente a
las computadoras de una red y se utilizan para procesar mensajes. La
criptografia permite al receptor de un mensaje verificar que el mensaje
ha sido creado por alguna computadora que posee una cierta clave: esa
clave es el origen del mensaje. De forma similar, un emisor puede
codificar su mensaje de modo que solo una computadora que disponga de
una cierta clave pueda decodificar el mensaje, de manera que esa clave
se convierte en el destino . Sin embargo, a diferencia de las
direcciones de red, las claves estan disenadas de modo que no sea
computacionalmente factible calcularlas a partir de los mensajes que se
hayan generado con ellas, ni a partir de ninguna otra informacion
publica. Por tanto, las claves proporcionan un medio mucho mas fiable
de restringir los emisores y receptores de los mensajes. Observe que la
criptografia es un campo de estudio completo por derecho propio, con
una gran complejidad; aqui, vamos a explorar unicamente los aspectos
mas importantes de aquellas partes de la criptografia que se relacionan
con los sistemas operativos.
Sistema de privacidad criptografico
En un sistema de privacidad
criptografico, el remitente desea transmitir cierto mensaje no cifrado a
un receptor legitimo, la transmision ocurre sobre un canal inseguro
asume ser monitoreado o grabado en cinta por un intruso.
El remitente pasa el texto a una
unidad de encriptacion que transforma el texto a un texto cifrado o
criptograma; el mismo no es entendible por el intruso. El mensaje es
transmitido entonces, sobre un canal seguro. Al finalizar la recepcion
el texto cifrado pasa a una unidad de descripcion que regenera el
texto.
Criptoanalisis
Criptoanalisis es el proceso de
intentar regenerar el mensaje desde el texto cifrado pero sin
conocimiento de las claves de encriptacion. Esta es la tarea normal de
los intrusos. Si el intruso o criptoanalista no puede determinar un
mensaje desde el texto cifrado (sin la clave), entonces el sistema de
criptografiado es seguro.
Metodos y tecnicas de encriptacion
Cesar
Esta tecnica consistia simplemente
en sustituir una letra por la situada tres lugares mas alla en el
alfabeto esto es la A se transformaba en D, la B en E y asi
sucesivamente hasta que la Z se convertia en C.
Gronsfeld
Este metodo utiliza mas de un
alfabeto cifrado para poner en clave el mensaje y que se cambia de uno a
otro segun se pasa de una letra del texto en claro a otra.
Es decir que deben tenerse un
conjunto de alfabetos cifrados y una forma de hacer corresponder cada
letra del texto original con uno de ellos.
RSA
En los sistemas tradicionales de
cifrado debe comunicarse una clave entre el emisor y el receptor del
mensaje, el problema aqui es encontrar un canal seguro para transmitir
dicha clave. Este problema viene a resolverse en los sistemas de clave
publica la clave de cifrado, pues un tiempo enormemente de ordenador es
necesario para encontrar una transformacion de descifrado a partir de
la de cifrado.
DES
DES fue desarrollado por IBM a
mediados de los setenta. Aunque tiene un buen diseno, su tamano de
clave de 56 bits es demasiado pequeno para los patrones de hoy.
DES (Data Encryption Standard) es un
mecanismo de encriptacion de datos de uso generalizado. Hay muchas
implementaciones de hardware y software de DES. Este transforma la
informacion de texto llano en datos encriptados llamados texto cifrado
mediante el uso de un algoritmo especial y valor semilla llamado clave.
Si el receptor conoce la clave, podra utilizarla para convertir el
texto cifrado en los datos originales. Es un mecanismo de encriptado
simetrico.
Chaffing & Winnowing
Esta tecnica propuesta por Donald
Rivest. Es mas un intento de esquivar las restricciones a la
criptografia en EE.UU. (y otros paises) que una propuesta razonable
debido al tamano de los mensajes resultantes.
El termino ingles “winnowing” se
tomara como aventar es decir separar el grano de la paja y el termino
“chaffing” por el castellano empajar (cubrir o rellenar con paja). La
idea basica consiste en mezclar la informacion real (grano) con otra de
relleno (paja) de modo que sea imposible separarlas excepto para el
destinatario.
SKIPJACK
Este algoritmo fue descalificado por
el gobierno de Estados Unidos. Algunos detalles sobre el algoritmo en
si y sus aplicaciones en la practica a los chips Clipper y Capstone.
Skipjack fue desarrollado por la NSA
inicialmente para los chips Clipper y Capstone. Su diseno comenzo en
1985 y se completo su evaluacion en 1990.
BIFIDO
El metodo Bifido es un cifrado
fraccionario. Es decir que cada letra viene representada por una o mas
letras o simbolos, y donde se trabaja con estos simbolos mas que con
las letras mismas.
WLBYKYAAOTB
Este metodo altera la frecuencia de
los caracteres a diferencia de lo que ocurre por ejemplo con los
cifrados monoalfabeticos. Admite algunas variaciones como por ejemplo
dividir la lista en 3,4,..., n partes.
Cifrado exponencial
Es un sistema basado en la exponenciacion modular, debido Pohlig y Hellman (1978). Este metodo es resistente al criptoanalisis.
Blowfish
Este algoritmo realiza un cifrado
simple en 16 ciclos, con un tamano de bloque de 64 bytes para un total
de 448 bits. Aunque hay una fase compleja de la inicializacion. El
cifrado de datos es muy eficiente en los microprocesadores grandes.
Cifrado
La gran desventaja de las llaves
secretas es que requieren un canal seguro para ser distribuidas - Si
una contrasena es enviada por un canal inseguro puede ser interceptada,
y no habria manera de lograr que quien la intercepte descifre con ella
los mensajes enviados, o evitar que modifique o envie mensajes
falsificando su identidad. No siempre disponemos de un canal seguro. Lo
que es mas, estrictamente hablando, los canales seguros simplemente no
existen. Sea como sea que la informacion sea transmitida, siempre
podra ser escuchada por un tercero. Si hace falta tener un canal seguro
para intercambiar las contrasenas, la utilidad de las contrasenas se
vuelve nula.
La primera respuesta a estos problemas viene de Diffie y Hellman [ 5 ],
siendo una de las implementaciones mas comunes la RSA (por las siglas
de sus autores, Rivest, Shamir y Adelman). Ellos proponen un sistema en
el cual haya dos funciones: E
![]()
Las funciones E
Otra importante caracteristica de
los algoritmos derivados del trabajo de Diffie y Hellman es que las
funciones aplicadas son simetricas: Se puede aplicar tanto D
Una fuerte desventaja de las llaves
asimetricas es su complejidad matematica. Ademas de ser mucho mas
complejas las funciones necesarias para realizar este tipo de cifrado,
esto se refleja desde el tamano de la llave: Las mas cortas empleadas
hoy en dia son de 512 bits, y no se consideran seguras de menos de
1024. No es poco comun, por otra parte, encontrar llaves de hasta 2048
bits.
Sistemas de cifrado simetrico.
Los sistemas de cifrado simetrico
son aquellos que utilizan la misma clave para cifrar y descifrar un
documento. El principal problema de seguridad reside en el intercambio
de claves entre el emisor y el receptor ya que ambos deben usar la
misma clave. Por lo tanto se tiene que buscar tambien un canal de
comunicacion que sea seguro para el intercambio de la clave. Es
importante que dicha clave sea muy dificil de adivinar ya que hoy en
dia los ordenadores pueden adivinar claves muy rapidamente. Por ejemplo
el algoritmo de cifrado DES usa una clave de 56 bits, lo que significa
que hay 72 mil billones de claves posibles. Actualmente ya existen
ordenadores especializados que son capaces de probar todas ellas en
cuestion de horas. Hoy por hoy se estan utilizando ya claves de 128
bits que aumentan el "espectro" de claves posibles (2 elevado a 128) de
forma que aunque se uniesen todos los ordenadores existentes en estos
momentos no lo conseguirian en miles de millones de anos.
Sistemas de cifrado asimetrico.
Tambien son llamados sistemas de
cifrado de clave publica. Este sistema de cifrado usa dos claves
diferentes. Una es la clave publica y se puede enviar a cualquier
persona y otra que se llama clave privada, que debe guardarse para que
nadie tenga acceso a ella. Para enviar un mensaje, el remitente usa la
clave publica del destinatario para cifrar el mensaje. Una vez que lo
ha cifrado, solamente con la clave privada del destinatario se puede
descifrar, ni siquiera el que ha cifrado el mensaje puede volver a
descifrarlo. Por ello, se puede dar a conocer perfectamente la clave
publica para que todo aquel que se quiera comunicar con el destinatario
lo pueda hacer.
Un sistema de cifrado de clave
publica basado en la factorizacion de numeros primos se basa en que la
clave publica contiene un numero compuesto de dos numeros primos muy
grandes. Para cifrar un mensaje, el algoritmo de cifrado usa ese
compuesto para cifrar el mensaje. Para descifrar el mensaje, el
algoritmo de descifrado requiere conocer los factores primos, y la
clave privada tiene uno de esos factores, con lo que puede facilmente
descifrar el mensaje.
Es facil, con los ordenadores de hoy
en dia, multiplicar dos numeros grandes para conseguir un numero
compuesto, pero es muy dificil la operacion inversa, Dado ese numero
compuesto, factorizarlo para conocer cada uno de los dos numeros.
Mientras que 128 bits se considera suficiente en las claves de cifrado
simetrico, y dado que la tecnologia de hoy en dia se encuentra muy
avanzada, se recomienda en este caso que la clave publica tenga un
minimo de 1024 bits. Para un ataque de fuerza bruta, por ejemplo, sobre
una clave publica de 512 bits, se debe factorizar un numero compuesto
de hasta 155 cifras decimales.
Autenticacion
Autenticacion ( Griego : αυθεντικ??
= verdadero o genuino, de ' los authentes' = el autor) es el acto de
establecimiento o confirmacion de algo (o alguien) como autentico, es
decir que reclama hecho por o sobre la cosa son verdadero. La
autenticacion de un objeto puede significar (pensar) la confirmacion de
su procedencia, mientras que la autenticacion de una persona a menudo
consiste en verificar su identidad. La autenticacion depende de uno o
varios factores de autenticacion.
En terminos de seguridad de redes de
datos, se puede considerar uno de los tres pasos fundamentales (AAA).
Cada uno de ellos es, de forma ordenada:
Autenticacion En la seguridad de
ordenador, la autenticacion es el proceso de intento de verificar la
identidad digital del remitente de una comunicacion como una peticion
para conectarse. El remitente siendo autenticado puede ser una persona
que usa un ordenador, un ordenador por si mismo o un programa del
ordenador. En un web de confianza, "autenticacion" es un modo de
asegurar que los usuarios son quien ellos dicen que ellos son - que el
usuario que intenta realizar funciones en un sistema es de hecho el
usuario que tiene la autorizacion para hacer asi.
Mecanismo general de autenticacion
La mayor parte de los sistemas
informaticos y redes mantienen de uno u otro modo una relacion de
identidades personales (usuarios) asociadas normalmente con un perfil
de seguridad, roles y permisos. La autenticacion de usuarios permite a
estos sistemas asumir con una seguridad razonable que quien se esta
conectando es quien dice ser para que luego las acciones que se
ejecuten en el sistema puedan ser referidas luego a esa identidad y
aplicar los mecanismos de autorizacion y/o auditoria oportunos.
El primer elemento necesario (y
suficiente estrictamente hablando) por tanto para la autenticacion es
la existencia de identidades biunivocamente identificadas con un
identificador unico (valga la redundancia). Los identificadores de
usuarios pueden tener muchas formas siendo la mas comun una sucesion de
caracteres conocida comunmente como login .
El proceso general de autenticacion consta de los siguientes pasos:
Distribucion de claves
Lo ideal seria que pudieramos
distribuir nuestra clave entregandosela en persona a nuestros
corresponsales. Sin embargo, en la practica las claves se distribuyen a
menudo por correo electronico o algun otro medio de comunicacion
electronica. La distribucion por correo electronico es una buena
practica solo cuando tengamos unos pocos corresponsales, e incluso si
tuvieramos muchos corresponsales, podriamos usar un medio alternativo
como puede ser publicar nuestra clave publica en nuestra pagina en
Internet. Sin embargo, esto es inutil si las personas que necesitan
nuestra clave publica no saben donde encontrar nuestra pagina.
Para solventar este problema existen
los servidores de claves publicas, que recolectan y distribuyen las
claves publicas. Cuando un servidor recibe una clave publica, bien la
anade a la base de datos o bien la fusiona con una copia de la clave.
Cuando alguien requiere al servidor una clave publica, este la busca en
la base de datos, y si la encuentra, la envia a quien se la haya
solicitado.
Los servidores de claves tambien son
utiles cuando hay muchas personas que firman las claves de otras con
frecuencia.
|
6.7 Validación y amenazas al sistema
• Identificar cada usuario que esta trabajando en el sistema (usando los recursos).
• Uso de contrasenas.
• Vulnerabilidad de contrasenas.
- o Que sean complejas y dificiles de adivinar.
- o Cambiarlas de vez en cuando.
- o Peligro de perdida del secreto.

• La contrasena debe guardare cifrada.
Las clases de elementos de autentificacion para establecer la identidad de una persona son:
Algo sobre la persona:
- Ej.: huellas digitales, registro de la voz, fotografia, firma, etc.
- Algo poseido por la persona:
- Ej.: insignias especiales, tarjetas de identificacion, llaves, etc.
- Algo conocido por la persona:
- Ej.: contrasenas, combinaciones de cerraduras, etc.
El esquema mas comun de autentificacion es la proteccion por contrasena:
El usuario elige una palabra clave , la memoriza, la teclea para ser admitido en el sistema computarizado:
- La clave no debe desplegarse en pantalla ni aparecer impresa.
La proteccion por contrasenas tiene ciertas desventajas si no se utilizan criterios adecuados para:
Elegir las contrasenas.
- Comunicarlas fehacientemente en caso de que sea necesario.
- Destruir las contrasenas luego de que han sido comunicadas.
- Modificarlas luego de algun tiempo.
Los usuarios tienden a elegir contrasenas faciles de recordar:
Nombre de un amigo, pariente, perro, gato, etc.
- Numero de documento, domicilio, patente del auto, etc.
Estos datos podrian ser conocidos por quien intente una violacion a la seguridad mediante intentos repetidos, por lo tanto debe limitarse la cantidad de intentos fallidos de acierto para el ingreso de la contrasena.
La contrasena no debe ser muy corta para no facilitar la probabilidad de acierto.
Tampoco debe ser muy larga para que
no se dificulte su memorizacion, ya que los usuarios la anotarian por
miedo a no recordarla y ello incrementaria los riesgos de que
trascienda.
Contraseñas de un solo uso
• Al final de cada sesion, se le pide al usuario que cambie la contrasena.
• Si alguien “roba una contrasena”,
el verdadero usuario se dara cuenta cuando vaya a identificarse de
nuevo, pues el impostor habra cambiado la contrasena, con lo que el
fallo de seguridad queda detectado.
Verificación de Amenazas
Es una tecnica segun la cual los usuarios no pueden tener acceso directo a un recurso :
Solo lo tienen las rutinas del S. O. llamadas programas de vigilancia.
- El usuario solicita el acceso al S. O.
- El S. O. niega o permite el acceso.
- El acceso lo hace un programa de vigilancia que luego pasa los resultados al programa del usuario.
- Permite:
- Detectar los intentos de penetracion en el momento en que se producen.
- Advertir en consecuencia.
Amenazas relacionadas con los programas
Los procesos son junto con el kernel ,
el unico medio de realizar un trabajo util en una computadora. Por
tanto, un objetivo comun de los piratas informaticos consiste en
escribir un programa que cree una brecha de seguridad. De hecho, las
mayorias de las brechas de seguridad no relacionadas con programas
tienen por objetivos crear una brecha que si este basada en un
programa. Por ejemplo, aunque resulta util iniciar una sesion en un
sistema sin autorizacion, normalmente es mucho mas util dejar un
demonio de tipo puerta trasera que proporcione
informacion o que permita un facil acceso incluso aunque se bloquee la
brecha de seguridad original. En esta seccion, vamos a describir
algunos metodos comunes mediante los que os programas pueden provocar
brechas de seguridad. Hay que resaltar que existe una considerable
variacion en lo que respecta a los convenios de denominacion de los
agujeros de seguridad, y que en este texto utilizamos los terminos mas
comunes o descriptivos.
- CABALLO DE TROYA
Definicion.- Un programa indudablemente util e inocente que contiene codigos escondidos que permiten la modificacion no autorizada y la explotacion o destruccion de la informacion. Los programas caballo de Troya se distribuyen por lo general por Internet. Los juegos, freeware y protectores de pantalla son los medios comunes que utilizan los caballos de Troya.
Se denomina troyano (o caballo de Troya , traduccion mas fiel del ingles Trojan horse
aunque no tan utilizada) a un programa malicioso capaz de alojarse en
computadoras y permitir el acceso a usuarios externos, a traves de una
red local o de Internet, con el fin de recabar informacion o controlar
remotamente a la maquina anfitriona.
Un troyano no es de por si, un
virus, aun cuando teoricamente pueda ser distribuido y funcionar como
tal. La diferencia fundamental entre un troyano y un virus consiste en
su finalidad. Para que un programa sea un "troyano" solo tiene que
acceder y controlar la maquina anfitriona sin ser advertido,
normalmente bajo una apariencia inocua. Al contrario que un virus, que
es un huesped destructivo, el troyano no necesariamente provoca danos
porque no es su objetivo.
Suele ser un programa pequeno
alojado dentro de una aplicacion, una imagen, un archivo de musica u
otro elemento de apariencia inocente, que se instala en el sistema al
ejecutar el archivo que lo contiene. Una vez instalado parece realizar
una funcion util (aunque cierto tipo de troyanos permanecen ocultos y
por tal motivo los antivirus o anti troyanos no los eliminan) pero
internamente realiza otras tareas de las que el usuario no es
consciente, de igual forma que el Caballo de Troya que los griegos
regalaron a los troyanos.
Habitualmente se utiliza para
espiar, usando la tecnica para instalar un software de acceso remoto
que permite monitorizar lo que el usuario legitimo de la computadora
hace (en este caso el troyano es un spyware o programa espia) y, por
ejemplo, capturar las pulsaciones del teclado con el fin de obtener
contrasenas (cuando un troyano hace esto se le cataloga de keylogger) u
otra informacion sensible.
La mejor defensa contra los troyanos
es no ejecutar nada de lo cual se desconozca el origen y mantener
software antivirus actualizado y dotado de buena heuristica; es
recomendable tambien instalar algun software anti troyano, de los
cuales existen versiones gratis aunque muchas de ellas constituyen a su
vez un troyano. Otra solucion bastante eficaz contra los troyanos es
tener instalado un firewall.
Otra manera de detectarlos es
inspeccionando frecuentemente la lista de procesos activos en memoria
en busca de elementos extranos, vigilar accesos a disco innecesarios,
etc.
Lo peor de todo es que ultimamente
los troyanos estan siendo disenados de tal manera que es imposible
poder detectarlos excepto por programas que a su vez contienen otro
tipo de troyano, inclusive y aunque no confirmado, existen troyanos
dentro de los programas para poder saber cual es el tipo de uso que se
les y poder sacar mejores herramientas al mercado llamados tambien
"troyanos sociales"
Los troyanos estan actualmente ilegalizados, pero hay muchos crackers que lo utilizan.
PUERTA TRASERA
En la informatica, una puerta trasera (o en ingles backdoor ), es una secuencia especial dentro del codigo de programacion mediante el programador puede acceder o escapar de un programa en caso de emergencia o contingencia en algun problema.
A su vez, estas puertas tambien
pueden ser perjudiciales debido a que los crackers al descubrirlas
pueden acceder a un sistema en forma ilegal y aprovecharse la falencia.
“Cualquier medio capaz de
ampliar el alcance del hombre es lo suficientemente poderoso como para
derrocar su mundo. Conseguir que la magia de ese medio trabaje para los
fines de uno, antes que en contra de ellos, es alcanzar el
conocimiento.” Alan Kay.
“Es extrana la ligereza con que los malvados creen que todo les saldra bien.” Victor Hugo.
A pesar de que no se consideran propiamente como virus, representan un riesgo de seguridad importante, y usualmente son desconocidas la inmensa gama de problemas que estas puedan llegar a producir. Al hablar de estas nos referimos genericamente a una forma "no oficial" de acceso a un sistema o a un programa.
A pesar de que no se consideran propiamente como virus, representan un riesgo de seguridad importante, y usualmente son desconocidas la inmensa gama de problemas que estas puedan llegar a producir. Al hablar de estas nos referimos genericamente a una forma "no oficial" de acceso a un sistema o a un programa.
Algunos programadores dejan puertas
traseras a proposito, para poder entrar rapidamente en un sistema; en
otras ocasiones existen debido a fallos o errores.
Ni que decir tiene que una de las
formas tipicas de actuacion de los piratas informaticos es localizar o
introducir a los diversos sistemas una puerta trasera y entrar por
ella.
El termino es adaptacion directa del ingles backdoor que comunmente significa “puerta de atras”.
Lo usual en estos programas los
cuales no se reproducen solos como los virus, sino que nos son enviados
con el fin de tener acceso a nuestros equipos muchas veces a traves
del correo electronico, por lo que la mayoria de las veces no son
faciles de detectar y por si solos no siempre causan danos ni efectos
inmediatos por su sola presencia, siendo asi pueden llegar a permanecer
activos mucho tiempo sin que nos percatemos de ello.
Generalmente estos se hacen pasar
por otros, es decir, se ocultan en otro programa que les sirve de
caballo de Troya para que el usuario los instale por error.
Lo peor que puede pasarle cuando esta en el messanger o en el ICQ
no es que contraiga su PC un virus. Lo peor es que alguien instale un backdoor en su PC. Las puertas traseras son faciles de entender.
no es que contraiga su PC un virus. Lo peor es que alguien instale un backdoor en su PC. Las puertas traseras son faciles de entender.
Como todo en Internet se basa en la
arquitectura cliente / servidor, solo se necesita instalar un programa
servidor en una maquina para poder controlarla a distancia desde otro
equipo, si se cuenta con el cliente adecuado, esta puede bien ser la
computadora de un usuario descuidado o poco informado.
Las puertas traseras (backdoors) son
programas que permiten acceso practicamente ilimitado a un equipo de
forma remota. El problema, para quien quiere usar este ataque, es que
debe convencerlo a usted de que instale el servidor.
Por eso, si aparece un desconocido
ofreciendole algun programa maravilloso y tentador, no le crea de
inmediato. Lo que estan probablemente a punto de darle es un troyano,
un servidor que le proporcionara a algun intruso acceso total a su
computadora.
Con todo el riesgo que esto implica,
hay una forma simple y totalmente segura de evitarlo: no acepte
archivos ni mucho menos ejecute programas que le hayan mandado siendo
estos sobre todo de procedencia dudosa.
Los programas que se clasifican como
“backdoors” o "puertas traseras" son utilerias de administracion
remota de una red y permiten controlar las computadoras conectadas a
esta.
El hecho que se les clasifique como
software malevolo en algunos casos, es que cuando corren, se instalan
en el sistema sin necesidad de la intervencion del usuario y una vez
instalados en la computadora, no se pueden visualizar estas
aplicaciones en la lista de tareas en la mayoria de los casos.
Consecuentemente un backdoor puede
supervisar casi todo proceso en las computadoras afectadas, desinstalar
programas, descargar virus en la PC remota, borrar informacion y
muchas cosas mas.
No es sencillo darle forma a un tema
de esta complejidad en pocas lineas. Lo importante finalmente es
comprender que si no se toman ciertas medidas minimas, la informacion
sensible que se encuentre en cualquier equipo sobre la faz de la
tierra, con el simple hecho de que tenga acceso a la red de redes
(Internet) es suficiente para que pueda estar expuesto a ataques de
diversa indole.
Concluimos esto, recomendando
ciertas medidas muy basicas para estar a salvo de las puertas traseras y
el delicado riesgo para la seguridad que estas representan. A saber:
1.- Es recomendable asegurarnos de que cada cosa que ejecutamos este bajo nuestro control. Una buena guia para ello es el sentido comun (el menos comun de los sentidos).
2.- Procure no ejecutar programas de los que no sepamos su procedencia, tanto en anexos de correo, ICQ, messanger y descargas de Internet (ya sean via Web o FTP).
3.- La informacion nos protege. Es recomendable enterarse un poco de las noticias de virus y programas daninos relacionados, visitando por lo menos las paginas de las distintas empresas antivirus o suscribiendose a algunos boletines.
4.- Es necesario instalar un antivirus y mantenerlo actualizado. En la
actualidad se protege al usuario no solo contra virus, sino tambien
contra gusanos, programas de puerta trasera, troyanos y algunos programas maliciosos.
5.- Es bueno tener presente que existen virus y troyanos que pueden
aparentar ser amigables (una simple tarjeta de San Valentin), o que provienen de gente que conoces (como es el caso del gusano Sircam). Siendo asi, no confies en ningun programa ni en nada que recibas hasta no revisarlo con el Antivirus.
6.- Mantenga al dia todas las actualizaciones de seguridad de Microsoft, para todas y cada una de las distintas aplicaciones
-BOMBA LOGICA
Este tipo de delito forma parte de los sistemas informaticos que realizan ataques a la parte logica del ordenador.
Se entiendo por bomba logica (en
ingles denominado time bombs), aquel software, rutinas o modificaciones
de programas que producen modificaciones, borrados de ficheros o
alteraciones del sistema en un momento posterior a aquel en el que se
introducen por su creador.
Los disparadores de estos programas
puede ser varios, desde las fechas de los sistemas, realizar una
determinada operacion o que se introduzca un determinado codigo que
sera el que determine su activacion.
Son parecidas al Caballo de Troya,
aunque lo que se pretende es danar al sistema o datos, aunque se pueden
utilizar para ordenar pagos, realizar transferencias de fondos, etc...
Caracteristicas principales:
- El tipo de actuacion es retardada.
- El creador es consciente en todo momento del posible dano que puede causar y del momento que este se puede producir.
- Este ataque esta determinado por una condicion que determina el creador dentro del codigo.
- El codigo no se replica.
- Los creadores de este tipo de codigos malignos suelen ser personal interno de la empresa, que por discrepancias con la direccion o descontento suelen programarlas para realizar el dano.
Un virus informatico
es un programa que se copia automaticamente y que tiene por objeto
alterar el normal funcionamiento de la computadora, sin el permiso o el
conocimiento del usuario. Aunque popularmente se incluye al "malware"
dentro de los virus, en el sentido estricto de esta ciencia los virus
son programas que se replican y ejecutan por si mismos. Los virus,
habitualmente, reemplazan archivos ejecutables por otros infectados con
el codigo de este. Los virus pueden destruir, de manera intencionada,
los datos almacenados en un ordenador, aunque tambien existen otros mas
benignos, que solo se caracterizan por ser molestos.
Los virus informaticos tienen,
basicamente, la funcion de propagarse, replicandose, pero algunos
contienen ademas una carga danina (payload) con distintos objetivos,
desde una simple broma hasta realizar danos importantes en los
sistemas, o bloquear las redes informaticas generando trafico inutil.
El funcionamiento de un virus
informatico es conceptualmente simple. Se ejecuta un programa que esta
infectado, en la mayoria de las ocasiones, por desconocimiento del
usuario. El codigo del virus queda residente (alojado) en la memoria
RAM de la computadora, aun cuando el programa que lo contenia haya
terminado de ejecutarse. El virus toma entonces el control de los
servicios basicos del sistema operativo, infectando de, manera
posterior, archivos ejecutables que sean llamados para su ejecucion.
Finalmente se anade el codigo del virus al del programa infectado y se
graba en disco, con lo cual el proceso de replicado se completa.
Amenazas del Sistema y de la Red
Las amenazas basadas en programas
utilizan tipicamente un fallo en los mecanismos de proteccion de un
sistema para atacar a los programas. Por contraste, las amenazas del
sistema y de la red implican el abuso de los servicios y de las
conexiones de red. En ocasiones, se utiliza un ataque del sistema y de
la red para lanzar un ataque de programa, y viceversa.
Las amenazas del sistema y de la red
crean una situacion en la que se utilizan inapropiadamente los
recursos del sistema operativo y los archivos del usuario. En esta
seccion vamos a analizar algunos ejemplos de estas amenazas, incluyendo
los gusanos, el escaneo de puertos y los ataques por denegacion de
servicio.
Es importante destacar que las
mascaradas y los ataques por reproduccion tambien resultan comunes en
las redes que interconectan los sistemas. De hecho, estos ataques son
mas efectivos y mas dificiles de contrarrestar cuando estan implicados
multiples sistemas. Por ejemplo, dentro de una computadora, el sistema
operativo puede determinar, usualmente, el emisor y el receptor de un
mensaje. Incluso si el emisor adopta el ID de alguna otra persona,
puede que exista un registro de dicho cambio de ID. Cuando estan
implicados multiples sistemas, especialmente sistemas que son
controlados por los atacantes, realizar esa labor de traza resulta
mucho mas dificil.
La generalizacion de este concepto
es que el compartir secretos (para demostrar la identidad y en forma de
claves de cifrado) es una necesidad para la autenticacion del cifrado,
y que esa comparticion resulta mas sencilla en aquellos entornos (por
ejemplo con un unico sistema operativo) en los que existan metodos
seguros de comparticion. Estos metodos incluyen la memoria compartida y
los mecanismos de comunicacion interprocesos.
GUSANOS
Un gusano es un virus informatico o
programa auto replicante que no altera los archivos sino que reside en
la memoria y se duplica a si mismo. Los gusanos utilizan las partes
automaticas de un sistema operativo que generalmente son invisibles al
usuario. Es algo usual detectar la presencia de gusanos en un sistema
cuando, debido a su incontrolada replicacion, los recursos del sistema
se consumen hasta el punto de que las tareas ordinarias del mismo son
excesivamente lentas o simplemente no pueden ejecutarse.
Un gusano, al igual que un virus,
esta disenado para copiarse de un equipo a otro, pero lo hace
automaticamente. En primer lugar, toma el control de las
caracteristicas del equipo que permiten transferir archivos o
informacion. Una vez que un gusano este en su sistema, puede viajar
solo. El gran peligro de los gusanos es su habilidad para replicarse en
grandes numeros. Por ejemplo, un gusano podria enviar copias de si
mismo a todos los usuarios de su libreta de direcciones de correo
electronico, lo que provoca un efecto domino de intenso trafico de red
que puede hacer mas lentas las redes empresariales e Internet en su
totalidad.
Cuando se lanzan nuevos gusanos, se
propagan muy rapidamente. Bloquean las redes y posiblemente provocan
esperas largas (a todos los usuarios) para ver las paginas Web en
Internet.
Gusano Subclase de
virus. Por lo general, los gusanos se propagan sin la intervencion del
usuario y distribuye copias completas (posiblemente modificadas) de si
mismo por las redes. Un gusano puede consumir memoria o ancho de banda
de red, lo que puede provocar que un equipo se bloquee.
Debido a que los gusanos no tienen
que viajar mediante un programa o archivo "host", tambien pueden crear
un tunel en el sistema y permitir que otro usuario tome el control del
equipo de forma remota. Entre los ejemplos recientes de gusanos se
incluyen: Sasser y Blaster.
-ESCANEO DE PUERTOS
El escaneo de puertos es una de las mas
populares tecnicas utilizadas para descubrir y mapear servicios que
estan escuchando en un puerto determinado. Usando este metodo un
atacante puede crear una lista de las potenciales debilidades y
vulnerabilidades en un puerto para dirigirse a la explotacion del mismo
y comprometer el host remoto Una de las primeras etapas en la
penetracion / auditoria de un host remoto es primeramente componer una
lista de los puertos abiertos utilizando una o mas de las tecnicas
descritas abajo. Una ves establecida, los resultados ayudaran al
atacante a identificar los servicios que estan corriendo en ese puerto
utilizando una lista de puertos que cumplen con el RFC (la funcion
/etc/services in UNIX, getservbyport() automaticamente hace esto)
permitiendo comprometer el host remoto en la etapa de descubrimiento
inicial. Las tecnicas de escaneo de puertos se dividen en tres tipos
especificos y diferenciados: *.escaneo abierto *.escaneo medio
abierto *.escaneo oculto Cada una de esas tecnicas permite un ataque
para localizar puertos abiertos y cerrados en un servidor pero saber
hacer el escaneo correcto en un ambiente dado depende de la topologia
de la red, IDS, caracteristicas de logging del servidor remoto. Aunque
un escaneo abierto deja bitacoras grandes y es facilmente detectable
produce los mejores resultados en los puertos abiertos y cerrados.
Alternativamente, utilizar un escaneo oculto permite evitar ciertos IDS
y pasar las reglas del firewall pero el mecanismo de escaneo como
packet flags utilizados para detectar estos puertos puede dejar muchos
paquetes caidos sobre la red dando resultados positivos siendo estos
falsos. Mas adelante se discutira esto en la seccion de escaneo FIN de
este documento. Enfocandonos mas directamente en cada una de las
tecnicas anteriores, estos metodos se pueden categorizar en tipos
individuales de escaneo. Veamos un modelo basico de escaneo incluyendo
un barrido de ping.
-DENEGACION DE SERVICIO
En seguridad informatica, un ataque de denegacion de servicio , tambien llamado ataque DoS (de las siglas en ingles Denial of Service ),
es un ataque a un sistema de ordenadores o red que causa que un
servicio o recurso sea inaccesible a los usuarios legitimos.
Normalmente provoca la perdida de la conectividad de la red por el
consumo del ancho de banda de la red de la victima o sobrecarga de los
recursos computacionales del sistema de la victima.
Se genera mediante la saturacion de
los puertos con flujo de informacion, haciendo que el servidor se
sobrecargue y no pueda seguir prestando servicios, por eso se le dice
"denegacion", pues hace que el servidor no de abasto a la cantidad de
usuarios. Esta tecnica es usada por los llamados crackers para dejar
fuera de servicio a servidores objetivo.
El llamado DDoS (siglas en ingles de Distributed Denial of Service ,
denegacion de servicio distribuida) es una ampliacion del ataque DoS,
se efectua con la instalacion de varios agentes remotos en muchas
computadoras que pueden estar localizadas en diferentes puntos. El
invasor consigue coordinar esos agentes para asi, de forma masiva,
amplificar el volumen del flood o saturacion de informacion,
pudiendo darse casos de un ataque de cientos o millares de computadoras
dirigido a una maquina o red objetivo. Esta tecnica se ha revelado como
una de las mas eficaces y sencillas a la hora de colapsar servidores,
la tecnologia distribuida ha ido sofisticandose hasta el punto de
otorgar poder de causar danos serios a personas con escaso conocimiento
tecnico.
En ocasiones, esta herramienta ha
sido utilizada como un notable metodo para comprobar la capacidad de
trafico que un ordenador puede soportar sin volverse inestable y
perjudicar los servicios que desempena. Un administrador de redes puede
asi conocer la capacidad real de cada maquina.
Metodos de ataque
Un ataque de "Denegacion de
servicio" previene el uso legitimo de los usuarios al usar un servicio
de red. El ataque se puede dar de muchas formas, como por ejemplo:
Inundacion SYN (SYN Floods)
La inundacion SYN envia un flujo de
paquetes TCP/SYN, muchas veces con la direccion de origen falsificada.
Cada unos de los paquetes recibidos es tratado por el destino como una
peticion de conexion, causando que el servidor intente establecer una
conexion al responder con un paquete TCP/SYN-ACK y esperando el paquete
de respuesta TCP/ACK (Parte del proceso de establecimiento de conexion
TCP de 3 vias).
Sin embargo, debido a que la
direccion de origen es falsa o la direccion IP real no ha solicitado la
conexion, nunca llega la respuesta. Estas conexiones a medias consumen
recursos en el servidor y limitan el numero de conexiones que se
pueden hacer, reduciendo la disponibilidad del servidor para responder
peticiones legitimas de conexion.
Ataque LAND (LAND attack)
Un ataque LAND se realiza al enviar
un paquete TCP/SYN falsificado con la direccion del servidor objetivo
como si fuera la direccion origen y la direccion destino a la vez. Esto
causa que el servidor se responda a si mismo continuamente y al final
falle.
Inundacion ICMP (ICMP floods)
Es una tecnica DoS que pretender
agota el ancho de banda de la victima. Consiste en enviar de forma
continuada un numero elevado de paquetes ICMP echo request (ping) de
tamano considerable a la victima, de forma que esta ha de responder con
paquetes ICMP echo reply (pong) lo que supone una sobrecarga tanto en
la red como en el sistema de la victima. Dependiendo de la relacion
entre capacidad de procesamiento de la victima y atacante, el grado de
sobrecarga varia, es decir, si un atacante tiene una capacidad mucho
mayor, la victima no puede manejar el trafico generado.
Modelos de ataques
Existe una variante denominada smurf
que amplifica considerablemente los efectos de un ataque ICMP. En el
smurf el atacante dirige paquetes ICMP echo request a una direccion IP
de broadcast10.
Existen tres partes en un ataque
smurf: El atacante, el intermediario y la victima (comprobaremos que el
intermediario tambien puede ser victima).
Cuando el atacante genera el paquete
ICMP echo request, este es dirigido a una direccion IP de broadcast,
pero la direccion origen del paquete IP la cambia por la direccion de
la victima (IP spoofing), de manera que todas las maquinas
intermediarias (maquinas pertenecientes a la red donde se envio el
paquete) responden con ICMP echo reply a la victima. Como se dijo
anteriormente, los intermediarios tambien sufren los mismos problemas
que las propias victimas.
Inundacion UDP (UDP floods)
Basicamente este ataque consiste en
generar grandes cantidades de paquetes UDP contra la victima elegida.
Debido a la naturaleza sin conexion del protocolo UDP, este tipo de
ataques suele venir acompanado de IP spoofing6.
Es usual dirigir este ataque contra
maquinas que ejecutan el servicio echo8 de forma que se generan
mensajes echo de un elevado tamano.
6.6 Clasificaciones de la seguridad
La seguridad interna esta relacionada a los
controles incorporados al hardware y al Sistema Operativo para asegurar
los recursos del sistema.
Seguridad Externa
La seguridad externa consiste en:
- Seguridad fisica.
- Seguridad operacional.
- Proteccion contra desastres(como inundaciones, incendios, etc.).
- Proteccion contra intrusos.
- Detectores de humo.
- Sensores de calor.
- Detectores de movimiento.
La seguridad fisica trata especialmente de impedir la entrada de intrusos:
Seguridad Operacional
Consiste en las diferentes politicas y procedimientos implementados por la administracion de la instalacion computacional.
La autorizacion determina que acceso se permite y a quien.
La clasificacion divide el problema en subproblemas:
- Los datos del sistema y los usuarios se dividen en clases:
- A las clases se conceden diferentes derechos de acceso.
Un aspecto critico es la seleccion y asignacion de personal:
- La pregunta es si se puede confiar en la gente.
- El tratamiento que generalmente se da al problema es la division de responsabilidades:
- Se otorgan distintos conjuntos de responsabilidades.
- No es necesario que se conozca la totalidad del sistema para cumplir con esas responsabilidades.
- Para poder comprometer al sistema puede ser necesaria la cooperacion entre muchas personas:
- Se reduce la probabilidad de violar la seguridad.
- Debe instrumentarse un gran numero de verificaciones y balances en el sistema para ayudar a la deteccion de brechas en la seguridad.
- El personal debe estar al tanto de que el sistema dispone de controles, pero:
- Debe desconocer cuales son esos controles:
- Se reduce la probabilidad de poder evitarlos.
- Debe producirse un efecto disuasivo respecto de posibles intentos de violar la seguridad.
Para disenar medidas efectivas de seguridad se debe primero:
- Enumerar y comprender las amenazas potenciales.
- Definir que grado de seguridad se desea (y cuanto se esta dispuesto a gastar en seguridad).
- Analizar las contramedidas disponibles.
6.5 Concepto de seguridad
Los términos seguridad y protección se utilizan en forma indistinta. Sin embargo, es útil hacer una distinción entre los problemas generales relativos a la garantía de que los archivos no sea leídos o modificados por personal no autorizado, lo que incluye aspectos técnicos, de administración, legales y políticos, por un lado y los sistemas específicos del sistema operativo utilizados para proporcionar la seguridad, por el otro. Para evitar la confusión, utilizaremos el termino seguridad para referirnos al problema general y el termino mecanismo de protección para referirnos a los mecanismos específicos del sistema operativo utilizado para resguardar la información de la computadora. Sin embargo, la frontera entre ellos no esta bien definida. Primero nos fijaremos en la seguridad; mas adelante analizaremos la protección.
La seguridad tiene muchas facetas. Dos de las mas importantes son la perdida de datos y los intrusos. Algunas de las causas mas comunes de la perdida de datos son:
• Actos divinos: Incendios, inundaciones, terremotos, guerras, revoluciones o ratas que roen las cintas o discos flexibles.
• errores de Hardware o Software: Mal funcionamiento de la CPU, discos o cintas ilegibles, errores de telecomunicación o errores en el programa.
• Errores Humanos: Entrada incorrecta de datos, mal montaje de las cintas o el disco, ejecución incorrecta del programa, perdida de cintas o discos.
La mayoria de estas causas se pueden enfrentar con el mantenimiento de los respaldos adecuados; de preferencia, en un lugar alejado de los datos originales.
Un problema mas interesante es que hacer con los intrusos. Estos tienen dos variedades. Los intrusos pasivos solo desean leer archivos que no están autorizados a leer. Los intrusos activos son mas crueles: Desean hacer cambios no autorizados a los datos. Si se desea diseñar un sistema seguro contra los intrusos, es importante tener en cuenta el tipo de intruso con el que se desea tener protección. Algunas de las categorías comunes son:
• Curiosidad casual de usuarios no técnicos. Muchas personas tienen en sus escritorios terminales para sistemas con tiempo compartido y, por la naturaleza humana, algunos de ellos leerán el correo electrónico de los demás u otros archivos, si no existen barreras en frente de ellos. Por ejemplo la mayoria de los sistema UNIS tienen pre definido que todos los archivos se pueden leer de manera publica.
• Conocidos husmeando. Algunos estudiantes, programadores de sistemas, operadores y demás personal técnico consideran como un reto personal romper la seguridad del sistema de computo local. A menudo son muy calificados y están dispuestos a invertir una cantidad sustancial de su tiempo en este esfuerzo.
• Un intento deliberado de hacer dinero. Algunos programadores en banco han intentado penetrar un sistema bancario con el fin de robarle al banco. Los esquemas han variado desde cambiar el software para truncar y no redondear el interes, para quedarse con una pequena fraccion de dinero, hasta sacar dinero de las cuentas que no se han utilizado en anos o el "correo negro" .
• Espionaje comercias o militar. El espionaje indica un intento serio y fundamentado por parte de un competidor u otro pais para robar programas, secretos comerciales, patentes, tecnologia, diseno de circuitos, planes de comercializacion, etc. A menudo, este intento implica la cobertura de cables o el levantamiento de antenas hacia la computadora con el fin de recoger su radiacion electromagnetica.
Debe quedar claro que el intento por mantener la KGB lejos de los secretos militares es un poco distinto del intento por evitar que los estudiantes inserten un mensaje gracioso en el sistema. La cantidad de esfuerzo que alguien pone en la seguridad y la proteccion depende claramente de quien se piensa sea el enemigo.
Otro aspecto del problema de la seguridad es la privacia: la proteccion de las personas respecto del mal uso de la informacion en contra de uno mismo. Esto implica en forma casi inmediata muchos aspectos morales y legales.
Para proteger un sistema, debemos optar las necesarias medidas de seguridad en cuatro niveles distintos:
Fisico. El nodo o nodos que contengan los sistemas informaticos deben dotarse de medidas de seguridad fisicas frente a posibles intrusiones armadas o subrepticias por parte de potenciales intrusos. Hay que dotar de seguridad tanto a las habitaciones donde las maquinas residan como a los terminales o estaciones de trabajo que tengan acceso a dichas maquinas.
Humano. La autorizacion de los usuarios debe llevarse a cabo con cuidado, para garantizar que solo los usuarios apropiados tengan acceso al sistema. Sin embargo, incluso los usuarios autorizados pueden verse “motivados” para permitir que otros usen su acceso (por ejemplo, a cambio de un soborno). Tambien pueden ser enganados para permitir el acceso de otros, mediante tecnicas de ingeniería social . Uno de los tipos de ataque basado en las tecnicas de ingenieria social es el denominado phishing ; con este tipo de ataque, un correo electronico o pagina web de aspecto autentico llevan a engano a un usuario para que introduzca informacion confidencial. Otra tecnica comunmente utilizada es el análisis de desperdicios , un termino autorizado a la computadora (por ejemplo, examinando el contenido de las papeleras, localizando listines de telefonos encontrando notas con contrasenas). Estos problemas de seguridad son cuestiones relacionadas con la gestion y con el personal, mas que problemas relativos a los sistemas operativos.
Sistema operativo. El sistema debe autoprotegerse frente a los diversos fallos de seguridad accidentales o premeditados. Un problema que este fuera de control puede llegar a constituir un ataque accidental de denegacion de servicio. Asimismo, una cierta consulta a un servicio podria conducir a la revelación de contraseñas o un desbordamiento de la pila podria permitir que se iniciara un proceso no autorizado. La lista de posibles fallos es casi infinita.
Red. Son muchos los datos en los modernos sistemas informáticos que viajen a través de lineas arrendadas privadas, de lineas compartidas como Internet, de conexiones inalámbricas o de lineas de acceso telefónico. La interceptación de estos datos podría ser tan andina como el acceso a un computador, y la interrupción en la comunicación podría constituir un ataque remoto de denegación de servicio, disminuyendo la capacidad de uso del sistema y la confianza en el mismo por parte de los usuarios.
Si queremos poder garantizar la seguridad del sistema operativo, es necesario garantizar la seguridad en los primeros dos niveles. Cualquier debilidad en uno de los niveles altos de seguridad (físico o humano) podría puentear las medidas de seguridad que son estrictamente de bajo nivel (del nivel del sistema operativo). Asi, la frase que afirma que una cadena es tan fuerte como el mas débil de sus eslabones es especialmente cierta cuando hablamos de seguridad de los sistemas. Para poder mantener la seguridad, debemos contemplar todos estos aspectos.
Además, el sistema debe proporcionar mecanismos de protección para permitir la implementación de las características de seguridad. Sin la capacidad de autorizar a los usuarios y procesos, de controlar su acceso y de registrar sus actividades, seria imposible que un sistema operativo implementara medidas de seguridad o se ejecutara de forma segura. Para soportar un esquema global de protección hacen falta mecanismos de protección hardware. Por ejemplo, un sistema donde la memoria no este protegida no puede nunca estar seguro.
6.4 Protección basada en el lenguaje
El
grado de protección que se proporciona en los sistemas informáticos
existentes suele conseguirse inmediatamente en kernel del sistema
operativo que actúa como agente de seguridad para inspeccionar y validar
cada intento de acceder a un recurso protegido.
Imposición de Reglas Basadas en Compilador
Es
aquí donde entra dentro del panorama de los lenguajes de programación.
Especificar el control de acceso deseado a un recurso compartido con un
sistema no es otra cosa que realizar un enunciado declaratorio acerca
del recurso. Este tipo de enunciado puede integrarse en un lenguaje
extendiendo su funcionalidad de definición de tipos.
La
implementación de un lenguaje de programación puede proporcionar
diversas técnicas para imponer la protección, pero todas estas técnicas
dependen hasta cierto punto del soporte proporcionado por la maquina
subyacente y por su sistema operativo.
Protección de Java
Protección de Java
Como
java fue diseñado para ejecutarse en un entorno distribuido la maquina
virtual de java tiene muchos mecanismos de protección integrados. Los
programas java están compuestos por clases, cada una de las cuales es
una colección de campos de datos y funciones (denominadas métodos) que
operan sobre esos campos.
6.3 Implantación de matrices de acceso
Los derechos de acceso definen que acceso tienen varios sujetos sobre varios objetos.
Los objetos son entidades que contienen informacion.
Los objetos pueden ser:
- Concretos:
- Ej.: discos, cintas, procesadores, almacenamiento, etc.
- Abstractos:
- Ej.: estructuras de datos, de procesos, etc.
Los objetos estan protegidos contra los sujetos.
Las autorizaciones a un sistema se conceden a los sujetos.
Los sujetos pueden ser varios tipos de entidades:
- Ej.: usuarios, procesos, programas, otras entidades, etc.
Los derechos de acceso mas comunes son:
- Acceso de lectura.
- Acceso de escritura.
- Acceso de ejecucion.
Una forma de implementacion es mediante una matriz de control de acceso con:
- Filas para los sujetos.
- Columnas para los objetos.
- Celdas de la matriz para los derechos de acceso que un usuario tiene a un objeto.
Una matriz de control de acceso debe ser muy celosamente protegida por el S. O.
Dominios de protección
Un sistema de computos contiene
muchos objetos que necesitan proteccion. Estos objetos pueden ser el
hardware, la CPU, los segmentos de memoria, terminales, unidades de
disco o impresoras; o bien ser del software, como los proceso,
archivos, bases de datos o semaforos.
Cada objeto tiene un unico nombre mediante el cual se la hace referencia y un conjunto de operaciones que se pueden realizar en el. READ y WRITE son operaciones adecuadas para un archivo; UP y DOWN tiene sentido en un semáforo.
Es evidente que se necesita una via
para prohibir el acceso de los procesos a los objetos a los que no
tiene permitido dicho acceso. Ademas, este mecanismo debe posibilitar
la restriccion de los procesos a un subconjunto de operaciones legales
en caso necesario. Por ejemplo, puede permitirse que el proceso A lea
el archivo F, pero no escriba en el.
Para tener una forma de analizar los
distintos mecanismos de proteccion, es conveniente presentar el
concepto de dominio. Un dominio es un conjunto de parejas (objeto,
derechos). Cada pareja determina un objeto y cierto subconjunto de las
operaciones que se pueden llevar a cabo en el. Un derecho es, en este
contexto, el permiso para realizar alguna de las operaciones.
Una pregunta importante es la forma
en que el sistema lleva un registro de los objetos que pertenecen a un
dominio dado. Al menos una teoria, uno puede imaginar una enorme
matriz, en la que los renglones son los dominio y las columnas son los
objetos. Cada cuadro contiene los derechos correspondientes al objeto
en ese dominio. Con esta matriz y el numero de dominio activo, el
sistema puede determinar si se permite el acceso de cierta forma a un
objeto dado desde un domino especifico.
Un dominio es un conjunto de parejas (objeto, derechos):
- Cada pareja determina:
- Un objeto.
- Un subconjunto de las operaciones que se pueden llevar a cabo en el.
Es posible que un objeto se encuentre en varios dominios con “distintos” derechos en cada dominio.
Un proceso se ejecuta en alguno de los dominios de proteccion:
- Existe una coleccion de objetos a los que puede tener acceso.
- Cada objeto tiene cierto conjunto de derechos.
Una llamada al S. O. provoca una alternancia de dominio.
En algunos S. O. los dominios se llaman anillos .
Una forma en la que el S. O. lleva un registro de los objetos que pertenecen a cada dominio es mediante una matriz :
- Los renglones son los dominios.
- Las columnas son los objetos.
- Cada elemento de la matriz contiene los derechos correspondientes al objeto en ese dominio, por ej.: leer, escribir, ejecutar.
Matriz de acceso
El modelo de proteccion del sistema se puede ver en forma abstracta como una matriz, la matriz de acceso.
Una matriz de acceso es una representacion abstracta del concepto de dominio de proteccion.
Este modelo fue propuesto por
Lampson [4] como una descripcion generalizada de mecanismos de
proteccion en sistemas operativos. Es el modelo mas utilizado, del que
existen numerosas variaciones, especialmente en su implementacion.
• Sujeto: Una entidad capaz de acceder a los objetos. En general, el concepto de sujeto es equiparable con el de proceso. Cualquier usuario o aplicacion consigue acceder en realidad a un objeto por medio de un proceso que representa al usuario o a la aplicacion.• Objeto: Cualquier cosa cuyo acceso debe controlarse. Como ejemplo se incluyen los archivos, partes de archivos, programas y segmentos de memoria.• Derecho de acceso: la manera en que un sujeto accede a un objeto. Como ejemplo estan Leer, Escribir y Ejecutar.
El modelo considera un conjunto de
recursos, denominados objetos, cuyo acceso debe ser controlado y un
conjunto de sujetos que acceden a dichos objetos. Existe tambien un
conjunto de permisos de acceso que especifica los diferentes permisos
que los sujetos pueden tener sobre los objetos (normalmente lectura,
escritura, etc., aunque pueden ser diferentes, en general, dependiendo
de las operaciones que puedan realizarse con el objeto).
Se trata de especificar para cada
pareja (sujeto, objeto), los permisos de acceso que el sujeto tiene
sobre el objeto. Esto se representa mediante una matriz de acceso M que
enfrenta todos los sujetos con todos los objetos. En cada celda M[i,
j] se indican los permisos de acceso concretos que tiene el sujeto i
sobre el objeto j.
El mecanismo de proteccion es la
matriz, junto con todos los elementos que se han de anadir para que se
cumplan de manera efectiva todas las restricciones de acceso a los
objetos.
• La politica consiste en decidir como rellenar las distintas celdas de la matriz.
• La MA permite implementar operaciones de cambio de domino.• El objeto sobre el que trabajamos es el Dominio → aparecen tantas columnas como dominios haya en el sistema.• La operacion es la conmutacion de un dominio a otro.• Tambien la MA es un objeto que se puede modificar. De este modo podemos definir tres operaciones:• Copiar derechos de acceso de una celda a otra dentro de la misma columna. Consiste en pasar el derecho de acceso a un objeto de un Dominio que lo tiene, a otro donde originalmente no lo tenia. Se senala con un asterisco (*).• Copia ilimitada con propagacion del propio derecho de copia.• Copia limitada sin propagacion.• Movimiento de derecho.• Dueno. Un proceso ejecutandose en un dominio que tiene derecho de “dueno” sobre un objeto, puede repartir cualquier derecho de acceso sobre cualquier dominio para dicho objeto.• Control . Opera solo sobre dominios. Ejercer el control sobre un dominio implica que se puede quitar cualquier derecho sobre una fila de dominio.• La MA tambien ha de ser protegida.
Implementacion de la Matriz de Acceso
Tabla Global
Sencilla. Se almacena una lista de ternas {<dominio, objeto, permisos>...}.
Como el numero de objetos y dominios es posiblemente muy grande, se deberia guardar en memoria virtual
Lista de acceso para objetos(ACL)
Se expresa la MA por columnas {<dominio, permisos>, ...}. Se descartan las entradas vacias.
Se puede crear una lista de permisos por defecto para hacer mas facil su uso.
Dado que cada vez que se va a usar
un objeto hay que comprobar si hay o no permiso para hacerlo, es logico
poner la ACL alli donde esten descritos los atributos del objeto.
-
Asocia a cada objeto una lista ordenada con:
- Todos los dominios que pueden tener acceso al objeto.
- La forma de dicho acceso (ej: lectura (r), grabacion (w), ejecucion (x)).
- Asignar tres bits (r, w, x) para cada archivo, para:
- El propietario, el grupo del propietario y los demas usuarios.
- Permitir que el propietario de cada objeto pueda modificar su ACL en cualquier momento:
- Permite prohibir accesos antes permitidos.
Lista de Capacidades
Se expresa la MA por filas. Cada dominio tiene una lista de la forma {<objeto, permisos>, ...}
Para identificar el objeto se usa o
bien su nombre logico, o un puntero a el (la estructura de datos que le
describe); a esta direccion se la llama capacidad .
Solo se podra realizar la operacion M sobre el objeto O si se dispone de la capacidad (puntero) al objeto.
Cada objeto tiene una lista de patrones llamados cerradura .
Cada dominio tiene una lista de patrones llamados claves .
Un proceso que se ejecuta en un
dominio solo tendra acceso a un objeto si el dominio contiene una llave
que coincida con una de las cerraduras.
Comparacion
La tabla global es una matriz dispersa, es ineficiente para su almacenamiento.
ACL → Cuando se accede a un objeto es facil determinar si hay o no permiso para usarlo.
Capacidades → Las ACL estan
distribuidas, es dificil saber cuales son los derechos de acceso para
un proceso, cosa que si se puede hacer con la lista de capacidades.
Los sistemas reales suelen usar una mezcla de todos.
Ej. UNIX: Se abre un fichero, se
verifica en la ACL si tiene permiso o no. Si lo tiene, se consigue un
descriptor de fichero, es decir una capacidad que sera lo que se use a
partir de entonces.
Suscribirse a:
Comentarios (Atom)




.jpg)
.jpg)
.jpg)
.jpg)
.jpg)