viernes, 3 de febrero de 2017

Seguridad activa: sistema operativo y aplicaciones

Carrera de obstáculos

Por muchas medidas de control de acceso que pongamos, un hacker puede sentarse delante de un equipo de nuestra empresa. O directamente robar un portátil a uno de nuestros directivos. Vamos a intentar ponérselo difícil para que su «trabajo» sea una carrera de obstáculos y, seguramente, ante alguna barrera, desista.

La caja del ordenador

Lo primero es evitar que pueda abrir la caja del ordenador para llevarse el disco duro y «destriparlo» tranquilamente en casa. La mayoría de las cajas de los ordenadores de sobremesa llevan un par de anclajes donde colocar un candado normal. También está la opción de cambiar un tornillo normal por un tornillo con llave.

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. La cabeza puede utilizar una llave o una combinación de números.

Resultado de imagen de caja del ordenador

Los candados son poco efectivos, pero por lo menos obligamos al ladrón a traer alguna herramienta más y le hacemos perder un tiempo precioso. Incluso si lo abre, 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.

La BIOS del ordenador

Para evitar que un hacker haga una copia del disco duro en un dispositivo externo. Hay que entrar en la BIOS para modificar el orden de arranque. Por defecto suele estar puesto primero el CD/DVD y después el disco duro local HDD. Debemos cambiarlo para que el primero y único sea el HDD

Resultado de imagen de La BIOS del ordenador    Resultado de imagen de La BIOS del ordenador 

Esta tarea se suele hacer cuando llega un nuevo equipo a la empresa. Tampoco hay que olvidar cambiar las contraseñas del administrador, porque si no ponemos ninguna o dejamos los valores por defecto, el hacker puede entrar a la BIOS y modificar el orden de arranque.

En algunas empresas incluso activan una contraseña de uso del ordenador. Es decir, al arrancar la BIOS siempre pide una contraseña, no solo cuando queremos acceder a su configuración.

Si hemos olvidado las contraseñas 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 hay que seguir evitando el acceso al interior de la caja del ordenador.

El boot manager

Ya hemos conseguido que el hacker no se pueda llevar nada y solo arranque la máquina desde nuestro disco local. En este disco puede ocurrir que tengamos instalados varios sistemas operativos, de manera que, al arrancar, un programa llamado boot manager nos permite elegir uno de ellos. Ahora hay que establecer quién accede a cada opción.

Resultado de imagen de El boot manager

Cifrado de particiones

Con las barreras que hemos puesto hasta ahora, el hacker no se puede llevar nada; solo puede arrancar desde el disco local y solo puede elegir alguna de las entradas del boot manager. Pero si alguna de estas medidas falla, todavía podemos evitar que acceda a nuestros datos: vamos a cifrar el contenido, de manera que sea ilegible.

Autenticación en el sistema operativo

Hemos conseguido que nuestro hacker no pueda evitar que la máquina arranque con un sistema operativo instalado por nosotros. Comparado con lo que hemos visto hasta ahora, 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.

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. Mientras lo teclea, el nombre del usuario es visible pero la contraseña no, para evitar que la vea alguien que se encuentre a nuestra espalda.

Si nos equivocamos, bien porque el usuario no existe, bien porque la contraseña no es la correcta, el sistema nos impide la entrada y nos deja intentarlo de nuevo. En algunos sistemas nos ofrece una pista sobre 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 defi nitivamente. Con este límite evitamos ataques de fuerza bruta que prueben una a una todas las combinaciones de letras, números y caracteres especiales.

Para poner las cosas más difíciles a los hackers, una buena medida es cambiar el nombre por defecto de los usuarios con más privilegios sobre el sistema. Así no solo tendrán que aplicar la fuerza bruta sobre la contraseña, sino también sobre el nombre del usuario. Por ejemplo, en los primeros sistemas Unix se trabajaba desde el usuario root con todos los privilegios; en la actualidad, aunque el usuario root sigue existiendo, el sistema no permite usarlo para entrar al sistema; en cambio, los privilegios se administran mediante el mecanismo sudo, como veremos más adelante.

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.

Tarjetas

En algunas ocasiones, el mecanismo de usuario y contraseña no es suficiente: es inseguro o simplemente molesto. 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 (magnéticas, RFID) o complejas (chip). Las magnéticas van desapareciendo porque las RFID son igual de baratas y no sufren borrados accidentales

Las tarjetas con chip son más seguras pero más caras, por lo que se utilizan en ocasiones especiales. Hay dos tipos:

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

Biometría

La seguridad del mecanismo usuario/contraseña es suficiente para la mayoría de las aplicaciones. La tarjeta es cómoda. Pero cualquiera podría sentarse en nuestro ordenador, insertar nuestra tarjeta, introducir nuestro usuario y contraseña y acceder al sistema como si fuéramos nosotros mismos. Si la información que manejamos es importante, aplicaremos la estrategia «algo que eres», para complementar el mecanismo usuario/contraseña 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. 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.

Resultado de imagen de Biometría

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

Elevación de privilegios

Ya estamos autenticados en el sistema operativo y podemos trabajar con él, pero siempre 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, ya sea por error o porque se ha colado un virus. Pero hay determinadas situaciones 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.

Resultado de imagen de 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, simplemente aparecerá una ventana de confirmación o nos pedirá una nueva autenticación.

Cuotas

Hasta ahora hemos protegido nuestros sistemas evitando el acceso de personas no autorizadas; ahora vamos a protegerlos de las personas que sí están autorizadas. Porque nuestros usuarios, con intención o no, también pueden dañar el sistema. Por ejemplo, pueden descargar muchos archivos pesados, de manera que llenan el disco y el sistema empieza a fallar porque siempre necesita escribir en algunos ficheros; también pueden lanzar procesos muy pesados, que ralentizan
la CPU y no permiten trabajar a los demás usuarios.

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

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.

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.

Resultado de imagen de Antivirus

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.

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.

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.

Resultado de imagen de Aplicaciones Web

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.

Cloud compitung

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

Resultado de imagen de Cloud computing

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.

LaaS: Infraestructure 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.

Resultado de imagen de IaaS: Infrastructure as a service

SaaS: Sowfware 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.

Resultado de imagen de SaaS: Software as a service


















No hay comentarios:

Publicar un comentario