Mostrando entradas con la etiqueta SMTP. Mostrar todas las entradas
Mostrando entradas con la etiqueta SMTP. Mostrar todas las entradas

jueves, marzo 24, 2022

La Unidad: Los drafts de e-mails para comunicación de terroristas

El pasado 18 de Marzo se estrenó la Temporada 2 de La Unidad, una serie que han hecho los compañeros de Movistar+ junto con Buendía Producciones, y donde los protagonistas son una unidad antiterrorista asentada en Madrid, pero con visión internacional. La primera temporada me encantó, así que desde que salió la segunda temporada la tenía apuntada para verla, y hoy quería comentar con vosotros un detalle en un capítulo que me encantó.

Figura 1: La Unidad: Los drafts de e-mails para comunicación de terroristas

Y es que en el capítulo tercero de la segunda temporada de La Unidad, hay un momento en el que un miembro del comando terrorista de dos que están actuando como lobos solitarios, decide comunicarse con la cabeza de la organización que está planeando la operación. En este momento se ve que abre un correo electrónico no convencional, llamado MailSOME.

Figura 2: Correo MAILSOME usado por el terrorista de La Unidad

No usan Gmail, Hotmail o ninguno otro conocido. Y en ese momento volvió a mi cabeza el manual con recomendaciones de seguridad para comandos de ISIS que publicó la revista Wired, donde explicaba qué medidas debían tomar los comandos para evitar ser detectados. 

Figura 3: Servicio ProtonMail recomendado en el manual de ISIS

Lo de utilizar un servicio de correo no convencional - y menos de una empresa tecnológica de USA - parece muy evidente para evitar cualquier espionaje que se produzca en virtud de lo que debería preocupar a un personaje como el que interpreta la actriz en ese momento, ya que cuando vimos las filtraciones de Edward Snowden parece que entre el Patriot Act y el programa PRISM, "podría ser" que accedieran a él

Figura 4: La lista de empresas tecnológicas sujetas a PRISM

Pero no solo importa el servidor, sino el trafico del mismo mediante los protocolos de comunicación entre diferentes servidores de correo electrónico, ya que el uso de SMTP con MTLS el no uso de firma digital, y las filtraciones donde se veía el program Muscular y cómo la NSA planteaba saltarse las protecciones de Google para acceder a los mensajes..

Figura 5: Explicación de Muscular de la NSA para espiar Gmail

Así que, para evitar que los servicios de seguridad - ya sean NSA - o los servicios de ciberinteligencia de otro país, que en el caso de la serie de La Unidad es España, el personaje que hace de terrorista decide utilizar un truco que es un viejo conocido en la época en que los terroristas se conectaban utilizando los famosos cibercafés, que no es nada más que utilizar un Draft.

Figura 6: En la pantalla de la terrorista de La Unidad
se puede ver que es un Draft

El mecanismo es sencillo, dos personas acceden a la misma cuenta de un WebMail utilizando las mismas credenciales, pero desde dos sitios distintos, y como el servidor va guardando en la carpeta de borradores el mensaje antes de ser enviado, se puede ir consultando ese mensaje de forma distribuida y ver lo que cada uno va agregando.

Figura 7: El draft se actualiza con lo que escribe
otro usuario del correo electrónico en remoto.

Esto, lo puedes probar tú de forma muy sencilla con dos ventanas de tu cliente de Gmail, por ejemplo, y escribiendo un correo electrónico nuevo que no envías nunca a nadie, en la otra pestaña, en la parte de Drafts tendrás una copia con las actualizaciones. Y puedes escribir en las dos ventanas, sobre el mismo correo, porque al final se sincroniza en las dos vistas del mismo documento en el servidor. 

Figura 8: Lo puedes probar tú en dos navegadores con Gmail

Supongo que para alguien que está viendo este capítulo en su casa, y ve esta escena, el resultado es simplemente "que se ha conectado con su jefe por Internet", pero mí, que conocía esta historia bien, me ha resultado un detalle de calidad que me ha gustado. Al final, esta serie toca un tema muy delicado, donde la tecnología ha sido y es clave, por lo que los detalles de cómo se usan las herramientas tecnológicas en la trama marca la diferencia de calidad. Por cierto, más que recomendada por mi parte la serie.

¡Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)  


viernes, octubre 25, 2019

De CTSS MAIL del MIT y el primer e-mail de la historia a MyPublicInbox, pasando por Bill Gates (Parte 2 de 2) #MyPublicInbox #email

En la primera parte de este artículo nos hemos centrado en los orígenes del correo electrónico. Como contaba Chema Alonso en su artículo de "¡El e-mail ha muerto!¡Larga vida al e-mail!", este sistema nació como una necesidad en los sistemas de Tiempo-Compartido que se hizo fundamental en el nacimiento de ARPANET para comunicarse remotamente, lo que llevó a la creación de CTSS Mail en el MIT, y luego... muchos problemas fueron llegando, desde el SPAM, del cuál hablamos en nuestro libro de "Microhistorias: Anécdotas y Curiosidades de la historia de la informática (y los hackers)", hasta la distribución de malware, los ataques de suplantación de remitente, el Phishing, y los correos no relevantes.

Figura 8: De CTSS MAIL del MIT y el primer e-mail de la historia
a MyPublicInbox, pasando por Bill Gates (Parte 2 de 2)

De todo eso hablan las segunda, tercer y cuarta parte del artículo que os hemos citado antes de Chema Alonso, que le llevó a pensar en la creación de MyPublicInbox, el servicio de uso de correo electrónico para comunicaciones no solicitadas responsables, que muchos estamos empezando a adoptar como forma de comunicación externa, como los ejemplos que se pusieron en las tres primeras entregas:

- MyPublicInbox: Un proyecto para el día internacional del correo
- MyPublicInbox: Para que contactes con ellos si eres fan como yo
- MyPublicInbox: Unos perfiles públicos de artistas en el mundo del cómic

Pero no es una idea totalmente nueva. Que el correo tal y como estaba no funciona para algunas soluciones es algo que ya muchos otros habían pensado. Igual que la web entró en serio problema donde son los datos y nuestra privacidad la que ha financiado los servicios "gratuitos", el correo electrónico ha sido "pagado" con nuestro tiempo aguantando los correos no deseados, las herramientas de filtrado y eliminación de malware, y un coste en eficacia de este medio de comunicación tan maravilloso, y Bill Gates ya lo dijo hace años.

Para responder a esta complicada pregunta, vamos a utilizar como base al gran Bill Gates, el cual realizó algunas predicciones bastante acertadas en el libro The Road Ahead que salió al mercado el 24 de noviembre de 1995. Bill Gates siempre ha sido un tipo curioso, con ganas de transformar cosas, y cambiar el mundo con la tecnología. Te recomendamos encarecidamente que veas el documental de Inside Bill Gate's Brain que hay en Netflix.


Figura 9: Decoding Bill Gates en Netflix

En ese año 1995 estaba empezando a despegar Internet tal y como la conocemos hoy pero aún no era tan popular. Desde la televisión a la carta hasta incluso la aparición de dispositivos conectados para llevar encima el cual llamó WalletPC, encontramos algunas muy significativas relativas al e-mail.

Bill Gates predicciones sobre el futuro del e-mail

Una de las necesidades que indicaba era el cambio a correos electrónicos multimedia, capaces de incluir todo tipo de objetos en los mismos. No se olvida tampoco de la seguridad, donde hace también hincapié en todos los problemas de posible interceptación de correos electrónicos e incluso, de la posible creación de “backdoors” para acceder a ellos por parte de los gobiernos.

Figura 10: "The Road Ahead" escrito por Bill Gates en 1995

Centrándonos en el correo electrónico, Bill Gates habla de un problema que ya le afectaba por aquella época pero que ahora es mucho mayor debido a la gran conectividad que tenemos. En concreto habla de un concepto muy interesante, los buzones públicos y los semipúblicos. Parece ser que su buzón de e-mail apareció en un libro llamado “Email Addresses of the Rich and Famous”.

Pero, además, en una entrevista con el New York Times, publicaron sin darse cuenta también ese correo. De inmediato, comenzó a recibir miles y miles de e-mails procedentes de todo tipo de personas. No hay que mencionar que estos correos iban desde simples peticiones de dinero, amenazas hasta insultos pasando por algunos que sí eran importantes pero que posiblemente, se perdieron para siempre debido a la gran cantidad de mensajes recibidos. Incluso lo metieron dentro de una lista de correo sobre las ballenas.

No es de extrañar que Microsoft pusiera el foco en el Spam, y al final acabara comprando a Sybary la compañía líder en soluciones anti-spam para entornos profesionales en el año 2005, justo antes de que saliera a Bolsa y después de haber demostrado que sus ratios de detección y bloqueo de Spam eran lo mejor. Microsoft no quería que el SPAM frenara la incursión de su servidor Microsoft Exchange en el mundo empresarial por culpa de este problema "inherente" a la gratuicidad del e-mail.

Volviendo al libro de "The Road Ahead", Bill Gates también hace una reflexión muy interesante sobre cómo acceder a consultas de profesionales de cualquier campo, ya sean artistas, ingenieros o científicos. Muchos de ellos tienen que lidiar a diario con el mismo problema que Bill Gates mencionaba debido a la gran saturación de correos recibidos. Relaciona la calidad de la respuesta obtenida siempre y cuando la petición se reciba dentro de un orden y unas condiciones concretas, alejadas de todos los problemas que antes hemos mencionado.


Alguien podría pensar que al problema que planteaba Bill Gates los foros de discusión podrían ser una solución, pero nada más lejos de la realidad. Por desgracia la mayoría suelen estar llenos de preguntas sin sentido, de trolls o todo tipo de contenido que posiblemente no tenga nada que ver con el tema que se está discutiendo. Son pocos los foros que han conseguido mantener un nivel de calidad, especialización y educación alto hoy en día para poder convertirse en un lugar en el que debatir sobre temas profesionales.

Ya que hemos mencionado a los trolls, vamos a contaros una de esas anécdotas que tanto nos gustan. La primera “red social” aunque era realmente la primera BBS (Bulletin Board System) se llamaba Community Memory y se instaló en la Universidad de Berkeley en 1973. Era simplemente un terminal en el cual podías publicar un mensaje en alguno de los canales que ya existían (compra, alquiler, etcétera). De hecho, curiosamente utilizaba como terminal el mismo que antes hemos mencionado, un teletipo Model 33.

Figura 12: Terminal original con el teletipo Model 33
de Community Memory. Primera red social.

Mientras la mayoría de los usuarios se dedicaba simplemente a escribir sobre algunos de los temas que les interesaba, un tal Benway o Dr. Benway se dedicaba a poner comentarios fuera de lugar por el resto de mensajes con frases famosas de escritores o incluso con poemas. Había nacido la primera personalidad de Internet (todo el mundo le conocía, pero no sabían su identidad real) y posiblemente el primer troll de una red o comunidad informática. Si quieres más información sobre Community Memory y Benway, lo explicamos en detalle en nuestro libro de Microhistorias ;)

Todos estos problemas están perfectamente descritos en el libro de Bill Gates, pero además, ofrece una posible solución, y no es más dar valor a los correos para obtener una respuesta adecuada. En la aproximación que realiza se basa en monetizar los correos enviados por empresas a los usuarios. Es decir, si accedes a que te mande publicidad, la empresa te pagará una cantidad por cada correo recibido. De esta forma, además de elegir la publicidad que te interesa, los correos adquieren un peso y un valor para el usuario final, así como para la empresa. Es decir, tú decides cuanto dinero es necesario por tu tiempo, que es principal concepto de MyPublicInbox, la moneda virtual Tempos, y además decides si el contenido es valioso o no.

Figura 13: Sistema de Tempos para enviar mensajes a perfiles públicos en MyPublicInbox

MyPublicInBox, el producto que 0xWord ha presentado el día 9 de octubre (por cierto, el día internacional del correo electrónico), da una vuelta de tuerca a este concepto. No vamos a explicar de nuevo su funcionamiento (echa un vistazo al artículo original aquí) pero es fácil ver que está perfectamente conectado con las ideas de Bill Gates y las soluciones que propuso a algunos de sus problemas.

Por lo tanto, en MyPublicInBox existen perfiles públicos de todo tipo de personalidades, y para contactar con ellos tiene es necesario hacerlo con una moneda virtual llamada Tempos. Esta moneda es una forma de dar valor al tiempo empleado por la persona que quieres contactar, el cual por cierto, tiene un coste bastante bajo comparado con la información que puedes obtener en respuesta y además se pueden ofrecer a una causa social.

Figura 14: Perfil de Chema Alons en MyPublicInbox

A cambio, recibes información directa, completa y sobre todo valiosa de la personalidad con la que quieres contactar. Lo que más vale de un mensaje no es enviarlo, sino el tiempo y la calidad de la persona que te da la respuesta. La persona pública que está detrás de este buzón no tiene los problemas, como los que bien indicaba Bill Gates, de discriminar entre correos basura o correos importantes gracias al valor que se le asigna a cada e-mail.

Esto hace que la persona con perfil público involucrada ponga interés en la contestación dando una respuesta de calidad y ofreciendo un contacto muy personal entre los individuos conectados. Por otro lado, ofrece la posibilidad de contactar con personas, las cuales, debido a su fama o popularidad, no tendrías otra manera de hacerlo de forma respetuosa. Si ellos han creado este canal para tener un perfil público es de recibo utilizarlo como canal de contacto si no lo conoces personalmente.

Figura: Buzón Público de Cyberhades Blog en MyPublicInbox

Una gran idea que como habéis podido comprobar, soluciona muchos de los problemas del correo electrónico que incluso Bill Gates tuvo la gran visión de anticiparlos además de crear una gran red comunicaciones con personalidades de prácticamente todos los campos de la cultura, la ciencia y el espectáculo. Nosotros hemos creado nuestros buzones personales para solventar las dudas técnicas que tengáis, y el Public Inbox de nuestro propio blog Cybehades para lo que queráis proponernos.

Happy Hacking Hackers!!!!

Autores:

Fran Ramírez, (@cyberhadesblog) es investigador de seguridad y miembro del equipo de Ideas Locas en CDO en Telefónica, co-autor del libro "Microhistorias: Anécdotas y Curiosidades de la historia de la informática (y los hackers)", del libro "Docker: SecDevOps", también de "Machine Learning aplicado a la Ciberseguridad” además del blog CyberHades. Puedes contactar con Fran Ramirez en MyPublicInbox.

Rafael Troncoso (@tuxotron) es Senior Software Engineer en SAP Concur, co-autor del libro "Microhistorias: Anécdotas y Curiosidades de la historia de la informática (y los hackers)", del libro "Docker: SecDevOps" además del blog CyberHades. Puedes contactar con Rafael Troncoso en MyPublicInbox.

jueves, octubre 24, 2019

De CTSS MAIL del MIT y el primer e-mail de la historia a MyPublicInbox, pasando por Bill Gates (Parte 1 de 2) #MyPublicInbox #email

Chema Alonso ha escrito una serie de artículos donde describe con gran detalle la evolución del e-mail hasta nuestros días, y nosotros, como nos gusta mucho esto de la historia de la informática :) vamos a complementarlos con algunas anécdotas y hechos - además de reflexiones, en concreto de una leyenda de la historia de la tecnología, como es el gran Bill Gates - relacionados con la invención de este fantástico servicio tan popular hoy día, que aún sufre mutaciones como la de MyPublicInbox.

Figura 1: De CTSS MAIL del MIT y el primer e-mail de la historia
a MyPublicInbox, pasando por Bill Gates (Parte 1 de 2)

En nuestro libro de MicroHistorias: Anécdotas y curiosidades de la historia de la informática (y los hackers) también contamos el nacimiento del correo electrónico además del SPAM, dos términos que por cierto, nacieron casi al mismo tiempo. Vamos a empezar diciendo que no es sencillo definir quién o cuando se inventó el email tal y como lo entendemos hoy día. De hecho, el correo electrónico es mucho más viejo que Internet o incluso ARPANET, la red de todas las redes.

Figura 2: Libro de Microhistorias

De todas formas, parece que los primeros conceptos de mensajería empiezan a aparecer a finales de los años 50 y comienzo de los 60, justo en el nacimiento de un nuevo concepto en computación realmente revolucionario llamado Time-Sharing (o Tiempo Compartido). Esta nueva técnica permitía que varios usuarios pudieran trabajar en un mismo ordenador (mainframe) a la vez, utilizando para ello un usuario específico para cada uno.

Figura 3: Ken Thompson (sentado) y Dennis Ritchie (de pie), creadores del sistema operativo Unix,
trabajando en un sistema Time-Sharing con un ordenador PDP-11 donde se ven dos terminales de trabajo.

Para conseguir hacer factible el Time-Sharing, sería necesario añadir otros conceptos revolucionarios como multiprogramación y multitarea, términos muy familiares hoy día pero extremadamente complicados de implementar por aquella época, y más aún en aquellos ordenadores (recordemos que aún el concepto de microprocesador no existía, de hecho aún no se había inventado). Gracias a Time-Sharing, los caros y potentes ordenadores se podían compartir para que usuarios de diferentes perfiles (informáticos, científicos, alumnos, etcétera) pudieran ejecutar cualquier tipo de tarea específica relacionada con su trabajo o investigación.

La persona detrás de esta revolución era nada más y nada menos que John McCarthy, uno de los padres de la Inteligencia Artificial creador del lenguaje ALGOL y Lisp entre otros muchos logros. En 1959 utilizó un IBM 704 (posiblemente el primer ordenador fabricado en masa) y luego un IBM 709 (las únicas máquinas de la época capaces de realizar multitarea y multiprogramación) para implementar un sistema real de Time-Sharing. Finalmente, en 1961 se presenta con el nombre de CTSS (Compatible Time-Sharing System). Como hemos comentado antes, estos sistemas requerían de una cuenta de usuario y un espacio reservado en la memoria.

Figura 4: Aspecto de uno de los paneles de programación de un IBM 709.

Pronto apareció la necesidad de comunicación entre los diferentes usuarios que compartían el sistema. Estos siempre tenían la posibilidad de hablar en tiempo real utilizando un comando tipo “talk”, pero claro, el destinatario debía de estar online y trabajando en una terminal. Había que buscar una solución que permitiera comunicarse incluso cuando el usuarios destinatario no estuviera conectado.

En el MIT crearon un simple programa llamado MAIL, basado en unas notas tomadas allá por el año 1964, conocida como la Programming Staff Note 39, el cual permitía el envío de mensajes electrónicos entre los usuarios del sistema. Este comando se conocía como el CTSS MAIL, cuyo código fuente se encuentra en este enlace. Pero claro, falta un componente esencial para considerar un correo electrónico como tal: la red.

Figura 5: Parte del código fuente de CTSS MAIL

En paralelo al todo el desarrollo de los primeros pilares de lo que posteriormente se convertiría en el e-mail, el 21 de noviembre de 1969 se crea el primer enlace de la red ARPANET, espina dorsal de la actual Internet. En 1971 ya existían 24 ordenadores conectados, pertenecientes sobre todo a universidades y centros de investigación, de costa a costa de los Estados Unidos. Ray Tomlinson era un programador que trabajaba para la empresa BBN (Bolt, Beranek and Newman) la cual obtuvo un contrato de trabajo con ARPANET, para crear precisamente un programa de comunicaciones entre los diferentes usuarios de los ordenadores que componían dicha red.

Para ello utilizó como base un programa llamado SDNMAIL, el cual estaba diseñado en principio sólo para enviar y recibir mensajes entre usuarios de un mismo sistema operativo basado en Time-Sharing llamado TENEX. Ray y su equipo lo modificaron para que también funcionara sobre la red de comunicaciones de ARPANET, la cual por cierto, estaba compuesta por nodos implementados en ordenadores PDP-10. Además, también implementaron una macro que llamarían READMAIL justo para realizar precisamente ese trabajo, leer los correos electrónicos.

Figura 6: Ray Tomlinson

Ray había trabajado un protocolo de transferencia de ficheros llamado CPYNE (precursor del futuro FTP del cual hablaremos más adelante) el cual permitía la lectura y escritura de ficheros en sistemas remotos. Mientras Ray trabajaba en SNDMAIL, se le ocurrió la idea de integrar la funcionalidad CPYNET con la de SNDMAIL para poder enviar mensajes entre distintos ordenadores ubicados en diferentes puntos de la red. Había creado sin saberlo aún, el primer (con muchos matices) MTA o Message Transfer Agent, que no es más que el software que se encarga de transferir los correos electrónicos entre ordenadores (siendo este la semilla del futuro SMTP).

Para poder identificar a los diferentes usuarios locales de cada servidor remoto, a Ray se le ocurrió un formato que primero constaba del nombre del usuario, seguido del nombre del host y ambos separados por el famoso símbolo “@” (arroba) ¿verdad que os suena?. La elección de este símbolo era importante ya que tenía que ser uno que nunca pudiera ser parte del nombre de usuario o del host. Además, Ray utilizaba para trabajar un teletipo Model 33 el cual tenía este símbolo que no se utilizaba específicamente para ninguna función concreta. Además, significa “at” (puede ser “en” o “a) lo que le añade sentido a la elección. Por lo tanto, el primer buzón de correo de la historia fue:
tomlinson@bbn-tenexa
El contenido del primer e-mail de la historia no tiene ninguna frase pensada ni de especial importancia. De hecho, el texto de este primer corre electrónico tenía la siguiente cadena de caracteres:

“QWERTYUIOP”. 

Sí, como habéis podido adivinar eran los caracteres seguidos desde la Q hasta la P, simplemente eso. Pronto este sistema de comunicaciones entre los diferentes usuarios de ARPANET se volvió realmente popular, algo que ha durado hasta hoy día. Como curiosidad, el e-mail fue enviado a dos ordenadores que estaban literalmente pegados en la misma habitación pero conectados a Internet. Podéis verlos en todo su esplendor en la Figura 7..

Figura 7: Los dos ordenadores PDP-10 (al fondo izquierda y frente derecha)
desde los cuales se envió y recibió el primer el e-mail de la historia.

Debido a esta gran popularidad, pronto se fueron introduciendo mejoras a este programa de comunicaciones. La versión inicial de SNDMSG era muy primitiva y no podía por ejemplo enviar a varios destinatarios a la vez y no gestionaba correctamente los errores de entrega (simplemente se perdían si el host destinatario no estaba encendido). Ya en 1975 John Vittal desarrolló un programa específico para organizar los correos electrónicos recibidos y Larry Roberts inventó la organización de los correos por carpetas. En dos años, el 75% del tráfico de ARPANET era el correo electrónico.

Una de las modificaciones más importantes fue cambiar el protocolo CPYNET por otro más estándar, el FTP. Luego se propuso también que los emails deberían de ser simplemente caracteres ASCII sin binarios pero no fue hasta 1972 cuando todas las partes interesadas, desde el MIT hasta el mismo Ray Tomlinson, hicieron una completa revisión a todo el sistema de correo electrónico con nuevos comandos FTP para gestionarlo. Muchos cambios tuvieron lugar durante este periodo (en este fantástico artículo esta todo al detalle) hasta 1980, cuando los protocolos IP empezaron a establecerse sustituyendo a todos los de ARPANET. Es en este momento cuando aparece MTP (Mail Transfer Protocol) el cual evolucionó hasta el actual SMTP (Simple Mail Transfer Protocol).

Continúa en la segunda parte de este artículo: De CTTS Mail del MIT a MyPublicInbox pasando por Bill Gates (Parte 2 de 2)

Autores:

Fran Ramírez, (@cyberhadesblog) es investigador de seguridad y miembro del equipo de Ideas Locas en CDO en Telefónica, co-autor del libro "Microhistorias: Anécdotas y Curiosidades de la historia de la informática (y los hackers)", del libro "Docker: SecDevOps", también de "Machine Learning aplicado a la Ciberseguridad” además del blog CyberHades. Puedes contactar con Fran Ramirez en MyPublicInbox.

Rafael Troncoso (@tuxotron) es Senior Software Engineer en SAP Concur, co-autor del libro "Microhistorias: Anécdotas y Curiosidades de la historia de la informática (y los hackers)", del libro "Docker: SecDevOps" además del blog CyberHades. Puedes contactar con Rafael Troncoso en MyPublicInbox.

domingo, septiembre 22, 2019

El e-mail ha muerto. ¡Larga vida al e-mail! (Parte 1 de 4)

El correo electrónico, o e-mail, es un caos maravilloso. Esa es una de las frases que solía utilizar yo cuando hablaba de cómo funcionaba y cómo había evolucionado, durante las charlas que di en el año 2009 con mi querida Informática 64 en la charla "Hay una carta para ti". Un caos maravilloso que usamos a diario, pero que tiene muchas lagunas de funcionamiento y apaños, de los que os voy a comenzar a hablar por aquí.

Figura 1: El e-mail ha muerto. ¡Larga vida al e-mail! (Parte 1 de 4)

En este artículo, que he dividido en cuatro partes, voy a intentar hacer un recorrido didáctico y somero, sobre todas las vicisitudes que ha ido pasando, y las cosas que hemos ido construyendo sobre él y alrededor de él para terminar con alguna idea nueva. Espero que os guste, y sobre todo que os entretenga la lectura.

La necesidad de comunicación

Comunicarse es una necesidad humana. Lo utilizamos para todo. Para planificar la caza de un animal  que diera sustento a toda la banda de Homo Sapiens en tiempos de nuestra etapa de cazadores-recolectores, o para establecer una cita amorosa con una pareja que nos ha estimulado el sistema químico a través de una app de contactos en la que nos hemos dado de alta. Necesitamos comunicarnos para trabajar, para demostrar afecto, cariño, y hasta para estar enfadados con el mundo en Twitter.

El ser humano se comunica, y necesitamos hacerlo por cualquier nuevo medio en el que haya otros como nosotros, nos conozcamos o no. Es por eso que, en cada medio en el que nos hemos ido desenvolviendo a lo largo de nuestras vidas hemos desarrollado sistemas de comunicación en él. Desde mensajes en los árboles, señales de humo, o cartas escritas enviadas por mensajeros a caballo.

En la era moderna, ya con la tecnología de los computadores aquí, también lo hemos hecho. Cuando aparecieron los primeros sistemas de tiempo compartido, en los que muchos usuarios podían utilizar un mismo servidor para ejecutar sus algoritmos, apareció la necesidad de comunicarse entre los usuarios de ese ordenador central. El administrador del servidor debía enviar comunicaciones a los usuarios, tales como normas de comportamiento, periodos de indisponibilidad por mantenimiento, o actualizaciones de información sobre nuevas características en el servicio.

Por supuesto, entre los propios usuarios también aparecieron estas necesidades de comunicación. Estos podrían trabajar en grupos, dentro de proyectos que realizaban conjuntamente, para los que necesitaban compartir ideas, resultados o propuestas. Había que comunicarse a través del medio común, es decir, el servidor que daba vida a ese ecosistema creado alrededor de él.

Del e-mail al Webmail, pasando por SMTP, POP3, IMAP

Los primeros servicios de correo eran muy sencillos. Los requisitos eran bastante sencillos, ya que todos los usuarios estaban en el mismo servidor, así que no intervenían para nada las redes de comunicación en ese momento. Un usuario se conectaba al servidor por medio de un terminal para tener un shell, por lo que todo lo que hacía se producía directamente en el propio servidor. Al final, su terminal no era más que el equivalente a tener una pantalla y un teclado conectado al servidor desde una ubicación remota. Pero para el software del servidor, una vez el usuario iniciaba sesión, era como si el usuario estuviera sentado físicamente al lado de él.

Para crear un sistema de comunicaciones entre usuarios no había que hacer nada especial que incluyera ubicaciones remotas, múltiples servidores, o redes complejas de interconexión con federación de identidad. La autenticación y el enrutamiento de las comunicaciones se simplificaba al estar todos los usuarios en el mismo servidor. Para resolver el problema de comunicación bastaba con crear un pequeño programa que corriera en el servidor y al que decías a qué usuario querías enviarle el mensaje, por ejemplo a a p0344, cuál era el asunto por el que abrías esa comunicación, y cuál el cuerpo del mensaje.

En ese momento se generaba un fichero y el servicio de e-mail que corría en el servidor creaba un fichero con esta información en la carpeta de ese usuario p0344 - dentro del árbol de ficheros de ese usuario - destinada a recibir el correo. Es decir, el buzón de cada usuario era una carpeta con permisos de escritura para el servicio de “e-mail” donde se le depositaban ficheros de texto con los datos de qué usuario le escribía, cuándo lo hizo, cuál era el asunto y el cuerpo del mensaje. Metadatos que enriquecieran la comunicación electrónica.

Para enviar mensajes el proceso requería hacer algo similar. Había una carpeta de mensajes de salida que el programa, por medio de un “daemon” en el servidor leía periódicamente para ver si había algo nuevo. Cuando aparecía un nuevo mensaje, el servicio de “e-mail” lo borraba de esa carpeta, lo ponía en la carpeta de mensajes enviados para que quedara un copia, y el mensaje era copiado también a la carpeta de entrada del usuario destinatario en su estructura de ficheros particular. Sencillo y funcional.

La cosa se complicó cuando aparecieron más computadores. Ya no teníamos solo un mundo sino un ecosistema de servidores en red y teníamos la necesidad de comunicar usuarios de un servidor, por ejemplo llamado “Albeniz” con otro, por ejemplo llamado “Zipi”. En ese caso había que hacer un protocolo para que el servicio de e-mail de del servidor Albeniz, fuera el que fuera, supiera dónde tenía que enviar el mensaje cuando el usuario no existiera en su mundo y fuera de otro ecosistema, como por ejemplo del servidor "Zipi".

Para poder identificar a qué ecosistema pertenecía cada destinatario de las comunicaciones, inventamos las direcciones con la @servidor y creamos un protocolo que comunicaba el enrutamiento de mensajes entre servidores. El famoso y popular SMTP (Simple Mail Transfer Protocol) que habilitaba cada servicio de e-mail utilizando un puerto, ahora sí, en la red, en este caso el puerto 25. Así, un usuario “chema@albeniz.eui.upm.edu” podía enviar un mensaje a “chema@zipi.fi.upm.edu”. Los servicios de correo electrónico se enviaban los mensajes uno a otro a través de mensajes de red encapsulados en SMTP.

Pero un día los usuarios dejaron de utilizar plataformas de tiempo compartido como si estuvieran sentados en ellas, es decir, dejaron de conectarse a través de sesiones de terminal, y empezaron a usar sus propias estaciones de trabajo. Eso quería decir que el usuario chema@albeniz.eui.upm.es tenía en su despacho otro mundo, en el que había otro usuario, otro sistema operativo, y otras funcionalidades. Había una estación de trabajo y no un terminal, donde se ejecutaba un mundo tipo Solaris, o un MSDos, o un DRDOS, un OS2/Warp o lo que fuera.

Es decir, era otro sistema informático distinto, por lo que si quería enviar correo electrónico utilizando su identidad de chema@albeniz.eui.upm.edu debía actuar como un servidor remoto más y utilizar el protocolo SMTP para conectarse con el servicio de enrutamiento de correos electrónicos en su servidor, pero eso no valía para poder leer sus mensajes recibidos. Había que crear un nuevo protocolo para que pudiera conectarse a ver los mensajes que le habían entrado en su buzón. Y así nació POP3 (Post-Office Protocol v.3), corriendo en la red por el puerto 110.

Al final un puerto no es más que una zona de memoria que comunica a un programa que corre en un servidor con los mensajes que llegan por la red. Cuando arrancamos un programa que enruta mensajes con SMTP en un servidor, lo que hace este programa es hablar con servicio que recibe el tráfico de red en host y decirle:
"Oye, estoy corriendo en el servidor y esperando mensajes. Si te llega algún paquete que venga con el número 25 como destinatario me lo pones en esta zona de memoria". 
Esto mismo hace el protocolo POP3, pero diciendo algo como:
"Oye, estoy corriendo en el servidor y esperando mensajes. Si te llega algún paquete que venga con el número 100 como destinatario me lo pones en esta zona de memoria". 
Cuando los mensajes le llegan al servicio que gestiona las comunicaciones de red en el servidor, este va colocando los mensajes en diferentes direcciones de memoria para enviárselo a los servicios adecuados en función del número de puerto que venga en el destinatario. Es decir, es como el portero de un edificio en el que viven muchos vecinos y reparte los paquetes de Amazon en los distintos casilleros de los vecinos en función del puerto, que en ese caso serán 2º A, 3º C o Bajo C. Como podéis ver por los números de los puertos de los protocolos, la necesidad de conectar servidores nació tiempo antes de la necesidad de descargar el correo del buzón a la estación de trabajo.

Y funcionó. Y se masificaron los usuarios de estos servicios. Cada vez más personas utilizaban el e-mail para todo. Ya no solo trabajo, sino también para socializar entre ellos, lo que hizo que se vieran las limitaciones de estos protocolos creados hasta el momento. SMTP y POP3 tenían que ser extendidos y su arquitectura y concepto inicial ya no eran los requisitos de hoy en día. Estos protocolos eran una evolución de la idea inicial de transferir mensajes en texto plano entre carpetas, y por eso no tenían gran funcionalidad.

Pero con la masificación de su uso se requería enviar comandos para hacer cosas en el buzón remotamente sin necesidad de descargar y enviar ficheros de texto. Si necesito crear una carpeta para organizar el correo y mover un mensaje de una carpeta a otra, descargarse mensajes de textos y volver a subirlos no tenía sentido. Por ello se creó una evolución completa para gestionar los buzones de correos, y entre las muchas propuestas, comenzó a emerger el protocolo IMAP (Internet Message Access Protocol), con una cantidad de evoluciones.

Por supuesto, desde la primera concepción del servicio e-mail en los servidores de tiempo compartido, los clientes de correo electrónico fueron evolucionando. Desde un interfaz basado en comandos, a un interfaz modo texto corriendo en sesiones de terminales, para llegar a los clientes de hoy en día. Con la creación de SMTP y POP3 aparecieron las herramientas de gestión de e-mail en estaciones de trabajo como (Microsoft Outlook – que no es de las primeras ni mucho menos) para tener clientes de correo electrónico con interfaces gráficos, y con la llegada de HTTP y las páginas web aparecieron los primeros servicios como Hotmail o Gmail. Estos, pasaron rápidamente a utilizar IMAP y hoy en día es posible gestionar tu buzón de Gmail con comandos IMAP, como hice yo hace ya muchos artículos.

Los problemas de seguridad

Como os podéis imaginar, con el aumento de la popularidad del correo electrónico, la evolución de la potencia de cómputo de los equipos en clientes y en servidores en Internet, además de la masificación del número de usuarios conectados y la velocidad de las redes de comunicación, los problemas de seguridad con el correo electrónico fueron infinitos.

SMTP y POP3 nacieron como protocolos para mover ficheros de texto plano que estaban en carpetas de un servidor. El esquema de amenazas que había cuando todos los usuarios estaban dentro del mismo servidor era mucho más pequeño que cuando tenemos dos o más servidores. Ya hay un medio por el que los mensajes deben pasar. Y deberían estar cifrados. Así que primero intentamos cifrar las conexiones entre los servidores usando un protocolo como SSL (Secure Socket Layer) para crear un túnel de cifrado servidor a servidor que impidiera que alguien pudiera interpretar el tráfico si interceptaba la señal en el medio. Así, creamos SMTP-S y POP3-S por puertos de rede distintos que la gente ya no se conoce tan de memoria.

Pero también sucedía que el esquema de identificación de remitente y de identificación del host cuando todos los servidores eran confiables y no era fácil conectarse a la red, tampoco valía. Se empezaron a suceder los ataques de suplantación de direcciones IP en los que una estación de trabajo se hacía pasar por un servidor de correo electrónico, usando técnicas de Spoofing o atacando al servidor DNS para cambiar los servidores autorizados para recibir los mensajes de correo de una organización. El esquema de cifrado era inútil frente a ellos, ya que se estaban cifrando las comunicaciones contra el propio atacante, que estaba haciendo un “man-in-the-middle”, así que pasamos a utilizar sistemas como Mutual-TLS donde tenemos no solo que cifrar las comunicaciones, sino también firmarlas por los servidores que están allí.

Figura 2: Libro de Cifrado de las Comunicaciones Digitales:
"De la cifra clásica a RSA (2ª Edición)"

Pero este proceso de enrutamiento de comunicaciones por la red solo por tramos cifrados no es obligatorio para que el e-mail funcione, y una vez que el usuario ha recibido un mensaje de correo electrónico no sabe realmente si el mensaje va a acabar cifrado en el buzón del destinatario o no, y si la comunicación por la que ha venido era un canal cifrado o no. Y por supuesto, ya que se puede suplantar a un servidor de correo electrónico con una estación de trabajo, se puede suplantar a cualquier dirección de remitente que estuviera en ese servidor. Es decir, podrían aparecer mensajes como chema@albeniz.eui.upm.edu que no hubieran sido enviados ni desde albeniz.eui.ump.edu, ni desde luego por chema.

Para ello, sería necesario que el cifrado y la firma de los correos electrónicos fuera extremo a extremos y robusta. Necesitamos no solo garantizar la comunicación de los servidores, sin la comunicación entre remitente y destinatario, para lo que utilizamos sistemas de firma digital como PGP o los certificados digitales de e-mail S/MIME.

Por desgracia, estos sistemas de certificados digitales son bastante poco usados, ya que tienes que  generar certificados en entidades confiables, configurarlos en los diferentes clientes de e-mail que uses (computadoras, ordenadores portátiles, tabletas, diferentes navegadores de Internet) , hay que renovarlos, hay que intercambiarlos antes de establecer una comunicación segura, etc... Demasiadas barreras de usabilidad para la gran mayoría de las personas que utilizan mensajería e-mail por Internet,  por lo que la mayoría de la comunicación por medio de correos electrónicos ni se cifra ni se firma.

Google intentó avisar a los usuarios cuando los correos venían cifrados en tránsito o no, con un candadito rojo como respuesta a las filtraciones de Edward Snowden en las que descubrió que la NSA estaba capturando el tráfico sin cifrar. Y, además, todos los clientes de correo electrónico marcan con un icono especial si el mensaje viene cifrado y/o firmado desde el emisor.

Figura 3: El intento del candado rojo de Gmail. Mucho candado rojo, mejor quitarlo.

Al final, como la realidad es que casi ningún mensaje llega firmado y cifrado extremo a extremo, los usuarios ven normal que un banco o su jefe les envíen un mensaje sin cifrar o firmar. Con lo que se abre el campo para los ataques de suplantación del remitente y de Phishing o los más peligrosos Spear-Phishing que se utilizan en los ataques dirigidos a personas concretas.

A todo esto hay que sumar problemas inherentes al sistema de correo electrónico más, y es que, al ser un sistema de comunicación de coste cero, se ha aprovechado para hacer captura masiva de clientes por medio de mensajes publicitarios, para hacer campañas de estafas masivas engañando a víctimas (Scam), para dar de alta sin autorización en listas de correos, o para simplemente molestar.

Necesitamos más seguridad pero... ¿Será suficiente?

Tras la creación del servicio de e-mail, vimos que la necesidad de usabilidad nos llevó a crear SMTP, POP3 e IMAP, y que las primeras amenazas nos llevaron a aplicar capas de seguridad como SSL, y mecanismos de firma digital y cifrado extremo a extremo sobre sobre el servicio de e-mail, como PGP o S/MIME, pero aún estamos lejos de que poder proteger al servicio de correo electrónico de todos los problemas que se fueron creando, así que hay que hacer más.

En la siguiente parte de este artículo veremos cómo se empezaron a intentar soluciones como Sender Policy Framework, Sender ID, DKIM, o los Filtros Anti-Spam basados en todo tipo de algoritmos, desde listas blancas y listas negras, hasta Inteligencia Artificial pasando por los Filtros Bayesianos o la colaboración de usuarios para detectar Scams, Spam, Spear Phishing, y otros ataques a las personas. Pero aún así... no será bastante, así que habrá que ver qué alternativas han aplicado personas y empresas para lidiar con el e-mail.

Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)

********************************************************************************************************
- El e-mail ha muerto. ¡Larga vida al e-mail! (Parte 1 de 4)
- El e-mail ha muerto. ¡Larga vida al e-mail! (Parte 2 de 4)
- El e-mail ha muerto. ¡Larga vida al e-mail! (Parte 3 de 4)
- El e-mail ha muerto. ¡Larga vida al e-mail! (Parte 4 de 4)
********************************************************************************************************

viernes, julio 14, 2017

Tu PLC Sauter viene con una cuenta de e-mail de "regalo"

Sauter moduweb Vision es un módulo que proporciona un aplicativo web para la visualización de manera compacta, sencilla e intuitiva de la información que proporcionan diversos PLCs a los operarios que los utilizan en sus Sistemas Industriales. También permite interactuar de manera directa en la configuración de ciertos parámetros de este tipo de autómatas programables.

Figura 1: Tu PLC Sauter viene con una cuenta de e-mail de "regalo"

Una funcionalidad que incorpora este módulo, es la configuración de un cliente de correo electrónico para que, en el caso de que se dispare una alarma (temperatura por encima de una consigna, extractores de humo averiados, etc…), automáticamente se envié una notificación por correo electrónico a la persona responsable, avisando del tipo de incidencia.

Figura 2: PLC Sauter

Veremos en el presente artículo cómo, aprovechándonos de la configuración por defecto de acceso a la gestión del PLC mediante el módulo moduWeb Vision, es posible acceder a la configuración del cliente de correo electrónico del PLC, obtener la contraseña de la cuenta de correo indicada para las notificaciones y comprobar, con la ayuda del protocolo SMTP, si el password de acceso a la cuenta de correo electrónico realmente se corresponde con ésta.

Fase 1: Búsqueda de dispositivos Sauter con el módulo moduWeb Vision

Localizar PLCs con el módulo moduWeb Vision es realmente fácil, utilizando el patrón “Sauter moduWeb - Login” presente en el título de la web. Realizando un poco de Hacking con Buscadores, Google devuelve los siguientes resultados:

Figura 3: Dorking y resultados devueltos por Google

Fase 2: Datos de acceso por defecto

Muchos de estos PLCs conectados a Internet, que controlan entornos donde las vidas humanas tienen un papel fundamental ya que pueden estar en Sistemas Industriales o Infraestructuras Críticas, siguen presentando configuraciones inseguras por defecto. Una sencilla búsqueda en Google nos proporciona los datos de acceso por defecto a estos dispositivos con moduWeb Vision: “admin” y “password”.

Figura 4: Búsqueda de los datos de acceso por defecto

Introduciendo la información mostrada en la figura anterior, es posible acceder a buena parte de estos dispositivos. En la figura siguiente, se muestra el panel de manipulación y monitorización del sistema de calefacción de un bloque de viviendas comunitario con credenciales por defecto.

Figura 5: Diagrama de un sistema de calefacción comunitario

Fase 3: Configuración del cliente del correo electrónico del PLC

Como se ha comentado, el módulo moduWeb Visión dispone de un cliente de correo electrónico que se comunica con un servidor de correo electrónico bajo el protocolo SMTP (Simple Mail Transfer Protocol) usando el puerto 25/TCP. Para ello, hemos de proporcionar en el la configuración del cliente de correo, quién es el servidor de correo electrónico saliente que enviará el mensaje de alerta a un buzón de correo electrónico, la cuenta de correo electrónico y la contraseña de correo.

Figura 6: Parámetros de la configuración del cliente de correo electrónico por SMTP

Por defecto, léase la documentación del PLC, la opción de SSL para enviar correos electrónicos cifrados viene desactivada.

Fase 4: Seguridad por ocultación

En la figura anterior puede observarse cómo la contraseña, a primera vista, no aparece en texto plano debido al uso del campo input de tipo password en el formulario de configuración del cliente de correo SMTP. Basta realizar un cambio en caliente desde el navegador web para obtener la clave en texto claro de la cuenta de correo electrónico.

Figura 7: Modificación en el formulario del cliente para ver la password

Conocida el password de uno de los usuarios del servidor de correo saliente usado por el PLC, el siguiente paso es comprobar que realmente se trata de una identidad digital válida utilizada por el PLC. Aquí es dónde entrará en juego el protocolo SMTP.

Fase 5: Diálogo con el servidor de correo electrónico mediante SMTP

El protocolo SMTP (Simple Mail Transfer Protocol) utiliza por defecto el puerto 25/TCP. Para conectarnos, basta realizar una conexión TCP del servidor. Inicialmente intentaremos mandar un correo electrónico desde la cuenta de correo descubierta en el PLC. En caso de no estar bien configurado el servidor de correo, podríamos “spoofear” cualquier cuenta de correo electrónico (aunque el nombre de dominio fuera diferente al nombre de dominio configurado en el servidor de correo electrónico) y usar ese servidor para realizar ataques, por ejemplo, de spear phishing.

Comprobamos cómo el servidor de correo no permite el envío de correos electrónicos si no nos autenticamos correctamente en él.

Figura 8: Conexión SMTP e intento de envío sin autenticar. El servidor no lo permite.

Es en este punto es donde utilizaremos para la autenticación el password descubierto en la figura 6. Tras conectarnos al puerto 25/TCP, con la opción “auth login” decimos al servidor que queremos autenticarnos en él. El servidor nos devolverá el mensaje “334 VXNlcm5hbWU6”, que se trata de una cadena codificada en Base64 solicitando el nombre de usuario.

Introducimos el nombre de usuario codificado en Base64 (c2xxxxxxxxx20=) y el servidor nos devuelve el mensaje “334 UGFzc3dvcmQ6” codificado en Base64 solicitando el password. Codificamos el password de la figura 7 en Base64 y se lo enviamos al servidor de correo. El servidor devuelve un mensaje de que la autenticación es correcta (authentication succeeded).

Tras indicar quién es el emisor del mensaje y el destinatario, finalizar el mensaje con punto (.), el servidor devuelve el mensaje “mail accepted for delivery” (correo aceptado para la entrega). A continuación se muestran todos los pasos de la conexión SMTP AUTH a través de Telnet:

Figura 9: Conexión SMTP AUTH a través de Telnet

En estos momentos, podemos determinar que la cuenta de correo electrónico y el password presente en la configuración del cliente de correo del PLC de la figura 7, realmente pertenecen a una identidad digital válida en el servidor de correo saliente usado por el módulo moduWeb Vision del PLC Sauter y está distribuida en todos y cada uno de los dispositivos. Todos con la misma. No parece la forma más segura de crear un sistema industrial.

Autor: Amador Aparicio (@amadapa), autor del libro "Hacking Web Technologies"

Entrada destacada

+300 referencias a papers, posts y talks de Hacking & Security con Inteligencia Artificial

Hace un mes comencé a recuperar en un post mi interés en los últimos años, donde he publicado muchos artículos en este blog , y he dejado mu...

Entradas populares