Meltdown y Spectre

2018 no comienza bien en cuanto a la ciberseguridad, un importante fallo se extiende en muchos de los procesadores que usamos diariamente y que podría poner en riesgo no solo ordenadores personales, dispositivos móviles, si no servidores,  etc pero es que además ronda por las cabezas de mucha gente que la solución pase por un parche que produzca una perdida de productividad de los procesadores o incluso el reemplazo de los propios procesadores (aunque aparentemente esta perdida a día de hoy supuestamente es mínima).

Principalmente están afectados CPUs Intel y de alguna forma las CPUs AMD, pero también las de arquitectura ARM (lo que toca también a los dispositivos móviles). Esto supone que practicamente dispositivos de cualquier tipo están afectados tanto en PC, móviles, etc. incluyendo dispositivos de Apple: iMACs, MacBooks, iPhones, iPads, etc están afectados.

Sin embargo, en todo esto, hay procesadores que no están afectados como los Intel Atom o los Itanium producidos antes de 2013 (los cuales no serían vulnerables a Meltdown), o los procesadores que utilizan las Raspberry Pi que no utilizan ejecución especulativa.

Ejecución especulativa

Antes de nada vamos a hablar de lo que es la ejecución especulativa. Voy a intentar dar un ejemplo de una manera muy general que permita entenderla a grandes rasgos. Imaginemos el siguiente «pseudocódigo» (¡o ya casi código!):

  x=calcularX();
  if(x==1) {
      b=calcularBForma1();
  }
  else {
      b=calcularBForma2();
  }

En un procesador que haga esta ejecución de forma secuencial, primero llamaría a calcularX(), una vez averiguado el valor de x, si este es igual a 1 realiza el calculo de b usando calcularBForma1(), y si no es igual a 1 lo haría con calcularBForma2(). Sin embargo, en ejecución especulativa, suponiendo que podamos hacer ejecuciones paralelas, lo que haríamos sería ejecutar simultaneamente calcularX(), calcularBForma1() y calcularBForma2(), almacenando los resultados en una caché del procesador. Supongamos que las funciones calcularBForma1() y calcularBForma2() han terminado antes que calcularX(), cuando esta ultima ha terminado, podríamos tener un ahorro importante de tiempo de ejecución puesto que si x=1 simplemente habrá que coger el resultado de b que nos devolvió calcularBForma1() y desechar el resultado de calcularBForma2(), o a la inversa. Es decir, antes de saber el verdadero resultado, estamos especulando de manera paralela las diversas posibilidades para ahorrar trabajo posterior. Es precisamente esta ejecución especulativ,a la que puede tener errores que supongan diversas filtraciones de información. Hay que decir que la caché de una CPU no es legible por parte de un proceso no autorizado, puesto que es interno de la CPU, sin embargo, se ha demostrado que se puede usar un ataque coordinado a la caché: una modalidad de ataque de canal lateral.

Vulnerabilidad Meltdown

Meltdown (vinculado a la vulnerabilidad CVE-2017-5754) es un agujero de seguridad a nivel de hardware que afecta a los procesadores Intel x86 desde 1995 (salvando, como dijimos, los Itanium y los Atom anteriores a 2013) y a algunos procesadores con arquitectura ARM (se piensa a día de hoy que no afecta a procesadores AMD). Esta vulnerabilidad permite que un proceso malicioso pueda realizar lectura de memoria física, del kernel o mapeada a otro proceso, sin que pueda o no acceder. Es decir, podría romper la seguridad entre el usuario y el sistema operativo pudiendo alcanzar a cualquier proceso o incluso al propio sistema operativo desapareciendo el aislamiento entre el espacio destinado al Kernel y el espacio de usuario.  Mucho mas detalle en el paper de Meltdown: https://meltdownattack.com/meltdown.pdf

Captura extraida del paper de Meltdown donde muestra el gestor de contraseñas de Firefox 56 mostrando las claves cuando no debería hacerlo.

Captura extraída del paper de Meltdown donde muestra el gestor de contraseñas de Firefox 56 mostrando las claves cuando no debería hacerlo.

 

Vulnerabilidad Spectre

En teoría Spectre podría llevarse a cabo con éxito en procesadores Intel, pero también AMD y ARM, esto está vinculado a las vulnerabilidades CVE-2017-5753 y CVE-2017-5715. Spectre rompe el aislamiento entre aplicaciones pudiéndose engañar a cualquier aplicación por segura que sea pudiendo forzar al sistema operativo a acceder a una ubicación arbitraria en el espacio de memoria del programa. En la practica, a día de hoy, es mas complejo de poner en práctica que Meltdown. Mas información en el paper de Spectre: https://spectreattack.com/spectre.pdf

 

La diferencia mas importante entre Meltdown y Spectre es que Meltdown se basa en características específicas en los procesadores Intel pudiéndose engañar a las CPUs para que especulen con datos del sistema protegidos y se vean a obligar a manejar con garantías la excepción de seguridad relacionada. Sin embargo, Spectre es mas estadístico.

Impacto y mitigación

La gravedad de estos dos problemas en conjunto es que provoca impacto en estaciones de trabajo, portátiles y ordenadores personales. Pero el impacto mas importante se encuentra en servidores, servidores cloud, sistemas de virtualización, etc. que están continuamente expuestos y que pueden ser incluso críticos.

Visto desde el punto de vista a entornos de virtualización y cloud: mientras que Meltdown permite a aplicaciones no autorizadas a leer datos confidenciales de procesos que se ejecutan en el mismo servidor de nube; Spectre podría permitir que programas maliciosos induzcan al hypervisor a transmitir datos a un sistema huésped que se esté ejecutando en el.

El impacto real de Spectre se complica, aunque puede ser mas difícil de poner en práctica, puede ser mucho mas difícil de defender debido a la generalidad del problema.

La mitigación de Spectre aún está por ver, Google defiende que podría resolverse de una manera bastante eficaz mediante su nueva técnica detallada en el su blog de seguridad usándose una cantidad casi insignificante de sobrecarga a la CPU. Sin embargo, en contra, se ha llegado a especular, que podrían ser necesarios cambios importantes en la arquitectura del procesador para eliminar el problema Spectre de raíz.

Muchos de los parches se centran en Meltdown que es ahora mismo es el problema mas grave, ya que es viable poner en práctica el ataque y debe mitigarse inmediatamente para evitar males mayores.

Demostración de uno de los investigadores de Meltdown, Michael Schwarz, la viabilidad de un robo de contraseñas usando esta vulnerabilidad

 

Intel comenta que la mitigación de Meltdown el representar «cualquier impacto en el rendimiento depende de la carga de trabajo y, para el usuario medio de PC, no debería ser significativo y se mitigará con el tiempo», aunque en algunos casos no se ha visto una bajada de rendimiento significativo en otras pruebas en bases de datos como PostgreSQL y Redis si se encontró un impacto en el rendimiento.

A nivel de sistema operativo se ha tratado de mitigar con las siguientes actualizaciones:

  • Linux: Existe un parche lanzado, usando KPTI que previene Meltdown. KPTI es una evolución del llamado aislamiento de tablas de páginas del kernel antes llamado Kaiser. KPTI pretende mejorar el aislamiento entre las memorias de espacio de usuario y el espacio del kernel, mejorando la fortaleza en cualquier intento en reventar la aleatoriedad en la disposición del espacio de direcciones del Kernel (KASLR). Una lectura muy interesante, muy recomendable y bien explicado es en Wikipedia.
  • Windows: hay una actualización urgente. En Windows 10 se hará de forma automática (KB4056892). Sin embargo, en Windows 7 (KB4056894) y Windows 8 habrá que hacerla desde Windows Update.
  • MacOS: Existe una actualización parcial en High Sierra 10.13.2  que mitiga los efectos en el navegador Safari.
  • iOS: En teoría Meltdown está solucionado a partir de iOS 11.2 y tvOS 11.2.
  • Android: Estar atentos a las actualizaciones OTA en Nexus y Pixel. En principio se incluye en la actualización de seguridad de enero de 2018. Es cuestión de que los fabricantes reaccionen a tiempo (y estaría bien que todos los fabricantes reaccionen en todos los dispositivos afectados independientemente de su antigüedad ).
  • VMWare ESXi: Revisar el VMSA publicado.

Uno de los riesgos que se comenta es la ejecución de JavaScript en el navegador al visitar distintas páginas y los riesgos que conlleva ejecutar o acceder a zonas no permitidas con procesadores con ejecución especulativa. Por tanto, los parches inmediatos en los navegadores serían:

  • Chrome: La versión 64 pretende resolver las vulnerabilidades y tiene programada su salida para el 23 de enero.
  • Firefox: La versión 57 ya disponible, se han tomado algunas medidas.
  • Safari: En MacOS se ha parcheado, como hemos comentado.

Creo que esta vulnerabilidad puede abrir un amplio debate:

  • La fuerte dependencia de determinadas tecnologías, arquitecturas, etc. que pueden suponer un problema en sistemas cloud,
  • En los smartphones la fragmentación y la fuerte dependencia de los fabricantes para sacar nuevas versiones de Android en sus dispositivos vendidos por encima de los 2 años de edad.
  • La crisis desatada con las prisas en fabricantes y proveedores de software y hardware que pueden poner en peligro la estabilidad de los sistemas : en este caso el ejemplo se da con el parche que cierra la vulnerabilidad Meltdown de Microsoft que aplicado de forma general ha desatado diversos problemas en procesadores AMD Athlon X2 (¡Que no están afectados por Meltdown!) en Windows 7 y Windows 10 provocando cuelgues, etc.  (pero que no hace tanto, con otros problemas distintos pero también muy graves, otros fabricantes con esas prisas también se han resbalado).

El debate está servido. ¿Como ves el alcance de esta vulnerabilidad?

Blueborne, un duro golpe a Bluetooth

Armis, una empresa de seguridad, ha descubierto el pasado septiembre unos 8 exploits que hacen vulnerables las conexiones de practicamente cualquier dispositivo Bluetooth.

Son numerosas vulnerabilidades como lo son CVE-2017-0781 CVE-2017-0782, CVE-2017-0783 y CVE-2017-0785 para dispositivos Android; CVE-2017-1000251 y CVE-2017-1000250 para Linux; CVE-2017-8628 en Windows.

Lo especialmente peligroso de estas vulnerabilidades es que la mayoría permiten la corrupción y/o ejecución de código remoto en el dispositivo de forma totalmente transparente. Esto permitiría tomar el control del dipositivo de una manera que el atacado no tenga ninguna señal de que eso esta ocurriendo.

Según los autores del white paper, Bluetooth es demasiado complicado. La especificación de Bluetooth es entorno a las 2800 páginas, mientras que la especificación de WIFI son apenas 450.

Esta complejidad evitó que los investigadores auditasen las implementaciones en el mismo nivel que con el que han tratado otros protocolos altamente expuestos. Las complicaciones en las especificaciones se traducen en uniones de múltiples y diferentes implementaciones del estándar Bluetooth.

Un ejemplo de la complejidad poco necesaria sería la fragmentación, un concepto común con muchos protocolos y un punto débil en cada implementación. La especificación de Bluetooth no tiene menos de 4 capas de fragmentación diferentes implementadas.

Los autores temen que dada la complejidad del sistema Bluetooth esto sea tan solo la punta del iceberg y puedan salir mas vulnerabilidades en el futuro.

Armis ha distribuido un vídeo en el que expresan de que manera tan transparente se pueden contagiar multitud de dispositivos con solo tener el bluetooth habilitado

Aquí podemos ver en un vídeo de Youtube como se realiza el ataque de un telefono móvil:

Armis deja a nuestra disposición una herramienta para analizar si nuestro smartphone Android es vulnerable a Blueborne, pero además nos permite analizar los dispositivos cercanos y ver si son o no vulnerables.

Blueborne - Armis - Dispositivo Android vulnerableBlueborne - Armis - Dispositivo alrededor detectados

Blueborne - Armis - Portátil con vulnerabilidad mediaBlueborne - Armis - Manos libres de baja vulnerabilidad

Actualizar sería la mejor forma de resolver la mayoría de los problemas, sin embargo, muchos de los dispositivos Android, dispositivos iOT, etc es probable que los fabricantes no se hagan cargo cuando estos estén en muchos casos por encima de los dos años de antigüedad.

 

RootedCon 2017

El pasado 2 ,3 y 4 de Marzo de 2017 pude asistir a la ya asentada RootedCON en Madrid. RootedCon es un congreso de seguridad informática, descubrimiento de vulnerabilidades, hacking éticos, etc. Mi experiencia como asistencia es este congreso es que no solo uno se empapa de ciertas filosofías y técnicas, que aunque no de tiempo en profundizarlas o practicarlas, si da una idea muy interesante para investigar por cuenta de uno mismo y porque uno entiende que la tecnología y la seguridad no van de la mano, e igual que en muchas casos tecnológicamente y socialmente hemos avanzado, en seguridad hemos retrocedido.

Edito: aunque hablaré un poco de mi experiencia de RootedCON y de las cosas que mas interesantes me pareció, como ahora la organización ha liberado vídeos de las ponencias, las insertaré en este post y volveré a redactar un poco la entrada.

Chema Alonso – DirtyTooth: It’s only Rock’n Roll, but I like it

Creo que una primera conferencia de una persona que tiene mucha fama internacional, pero aún mas en España, es Chema Alonso.

En su conferencia habló como, de forma fácil y divertida, es muy simple robar los contactos de un teléfono Apple, gracias a un altavoz Bluetooth Marshall cuidadosamente modificado. Esa modificación lleva una Raspberry que hace de receptor Bluetooth (previa anulación del Bluetooth original del altavoz) y que cuando se parea un iPhone al altavoz como dispositivo de audio con auriculares , cambia «mágicamente» a dispositivo de manos libres, ignorando esto el iPhone y quedando marcada como opción por defecto el acceso a la lista de contactos.

 

Un tiempo después Chema Alonso publicó en su conocido blog, todo los entresijos. Aquí está toda la documentación:

 

 

Raul Siles – Desmitificando el cifrado extremo a extremo de Whatsapp

Raul Siles desmitificando la encriptación de extremo a extremo en Whatsapp - RootedCon2017

Raul Siles desmitificando la encriptación de extremo a extremo en Whatsapp – RootedCon2017

Creo que la charla que mas me ha gustado, y de la que mas información y aprendizaje se puede extraer, es la conferencia de Raúl Siles en «Desmitificar la encriptación end to end de Whatsapp», he de decir que fue muy muy densa en poco tiempo, pero muy muy bien explicada , y cuya conferencia puedo alegrarme de que fuese en español (dada su densidad), y de que se explicó muchisimo sobre los encriptados, la parte teórica, y como Whatsapp lo resuelve. Entra en como Bob y Alice se comunican cono Whatsapp y que mensajes y secretos se cruzan para hacer una conexión segura tocando distintas formas de encriptar y que nivel de seguridad aportan:  Diffie Hellman, Diffie Hellman con Curva elíptica, X3DH,   ¿Whatsapp en cuya encriptación de extremo a extremo que últimamente usamos es tan tan inseguro? Ahora que tengo el vídeo tras meses de haber asistido e implementadas las profundas mejoras desde que Whatsapp fue adquirido por Facebook estoy profundamente sorprendido , os invito a verlo y que lo valoréis. Esta conferencia me dejó muy satisfecho a pesar de que a muchos les pueda aburrir (para no perderse uno totalmente es mejor no perder el hilo de la explicación ni un segundo):

 

Mikko Hypponen – World War I

Uno de los platos fuertes fue la asistencia de Mikko Hypponen en una charla motivacional y en la que hablaba de lo que bélicamente puede suponer la seguridad.  Aprovechando que están los vídeos colgados por la organización de RootedCon, os dejo el vídeo que os puede venir muy bien para reflexionar sobre el mundo en que vivimos.

(en Inglés se le entiende muy bien que es como yo le vi in situ, la versión original en ingles aquí la tenéis aquí )

Alfonso Muñoz & Miguel Hernandez – (In)Security graph database in real world

Alfonso Muñoz & Miguel Hernandez – (In)Security graph database in real world - RootedCon 2017

Alfonso Muñoz y Miguel Hernandez – Demostrando como hay credenciales por defecto y poder exportar la base de datos entera en una sola petición en OrientDB

En esta charla, fue muy interesante al comenzar con una introducción a las bases de datos de grafos de cara a jugar con relaciones de diferentes datos, el procesamiento de datos, etc. y con motores de bases de datos relativos a grafos como NEO4J y OrientDB.

Incidieron mucho en los defectos de seguridad que arrastra una simple licencia. Neo4J community y enterprise, donde community es gratis y la enterprise es muy muy cara, la diferencia principal es que la enterprise incluye mas herramientas de seguridad, lo que lleva a particulares y empresas a, en ocasiones, a acabar en la versión community. Y al parecer ellos, encontraron diversas bases de datos mal configuradas, e incluso abiertas a proposito y que derivó a notificar a la Guardia Civil y que abre una gran reflexión en la charla.

Un detalle importante que comentan es que en este tipo de bases de datos, especialmente las Neo4J, cuando se ejecuta una query remota, los calculos los realiza el motor sin necesidad ni de mantenerse logeado, lo que permite,  hacer un tipo de queries que reemplace un valor por otro: lo que traducido de forma maliciosa,  podría ser un intento de cifrar una base de datos, con tan solo conectarse ejecutar la query, desconectarse, y dejar que el motor haga su trabajo. Un detalle muy muy curioso.
Dejo las diapositivas compartidas por los autores y el vídeo de la ponencia.

 

 

Paul Vixie – Scaling Properties of Distributed System Security

Quizás otro de los platos fuertes fue Paul Vixie. Paul Vixie fue creador del popular Bind desde los inicios de desarrollo; escribió código de Crontab, etc., miembro del ICANN y ARIN, participa frecuentemente en el IETF. Es un miembro de todo lo que usamos hoy día y de la historia de la informática de nuestros días.

Paul Vixie – Scaling Properties of Distributed System Security - RootedCon 2017

Paul Vixie – Scaling Properties of Distributed System Security

 

Ruben Garrote & Ruben Rodenas – El señor de los ATMs

Ruben Garrote y Ruben Rodenas – El señor de los ATMs - RootedCon 2017

Ruben Garrote y Ruben Rodenas enseñando la estructura de un cajero automático

Una de las charlas mas llamativas, fue esta donde mostraron algunos de los entresijos de un cajero automático por dos investigadores de Deloitte que tienen que auditar estos importantes dispositivos,  y como ni los cajeros son tan poco sofisticados como pensamos, ni tanto, pero desde luego que son poco accesibles y hay mucho secretismo con los fabricantes (¿Será seguridad por oscuridad?) y que, por supuesto, están expuestos al malware de la misma forma. También nos comentaron lo complicado que es montar un laboratorio y por supuesto hacerse con un cajero, que ellos mismos llevaron hasta el escenario y que no es precisamente ligero. Una charla interesante que nos da una idea de algunas nociones de los cajeros y en que lugar van las distintas piezas de  software y todo lo que lleva detrás y sus posibles riesgos

Ruben Garrote & Ruben Rodenas – El señor de los ATMs - RootedCon 2017

Ruben Garrote y Ruben Rodenas, enseñando las capas de software, drivers, APIs y S.O. que componen un cajero automático

Ruben Garrote & Ruben Rodenas – El señor de los ATMs - RootedCon 2017  Ruben Garrote & Ruben Rodenas – El señor de los ATMs - RootedCon 2017

Aquí tenéis el vídeo, desde luego que levantó mucha expectación, y aunque no podían revelar muchos detalles de algunas cosas, si que es interesante para que nos de una idea. Explicaron desde las dificultades de comprar un cajero como partícular para poder hacer la auditoría sin limite de tiempo, como tener margen para el desarrollo de una herramienta de auditoría de uso privado, y finalmente explicaron algunos riesgos y ataques reales como el malware Cobalt que permitía dispensar dinero recogido por mulas.

 

Daniel García y Roberto Muñoz – Docker puede no ser tu amigo

Daniel García y Roberto Muñoz - Docker puede no ser tu amigo - RootedCon 2017

Daniel García y Roberto Muñoz, en una presentación muy interesante sobre Docker y en como se puede troyanizar.

Esta charla es muy interesante, no solo porque introduce todo lo relativo a Docker sobre que es y que se puede hacer, si no como de alguna manera se pueden troyanizar las imagenes de docker.

Os dejo el vídeo y las diapositivas de la presentación.

 

Mikael Rodríguez Chala – Seguridad en operadores móviles virtuales

Esta charla es otra de las que mas me han gustado, porque da una idea general muy interesante de como funciona todo con los sistemas GSM y los registros de teléfonos en línea, y como la seguridad no es parte importante tampoco en ellos.

Al parecer, información que debería ser privada en el operador no lo es tanto a través de servicios de terceros y podría ser incluso posible localizar un teléfono móvil y, gracias a webs como idealista, recopilar números de teléfono móvil y saber si están presumiblemente en la vivienda o no.

Mikael Rodríguez Chala - Seguridad en operadores móviles virtuales - RootedCon 2017

Mikael Rodríguez Chala , mostrando los códigos por zonas en redes móviles

Mikael Rodríguez Chala - Seguridad en operadores móviles virtuales - RootedCon 2017

Aquí os dejo las diapositivas compartidas por la organización del congreso y el vídeo de su ponencia

 

 

Jaime Peñalba – The Worst Bug Bounty Ever…

Una charla motivacional y muy divertida, de lo que supone que una empresa busque gente que encuentre bugs en su software y como los cazadores de bugs van tras ellos, con técnicas como el fuzzing. Para aquellos que saben llegar primero parece ser que puede ser un negocio muy lucrativo.

 

Omar Benjumea – DevOPS & Fondu

Omar Benjumea mostró todas las integraciones y luchas que hay entre los equipos de desarrollo, esas luchas internas entre la rapidez y la eficacia teniendo en cuenta la seguridad como base constante. Una charla interesante:

Otras charlas

Otras charlas que vi y muy recomendables son la de  Alon Menczer de CheckPoint (charla en Español o en Inglés), como sobrevivir a un ataque ; o algunas que me perdí y que fue todo un éxito la charla sobre Radare 2.0 de Abel Valero

Una frase que todos deberíamos tener en mente

Una frase que puede resumir, y con lo que empezaba esta entrada es, una frase que dijeron en una charla y que mencioban a Cesar Cerrudo. «No estamos siendo mejores. Y mientras nosotros dependemos mas y mas de la tecnología, la tecnología se está volviendo mas y mas insegura».

 

«No estamos siendo mejores. Y mientras nosotros dependemos mas y mas de la tecnología, la tecnología se está volviendo mas y mas insegura» – Cesar Cerrudo

Resumen de crónica de los ultimos años

En todo este tiempo desde que terminé la carrera en Ingeniería Técnica en Informática de Gestión, he hecho montones de cosas y en todas creo que he aprendido y sigo aprendiendo de los que me rodean. Según terminé la carrera he estado trabajando en diversos trabajos relacionados con las TIC la mayoría hasta ahora relacionados con el desarrollo e integración de aplicaciones Android y aplicaciones web haciendo un buen combo para su venta en PYMES. También he lidiado con frameworks PHP, bases de datos, configuraciones de servidores, configuraciones de backups, virtualización, VPNs, Linux, Windows Server, redes,… he hecho montones de cosas que me han enriquecido mucho.

Ha sido en los últimos tiempos cuando continué en esta vía de irme metiendo en el área de sistemas e interesarme por SIEMs como OSSIM, juguetear con Nessus y Metaesploit, aprender a usar muchas de las herramientas de Kali Linux para desencriptar y rebuscar en mi propia red con WireShark, y a su vez tratar de aprender sobre cosas relacionadas con VMWare ESXI, redes y seguridad, quizás lo que me ha faltado es tiempo para expresar todas esas inquietudes con continuidad en este blog que ha estado tanto tiempo parado. Con todas estas inquietudes decidí darlas salida retomando el estudio intensivo e iniciarme en el Máster en Seguridad de las Tecnologías de la Información y la Comunicación en la Universitat Oberta de Catalunya, donde ya tengo algunas asignaturas aprobadas y disfrutando mucho en todo lo que aprendo y compaginándolo en la medida de la posible con mi trabajo actual.

Charla que asistí en el Ciberday en Palencia con Antonio Ramos y Monica Valle de Mundo Hacker de La 2

Chema Alonso y yo

Pero para continuar con esta retrospectiva, estos años también he tenido que buscarme y potenciar actividades y hobbies que me despejen de estar sentado en una silla de oficina. Dar un paseo, escuchar música, estar con amigos y pareja, siempre que puedo algo de senderismo por la montaña, andar en bici (cuando no me da pereza!),… y he aprovechado a continuar disfrutando como aficionado a la fotografía que soy, donde he podido hacer mis pinitos, tratando, como forma de expresión, de descubrir áreas y temáticas en la fotografía como el retrato, el paisaje, fotografía de fauna y la naturaleza. Precisamente todo lo que relaciona la naturaleza me encanta porque es una buena excusa para conocer nuestro entorno natural, disfrutarlo, defenderlo, cuidarlo y, con las fotografías, concienciar. Y es la fotografía, como afición, la que queda expresada en otra web para no mezclar esta afición con mi vida profesional en las TIC.

En Picos de Europa haciendo senderismo y descansando

Energia

Pienso que estos años me han aportado mucho, en lo personal y en lo profesional. Y apostando y trabajando paralelamente en estas dos vías paralelas, espero crecer como persona a medida que pasen los años.

Protege y evita intrusos en tu WIFI

A día de hoy, muchos de nosotros tenemos una red WIFI que en muchos casos está expuesta a intrusos cercanos, como nuestros vecinos. Tomar precauciones en la configuración de nuestra red WIFI es básico para dar seguridad y evitar que nos intercepten comunicaciones, roben Internet o vean nuestros recursos compartidos en nuestra red local.

Vamos a repasar de una manera genérica y explicado de forma detallada como trabajar con un cifrado seguro, filtrado MAC, … en definitiva, una guía básica para proteger tu red inalámbrica.

Seguro que muchos de vosotros dirán que el filtrado MAC es posible saltarlo o averiguar los puntos de acceso con SSIDs ocultos, por poner un ejemplo. Sin embargo, esta guía no pretende entrar en temas técnicos (la red mas segura es la cableada jejeje), si no ayudar a mucha gente que tiene la red WIFI configurada por defecto y muy muy expuesta y estas medidas pretenden de una manera didáctica asegurar la red WIFI en gran medida, evitando configuraciones erróneas de sobra conocidas, y disuadir de ser nosotros los atacados.

¿Whatsapp es siempre seguro?

Hoy día, la era de las tecnologías y las TIC (Tecnologías de la Información y Comunicación) hemos cambiado los móviles exclusivamente usados para llamar por pequeños ordenadores móviles dotados de un montón de nuevas características, que además de poder llamar, tenemos todo en la palma de la mano. Desde hace unos dos años yo empecé utilizando Whatsapp como sistema de mensajería en los que pocos de mis contactos tenían Whatsapp, hasta a día de hoy donde es el estándar de facto de mensajería instantánea en móviles Android, iPhone, Blackberry y Windows Phone y todo el mundo no puede vivir sin el. Nadie dudará de que la idea es buena y ha triunfado precisamente por ser un programa de mensajería sin importar la plataforma usada.

Samsung_Galaxy_S_III_Sapphire_Black-156x300

Pero la razón de este post no es esta, si no expresar mi preocupación por la seguridad de Whatsapp, algo que llevo tiempo leyendo en Internet, por poner un ejemplo aquí y aquí, y que, bueno, algunos de los casos se han ido solucionando, pero que otros continúan igual o practicamente igual; y que finalmente con una pequeña prueba se confirma de que es tremendamente inseguro (claro, bajo mi punto de vista). Por no olvidar de que hay que tener cuidado con que se enviamos o contamos por este sistema.

Uno de los problemas mas graves de Whatsapp, para mi, es el modo de identificarnos, que sería algo así como «soy este numero y quiero recibir y enviar mis mensajes». Teniendo nuestra cuenta de Whatsapp previamente activada en un terminal móvil (no voy a hablar del proceso de activación xD), nuestro nombre de usuario de Whatsapp es nuestro numero con el código de país (prefijo, en España el 34), quedando así: códigopaisynuestronumero@s.whatsapp.net. Y nuestra contraseña de identificación, en el caso de Android, es nuestro IMEI (desde las últimas actualizaciones de Whatsapp como “apaño” este número va invertido) pasado por un cifrado md5. ¿Formas de averiguar el IMEI? Un montón. Y el numero de teléfono lo mismo… solo con pensar las aplicaciones móviles que usamos que pueden leer esos datos en Android, o las veces que nos han regalado un móvil pudiendo saber el anterior dueño el IMEI, o incluso solamente con buscar el propio IMEI en la caja del móvil cuando lo adquirimos (caja que andará purulando por cualquier lado ¡Fijo! xD).

 

El IMEI de un móvil se averigua fácilmente marcando *#06# o buscandolo en la misma caja del móvil cuando lo adquirimos

El IMEI de un móvil se averigua fácilmente marcando *#06# o buscandolo en la misma caja del móvil cuando lo adquirimos

En el caso de iPhone, el usuario de acceso sería igual que como hemos dicho anteriormente y la contraseña de acceso, en vez del IMEI, en este caso es la dirección MAC de red (cifrada con md5 también) aunque es otro dato fácilmente averiguable (ejemplo en Wifis abiertas, donde podría averiguarse la MAC de los terminales móviles conectados a dicha red).

Aplicación que tiene riesgo de suplantación de identidad, debemos de ser cautos con nuestras conversaciones

Aplicación que tiene riesgo de suplantación de identidad, debemos de ser cautos con nuestras conversaciones

Todo esto que cuento podemos leerlo en otras palabras aquí, que además de esto, también se habla de WhatsAPI, una API que hace de cliente de Whatsapp desarrollada para los lenguajes de scripting Python y PHP, de esta forma podemos hacer nuestras aplicaciones web y poder mandar mensajes en Whatsapp con la mejor intención del mundo, notificaciones o lo que queramos.

Sin embargo, haciendo una pequeña simulación de malas intenciones (lo hice conmigo mismo), pude comprobar que con ese script se puede suplantar la identidad (usando el usuario y contraseña antes comentados) y recibir los mensajes sin que el atacado pueda llegar a enterarse de una forma sencilla. Aunque bien es verdad que simultáneamente no se puede conectar al mismo usuario de Whatsapp dos clientes de este servicio, pero incluso con esta API se puede saber cuando el suplantado en este caso se ha conectado de nuevo a Whatsapp (momento en que se expulsa una de las dos conexiones), probablemente afinando el script se puede salvar estas pequeñas pegas.

Entiendo que la forma que solucione esto rápidamente es que cada usuario pueda definir su contraseña, de tal forma, que las contraseñas no lleven el mismo patrón genérico para todos.

Según este post, os adjunto los vídeos que publicaron de hace unas semanas donde pone cuatro casos prácticos simulados: el hijo inunda de mensajes a su padre para que le compre una moto (flooding), una pareja que discute porque un tercero se mete en la conversación y se hace pasar por uno de ellos, spam en whatsapp y por último interceptación de mensajes (en este caso de forma transparente).

Las medidas para evitar disgustos serían tener cuidado con que revelamos en nuestras conversaciones, fotos, etc. También tener cuidado en el uso de redes Wifi abiertas, y sobretodo tener cuidado con las aplicaciones que usamos en nuestro smartphone y los permisos de acceso que estas tienen.

New Zion Server (2ª parte) – Virtualización y máquinas virtuales

Tal y como hablamos en la entrada anterior, vamos a ir configurando poco a poco un servidor para el hogar y una pieza importante en los días que corren es el tema de la virtualización antes de empezar.

Un entorno de virtualización me va a poder permitir tener varios ordenadores en uno, de tal forma, que desde un punto de vista lógico, accederiamos a ordenadores totalmente independientes con su correspondiente sistema operativo, la realidad es otra, ya que esa serie de ordenadores lógicos de los que hemos hablado físicamente no existirán, si no que compartiran el hardware de un único ordenador físico. ¿Que ventajas tendré? Pues ahorro energético y en esos ordenadores lógicos (a partir de ahora las llamaremos máquinas virtuales) que en mi caso tendrán baja carga de CPU integradas en un único ordenador mejor aprovechado que se encargue del trabajo en lugar de varios ordenadores fisicamente independientes; en otras palabras, seremos mas eficientes en costes de hardware y en costes de consumo eléctrico.

En este caso voy a usar un entorno de virtualización VMWare ESXi que no es mas que una evolución de la extinguida línea de productos VMWare Server. Cuando usaba el viejo servidor, tenía Linux Debian 6 como sistema operativo base nátivo (instalado de forma habitual como siempre) y sobre el propio Linux Debian instalaba VMWare Server que me permitia tener máquinas virtuales: en concreto, en mi caso, tenía una única máquina virtual de Windows 2003 Server, de tal forma que tenía dos sistemas operativos simultaneos en el mismo servidor: Windows 2003 Server y Linux Debian 6 Squeeze, ¿Que ocurría en VMWare Server? Pues que la máquina virtual de Windows 2003 server accedía a un hardware virtual gestionado por VMWare Server, y este a su vez accedia al sistema operativo nátivo (en ese caso concreto Linux Debian) para acceder a los recursos hardware reales.

En VMWare ESXi esto se ha solucionado de mejor manera, todos las máquinas virtuales están por igual y acceden al denominado hypervisor, un pequeño sistema operativo de VMWare basado en Linux que hace de intermediario entre el hardware real del ordenador y las máquinas virtuales, lo que en mi caso anterior con VMWare Server  era un complejo Linux Debian 6 Squeeze.

Comparativa de las capas que hay sin virtualización y con virtualización, usando VMWare Server o VMWare ESXi

Comparativa de las capas que hay sin virtualización y con virtualización, usando VMWare Server o VMWare ESXi

Puestos a funcionar, me he dispuesto a instalar VMWare ESXI con la licencia gratuita proporcionada por VMWare en el servidor. Una vez instalado podremos gestionarlo a través del VMWare vSphere Client, un potente panel que permitirá arrancar y parar cada máquina virtual de forma remota, además de acceder de forma independiente a su teclado, ratón y pantalla.

En mi caso para configurar mi servidor usaré tres máquinas virtuales a través de VMWare ESXi

  • Linux Debian 6 Squeeze: prescindiré del entorno gráfico de Linux y la usaré para servidor web Apache, PHP5, MySQL y tareas programadas (crontab). A ella le dedicaré 1,5GB de RAM.
  • Linux Debian 6 Squeeze: prescindiré también del entorno gráfico de Linux y la usaré para servidor VPN, lo tendré independiente a la máquina virtual anterior para mejorar su seguridad e independencia. A ella le dedicaré 384MB de RAM.
  • Microsoft Windows 2008 Server R2: para tareas permanentes que exijan de un entorno Windows. A ella le dedicaré 2GB de RAM.

De esta forma, ejecutadas todas las máquinas virtuales de forma simultanea, sobran 128MB de RAM de los 4GB de RAM totales disponibles, para así dejar espacio en la RAM al propio Hypervisor de VMWare ESXi.

En concreto el VMWare ESXi en el HP Proliant Microserver N40L función perfecto, pero el estado de ventiladores, voltajes y temperaturas no los muestra en el panel de administracion de VMWare (VMWare  vSphere client) debido a la falta de drivers por parte de HP.

New Zion Server (1ª parte) – HP Proliant Microserver N40L

Recientemente estoy experimentando con un HP Proliant Microserver N40L, un servidor de bajo coste y de bajo consumo eléctrico para el hogar en sustitución a mi viejo servidor, con las siguientes caracteristicas:

  • Procesador AMD Turion™ II modelo Neo N40L a 1,5GHz con dos núcleos.
  • 4GB de RAM DDR3 PC3-10600 ECC sin Buffer. (ampliable a 8GB)
  • Controladora SATA II de 6 puertos.
  • Caddys para discos duros sin extracción en caliente (si conectamos los caddys a una controladora SATA RAID profesional podemos añadir la función de extracción en caliente).
  • Fuente de alimentación de servidor de 200 vátios.
  • 1 x PCI Express 2.0 x16 (25w máximo)
  • 1 x PCI Express 2.0 x1
  • Gigabit Ethernet.

Mi objetivo es usarlo como servidor sustituto a mi anterior servidor (2 x Pentium III y 4GB de RAM ECC con Debian Linux y VMWare Server 2.0), pasándome definitivamente a la arquitectura de 64 bits y teniendo potencia suficiente para funcionar correctamente con un entorno de virtualización VMWare ESXI. A partir de ahora trataré de configurar un servidor seguro para web, crontabs y VPN todo ello sobre máquinas virtuales Linux y Windows 2008 Server.

HP Proliant Microserver N40L

Finalización como directiva en ACUP

Desde hoy, 13 de Julio de 2012, soy oficialmente expresidente de la Asociación Cultural Universitaria Palentina (ACUP), con casi 26 años de funcionamiento ininterrumpido desplazando mas de 2000 socios palentinos a la Universidad de Valladolid.

Firmando las actas la nueva directiva

La nueva directiva firmando las actas:
Samuel y Raúl y al fondo también Soledad

A continuación expongo los logros conseguidos en estos dos años en los que he sido directiva.

Leer mas

Oficialmente INGENIERO TÉCNICO EN INFORMÁTICA DE GESTIÓN en la Universidad Pública de Valladolid (UVa)

Han sido unos años duros desde que decidiese dejar de trabajar para dedicarme al estudio de mi carrera universitaria,  acceciendo sin selectividad gracias a la nota del ciclo formativo de grado superior que cursé (C.F.G.S. en Administración de Sistemas Informáticos).

En la Universidad he conocido mucha gente cercana y algunos amigos míos a día de hoy, también he sufrido y me he enfrentado a uno de los campos mas temidos de mi vida de los números: las Matemáticas y la Estadística que aunque me costó ponerme, finalmente, a base de esfuerzo logré aprobarlas, algunas de ellas sin demasiada dificultad (3 asignaturas de matemáticas y 2 de estadística), precisamente por eso, llego a la conclusión de que a veces las cosas cuestan porque no nos ponemos a ello o lo rechazamos de primeras.

Un trabajo muy interesante y destacable que realicé, junto con otros compañeros, fue el análisis y modificación del Kernel del sistema operativo padre de Linux (Minix, un ejemplo derivado de Unix) de tal forma que el Kernel sea capaz de comunicarse de forma bidireccional, por medio de señales, con una aplicación de usuario que monitorice el sistema, siendo reconocido como un proyecto interesante y ejemplar para alumnos de cursos siguientes (http://www.infor.uva.es/~cevp/ASO/fichs/Proy_interesantes/ Ej_intercambio_inf_ProUsuario_KernelyMM.pdf).

Y finalmente ayer, 20 de Junio, presenté mi proyecto de fin de carrera sobre una aplicación para el control de pago y reserva de plazas para la celebración de un evento público  con un 9.0 de nota final.

Tomos de la memoria presentada en mi proyecto de Fin de Carrera