Hacking e ingeniería social con un 70% de éxito

Introducción

Imagina que es una hermosa mañana de sábado y que toda tu base de datos de clientes acaba de filtrarse. Pesadilla enorme (y no solo por el GDPR), ¿verdad? E imagina que fue gracias a un simple correo electrónico y 2 clics de uno de los miembros de tu equipo.

Durante los últimos años, pude acceder a las cuentas de las personas en Facebook, LastPass, Google, Slack y muchos más. E incluso hasta el día de hoy, todavía me da miedo ver lo fácil que es.

Durante los últimos dos años, he estado probando a mis colegas para ver cómo se encuentran cuando se enfrentan a ataques de phishing reales, diferentes tipos de ingeniería social, dispositivos USB maliciosos lanzados a la calle y muchos otros ataques que posiblemente puedas imaginar.

Es algo completamente diferente cuando ves un bonito video ilustrado sobre phishing y diferentes peligros y cuándo te sucede directamente. Estoy tratando de crear conciencia sobre las amenazas del mundo de hoy y me gustaría compartir un par de historias contigo para ayudarte también.

Para ser honesto, siempre estuve interesado en el hacking y la ingeniería social, pero simplemente no quería terminar en la cárcel. Romper un sistema que alguien diseñó o explotar vulnerabilidades humanas es algo que me fascina. Por eso empecé a experimentar con mis colegas: quería ver cómo nos está yendo en términos de seguridad. Siempre trato de actuar como un extraño y no uso ningún conocimiento personal sobre mis colegas para mi ventaja.

Nosotros (los geeks) a veces nos dejamos llevar por las soluciones tecnológicas más seguras (cifrando todo con los mejores algoritmos) en los que podemos pensar. Y es fácil olvidar que la forma más fácil de hackear una empresa es mediante la explotación de vulnerabilidades humanas.

Historias

Vayamos a algunas historias sucias. Solo un disclaimer, este no es un manual para hackear a nadie, me considero un hacker ético y quiero difundir el mensaje y ayudar a otras personas a estar más seguros.

Historia #1: ¿Cómo obtener acceso a la cuenta de Facebook de alguien?

Ese fue realmente un punto de partida para mí porque me preguntaba qué tan difícil sería conseguirlo. Así que creé un correo electrónico falso con el apellido de uno de mis colegas y el nombre de la empresa (algo así como [email protected]), y envié un correo electrónico que contenía un enlace a un video sobre “DJ’s de la actualidadd” que estaba en Facebook. No hay nada malo con eso, ¿verdad? Excepto que Facebook no era Facebook, sino mi dominio falso “faceboo-k.cz”, que pretendía ser Facebook y que solo estaba robando todos los detalles de inicio de sesión de mis colegas inocentes. Ni siquiera estaba usando HTTPS para tener ese “bloqueo verde” que estaba en Chrome en ese momento.

¿Puedes adivinar cuál fue la tasa de éxito de este experimento? ¡Más del 70% de mis colegas voluntariamente me dieron sus credenciales en su cuenta de Facebook! Ese fue un momento aterrador para mí y desde entonces he decidido que quiero ayudar a todos a comprender todas las señales de advertencia y no ser víctima de un ataque o al menos reducir esta posibilidad al mínimo.

Historia #2: En el siguiente nivel: obteniendo acceso a LastPass

Si nunca has oído hablar de LastPass (o 1Password), es un administrador de contraseñas simple que te permite tener una contraseña aleatoria diferente para cada servicio que uses.

Lo que, en mi opinión, es la mejor manera de administrar tus contraseñas porque no estás usando las mismas contraseñas para diferentes servicios. Y en el caso de que un servicio filtre tus datos en el futuro, no tienes que cambiar las contraseñas en todas partes porque tienes una contraseña diferente para cada servicio y cuenta en línea.

Una de las otras excelentes funciones de los administradores de contraseñas es la posibilidad de compartir de forma segura las contraseñas con tus colegas, simplemente deben aceptar esas solicitudes.

Imagina que un día, tu CEO comparte una contraseña contigo, haces clic en “Aceptar” y llegas a una página donde puedes ver su correo electrónico previamente completado. Que no te sorprenda porque así es como funciona LastPass. Siempre debes iniciar sesión para aceptar las credenciales o ver sus contraseñas.

Simplemente ingresa tu contraseña y estarás dentro de tu cuenta LastPass. Pero ¿y si no fuera tu cuenta? ¿Qué sucede si acabas de filtrar tu contraseña maestra que cifra y protege todas tus contraseñas, detalles de tarjetas de crédito, notas seguras, etc.? Estás en problemas si no tienes ningún otro mecanismo de seguridad (autenticación de 2 factores por ejemplo) porque el atacante tiene acceso a todas tus contraseñas y tarjetas de crédito ahora.

HTTPS no es seguridad infalible

Ese fue exactamente uno de mis siguientes experimentos. La pregunta era simple: ¿sería posible obtener esas contraseñas maestras de las personas? He utilizado una configuración bastante similar al ataque de Facebook, pero esta vez, solo traté de llevarlo al siguiente nivel. Fingía que soy el director ejecutivo de Twisto compartiendo nuevas credenciales y he rellenado individualmente un correo electrónico de cada colega para facilitar la “Experiencia del usuario”. Y finalmente comencé a usar HTTPS para tener ese símbolo de “seguro”.

El uso de una comunicación segura no significa necesariamente que te estés comunicando con el sitio web correcto, siempre debes prestar atención a la dirección URL (solo el Certificado de Validación Extendida con el nombre de la compañía puede validar la identidad del sitio).

¿Puedes adivinar qué sucedió? ¡Cayeron 10 personas! ¡10 personas! ¿Qué significaba eso?

  • 10 contraseñas maestras
  • 210 contraseñas para todos sus servicios en línea
  •  7 credenciales de banca por internet
  • 10 tarjetas de crédito

Supongo que no tengo que explicar la gravedad de esta fuga. Y esto no era nada sofisticado ni rebuscado, era solo una configuración simple.

Creo que los bancos están haciendo un buen trabajo en educación de hacking/phishing, pero creo que no es suficiente. Es completamente diferente ver un video animado sobre phishing y experimentar un ataque por tu cuenta. Me sentí súper contento cuando uno de mis colegas se me acercó después del ataque y me dijo:

“Wow, pensé que soy consciente de todas esas cosas. Obviamente, no lo estoy, ¡gracias por mostrarme eso! ”– Colega Anónimo

Con casi la misma configuración (a veces más o menos sofisticada), pude acceder a otros servicios como Slack, Google Drive, GitHub, Zendesk.

Cumplir los requisitos de contraseña no significa contraseñas seguras

Todos los hemos visto:

  •  Debe tener una longitud de 8 caracteres
  • 1 letra mayúscula
  • Esta debe incluir 1 número o símbolo especial

Con estas reglas, hay 3 026 000 000 000 000 000 combinaciones de contraseñas diferentes. ¿Eso significa que mi contraseña es segura? Depende.

¿Qué sucede si tu contraseña tiene un nombre o una palabra de tu predilección como “weapon” y le agregas una letra mayúscula? En el 90% de los casos, estará en el principio: “Weapon”. ¿Y qué pasa si le agregas un número? Nuevamente, en el 90% de los casos será al final, así que puede ser “Weapon90”. ¿Se parece a una contraseña que alguna vez usaste o que sigues usando? Si ese es el caso, probablemente deberías ir a cambiarlas. Si estás utilizando el mismo patrón (siguiendo las instrucciones anteriores), se reduce a 80 000 000 000 combinaciones. Y, por ejemplo, con una infraestructura de GPU’s alquilada en Amazon, esta no es una cantidad imposible de contraseñas para descifrar.

Si deseas comprobar si tu contraseña se filtró en Internet, te recomiendo que pruebes el servicio https://haveibeenpwned.com/. Puedes suscribirte y recibirás una actualización cuando cualquiera de tus contraseñas sea víctima de una fuga de datos. Me sorprendió la cantidad de veces que se filtraron mis datos personales.

Siempre debemos tener en cuenta que la seguridad de un sistema o una contraseña no lo es todo. En muchos casos, el enlace más débil es el usuario e incluso el método más básico puede ganarte.

Historia #3: Hackear una tienda en línea con $13 millones en ingresos y obtener acceso a todos los datos del cliente

Tengo un amigo que posee una tienda en línea con más $13 millones en ingresos, lo que los convierte en uno de los jugadores más grandes del mercado de Republica Checa. Y un día lo llamé y le pregunté si podía jugar con su tienda para ver si hay algunos problemas de seguridad. Estaba bastante convencido de que se toman la seguridad bastante en serio, pero quería intentarlo.

Un día después, tuve acceso de administrador a todo: datos personales de todos los clientes, pedidos, márgenes de ganancia, productos, stock, todo. Dejaré la historia completa para otro momento para entrar en detalles más técnicos, pero me tomó aproximadamente 3 horas hacer todo eso. Solo quería mencionar una historia que no es solo sobre phishing e ingeniería social, sino sobre un par de fallas que pueden introducirse en cualquier sistema. Pero más sobre eso lo hablaréen un post posterior.

Anatomía de un ataque

En todos los ataques sigo una rutina simple:

  1. Empezar por el final (debes definir cuál es tu objetivo y trabajar hacia atrás)
  2. Hacer un reconocimiento
  3. Selecciona las herramientas adecuadas
  4. Hacer el desarrollo + pruebas
  5. Ejecutar + aprender en vivo + iterar/actualizar

Esto también describe cómo cualquier desarrollo debería ocurrir en general. Estoy viendo los análisis y cuando veo que mis usuarios no están “convirtiendo”, trato de cambiar algo en la Experiencia del usuario para que sea más fácil y aprendo en vivo. Eso es algo que extraigo de mi producto y experiencia de marketing cuando intentamos aumentar las tasas de conversión, mejorar las nuevas funciones o intentar encontrar el mensaje de marketing que realmente conecta con nuestra audiencia.

En todos esos casos, siempre tengo la mejor experiencia de usuario que puedo tener en mente, pero de una manera oscura y maliciosa. Para mí, el mejor conjunto de habilidades es tecnología, experiencia de usuario y marketing combinados. Eso es algo que yo llamo la mejor mentalidad de Hacker.

Siempre es importante centrarse en tener la mejor experiencia de usuario cuando creamos nuevos productos o funciones. Sabemos que no somos perfectos, pero es importante hacer un mejor trabajo cada vez.

Uno de los trucos desagradables que he aprendido es mostrar siempre el mensaje “Lo sentimos, contraseña incorrecta” cuando el usuario ingresa su contraseña porque siempre está intentando “esas 5 contraseñas” que usa en todas partes.

Recuerda que tu atacante no tiene que ser un hacker sofisticado. Hoy en día, los hackers no son como los de las películas de hace veinte años: muchas pantallas negras con texto verde en algún lugar del sótano. Tu atacante puede ser solo un tipo normal sentado en Starbucks con su computadora portátil.

Lecciones aprendidas

Si hubiera 5 cosas que me gustaría que aprendieras de esta historia, serían estas:

El sentido común es tu amigo

Cuando hay algo sospechoso pasando o cuando algo extraño no encaja, por favor ten cuidado. La mayoría de las veces solo se trata del sentido común. ¿Por qué Facebook de repente querría tu contraseña si estuvieras conectado todo el tiempo? ¿Por qué tu colega comparte algo directamente contigo cuando no interactúas con frecuencia?

La vigilancia es tu mayor arma

Creo que es crucial apoyar la educación de tus colegas y amigos. Por favor, muéstrales qué puede pasar y cómo se ve en el mundo real. ¡Por favor ayúdalos!

Tienes que estar atento todo el tiempo, el atacante solo una vez

Lo malo es que, desde el punto de vista del atacante, por lo general, solo una persona que caíga podría ser suficiente para obtener todos los datos que necesita. Pero desde el punto de vista de la compañía, hay que tener cuidado y no fallar nunca. No puedes permitir ni un solo error.

Que te diviertas

Aprendí que es muy divertido crear nuevos vectores de ataques creativos y probarlos en el mundo real. Entonces, si tienes el consentimiento de tus colegas, lo recomiendo altamente. Si lo tomas en serio, contratar a una empresa de pruebas de penetración externa puede ser una buena idea.

Entregar experiencia de usuario al 100% (y usarlo siempre)

Eso es algo en lo que realmente creo. ¿Por qué el usuario debe hacer una cosa adicional que no tiene que hacer? Siempre intentamos tener esa mentalidad de “tasa de conversión del 100%” porque queremos ofrecer la experiencia de usuario más fluida posible.

Y recuerda que no se trata solo de código seguro, sino que se trata de personas. Si eres un experto, por favor ayúdalos.