Archivo de la categoría: Definiciones

Diferentes definiciones relativas a los sistemas de ciberseguridad

DHCP snooping

Se utiliza la expresión DHCP Snooping para definir una serie de técnicas que permiten asegurar que únicamente los servidores DHCP autorizados estén funcionando en una red.

Logo DHCP

Logo DHCP
Fuente imagen: IES Haría

El intento de hacer funcionar servidores DHCP no autorizados (DHCP Rogue) se conoce como DHCP Spoofing.

El servicio de DHCP (Dynamic Host Configuration Protocol)  es de uso casi imprescindible para cualquier red de uso común: permite que los equipos se unan a una red de forma automática y sin necesidad de configuración manual. Así ya no hace falta que un administrador de la red configure todos y cada uno de los equipos para poder trabajar. Su uso está tan extendido que muchas veces lo damos por supuesto: cuando llegamos a casa nuestro teléfono móvil se conectar a la red WiFi sin que tengamos que hacer nada (salvo poner la contraseña la primera vez) y nadie se pregunta porqué.

Porqué proteger el servicio DHCP

Como hemos visto el servicio DHCP permite la configuración de cualquier ordenador que se conecte a una red y parte de esa configuración suele ser la puerta por defecto y los servidores DNS que debe utilizar. Los ataques tipo Man-In-the-Middle buscan forzar que el tráfico legítimo pase por sus sistemas y una de las formas de hacerlos es precisamente engañando a los equipos para que usen sus servicios como puerta de enlace o sus DNS. Así si queremos asegurar que los equipos se conecten a nuestra red lo hagan con una configuración segura deberemos proteger el servicio DHCP para que únicamente funcione el sistema oficial y no sea posible crear un sistema falso.

Debilidades del funcionamiento DHCP

Antes de proteger nada, hay que revisar el funcionamiento básico del protocolo DHCP y cuáles son sus puntos débiles.

A grandes rasgos el funcionamiento de DHCP que permite que cualquier equipo se conecte de forma automática a una red sería:

  1. Un equipo se conecta a una red (bien porque se arranca un equipo apagado, bien porque conectamos nuestro móvil a una red Wifi, etc.)
  2. El equipo (cliente) envía un mensaje de difusión (broadcast), que llegará a todos los equipos de esa red, solicitando información sobre la propia red.
  3. El servidor DHCP (o el elemento delegado), y únicamente él, le responderá con un mensaje directo con la información de autoconfiguración que necesita para trabajar.
  4. El cliente configurará sus parámetros con la información recibida del servidor.
Ataque DHCP Spoofing

Ataque DHCP Spoofing
Fuente imagen: RSTUT

La petición del cliente se envía en modo difusión por lo que todos los equipos de la red detectan esa petición. Esto es necesario porqué el nuevo equipo no sabe cómo está montada la red, así que la única opción es enviar la petición de forma que todos los equipos la puedan recibir. el protocolo supone que únicamente responderá a la petición el servidor DHCP y el resto de equipos simplemente la ignorarán, pero ¿qué pasa si un equipo malicioso responde a esa petición? Pues que el nuevo cliente se autoconfigurará con los parámetros que le haya enviado dicho equipo malicioso (el cliente no conoce la red así que no puede saber a priori quién es el servidor DHCP). Esta técnica es conocida como DHCP Spoofing.

Motivos para el DHCP Spoofing

¿Para qué querríamos falsear los datos de configuración de los nuevos equipos que se conecten a la red? Estos son los principales usos de un DHCP spoofing:

  • Hacer creer a un nuevo equipo que nosotros somos su proxy de navegación: Así conseguiremos que el ordenador nos envíe su navegación web a nosotros que podremos analizarla.
  • Hacer creer al nuevo equipo que somos su puerta de enlace: Así todo el tráfico del equipo que salga de la red local pasará por nuestro equipo. Esta opción incluye más tráfico que no sólo el web.
  • Asignarle servidores DNS maliciosos: Podemos redirigir al usuario a nuestros servidores cuando el equipo solicite la resolución de nombre de dominio. Así el usuario creer estar entrando en su banco, cuenta de correo electrónico, etc. cuando en realidad lo está haciendo a una web falsa.
  • Asignación de prefijos telefónicos: Es posible propagar a los teléfonos IP un prefijo de llamada de tal forma que redirijan las llamadas salientes a una numeración especial que tenga un mayor coste.

Si bien las tres primeras opciones son las más habituales pero el protocolo define bastantes opciones de autoconfiguración que pueden ser falseadas con fines maliciosos.

Protección por DHCP Snooping

Como hemos visto el protocolo DHCP se pone en funcionamiento cuando un equipo se conecta a una red de la que desconoce cualquier tipo de información, por lo que no es posible delegar la seguridad del sistema en el cliente ya que simplemente no tiene información alguna de la red. Igualmente hemos visto que el tráfico de petición de información es, y debe ser, visible por toda la red por lo que cualquier equipo conectado a la red puede actuar de forma maliciosa, lo cual impide que deleguemos la seguridad del sistema en el propio servidor. Así pues la seguridad de DHCP queda en manos de los propios equipos de red (swithces y routers, principalmente).

Las diferentes técnicas de protección que componen el DHCP Snooping son las siguientes:

Funcionamiento de los puertos confiables.

Funcionamiento de los puertos confiables.
Fuente imagen: Cisco

  1. Definir, de forma fija y estática, cuáles son los servidores DHCP oficiales de la red. De esta forma cuando un equipo de red detecta tráfico del protocolo DHCP que no se ha originado en uno de los servidores oficiales puede descartarlo.
  2. Definir desde qué interfaces puede generarse tráfico DHCP. Podemos indicarle a los equipos de red, desde cuáles de sus interfaces son confiables y se puede recibir tráfico DHCP. De esta manera si el equipo detecta tráfico de dicho protocolo que se origina desde una posición no confiable puede descartarlo. Así si un equipo de usuario responde a una petición de DHCP el equipo de red más cercanos a él lo detecta y elimina dicho tráfico (y puede bloquear la toma de red, avisar al administrador, etc.).
  3. Delegación de DHCP. Es posible unificar la gestión del DHCP en un servicio externo que no esté dentro de la red local propia (p.e. empresas con diferentes oficinas interconectadas pero con el servicio centralizado en la sede central) de tal forma que los equipos de red descartarían cualquier paquete DHCP local.

Timo del príncipe nigeriano

Timo del príncipe nigeriano en acción :) Fuente original: Alberto Montt

Timo del príncipe nigeriano en acción 🙂
Fuente original: Alberto Montt

Se conoce como «El timo del príncipe nigeriano» a un intento de estafa que se popularizó a través de correos electrónicos no solicitados donde, se informaba al receptor de la muerte de un príncipe nigeriano, que había dejado parte de su herencia bloqueada en cuentas extranjeras, y se solicitaba al receptor del correo que se pusiera en contacto para gestionar cómo podía desbloquearse dicha cantidad quedándose, en agradecimiento, una comisión.

Procedimiento

El timador intercambia correos electrónicos hasta conseguir una cierta confianza con la víctima (envía fotos, capturas de pantalla, documentación escaneada, etc.) para posteriormente indicarle que hay un problema burocrático previo al envío de la cantidad de dinero acordad que debe resolverlo la víctima. Este problema burocrático implica una cantidad de dinero variable. Si aparece alguna suspicacia el estafador seguirá con la cadena de correos para mantener la confianza hasta que la víctima decida pagar esa cantidad para obtener el beneficio mayor.

Fuente imagen: NoticiasDot

Fuente imagen: NoticiasDot

Resumiendo:

  1. Recepción de un correo electrónico. Estos correos son enviados de forma masiva y, aunque los sistemas antispam bloquean la gran mayoría, llegan a la bandeja de entrada de la víctima.
  2. Recopilación de información. Una vez la víctima contesta al correo empieza la recopilación de información por parte de los estafadores para conocer el estado de la víctima (casado, hijos, capacidad económica, etc.). esta fase puede durar incluso semanas para dar confianza a la víctima.
  3. Primera solicitud de dinero. Los estafadores suelen solicitar un primer cobro de una cantidad no excesiva para probar el nivel de enganche de la víctima.
  4. Segunda petición de dinero. Si la víctima ha llegado a este punto los estafadores siguen complicando su historia para ofrecer una mayor recompensa a cambio de una inversión ya mayor (la cantidad dependerá de lo que estimen que pueden estafar según la información recopilada).
  5. Sucesivas peticiones. Si la víctima sigue enganchada seguirán intentando sacarle más dinero hasta que crean que ya no hay más posibilidades cuando, simplemente, desaparecerán.

Como se puede observar es una estafa laboriosa para los delincuentes (lleva semanas o incluso meses de comunicaciones) por lo que los primeros correos están escritos, de forma deliberada, con gran cantidad de faltas de ortografía, frases sin sentido y ausencia total de sintaxis. La idea es que tan sólo aquellas personas muy confiadas piquen el anzuelo ya que los estafadores no podrían gestionar la gran cantidad de posibles víctimas si estos primeros correos de contacto estuvieran bien elaborados.

Variantes del timo nigeriano

Con el tiempo este tipo de estafa ha ido variando las historias utilizadas para intentar atraer a nuevas víctimas, pero el procedimiento es el mismo: primero, desde un correo spam, se ofrece una oportunidad única (generalmente dinero); posteriormente se intercambian correos para conseguir dar confianza; y finalmente se solicita un adelanto económico.

Durante la segunda Guerra del Golfo la historia del príncipe nigeriano mutó a la de un comando estadounidense que había encontrado una gran cantidad de dinero en efectivo en el sótano de un palacio. Solicitaban ayuda para poder hacer una transferencia electrónica ya que, por motivos obvios, no podían mover el dinero físicamente. Hubo variantes, menos difundidas, de unidades militares de otros países que participaron en la guerra y en la etapa posterior.

¿y si no fuera un timo? Fuente imagen: Seemikdraw.com.au

¿y si no fuera un timo?
Fuente imagen: Seemikdraw.com.au

Otra variante del timo nigeriano, que ha ido en aumento en los últimos años, es la de un supuesto romance por Internet. Los estafadores contactan con la víctima por páginas de citas (usando fotos falsa de personas atractivas) para tras unos primeros chats para dar credibilidad solicitan una ayuda económica (bien sean 30€ para la compra de final de mes, o bien el valor de un supuesto billete para poderse encontrar en persona). La peor posibilidad de este timo es que los estafadores convenzan a la víctima a viajar al país de su supuesto romance (generalmente países del este de Europa o africanos) donde la víctima podría ser incluso secuestrada.


Si os queréis reír un rato en Internet podrás encontrar páginas y foros donde se alguien ha seguido la cadena de correos para ver hasta dónde llegaban 🙂

Micropíldora – Sistema autenticación en GNU/Linux

Autenticación en Linux

Autenticación en Linux
Fuente imagen: AcercaDeUbuntu

En esta micropíldora explicaré el funcionamiento tradicional, y su evolución actual, del sistema de autenticación en local de los sistemas basados en GNU/Linux (Debia, RedHat, IOS, etc.). Aunque hoy en día existen múltiples posibilidades de autenticación remota (LDAP, Kerberos, etc.), la autenticación local sigue operativa en la gran mayoría de instalaciones. No profundizaré en los diferentes algoritmos utilizados, cosa que da para un artículo más extenso, sino en las estrategias elegidas así como sus motivaciones para elegirlas.

Aunque es un artículo básico se presupone un mínimo conocimiento de la estructura  del sistema operativo GNU/Linux.

Sistema de autenticación tradicional

Desde su definición el sistema GNU/Linux ha sido desarrollado teniendo en mente un sistema multiusuario, cosa no muy extendida en la época, por lo que desde el principio contaba con un sistema de autenticación de los diferentes usuarios que podían utilizar el sistema. Así pues se creó un fichero de sistema (/etc/passwd) en el cual se almacena la información del usuario que es necesaria para que el sistema pueda trabajar con normalidad.

Veamos un ejemplo de una línea de este fichero público:

andreu:S1p7e8INZ512o:1011:1000:Andres Adrover:/home/andreu:/bin/sh

Donde separados por el símbolo de dos puntos (:) podemos ver los siguientes valores:

  1. andreu: El nombre de usuario al que hace referencia esta información.
  2. S1p7e8INZ512o: Información para validar la contraseña. Por norma se trata del resultado obtenido al pasar la contraseña real por una función hash. Permite pues comparar que la contraseña introducida sea la misma (si da el mismo resultado) que la elegida anteriormente.
  3. 1011: Identificador numérico de usuario. Debe ser único en el equipo y es utilizado por el sistema de forma interna (control de permisos de acceso, gestión de procesos lanzados, etc.)
  4. 1000: Identificado numérico del grupo al que pertenece el usuario. Al igual que el campo anterior es utilizado por el sistema operativo.
  5. Andres Adrover: Este campo es de libre escritura aunque se definió para indicar los datos completos del usuario, dirección, teléfono, etc.
  6. /home/andreu: Identifica el directorio raíz de ese usuario
  7. /bin/sh: Indica qué programa debe ejecutarse nada más autenticarse el usuario. Para usuarios humanos siempre será un intérprete de comandos (sh, bash, ksh…)

Como se puede observar no se guarda la contraseña en claro en este fichero, sino el resultado de aplicarle una función hash, por lo que en su momento se consideró que era un sistema suficientemente seguro. La idea es que, aunque el fichero /etc/passwd es de acceso libre y cualquiera puede obtener el valor hash de las contraseñas de todos los usuarios no sería factible obtener las contraseñas de dichos valores.

Sistema actual de autenticación en Linux

Estas apreciaciones de seguridad fueron válidas durante décadas, pero la aparición de debilidades en las funciones hash usadas (MD5, SHA1, Blowfish…) hizo que la obtención de contraseñas válidas a partir de los valores almacenados en el fichero /etc/passwd pasara a ser factible.

Así se generó una nueva estrategia:

  • Se mantiene el fichero público /etc/passwd con toda la información útil del usuario pero en el campo contraseña (el segundo) sólo habrá el valor ‘x’.
  • Se crea un nuevo fichero /etc/shadow sólo visible por el usuario root para gestionar la información de contraseña

El mero hecho de separar la gestión de credenciales y llevarla a un fichero no público ya es una importante mejora, pero además se añadieron nuevas funcionalidades criptográficas para dificultar, aún más, la obtención de contraseñas válidas aunque se obtuviera el acceso al nuevo fichero.

El formato de este neuvo fichero podría ser el siguiente:

andreu:$1$S1p7e8INZ512o:13054:0:365:7:10:99999:

Donde:

  1. andreu: el nombre de usuario
  2. $1$S1p7e8INZ512o: Resultado de la función hash de la contraseña
  3. 13054: El días, contado desde 1 de enero de 1970, en el que se cambió la contraseña por última vez
  4. 0: Mínimo número de días que deben pasar entre cambios de contraseña
  5. 365: Número máximo de días en el que una contraseña es válida
  6. 7: Número de días antes de que caduque en el que nos avisa el sistema
  7. 10: Número de días en el que la cuenta se expirará una vez caducada la contraseña
  8. 99999: Fecha, contada desde el 1 de enero de 1970, en el que la cuenta caducará

Como se puede observar este nuevo fichero abre un mayor abanico de posibilidades para la gestión de usuarios y contraseñas en los sistemas basados en Linux.

Otro punto importante es la elección de las funciones hash posibles y el uso, obligatorio, de expresiones «Salt» que dificultan en gran medida los posibles ataques por diccionario.


Obviamente mi contraseña no tiene ese hash 😉

Factores de autenticación

Control de acceso.

Control de acceso. Fuente imagen: Click2Bank

En seguridad, tanto informática como tradicional, se denomina autenticación al proceso por el cuál se intenta verificar la autenticidad de una identificación. Esta definición formal viene a decir que ya se intenta verificar que quien accede a un sistema o servicio sea quien dice ser. Para conseguir esta autenticación se pueden utilizar cuatro aproximaciones diferentes, si bien últimamente se está extendiendo el uso de un doble factor de autenticación para mejorar el nivel de seguridad y cubrir las vulnerabilidades de una opción con la otra.

Veamos las cuatro aproximaciones clásicas:

Autenticación por lo que se sabe

Se trataría de la autenticación más simple y tradicional: las contraseñas. Cuando un usuario (una identidad dentro del sistema) conoce la clave de acceso al mismo, el sistema considera que el usuario es quien dice ser y lo deja acceder. Creo que no hace falta dar ejemplos sobre servicios que usan las contraseñas para acceder 😉

Se trata del sistema más sencillo tecnológicamente pero también uno de los más vulnerables, ya que la contraseña puede ser obtenida por un usuario malicioso (phishing, ingeniería social, etc.) y hacer un uso fraudulento del servicio.

Autenticación por lo que se tiene

El usuario demuestra ser quien dice ser al tener un objeto que sólo él debería tener. En el mundo físico podríamos hacer un símil con las tarjetas magnéticas que permiten el acceso a diferentes edificios. Este factor de autenticación es ampliamente utilizado por la banca electrónica cuando al ordenar una transacción, el sistema envía un código al teléfono móvil registrado del usuario. Así la empresa supone que ese código (aleatorio y de uso único) sólo lo recibe un teléfono móvil y que si, de verdad, eres el usuario que dices ser tendrás el teléfono encima.

Autenticación por lo que se es

Este factor de autenticación busca verificar la identidad mediante la detección de una característica física exclusiva del usuario. El método más extendido dentro de este grupo sería la identificación por huella dactilar (acceso a edificios, teléfonos móviles, etc.).

Existen diferentes propuestas para obtener este factor de autenticación (huellas dactilares, comparación del iris de los ojos, escaneo 2D/3D de la cara, etc.) aunque todas ellas dependen de una toma de datos previa del usuario de forma presencial, lo cuál dificulta su uso en controles de acceso no físicos.

Autenticación por lo que se es capaz

Este factor de autenticación es el que ha aparecido más tarde y el más difícil de implementar: busca verificar la identidad de un usuario por ser capaz de realizar una acción de forma única. Quizás hayáis visto en películas una sala donde unos sensores en el suelo detectaba la forma de caminar del propietario y si alguien accedía pero caminar de igual manera se activaba la alarma. Un ejemplo de esta aproximación en el mundo digital sería el implementado por la página de MOOC Coursera.org: para que la universidad que realiza el curso emitiese un certificado oficial con el nombre del alumno debía asegurarse de que era quien decía ser (de otra forma sería fácil copiar y obtener dicho certificado). Así, además de pagar la cuota correspondiente (puedes hacer los cursos de forma gratuita pero sin certificado oficial), el alumno debía realizar las prácticas y trabajos directamente sobre una plataforma web específica. Dicha plataforma detectaba y analizaba los patrones de escritura (veces que borraba; si redactaba párrafos largos del tirón  y luego corregía o al contrario siempre hacía frases cortas; si hacía los trabajos en tandas largas o en muchas veces con poco tiempo; etc.) y así podía concluir que la persona que había realizado todas las prácticas era la misma y por lo tanto era merecedora del título oficial.

Seguridad por múltiples factores de autenticación

Autenticación por doble factor. Fuente imagen: Clik2Bank

Autenticación por doble factor. Fuente imagen: Clik2Bank

Cada uno de las aproximaciones e implementaciones técnicas de cada factor de autenticación tiene sus propias debilidades (olvidos de contraseñas, pérdidas de pases, una cicatriz que modifica la huella dactilar, etc.) por lo que para las operaciones que precisan de un mayor nivel de seguridad se suelen combinar diferentes factores de autenticación. Estamos acostumbrados que para acceder a la banca electrónica tengamos unas claves de acceso (autenticación por conocimiento) que nos permite visualizar la información pero que para realizar una operación nos soliciten un segundo código bien sea en una tarjeta de coordenadas o bien enviándonos dicho código al móvil (autenticación por posesión).