1 - CONCEPTOS BÁSICOS
 
 

[ CONCEPTOS BÁSICOS ] - [ ADMINISTRACION ELEMENTAL ] - [ AUTENTIFICACION DE USUARIOS ] - [ POLITICAS DE SEGURIDAD ] - [ SEGURIDAD EN EL NUCLEO ] -
[ COPIAS DE SEGURIDAD ] - [ BIBLOGRAFIA ]



1.1 - ¿ QUE PRETENDEMOS CON ESTE TRABAJO ?
1.2 - SEGURIDAD
1.3 - ¿ QUE ELEMENTOS DEBEMOS PROTEGER ?
        1.3.1 - PERSONAS
        1.3.2 - AMENAZAS PROGRAMADAS
        1.3.3 - CATASTROFES
1.4 - METODOLOGIA DE PROTECCION



 

1.1 - ¿ QUE PRETENDEMOS CON ESTE TRABAJO ?

El objetivo de este trabajo seria el de mostrar ciertas pautas para lograr un nivel de seguridad aceptable en maquinas basadas en soluciones Unix, entendiendo por "seguridad" a aquel nivel que impidiera la entrada no deseada de la mayoria de usuarios informaticos. Lograr la protección 100% util no es ni posible ni actualmente viable. Lo mas probable que culquier pirata informatico experimentado con el tiempo suficiente, y en algunos casos hasta bien pagado pueda entrar en cualquiera de nuestros equipos. Aunque esto sea posible podemos adoptar ciertas politicas de seguridad en nuestros equipos para que por lo menos le hagamos la vida imposible a la mayoria de los intrusos, de entre estos intrusos me estoy refiriendo a aquellas personas que simplemente con ver una pelicula, leerse un tutorial web o simplemente descargandose un programa que ni el sabe como va.
Conseguir romper la seguridad de un sistema de forma no autorizada es, en la mayoria de los casos un acto de inmadurez, y por supuesto ni denota inteligencia ni unos excesivos conocimientos. Lo que realmente se pretende es usar unos solidos conocimientos para la construccion de sistemas de autentificacion fiables y baratos o el diseño de nuevos criptosistemas seguros.

1.2 - SEGURIDAD

Cuando se busca seguridad en un sistema operativo hacemos referencia a que este este libre de todo peligro, riesgo o daño, por lo que pasamos a denominar sistemas mas o menos fiables, dependiendo esta claro de su nivel de proteccion.
Los objetivos primordiales que se alcanzaran seran confidencialidad, integridad y disponibilidad.
El primer objetivo buscado es la confidencialidad, es decir, que un sistema sea accedido unicamente por personal autorizado ya que la informacion que contiene la maquina podria ser de "gran utilidad" para cierto personal no autorizado, con lo que en todo momento se exige a un sistema operativo la garantia de proteccion contra intrusos a la hora de acceder al SO.
El objetivo de integridad es como su propio nombre indica que los elementos contenidos en el sistema esten intactos y que solo puedan ser editados por personal autorizado. Por ultimo, el factor de disponibilidad se refiera al acceso garantizado a los datos del sistema en todo momento, es decir, que dichos datos esten siempre disponibles a un posible acceso de un elemento autorizado. En caso contrario hablariamos de que se a producido una "negacion del servicio".
Garantizar la buena implementacion de las tres caracteristicas en un sistema informatico es harto complicado ademas de variar en funcion de cuales sean los fines y el entorno de trabajo sobre el sistema informatico. Por ejemplo, un sistema informatico al servicio militar se le dara mas valoracion a la buena confidencialidad de sus datos que a la disponibilidad de los mismos.

1.3 - ¿ QUE ELEMENTOS DEBEMOS PROTEGER ?

Los elementos que en principio deberiamos proteger son la parte hardware, software y los datos de usuario. Los dos primeros son los menos amenazados, ya que el hardware se podria proteger estableciendo unas medidas de proteccion de acceso fisico a personas ajenas. El software en caso de ataque se podria restaurar utilizando soportes externos, como por ejemplo un CD-ROM de instalacion de un programa. El problema mas complejo reside cuando perdemos datos de usuarios que no tenemos copia de seguridad o que simplemente ningun sistema de recuperacion, por ejemplo, los datos almacenados en una base de datos durante un mes en un concesionario de coches. Como curiosidad en algunas reuniones de seguridad se realizo una nuevo clasificacion de los elementos a proteger de entre los cuales figuraban los 3 ya explicados y ademas se le añadia un cuarto denominado elementos fungibles. Se trata de elementos de desgaste, como por ejemplo los toners de las impresoras laser, estos elementos no los consideraremos materia a proteger.

Ya clasificados los elementos a proteger mencionare los tipos de amenazas a los que estamos expuestos. Estas amenazas las distinguiremos en cuatro subconjuntos, interrupciones, interceptaciones, modificaciones y frabricaciones, segun su modo de ataque a un sistema.
Diremos que estamos hablando de un ataque por interrupción a aquel que hace que un elemento del sistema se pierda, que el sistema quede inaccesible o que produzca una "negación del servicio".
Los dos siguientes grupos de ataque vienen estrechamente relacionados. Se tratara de un ataque por interceptación a aquel que como su propio nombre indica se consigue una interceptacion o capturacion de ciertos datos por un elemento no autorizado en el sistema, si a ello le añadimos que dicho elemento puede modificar dichos datos estaremos hablando de un ataque por modificación.
El último de los modelos de ataque es de fabricación. Este se basa en la capacidad de que un elemento no autorizado pueda "replicar" ciertos objetos de nuestro sistema y que ademas en su posterior analisis no se pueda sabes cual de ellos es la copia. Ademas de eso la nueva compia puede ser modificada para adeptarse a las necesidades del intruso.


Este gráfico nos muestra la actuación de los diferentes tipos de ataques:
(a) interrupción, (b)interceptacion, (c)modificacion,(d)fabricacion
1.3.1 - PERSONAS

Las personas son una de las causas de catastrofes de seguridad en los equipos informaticos. El peligro proviene tanto de piratas informaticos como del descuido de los administradores de seguridad que no establecen unas pautas de seguridad optimas. Este tipo de personas se podrian catalogar como activas o como pasivas. Se consideran personas con capacidad de ataque activo aquellas que pueden entrar en un sistema y modificar o borrar elementos del mismo, en cambio serian personas de ataque pasivo las que pudiendo entrar en sistemas informaticos no se dedican a modificar o alterar los elementos del mismo, su unica finalidad es la de entrar y salir. La filosofia hacker se basa en entrar en sistemas informaticos superando todas las barreras que se les opone, y cuanto mayor es el rato mas satisfacción obtienen al vulnerar el sistema. Por contra si seguimos una filosofia cracker lo que haremos sera romper las barreras de un sistema informatico, entrar en el y destruir o manipular la información alli almacenada. Como se puede observar en ambos ejemplos el hacker utilizaria una filosofia pasiva mientras que el cracker una filosofia activa.
El tipo de gente que nos puede ocasionar dichas perdidas suelen ser:

1.3.2 - AMENAZAS PROGRAMADAS
  Se trata de software que puede dañar nuestro sistema, tambien se le suele denominar malware. Este tipo de software puede haber sido programado conscientemente de que realizaba una tarea correcta y debido a ciertos "bugs" el programa realiza tareas que no estaban estipuladas cuando se programo el codigo fuente. Ademas de ello se puede realizar programas a conciencia para que realicen tareas nocivas sobre un sistema informatico. Tambien se pueden utilizar como herramientas de ataque fallos del sistema denominados "exploits". El peligro de dichos fallos es que una persona con un nivel avanzado podria detectar dicho fallo y realizar un script que atacara la vulnerabilidad del sistema. Eso no es todo, sino que ese script puede ser difundido por internet y estar al alcance de cualquier persona que con unos conocimientos a nivel de usuario y sin saber si quiera como funciona el script puede causar una catastrofe en un sistema informatico. Como herramientas de seguridad entenderiamos de aquel software que sirve para llever un control sobre anomalias del sistema. Estas herramientas se consideran peligrosas, ya que tienen la capacidad de mostrar los fallos de un sistema. Evidentemente, la función de mostrar los fallos de un sistema es de gran ayuda a un administrador para solucionarlo de manera optima. Pero si en vez de utilizarlo un administrador lo utilizara un elemento no autorizado seria un arma de doble filo, ya que dicha aplicacion pondria en la mano del individuo un informe completo sobre fallos del sistema, ahora el siguiente paso seria explotarlos al maximo para forzar el sistema de seguridad. Al generar una aplicacion informatica numerosos programadores utilizan en sus rutinas las denominadas puertas traseras, que no son ni mas ni menos que atajos a la hora de depurar un programa. Por ejemplo si una aplicacion nos pidiera una autentificacion por medio de 5 passwords, seria rentable generar una subrutina que a partir de una password especial se pudiera acceder al lugar indicado saltanto la lentitud que supondria en un depurado de programa introducir cada vez los 5 passwords. La estrategia es muy buena durante la fase de desarrollo, pero por descuidos estas puertas traseras podrian segir activas en una version final de ese software. Si un pirata informatico detectara ese fallo en programa tendria un acceso mas rapido y mas sencillo a diversos datos. Por ello se han detectado back doors en algunos sistemas operativos como fruto del descuido o desatencion a la hora del desarrollo del software dejando el sistema operativo con una puerta de acceso viable para elementos no deseados. Las bombas lógicas son partes de código de ciertos programas que permanecen sin realizar ninguna función hasta que son activadas. En ese punto, la función que realizan no es la original del programa, sino que generalmente se trata de una acción perjudicial. Los activadores mas comunes de estas bombas lógicas suelen ser la ausencia o presencia de diversos ficheros o la llegada de una fecha en concreto. Los canales cubiertos son canales de comunicacion que permiten a un proceso transferir información de forma que viole la política de seguridad del sistema, es decir, un proceso transmite informacion a otros (maquinas locales o remotas) que no estan autorizados a leer dicha informacion. Los virus informaticos no son mas que trozos de codigo comuflados dentro de otros archivos ejecutables, que al ejecutarse estos, tambien se ejecuta el virus. La politica del virus se basa basicamente en la destruccion del sistema, auto copiandose en mas archivos y expandiendose dentro del sistema infectandolo como si de un virus biologico se tratara.
La amenaza de virus en un sistema basado en Unix es minima, ya que existen mecanismos lógicos mucho mas rentables para atacar a una maquina. Sin embargo en sistemas basados por ejemplo en un entorno Windows la amenaza esta a la orden del dia, creandose cada dia infinidad de nuevos virus y modificaciones de los ya existentes. Los gusanos son una amenaza a tener en cuenta ya que sus efectos son especialmente devastadores. Debido a su complejidad para programarlos no existen tantos como virus. Un gusano posee elevada informacion para atacar un sistema, puede llevar consigo virus o informacion de bugs de sistema. Una vez dentro de un sistema sigue una serie de pasos para destruirlo, eso no es todo, su gran potencial es su capacidad de destruccion en red, algunos gusanos han llegado a detener mas de 6000 ordenadores conectados a la red. Los "worms" realizarian la misma tarea que haria un pirata avanzado para llevar a cabo su ataque. La diferencia reside en que el trabajo que le costaria a una persona se podria evaluar en horas, tiempo suficiente para ser detectado y neutralizado, pero la tarea que lleva a cabo el gusano es de escasos minutos. Los troyanos o caballos de Troya son instrucciones escondidas en un programa de forma que este parezca realizar las tareas que un usuario espera de él, pero que realmente ejecute funciones ocultas sin el conocimiento del usuario.
En la practica total de los ataques a Unix, cuando un intruso consigue el privilegio necesario en el sistema instala troyanos para ocultar su presencia o para asegurarse la entrada en caso de ser descubierto. Son programas que realizan tareas inutiles en un sistema. De por si son inofensivos, pero su ejecucion prolongada podrian porner en peligro la sesion actual en la que estuvieramos trabajando. Por ejemplo, es bastante comun en los principiantes en programacion que en alguno de sus programas realicen un bucle infinito, y si en uno de esos bucle infinitos se estuviera reservando espacio de memoria produciria un agotamiento de la memoria central del sistema lo que supondria una saturacion del SO. Se conocen a las tecnicas salami como aquellas que realizan un robo automatizado de pequeñas cantidades de bienes de una gran cantidad origen. Por ejemplo, si robaramos unos cuanto duros de una cuenta que posee varios millones seria bastante dificil darse cuenta, pues bien si ese proceso se automatiza y se roban pequeñas cantidades en ciertas dosis de tiempo, acabariamos teniendo un gran capital. Estas tecnicas no se utilizan con frecuencia para atacar sistemas informaticos, sino que no mas utilizadas para realizar un ataque contra el sistema computerizado de una entidad bancaria por ejemplo.

1.3.3 - CATASTROFES

Las catastrofes (naturales o artificiales) son la amenaza menos probable contra los entornos habituales. Este tipo de riesgos se le suele llamar riesgos poco probables. Obviamente se denomina así al conjunto de riesgos que, aunque existen, la posibilidad de que se produzcan es tan baja que nadie toma, o nadie puede tomar, medidas contra ellos. Como ejemplos de catastrofes se puede hablar de terremotos, inundaciones , incendios, humo o atentados de baja magnitud; obviamente los riesgos poco probables se tratan como algo anecdotico.

1.4 - METODOLOGIA DE PROTECCION

Los pasos a seguir para conseguir que nuestro sistema este protegido pasan por el estudio de las amenazas que podemos sufrir, las perdidas que se podrian generar y la probabilidad de que se produzca tal amenaza. El siguiente paso pasaria por realizar una politica de seguridad, en ella se describiria el esquema a seguir para ser implantado en nuestro sistema. Los mecanismos mas utilizados para implementar una politica de seguridad son los mecanismos de seguridad. Los mecanismos de seguridad se dividen en tres grandes grupos: de prevencion, de deteccion y de recuperacion.
Los mecanismos de prevencion son aquellos que aumentan la seguridad de un sistema durante el funcionamiento normal de este, previniendo la ocurrencia de violaciones a la seguridad, por ejemplo el uso de cifrado en la transmision de datos. Por mecanismos de deteccion se conoce a aquellos que se utilizan para detectar violaciones de la seguridad o intentos de violacion. Por ultimo se encuentran los mecanismos de recuperacion que se aplican cuando una violacion del sistema se ha detectado, para retornar a este ea su funcionamiento correcto, por ejemplo la utilizacion de backups en un sistema es un metodo de recuperacion, ya que en caso de perdida se puede restaurar de backup.
Anecdoticamente se puede hablar un ultimo mecanismo de seguridad, el mecanismo de analisis forense; este se dedica a averiguar el alcance de la violacion sufrida en el sistema que sirva para desvelar posibles causas del accidentes.
Pese a que todos los mecanismos son importantes, siguiendo el dicho de que "mas vale prevenir que curar" se trataran mas los mecanismos de seguridad basados en prevencion. Son los siguientes:

Estos mecanismos hacen posible identificar entidades del sistema de forma única, y posteriormente, una vez identificadas, autenticarlas. Son los mecanismos mas importantes en cualquier sistema, ya que forman la base de otros mecanismos que basan su funcionamiento en la identidad de las entidades que acceden a un objeto. Un grupo especialmente importante de estos mecanismos son los denominados Sistemas de Autenticacion de Usuarios, a los que prestaremos una especial atencion por ser los mas utilizados en la practica. Cualquier objeto del sistema ha de estar protegido mediante mecanismos de control de acceso, que controlan todos los tipos de acceso sobre el objeto por parte de cualquier entidad del sistema. Dentro de Unix, el control de acceso mas habitual es el "DAC" (Discretionary Access Control), implementado por los bits rwx y las listas de control de acceso para cada fichero del sistema. Cualquier sistema con diferentes niveles de seguridad ha de implementar mecanismos que permitan separar los objetos dentro de cada nivel, evitando el flujo de informacion entre objetos y entidades de diferentes niveles siempre que no exista una autorizacion expresa del mecanismo de control de acceso.
Los mecanismo de separacion se dividen en cinco grandes grupos, en funcion de como separan a los objetos: separacion fisica, temporal, logica, criptologica y fragmentacion. Dentro de Unix, el mecanismo de separacion mas habitual es ek de separacion logica o aislamiento, implementado en algunos sistemas mediante una Base Segura de Computo Es especialmente importante para la seguridad de nuestro sistema el proteger la integridad y la privacidad de los datos cuando se transmiten a traves de la red. Para garantizar esta seguridad en las comunicaciones, hemos de utilizar ciertos mecanismos, la mayoria de los cuales se basan en la Criptografia: cifrado de llave publica, de clave privada, firmas digitales...Aunque cada vez se utilizan mas los protocolos seguros, aun es frecuente encontrar conexiones en texto claro ya no solo entre maquinas de una misma subred, sino entre redes diferentes. Una de las mayores amenazas a la integridad de las redes es este tráfico sin cifrar, que hace extremadamente faciles ataques encaminados a robar contraseñas o suplantar la identidad de maquinas en red.


vision general del esquema de seguridad en un sistema informatico
 

[ CONCEPTOS BÁSICOS ] - [ ADMINISTRACION ELEMENTAL ] - [ AUTENTIFICACION DE USUARIOS ] - [ POLITICAS DE SEGURIDAD ] - [ SEGURIDAD EN EL NUCLEO ] -
[ COPIAS DE SEGURIDAD ] - [ BIBLOGRAFIA ]