Seguridad en UNIX

Trabajo de investigación para Computación 5 - Tema 5

 

Año 2001

Grupo 2 formado por:

·      Canteros, Marcela

·      Echeverría, Juan

·      Falabella, Adrián

·      Fernández, Gustavo

·      Ferrero, Paulina

·      Leiva, Orlando

·      Paz, Roxana

·      Toledo, Raúl

·      Soler, Susana

·      Dutruel, Mabel

·      Arce, Mario Diego

·      Nunín, Luis


Indice

Introducción

¿Qué es seguridad?

¿Qué queremos proteger?

¿De qué nos queremos proteger?

¿Cómo nos podemos proteger?

Mecanismos de prevención

¿Seguridad en Unix?

El sistema de archivos

Listas de control de acceso: ACLs

Criptografía

Auditoría del sistema

Copias de seguridad

Autenticación de usuarios

del núcleo

Cortafuegos - Firewalls

Kerberos

Criptología

Esteganografía

Algunas herramientas de seguridad

Bibliografía

 

 


Introducción

Hasta finales de 1988 muy poca gente tomaba en serio el tema de la seguridad en redes de computadores de propósito general. Mientras que por una parte Internet iba creciendo exponencialmente con redes importantes que se adherían a ella, como BITNET o HEPNET, por otra el auge de la informática de consumo (hasta la década de los ochenta muy poca gente se podía permitir un ordenador y un módem en casa) unido a factores menos técnicos (como la película Juegos de Guerra, de 1983) iba produciendo un aumento espectacular en el número de piratas informáticos.

 

Sin embargo, el 22 de noviembre de 1988 Robert T. Morris protagonizó el primer gran incidente de la seguridad informática: uno de sus programas se convirtió en el famoso worm o gusano de Internet. Miles de ordenadores conectados a la red se vieron inutilizados durante días, y las pérdidas se estiman en millones de dólares. Desde ese momento el tema de la seguridad en sistemas operativos y redes ha sido un factor a tener muy en cuenta por cualquier responsable o administrador de sistemas informáticos. Poco después de este incidente, y a la vista de los potenciales peligros que podía entrañar un fallo o un ataque a los sistemas informáticos estadounidenses la agencia DARPA (Defense Advanced Research Projects Agency) creó el CERT (Computer Emergency Response Team), un grupo formado en su mayor parte por voluntarios cualificados de la comunidad informática, cuyo objetivo principal es facilitar una respuesta rápida a los problemas de seguridad que afecten a hosts de Internet.

 

Cada día se hace patente la preocupación por los temas relativos a la seguridad hoy cualquier aprendiz de pirata puede conectarse a un servidor web, descargar un par de programas y ejecutarlos contra un servidor desprotegido... con un poco de (mala) suerte, esa misma persona puede conseguir un control total sobre un servidor Unix de varios miles de dolares, probablemente desde su PC con Windows 98 y sin saber nada sobre Unix.

 

A la vista de lo comentado anteriormente, parece claro que la seguridad de los equipos Unix ha de ser algo a considerar en cualquier red. Diariamente por cualquiera de ellas circulan todo tipo de datos, entre ellos muchos que se podrían catalogar como confidenciales (nóminas, expedientes, presupuestos...) o al menos como privados (correo electrónico, proyectos de investigación, artículos a punto de ser publicados...), etc.

¿Qué es seguridad?

Podemos entender como seguridad una característica de cualquier sistema, informático o no, que nos indica que ese sistema está libre de todo peligro, daño o riesgo, y que es, en cierta manera, infalible. Como esta característica, particularizando para el caso de sistemas operativos o redes de computadores, es muy difícil de conseguir (según la mayoría de expertos, imposible), se suaviza la definición de seguridad y se pasa a hablar de fiabilidad (probabilidad de que un sistema se comporte tal y como se espera de él) más que de seguridad; por tanto, se habla de sistemas fiables en lugar de hacerlo de sistemas seguros.

 

A grandes rasgos se entiende que mantener un sistema seguro (o fiable) consiste básicamente en garantizar tres aspectos:

·      Confidencialidad

·      Integridad

·      Disponibilidad.

La confidencialidad nos dice que los objetos de un sistema han de ser accedidos únicamente por elementos autorizados a ello; la integridad significa que los objetos sólo pueden ser modificados por elementos autorizados, y la disponibilidad indica que los objetos del sistema tienen que permanecer accesibles a elementos autorizados.

 

¿Qué queremos proteger?

Los tres elementos principales a proteger en cualquier sistema informático son el:

·      Software

·      Hardware

·      Datos

Por hardware entendemos el conjunto formado por todos los elementos físicos de un sistema informático, como CPUs, terminales, cableado, medios de almacenamiento secundario (cintas, CD-ROMs, diskettes...) o tarjetas de red. Por software entendemos el conjunto de programas lógicos que hacen funcional al hardware, tanto sistemas operativos como aplicaciones, y por datos el conjunto de información lógica que manejan el software y el hardware, como por ejemplo paquetes que circulan por un cable de red o entradas de una base de datos.

¿De qué nos queremos proteger?

Se suele identificar a los atacantes únicamente como personas. Pero es preferible hablar de 'elementos' y no de personas, nuestro sistema puede verse perjudicado por múltiples entidades aparte de humanos, como por ejemplo programas, catástrofes naturales.

Personas

Generalmente se dividen en dos grandes grupos: los atacantes pasivos, aquellos que fisgonean por el sistema pero no lo modifican -o destruyen-, y los activos, aquellos que dañan el objetivo atacado, o lo modifican en su favor.

·      Personal

·      Ex-empleados

·      Curiosos

·      Crackers

·      Terroristas

·      Intrusos remunerados

 

 

Amenazas lógicas

Bajo la etiqueta de 'amenazas lógicas' encontramos todo tipo de programas que de una forma u otra pueden dañar a nuestro sistema, creados de forma intencionada para ello (software malicioso, también conocido como malware) o simplemente por error (bugs o agujeros). Enumeramos brevemente:

·      Software incorrecto

·      Herramientas de seguridad

·      Puertas traseras

·      Virus

·      Gusanos

·      Caballos de Troya

·      Programas conejo o bacterias

·      Técnicas salami

Catástrofes

Las catástrofes (naturales o artificiales) son la amenaza menos probable contra los entornos habituales. Sin embargo, el hecho de que las catástrofres sean amenazas poco probables no implica que contra ellas no se tomen unas medidas básicas, ya que si se produjeran generarían los mayores daños.

Como ejemplos de catástrofes hablaremos de

·      Terremotos

·      Inundaciones

·      Incendios

·      Humo

·      Atentados De Baja Magnitud

¿Cómo nos podemos proteger?

Los mecanismos de seguridad se dividen en tres grandes grupos:

·      Prevención

·      Detección

·      Recuperación

Los mecanismos de prevención son aquellos que aumentan la seguridad de un sistema durante el funcionamiento normal de éste, previniendo la ocurrencia de violaciones a la seguridad; por ejemplo, el uso de cifrado en la transmisión de datos se puede considerar un mecanismo de este tipo. Por mecanismos de detección se conoce a aquellos que se utilizan para detectar violaciones de la seguridad o intentos de violación. Finalmente, los mecanismos de recuperación son aquellos que se aplican cuando una violación del sistema se ha detectado, para retornar a éste a su funcionamiento correcto; ejemplos de estos mecanismos son la utilización de copias de seguridad o el hardware adicional.


Mecanismos de prevención

Mecanismos de autenticación e identificación

Estos mecanismos hacen posible identificar entidades del sistema de una forma única, y posteriormente, una vez identificadas, autenticarlas (comprobar que la entidad es quién dice ser).

Mecanismos de control de acceso

Estos controlan todos los tipos de acceso sobre el objeto por parte de cualquier entidad del sistema. Dentro de Unix, el control de acceso más habitual es el discrecional (DAC, Discretionary Access Control), implementado por los bits rwx y las listas de control de acceso para cada archivo (objeto) del sistema.

Mecanismos de separación

Se deben implementar mecanismos que permitan separar los objetos dentro de cada nivel, evitando el flujo de información entre objetos y entidades de diferentes niveles. Los mecanismos de separación se dividen en cinco grandes grupos, en función de como separan a los objetos: separación física, temporal, lógica, criptográfica y fragmentación. Dentro de Unix, el mecanismo de separación más habitual es el de separación lógica o aislamiento.

Mecanismos de seguridad en las comunicaciones

Es especialmente importante para la seguridad de nuestro sistema el proteger la integridad y la privacidad de los datos cuando se transmiten a través de la red. Para garantizar esta seguridad en las comunicaciones, hemos de utilizar ciertos mecanismos, la mayoría de los cuales se basan en la Criptografía: cifrado de clave pública, de clave privada, firmas digitales...Aunque cada vez se utilizan más los protocolos seguros, como SSH o Kerberos, en el caso de sistemas Unix en red.

¿Seguridad en Unix?

Dentro de la familia Unix existen una serie de sistemas denominados 'Unix seguros' o 'Unix fiables' (Trusted Unix); se trata de sistemas con excelentes sistemas de control, evaluados por la National Security Agency (NSA) estadounidense y clasificados en niveles seguros (B o A). Entre estos Unix seguros podemos encontrar AT&T System V/MLS y OSF/1 (B1), Trusted Xenix (B2) y XTS-300 STOP 4.1 (B3), considerados los sistemas operativos más seguros del mundo (siempre según la NSA). La gran mayoría de Unices (Solaris, AIX...) están clasificados como C2, y algunos otros, como Linux, se consideran sistemas C2 de facto: al no tener una empresa que pague el proceso de evaluación de la NSA no están catalogados, aunque puedan implementar todos los mecanismos de los sistemas C2.


El sistema de archivos

Dentro del sistema Unix todo son archivos: desde la memoria física del equipo hasta el ratón, pasando por módems, teclado, impresoras o terminales. En un sistema Unix típico existen tres tipos básicos de archivos:

·      Archivos Planos

·      Directorios

·      Archivos Especiales (Dispositivos)

Los archivos planos son entendidos por las aplicaciones que interpretan su contenido. Los directorios son archivos cuyo contenido son otros archivos de cualquier tipo (planos, más directorios, o archivos especiales), y los archivos especiales son archivos que representan dispositivos del sistema; este último tipo se divide en dos grupos: los dispositivos orientados a carácter y los orientados a bloque.

Cuando un sistema Unix arranca una de las tareas que obligatoriamente ha de realizar es incorporar diferentes sistemas de archivos - discos completos, una partición, una unidad de CD-ROM...- a la jerarquía de directorios Unix; este proceso se llama montaje, y para realizarlo generalmente se utiliza la orden mount. Es obligatorio montar al menos un sistema de archivos durante el arranque, el sistema raíz ( '/'), del que colgarán todos los demás.

Permisos de un archivo

Los permisos de cada archivo son la protección más básica de estos objetos del sistema operativo; definen quién puede acceder a cada uno de ellos, y de qué forma puede hacerlo. Una r indica un permiso de lectura, una w de escritura, una x de ejecución y un '-' indica que el permiso correspondiente no está activado. Así, si en una de las ternas tenemos los caracteres rwx, el usuario o usuarios afectados por esa terna tiene o tienen permisos para realizar cualquier operación sobre el archivo. ¿De qué usuarios se trata en cada caso? La primera terna afecta al propietario del archivo, la segunda al grupo del propietario cuando lo creó (recordemos un mismo usuario puede pertenecer a varios grupos) y la tercera al resto de usuarios.

Atributos de los archivos en ext2fs.

En el sistema de archivos ext2 ( Second Extended File System) de Linux existen ciertos atributos para los archivos que pueden ayudar a incrementar la seguridad de un sistema. Estos atributos son los mostrados en la siguiente tabla.

A

Don´t update Atime

S

Synchronous updates

a

Append only

c

Compressed file

i

Immutable file

d

No Dump

s

Secure deletion

u

Undeletable file

El atributo 'a' sobre un archivo indica que este sólo se puede abrir en modo escritura para añadir datos.

El atributo 'i' (archivo inmutable); un archivo con este flag activado no se puede modificar de ninguna forma, ni añadiendo datos ni borrándolos, ni eliminar el archivo.

Los atributos ‘s' y 'S'. Si borramos un archivo con el atributo 's' activo, el sistema va a rellenar sus bloques con ceros en lugar de efectuar un simple unlink().

Por su parte, el atributo 'S' sobre un archivo hace que los cambios sobre el archivo se escriban inmediatamente en el disco

Listas de control de acceso: ACLs

Las listas de control de acceso (ACLs, Access Control Lists) proveen de un nivel adicional de seguridad a los archivos extendiendo el clásico esquema de permisos en Unix: mientras que con estos últimos sólo podemos especificar permisos para los tres grupos de usuarios habituales (propietario, grupo y resto), las ACLs van a permitir asignar permisos a usuarios o grupos concretos; por ejemplo, se pueden otorgar ciertos permisos a dos usuarios sobre unos archivos sin necesidad de incluirlos en el mismo grupo. Este mecanismo está disponible en la mayoría de Unices (Solaris, AIX, HP-UX...), mientras que en otros que no lo proporcionan por defecto, como Linux.

Criptografía

La criptografía es la herramienta principal utilizada en la mayoría de los sistemas de almacenamiento seguro; sin embargo, todos ellos plantean un grave problema: toda su seguridad reside en la clave de cifrado, de forma que el usuario se encuentra indefenso ante métodos legales - o ilegales - que le puedan obligar a desvelar esta clave una vez que se ha determinado la presencia de información cifrada en un dispositivo de almacenamiento. Todos los expertos en criptografía coinciden en afirmar que los métodos de ataque más efectivos contra un criptosistema no son los efectuados contra el algoritmo, sino contra las personas (chantaje, amenazas, presiones judiciales, etc...).

Almacenamiento seguro

La orden crypt permite cifrar y descifrar archivos en diferentes sistemas Unix; si no recibe parámetros lee los datos de la entrada estándar y los escribe en la salida estándar, por lo que seguramente habremos de redirigir ambas a los nombres de archivo adecuados. Un ejemplo simple de su uso puede ser el siguiente:

$ crypt <archivo.txt >archivo.crypt

Enter key:

$

Para descifrar un archivo cifrado mediante crypt (por ejemplo, el anterior) utilizamos la misma orden y la misma clave:

$ crypt <archivo.crypt>salida.txt

Enter key:

$

PGP: Pretty Good Privacy

El software PGP, desarrollado por el criptólogo estadounidense Phil Zimmermann, es mundialmente conocido como sistema de firma digital para correo electrónico. Aparte de esta función, PGP permite también el cifrado de archivos de forma convencional mediante criptografía simétrica; esta faceta de PGP convierte a este programa en una excelente herramienta para cifrar archivos que almacenamos en nuestro sistema; el modo de uso es el siguiente:

anita:~$ pgp -c archivo.txt

No configuration file found.

Pretty Good Privacy(tm) 2.6.3i - Public-key encryption for the masses.

(c) 1990-96 Philip Zimmermann, Phil's Pretty Good Software. 1996-01-18

International version - not for use in the USA. Does not use RSAREF.

Current time: 2000/03/02 07:18 GMT

 

You need a pass phrase to encrypt the file.

Enter pass phrase:

Enter same pass phrase again:

Preparing random session key...Just a moment....

Ciphertext file: archivo.txt.pgp

anita:~$

 

Esta orden nos preguntará una clave para cifrar, una pass phrase, que no tiene por qué ser (ni es recomendable que lo sea) la misma que utilizamos para proteger la clave privada, utilizada en el sistema de firma digital. A partir de la clave tecleada (que obviamente no se muestra en pantalla), PGP generará un archivo denominado archivo.txt.pgp cuyo contenido es el resultado de comprimir y cifrar (en este orden) el archivo original. Obviamente, archivo.txt no se elimina automáticamente, por lo que es probable que deseemos borrarlo a mano.

TCFS: Transparent Cryptographic File System

TCFS es un software desarrollado en la Universidad de Salerno y disponible para sistemas Linux que proporciona una solución al problema de la privacidad en sistemas de archivos distribuidos como NFS: típicamente en estos entornos las comunicaciones se realizan en texto claro, con la enorme amenaza a la seguridad que esto implica. TCFS almacena los archivos cifrados, y son pasados a texto claro antes de ser leídos; todo el proceso se realiza en la máquina cliente, por lo que las claves nunca son enviadas a través de la red.

Auditoría del sistema

Casi todas las actividades realizadas en un sistema Unix son susceptibles de ser, en mayor o menor medida, monitorizadas: desde las horas de acceso de cada usuario al sistema hasta las páginas web más frecuentemente visitadas, pasando por los intentos fallidos de conexión, los programas ejecutados o incluso el tiempo de CPU que cada usuario consume.

El demonio syslogd

El demonio syslogd ( Syslog Daemon) se lanza automáticamente al arrancar un sistema Unix, y es el encargado de guardar informes sobre el funcionamiento de la máquina. Recibe mensajes de las diferentes partes del sistema (núcleo, programas...) y los envía y/o almacena en diferentes localizaciones, tanto locales como remotas, siguiendo un criterio definido en el archivo de configuración /etc/syslog.conf, donde especificamos las reglas a seguir para gestionar el almacenamiento de mensajes del sistema. Las líneas de este archivo que comienzan por '#' son comentarios, con lo cual son ignoradas de la misma forma que las líneas en blanco.

Algunos archivos de log

·      Syslog

·      Messages

·      Wtmp

·      Utmp

·      Lastlog

·      Faillog

·      Loginlog

·      Btmp

·      Sulog

·      Debug

Copias de seguridad

Las copias de seguridad del sistema son con frecuencia el único mecanismo de recuperación que poseen los administradores para restaurar una máquina que por cualquier motivo - no siempre se ha de tratar de un pirata que borra los discos - ha perdido datos. Por tanto, una correcta política para realizar, almacenar y, en caso de ser necesario, restaurar los backups es vital en la planificación de seguridad de todo sistema.

Sin embargo existen problemas, por ejemplo:

·      Uno de estos problemas es la no verificación de las copias realizadas: nadie se encarga de verificar estas copias...hasta que es necesario restaurar archivos de ellas.

·      Otro problema clásico de las copias de seguridad es la política de etiquetado a seguir.

·      La ubicación final de las copias de seguridad también suele ser errónea en muchos entornos; generalmente, los operadores tienden a almacenar los backups muy cerca de los sistemas, cuando no en la misma sala.

·      Por último, ¿qué almacenar? Obviamente debemos realizar copias de seguridad de los archivos que sean únicos a nuestro sistema.

Dispositivos de almacenamiento

Existen multitud de dispositivos diferentes donde almacenar nuestras copias de seguridad, desde un simple disco flexible hasta unidades de cinta de última generación.

A continuación una tabla de comparación entre dispositivos:

 

Dispositivo

Fiabilidad

Capacidad

Coste/MB

 

Diskette

Baja

Baja

Alto

 

CD-ROM

Media

Media

Bajo

 

Disco duro

Alta

Media/Alta

Medio.

 

Cinta 8mm.

Media

Alta

Medio.

 

Cinta DAT

Alta

Alta

Medio.

Algunas órdenes para realizar copias de seguridad

La herramienta clásica para realizar backups en entornos Unix es desde hace años dump, que vuelca sistemas de archivos completos (una partición o una partición virtual en los sistemas que las soportan, como Solaris); restore se utiliza para recuperar archivos de esas copias. Se trata de una utilidad disponible en la mayoría de clones del sistema operativo, potente (no diremos 'sencilla') y lo más importante: las copias son completamente compatibles entre Unices, de forma que por ejemplo podemos restaurar un backup realizado en IRIX en un sistema HP-UX. Además, la mayor parte de las versiones de dump permiten realizar copias de seguridad sobre máquinas remotas directamente desde línea de órdenes.


Autenticación de usuarios

Ya sabemos que unos requerimientos primordiales de los sistemas informáticos que desempeñan tareas importantes son los mecanismo de seguridad adecuados a la información que se intenta proteger; el conjunto de tales mecanismos ha de incluir al menos un sistema que permita identificar a las entidades (elementos activos del sistema, generalmente usuarios) que intentan acceder a los objetos (elementos pasivos, como archivos o capacidad de cómputo), mediante procesos tan simples como una contraseña o tan complejos como un dispositivo analizador de patrones retinales.

Los métodos de autenticación se suelen dividir en tres grandes categorías:

·      Algo que el usuario sabe

·      Algo que éste posee.

·      Una característica física del usuario o un acto involuntario del mismo. Esta última categoría se conoce con el nombre de autenticación biométrica.

Sistemas basados en algo conocido: contraseñas

El modelo de autenticación más básico consiste en decidir si un usuario es quien dice ser simplemente basándonos en una prueba de conocimiento que a priori sólo ese usuario puede superar; esa prueba de conocimiento no es más que una contraseña que en principio es secreta. Evidentemente, esta aproximación es la más vulnerable a todo tipo de ataques, pero también la más barata, por lo que se convierte en la técnica más utilizada en entornos que no precisan de una alta seguridad, como es el caso de los sistemas Unix en redes normales.

Sistemas basados en algo poseído: tarjetas inteligentes

Hace más de veinte años un periodista francés llamado Roland Moreno patentaba la integración de un procesador en una tarjeta de plástico. Desde entonces, cientos de millones de esas tarjetas han sido fabricadas, y son utilizadas a diario para fines que varían desde las tarjetas monedero más sencillas hasta el control de accesos a instalaciones militares y agencias de inteligencia de todo el mundo; cuando a las chipcards se les incorporó un procesador inteligente nacieron las smartcards, una gran revolución en el ámbito de la autenticación de usuarios.

Sistemas de autenticación biométrica

Estos sistemas son los denominados biométricos, basados en características físicas del usuario a identificar. El reconocimiento de formas, la inteligencia artificial y el aprendizaje son las ramas de la informática que desempeñan el papel más importante en los sistemas de identificación biométricos. La autenticación basada en características físicas existe desde que existe el hombre y, sin darnos cuenta, es la que más utiliza cualquiera de nosotros en su vida cotidiana: a diario identificamos a personas por los rasgos de su cara o por su voz.

Algunos sistemas de autenticación biométrica se basan en lo siguiente:

·      Verificación de voz

·      Verificación de escritura

·      Verificación de huellas

·      Verificación de patrones oculares

·      Retina

Seguridad del núcleo

El núcleo o kernel de un sistema Unix es la parte más importante del mismo, hasta tal punto que en términos puristas se considera al núcleo como el sistema operativo en sí. Pero incluso si no lo consideramos así, y contemplamos al sistema operativo como el conjunto formado por el núcleo y una serie de herramientas (editor, compilador, enlazador, shell...), es innegable que el kernel es la parte del sistema más importante, y con diferencia: mientras que las aplicaciones operan en el espacio de usuario, el núcleo siempre trabaja en el modo privilegiado del procesador (RING 0). Esto implica que no se le impone ninguna restricción a la hora de ejecutarse: utiliza todas las instrucciones del procesador, direcciona toda la memoria, accede directamente al hardware (más concretamente, a los manejadores de dispositivos), etc. De esta forma, un error en la programación, o incluso en la configuración del núcleo puede ser fatal para nuestro sistema.

El archivo /etc/system

En este archivo el administrador puede definir variables para el núcleo del sistema operativo, como el número máximo de archivos abiertos por un proceso o el uso de memoria compartida, semáforos y mensajes para intercomunicación entre procesos.

Una negación de servicio muy típica en Unix es el consumo excesivo de recursos por parte de usuarios que lanzan - voluntaria o involuntariamente - demasiados procesos; y un pequeño error en el código puede hacer que el sistema se vea parado por un exceso de procesos activos en la tabla, por lo que si deseamos asignar un valor máximo hemos de editar el archivo /etc/system e incluir una línea como la siguiente:

set maxuprc=60

De esta forma limitamos el número de procesos por usuario a 60, consiguiendo así que un error en un programa no sea capaz de detener la máquina.

Un parámetro del sistema operativo especialmente importante, y que quizás nos interese modificar (sobre todo en máquinas con pocos recursos) es maxusers. Maxusers no hace referencia al número máximo de usuarios que pueden conectar simultáneamente al sistema, sino que es un valor que escala a otros parámetros del núcleo (como max_nproc, número máximo de procesos en la tabla) o maxuprc. Para modificarlo, podemos incluir en /etc/system una línea con el valor deseado, generalmente el tamaño en MB de la memoria física de nuestra máquina:

set maxusers=128


Cortafuegos - Firewalls

Un firewall o cortafuegos es un sistema o grupo de sistemas que hace cumplir una política de control de acceso entre dos redes. De una forma más clara, podemos definir un cortafuegos como cualquier sistema (desde un simple router hasta varias redes en serie) utilizado para separar - en cuanto a seguridad se refiere - una máquina o subred del resto, protegiéndola así de servicios y protocolos que desde el exterior puedan suponer una amenaza a la seguridad.

Componentes de un cortafuegos

Filtrado de paquetes

Cualquier router IP utiliza reglas de filtrado para reducir la carga de la red; paquetes con un control de errores erróneos. El filtrado de paquetes se puede utilizar para implementar diferentes políticas de seguridad en una red; el objetivo principal de todas ellas suele ser evitar el acceso no autorizado entre dos redes, pero manteniendo intactos los accesos autorizados. Su funcionamiento es habitualmente muy simple: se analiza la cabecera de cada paquete, y en función de una serie de reglas establecidas de antemano la trama es bloqueada o se le permite seguir su camino; estas reglas suelen contemplar campos como el protocolo utilizado (TCP, UDP, ICMP...), las direcciones fuente y destino, y el puerto destino. Además de la información de cabecera de las tramas, algunas implementaciones de filtrado permiten especificar reglas basadas en la interfaz del router por donde se ha de reenviar el paquete, y también en la interfaz por donde ha llegado hasta nosotros.

Proxy de aplicación

Además del filtrado de paquetes, es habitual que los cortafuegos utilicen aplicaciones software para reenviar o bloquear conexiones a servicios como finger, telnet o FTP; a tales aplicaciones se les denomina servicios proxy, mientras que a la máquina donde se ejecutan se le llama pasarela de aplicación.

Monitorización de la actividad

Monitorizar la actividad de nuestro cortafuegos es algo indispensable para la seguridad de todo el perímetro protegido; la monitorización nos facilitará información sobre los intentos de ataque que estemos sufriendo (origen, franjas horarias, tipos de acceso...), así como la existencia de tramas que aunque no supongan un ataque a priori sí que son al menos sospechosas.

Firewall-1

Quizás el cortafuegos más utilizado actualmente en Internet es FireWall-1, desarrollado por la empresa Check Point Software Technologies Ltd. (http://www.checkpoint.com). Incorpora una nueva arquitectura dentro del mundo de los cortafuegos: la inspección con estado ( stateful inspection). Firewall-1 inserta un módulo denominado Inspection Module en el núcleo del sistema operativo sobre el que se instala, en el nivel software más bajo posible (por debajo incluso del nivel de red), así, desde ese nivel tan bajo, Firewall-1 puede interceptar y analizar todos los paquetes antes de que lleguen al resto del sistema; se garantiza que ningún paquete es procesado por ninguno de los protocolos superiores hasta que Firewall-1 comprueba que no viola la política de seguridad definida.

Kerberos

Durante 1983 en el M.I.T. (Massachussetts Institute of Technology) comenzó el proyecto Athena con el objetivo de crear un entorno de trabajo educacional compuesto por estaciones gráficas, redes de alta velocidad y servidores; el sistema operativo para implementar este entorno era Unix 4.3BSD, y el sistema de autenticación utilizado en el proyecto se denominó Kerberos en honor al perro de tres cabezas que en la mitología griega vigila la puerta de entrada a Hades, el infierno.

Hasta que se diseñó Kerberos, la autenticación en redes de computadores se realizaba principalmente de dos formas: o bien se aplicaba la autenticación por declaración ( Authentication by assertion), en la que el usuario es libre de indicar el servicio al que desea acceder (por ejemplo, mediante el uso de un cliente determinado), o bien se utilizaban contraseñas para cada servicio de red.

Kerberos se ha convertido desde entonces en un referente obligatorio a la hora de hablar de seguridad en redes. Se encuentra disponible para la mayoría de sistemas Unix, y viene integrado con OSF/DCE ( Distributed Computing Environment). Está especialmente recomendado para sistemas operativos distribuidos, en los que la autenticación es una pieza fundamental para su funcionamiento: si conseguimos que un servidor logre conocer la identidad de un cliente puede decidir sobre la concesión de un servicio o la asignación de privilegios especiales. Sigue vigente en la actualidad.

Arquitectura de Kerberos

Un servidor Kerberos se denomina KDC ( Kerberos Distribution Center), y provee de dos servicios fundamentales: el de autenticación (AS, Authentication Service) y el de tickets (TGS, Ticket Granting Service). El primero tiene como función autenticar inicialmente a los clientes y proporcionarles un ticket para comunicarse con el segundo, el servidor de tickets, que proporcionará a los clientes las credenciales necesarias para comunicarse con un servidor final que es quien realmente ofrece un servicio. Entonces, la arquitectura de Kerberos está basada en tres objetos de seguridad: Clave de Sesión, Ticket y Autenticador.

·      La clave de sesión es una clave secreta generada por Kerberos y expedida a un cliente para uso con un servidor durante una sesión.

·      El ticket es un testigo expedido a un cliente del servicio de tickets de Kerberos para solicitar los servicios de un servidor; garantiza que el cliente ha sido autenticado recientemente.

·      El autenticador es un testigo construido por el cliente y enviado a un servidor para probar su identidad y la actualidad de la comunicación; sólo puede ser utilizado una vez.


Criptología

La criptología (del griego krypto y logos, estudio de lo oculto, lo escondido) es la ciencia que trata los problemas teóricos relacionados con la seguridad en el intercambio de mensajes en clave entre un emisor y un receptor a través de un canal de comunicaciones (en términos informáticos, ese canal suele ser una red de computadoras).

Esta ciencia está dividida en dos grandes ramas: la criptografía, ocupada del cifrado de mensajes en clave y del diseño de criptosistemas (hablaremos de éstos más adelante), y el criptoanálisis, que trata de descifrar los mensajes en clave, rompiendo así el criptosistema.

Clasificación de los criptosistemas

La gran clasificación de los criptosistemas se hace en función de la disponibilidad de la clave de cifrado/descifrado. Existen, por tanto, dos grandes grupos de criptosistemas:

·      Criptosistemas de clave secreta

·      Criptosistemas de clave pública

Criptosistemas de clave secreta

Denominamos criptosistema de clave secreta (de clave privada, de clave única o simétrico) a aquel criptosistema en el que la clave de cifrado, puede ser calculada a partir de la de descifrado, y viceversa.

De todos los sistemas de clave secreta, el único que se utiliza en la actualidad es DES (Data Encryption Standard). Otros algoritmos de clave privada son el cifrado Cesar o el criptosistema de Vigenère.

Criptosistemas de clave pública

En éstos, la clave de cifrado se hace de conocimiento general (se le llama clave pública). Sin embargo, no ocurre lo mismo con la clave de descifrado (clave privada), que se ha de mantener en secreto. Ambas claves no son independientes, pero del conocimiento de la pública no es posible deducir la privada sin ningún otro dato (recordemos que en los sistemas de clave privada sucedía lo contrario). Tenemos pues un par clave pública-clave privada; la existencia de ambas claves diferentes, para cifrar o descifrar, hace que también se conozca a estos criptosistemas como asimétricos. Uno de ellos es el criptosistema RSA. Este sistema de clave pública fué diseñado en 1977 por los profesores del MIT ( Massachusetts Institute of Technology ) Ronald R. Rivest, Adi Shamir y Leonard M. Adleman, de ahí las siglas con las que es conocido. Desde entonces, este algoritmo de cifrado se ha convertido en el prototipo de los de clave pública.

Esteganografía

La esteganografía (también llamada cifra encubierta) es la ciencia que estudia los procedimientos encaminados a ocultar la existencia de un mensaje en lugar de ocultar su contenido; mientras que la criptografía pretende que un atacante que consigue un mensaje no sea capaz de averiguar su contenido, el objetivo de la esteganografía es ocultar ese mensaje dentro de otro sin información importante, de forma que el atacante ni siquiera se entere de la existencia de dicha información oculta.

Con el auge de la informática, el mecanismo esteganográfico más extendido está basado en las imágenes digitales y su excelente capacidad para ocultar información; la más básica consiste simplemente en sustituir el bit menos significativo de cada byte por los bits del mensaje que queremos ocultar; dado que casi todos los estándares gráficos tienen una graduación de colores mayor de lo que el ojo humano puede apreciar, la imagen no cambiará su apariencia de forma notable. Otros elementos donde ocultar información son las señales de audio y el propio texto, aunque no están tan extendidas como la anterior.

Algunas herramientas de seguridad

Titan

Este software de auditoría informática, detecta problemas de seguridad en la máquina local. El mismo se limita a informarnos de los posibles problemas de seguridad que podemos tener.

TCP Wrappers

TCP Wrappers se encarga de definir una serie de redes o máquinas autorizados a conectar con nosotros. Cualquier administrador que desee un mínimo de seguridad ha de instalar TCP Wrappers en sus equipos; incluso algunos Unices como Linux o BSDI lo ofrecen por defecto al instalar el operativo.

SSH

Secure Shell (SSH), es un software cuya principal función es permitir la conexión remota segura a sistemas a través de canales inseguros, aunque también se utiliza para la ejecución de órdenes en ese sistema remoto o transferir archivos desde o hacia él de manera fiable.

Tripwire

La herramienta Tripwire es un comprobador de integridad para archivos y directorios de sistemas Unix: compara un conjunto de estos objetos con la información sobre los mismos almacenada previamente en una base de datos, y alerta al administrador en caso de que algo haya cambiado.

Nessus

En 1998 surgió Nessus, un analizador de vulnerabilidades gratuito, de código fuente libre. Este programa detecta vulnerabilidades de seguridad en sistemas Unix y redes, desde fallos conocidos en el software hasta políticas incorrectas.

Crack

Crack, desarrollado por el experto en seguridad Alec Muffet, es el 'adivinador' de contraseñas más utilizado en entornos Unix; actualmente se encuentra en su versión 516.5, que funciona correctamente en la mayoría de clones del sistema operativo (Linux, Solaris, OSF...). Ejecutar periódicamente Crack sobre el archivo de contraseñas de sus sistemas es algo muy recomendable para cualquier administrador mínimamente preocupado por la seguridad, sin importar que se utilicen mecanismos para obligar a los usuarios a elegir passwords aceptables.


Bibliografía

·        http://www.iespana.es/mundolinux/linux/unixsec/

 

 

                     

   Anterior          Índice          Siguiente

 

Para mayor información, seleccione una opción:

Número de visitas efectuadas desde el 17/12/2001: 
 
Estadísticas diarias desde el 10/07/2002:    

Número de visitantes actuales disponible desde el 14/07/2002:

 

AddFreeStats.com Free Web Stats in real-time !  

 

 

 

Autor: lrmdavid@exa.unne.edu.ar

Ó FACENA - http://exa.unne.edu.ar

Servicios WEB: webmaster@exa.unne.edu.ar