Archivo por meses: septiembre 2015

Formato CVE

CVE

Cuando trabajamos con cualquier listado o categorización necesitamos utilizar identificadores únicos para poder trabajar de forma compartida. Con la utilización de estos identificadores únicos se evitan confusiones y malosentendidos entre todas las personas que trabajan con estos sistemas. En nuestro ámbito, la seguridad informática, el sistema de identificación de vulnerabilidades más conocido y utilizado a nivel mundial, si bien no es el único, es el CVE (Common vulnerabilities and Exposures) creado y mantenido por MITRE.

Procedimiento etiquetado de vulnerabilidades

La numeración de las nuevas vulnerabilidades es responsabilidad de las CVE Numbering Authority (CNA). Actualmente las CNA oficiales son la propia MITRE y 18 fabricantes de software (Adobe, Apple, Cisco, Google, HP, Microsoft, Mozilla, Symantec…) a los que se unen los tres principales coordinadores de equipos de seguridad: CERT/CC, ICS-CERT y JPCERT/CC. Cada uno de estos CNA dispone de bloques de numeración no coincidentes y que gestionan por si mismos.

El procedimiento para crear un identificador único de vulnerabilidad CVE es relativamente simple:

  1. Se descubre una nueva vulnerabilidad ya sea de forma interna (los propios fabricantes de software) o desde un tercero (que avisaría al CERT correspondiente).
  2. La CNA avisada asigna un identificador CVE, de la numeración que tiene asignada, en estado candidato. Se trata de la numeración que será asignada de forma oficial si la vulnerabilidad se confirma y se publica.
  3. Se revisa y confirma la vulnerabilidad y se estudia su alcance, afectación y criticidad.
  4. La vulnerabilidad se publica, con la numeración asignada inicialmente, en la web de CVE y se propone al consejo editor de CVE para su aprobación final. En caso positivo la numeración pasa al estado entry quedando fijada.

Formato CVE

El formato de numeración CVE es sencillo pero efectivo. En la misma numeración se indica qué se está identificando y el año de aparición. Tras estos datos se muestra un identificador único para cada vulnerabilidad. Debido al sistema de reparto de la numeración entre CNA, por bloques, no es posible asegurar que el orden numérico de las vulnerabilidades correspondan con el cronológico de su publicación.

Ejemplo de código CVE:

Formato CVE

Formato CVE. Fuente Imagen: ElevenPath

Pondremos como ejemplo el identificador de una vulnerabilidad que afecta al sistema operativo Android y que se popularizó con el nombre de Stagefright: CVE-2015-1538 donde podemos ver que está compuesto por tres partes:

  • CVE: Estas tres siglas identifican que la numeración siguiente corresponde a una vulnerabilidad CVE. Se introdujeron para evitar cualquier posible confusión con otros sistemas de identificación tanto públicos como privados (despieces de motores, etc.).
  • 2015: El año de descubrimiento de la vulnerabilidad. Se trata del año en el que la primera CNA le asigna un código. Es posible que la publicación definitiva se realice durante el año siguiente, como pasaría con muchas vulnerabilidades descubiertas en diciembre.
  • 1538: Identificador único dentro de CVE, del año en cuestión, que hace referencia a esta vulnerabilidad en concreto.
Virus policia

Ransomware

Virus policia

Ejemplo de ransomware: Virus Policia Fuente imagen: ComputerWorld

El nombre de este tipo de programas maliciosos viene de la unión de los vocablos ingleses ransom (rescate) y software (programa informático), por lo que la definición del mismo es bastante precisa: se considera ransomware aquel programa que bloquea o limita el acceso a servicios o archivos de un sistema y solicita un pago para devolver el acceso .

Este tipo de software fue detectado por primera vez en Rusia si bien en 2013 tuvo un gran crecimiento internacional. Los casos más sonados en España aparecieron a finales de 2014 y primera mitad de 2015.

Este tipo de software suele infectar a las víctimas como un troyano que el propio usuario instala si bien se han detectado algunos que utilizaban vulnerabilidades conocidas para autoinstalarse. Una vez el programa está instalado en el equipo se activa su función maliciosa (ya sea bloquear acceso a los archivos de sistema, cifrar los archivos del usuario, modificar el arranque del sistema, etc.) y muestra un aviso por pantalla explicando al usuario que el sistema está bloqueado y que deberá pagar una cantidad para volver a tener acceso al mismo. La cantidad a pagar no suele ser excesiva para no desalentar al usuario final. El atacante propone una serie de métodos de pago que dificultan la trazabilidad de las operaciones (monedas digitales tipo  bitcoin, cheques viaje, pagos internacioneles, etc.) para evitar ser localizado. Una vez la víctima ha realizado el pago puede, o no, recibir la solución a su infección.

CryptoLocker Fuente imagen: Foro Spyware

CryptoLocker.Fuente imagen: Foro Spyware

Probablemente el ejemplo de ransomware más famoso sea CryptoLocker. Este programa cifraba los archivos de usuario con un par de claves RSA de 2048bits. El programa ofrecía descifrar los archivos mediante un pago en bitcoins en los tres primeros días de la infección. Pasado este tiempo el precio iba aumentando. Debido a la longitud de la clave de cifrado se considera que los archivos son irrecuperables.

Defensas frente al ransomware

Aunque siempre se dice que la mejor defensa es el sentido común todos sabemos que ése es precisamente el menos común de los sentidos, así que las empresas deben preparar sus sistemas para evitar este tipo de infecciones y en caso de sufrirlas minimizar sus efectos.

Control de navegación

La mayoría de estas amenazas surgen como un troyano que el propio usuario descarga de Internet y ejecuta. Por esto es importante que la navegación de los usuarios corporativos sea a través de un proxy que permita filtrar y bloquear el acceso a páginas web con mala reputación. Si a este primer control de accesos se añade un sistema antivirus en el propio proxy que analice los archivos descargados y detecte las amenazas se reducirá en gran medida la posibilidad de infección corporativa.

A este primer filtro, que no es útil para equipos portátiles que pueden conectarse a Internet desde cualquier sitio, habría que añadirle tener un sistema antivirus instalado en cada equipo y con unas políticas de actualización adecuadas para detectar estos programas maliciosos antes de que puedan ser ejecutados.

Control de instalación

Por regla general los usuarios corporativos no necesitan privilegios para la instalación de nuevo software. Los servicios informáticos pueden instalar todas las herramientas necesarias para el trabajo por lo que los propios usuarios no necesitan de estos permisos. El hecho de no poder instalar nuevo software evita la infección de varias formas de malware. Nuevamente la aplicación de estas políticas en equipos móviles se dificulta.

Control acceso a directorios compartidos

Las variantes de ransomware que encriptan los archivos de usuario pueden provocar problemas a las empresas si llegan a infectar los servidores corporativos. La infección de un usuario con acceso a un directorio compartido de ficheros puede provocar que nadie pueda acceder a los mismos al estar cifrados. Este escenario es uno de los que mayores problemas dolores de cabeza ha provocado entre los departamentos técnicos de las empresas.

Para reducir el impacto de una infección hay que limitar a los mínimos imprescindibles los permiso de escritura o modificación en directorios compartidos. Así se limitaría el alcance del cifrado de archivos en una infección.

Copias de seguridad

Una vez se ha infectado un equipo y ha cifrado los archivos de usuario la única solución para recuperarlos, aparte de pagar y esperar que los atacantes nos envíen una solución, es utilizar nuestras copias de seguridad previas a la infección.

Para asegurarse de tener copia de la mayoría de información las empresas pueden configurar los equipos de usuario para que sólo puedan almacenar archivos en servidores compartidos evitando así almacenar información en los equipos de usuario. Aunque esto pueda parecer entrar en conflicto con el punto anterior en realidad, con una buena configuración de permisos, evitará la pérdida de datos por este tipo de malware.

Para evitar la infección de las copias de seguridad es importante que todas las copias estén almacenadas en directorios de solo lectura donde el único usuario con permisos de escritura sea uno específico para el servicio de copias de seguridad. Este usuario debe tener prohibido el acceso a Internet para evitar que se infecten nuestras copias.

Clickjacking

Se denomina clickjacking, cuya traducción aproximada sería secuestro de clic, a una serie de técnicas, generalmente utilizadas en aplicaciones web, que buscan que el usuario pulse enlaces (y por ello ejecute código) de forma inconsciente. El término fue acuñado en 2008 si bien se puede conocer este tipo de ataques con el termino, más genérico, IU redressing (pudiendose traducir como redirecionamiento de interfaz de usuario).

Ejemplo clickjacking

Ejemplo clickjacking. Fuente imagen: Un informatico en el lado del mal

La idea bajo este ataque es conseguir que el usuario realice una acción no intencionada (ejecutar un script, instalar malware en su equipo, visitar una página web, etc.) sin ser consciente de ello. Para conseguir este resultado se suelen utilizar propiedades del lenguaje HTML de forma malintencionada.

Un ejemplo típico de este tipo de ataques sería la visita de un usuario a una página web que contenga un vídeo. Generalmente para reproducir un vídeo es necesario pulsar el botón de Play para que comience, así pues el usuario hace clic sobre el botón para poder ver el vídeo. Si un atacante malicioso ha colocado sobre el botón una imagen o un iframe transparente con un enlace a otro sitio el usuario en realidad habrá pulsado dicho enlace y no el inicio de la reproducción del vídeo.

Algunas páginas pueden engañar al usuario al crear su propio puntero de ratón, en vez de utilizar el propio del sistema. Así puede mostrar un puntero desplazado respecto al real y hacer que el usuario pulse el enlace no deseado. Esta variante recibe el nombre de cursorjacking (secuestro del cursor).

El éxito de esta técnica tiene una tasa de éxito es muy variable ya que depende en gran medida de la configuración del navegador del usuario y del tamaño de pantalla. Tampoco suele ser un técnica muy efectiva para forzar la instalación de software malicioso ya que los navegadores modernos incluyen incorporan medidas de seguridad, precisamente, para evitar eso (tiempos de espera, avisos de confirmación ,etc.). Debido a estas limitaciones la técnica de clickjaking se ha centrado más en conseguir que los usuarios hagan uso de otros servicios web, siendo los más comunes (por tenerlos en login automático en nuestros navegadores):

  • Seguir a alguien en Twitter de tal manera que esa cuenta gana popularidad y el usuario puede recibir spam en su timeline (1000 seguidores en twitter valen menos de 5€).
  • Darle a Me Gusta de Facebook o compartir publicaciones de una página desconocida para conseguir el mismo efecto. Estas técnicas han sido denominadas como Likejacking (1000 Me gusta en Facebook puede salirte por menos de 10€).
  • Cambiar la configuración de redes sociales para que sea pública y así el atacante puede obtener más información de la víctima.
  • Forzar la visita a una página web no deseada ya sea con el objetivo de vender algún producto o servicio o bien para que la página visitada incremente su popularidad en los buscadores.

Estos problemas de vulnerabilidades pueden no parecer críticos a simple vista pero si una web es vulnerable a un clickjacking de terceros no sería de extrañar que también estuviese afectada por alguna vulnerabilidad XSS.

Defensas frente a clickjacking

Los usuarios pueden utilizar el plugin NoScript que protege frente a este tipo de ataques. Otra solución sería configurar manualmente una plantilla de navegación por la que todos los iframes que se creen tengan un fondo opaco para evitar la aparición de una ventana transparente sobre una página web legítima.

Los administradores de sitios web pueden activar algunas opciones por defecto de X-Frame-Options o de la Content Security Policy para forzar que todos los iframes en su web  tengan fondo opaco y sólo apunten a su propia página y no redirijan tráfico a terceros.

Keylogger

Un keylogger (término inglés creado a partir de las palabras key (tecla) y logger (registrador)) es un sistema que almacena las pulsaciones del teclado para su posterior tratamiento.

El registro de las teclas pulsadas puede realizarse tanto mediante un software específico como utilizando un equipo físico. La utilización de este sistema permite capturar cualquier información introducida desde un equipo antes de que se aplique ningún tipo de securización (sesiones SSL, cifrado IPsec, etc.) para su transmisión por lo que el atacante puede obtener cualquier tipo de información privada (contraseñas, claves de acceso a datos bancarios, etc.). Así la instalación de un sistema keylogger suele ser un paso previo a un ataque más rentable al conseguir información privilegiada a la que no se tenía acceso.

Tipos de keylogger

Veamos los diferentes tipos de keyloggers:

Keylogger hardware

Keylogger en conector PS2

Keylogger físico en conector PS2. Fuente imagen: Wikipedia

Se tratan de dispositivos físicos que capturan la información tecleada y la almacenan. Así pues se necesita acceso físico al equipo que se desea espiar. Aunque el funcionamiento básico sea el mismo (interceptar la información antes de que llegue al ordenador) podríamos encontrarnos tres tipos diferentes en función de su instalación:

  1. Adaptadores: se trata de pequeños sistemas que se conectan en el cable que une el teclado con el equipo. Se trata de la forma más sencilla y rápida de instalar un keylogger si bien una revisión física detectaría el equipo.
  2. Internos: son pequeños circuitos pensados para ser montados dentro del teclado. Requieren una mayor pericia y tiempo ya que implican desmontar el teclado, instalar el keylogger y volver a montar el teclado. Sólo pueden ser detectados si se detectan desperfectos o se abre el teclado.
  3. Teclado completo: el engaño consiste en sustituir el teclado del ordenador por uno previamente preparado. Esta acción implica una información previa sobre la marca y modelo del teclado (que podría conseguirse, por ejemplo, en una visita previa o mediante ingeniería social) si bien hace que el keylogger sea virtualmente ilocalizable.

Keylogger software

Ejemplo de captura de un keylogger

Ejemplo de registro de un keylogger. Fuente imagen: Wikimedia

Los keylogger por software son los más comunes y utilizados ya que no requieren la presencia física y pueden ser instalados y gestionados a distancia. En este caso el programa espera que la información de las pulsaciones sea recogida por el ordenador para almacenarla. En este caso podemos encontrar dos vías para obtener la información del teclado:

  1. Sustituir el driver: En este caso el programa sustituye el controlador del teclado que incluye el sistema operativo de tal forma que toda pulsación es gestionada por el keylogger para posteriormente entregarla a las aplicaciones legitimas pasando desapercibido.
  2. Utilizando opciones del sistema operativo: Estos programas, los más sencillos de escribir, utilizan las diferentes funciones del sistema operativo para activarse en el momento que se realiza cualquier pulsación y realizar una copia.

Protección frente a keyloggers

Los keylogger son, probablemente, una de las amenazas más difíciles de detectar y lidiar mientras que son de las más peligrosas por la información que pueden obtener y las implicaciones que pueden alcanzarse. Veamos pues algunas formas de detección y protecciones frente a la amenaza.

Seguridad física

Los keylogger físicos implican un acceso físico a los equipos a vigilar por lo que una política de seguridad física correcta evitaría su uso. El control de acceso es efectivo en este punto. La revisión periódica de los conectores permitiría detectar la mayoría de los keyloggers.

Sistemas antispyware

Los fabricantes de software antivirus y antimalware disponen de una serie de firmas de los keyloggers conocidos por lo que podrían detectar su aparición en los ordenadores. Este sistema sólo es útil si utilizan un programa conocido.

Teclados virtuales

Ejemplo de teclado virtual

Ejemplo de teclado virtual. Fuente imagen: Wikimedia

Una estrategia de la banca online para evitar que sus usuarios sean víctimas de fraude por tener un keylogger instalado en sus equipos ha consistido en la creación de teclados virtuales donde deben marcar sus claves con clicks de ratón. Así se evitan las pulsaciones del teclado y con ello dar información al keylogger. Algunos keylooger han evolucionado para realizar capturas de pantalla cuando detectan que se accede a algún servicio bancario para contrarrestar esta defensa si bien eso no siempre es efectivo (acceso a la web desde accesos directos, favoritos/marcadores, etc.).

Comportamiento lento

Si el keylogger es un programa mal hecho es posible detectar su existencia por un aumento en el tiempo de reacción al pulsar teclas. Aunque el keylogger está pensado para pasar desapercibido debe registrar cada pulsación por lo que la pulsación continua y repetida de múltiples tecla puede ocasionar su saturación y una mayor lentitud en la respuesta de un programa legítimo, lo cual puede llevar a pensar en la existencia de un keylogger. Se trata de una estrategia ya poco útil debido a la mejora de los programas y a la potencia de cálculo de los ordenadores.

Detección de tráfico saliente

La información almacenada por el keylogger debe ser revisada por lo que generalmente es enviada fuera de la red para que el atacante pueda analizarla. Una política restrictiva de acceso a servidores de correo o FTP externos puede evitar que la información salga al exterior. Si se dispone de un IDS o IPS es posible detectar conexiones extrañas hacia el exterior y actuar en consecuencia. El hecho de forzar a los usuarios a utilizar un proxy de navegación también dificultará el envío de la información almacenada.

La posibilidad de que haya un keylogger instalado es un ejemplo claro de porqué no hay que descuidar la seguridad desde el punto de vista de un atacante, intencionado o no, interno.

Control permisos instalación software

En un entorno empresarial no es habitual que los usuarios necesiten instalar aplicaciones nuevas por lo que una política de empresa que restrinja los permisos de usuario evitaría la instalación de la mayoría de keyloggers software. Si además se dispone de un repositorio de drivers interno es posible revisar que los ordenadores estén utilizando el driver de teclado correcto y certificado evitando así los drivers modificados de forma maliciosa.