miércoles, septiembre 13, 2017

Robo de datos en Equifax

Equifax es una empresa americana que recaba información sobre los hábitos de pagos de deudas y facturas de individuos, elaborando un perfil que permite conocer el comportamiento crediticio de los mismos, lo que en EEUU se llama credit score - calificación crediticia -. Las entidades que prestan dinero utilizan esta calificación para saber la probabilidad que tiene una persona de pagar sus deudas y, por tanto, para saber si le conceden un crédito.

Estados Unidos es un país donde las redes de seguridad que tiene el Estado para sus ciudadanos no se encuentran tan desarrolladas como en Europa. Esto hace, según algunos economistas, como Raghuram Rajan, el crédito en Estados Unidos viene a jugar el papel de parte del Estado de Bienestar europeo. Estas calificaciones de crédito algo básico en el sistema financierop americano, dada la importancia que tiene el crédito.

La semana pasada se publíco la noticia que Equifax había sufrido un robo de datos que afecta a unos 143 millones de ciudanos americanos. Entre los datos que robaron de la compañía están números de la seguridad social, fechas de nacimiento, nombres de las personas, direcciones e incluso números de permisos de conducir, información que es extremadamente sensible en un sistema como el americano.

El uso de estos datos por parte de criminales de todo tipo puede dar lugar a fraudes o suplantación de identidades, siendo esto último lo más grave, ya que estos datos pueden usarse para obtener receta médicas, abrir cuentas corrientes, usar los números del carnet de conducir para saltarse las normas de tráfico y cargar a otro las multas, etc.

¿Y dónde se ha producido el fallo de seguridad?. Parece ser que uno de los servicios web de Equifax usaba Apache Struts, un framework usado para crear aplicaciones web usando java. Parece ser que el ataque se realizó el pasado mes de julio aprovechando un problema de seguridad desconocido por los desarrolladors - zero day -. Este software es usado en multitud de productos, lo cual ha obligado a diversos fabricantes de software a repasar sus programas. Por ejemplo Cisco ha publicado un boletín de seguridad de los productos afectados por este fallo. Los desarrolladores de Struts han publicado una carta hablando del este robo de datos.

Por otra parte si es posible hacer software más seguro contra fallos. Se ve todos los días funcionando programas en sistemas de misión crítica como aviónica o sistemas que tienen que estar certificados por diversar autoridades para poder usarse en el entorno crítico para el cual han sido diseñados. Ahora, se puede imaginar el dinero y tiempo que costaría hacer un simple servidor web siguiendo los criterios que se utilizan en otras industrias y teniendo en cuenta que el mundo de internet, muchas veces no importa llegar con un producto completo y pulido, sino con un producto que de una funcionalidad atractiva al usuario y poder alcanzar la suficiente masa crítica que permita a la empresa sobrevivir: La seguridad, muchas veces, puede pasar a un segundo plano, a pesar que cada vez hay más normativa que obliga a cumplir una serie de estándares.

El caso de Equifax con Apache Strut tiene otro punto de vista que hay que estudiar: Cuando en un producto se integra software de terceros, siempre hay que estar atentos al desarrollo y mantenimiento del mismo, especialmente en todo lo relacionado con la seguridad y si ese software manipulará directamente contenido que llegue de los usuarios, que por definición, no se puede confiar en él. Han existido multitud de problemas en programas que usaban librerías desactualizas o mal mantenidas.

lunes, septiembre 11, 2017

Publicar en Instagram desde cualquier navegador

Si accedes a Instagram desde un PC normal con cualquier navegador, no se pueden subir fotografías. La única manera que Instagram permite subir contenido desde un PC es similar que se está usando un navegador móvil, ya que hace un tiempo se incluyó esa funcionalidad.

¿Y cómo se hace eso?. Pues es bastante sencillo, puesto que la mayoría de los navegadores permiten el cambio del User-agent que envían en las peticiones HTTP.Hay que decirle al navagador que mande un User-Agent que se corresponda con un navegador móvil.

Por ejemplo, para el caso de Safari en Mac, es necesario activar el menú de desarrollador. Se despliega el menú de Desarrollo y se pulsa en agente de usuario, despegando el menú. Si se selecciona cualquiera de las versiones que se ejecutan bajo iOS, se podrá acceder a la funcionalidad de subir fotografías desde el ordenador. Hay que tener en cuenta que esta configuración es por pestaña. A continuación, una captura de pantalla donde se ve como configurar el User-Agent en Safari.

Aunque se puede cambiar de manera manual, en el caso de Firefox, lo mejor es usar algún tipo de extensión que se encargue de la gestión del mismo, ya que si no, es necesario tocar la configuracion en about:config. Por ejemplo, User Agent Switcher, pero es necesario configurarlo con un UserAgent más moderno.

En el caso de Google Chrome es relativamente sencillo hacerlo, aunque es más invasivo que en caso de Safari. Para ello, se despliegan las herramientas de desarrollador (cmd + opt + i en Mac) y se activa el "device tool bar" con cmd + shift + m, o pulsando en el icono de las herramientas desarrolladores (el icono que está azul arriba a la izquierda, en la siguiente captura de pantalla)

viernes, septiembre 08, 2017

Linux en sistemas de armas: Destructores clase Zumwalt de la US Navy

Los barcos de la clase Zumwalt son destructores lanzamisiles con capacidades de ataque a tierra, lucha antisubmarina y antiaérea. Con caracterítiscas stealth y con multitud de sistemas automáticos integrados en TSCEI - Total Ship Computing Environment Infrastructure -, buscan ser más baratos de operar y con menos tripulación que barcos de tamaño y misiones similares. Sim embargo, dada las tecnologías implicadas, los costes de desarrollo se dispararon dejando la clase sólo una serie de tres barcos.

La particularidad es que el TSCEI está implementado en 16 contenedores fabricados por Raytheon llamados electronic modular enclosures usando componentes COTS. Estos contenedores protegen a la electrónica que va alojada en su interior de vibraciones, golpes e interferencias del exterior. La misión de estas granjas de servidores es controlar todo el barco: sensores, armamentos, motores, rumbo, gestión de daños, tuberías,... . Los servidores instalados en estos contenedores son en su mayoría blades de IBM ejecutando Redhat Linux.

Los diferentes módulos se comunicacan entre si usando protocolos IP, con adaptadores especiales llamados DAP - que también usa Linux - en aquellos equipos que no tengan conectividad IP nativa.

La presentación de datos se realiza en consolas que utilzan procesadores Intel y que ejecutan un sistema de virtualización - LynxSecure - encima del cual se ejecutan varias instancias de Linux.

Referencias

jueves, septiembre 07, 2017

Linux en sistemas de armas: SCOMBA de la Armada Española

SCOMBA (Sistema de COMbate de los Buques la Armada) es un sistema de combate desarrollado por Navantia para los buques de la Armada Española con la intención de ofrecer un sistema base común al que se le añaden módulos que hacen de interfaz con los diferentes sistemas del buque. Ofrece un hardware estándar y una capa de presentación común en todos los sistemas del buque, adaptándolo luego a las misiones del mismo.

Una de las decisiones en el desarrollo de sistema de combate fue usar componentes COTS, es decir, usar elementos que ya existen en el mercado sin necesidad de hacer desarrollos específicos para el sistema de misión que ate a un solo proveedor de hardware y cuya evolución suele ser más lentas. En este caso SCOMBA usa ordenadores x86 y como sistema operativo usa Redhat Linux encima del cual se ejecuta un middleware que permite aislar los servicios del sistema del resto de la plataforma.

Referencias

domingo, septiembre 03, 2017

Evitar la reutilización de procesos en MacOS X

A pesar de llevar más de diez años usando MacOS X, hay una cosa que no he descubierto hasta hace un par de días: Como ejecutar nuevos procesos de la misma aplicación. Si, cuando pulsas en el icono de la aplicación (por ejemplo, Terminal.app), si está ejecutándose, no crea una nueva, sino que reutilia la instancia anterior. Lo que no sabía es que con el comando open y las opciones -a y -n se lanza un proceso nuevo. Si además, queremos que este proceso no nos abra las ventanas viejas que pueda tener almacenadas, se usa -F.

Por ejemplo, si lanzamos desde el Dock una instancia de Safari y queremos querer otra nueva:

$ open -n -F -a "Safari.app"

Lo curioso es que esta sencilla orden me permite volver a usar los escritorios virtuales como lo hacía hace más de diez años en Linux usando fvwm, donde en cada uno de los escritorios ponía los procesos que me interesaban, especialmente xterm. En mi caso, lo que más me interesa es colocar en los escritorios ventanas del Terminal.app o del Safari.app. Pero claro, el sistema trata a todas las ventanas de un mismo proceso como una entidad única, con lo cual, si movía una venta a otro escritorio, me movía todas las del proceso. Sabiendo que con open puedo ejecutar nuevos procesos, mi problema queda solucionado y puedo volver a usar el sistema de escritorios virtuales como a mi me gusta.