Seguridad Activa – Sistemas y Aplicaciones

Tenemos que proteger los equipos frente ataques de software malicioso, aplicando los parches de seguridad y verificando el origen de las aplicaciones instaladas.

Hay que diseñar planes con los que poder actuar ante fallos de seguridad.

30-Jul-2016

Protección del equipo

Caja del ordenador

Hay que evitar que puedan llevarse el disco duro.

  • La mayoría de las cajas de los ordenadores de sobremesa llevan un par de anclajes donde colocar un candado normal.
  • Para los portátiles tenemos el famoso candado Kensington, que 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.
Candado para portatil
  • La mayoría de las cajas de ordenador profesionales llevan un detector que graba en la memoria de la BIOS la fecha y hora en que se ha producido la apertura. Al día siguiente, cuando el empleado encienda el ordenador, aparecerá un mensaje en pantalla avisándole.

BIOS del Ordenador

Hay que evitar que puedan poner en marcha el equipo utilizando un LiveCD.

Hay que entrar en la BIOS para modificar el orden de arranque (boot). Por defecto suele estar puesto primero el CD/DVD y después el disco duro local HDD (Hard Disk Drive). Debemos cambiarlo para que el primero y único sea el HDD (si algún día hace falta otra cosa, siempre podremos volver aquí).

Tampoco hay que olvidar cambiar las contraseñas del administrador, porque si no ponemos ninguna o dejamos los valores por defecto, se puede entrar a la BIOS y modificar el orden de arranque.

Si hemos olvidado las contraseñas de la BIOS, la solución típica es retirar la pila que mantiene esos valores en memoria.

El Boot Manager (Gestor de Arranque de Sistemas)

Cuando en los discos tengamos instalados varios sistemas operativos o distintas versiones de un mismo sistema, durante el arranque del equipo se ejecuta un software llamado boot manager (gestor de arranque) para que elijamos que sistema deseamos cargar. Hay que establecer quién accede a cada opción. (grub2, lilo, Windows boot manager). Algunos de los boot manager más conocidos (grub2) permiten establecer contraseñas y permisos para cada una de las opciones de arranque.

Cifrado de Portátiles

Si alguna de las medidas indicadas anteriormente falla, todavía podemos evitar que accedan a nuestros datos cifrando los datos de manera que sea ilegible. Para ello utilizaremos software especializado en el cifrado de discos que nos permita utilizar criptografía simétrica y nos solicite la clave privada durante el arranque del sistema (suelen incorporar su propio boot manager/loader) para realizar el descifrado del disco y trabajar con su información. (TrueCrypt para Windows).

Autenticación

Autenticación en el Sistema Operativo

Los sistemas operativos permiten incluir mucho más software de autenticación y más complejo.

Usuario/Password

Es el mecanismo más típico. Aplicando la estrategia «algo que sabes», la pantalla inicial del sistema espera que la persona introduzca el nombre de un usuario y la contraseña asociada a ese usuario.

Algunos sistemas nos ofrecen una pista o recordatorio para la clave y la mayoría tienen un límite de intentos. Llegado al límite, el sistema se puede bloquear durante un tiempo (Windows) o definitivamente (móviles). Con estos límites prevenimos los intentos de ataque por fuerza bruta.

Para impedir estos ataques también una buena medida es cambiar el nombre por defecto de los usuarios con más privilegios sobre el sistema.

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 normas.

Tarjetas

El algunas ocasiones el mecanismo de autenticación por usuario/contraseña puede que no resulte seguro o que sea  engorroso. Para estos casos aplicaremos la estrategia «algo que tienes» y repartiremos tarjetas entre los usuarios.

Tarjetas sencillas:
  • Magnéticas: tienden a desaparecer ya que pueden sufrir borrados accidentales.
Tarjeta Magnética
  • Radiofrecuencia RFID: son más seguras que las magnéticas y resultan igual de baratas.
Tarjeta de Radio Frecuencia
Tarjetas complejas:
  • Las que son simplemente un dispositivo de almacenamiento: contienen nuestras claves para que las lea el dispositivo donde introducimos la tarjeta.
  • Las que constituyen un dispositivo 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.
Tarjeta Chip Inteligente

Biometría

Si la información que manejamos es importante, aplicaremos la estrategia «algo que eres», para complementar el mecanismo usuario/contraseña o de tarjeta con un control más: la biometría.

La biometría consiste en identificar alguna característica física del sujeto: la huella dactilar, el ojo, la voz. Las personas autorizadas deben de grabar primero un registro de su característica física y luego utilizar sensores especiales para la autenticación.

Biometría

El control biométrico no es sustitutivo del usuario/contraseña, sino complementario: conviene tener los dos para aumentar la seguridad.

Elevación de privilegios

Una vez que estamos autenticados en el sistema operativo y podemos trabajar con él,  estaremos limitados a los privilegios asociados al usuario con el que nos hemos presentado.

En las empresas, la mayoría de los empleados utilizan usuarios que no tienen permiso para realizar tareas de administración de la máquina; así se reduce el daño que puedan causar.

Pero en las situaciones en las que un usuario necesite de forma puntual realizar tareas administrativas, solicitará 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.

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

En los sistemas Windows, hasta XP inclusive: una vez entrábamos como administrador, no había ningún control más. Como consecuencia, cualquier virus podía dominar la máquina.

Para mitigarlo, en la versión Vista se añadió el famoso UAC (User Access Control). Ahora el sistema avisa al usuario cuando un programa solicita ejecutar una operación de administración, que al final resulto ser muy molesto.

Microsoft se vio obligado entonces a introducir una modificación en Vista que permitía desactivar el UAC, de manera que volvíamos al funcionamiento de XP. En Windows 7 y Windows 2008 se ha mejorado el UAC al permitir cierta configuración

Cuotas

Para evitar que los usuarios autenticados puedan descargar muchos archivos pesados que llenen el disco, realizar procesos pesados o hacer un uso excesivo de la CPU, los sistemas se suelen configurar para aplicar cuotas.

Para el disco consiste en aplicar el espacio que pueden ocupar cada usuario, de tal manera que cuando exceda ese límite el sistema no le permita extenderse más.

Hay que asignar las cuotas con cuidado:

  • 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, como el www-data del servidor web Apache: si exceden la cuota, la aplicación se parará.
  • Si son muy altas, no tendrán el efecto disuasorio que se espera de ellas y, al final, terminaremos comprando más disco.

Actualizaciones y Parches

Ya tenemos el sistema protegido contra el acceso de extraños y contra el mal uso de los propios. Pero estamos hablando de software: hecho por humanos y, por tanto, sujeto a errores.

Actualizaciones

Las actualizaciones son paquetes de software donde se introducen mejoras y, sobre todo, corrigen defectos.
Los administradores responsables del sistema, deben de instalar esas actualizaciones. No hace falta esperar a que  llegue otro CD con cada actualización: se descargan automáticamente desde Internet.

Microsoft libera actualizaciones de forma rutinaria, y Service Pack, cada dos semanas, los martes por la noche; pero si encuentran la solución a un problema urgente, lo liberan inmediatamente, sin esperar al siguiente martes.

Podemos elegir entre:

  • No buscar actualizaciones ni instalarlas (no recomendable).
  • Comprobar si hay actualizaciones, pero no descargarlas ni instalarlas. Esto solo tienen sentido en equipos con poco disco o acceso limitado a Internet.
  • Descargar actualizaciones, pero no instalarlas. En algunos sistemas podemos tener una configuración muy sensible a cambios en el sistema operativo.
  • Descargar e instalar siempre. Es lo más habitual en los puestos de usuario.

Este comportamiento no es único de Microsoft; todos los fabricantes de aplicaciones necesitan actualizar su software.

Parches

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. Es decir, cuando alguien (el propio fabricante o algún cliente) detecta un problema en una aplicación, el fabricante avisa a todos los clientes afectados, les describe un workaround (vulnerabilidades en proceso de solución si la hay) y, cuando tiene el parche que lo arregla, les avisa para que lo descarguen de su web. Por este motivo es importante tener  copias originales de las aplicaciones y registrarse en la web del fabricante para estar al día de los problemas que aparezcan.

Antivirus

Un virus informático es un software malicioso denominado malware que puede ser de muchos tipos (gusanos, troyanos, etc.) y hay que evitarlos.

Los virus pueden instalarse en nuestra máquina sin que lo sepamos, aprovechando algún defecto del sistema operativo o las aplicaciones instaladas.

El antivirus es un programa que está vigilando continuamente lo que ocurre en nuestra máquina. Concretamente, cualquier software que se intenta ejecutar (ejecutables .exe, librerías .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 de detección del propio antivirus.

Monitorización

Hemos visto que cualquiera de las medidas aplicadas es imperfecta. Nuestra labor es instalarlas, formar a los usuarios y, todos los días, vigilar que todo esté normal. Esta vigilancia consiste en:

  • Revisar los log del sistema y las aplicaciones. Cualquier suceso anómalo quedará anotado en alguna parte.
  • Si el sistema lo permite, activar la copia sincronizada del log en otra máquina. Es decir, cada aviso se escribe a la vez en nuestra máquina y en otra.
  • Revisar la ocupación del sistema, principalmente el disco y la CPU.
  • Suscribirse a las newsletters de los fabricantes de nuestro hardware y software.
  • Participar en foros de usuarios de las mismas aplicaciones que nosotros, para estar al día de los problemas que aparecen  y para poder pedir ayuda si algo nos sobrepasa.

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).

Para conocer la ocupación de recursos de una máquina podemos entrar en ella y lanzar herramientas locales, como pueda ser el medidor de recursos de Windows o el comando top en Linux. Pero si tenemos a nuestro cargo la monitorización de muchos equipos, no podemos estar todo el día entrando en cada uno de ellos cada cinco minutos.

Conviene instalar una herramienta de inventario y monitorización. (SpiceWorks para Windows)

  • Inventario es la lista de equipos y conexiones y la configuración de ambos.
  • Monitorización es la supervisión en todo momento del estado de los elementos del inventario.
  • Rastrean la red periódicamente buscando nuevas altas y bajas de equipos en el inventario.
  • Son capaces de identificar distintos tipos de equipos, no solo ordenadores, sino también equipamiento de red.
  • Obtienen la configuración para todos los equipos del inventario y la registran en una base de datos para generar informes, avisar de cambios, etc.
  • Incorporan alertas sobre ocupación de disco, inactividad de una interfaz, etc.
  • Podemos monitorizar en directo la actividad de las interfaces de red, uso de CPU, etc.

La implantación de una de estas herramientas representa la frontera entre una administración artesanal de la red y sistemas, y una administración moderna y profesional.

Aplicaciones Web

La arquitectura de aplicaciones ha evolucionado con el tiempo:

En los años sesenta y setenta eran monolíticas:

  • El interfaz de usuario como la lógica de proceso, estaba en la misma máquina.
  • La protección se centraba en proteger la máquina donde ejecutaban todos los programas.

En los años ochenta y noventa aparecen los ordenadores personales y las redes de comunicaciones dentro de las empresas. Se implementan las aplicaciones siguiendo la arquitectura cliente-servidor:

  • la interfaz de usuario está en el ordenador del usuario y la lógica de proceso se reparte entre el ordenador del usuario y el ordenador central al que se conectan los usuarios.
  • 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 noventa, el éxito de Internet permite extender las aplicaciones web (que siguen el modelo cliente-servidor) a cualquier punto de conexión del planeta:

  • El cliente suele ser siempre el mismo (el navegador).
  • 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.

Ventajas:

  • No necesitamos instalar nada en el cliente: solo se necesita el navegador
  • Cualquier actualización generada por nuestros programadores está inmediatamente disponible para los usuarios porque siempre descargan de la página actualizada la última versión disponible.

Precauciones:

  • Hay que aplicar las medidas de protección  para la máquina que aloja el servidor web y sus aplicaciones accesorias (base de datos y otras).
  • Si la máquina del servidor web no es nuestra, sino alquilada (hosting web), no tenemos control sobre las medidas de protección.
  • La transmisión entre el cliente web (navegador) y el servidor web. Siempre que sea posible utilizar protocolos seguros como HTTPS en lugar de utilizar el tradicional HTTP.
  • La máquina de un usuario conectado puede haber sido hackeada y su navegador también. En este punto es importante el antivirus.

Cloud Computing

Después de las aplicaciones web, la siguiente evolución de las aplicaciones en Internet es el cloud computing (computación en la nube). Conviene diferenciar entre computación en la nube y almacenamiento en la nube (cloud storage). El almacenamiento se limita a guardar archivos y carpetas; la computación es más amplia porque ejecuta programas que trabajan con archivos, bases de datos, otros servidores, etc. Aunque están enfocadas a servicios distintos ambas tecnologías se  complementan.

A las empresas ya no les interesa conectar a Internet un servidor web de su CPD porque necesitan dedicar recursos humanos y técnicos para proveer QoS (Quality of Service, calidad de servicio). Además, abrir al exterior las conexiones del CPD es una fuente de problemas por la cantidad de ataques que nos pueden llegar.

Tampoco convence ya alquilar espacio en un hosting porque, si es un servidor web compartido, el rendimiento es bajo.

IaaS: Infrastructure as a Service

Un primera solución de cloud computing es el IaaS (Infrastructure as a Service). Básicamente consiste en la creación y ejecución de máquinas en entornos virtualizados que ofrecen algunos proveedores de servicios de internet.

Podemos poner una máquina entera (con Linux o Windows) en un entorno virtualizado donde se puede regular su potencia, de tal manera que si es necesario cabe la posibilidad de contratar más CPU y RAM para nuestra máquina si en un momento dado hay exceso de trabajo y volver a la configuración anterior en el momento que la carga de trabajo disminuya.

Desde un panel de control en la web de nuestro proveedor modificamos la ejecución de la máquina según nos convenga en cada momento. Esta opción implica que seguimos necesitando personal especializado para la administración de las máquinas virtuales.

SaaS: Software as a Service

Las empresas que no quieren incurrir en ese gasto de tiempo y personal, eligen SaaS (Software as a Service), 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.
De cara a la protección de las aplicaciones, en los dos casos (IaaS, 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.

Gestión CloudComputing