UX y seguridad, en busca del equilibrio

Hace tiempo empecé a escribir este artículo y lo dejé en borrador, pero la siguiente lectura ha hecho que vuelva a retomarlo: How I Lost My $50,000 Twitter Username. Resumidamente, cuenta la historia de Naoki Hiroshima, un desarrollador que fue extorsionado para ceder una cuenta de twitter bastante extraña y valiosa: @N.

Twitter es una gran red social donde personas, marcas y organismos conviven. Desde que fue fundada en 2006, muchos nos hemos registrado. Como ocurre con los dominios web, los nombres de las cuentas están cotizados, bien por corresponder a una entidad real (nombres de ciudades, marcas...), por antiguedad o por ser "especiales". Dentro de esta última categoría podemos incluir la cuenta @N.

¿Cómo extorsionar a un desarrollador para ceda su cuenta @N? El "tesoro" que el cracker robó y con el que pudo extorsionar fue nada más y nada menos que la cuenta de GoDaddy de Naoki. ¿Cómo os sentiríais si de un momento a otro perdierais el control de todos los servidores/dominios que llevan a vuestros proyectos?

Easy

Una taza de café

Una persona y un teléfono

Una de las partes más interesantes de esta historia es el ofrecimiento del cracker a contar como había conseguido las credenciales de acceso a la cuenta de GoDaddy. Esto demuestra lo orgulloso que se sentía este señor/señora y a nosotros nos ayuda a ver que la seguridad es un factor importante.

Para obtener las credenciales, primero llamó a PayPal, con previo conocimiento del email de Naoki. Con esa llamada y algunos trucos de ingeniería social, obtuvo los 4 últimos dígitos de la tarjeta de crédito de este y con ellos consiguió una nueva contraseña para la cuenta de GoDaddy. La política de recuperación de GoDaddy exige que sean los últimos 6 dígitos y no 4, aunque solo hizo falta un poco de persistencia.

Así, con dos llamadas y si moverse de su silla, una única persona pudo hacerse con el control de una cuenta de hosting.

UX y seguridad

La seguridad informática es un tema que afecta directamente al usuario. La pérdida de control y la fuga de datos debe de ser una prioridad a la hora de tratar con estos. Siempre que ofrecemos una funcionalidad que implica directamente datos de usuario debemos de pensar en la balanza: funcionalidad y seguridad.

Existen infinidad de situaciones y siempre es complejo decantarse por una o por otra. Personalmente, os comparto mi manera de plantear una nueva funcionalidad para una aplicación:

  • Planteo los posibles problemas de seguridad que puede causar dicha funcionalidad: pérdida o robo de datos, uso indebido de credenciales, sobrecarga en el servidor...
  • Marco cuales de de los problemas soy capaz de asumir. Es decir, qué problemas dada mi experiencia como programador soy capaz de corregir y evitar que se produzcan.
  • Esto suelo tenerlo de antemano, pero ahora toca escribir las ventajas que supone dicha funcionalidad para las personas que la van a utilizar: facilitar una tarea, introducir un concepto nuevo...
  • Una vez que tenemos los "pros y los contras", valoro si introduzco la funcionalidad. Mi único consejo en este momento es que os pongáis en la piel de la persona que sufre el problema y como os tomaríais el que accedieran a vuestra cuenta, no pudiérais acceder a la aplicación porque el servidor está caído...

Por ejemplo, podemos ofrecer a los usuarios el registro con Twitter en nuestra web con el fin de ofrecerle un botón para tuitear directamente a su cuenta. Así ofrecemos la facilidad y comodidad de tuitear directamente, pero en nuestra mano queda el hecho de proteger ese acceso para evitar publicaciones no deseadas.

¿Por qué yo?

Personas en un autobús, por Matthew Wiebe

Hay varias razones para "atacar" una aplicación, y en Internet somos muchos (Fotografía por Matthew Wiebe)

Una idea muy recurrente en estos casos es preguntarse: ¿pero quién va a querer atacarme a mí?. Hay parte de razón en esta afirmación pues si tenemos un proyecto pequeño, en principio, no debe de ser el objetivo de ciberdelincuentes que buscan beneficios económicos más que molestar.

El problema viene de la costumbre y de cubrirnos en esta pregunta para todos nuestros proyectos. Si por ejemplo extrapolamos esta pregunta a una empresa que tiene una presencia y una marca que mantener, un problema de seguridad puede conllevar multas y lo que es peor, un escándalo que afecta a la propia imagen y reputación de esta.

Debemos de pensar que la seguridad es como un fantasma, cuando aparece un problema asusta a todos. Es un factor importante, pero se vuelve importantísimo cuando se pierde.

In extremis no

En temas de seguridad casi siempre tenemos los dos extremos: personas que se preocupan de cada detalle de seguridad o totalmente despreocupadas de ello.

Lo importante es no caer en los extremos. No tenemos que asegurar cada pequeño detalle de nuestras aplicaciones hasta el punto de no dejarla avanzar, pero debemos de ser conscientes de qué hacemos, qué implicación tiene y si compensa.

Aceptar nuestros términos de uso es sencillo y nos cubren las espaldas, pero por un problema de seguridad podemos perder nuestro valor más preciado, nuestros usuarios.