jueves, 12 de marzo de 2015

Criptografía

El objetivo de la criptografía es conseguir la confidencialidad de los mensajes. Para ello se diseñaba sistemas de cifrado.

En esta entrada hablaremos de:
-Un poco de historia de la criptografía
-Criptografía simétrica y asimétrica
-Algoritmos 
-Función Resumen 
-Firma digital 
-Certificados digitales
-PKI

Un poco de historia de la criptografía 

La etimología del término criptografía proviene de dos palabras del griego, cripta, que significa 'escondido', y grafía, que quiere decir 'escritura'. Por tanto podemos definir la criptografía como la ciencia que estudia la escritura oculta, es decir, aquella que enseña a diseñar códigos secretos y la operación inversa, a interpretar los mensajes cifrados.
Los primeros mensajes cifrados datan del siglo V a.C.; ya entonces los espartanos usaban la escítala para ocultar las comunicaciones. El método consistía en enrollar una cinta sobre un bastón y posteriormente escribir el mensaje en forma longitudinal. Después la cinta se desenrollaba del bastón y era enviado mediante un mensajero; si éste era atrapado por los enemigos, sólo obtendrían un conjunto de caracteres sin sentido. El receptor sólo podría interpretar el mensaje siempre y cuando tuviese un bastón similar al que se utilizó para ocultar el mensaje, es decir una vara con el mismo diámetro.
A mediados del siglo II a.C., los griegos desarrollaron otro método conocido con el nombre de quien se cree que lo desarrolló, el historiador Polybios. El cifrado consistía en sustituir cada letra del mensaje original por el par de letras o números que indicaban la fila y columna en la cual se encontraba.
En el siglo I a.C. los romanos desarrollan el cifrador del César, cuyo método consistía en sustituir cada carácter por otro, resultado de desplazar tres posiciones hacia la derecha el carácter original del alfabeto utilizado.
Todos estos métodos criptográficos se fueran perfeccionando y mejorando según avanzaba el tiempo. Es en la Segunda Guerra Mundial cuando se hace imprescindible el uso de máquinas que cifren los mensajes para así evitar que el enemigo interceptase información sensible para el desarrollo de las operaciones.
Podemos hacer una clasificación de los métodos de criptografía:
  • Sistemas de transposición: como indica su nombre consiste en descolocar el orden de las letras, sílabas o conjunto de letras.
  • Sistemas de sustitución: como su nombre indica se reemplazan algunas letras del alfabeto por otras o por un conjunto de ellas según el método.

    Criptografía simétrica y asimétrica

    Hoy en día se utilizan fundamentalmente dos métodos de cifrados, el primero de ellos conocido como cifrado simétrico o de clave privada, el cual utiliza la misma clave para el cifrado y el descifrado. El segundo, conocido como cifrado asimétrico o de clave público, utiliza una pareja de claves para el proceso de cifrado y descifrado.

    Criptografía simétrica

    Se basa en un secreto compartido entre la entidad que cifra el mensaje y la que lo quiere descifrar, es decir, utiliza la misma clave en el proceso de cifrado que en el de descifrado.
    Si analizamos los métodos utilizados para salvaguardar la confidencialidad de los mensajes desde los primeros tiempos de la criptografía hasta mediados de los setenta, veremos que solo se hacía uso de métodos simétricos, que exigían necesariamente que el emisor y el receptor se pusieran previamente de acuerdo en la clave que iban a utilizar. El método de Vigenere es un claro ejemplo de lo dicho.
    Supongamos que Virginia y Macarena quieren intercambiar información confidencial. Antes de hacerlo, han de ponerse de acuerdo sobre la clave a utilizar, pues si la receptora no la conociera, le sería imposible leer el mensaje.

    Este método tiene dos desventajas: la primera, como podemos deducir de lo explicado, es la que conlleva el intercambio de claves, ya que si las personas se conocen y están físicamente en contacto es más o menos fácil comunicarse la clave a utilizar, pero si Virginia y Macarena se encuentran separadas por miles de kilámetros, o incluso no se conocen, como se intercambiarían la clave. Mediante un correo electrónico, correo ordinario, una llamada telefónica, pero todos ellos son medios de comunicación inseguros.
    La segunda desventaja es la cantidad de claves que una persona debe memorizar; supongamos que Macarena intercambia información confidencial con cincuenta personas diferentes, con cada una de ellas utiliza una clave distinta y cada cierto tiempo modifica dichas claves por seguridad.

    Criptografía asimétrica 

    En 1976, dos criptógrafos, Whitfield Diffie y Martin Hellmon, publicaron un nuevo método criptográfico que solucionaba las desventajas de la criptografía simétrica.

    Consiste en que cada una de las partes involucradas en una comunicación segura tienen una pareja de claves. Una de ellas, pública, que deberá intercambiar con cada una de las entidades con las que quiera comunicarse mensajes secretos, y otra de ellas privada, y que par tanta, jamás debe comunicar a nadie. Una de las claves, la pública, se la comunicará a todo el mundo sin que cree ninguna vulnerabilidad en las comunicaciones, porque con ella nunca podría un intruso descifrar el mensaje. 

    Para cifrar un mensaje, el emisor utilizará la clave pública del receptar, y a su vez, el receptar descifrará este mensaje haciendo uso de su clave privada.

    Como es lógico pensar, estas claves se generan a la vez y se encuentran relacionadas matemáticamente entre sí mediante funciones de un solo sentido; resulta prácticamente imposible descubrir la clave privada a partir de la pública.


    Como observamos en la imagen anterior, la clave pública es conocida por numerosas personas, mientras que la clave privada debe ser guardada por el receptor con celo para no comprometer la confidencialidad de los mensajes.

    Criptografía híbrida

    La desventaja de la criptografía de clave pública es la lentitud del proceso de cifrado y descifrado, que obedece tanto a la complejidad de los métodos utilizados como a la longitud de las claves.

    Otra de las desventajas es el mayor tamaño de la información cifrada con clave pública frente al tamaño de la misma cuando se cifra con clave privada.

    Todo esto nos hace pensar que lo ideal sería utilizar criptografía de clave privada para intercambiar mensajes, pues estos son más pequeños y además el proceso es rápido, y utilizar criptografía de clave pública para el intercambio de las claves privadas.


    Algoritmos

    Los algoritmos son los métodos que se utilizan para transformar el texto claro en el texto cifrado.
    El algoritmo consiste en sustituir cada letra del texto sin cifrar por otra letra del mismo alfabeto que se encuentra situada en el orden del diccionario N puestos por delante. N es el valor de la clave, que como podemos ver, junto con el algoritmo, determinará exactamente la letra que sustituirá a la original.
    El principio de Kerckhoff establece que la fortaleza de un sistema de cifrado debe recaer en la clave y no en el algoritmo, lo cual quiere decir que aunque el algoritmo sea de dominio público, si no conocemos la clave, no seremos capaces de descifrar los mensajes.
    Como podemos imaginar, hoy en día se utilizan diferentes algoritmos, algunos válidos para criptografía de clave privada y otras para criptografía de clave pública. DES, 3DES, RC4, IDEA Y AES son nombres de algoritmos de clave privada y DH, EIGamal, RSA de clave pública, entre otros.
    Los algoritmos de cifrado se clasifican en dos tipos:
    • De bloque: llamados así porque dividen el documento en bloques de bits, que por lo general son del mismo tamaño, y cifran cada uno de estos de manera independiente, para posteriormente construir el documento cifrado. Cuando se envía un documento cifrado utilizando un algoritmo de bloque, primero se cifra completamente el archivo a enviar y luego se realiza su transmisión.
    • De flujo: se diferencian de los anteriores en que se cifra bit a bit, byte a byte o carácter a carácter, en vez de grupos completos de bits; son muy útiles cuando tenemos que transmitir información cifrada según se va creando, es decir, se cifra sobre la marcha.

    Función Resumen

    Son funciones que asocian a cada documento un número y que tienen la propiedad de que conocido el valor numérico, no se puede obtener el documento. Estas son conocidas por el nombre de funciones de un solo sentido.

    El tamaño de un documento en bits podría ser una función resumen; también podría serlo, por ejemplo, la función que a cada documento le asocia su fecha de creación. Y aunque es verdad que estas dos funciones son funciones resúmenes, serían muy pocos útiles en el mundo de la criptografía, porque no cumplen los dos requisitos fundamentales: el primero de ellos, debe ser muy difícil que dos documentos distintos tengan el mismo resumen, y el segundo, que debe ser muy difícil, por no decir imposible, crear un documento a partir del valor de su resumen.

    Si nos fijamos en el primer ejemplo de la función tamaño en bits de un documento, no cumple ninguno de estos requisitos, pues es fácil que dos documentos tengan el mismo tamaño, y aún mas fócil es crear un documento que tenga un tamaño dado.

    Esto nos hace pensar que la manero de obtener el valor resumen de un documento empleará algoritmos complejos matemáticamente, para que así pueda cumplir las dos especificaciones de la función resumen. Algunos de estos algoritmos son el MD5 y el SHA.

    El aspecto que tiene el valor hash o función resumen de un documento utilizando el algoritmo MD5 es lDE928978E2BF219F76ElC5C2A9CCB1A; como podemos ver, un número escrito en hexadecimal de 32 dígitos, o lo que es lo mismo de 128 bits.

    El resultado de aplicar este algoritmo a un documento siempre genera un número de 128 bits.

    Sabemos que en Linux las contraseñas de los usuarios se encuentro n en el fichero /etc/passwd o en versiones más actuales en el fichero /etc/shadow. Como imaginamos, estas contraseñas no se encuentran en texto claro, sino que se almacenan en estos ficheros utilizando funciones resumen; los algoritmos que más se utilizan son el MD5 y el SHA-512. Se recomienda utilizar este último pues se considera el MD5 mucho más inseguro.

    Firma digital

    Cuando estampamos nuestra firma manuscrita en un documento, le estamos dando al mismo veracidad y aceptando nuestra respansabilidad sobre la que en él se diga.
    La firma digital viene a sustituir a la manuscrita en el mundo de la informática. Es decir, si firmamos de forma digital un documento, le estaremos dando veracidad y como sucede con la firma manuscrita, no podremos decir que no lo hemos firmado nosotros; por lo tanto, seremos responsables de lo que en él se diga.
    La descripción del mecanismo de firma electrónica es el siguiente:
    • Se calcula un valor resumen del documento, utilizando algún algoritmo como el SHA.
    • Este valor resumen se cifra utilizando la clave privada de nuestra pareja de claves pública-privada
    • El resultado de este valor es el que se conoce como firma digital del documento.


    Describamos ahora el proceso de comprobación de una firma digital. El que se utiliza es el siguiente:
    • La firma se descifra utilizando la clave pública del firmante, y con ello, como se deduce del método de firmado, se obtiene el valor resumen del documento.
    • Se obtiene el valor resumen del documento utilizando el mismo algoritmo que en el proceso de cifrado, por ejemplo el SHA.
    • Por último se comparan los dos valores resúmenes obtenidos en los dos procesos anteriores y si estos coinciden entonces la firma es válida; si estos son distintos la firma será nula.

    Certificados digitales

    El certificado digital es un documento que contiene fundamentalmente formación sobre una persona o entidad, guarda su nombre, su dirección, email  ... , y una clave pública y una firma digital de un organismo de confianza (autoridad certificadora) que rubrica que la clave pública que contiene el certificado pertenece al propietario del mismo.
    Esta última firma podríamos decir que es la más importante del certificado. 
    Estos certificados nos facilitan muchos de los trámites que debemos realizar con las administraciones públicas, podemos entregar la declaración de la renta, consultar nuestra vida laboral y otras muchas gestiones. Todo ello gracias a que el certificado digital establece la identidad del usuario en la red.
    Existen multitud de formatos para los archivos que almacenan los certificados
    digitales. El más extendido y usado en Internet es el estándar conocido como X.509.

    El certificado almacena los siguientes campos:
    • Versión, número de serie.
    • Algoritmo de firma.
    • La autoridad certificadora.
    • El periodo de validez.
    • El propietario de la clave.
    • La clave pública.
    • La firma digital de la autoridad certificadora.
    • Huella digital.
    • Uso de la clave.
    • Dirección web donde se pueden consultar las prácticas de certificación.








    PKI

    PKI son los siglas de Public Key Infrastructure (infraestructura de clave pública), o lo que es lo misma, todo lo necesario, tanta de hardware como de software, para las comunicaciones seguras mediante el uso de certificadas digitales y firmas digitales. De esta manera se alcanzan los cuatro objetivos de la seguridad informática que estudiamos en la primera unidad: autenticidad, confidencialidad, integridad y no repudio.
    Las PKI están compuestas de:
    • La autoridad de certificación, también conocida por sus siglas CA es la entidad de confianza encargada de emitir y revocar los certificados digitales.
    • La autoridad de registro, también conocida por sus siglas RA es la encargada de controlar la generación de certificados.
    • Las autoridades de los repositorios donde se almacenan los certificados emitidos y aquellos que han sido revocados por cualquier motivo y han dejado de ser válidos.
    • Todo el software necesario para poder utilizar los certificados digitales.
    • Política de seguridad definida para las comunicaciones.
       En España para realizar numerosos trámites con las administraciones públicas por In-
      ternet nos exigen el uso de un certificado digital que asegure nuestra identidad. Dicho certificado es emitido por la Fábrica de la Moneda y Timbre, autoridad de certificación, que haciendo uso de numerosas oficinas de la administración pública como autoridades de registro verifican que la persona que solicita el certificado es quien dice ser al presentar el documento nacional de identidad en dichas oficinas.

Seguridad activa en el sistema

Definido como el conjunto de medidas que previenen o intentan evitar
los daños en el sistema informático. Se trata de estudiar qué mecanismos de protección podemos utilizar en nuestro equipo informática para evitar accesos indeseados de intrusos (personas a programas informáticos).

Aquí veremos los siguientes apartados:

-Seguridad en el acceso al ordenador  
-Autenticación de los usuarios  
-Sistemas biométricos  
-Vulnerabilidades del sistema  
-Monitorización del sistema  
-Software que vulnera la seguridad del sistema. 


Seguridad en el acceso al ordenador

Para evitar cualquier acceso indeseado a nuestra equipo debemos asegurar el arranque del mismo mediante el uso de contraseñas.
Si analizamos el proceso de encendido del ordenador, recordaremos la importancia que tiene la BIOS en el mismo; es la encargada de localizar y cargar el sistema operativa o gestor de arranque.

¿Cómo evitamos que personas ajenas modifiquen la BIOS?

El uso de contraseñas para acceder a la BIOS evitará que personal no autorizado realice modificaciones indeseadas en la configuración de la misma, así como cambios en la secuencia de arranque, lo que permitiría la puesta en marcha del equipa desde medias extraíbles y el acceso a los datos almacenados en el mismo, vulnerando la confidencialidad de estos.

¿Cómo proteger el GRUB con contraseña?

Para evitar que personas no autorizadas tengan acceso a la edición de las opciones de arranque de los distintos sistemas operativos que controla el GRUB estableceremos una contraseña.

Cifrado de particiones.

En este apartado vamos a estudiar cómo proteger la confidencialidad de los datos almacenados en los distintos volúmenes del equipo mediante el cifrado de particiones.
Cualquier software de encriptación de disco protege, la información contra el acceso de personas no autorizadas.
Cuota de disco.

La mayoría de las sistemas operativos poseen mecanismos para impedir que ciertos usuarios hagan un uso indebido de la capacidad del disco, y así evitar la ralentización del equipo por saturación del sistema de ficheras y el perjuicio al resto de los usuarios al limitarles el espacio en el disco.
Las cuotas de disco se pueden configurar en función de varios criterios, según usuarios, grupos o por volúmenes.
Veamos un ejemplo
Supongamos la empresa de construcción SiCom, en la que los usuarios se encuentran clasificados por grupos, Contabilidad, Arquitectos y Dirección. Repartiremos el sistema de ficheros entre los diversos grupos en función de las necesidades de los mismos. El grupo de Contabilidad suele trabajar con archivos Excel y Word, de pequeño tamaño, al igual que el grupo de dirección.
Activación y uso de cuotas de disco en Windows
 
Para activar las cuotas de disco en una partición en Windows
debemos seguir los siguientes pasos:
Debemos hacer clic en el botón derecho sobre la partición
donde queremos establecer las cuotas y elegir la opción Pro-
piedades.
Habilitamos la administración de la cuota seleccionando la casilla (Fig. 5.26).
Si solo queremos hacer un seguimiento del uso del sistema de ficheros por parte de los usuarios y grupos no seleccionaremos la siguiente opción que muestra la Figura 5.27, Denegar espacio de disco a usuarios que excedan el límite de cuota.
Si se marcan los dos opciones que aparecen al final de la Figura 5.27, el sistema operativo registraría los eventos, haber superado el nivel de advertencia o haber superado el límite de cuota, en el visor de sucesos.
Cuotas de usuario en UBUNTU

Para gestionar las cuotas de discos en Linux vamos a utilizar la herramienta de configuración del sistema conocida como Webmin. Esta herramienta no viene instalada por defecto con el sistema operativo, así que tendremos que instalarla utilizando el gestor de paquetes Synaptic o utilizando el comando apt-get.

En caso de no tener instalado el paquete cuota ¡permite definir
las cuotas de disco en Linux) usaremos la orden apt-get install cuota.
En este caso, vamos a realizarlo utilizando la orden apt-get. Debemos seguir los pasos que se detallan a continuación.
Para que el comando apt-get funcione e instale correctamente esta herramienta, debeos añadir el repositorio http://download.webmin.com/download/repository al final del fichero sources.list mediante la orden gedit, como vemos en la Figura 5.30.
Por último, actualizamos e instalamos la herramienta webmin, mediante la ejecución de los siguientes comandos (Fig. 5.31 y 5.32).
Para ejecutar la aplicación tendremos que abrir un navegador web, en nuestro caso Firefox, e ir a la siguiente dirección https://localhost:10000. Es muy probable que al acceder a dicha dirección el sistema nos devuelva un error como el que se muestra en la Figura 5.33.
 Para solucionar dicho error debemos crear una excepción.
A continuación aparecerá una página como la que se muestra en la Figura 5.34.
 Introducimos como usuario al administrador root y la contraseña del mismo. A continuación veremos una nueva ventana como la que se muestra en la Figura 5.35.
Como Como podemos ver, este programa es una aplicación web que se puede utilizar para configurar multitud de opciones del sistema.
La página de entrada tiene un marco a la izquierda con un menú. Escogemos la opción Sys/em (sistema) y dentro de esta la opción Disk and Ne/work Filesys/ems (Disco y Sistemas de archivos en red). Una vez realizada la selección, el marco de la derecha se actualiza visualizando todos los sistemas de archivos de nuestro equipo (Fig. 5.36).
De todos ellos nos vamos a centrar en el directorio /home, que está montado en una partición independiente y es la idónea paro activar las cuotas de usuario, por ser en ella donde se guardarán todos los archivos de los mismos. En el marco de la derecha de la página, seleccionamos con el ratón la opción /home, que nos llevará a una nueva pantalla (Fig. 5.37).
 
 
 
En esta nueva página, tendremos que poner la opción Use Qua/as? (¿usar cuotas?) con el valor User only (sólo usuario), pues vamos a aplicar las cuotas de disco por usuario y no por grupos.
El siguiente paso consistirá en establecer las cuotas que queramos a cada uno de los usuarios del sistema. Para ello elegiremos en el marco de la derecha la opción Sys/em (Sistema) y en ella la opción disk qua/as (cuotas de disco), como podemos ver en la Figura 5.38.
En esta nueva pantalla aparecen los sistemas de ficheros para los que se hayan establecido cuotas de disco, que como se ve, solo se ha realizado en la partición /home. Si marcamos con el ratón la opción /home, iremos a una nueva pantalla que contiene una línea por cada usuario del sistema (Fig. 5.39).
 
 
  Por último, sólo nos quedo seleccionar los usuarios o los que queremos asignarles cuotas de disco y establecer las mismas. Para ello se seleccionará el usuario elegido, apareciendo uno nueva pantalla como la que se muestra en la Figura 5.40.
Uno vez definidas las cuotas, hacemos clic sobre el botón Update (actualizar). Si quisiéseras poner cuotas a otro usuario, repetiríamos el proceso anterior.
 
 

Autenticación de los usuarios

Los métodos de autenticación, en nuestro caso, son los mecanismos que una máquina tiene para comprobar que el usuario que intenta acceder es quien dice ser.

Estos métodos se pueden clasificar en tres grupos, en función de los medios que se vayan a utilizar para identificarse:

  • Algo que el usuario sobe y que el resto de las personas desconocen: es lo más utilizado. Lo usamos poro acceder a nuestra cuenta de correo electrónico, para conectarnos a Tuenti. .. (utilizamos un nombre de usuario y una contraseña que solo conocemos nosotros).
  • Algo que el usuario posee, por ejemplo, una tarjeta de identidad.
  • Alguna característica propia del usuario, rasgos físicos o comportamientos. Ejemplos: la huella dactilar, característica utilizada en el DNI para identificarnos; la retina, la manera de teclear ... A este tipo de medidas se le conoce como mecanismos biométricos.
Hay sistemas de autenticación que combinan distintos métodos para alcanzar un mayor grado de seguridad; pensemos cuando vamos a sacar dinero de un cajero automático, que primero debemos insertar nuestra tarjeta de crédito (algo que poseo) y luego solicita el número de identificación, PIN (algo que conozco).

Políticas de contraseñas

En la mayaría de los equipos informáticos, la autenticación de los usuarios se realiza introduciendo un nombre y una contraseña. Cada usuario tiene asignado un identificador y una clave, que permitirán comprobar la identidad del mismo en el momento de la autenticación.

A continuación, vamos a estudiar las características que debe cumplir una buena contraseña:
  • No deben estar formadas por palabras que encontremos en diccionarios, ni en español ni en ningún otro idioma, ya que cualquier programa de fuerza bruta lo descubriría con facilidad.
  • No deben usarse sólo letras mayúsculas o minúsculas, porque se reducirían las combinaciones en un alto grado; ejemplos rechazables: ANA, avestruz, abcdef.
  • No deben estar formadas exclusivamente por números, por el mismo motivo que en el caso anterior. Ejemplos: 273456, 373009.
  • No debemos utilizar información personal: nombre de nuestros familiares, fecha de nacimiento, número de teléfono ... ya que cualquier persona cercana a nosotros podría descubrirla. Ejemplos: cp28007, 06/06/1965. Este fallo es muy habitual en las preguntas que te realizan determinadas páginas (correos electrónicos) cuando no recuerdas la contraseña.
  • No debemos invertir palabras reconocibles, como atatap, zurtseva. Cualquier programa creado para este fin lo descubriría en un corto espacio de tiempo.
  • No debemos repetir los mismos caracteres en la misma contraseña.
  • No debemos escribir lo contraseño en ningún sitio, ni en papel ni en documentos electrónicos que no hayan sido encriptodos.
  • No debemos enviarlo en ningún correo electrónico que nos la solicite.
  • No debemos comunicarla a nadie por teléfono.
  • Debemos limitar el número de intentos fallidos. Si excede el número máximo de intentos permitidos, el usuario debe quedar bloqueado, par lo que tendrá que ponerse en contacto con el técnico de seguridad. Es lo que ocurre en los cajeros automáticos, si te equivocas tres veces al introducir la clave, el cajero se queda con la tarjeta. Con ello evitamos que se puedan seguir haciendo intentos indefinidamente y al final se descubra el número secreto.
  • Debemos cambiar las contraseñas de acceso, dadas por defecto por los fabricantes de routers y otros periféricos, que nos permiten el acceso a la red.
  • No debemos utilizar la misma contraseña en las distintas máquinas o sistemas, ya que si nos la descubren, haríamos vulnerables el resto de equipos a los que tenemos acceso.
  • Las contraseñas deben caducar y exigir que se cambien cada cierto tiempo, al menos una vez al año.
  • No debemos permitir que las aplicaciones recuerden las contraseñas.
 

Sistemas biométricos

Los sistemas biométricos, se utilizan para autenticar a los usuarios a través de sus rasgos físicos o conductas.

Estos sistemas se están popularizando en la actualidad; podemos encontrar portátiles que nos obligan a autenticarnos para acceder a su sistema operativo a través de la detección de la huella digital.

Otro caso similar nos lo encontramos en Disney World, la identificación de los usuarios que paseen entrada válida para varios días, se realiza mediante sistemas biométricos; de esta manera, se evita que un grupo de amigos saquen entradas para varios días aprovechando el descuento y que posteriormente accedan al parque en distintas días repartidos en pequeños grupos.

¿Cómo funciona un sistema biométrico?

El funcionamiento del sistema biométrico se compone de dos módulos, el de inscripción y el de identificación (Fig. 5.41 )
 El primero de ellos, mediante sensores, lee y extrae la característica que identifica al usuario, almacenando el patrón en una base de datos.
El módulo de identificación lee y extrae la característica que reconoce al usuario. 

Ese patrón es comparado con los que se tienen almacenados en la base de datos y se devuelve la decisión sobre la identidad del usuario.
Los tipos de sistemas biométricos más populares son:

Verificaciones anatómicas:
  • Mano: huellas dactilares, geometría, venas.
  • Rostro: geometría.
  • Patrones oculares: retina, iris.

Verificación del comportamiento
  • Timbre de la voz.
  • Escritura: uso del teclado, escritura manual de un texto predefinido, firma del usuario.
  • Longitud y cadencia del paso.
Listas de control de acceso 
Las listas de control de acceso, también conocidas por su sigla en inglés ACL, mejoran la seguridad de los archivos de nuestro sistema. En dichas listas, se definen los privilegios que tiene un usuorio de forma individual sobre un determinado fichero, es decir, permiten o limitan el acceso a los archivos de manera individual sin tener en cuenta el grupo.

Para poder hacer uso de las listas de control de acceso Para ello, necesitamos configurar el fichero /etc/fstab. Los sistemas de ficheros montados con ACL, tendrán la palabra elave «ael» en las opciones de montaje de dicho fichero. En nuestro caso, además de las particiones de root y swap, tenemos una tercera dedicada al almacenamiento de datos; en esta última, vamos a configurar la lista de control de acceso; para ello modificamos el fichero fstab (Fig. 5.43), añadiendo la línea correspondiente a dicha partición (Fig. 5.44.) debemos comunicarle al sistema en qué particiones vamos a querer usarlas.









A continuación, procederemos a montar la partición nuevamente (Fig. 5.45).
 
Para realizar el ejemplo, root ha creado un fichero llamado prueba.
A continuación, mediante el comando getfacl, vamos a ver la información que almacena la lista de control de acceso del fichero prueba y del directorio
actual.
Nos informa del nombre del fichero, del propietario,del grupo y lo que más nos interesa, los permisos del propietario (user::rw·), del grupo (group::r .. ) y del mundo (other::r .. ). Lo mismo para el directorio actual (Fig. 5.48).
A continuación, vamos a darle permisos a Fernando, para que pueda leer y modificar el fichero prueba. Paro ello, debemos utilizar el comando setfacl con la opción «·m», que nos permite modificar la ACL, y por último, comprobamos que se ha realizado la modificación solicitada (Fig. 5.49)
Vamos con un caso practico 9
Los parámetros son:

ll.- Cambia las ACLS de los archivos especificados en el directorio actual yen
todos sus subdirectorios.
le.- Modifica la ACL en vez de reemplazarla. Este parámetro es muy importante,
supongamos que queremos darle permisos al Usuari02 y no utilizamos este
modificador; entonces se reemplaza la ACL antigua por la nueva, no permi-
tiendo al Usuario 1 acceder a su información.*/c.- Fuerza la modificación aunque encuentre errores. 
/g usuario:permisos; R (lectura); E (escritura); C (cambiar), y F (control total).-
Concede derechos de acceso al usuario.
/R usuario.- Suspende los derechos al usuario.
/p usuario:perm.- Sustituye los derechos del usuario especificado.
/d usuario.- Deniega el acceso al usuario especificado.
La instrucción cacls permite modificar las listas de control de acceso a los ficheros.
Según la sintaxis anterior, debemos ejecutar el comando que aparece en la
Figura 5.50.
El resultado es que el Usuari02 puede entrar a todos los directorios y ficheros
que cuelguen del directorio Usuariol, o lo que es lo mismo, puede visualizar
cualquier documento de dicho usuario.
Como toda la información del Usuario 1 está almacenada en dos carpetas, Confidencial y Datos Compartidos, para que no tenga acceso el Usuari02 al directorio Confidencial del Usuariol, debemos ejecutar la orden de la Figura 5.51.

Vulnerabilidades del sistema

Los sistemas operativos son programados y sometidos a numerosas pruebas anles de ser lanzados al mercado, pero no se descubren sus verdaderas vulnerabilidades hasta que los «expertas en seguridad" (hackers, crackers, virus .. . ), lo someten a sus duras pruebas. Entonces, esos agujeros son corregidos con la mayor celeridad posible por los programadores del sistema .
Por el lo, siempre debemos mantener el sistema actualizado.

Evitar vulnerabilidades en Windows
debemos mantener el sistema actualizado con los últimos parches. Esto lo podemos realizar de distintas maneras:
Windows praporciona un servicio de actualizaciones automáticas a lravés de la Web,
denominado Windows Update, ubicado en windows update.microsolt.com. Si nos coneclamos a esta página, el servicio analiza el sistema operativo y determina las actualizaciones que es necesario descargar.
Otra manera es configurar el sistema operativo paro que realice las descargas de las actualizaciones automáticamente. 

Para ello debemos pulsar el balón Inicio de Windows, hacer clic sobre el Panel de Control y seleccionar la opcián de Windows Update (Fig . 5.52).

A continuación, se abre una nueva ventana similar a la que se muestra en la Figura 5 .53 .
En esa ventana podemos buscar actualizaciones, cambiar la configuración, consultar el historial de actualizaciones, restaurar actualizaciones ocultas y ver las preguntas frecuentes sobre el proceso de actualizar el sistema.
Como estamos intentando configurar las actualizaciones automóticamente, debemos hacer dic en la opción Cambiar configuración, que se muestra en el marco izquierdo de la Figura 5.53.
En la nueva ventana (Fig. 5.54), seleccionamos la primera opción, Instalar actualizaciones automáticamente (recomendado), definiendo cuándo queremos que se instalen las nuevas actualizaciones. Como sabemos que Windows suele publicar las actualizaciones los martes, lo podemos configurar para que se instalen los viernes a las 20:00 horas, de esta manera, nos aseguramos que no han dado problemas los parches publicados.

Otra opción que podemos seleccionar en la misma ventana es Descargar actualizaciones, pero permitirme elegir si deseo instalarlas; como su nombre indica se descargan las actualizaciones, pero no son instaladas hasta que no demos la oportuna orden.

Otra selección posible es Buscar las actualizaciones, pero permitirme elegir si deseo descargarlas e instalarlas; de esta manera, no se descargan las actualizaciones, ocupando espacio en el disco duro hasta el momento en que las instalamos.

Por último, podemos optar por no buscar las actualizaciones; en ese caso somos los responsables de acceder a la página de Windows Update y determinar las actualizaciones que necesitamos para mantener nuestro equipo sin vulnerabilidades. De la misma manera que mantenemos actualizado el sistema operativo, debemos mantener actualizado los programas que tenemos instalados y, por supuesto, el firmware de los distintos periféricos que conectamos al equipo: router, switch, etc.

Como perderíamos mucho tiempo consultando la página de cada fabricante para ver si han publicado nuevas actualizaciones de las aplicaciones instaladas, podemos utilizar algunos de los numerosos programas gratuitos que existen. Estos se conectan a Internet y nos informan de si hay nuevas actualizaciones publicadas que aún no tengamos instaladas.

Algunos ejemplos de dichos programas son APPGET, SUMO, LOGICIEIMAC.COM, APPFRESH, UPDATE NOTIFIER (http://cleansofts_org), etc.
 
 

Monitorización del sistema

Con lo monitorización del sistema vamos a poder auditar los eventos que se han producido en nuestro equipo.

Windows

Como ya estudiamos, podemos abrir el visor de sucesos mediante la orden evenlvwr.msc. En la Figura 5.55, podemos ver que guarda información de los sucesos de aplicación, seguridad y sistema.

Esta información es guardada en los archivos AppEvent.Evt, SecEvent.Evt y SysEvent.Evt, ubicados todos ellos en el directorio %SystemRoot%\system32\config.

Es muy importante configurar correctamente el tamaño y el acceso a los mismos. El tamaño debe ser lo suficientemente grande para albergar los sucesos producidos en el sistema hasta que lo auditemos. Y como es lógico, para evitar que 105 intrusos borren sus huellas sólo deberán tener permisos de control total el técnico o técnicos ,encargados de la seguridad del sistema.

Linux tiene un complejo visor de sucesos (Fig. 5.56) que podemos arrancar desde Sistema > Administración> Visor de archivos de sucesos.
Para simplificar lo auditoría, Linux tiene un conjunto de comandos, que se especializan en el registro de los distintos eventos. Para auditar los entradas al sistema utilizaremos el comando last (Fig. 5.58, para auditar los accesos fallidos usaremos el comando lastb (Fig. 5.59 Y para los conexiones 01 sistema por red utilizaremos el comando lastlog (Fig. 5.601.Los ficheros donde se guarda la información se encuentran ubicados en el directorio /var/log (Fig. 5.571.)


Seguridad activa en red

En esta entrada veremos los siguientes puntos:

     -Redes cableadas
     -VLAN
     -Redes inalámbricas
     -VPN
     -Servicios de red. Nmap y netstat
     -Espiar nuestra red
     -Firewall
     -Proxy
     -Spam 



Redes cableadas

También hay que protegerse de los ataques que vengan por la red. Una máquina que ofrece servicios TCP/IP debe abrir ciertos puertos. A estos puertos pueden solicitar conexión máquinas fiables siguiendo el protocolo estándar, o máquinas maliciosas siguiendo una variación del protocolo que provoca un fallo en nuestro servidor. Las consecuencias de este fallo serán, como mínimo, que el servicio queda interrumpido; pero en algunos casos el atacante puede tomar el control de la máquina.
Las primeras redes LAN cableadas eran muy inseguras, porque todos los ordenadores estaban conectados al mismo cable (arquitectura en bus), de manera que cualquiera podía poner su tarjeta de red en modo promiscuo y escuchar todas las conversaciones, no solo aquellas en las que participaba.
Actualmente, este miedo prácticamente ha desaparecido, porque utilizamos la arquitectura en estrella: cada equipo tiene un cable directo a un puerto de un conmutador de red (switch) y por ahí envían sus paquetes; el switch los recibe y decide por qué puerto va a enviarlos para que lleguen al destino.

Sin embargo, las redes conmutadas tienen sus propias vulnerabilidades:
  • Hay que proteger el switch físicamente: encerrarlo en un armario/rack con llave dentro de una sala con control de acceso. Así evitamos no solo el robo, sino que alguien acceda al botón de reset y lo configure a su modo. 
  • Hay que proteger el switch lógicamente: poner usuario/contraseña para acceder a su configuración 
  • Hay que hacer grupos de puertos: porque en un switch suelen estar conectados grupos de máquinas que nunca necesitan comunicarse entre sí. Debemos aislarlas para evitar problemas de rendimiento y seguridad. 
  • Hay que controlar qué equipos se pueden conectar y a qué puertos. Por el motivo anterior, al grupo de marketing solo deberían entrar máquinas de marketing.

VLAN

Los grupos de puertos que hacemos en un switch gestionable para aislar un conjunto de máquinas constituyen una VLAN. Se le llama virtual porque parece que están en una LAN propia, que la red está montada para ellos solos. Como hemos dicho antes, utilizar VLAN mejora el rendimiento y la seguridad, porque esas máquinas solo hablan entre ellas y nadie extraño las escucha. Al mismo tiempo, si ocurre un problema en una VLAN, las otras VLAN no se ven afectadas. Pero un exceso de tráfico en una VLAN sí afectaría a todos porque, al fin y al cabo, comparten el switch.
 Una VLAN basada en grupos de puertos no queda limitada a un switch; uno de los puertos puede estar conectado al puerto de otro switch, y, a su vez, ese puerto forma parte de otro grupo de puertos, etc. Por ejemplo, cuando el departamento de marketing tiene parte de su personal en la primera planta y parte en la segunda, hay que dejar un puerto en cada switch para interconectarlos.

Sin embargo, es raro que las VLAN estén completamente aisladas del resto del mundo. Como mínimo, necesitarán acceso a Internet, así como conectar con otros servidores internos de la empresa (intranet, disco, backup, correo, etc.). Para interconectar VLAN (capa 2) generalmente utilizaremos un router (capa 3).

Capa 2. En el modelo TCP/IP la capa 2 o capa de enlace tiene una visión local de la red: sabe cómo intercambiar paquetes de datos con los equipos que están en su misma red. La comunicación es directa entre origen y destino

Capa 3. La capa 3 o capa de red tiene una visión global de la red: sabe cómo hacer llegar paquetes de datos hasta equipos que no están en su misma red. La comunicación es indirecta, necesita pasar por una máquina más: el router.

El router necesitará conectividad con cada una de las VLAN que interconecta. Una forma de conseguirlo es reservarle un puerto en cada una, pero nos llevaría a instalar muchas tarjetas en el router. Una solución alternativa es utilizar el segundo tipo de VLAN: VLAN etiquetada.
Hemos protegido el acceso al switch y repartido las máquinas de la empresa en varias VLAN, interconectadas por routers. Pero cualquiera puede meterse en un despacho, desconectar el cable RJ45 del ordenador del empleado, conectarlo a su portátil y ya estaría en esa VLAN. Como sigue siendo un switch, no podrá escuchar el tráfico normal de los demás ordenadores de la VLAN, pero sí lanzar ataques contra ellos.

Para evitarlo, los switch permiten establecer autenticación en el puerto: solo podrá conectar aquel cuya MAC esté dentro de una lista defi nida en el propio switch, o, dado que las MAC son fácilmente falsifi cables (las tarjetas emiten los paquetes que genera el software de red del sistema operativo), el que sea autentifi cado mediante RADIUS en el estándar 802.1X.

Redes inalámbricas

Los miedos a que las comunicaciones sean escuchadas por terceros no autorizados han desaparecido en las redes cableadas, pero están plenamente justifi cados en redes inalámbricas o WLAN, porque de nuevo el medio de transmisión es compartido por todos los equipos y cualquier tarjeta en modo promiscuo puede perfectamente escuchar lo que no debe.
Aunque se pueden hacer redes inalámbricas entre equipos, lo más habitual son las redes de tipo infraestructura: un equipo llamado access point  hace de switch, de manera que los demás ordenadores se conectan a él, le envían sus paquetes y él decide cómo hacerlos llegar al destino, que puede ser enviarlo de nuevo al aire o sacarlo por el cable que le lleva al resto de la red. Salir por el cable es la confi guración más habitual en las empresas, donde la WLAN se considera una extensión de la red cableada.
Como ocurría con el switch en las redes cableadas, hemos de:
  •  Proteger el access point físicamente. La protección física es más complicada que en el caso del switch, porque el AP tiene que estar cerca de los usuarios para que puedan captar la señal inalámbrica, mientras que para conectar la toma de red de la mesa con el switch podemos utilizar cable de varias decenas de metros.
  • Proteger el access point lógicamente (usuario/contraseña).
  • Controlar qué clientes pueden conectarse a él (autenticación).
  • Podemos separar dos grupos de usuarios, haciendo que el mismo AP emita varias SSID distintas, con autenticaciones distintas. Estas distintas SSID suelen tener asociada una VLAN etiquetada.
  • Sobre todo, hay que encriptar la transmisión entre el ordenador y el AP. Así, aunque alguien capture nuestras comunicaciones, no podrá sacar nada en claro.


Asociación y transmisión

En wifi se establecen dos fases: asociación y transmisión.

Durante la asociación el usuario elige la SSID a la que se quiere conectar y entonces su tarjeta inalámbrica contacta con el AP que ofrece esa SSID. Negocian varias características de la comunicación, pero sobre todo el AP puede solicitar algún tipo de autenticación para decidir si debe dejarle asociarse o no. Generalmente es una clave alfanumérica que se registra en la confi guración del AP y que el usuario debe introducir para poder trabajar con él.


La autenticación es más habitual en redes inalámbricas que en redes cableadas porque, para poder llegar a conectar un cable, primero tenemos que entrar en la empresa, y se supone que no dejan pasar a cualquiera; en cambio, podemos captar la señal inalámbrica desde un coche aparcado junto a la fachada, sentados en un bar en la planta baja, etc. Aunque la empresa intente evitarlo limitando la potencia de emisión de sus AP, es imposible que no salga nada.
Las AP admiten varios tipos de autenticación:
  • Abierta: no hay autenticación, cualquier equipo puede asociarse con el AP.
  • Compartida: la misma clave que utilizamos para cifrar la usamos para autenticar.
  • Acceso seguro: usamos distintas claves para autenticar y cifrar. El usuario solo necesita saber una, la clave de autenticación: la clave de cifrado se genera automáticamente durante la asociación.
  • Autenticación por MAC: el AP mantiene una lista de MAC autorizadas y solo ellas pueden asociarse.
Una vez asociados al AP, podemos empezar la fase de transmisión, durante la cual estableceremos conversaciones con el AP. Si queremos evitar que un tercero capture los paquetes intercambiados e intente conocer lo que transmitimos, el cliente y el AP deberán activar el cifrado de cada paquete.
Por tanto, el AP admite varias combinaciones:
  • Autenticación abierta y sin cifrado: se utiliza en lugares públicos. La intención es no molestar al usuario introduciendo claves; además, si las ponemos, habría que dar a conocer la clave mediante un cartel en el interior del establecimiento, por lo que la tendrían todos, usuarios y atacantes. En estos casos, el sistema operativo nos avisa de que vamos a conectarnos a una red sin seguridad. 
  • Autenticación abierta y transmisión cifrada: es el esquema habitual de las primeras redes wifi.
  • Autenticación compartida y transmisión cifrada: es una mala combinación, porque la autenticación es muy vulnerable y, conocida esa clave, tendrán acceso a descifrar las comunicaciones de cualquier ordenador conectado a ese AP.
  • Autenticación segura y transmisión cifrada: es la mejor solución porque utiliza una clave distinta para cada cosa. La más conocida es WPA, como veremos en el siguiente apartado de esta unidad.

Cifrado: WEP, WPA, WPA2

La necesidad de encriptar las comunicaciones inalámbricas apareció desde el primer momento. Había que dar a los usuarios la confi anza de que su información viajaba segura. El primer estándar se llamó WEP, intentando compensar las dos realidades:
  •  En redes cableadas es difícil el acceso al cable, pero si alguien lo consigue, puede capturar cualquier comunicación que pase por ahí.
  • En redes inalámbricas cualquiera puede capturar las comunicaciones, pero, como van cifradas, no le servirá de nada.
Sin embargo, en poco tiempo se encontraron debilidades al algoritmo de cifrado utiliado en WEP. Capturando cierto número de tramas, en poco tiempo cualquiera podía obtener la clave WEP.
Las autoridades de estandarización empezaron a trabajar en un nuevo estándar. Se llamó WPA e introduce muchas mejoras:
  •  Nuevos algoritmos más seguros, tanto por el algoritmo en sí como por el aumento de longitud de las claves, lo que dificulta los ataques.
  • Rotación automática de claves. Cada cierto tiempo (varios minutos) el AP y el cliente negocian una nueva clave. Por tanto, si algún atacante lograra acertar con la clave de una comunicación, solo le serviría para descifrar la información intercambiada durante ese intervalo de tiempo, pero no la anterior ni la siguiente.
  • Por primera vez se distingue entre los ámbitos personal y empresarial. En el ámbito personal es suficiente con el esquema habitual de una única clave que conocen todos; en el ámbito empresarial no tiene sentido, porque si una persona abandona la empresa, habría que cambiar la clave y comunicarlo de nuevo a todos los empleados.

WPA empresarial: RADIUS

Como acabamos de destacar, para las necesidades de seguridad de una empresa no es suficiente con la solución de clave única compartida por todos. Además de la salida de empleados, ya sabemos que es una buena práctica cambiar las claves regularmente, se puede extraviar el portátil o el móvil de un empleado y quien lo encuentre puede sacar las claves almacenadas en el dispositivo, etc.
El esquema de funcionamiento de WPA empresarial es el siguiente:
  • Dentro de la LAN de la empresa hay un ordenador que ejecuta un software servidor RADIUS. En este servidor hay una base de datos de usuarios y contraseñas, y el servidor admite preguntas sobre ellos.
  • Los AP de la empresa tienen conexión con ese ordenador.
  • Los AP ejecutan un software cliente RADIUS. Este software es capaz de formular las preguntas y analizar las respuestas.
  • El servidor RADIUS tiene la lista de las direcciones IP de los AP que le pueden preguntar. Además de estar en la lista, el AP necesita que le configuremos una contraseña definida en el servidor
  • Cuando un cliente quiere asociarse a un AP, le solicita usuario y contraseña. Pero no las comprueba él mismo, sino que formula la pregunta al servidor RADIUS utilizando la contraseña configurada para ese servidor. Dependiendo de la respuesta, el AP acepta la asociación o no.
La rotación de claves que introdujo WPA fue un paso importante para disuadir a los hackers de intentar obtener la clave mediante el análisis de la captura de tramas de tráfico de equipos ya conectados al AP.

Entonces los hackers concentraron su trabajo en la clave PSK de la fase de asociación.

Utilizaron la fuerza bruta de dos formas:
  • Probando contraseñas una tras otra. Las contraseñas serían todas las combinaciones posibles de letras y números, o una selección mediante un diccionario. Por desgracia, los AP no suelen tener un control del número de intentos fallidos, como sí ocurre en otros sistemas de autenticación.
  • Si consiguieran capturar las tramas de inicio de conexión de un cliente, podrían aplicar un ataque de diccionario sobre la información de esas tramas. Si no queremos esperar a que aparezca un cliente nuevo, podemos forzar la desconexión de alguno.

VPN

Las empresas tienen redes LAN y WLAN para sus ofi cinas, pero también suelen necesitar que los empleados puedan entrar a esa misma red desde cualquier otro lugar de Internet, por cualquier motivo.
Algo como establecer una VLAN entre el ordenador del empleado y la LAN de la empresa, utilizando Internet como transporte. Estamos hablando de montar una VPN (Virtual Private Network, red privada virtual).
El objetivo final de la VPN es que el empleado (más bien, su ordenador) no note si está en la empresa o fuera de ella. En ambos casos recibe una configuración IP privada, por lo que no necesita cambiar nada en la configuración de sus aplicaciones.
El responsable de conseguir esta transparencia es el software de la VPN. En el ordenador del empleado hay que instalar un software cliente VPN. Este software instala un driver de red, de manera que para el sistema operativo es una tarjeta más. Ese driver se encarga de contactar con una máquina de la empresa, donde ejecuta un software servidor VPN que gestiona la conexión, para introducir los paquetes en la LAN. La gestión consiste en:
  • Autentificar al cliente VPN. No podemos dejar que entre cualquiera, por lo que se utiliza el típico usuario/contraseña, tarjetas inteligentes, etc.
  • Establecer un túnel a través de Internet. El driver de la VPN en el cliente le ofrece una dirección privada de la LAN de la empresa (la 10.0.1.45), pero cualquier paquete que intente salir por esa tarjeta es encapsulado dentro de otro paquete. Este segundo paquete viaja por Internet desde la IP pública del empleado hasta la IP pública del servidor VPN en la empresa.
  • Proteger el túnel. Como estamos atravesando Internet, hay que encriptar las comunicaciones. Los paquetes encapsulados irán cifrados.
  • Liberar el túnel. El cliente o el servidor pueden interrumpir la conexión cuando lo consideren necesario.

Servicios de red. Nmap y netstat

Hace unas entradas hablábamos de los riesgos de conectar un equipo a una red. Habrá una parte del software instalado en ese equipo que quiere conectar con unos equipos y que espera conexiones de esos equipos u otros. Pero pueden llegar conexiones de un cliente atacante, o nos podemos estar conectando erróneamente a un servidor atacante.
El software de los servicios de red es especialmente delicado. Debemos vigilar qué software tenemos activo y qué actualizaciones tiene pendientes.
Las actualizaciones llegarán por el mecanismo habitual del sistema operativo; el software que tenemos activo lo podemos conocer mediante un par de herramientas sencillas: Nmap y netstat.
La herramienta Nmap, disponible para sistemas Linux y Windows, se ha convertido en la navaja suiza de los hackers de red. Además del escaneo de puertos para determinar los servicios disponibles en una máquina, podemos pedir a la herramienta que intente la conexión a cada uno de ellos. Después analiza los mensajes que generan estos servidores para identificar la versión concreta del sistema operativo y la versión concreta del software de servidor que está escuchando en cada puerto.
Aunque intentemos despistar arrancando servicios en puertos que no son los esperados (80 para HTTP y otros), la herramienta reconoce el puerto como abierto y consigue identificar el servicio.
Para cada puerto, la herramienta ofrece cuatro posibles estados:
  • open (abierto): la máquina acepta paquetes dirigidos a ese puerto, donde algún servidor está escuchando y los procesará adecuadamente.
  • closed (cerrado): no hay ningún servidor escuchando.
  • filtered: Nmap no puede decir si ese puerto está abierto o cerrado porque alguien está bloqueando el intento de conexión (router, firewall).
  • unfiltered: el puerto no está bloqueado, pero no se puede concluir si está abierto o cerrado.

Espiar nuestra red

Vamos a conocer qué está pasando en nuestra red, qué están haciendo esos usuarios autorizados. Para este fin necesitaremos espiarnos a nosotros mismos, buscando garantizar la disponibilidad de la red y detectar ataques en curso.
Vamos a procesar el tráfico de nuestra red mediante dos tipos de técnicas:
  • La monitorización del tráfico. Trabaja a alto nivel: se limita a tomar medidas agregadas, los llamados contadores. Por ejemplo, total de bytes enviados o recibidos en un interfaz, agrupados por puerto de origen o destino. La monitorización es habitual en las empresas porque: 
    • Resulta fácil de activar en toda la red dado que son los propios equipos los que facilitan esta información sobre sus interfaces.
    • Genera relativamente poca información para transmitir y procesar.
    • Es suficiente para conocer la disponibilidad de la red o el tipo de tráfico que transita. Por ejemplo, conocer el porcentaje de tráfico HTTP de nuestra red nos puede llevar a instalar un proxy.
  • El análisis del tráfico. Trabaja a bajo nivel: captura todos los paquetes que transian por una interfaz. Los paquetes solo son leídos, no interceptados: el paquete continúa su camino. El procesamiento de estos paquetes leídos permite generar medidas agregadas, pero sobre todo interesa analizar las conversaciones entre los equipos, comprobando que se ajustan al comportamiento esperado en el protocolo estándar. Aunque esta información es mucho más rica que los simples contadores, la captura es muy costosa de activar en toda la red, porque se dispara la cantidad de información que hay que transmitiry procesar; por este motivo, solo se utiliza en situaciones concretas que no se pueden abordar con el estudio de contadores, como es la detección de ataques.
En ambos casos, como las redes de las empresas tienen muchos equipos utilizando distintos protocolos, necesitaremos herramientas que nos ayuden a recoger, procesar, analizar y presentar toda la información disponible.
Con estas herramientas hay que tener cuidado para conseguir un equilibrio entre los objetivos de seguridad y la carga extra que supone tratar esta información.
Como vimos anteriormente, los DoS son un intento de sobrecarga de un servidor saturándolo de peticiones. Nuestra misión será averiguar si esas peticiones corresponden a clientes reales o a falsos clientes. Para ello haremos una captura puntual en un tramo de la red y trataremos de analizar los intentos de conexión a ese servidor: origen, tipo de petición, número de peticiones, etc.
Además de la monitorización del tráfico y el análisis del mismo, hay un tercer elemento para el control de la red: la sonda. Una sonda es un equipo de la red que está programado para comportarse como un cliente normal de alguno de los servicios que tenemos desplegados. La sonda ejecuta sus operaciones periódicamente, de manera que, si alguna falla, podemos suponer que también le fallará al usuario y debemos corregir el problema.
La monitorización del tráfico es relativamente fácil de activar en una red, porque los equipos suelen estar preparados para facilitarnos la información sobre sus contadores y basta con preguntarles periódicamente. En cambio, la captura de conversaciones es más compleja de activar. Las opciones son:
  • Conseguir el control sobre alguno de los extremos de la conexión para poder utilizar alguna de las herramientas que veremos a continuación (tcpdump, wireshark).
  • Interceptar la conexión misma desde algún equipo de red por donde pasen los paquetes intercambiados. Si este equipo tiene cierta inteligencia, seguramente incorporará funcionalidades avanzadas, como el port mirroring.
  • Como último recurso podríamos conectar de manera temporal un hub en el puerto que queremos vigilar, pero esto supone desplazamientos de personal y equipos que no siempre están disponibles (por ejemplo, el switch de LAN está en Barcelona, pero el departamento de soporte está en Madrid). Utilizamos un hub  y no un switch porque el hub repite el tráfico de cada puerto a todos los demás, justo lo que necesitamos.

    tcpdump

    cpdump es una herramienta sencilla disponible en Linux que permite hacer un volcado de todo el tráfico que llega a una tarjeta de red. Captura todo el tráfico, no solo el tráfico TCP, como aparece en su nombre. Los paquetes leídos se muestran en pantalla o se pueden almacenar en un fichero del disco para ser tratados posteriormente por esta misma herramienta u otra más avanzada. Se necesitan privilegios para ejecutarla, porque necesitamos poner la tarjeta en modo promiscuo para que acepte todos los paquetes, no solo los destinados a su MAC.



    WireShark

    WireShark es la herramienta más extendida en Windows para realizar capturas de tráfico y analizar los resultados. Es una evolución de una herramienta anterior llamada Ethereal. Para la captura de paquetes utiliza la librería pcap, que también aparece en otros sniffer, como tcpdump. La interfaz de usuario es muy potente, así como el número de protocolos que es capaz de analizar.

    Port mirroring

    Los switch gestionables suelen incorporar esta funcionalidad. Consiste en modificar la configuración del switch para que replique todo el tráfico de un puerto a otro. En el segundo puerto conectaremos el sniffer. El equipo o equipos conectados en el primer puerto funcionan con normalidad, no saben que están siendo espiados.
    Generalmente se puede elegir el tipo de tráfico: entrante, saliente o ambos. En algunos modelos podemos hacer que varios puertos vuelquen su tráfico a un mismo puerto, aunque habrá que vigilar las prestaciones del conjunto porque pueden desbordar el ancho de banda de la interfaz o la capacidad de captura del sniffer, lo que ocasionaría la pérdida de paquetes, invalidando el análisis posterior. 

    IDS/IPS. Snort

    Las herramientas de análisis de tráfico son más o menos sencillas de instalar y configurar; pero la complicación viene a la hora de interpretar los resultados. Para sacar el máximo partido a estas herramientas se necesitan muchos conocimientos de base y una amplia experiencia en protocolos de comunicaciones.  
    Hay un segundo problema: aunque dispongamos de personal tan cualificado, no es humanamente posible revisar una a una todas las conversaciones que ocurren a diario en una red normal. Sobre todo porque la mayoría son interacciones normales, libres de toda sospecha. Los expertos hay que reservarlos para los casos difíciles.

    Para solucionar ambos problemas existen los sistemas IDS/IPS. Los IDS detectan los ataques y los IPS actúan contra ellos. Tenemos dos tipos de IDS/IPS:
  • NIDS/NIPS (Network Intrusion y Network Prevention). Buscan ataques sobre servicios de comunicaciones. Se basan en el análisis de los paquetes que forman parte de la comunicación entre dos máquinas, comprobando que se ajustan al protocolo estándar.
  • HIDS/HIPS (Host Intrusion y Host Prevention). Buscan ataques sobre las aplicaciones y el sistema operativo de la máquina. Se basan en el análisis de los procesos actuales y la configuración y el log de cada uno de los servicios.
Estos sistemas procesan un fichero de captura de tráfico y buscan patrones de comportamiento en los paquetes intercambiados entre los equipos. No se limitan a revisar las cabeceras del protocolo, sino que también miran en el contenido del paquete. Cuando detectan un posible ataque, si es un IDS solo avisa al usuario y si es un IPS solo responde al ataque.
La inteligencia de estas herramientas suele residir en un conjunto de reglas que se cargan en el programa desde un fichero de configuración. Las reglas son elaboradas por expertos en seguridad que, cuando han identificado un nuevo tipo de ataque, escriben la regla que permitirá al IDS detectarlo.
Los problemas de los IDS son dos:
  • Rendimiento. El número de reglas es creciente (hay nuevos ataques y no podemos descartar los antiguos) y el volumen de tráfico también, por lo que necesitamos un hardware muy potente para tener funcionando un IDS sobre capturas de tráfico en tiempo real. En determinados momentos, la cola de paquetes pendientes de examinar será tan larga que la interfaz estará a punto de empezar a descartarlos; para evitarlo, el IDS los dejará pasar, a sabiendas de que puede ser un ataque. Pero si nos limitamos a procesar ficheros de captura antiguos, puede que encontremos ataques que ya han ocurrido y sea tarde para reaccionar.
  • Falsos positivos. Las reglas no son perfectas y puede que estemos alertando sobre comunicaciones que son perfectamente legales. Conviene probar muy bien una regla antes de meterla en un IPS. 

Firewall

El firewall es un software especializado que se interpone entre las aplicaciones y el software de red para hacer un filtrado de paquetes:

  • En el tráfico entrante, la tarjeta de red recibe el paquete y lo identifica, pero antes de entregarlo a la aplicación correspondiente, pasa por el firewall para que decida si prospera o no. En el ejemplo del servidor web, la máquina recibe un paquete destinado al puerto 80, pero antes de entregarlo al proceso que tiene abierto ese puerto (un apache.exe), el firewall decide.
  • En el tráfico saliente, las aplicaciones elaboran sus paquetes de datos, pero antes de entregarlo al software de red para que lo envíe, pasa por el firewall. Por ejemplo, si sospechamos que una máquina hace spam, podemos bloquear todas las conexiones salientes al puerto 25.
En las máquinas servidor, generalmente el firewall actúa sobre tráfico entrante: los servicios que ejecutan en esa máquina abren determinados puertos y queremos controlar quién se conecta a ellos. En las máquinas cliente es más sencillo: por defecto, todas las conexiones entrantes están prohibidas y todas las salientes permitidas. Esto no quiere decir que no puedan entrar paquetes, porque no habría conversaciones; pero la conversación la tiene que iniciar el equipo cliente.
La inteligencia del firewall se expresa mediante reglas de configuración. El administrador de la máquina puede individualmente activarlas, desactivarlas, modificarlas o añadir nuevas. Este proceso puede ser automático: algunos programas que instalan un servidor en la máquina son capaces de configurar algunos programas de firewall, sin necesitar la intervención del administrador.
as reglas del firewall son mucho más sencillas que las reglas de un IPS y generalmente se aplican solo a las cabeceras TCP/IP de las capas 3 (red) y 4 (transporte): el firewall básicamente mira direcciones IP y puertos, aunque también puede reconocer conversa ciones entre dos equipos y controlarlas.

Dónde situarlo

Todas las máquinas de la empresa conectadas a la red necesitan activar un firewall. Incluso aunque no ejecuten ningún servidor: puede que el software de red del sistema operativo tenga una vulnerabilidad. Igual que el malware hay que bloquearlo con el antivirus porque es software no solicitado, el firewall nos ayuda a bloquear paquetes de red no solicitado.
Esta medida sería suficiente; pero, para evitar que se inunde la red con paquetes que no llegarán a su destino, o para ayudar a máquinas que no tienen firewall.
Los routers domésticos proporcionados por los ISP hacen funciones de firewall, porque por defecto se comportan como equipos de usuario y no permiten conexiones entrantes; pero una empresa suele necesitar más configuraciones, por lo que instalará su propio firewall de red.
En empresas pequeñas este firewall de red seguramente ejecutará en una máquina que también hace las funciones de router; incluso puede que también aloje determinados servicios de la empresa en Internet. En las empresas grandes hay máquinas distintas para cada servicio, todas situadas en una subred especial llamada DMZ. El firewall de esta zona es menos exigente que el que protege nuestra LAN, porque tenemos que permitir conexiones a esos servicios; pero, como está expuesto a más ataques, se suele acompañar de un IDS/IPS.

Firewall en Linux. Iptables 

Cuando llega un paquete a la tarjeta de red, el sistema operativo decide qué hacer con él. El resultado de esa decisión puede ser:
  • Descartarlo. Si el destinatario del paquete no es nuestra máquina o, aunque lo sea, ningún proceso actual lo espera, el paquete termina aquí.
  • Aceptarlo, porque es para nosotros y hay un proceso que sabe qué hacer con ese paquete. Sería el ejemplo anterior, pero ahora sí tenemos un servidor web funcionando.
  • Aceptarlo, aunque no sea para nosotros, porque somos un router y vamos a enviarlo por otra interfaz. En algunos casos llegaremos a modificar las cabeceras del paquete, como veremos más adelante.
  • Aceptarlo, aunque no es para nosotros y tampoco somos un router: pero estamos escuchando todos los paquetes porque somos un sniffer de red.
En el caso de Linux, la utilidad iptables permite introducir reglas en cada una de estas fases:
  • Cuando llega el paquete para un proceso nuestro pero todavía no se lo hemos entregado, en iptables hablamos de input.
  • Cuando somos un router y estamos a punto de traspasar el paquete de una interfaz a otra, en iptables hablamos de forward.
  • Cuando un paquete está listo para salir por una interfaz, en iptables hablamos de output.
Hay un par de etapas más:
  • Prerouting. Se ejecuta antes de input. Sirve para obviar el enrutamiento porque sabemos exactamente qué tratamiento dar a esos paquetes. Veremos un ejemplo en el caso práctico de proxy de esta misma unidad.
  • Postrouting. Se utiliza para aplicar alguna modificación a los paquetes que están a punto de abandonar la máquina. Veremos un ejemplo, el NAT, en el mismo caso práctico de proxy.
Las reglas de iptables tienen una lista de condiciones y una acción, de manera que, cuando un paquete cumple todas las condiciones de una regla, se ejecuta la acción. En las condiciones podemos utilizar la interfaz por la que entró, la interfaz por la que va a salir, la dirección IP o la subred del paquete, el tipo de protocolo, el puerto origen o destino, etc. Las acciones pueden ser simplemente aceptar o rechazar el paquete, o también modificarlo.
Pero no todas las acciones están disponibles en todas las situaciones. Por esto las reglas se agrupan en tres tablas principales:
  • filter. Es la tabla principal. Su misión es aceptar o rechazar paquetes. Es el firewall propiamente dicho.
  • nat. Las reglas de esta tabla permiten cambiar la dirección de origen o destino de los paquetes.
  • mangle. En esta tabla podemos alterar varios campos de la cabecera IP, como el ToS. Se suele usar para aplicar QoS, marcando los paquetes de determinados servicios para luego priorizarlos.

Firewall en Windows 7

Los sistemas operativos Windows siempre han tenido mala fama en cuanto a seguridad ante malware; sin embargo, la versión XP introdujo un firewall muy robusto y sencillo. Las versiones posteriores han mantenido la robustez, aunque han sacrificado la sencillez para elaborar reglas complejas que permitan cubrir todas las necesidades del usuario.

Comparado con iptables, el firewall de Windows 7 es más sencillo y más agradable de usar. A  diferencia de Linux, la configuración por defecto para las conexiones entrantes es rechazarlas, no aceptarlas.

Proxy

Hemos visto que los firewall normales permiten controlar las conexiones a nivel de red. Si necesitamos algo más, hay que recurrir a un firewall de aplicación o directamente a un IPS.
Pero hay otra forma de enfrentarse al problema de controlar qué están hablando dos máquinas entre sí. Podemos introducir un nuevo interlocutor en medio de la conversación: donde antes A hablaba con B, ahora hay un C, de manera que A habla con C y C se lo cuenta a B, y viceversa. Ese nuevo intermediario es un proxy, y como tiene acceso a todos los paquetes intercambiados, puede aplicar medidas de seguridad. 
Un proxy es un servicio de red que hace de intermediario en un determinado protocolo. El proxy más habitual es el proxy HTTP: un navegador en una máquina cliente que quiere descargarse una página web de un servidor no lo hace directamente, sino que le pide a un proxy que lo haga por él. El servidor no se ve afectado porque le da igual quién consulta sus páginas.

Qué hace

El proxy recibe de una máquina origen A un mensaje formateado para el servidor B según un protocolo determinado (petición 1). Lo procesa y genera un nuevo mensaje para el mismo destino B, pero ahora el origen es P, la máquina del proxy (petición 2). Cuando el servidor B genera la respuesta, la envía a P (respuesta 3). La máquina P procesa ese mensaje y genera su propio mensaje de respuesta con destino a (respuesta 4).
Los usuarios no aprecian la diferencia porque las páginas llegan a su navegador con normalidad; pero realmente el servidor sí puede saber que el origen de la petición no es un ordenador interesado en su servicio, sino un intermediario del ordenador original. Por ejemplo, numerosos servicios de Internet que permiten consultar la IP pública que utiliza nuestro router para conectar a Internet también nos informan de si nuestra conexión está pasando por un proxy.
El procesamiento del proxy puede llevar a decidir no generar ningún mensaje. Es decir, cortar la comunicación. Este comportamiento se decide mediante reglas. En estas reglas podemos filtrar determinadas direcciones de origen o destino, algunas directivas del protocolo, incluso contenidos. Como podemos suponer, cuanto más compleja sea la regla, más tardará el proxy en aplicarla a las peticiones que le llegan, lo que puede ralentizar en exceso la comunicación.
Además de controlar las conexiones web, el proxy mejora el rendimiento global de la navegación porque guarda en disco las páginas que envía a los clientes. Es el llamado proxy caché. De esta manera, si esa misma máquina o cualquier otra solicita al proxy la misma página, no hace falta generar la petición 2 ni esperar la respuesta 3: directamente, el proxy le devuelve la respuesta 4. Hemos ahorrado los dos mensajes que van sobre la red más lenta.

Dónde situarlo

Si el volumen de tráfico que pasará por el proxy es reducido y las reglas definidas son sencillas, el servidor proxy necesitará pocos recursos (CPU, RAM, disco para la caché), por lo cual puede estar incluido en una máquina que ya ofrezca otros servicios (DHCP, DNS, disco en red, correo).
Si el volumen es elevado o las reglas que hemos definido son complejas, no podemos permitirnos afectar a otros servicios: necesitaremos una máquina en exclusividad. Aunque habrá que dimensionar adecuadamente el ancho de banda en esas máquinas dedicadas, porque van a recibir mucho tráfico.

Tipos de proxy

Si instalamos un proxy para un determinado protocolo (HTTP), el siguiente paso es conseguir que el tráfico de nuestros usuarios pase por ese proxy. Tenemos dos opciones:
  • Proxy explícito. Configuramos los navegadores de los usuarios para que utilicen el proxy de la empresa.
  • Proxy transparente. En algún punto de la red un router filtrará ese tipo de tráfico y lo enviará al proxy, sin que el usuario tenga que hacer nada. Si estamos utilizando un router Linux, la solución óptima es instalarlo ahí, porque ahorramos sacar el tráfico hasta otra máquina.
Una tercera opción de navegación proxy al alcance de los usuarios es utilizar un proxy web. Esto es, una página web donde entramos para introducir la URL de la página web que realmente queremos visitar. El servidor del proxy web conecta con esa página y nos muestra el resultado. Este mecanismo es el más utilizado para evitar la censura en algunos países. En una empresa no es aceptable porque el tráfico de nuestros empleados está pasando por la máquina de una empresa desconocida y no sabemos qué puede hacer con esos datos. 

Spam

En las empresas, el correo electrónico es tan importante o más que el teléfono. Los emleados necesitan estar en contacto con otros empleados de la misma empresa, con los proveedores y con los clientes. Como responsables de la infraestructura informática, debemos garantizar que los mensajes se envían y reciben con normalidad, pero también que no hacemos perder el tiempo a nuestros usuarios entregando correos no deseados. Estos correos, como mínimo, llevan publicidad, pero también son una fuente de infección de virus y troyanos que pueden venir en un fichero adjunto o que aprovechan una vulnerabilidad del programa de correo.

Qué hace

El software antispam colabora con el servidor de correo para detectar mensajes indeseables. Para determinar si un mensaje entra en esa categoría, el antispam utiliza:
  • La cabecera del mensaje, buscando si el servidor de correo origen está en alguna lista negra de spammers reconocidos, si la fecha de envío utiliza un formato incorrecto, etc.
  • El contenido del mensaje, buscando palabras poco relacionadas con la actividad de la empresa (medicinas, etc.), mensajes cuya versión de texto plano es muy diferente de la versión HTML, etc.
  • La propia experiencia del programa (autoaprendizaje), según el tipo de mensajes que maneja el servidor de correo de nuestra empresa en concreto.
Cuando se detecta un correo spam, tenemos varias opciones:
  • Bloquearlo aquí e impedir que llegue hasta el usuario; así le ahorramos molestias (leerlo, borrarlo) y evitamos potenciales infecciones. No se suele usar porque nunca tendremos la certeza de que no hemos eliminado algún correo importante.
  • Dejarlo pasar, pero avisando al usuario de que es un correo sospechoso. Es la opción por defecto. El aviso al usuario consiste en añadir texto en el título del correo (por ejemplo, *** SPAM ***); esto le servirá al usuario para crear sus propios filtros en su programa de correo.
  • Dejarlo pasar, pero convirtiendo el texto del correo en un fichero adjunto, para que sea más difícil engañar al usuario y solo lo abra si está seguro de que el correo le interesa.