El blog de Félix Brezo

Encontrando conversación sobre servicios de inteligencia y seguridad informática…

Desde principios de esta semana vengo probando la inclusión de un servicio de visualización de contenidos tipo paper.li en la web. Se trata de un servicio que permite a sus usuarios visualizar de una forma muy natural las noticias de las que se han ido haciendo eco en los diferentes medios sociales así como aquellas que se crea conveniente. La ventaja es que se muestran a modo de web de noticias al uso y no como enlaces y texto solamente como puede ocurrir en Twitter.

Estoy analizando de momento cómo afecta esto al rendimiento de la página y a la carga de contenidos así que de momento he añadido únicamente tres opciones nuevas:

  1. La primera es la inclusión en el menú lateral de un listado de encabezados de las noticias que se vayan visualizando en el nuevo paper titulado InfoSec e Inteligencia.
  2. La segunda es la creación de una página nueva para hospedar el script de paper.li que se encarga de la actualización automática de las noticias en el espacio reservado para ello. Ésta página puede ser accedida desde http://noticias.felixbrezo.com o desde los enlaces que aparecen en la parte superior derecha de éste mismo blog.
  3. A su vez, para facilitar el acceso al Paper.li completo he creado un nuevo subdominio a modo de redireccionador desde http://paper.felixbrezo.comhttp://paper.li/febrezo/1335265751

Como digo, todo está en fase de pruebas y os animo desde aquí a dejarme feedback en caso de que lo encontrarais engorroso o ralentizara la carga de la web. Estos días prestaré un poco más de atención a las estadísticas de navegación para ver si de verdad merece la pena sobrecargar los contenidos aquí dispuestos.

Por cierto, aprovecho para deciros que mientras preparaba otro miniscript para la generación aleatoria de DNI validados con su letra (es una tontería) me han llegado algunas peticiones comentándome cómo ejecutar los anteriores scripts en Python que hemos comentado por aquí. ¡Es más fácil de lo que parece! Si no tenéis instalado Python (podéis comprobarlo abriendo una ventana de terminal y escribís python os debería mostrar la versión de python instalada y un prompt para empezar a picar código), vais a Python.org y os bajáis en la sección de descargas la versión de Python que queráis ejecutar. Los scripts están programados usando Python 2.7.x, lo cual, por desgracia no quiere decir que funcionen en las versiones 3.x y superiores. Y si no sabéis nada de este lenguaje de scripting os recomiendo pasaros por los tutoriales y documentación e ir siguiendo las guías para principiantes. Nunca sabe uno cuándo va a tener que automatizar tareas y/o cálculos y Python te puede ayudar. Python rul3z. ;)

Bookmark and Share

Hoy os dejo la aplicación en la que he estado trabajando los tiempos muertos de este fin de semana. Se trata de un pequeño script en Python que genera números de tarjeta de crédito validadas. El caso es que, al igual que ocurre con las letras de los DNI, existe un algoritmo que verifica que los números facilitados corresponden de verdad a una tarjeta de crédito real. Esto podría ser útil para, en aquellos sistemas que exijan a sus usuarios como parte del proceso de registro la inserción de una tarjeta de crédito válida, introducir un número generado artificialmente que satisfaga las restricciones de los números reales. Para evitar fraudes de este tipo lo que hacen algunos sistemas es realizar un cargo de 0,01€ a la cuenta y devolverlo posteriormente, pero puedo asegurar que existen muchos otros que no realizan esta sencilla comprobación adicional.

De cualquier manera y para el que tenga curiosidad, el script, colgado aquí en mi cuenta de Pastebin, implementa ese proceso que comentamos, que os podéis encontrar haciendo un par de búsquedas en Google sobre el tema (aquí o aquí por ejemplo) y cuyo funcionamiento podemos resumir con el siguiente ejemplo.

Dado un número 1234-5678-9012-3456, el algoritmo de verificación de los números de tarjeta funciona así:

  • Se multiplican por dos las cifras impares del número, y si en caso de que el número resultante sea >9, se le restará 9.

2264-1658-9024-6416

  • Se suman los valores de todas las cifras

2+2+6+4+1+6+5+8+9+0+2+4+6+4+1+6=66

  • Se comprueba si la suma obtenida es divisible por 10 y <=150, que en este caso no lo es.

La aplicación está pensada para ser ejecutada desde la consola y tiene las siguientes opciones:

febre@felix-portatil:~$ python numtarcre_gen.py -h
usage: NTC_GEN.py [-h] [-g CANT_NUM | -c NUM_TAR] [-i ID_CIA] [-f FICH_I/O]
[-q] [-s CARAC] [-v] [--version]
Generador y verificador de la validez de números de tarjeta de crédito.
optional arguments:
-h, --help            show this help message and exit
-g CANT_NUM, --generador CANT_NUM
para indicar el total de números de tarjeta a
generar.
-c NUM_TAR, --comprobante NUM_TAR
para especificar: a) el número de tarjeta individual
a verificar (admite como carácter separador el guión
(-)) o b), si existe fichero de entrada, la
verificación del fichero de entrada
-i ID_CIA, --inicio ID_CIA
para establecer el número (o números) iniciales de
las tarjetas a generar (3xx..x - American Express,
4xx..x - Visa, 5xx..x - MasterCard, 6xx..x -
Discover).
-f FICH_I/O, --fichero FICH_I/O
para determinar el nombre del fichero de
entrada/salida.
-q, --quiet           para no mostrar ninguna salida en la consola.
-s CARAC, --separador CARAC
para indicar un carácter de separación diferente a
'-'.
-v, --verbose         para mostrar detalles de ejecución en pantalla.
--version             show program's version number and exit

Las opciones básicamente incluyen la posibilidad de verificar números de tarjeta pasados por parámetro (o en un fichero de texto plano indicado con la opción -f <nombre_fichero> y que contenga un número en cada línea) y la posibilidad de generar n números de tarjeta aleatorios diferentes y volcarlos o no a un fichero dado. Observad que las secuencias numéricas generadas no son consecutivas sino aleatorias, lo que, para cantidades enormes de números, podría introducir problemas de rendimiento si se generan cifras correspondientes a números ya verificados. De cualquier manera, en las pruebas que he realizado en un i3, en apenas dos minutos ha conseguido generar 100.000 así que no debería ser mucho problema.

Una cosa interesante implementada es que con la opción -i se le puedan indicar también los caracteres con los que se quiere que comiencen los números generados. Esto permitiría que alguien que estuviera interesado en solamente generar números correspondientes a tarjetas, Visa, American Express, etc. o a entidades financieras concretas pudiera hacerlo si se conocen los dígitos que las identifican. Os animo a realizar  modificaciones y/o optimizaciones de este script y a, de hacerlo, no dudar en poneros en contacto conmigo de nuevo para volverle a dar salida desde aquí. ;)

IMPORTANTE. También quiero aprovechar desde aquí para insistir nuevamente en lo que se detalla después de la licencia y al inicio del código: ya que este programa ha sido codificado con fines única y exclusivamente educativos, el uso con fines fraudulentos de este script es responsabilidad única y última de sus usuarios finales por lo que insto desde aquí a cualquier persona que detecte un uso delictivo del mismo a ponerlo en conocimiento de las autoridades pertinentes.

Bookmark and Share

Estos días en el Máster Universitario de Seguridad de la Información hemos estado repasando con Carlos Laorden los peligros y la amenaza del spam. No, no del spam de www.spam.com. Del spam con el que nos han resumido en apenas 1 minuto 15 segundos al final del módulo el contenido de todas estas sesiones:

El caso es que uno de los ejercicios que nos han propuesto estos días ha consistido en pensar en problemas que podrían surgir del análisis de los correos basura. En el minidocumento que entregamos @Litrura, mi compañero de Proyecto de Fin de Máster, y yo, caímos en la cuenta de una problemática con la que se podía encontrar las técnicas de análisis de URL en el cuerpo de los mensajes.

Todos conoceréis las páginas de acortadores de URL (http://tinyurl.com/, http://goo.gl/ o http://bit.ly/) que nos permiten reducir el número de caracteres de los que consta una URL para que nos entren en los tweets y estados de las diferentes redes sociales sin molestar demasiado. Bueno, el tema es que la aparición de estos servicios complica un poco más el análisis de los enlaces, ya que cuando vemos la URL no tenemos ni idea de a qué lugar nos redirige en realidad.

Nosotros hicimos este pequeño ejercicio utilizando la herramienta nslookup, que se utiliza para saber si el DNS está resolviendo correctamente los nombres y las IP correspondiente.

febre@felix-portatil:~$ nslookup www.felixbrezo.com
Server:     X.X.X.X
Address:    X.X.X.X#53
Non-authoritative answer:
Name:    www.felixbrezo.com
Address: 217.160.251.126

Sin embargo, si acortamos la URL con el servicio de bit.ly y realizamos la misma búsqueda, la información que obtendremos referente a la misma web es la siguiente:

febre@felix-portatil:~$ nslookup http://bit.ly/HThLrf
Server:     X.X.X.X
Address:    X.X.X.X#53
** server can't find http://bit.ly/HThLrf: NXDOMAIN

Como ya se ha dicho, esto supone una complicación adicional en el análisis de URL porque el identificar él acceso a una URL acortada no es suficiente si queremos evitar que nuestros usuarios visiten dicha web. Afortunadamente, existen servicios como LongURL que nos permiten resolver externamente dichas direcciones acortadas sin acceder a ellas para tener más información relativa al enlace. En el caso del ejemplo, la información mostrada es:

Expand URL

Screenshot
Title:

El blog de Félix Brezo

Short URL:
http://bit.ly/HThLrf
Redirects:
1 (show details)
Long URL:
http://www.felixbrezo.com/

Extra Info

Meta Keywords:
felix brezo seguridad inteligencia informática ingeniería esteganografía cripto
Meta Description:
http://www.felixbrezo.com
Content-Type:
text/html

Llegados a este punto, aprovecho para comentar también que cuentan con un complemento para Firefox o como script para Greasemonkey, de modo que al dejar el cursor sobre una URL acortada nos mostrará en un mini pop-up la información de la que dispone, lo que también puede ser muy útil para prevenir al usuario de la inmediata visita a una web que en verdad no quería visitar. ;)

Bookmark and Share

Entre paper y paper y como me da pena no poderos contar aquí las cosillas que estamos enviando a diferentes conferencias, os dejo una entrada de las de noches-en-vela-en-día-laborable. :) Algunos que me conocéis bastante y me seguís por Twitter ya sabréis que soy muy futbolero. Pues bien, ahora empiezan a llegar las finales de las diferentes competiciones y los socios de los diferentes clubes se empiezan a echar las manos a la cabeza con el reparto de entradas. En el caso del Athletic Club y la final de Copa del Rey, se ha optado (por fin), por un reparto muy sencillo: los socios se apuntan online y, pasado el plazo de inscripción se extraerá un número. El agraciado y los  16.999 números que le siguen serán los que tendrán la posibilidad de retirar una de las entradas. Después de pasar por caja, claro.

Esta sencillísima metodología puede dar lugar a diferentes estrategias: la de los amigos y conocidos que se han apuntado en grupo a por el todo o nada y los que lo han hecho por separado. En nuestro caso hemos optado por seguir esta segunda, porque fue la estrategia de la final de Copa de 2009 en Valencia y porque nos salió bien: apuntarnos los 3 espaciados en el tiempo para intentar asegurar al menos una y optar a dos entradas (y el tercero ya se verá qué hace en las afueras del Calderón).

Como no arrastro sueño ni nada, me he lanzado esta noche a programar un miniscript en Python que lo que hace básicamente es, dada una serie de números de boleto, calcular las posibilidades que existen de que un grupo se lleve una, dos, …, n o ninguna entrada. Os dejo el código aquí en Pastebin por si lo queréis probar.

La ayuda que os he puesto para usar el script es tal que así:

usage: sorteoAthletic.py [-h] -e NUM_ENTRADAS -p NUM_PETICIONES N [N ...]

Cálculo de las posibilidades de ganar en un sorteo de extracción de una bola
en el que los agraciados serán el afortunado y los N-1 números siguientes.

positional arguments:
 N                     lista de los números del sorteo

optional arguments:
 -h, --help            show this help message and exit
 -e NUM_ENTRADAS, --entradas NUM_ENTRADAS
 el número de entradas que se sortean
 -p NUM_PETICIONES, --peticiones NUM_PETICIONES
 el número de peticiones enviadas al club

Así que, para un escenario de 33.500 peticiones (somos 35.000 y pico socios y a día de hoy ya se habían repartido más de 30.000 números) para las 17.000 entradas ofertadas, la aplicación se ejecutaría desde la consola tal que así:

python sorteoAthletic.py 1 2 3 --entradas 17000 --peticiones 33500

Y nos devolvería esto:

Media:       1.522 entradas.
Varianza:    2.249
Desv. T.:    1.5 entradas.

ASIGNACIÓN ESTIMADA (%)
-----------------------
Hay un 49.248% de posibilidades de llevarse justo 0 entrada(s).
Hay un 0.006% de posibilidades de llevarse justo 1 entrada(s).
Hay un 0.006% de posibilidades de llevarse justo 2 entrada(s).
Hay un 50.74% de posibilidades de llevarse justo 3 entrada(s).

Si por contra ponemos la opción por la que hemos optado nosotros (sí, el 30.153 es mi número):

python sorteoAthletic.py 5500 15000 30153 --entradas 17000 --peticiones 33500

nos encontramos con los siguientes resultados:

Media:       1.522 entradas.
Varianza:    0.249
Desv. T.:    0.499 entradas.

ASIGNACIÓN ESTIMADA (%)
-----------------------
Hay un 47.761% de posibilidades de llevarse justo 1 entrada(s).
Hay un 52.239% de posibilidades de llevarse justo 2 entrada(s).

¿Qué quiere decir esto? Pues básicamente que aunque hemos renunciado a tener 3 entradas, en nuestro caso tenemos asegurada una de las entradas, salga el número que salga. Y eso, además de tener en torno a un 50% de posibilidades de conseguir la segunda entrada. Aunque, si hacemos cuentas, el reparto en infinitos sorteos será potencialmente el mismo, la definición de este contexto particular tiene sus matices:

  1. El Athletic no va a llegar a infinitas finales (al menos no en 100 años), con lo que el impacto de la varianza puede ser dramático a la hora de determinar la presencia de gente de nuestro grupo.
  2. La posibilidad de conseguir alguna entrada adicional puede ser tenida en cuenta e introduce otro detalle del que uno cae a posteriori: cogiéndolas salteadas, si se consiguiera una sola de última hora (la experiencia me dice que a veces pasa), en el 100% de los casos esa entrada sería aprovechada; mientras que en el caso de coger las entradas en pack, en el 50% de los casos se habría desaprovechado esta posibilidad porque ya tenemos una todos los que participamos en el sorteo.

Por supuesto que si queréis hacer cuentas para una potencial final europea podéis hacerlas. Parece ser que sólo se repartirán 9.000 entradas por club finalista, pero para pensar en ello, antes habrá que eliminar al Sporting de Portugal. Mientras tanto, en esas estamos: esperando  a que salga la bolita. :)

Bookmark and Share

Tras un final de mes a la carrera y un comienzo del presente con idéntica intensidad, me vuelvo a pasar por aquí. Son muchos los proyectos que uno tiene en la cabeza y espero ir dejando caer de poquito en poquito algunos de ellos. Esta vez, sin embargo, os escribo para compartir una reflexión sobre el software libre y el software open-source con motivo de la finalización del deadline de aplicación al programa Google Summer of Code.

Como algunos ya sabréis, se trata de un programa auspiciado por Google desde 2005 destinado a fomentar la colaboración de los estudiantes con proyectos de código abierto. Se desarrollará entre los meses de abril y septiembre y será la propia Google la que recompensará dicho desarrollo con una cifra de $5.500 ($500 para la organización y el resto para el estudiante). Si uno se pone a revisar la lista de 180 organizaciones colaboradoras encontraríamos Apache Software Foundation, Code for America, DBpedia Spotlight, Debian Project,  Google Open Source Programs Office, GIMP, LibreOffice, Moodle, Mozilla, Python Software Foundation, The Honeynet Project, Twitter o Wikimedia por decir algunas. El listado como véis es de lo más variado, pero el tiempo apremia y si queréis echar alguna solicitud apenas tenéis ya unas horas porque el deadline termina mañana.

Todo esto, junto con el hecho de que esta semana he recibido por fin un regalillo que la FSF envía a sus miembros (un SO GNU/Linux metido en un USB bastante chulo del tamaño de una tarjeta), me sirven de introducción para hacer mías unas reflexiones que hizo en su día Richard Stallman con respecto a Por qué el código abierto pierde el punto de vista del software libre. Y es que uno de los problemas que nos encontramos cuando hacemos referencia a este tipo de software, es que el término free induce a error. Puede ser entendido como gratis (cuando al software que es solamente gratis lo llamaremos freeware) mientras que en estas circunstancias los que lo impulsaron le dan el significado de libre. Libre de libertad (y copio):

  • La libertad de ejecutar el programa, para cualquier propósito (libertad 0).
  • La libertad de estudiar cómo trabaja el programa, y cambiarlo para que haga lo que usted quiera (libertad 1). El acceso al código fuente es una condición necesaria para ello.
  • La libertad de redistribuir copias para que pueda ayudar al prójimo (libertad 2).
  • La libertad de distribuir copias de sus versiones modificadas a terceros (libertad 3). Si lo hace, puede dar a toda la comunidad una oportunidad de beneficiarse de sus cambios. El acceso al código fuente también es una condición necesaria para ello.

Y esto es algo que el código abierto u open source no considera. El término open source, dice con razón Stallman, define una práctica superpotente como la programación colaborativa, pero termina por difuminar la idea del software libre: garantizar las libertades de ejecución, estudio, redistribución y modificación del software. Aunque casi todo el software de código abierto es software libre, se expresan de fondo ideas diferentes, muy susceptibles de corromper el objetivo final del que escribe sus programas bajo la premisa del software libre. Una última referencia al artículo de Stallman:

[...] La retórica del código abierto ha convencido muchas empresas y particulares a usar, e incluso desarrollar, software libre; lo cual ha extendido nuestra comunidad, pero solamente a un nivel superficial, el práctico. La filosofía del código abierto, con sus valores puramente prácticos, impide la comprensión de las ideas más profundas del software libre. [...]

Y por eso soy desde hace unos pocos meses miembro de la Free Software Foundation: porque nosotros ejecutamos en nuestros equipos código ajeno y tenemos derecho a saber qué hace ese código y por qué; porque el software libre es una forma óptima de trasladar tus avances a la sociedad y dar pie a que otros puedan seguir avanzando y mejorando sin ataduras; y porque defender que cualquier persona en el futuro pueda hacer eso mismo con nuestro código es una causa, cuanto menos, honorable. ¿Te suena a historias de un hidalgo del siglo XXI? Bueno. A mí es que me suena a libertad. :)

Bookmark and Share

La situación estos días en Francia ha sido compleja. El asesinato premeditado de 7 personas en plena campaña electoral a manos de Mohammed Merah en la ciudad de Toulouse y la resolución policial del asunto con la muerte del autor material de los asesinatos, no es más que la punta de un iceberg que refleja la complejidad del tratamiento informativo que están recibiendo estos temas en los medios de comunicación. Son muchas las opiniones que se han vertido a la prensa por parte de políticos y expertos y la proximidad de la cita con los urnas no hace sino precipitar los acontecimientos. Si hacemos un repaso a los medios de comunicación nos encontramos con interpretaciones dispares e incluso opuestas.

Según The Wall Street Journal el muyahidín de Toulouse se encontraba en la lista de personas vetadas para entrar en EEUU. El motivo es que ya estuvo detenido en Afghanistán, aunque no existen grabaciones de ningún tipo sobre su estancia bajo custodia del ejército americano y, por tanto, no son tampoco públicos los motivos. He podido leer cómo algunos columnistas [El País, La Vanguardia, Público.es, El Periódico] creen haber encontrado en ello una actuación negligente y poco profesional de la Direction Centrale du Renseignement Intérieur (la inteligencia francesa, dependiente del Ministerio de Interior) en el seguimiento del caso.

Efectivamente, ese listado de personas existe. Ese listado (subrayo nuevamente la pluralidad del concepto listado) incluye una gran cantidad de nombres de individuos que tampoco han sido arrestados y que probablemente no lo serán nunca al no existir causas legales contra ellos en Francia. Pero si se está defendiendo que es un error que a la inteligencia francesa se le escapase este nombre… ¿debo deducir entonces que hay gente que está justificando el encarcelamiento preventivo, aún sin existir motivos con base jurídica para acusar a nadie? ¿Somos conscientes de las consecuencias de todo esto? Que la precipitación sea utilizada para sentar base jurídica es peligrosa si perdemos el horizonte de donde nos movemos.

¿Castigar la consulta de webs?

En este contexto, Nicolás Sarkozy ha realizado estos días un anuncio de calado. Afirma que se perseguirá penalmente a aquellas personas que visiten páginas terroristas bajo el pretexto de terminar con la «apología del odio». Este tipo de decisiones tomadas en caliente, con los humos de la batalla aún frescos y las víctimas apenas recién enterradas no contribuyen a normalizar la situación. La medida, según el primer ministro François Fillon, será aplicada «sin demora».

Pero, ¿se sabe qué organismo establecerá qué es visitable y qué no? ¿Se sabe si se prohibirá también el acceso a páginas vinculadas a otras organizaciones terroristas extranjeras? ¿Y quién establecerá qué es un movimiento que incite al odio y cuáles son sus límites? ¿Se incluirán también en ese epígrafe páginas en cualquier idioma, movimientos de resistencia chinos o cubanos o, por qué no, foros de grupos organizados de ultras de clubes de fútbol?

Sin embargo, expertos como Antonio Torres, catedrático de Derecho Constitucional de la UNED, ya han manifestado sus dadas al respecto en la prensa (el País 23 de marzo de 2012, página 5) ya que lo que se está anunciando ya no es perseguir a quien adoctrina sino «al que visita o se asoma a los contenidos». El propio Torres afirma que «… en España sería más que dudoso que pasara el filtro de la constitucionalidad» y el propio Tribunal Europeo de Derechos Humanos es especialmente sensible a aquellas limitaciones legales de la libertad de expresión a las que se exige un máximo de precisión y no perdamos de vista que el anuncio de Sarkozy no busca ya incriminar actividades como la captación o el adoctrinamiento sino la propia consulta. Hay matices.

En resumidas cuentas, la situación es muy delicada y hay que hilar muy fino. Sería paradójico que en Occidente, desde donde tanto criticamos las medidas que coartan la libertad de expresión en la red que están siendo bandera de los gobiernos de algunos países totalitarios, se pueda estar dando amparo a medidas que limiten la pluralidad del pensamiento en el ciberespacio de la noche a la mañana. Cualquiera que sea la respuesta, ésta debe ser reposada y contener una serie de mecanismos de control y procedimientos que velen por un funcionamiento constitucional de las medidas. Cautela frente a precipitación para defender la libertad.

Bookmark and Share

Al no habituado a estos términos le pueden sonar a técnicas elitistas sólo al alcance de unos pocos, pero lo cierto es que utilizamos la criptografía a diario y sin darnos cuenta: las compras con tarjeta de crédito, las llamadas a través de nuestros móviles, las conexiones inalámbricas, el correo cifrado, etc. A continuación os ordeno, de las más, a las menos exhaustivas, algunas de las posibilidades que tenéis de realizar cursos para profundizar en un tema mucho más cercano de lo que parece a primera vista.

Stanford University – Cryptography

Empezamos este repaso por un curso intensivo y exhaustivo con un muy buen ritmo de divulgación de contenidos. Corresponde a la serie de cursos online y gratuitos que ha empezado a impartir la Universidad de Stanford a través de la plataforma Coursera. El curso está disponible a través de su página web y consta de una plataforma online en la que se nos van presentando, semana a semana, las diferentes lecciones. Las explicaciones las tenemos disponibles en vídeos descargables (con subtítulos, por si fuera necesario) y tenemos también transparencias en formato .pdf para consultarlas cuando creamos conveniente. Además, periódicamente, se le presentarán al alumno una serie de ejercicios o assingments que habrá que ir entregando en su plazo si se quiere conseguir la acreditación de superación del mismo.

Ventajas:

  • Su profundidad y la complejidad de los contenidos. Explican al detalle la criptografía empezando desde el principio y la presentan de forma que supone un auténtico reto.
  • Herramientas y comunidad de foros para realizar consultas. La información está disponible en diferentes formatos: vídeo (streaming y descarga), .pdf y subtítulos.
  • Mecanismos de evaluación y certificado de aprovechamiento.

Pegas:

  • Se recomienda tener un cierto manejo de algún lenguaje de programación y hay algunos conceptos que pueden resultar suficientemente complejos como para desanimar a alguien que quiera aprender, vamos a decir, lo básico.
  • Sólo en inglés (¿es una pega?).
  • El deadline para la matriculación a este curso terminaba el pasado 18 de marzo.

Recomendado para:

De cualquier manera, muy recomendable si te desenvuelves bien en inglés, tienes algunos conocimientos de programación y quieres dar un curso completo sobre el manejo de cuestiones relacionadas con la criptografía.

Además del curso de criptografía al que hemos hecho aquí mención, tenemos disponibles otros sobre teoría de juegos, modelos gráficos probabilísticos, diseño y análisis de algoritmosprocesamiento de lenguaje natural (aprovecho para meter la cuña y recordar a los presentes que se ha ampliado el plazo para la sesión especial de la CISIS’12 sobre procesado de texto aplicado a la seguridad) todos ellos de la Universidad de Stanford, pero además uno sobre Model thinking de la Universidad de Michigan y otro sobre Software as a Service de la Universidad de California, Berkeley.

Universidad Politécnica de Madrid – Crypt4you

Como dicen en su propia página web, «Crypt4you es un nuevo formato de formación en seguridad de la información online y gratuita», que nace en la Red Temática de Criptografía y Seguridad de la Información Criptored de la Universidad Politécnica de Madrid. Cada tema está compuesto por un conjunto de lecciones que se están publicando en su web cada quince días, siendo sus autores investigadores y profesores miembros de esta red temática. Es el caso del Dr. Jorge Ramió, Profesor Titular de la Universidad Politécnica de Madrid y el Dr. Alfonso Muñoz, Doctor de Telecomunicaciones por la Universidad Politécnica de Madrid e investigador postdoctoral en Computer Security & Advanced Switching Network en la Universidad Carlos III de Madrid. Puesto que acaban de empezar, sólo se puede encontrar la primera parte del curso sobre RSA.

Ventajas:

  • Los vídeos y materiales están en castellano.
  • De fácil seguimiento y profundidad.
  • No es necesario registro ni matrícula.

Pegas:

  • No dispone de certificado de aprovechamiento.
  • La ausencia de control del sistema actual puede terminar por desalentar al alumno.
  • Aún sólo se dispone de un curso: sobre RSA.

Recomendado para:

Gente con inquietudes sobre estos temas y que no quiera o no pueda comprometerse a las prisas y exigencias del anterior. La posibilidad de hacer los cursos por tu cuenta te permite centrarte en aquellos temas que más te interesan.

CCN-CERT – Seguridad de las Tecnologías de la Información y las Comunicaciones

El Centro Criptológico Nacional es un organismo que siguiendo los modelos de Alemania y Francia, es dependiente del Centro Nacional de Inteligencia (desde el comienzo de la nueva legislatura, adscrito al Ministerio de Presidencia). Sus labores se desempeñan en el marco del criptoanálisis, en cualquiera que sea sus formas (manuales, por medios electrónicos o criptofonía), así como en la realización de investigaciones tecnológico-criptográficas y, seguramente lo más importante, formar al personal especializado en criptología. Dentro del CCN se pueden encontrar dos áreas principales de trabajo:

  • El Organismo de Certificación (OC) del Esquema Nacional de Evaluación y Certificación de la Seguridad de las Tecnologías de Información (ENECSTI).
  • El Centro Criptológico Nacional Computer Emergency Response Team (CCN-CERT).

Es el segundo de ellos el que, en un boletín permanente, nos mantiene al tanto del nivel de alerta tecnológica en nuestro país que, por costumbre se encuentra en un nivel 3 sobre 5 de forma continuada. El caso es que también se encarga de formar al personal en temas relacionados con la criptografía y la gestión de riesgos. Por ello, organiza diversos seminarios presenciales y cursos, algunos de ellos online, para concienciar al trabajador de la administración.

Ventajas:

  • Material en diversos formatos con audio y vídeo así como documentación en .pdf.
  • Lecciones autoexplicativas con sistema de autoevaluación al final de cada lección y al final del curso.
  • Certificado de finalización.
  • En castellano.

Pegas:

  • Acceso privado para miembros y personal de la administración.

Recomendado para:

Principalmente orientado a personal procedente de la administración, es un buen curso introductorio para prevenir al trabajador de los riesgos potenciales a los que se tiene que enfrentar diariamente y para asentar unas buenas bases prácticas en materia de seguridad preventiva. Se puede completar dedicándole unos 15/20 minutos al día durante unas 3 semanas.

Comunitat Valenciana – CSIRT-CV

Adicionalmente, existen otros organismos que impulsan también campañas de concienciación gratuitas en la red. Uno de ellos es el CSIRT-CV (Centre de Seguretat TIC de la Comunitat Valenciana) que consta de una gran variedad de minicursos (de menos de una hora de duración) y cursos sobre aspectos relacionados con la seguridad, como la navegación segura, la seguridad en redes inalámbricas, una introducción a los diferentes tipos de malware, un curso sobre la LOPD, etc.

Ventajas:

  • Los materiales están en castellano (accesibles también en .pdf).
  • Dispone de un sistema de evaluación al final de cada curso.
  • Cursos y minicursos de corta duración.
  • Dispone de certificado de aprovechamiento.
  • Gran variedad de temas a nivel de usuario.

Pegas:

  • El usuario experto se puede quedar con ganas de más.

Recomendado para:

Apto para que cualquier tipo de usuario se haga una primera idea de los riesgos de seguridad en el campo de su interés. Buen punto de partida.

Bookmark and Share

Hace unas semanas hablábamos en Twitter de una ingeniosa campaña de las FFAA que armonizaba la vida del militar con la de una persona normal que se sacaba sus fotos, iba de fiesta, quedaba con sus compañeros de misión, etc. Como campaña de reclutamiento es ingeniosa  y creo que podría ser utilizada con idéntico o incluso mayor éxito en el ámbito unviersitario o formativo.

Lo cierto es que las herramientas de comunicación social se están expandiendo como la espuma en un mundo cada vez más conectado a la red. Es éste un campo abonado por la ciencia ficción y las teorías conspiratorias, en el que la  implantación forzosa de un Gran Hermano omnipresente y estandarte de la seguridad de la raza humana, terminaría por controlar la totalidad de la vida diaria de los ciudadanos del tercer milenio. Esto, que algunos conspiracionistas creyeron empezar a detectar con la implantación de las tarjetas crédito (que permitían trackear, a través del seguimiento de las transacciones bancarias, los movimientos de una persona) y que ha evolucionado a través de la obligatoriedad de identificar a los usuarios de los móviles, está evolucionando drásticamente hasta un punto de descontrol total de la información propia que circula por la red.

Y, sin embargo, lo mejor de todo, es que su implantación dista mucho de ser forzosa. La utilidad de las numerosas aplicaciones que nos sugieren locales de ocio, restaurantes o, sencillamente, nos indican dónde están nuestros amigos, están haciendo el trabajo sucio. Hoy día podemos y queremos usarlas porque obtenemos un beneficio directo: contactos, ofertas, descuentos o, sencillamente, diversión.

Pero esto es ya algo que no sólo afecta a los usuarios como entidades unipersonales, sino que también afecta a las grandes corporaciones. Como también hemos visto anteriormente, es posible localizar barcos, aviones y estaciones meteorológicas, somos capaces de viajar a sitios a los que nunca hemos estado y hacernos una idea bastante ajustada de qué rutas vamos a poder tomar o de cuál va a ser el entorno del hotel al que vamos. Esto es bueno, esto es útil y esto es el futuro.

El otro día, un compañero me preguntaba si era posible eliminar toda la información suya existente en la red. ¿Toda? Pues, aunque debería ser factible no lo es tanto. Los entresijos legales de leyes internacionales que se superponen unas a otras y que a menudo no están suficientemente actualizadas, hacen prácticamente imposible la desaparición total de la red. Recientemente, volvió a circular por  la red una noticia referente a la eliminación total de las fotos subidas a Facebook y otra que aseguraba que Twitter almacenaba por 18 meses los contactos de la agenda de aquellos usuarios que instalaban su aplicación para smartphones. No hay que perder de vista que el usuario que sube cualquier fotografía a la red social cede sus derechos a la propia compañía en el momento de subirla. Os recomiendo un antiguo artículo de Vicente Alfonso en Xatakafoto (su filosofía sigue vigente hoy en día) para haceros a la idea de las consecuencias.

Y esto ocurre con Facebook, pero… ¿cómo te aseguras de que la información que en su día hiciste pública y accesible por cualquiera no está ya disponible en la red en páginas como 123people o pipl.com? Si alguna vez has tenido el perfil abierto tu información es carne de robots que crawlean laboriosamente internet en busca de pepitas de información que convertir en oro y amortizar en cuanto sea posible.

La magia de todo esto es que la información la subimos nosotros voluntariamente. No nos fuerza nadie, nos avisan por todos los lados, pero en el momento de actualizar nuestro perfil, aceptamos a ciegas. Si existieran motivos para pensar en conspiranoia, nosotros somos sus más leales cómplices.

Bookmark and Share

Rootear jailbreakear un dispositivo consiste en conseguir privilegios de root o de superusuario para poder tener un control absoluto sobre la totalidad de los recursos del teléfono. Puede parecer, como de hecho es, una opción interesante para aquellos geeks que quieran tener acceso a determinadas utilidades del teléfono no habilitadas por defecto por el fabricante, ya que, por ejemplo, se podrán ejecutar aquellas aplicaciones de terceros que requieran acceso a privilegios de administrador. En este post de Spidercast se identifican algunas muy interesantes para guardar copias de respaldo o backups (Titanium Backup), eliminar gran parte de los anuncios que muchas aplicaciones gratuitas incluyen en ellas (AdFree) o acceder al control total sobre la seguridad de tu dispositivo que ofrece Avast! Mobile Security entre otras cosas.

Un teléfono (o una tablet) rooteado te permitirá sacarle el máximo partido a tu dispositivo haciendo uso de su superusuario, pero, aunque en los últimos tiempos se ha convertido casi en una moda, pocas guías te comentan que esa aumento de la manejabilidad tiene unos riesgos que, al menos, hay tener en cuenta. Un buen amigo, Borja Sanz, nos habló en sus clases de Seguridad en dispositivos móviles en MUSIDeusto acerca de ello y he de reconocer que me metió un poco el miedo en el cuerpo.

Y tiene razón: otorgar privilegios de administrador a cualquier aplicación supone que cualquiera de ellas podrá acceder a cualquier recurso del teléfono. Y es que así, se está eliminando el principal baluarte de la seguridad en dispositivos móviles: el sandboxing de privilegios para las aplicaciones. ¿Caéis en cuál es la primera pantalla que aparece en vuestro móvil cuando instaláis una nueva aplicación? Pues os sale algo parecido a esto en Android:

¿En verdad nos fijamos en todos en los permisos que damos a las diferentes aplicaciones que instalamos? Bien por desgana, por vagancia o por prisa, muchas veces tenemos la tentación de hacer lo que hacemos en nuestros PC al instalar nuevos programas: «Siguiente –> Siguiente –> Aceptar –> Siguiente –> Finalizar». Parafraseando a James Kendrick en un reciente artículo suyo: «App permissions: we are our worst enemy». Y es que una vez más, el usuario es el eslabón más débil de la cadena.

El caso es que esto se puede volver aún más conflictivo si tenemos nuestro dispositivo rooteado. De hecho, algunas de las pruebas de concepto de malware para sistemas operativos iOS se aprovechaban de que muchos usuarios rooteaban sus iPhones e iPads pero no cambiaban la contraseña por defecto de rootalpine. Su vector de infección era sencillo: buscar dispositivos rooteados en las proximidades y tratar de ganar acceso con esta contraseña por defecto. Podemos pensar que el número de dispositivos susceptibles de ser infectados no es muy relevante, pero si consideramos que se calcula que en torno al 10% de los dispositivos de Apple han sido jailbreakados y extrapolamos esa cifra al número total de smartphones (ya hay más líneas de teléfono móvil que personas en España) la percepción de la amenaza puede variar.

De cualquier forma, no todo iban a ser malas noticias. Tampoco tengo intención desde aquí de asustar por asustar pero sí que volvemos a insistir: tenemos que conocer las consecuencias de aquello en que nos metemos y tenemos que ser conscientes de que cualquier aplicación pueda acceder a las cookies de mi sesión de Twitter, Facebook, el navegador, el Market, etc., puede ser un problema. En este sentido, existen algunos frameworks que tratan de facilitar el análisis forense de malware para dispositivos móviles (en el caso de OSAF, para Android) que pueden facilitar y mucho la labor del analista de seguridad. Además, el usuario con su teléfono rooteado siempre puede utilizar sus superprivilegios para protegerse. Por ejemplo, empleando aplicaciones como el LBE Privacy Guard, que es una app a ejecutar como root que permite gestionar los permisos que se han ido dando a las diferentes aplicaciones, revocándolos y controlando quién hace qué en cada momento. Así podremos evitar dos cosas: 1) que aplicaciones determinadas hagan uso de permisos abusivos, como aquella linterna que requería para su ejecución acceso al GPS, comunicación WiFi, escribir en la SD y acceso a los mensajes y 2), controlar cada vez que una nueva app intente hacer uso de un determinado permiso. De cualquier manera, volvemos a lo de siempre: la concienciación vuelve a ser el mejor arma defensiva.

Bookmark and Share

Una de las principales y aparentes ventajas de internet para el usuario ocasional es la sensación de que puede ser quien quiera, presentarse como una persona que no es en un foro o disfrutar del anonimato constante en los comentarios desproporcionados de las noticias. Pero nada más lejos de la realidad. Lo mejor es ver esto con un ejemplo, y hoy, ya sabéis, domingo por la mañana hay un montón de medios que repasar: as.com, marca.com, nba.com (:)), elpais.com, abc.es, cadenaser.com, algún blog, Facebook, Twitter, etc. A continuación os dejo una captura de la red generada fruto de esta última sesión de navegación:

La captura la he tomado con una extensión en pruebas de Firefox: Collusion y que es descargable aquí. Se trata de una aplicación que rastrea el flujo de información de las cookies de unas páginas web a otras. Las cookies son unos pedacitos de información que las diferentes páginas web almacenan en el disco duro de los usuarios para identificar sesiones de comunicación. Su objetivo inicial no era otro que facilitar  la vida al usuario evitando que el usuario tenga que insertar su nombre y contraseña para cada página nueva del servidor que consulta. De hecho, originalmente, fueron pensadas como cesta de la compra virtual, en donde el usuario iba colocando los diferentes objetos que quería comprar para finalmente enviar una petición compleja al servidor con el listado del conjunto de productos a adquirir.

Sin embargo, esta información puede ser (y de hecho es) utilizada también para conocer los hábitos de navegación del usuario, al tenerle identificado continuamente y poder generar un completo perfil sobre el usuario. Por poner un ejemplo, en 2000, la Casa Blanca se vio envuelta en un escándalo al ser descubierto que se almacenaban las cookies de los visitantes de las páginas de campañas contra el consumo de drogas que posteriormente se conectaban a páginas relacionadas con la fabricación y/o distribución de éstas. De la misma manera, un activista por la privacidad, Daniel Brandt, descubrió que la CIA había estado almacenando cookies de navegación durante 10 años. La agencia terminó declarando que no habían sido creadas intencionadamente y dejó de utilizarlas.

Si nos fijamos en las empresas hacia las que se ha redirigido la información, la mayor parte son empresas de publicidad online como: http://atlassolutions.com/home («See your ROI in a new line with engagement mapping…»), http://www.weborama.fr/ («Weborama.fr propose un classement quotidien des meilleurs sites»), http://revsci.net/ («Audience Science is a global Digital Marketing technology company…»), http://doubleclick.net/ («DoubleClick es la base tecnológica de publicación y Gestión de anuncios para los compradores, creadores y vendedores de medios digitales del mundo»), http://smartadserver.com/ («Mobile Campaigns? It’s in the pocket»), http://2o7.net («…this domain is used by Adobe to place cookies, on behalf of its customers, on the computers of visitors to customers’ selected websites.»), http://cxsense.com («Our promises to online business: more revenue [...], more visitors [...], more control [...]») y así hasta más de una veintena de servicios en apenas unos minutos de navegación.

¿Recomendaciones? Lo suyo sería decir: «desactivar completamente la utilización de cookies» para evitar ser rastreado. Pero eso haría imposible una navegación normal por páginas de acceso habitual que las requieren y además te insisten en que las tienes que tener activadas en tu navegador. De cualquier manera, y aunque Collusion no bloquea la transmisión de cookies (sólo nos dice de a dónde va), sí que hay cosas que se pueden hacer. Por ejemplo, en el tab de privacidad de las preferencias de Firefox se puede activar la casilla de «Rastreo: decir a los sitios web que no quiero ser rastreado» activar el «Modo permanente de navegación privada» (o el modo «de incógnito» de Google Chrome), especialmente si estamos haciendo uso de ordenadores públicos o si se trata de un PC al que tendrán acceso otras personas. De esta manera, nos aseguraremos de que al cerrar el navegador se eliminarán con él las cookies almacenadas correspondientes a nuestra sesión. Otro día hablamos de aplicaciones como Tor: para aquellas navegaciones que querramos hacer más anónimas aún.

Bookmark and Share