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.