jueves, 26 de enero de 2017

Seguridad Activa: Sistema Operativo y Aplicaciones.

Seguridad Activa: Sistema Operativo y Aplicaciones.

1. Carrera de obstáculos.

Intentemos poner difícil a un hacker su trabajo, mediante las siguientes medidas de seguridad.

1.1. La caja del ordenador.

Lo principal es evitar que se lleve algunos de nuestros discos duros ya sean de portátiles o ordenadores.  La mayoría de las cajas de los ordenadores de sobremesa llevan un par de anclajes para colocar un candado normal. Tenemos también la opción de cambiar un tornillo normal por uno de llave.
Para los portátiles tenemos el mecanismo llamado Kensington: Tiene una cabeza que se introduce por una ranura especial de la caja del portátil. La cabeza continúa en un cable de acero para que lo enrollemos en alguna parte fija (la mesa o algún anclaje especial). La cabeza puede utilizar una llave o una combinación de números.

Estos candados son pocos efectivos, pero tiene algo de eficacia con respecto al ladrón, ya que tendría que perder tiempo. Incluso abriendo el disco duro tiene un detector que indica fecha y hora de la apertura en la BIOS.


1.2. La BIOS del ordenador.

Para evitar que un hacker haga una copia del disco duro mediante la técnica de arranque Live CD, entraremos en la BIOS y modificaremos el orden del arranque. Será configurado de tal manera que el disco duro sea el primero en arrancar en vez de el CD/DVD.

No debemos de olvidar cambiar las contraseñas del administrador, así el hacker no podrá modifica el arranque de la BIOS. En algunas empresas para arrancar la BIOS nos piden contraseña.

Si hemos olvidado la contraseña de la BIOS, la solución típica es retirar la pila que mantiene esos valores en memoria. En las placas base modernas directamente hay un jumper que, si está cerrado cuando el ordenador arranca, borra esos valores. Por ambos motivos (pila o jumper) hay que seguir evitando el acceso al interior de la caja del ordenador.


1.3. El boot manager.

Hemos conseguido que el hacker no arranque desde nuestra BIOS y solo acceda a nuestro disco duro local. En ese disco podemos tener varios sistemas operativos instalados mediante el programa boot manager. Ahora hay que establecer quién accede a cada opción.

1.4. Cifrado de particiones.

Después de todas las medidas realizadas, el hacker no se puede llevar nada y solo puede acceder al disco duro eligiendo unos de los sistemas operativos. Vamos a cifrar el contenido, de manera ilegible.




2. Autenticación en el sistema operativo.

Los sistemas operativos permiten incluir mucho más software de autenticación y más complejo. Veremos múltiples mecanismos para asegurarnos de que nuestro sistema solo lo usa quien está autorizado para ello.


2.1. Usuario/password.

Es el mecanismo más común. Aplicamos la estrategia "algo que sabes" (usuario y contraseña). Si la contraseña o usuario es erróneo, nos impide la entrada y nos deja intentarlo otra vez. En algunos sistemas nos ofrece una pista sobre la contraseña (si la pusimos la última vez que cambiamos la contraseña), y la mayoría tiene un límite de intentos. Alcanzado ese límite, el sistema se puede bloquear durante un tiempo o definitivamente (por ejemplo, los móviles tienen un límite de tres intentos para introducir el PIN). Con este límite evitamos ataques de fuerza bruta que prueben una a una todas las combinaciones de letras, números y caracteres especiales.

Otra medida de alta seguridad es cambiar el nombre por defecto de los usuarios con más privilegios en el sistema. De esta manera, tendrán que aplicar fuerza bruta para usuario y contraseña.

Aun así, siempre conviene utilizar contraseñas no triviales: palabras que no aparezcan en el diccionario de ninguna lengua, combinar letras mayúsculas con minúsculas, números, signos de puntuación, etc. Y cambiar la contraseña regularmente, porque no sabemos cuánto tiempo llevan intentando atacarla. Los sistemas operativos permiten obligar al usuario a cumplir todas estas norma.

2.2. Tarjetas.

En algunas ocasiones, el mecanismo de usuario y contraseña no es suficiente: es inseguro (alguien puede espiar qué teclas pulsamos) o simplemente molesto (por ejemplo, en los tornos de acceso a la entrada de la empresa no podemos perder el tiempo tecleando). Para estos casos aplicaremos la estrategia «algo que tienes» y repartiremos tarjetas entre los usuarios. Por ejemplo, los cajeros automáticos de los bancos aplican una seguridad doble: la tarjeta más un número PIN. Las tarjetas son de dos tipos: Sencillas o complejas, las magnéticas van desapareciendo.

Las tarjetas con chip son más seguras pero más caras, ya que son utilizadas en ocasiones especiales. Hay dos tipos:
  • Dispositivos de almacenamiento: Contienen nuestras claves para que las lea el dispositivo donde introducimos la tarjeta.
  • Dispositivos de procesamiento:  Contienen nuestras claves, pero nunca salen de la tarjeta. El chip se limita a cifrar con ellas algún desafío que lanza el dispositivo por donde introducimos la tarjeta.
2.3. Biometría.

Consiste en identificar alguna característica física del sujeto (huella dactilar, ojo, voz..). La persona o personas autorizadas deben grabar primero su característica física. Por ejemplo, en la huella se graban dedos de las dos manos, por si se sufre un accidente en una de ellas. Después, cada vez que quieran utilizar el ordenador, deberán situar el dedo encima del sensor.

Como hemos dicho antes, el control biométrico no es sustitutivo del usuario/contraseña, sino complementario: conviene tener los dos para aumentar la seguridad (estrategia «algo que sabes, algo que eres»). Aunque en algunas ocasiones sí se utiliza individualmente para ahorrar la molestia de estar pulsando teclas: por ejemplo, para acceder a alguna zona vip de la empresa.

2.4. Elevación de privilegios.

Ya estamos autentificados en el sistema operativo y podemos trabajar con el, pero limitaremos los privilegios a los distintos usuarios asociados con ele sistema. En las empresas la mayoría de las empresas utilizan usuarios que no tiene permisos para realizar tareas de administrador. 

Pero hay determinadas situaciones (instalación de nuevos programas, modificación de parámetros del sistema) para las que sí necesitamos ser administradores. Una solución es salir del usuario actual y entrar como administrador, pero es más sencillo solicitar, de manera puntual, una elevación de privilegios. Consiste en pedirle al sistema ejecutar un determinado programa con permisos de administrador. Se aplica solo a ese programa y solo a esa ejecución: no afecta a las aplicaciones abiertas antes o después, ni siquiera cuando abramos ese mismo programa más adelante.

En cuanto al usuario, dependiendo de la configuración del sistema, nos aparecerá una ventana de confirmación o una autentificación.

3. Cuotas.

Vamos a protegernos de las personas que "sí" están autorizadas debido a que nuestros usuarios ya sea intencionado o no pueden dañar el sistema. Para evitar esto, los sistemas se configuran para aplicar cuotas. Para el disco, se establece que cada usuario puede ocupar un número determinado de bytes (megabytes, gigabytes). Cuando excede ese límite, podemos configurar de modo que el sistema no le
permita extenderse más. Veamos como asignar las cuotas:

  • Si son muy bajas: Tendremos a los usuarios quejándose todos los días porque no les dejamos trabajar. Hay que tener especial cuidado con los usuarios que se crean porque son necesarios para arrancar una aplicación.
  • Si son muy altas: No tendrán el efecto disuasorio que se espera de ellas y, al final, terminaremos comprando más disco.

4. Actualizaciones y parches.


El CD/DVD utilizado para instalar Windows contiene una versión concreta liberada en una fecha concreta. Desde entonces, los programadores de Microsoft han seguido trabajando. El resultado son las actualizaciones, paquetes de software donde se introducen mejoras y corrigen defectos. Como administradores del sistema debemos de instalar esas actualizaciones (se descarga automáticamente de Internet).

Podemos elegir entre:
  • No buscar actualizaciones ni instalarlas (no recomendado).
  • Comprobar si hay actualizaciones, pero no descargarlas ni instalarlas.
  • Descargar actualizaciones, pero no instalarlas.
  • Descargar e instalar siempre (lo más habitual).
Los parches son parecidos a las actualizaciones, pero se utilizan solo para corregir defectos y suelen necesitar que el usuario lo descargue y lo instale. Cuando alguien detecta un problema en una aplicación, el fabricante avisa a todos los clientes afectados, les describe un workaround (si lo hay) y, cuando tiene el parche que lo arregla, les avisa para que lo descarguen de su web. Por esto es necesario tener copias originales de las aplicaciones.

5. Antivirus.

Aunque tengamos el sistema actualizado, hay muchos hacker que quiere perjudicarnos. Son los llamados virus informáticos. Estamos hablando de malware y tenemos que evitarlo. Los virus pueden instalarse en nuestra máquina sin que lo sepamos, aprovechando algún defecto del sistema operativo o las aplicaciones instaladas. Hay veces que les "abrimos la puerta" debido a que estamos haciendo una instalación de algún sitio no oficial.


El antivirus es un programa que está vigilando continuamente lo que ocurre en nuestra máquina. Concretamente, cualquier software que se intenta ejecutar (.exe, .dll) primero pasa por el antivirus. Él lo compara con su base de datos de virus y, si lo encuentra, impide que se ejecute y avisa al usuario. Aunque el antivirus siempre va por detrás del virus, es importante tenerlo actualizado. La actualización afecta tanto a la base de datos de virus conocidos como al software del propio antivirus.

6. Monitorización. 


Después de todas las medidas de seguridad, aún no estamos seguros. Debemos de vigilar que todo esté normal. Esto consiste en: 
  • Revisar los log del sistema y las aplicaciones.
  • Activar la copia sincronizada del log en otra máquina.
  • Revisar la ocupación del sistema (disco duro, CPU).
  • Suscribirse a las newsletters de los fabricantes de nuestro software y hardware para tener a mano las últimas actualizaciones, parches..
  • Participar en foros de usuarios de las mismas aplicaciones que nosotros.

La monitorización de los log consiste primero en diferenciar qué es un problema y qué no lo es. El texto de log ayuda porque suele tener un indicador de gravedad (crítica, alto, medio, bajo o simple aviso), aunque es la clasificación del fabricante. Para conocer la ocupación de recursos de una máquina podemos entrar en ella y lanzar herramientas locales.

Conviene instalar una herramienta de inventario y monitorización. El inventario es la lista de equipos y conexiones y la configuración de ambos. La monitorización es la supervisión en todo momento del estado de los elementos del inventario. En cuanto al sistema se comportan de la siguiente forma:
  • Rastrean la red buscando altas y bajas de equipos en el inventario.
  • Identificar los distintos equipos (ordenadores o red). Para ello es necesario que los equipos ofrezcan interfaces estándares.
  • Registran una base de datos para generar informes mediante la configuración de el sistema.
  • Incorporan alertas sobre la ocupación de discos, interfaz..
  • Podemos monitorizar en directo la actividad de las interfaces de red, CPU..


El punto de inflexión suele ser un límite en la proporción entre el número de equipos y el número de integrantes del departamento de soporte informático. Cuando el personal ya está desbordado de trabajo, introducen estas herramientas permite automatizar las tareas rutinarias y así dejar tiempo libre a  personas que atienden los problemas.



7. Aplicaciones web.

Veamos las distintas evoluciones de la informática:
  • En los años 60/70 eran monolíticas: La interfaz de usuario como la lógica de proceso, estaba en la misma máquina. La protección de una aplicación monolítica se centraba en proteger la máquina donde ejecutaban todos los programas.
  • En los años 80/90: Aparecen los ordenadores personales y las redes de comunicaciones dentro de las empresas. Se implementan las aplicaciones con arquitectura cliente-servidor, la interfaz de usuario y parte de la lógica de proceso están en el ordenador del usuario, y el resto de la lógica de proceso está en un ordenador central, al que conectan los ordenadores de usuario mediante la red local. La protección se complica: ahora hay que proteger a cada cliente, el servidor y la red local de la empresa.
  • A partir de los años 90: Internet permite extender las aplicaciones web. Las diferencias son que el cliente suele ser siempre el mismo (el navegador) y la comunicación utiliza redes públicas, sobre las que la empresa tiene nulo control. La protección es más difícil que nunca.

Las ventajas de implementar una aplicación mediante tecnologías web son:
  • No necesitamos instalar nada en el cliente: solo se necesita el navegador. Con esto evitamos instalar un cliente nuevo que pueda entrar en conflicto con otras aplicaciones de la máquina, el usuario no necesita privilegios especiales para instalar programas.
  • Cualquier actualización generada por nuestros programadores está inmediatamente disponible para los usuarios porque siempre descargan la página actualizada de la última versión. No hay que esperar a que todos los usuarios sean avisados de la actualización, la descarguen, instalen..

Pero debemos de tener cuidado con:
  • La máquina que aloja el servidor web y sus aplicaciones accesorias. Si un hacker toma esta máquina, tiene acceso a toda la información y todas las conexiones de los usuarios. Hay que aplicar las medidas de protección que hemos estudiado en este tema.
  • Si la máquina del servidor web no es nuestra, sino alquilada no tenemos control sobre las medidas de protección. Debemos confiar en la profesionalidad del proveedor.
  • La transmisión entre el cliente web (navegador) y el servidor web. Muchas aplicaciones todavía utilizan el protocolo HTTP, donde todo viaja en texto en claro. En algún tramo de red puede estar escuchando un hacker y conocer qué hacemos, incluso modificarlo. Optaremos por HTTPS.
  • La máquina de un usuario conectado puede haber sido hackeada y su navegador también. Es importante instalare un antivirus.

8. Cloud computing.


"Computación en la nube". Debemos de saber diferenciar entre computación en la nube y almacenamiento en la nube. El almacenamiento en la nube aporta flexibilidad (GB), pero se limita a guardar archivos y carpetas. La computación en la nube es más amplia, ejecuta programas que trabajan con archivos (base de datos, servidores..). Sin embargo la computación en la nube puede trabajar con archivos de almacenamiento en la nube.

A las empresas ya no les interesa conectar a Internet un servidor web de su CPD porque necesitan dedicar recursos (buena conectividad, servidores potentes..). Además, abrir al exterior las conexiones del CPD es una fuente de problemas por la cantidad de ataques que nos pueden llegar.

No convence alquilar espacio en un hosting porque, si es un servidor web compartido, el rendimiento es bajo; si es un hosting dedicado, suelen ser máquinas individuales de media potencia.

8.1. LaaS: Infrastructure as a Service.


La empresa quiere una máquina entera (Linux, Windows..) en un proveedor, pero con una diferencia al hosting dedicado: esa máquina ejecutará en un entorno virtual, de manera que podemos regular la potencia. Si la aplicación está en exceso de carga, contratamos más CPU y más RAM (más costes). Cuando ya no lo esté, volveremos a la configuración básica. Incluso se puede solicitar que arranquen más máquinas (instancias). El proceso es el mismo que las instalaciones de máquinas virtuales. Aun así, seguiremos necesitando personal autorizado para administrar las distintas máquinas.

8.2. SaaS: Software as a Service.

Las empresas que no tienen suficientes recursos para contratar LaaS, eligen SaaS, aplicaciones completas donde el mismo proveedor se encarga del desarrollo de la aplicación, su mantenimiento y también pone las máquinas y la conectividad.

En cuanto a la protección de las aplicaciones, en ambos casos (laaS, SaaS), como ya ocurría con el hosting, perdemos el control sobre la seguridad de la máquina y el software que ejecuta en ella. Confiamos en la profesionalidad del proveedor y redactar los SLA del contrato del servicio.




Vídeo: