viernes, mayo 30, 2008

Google App Engine Cache API (memcache)

Sigo con bastante interés Google App Engine, la plataforma para la construcción de aplicaciones web de API. Entre las mejoras presentadas en las conferencias Google I/O está el memcache un API que pemite el acceso a una caché distribuida donde la información se almacena en memoria para su rápido acceso.

Este API está basado en el proyecto de fuentes abiertas memcached creado para aumentar el rendimiento de Livejournal y que cuenta con un despliegue de más de 200 máquinas en Facebook.

Este tipo de instrumentos en aplicaciones web permiten reducir el tiempo de proceso y presentación de las peticiones que se reciban:

  • Prerenderizar partes de una aplicación web que no van a cambiar y que se van a cachear en memoria, con un rápido acceso.
  • Evitar consultas a disco o base de datos.

El API que implementa es muy simple, permitiendo añadir objetos con un simple añadir identificados por una clave, modificarlos y borrarlos, y posteriormente la misma operaciones están disponibles pero para múltiples objetos, con una clave que se genera a partir de un prefijo determinado. También existe funciones para incrementar o decrementar el valor de objetos numéricos.

Al igual que el resto de la plataforma de aplicación, el API está implementado en Python. En el caso de memcached existen APIs para mucho más lenguajes (Perl, Python, PHP,C,...)

Referencias

Utilidades Unix en Win32 nativas

Muchas veces es cómodo tener ciertas utilidades Unix en Windows para realizar tareas con shells scripts (las posibilidades que ofrece la shell de texto de Windows, cmd.exe, son limitadas). Hay mucha gente que conoce Cygwin, que es una capa de emulación que implementa un API compatible con Unix encima del API Win32, usando dicha capa ,las distintas utilidades Unix para portarse a Windows sin modificarlas demasiado.

Sin embargo existe un una compilación de utilidades Unix de manera nativa en Windows, sin necesidad de emulación ninguna, en especial de la sintaxis del sistema de fichero Unix. Utilidades como grep, egrep, gawk, sort o el shell zsh son útiles para procesos de ficheros de logs rápido en Windows, que es el uso que le doy mayoritariamente.

También lleva bastante tiempo está disponible Windows Services for UNIX Version 3.5, un conjunto de herramientas portadas por Microsoft para la ejecución en Win32 (no está soportado, sin embargo en Windows Vista).

miércoles, mayo 28, 2008

LOGSE vs BUP y COU, por el director de la ETSIT de la politécnica de Madrid

Leyendo la entrevista con Guillermo Cisneros, director de la ETSIT (Telecomunicaciones) de la Universidad Politécnica de Madrid, veo la siguiente perla:
Los estudiantes llegan con un 21% de los contenidos que había con la EGB y el BUP. Esta variable es mucho más importante que la nota de corte. Los alumnos tienen unas carencias importantes que requieren una adaptación.
Un claro ejemplo de como nuestros políticos se han cargado la enseñanza secundaria, como los contenidos en materias como matemáticas y física han caído un 30%, y como, en una economía global, donde deberíamos competir por conocimiento, lo único que hacemos es competir por obra de mano barata, incluyendo a las TIC (y si no, recordad el artículo de España como paraíso de las cárnicas^W quiero decir, de los centros de software)

Las propuestas de las entidades de gestión a nivel europeo: Crimilizar y controlar aún más

Cuando leía que los artistas quieren que no pagar el canon sea un crimen,que ahora las denuncias sean por la vía penal, no daba crédito a la información, me preguntaba como se podía tener la cara tan dura. Tras leer el artículo, decidí irme a la propuesta de GESAC que es el lobby que a nivel europeo asocia a todas las entidades de gestión de derechos de autor. Allí, en PRIVATE COPYING tenemos acceso al documento GESAC's Proposals, donde puede leerse las propuestas del lobby de las entidades de gestión a la Comisión Europea para cobrar el cánon digital.

Veamos una a una las mismas:

Member States should ensure that importers be obliged to declare to the PCRM all the products that have crossed the national border and are subject to the payment of the private copy remuneration. Also, payment should be due when the product crosses the national border and not when it is put into circulation.
En un supuesto mercado común, donde no hay fronteras para el tráfico de mercancias, cualquier material subceptible de ser gravado con el cánon por copia privada, debe de pagarlo cuando entra en la frontera de un país.

PCRMs should have access to the information of VAT - notably the European VAT Information Exchange System (VIAS)- and EU customs authorities as regards cross-border movement and marketing of products subject to the payment of private copying remuneration.
Las entidades de gestión de derechos de autor exigen tener acceso a los registros de IVA de las empresas. Aunque claro, luego ellas procuran que sus cuentas sean los más opacas posibles. Aquí en España, tenemos que el Tribunal de Cuentas investiga a la SGAE por favores políticos. Curiosa reciprocidad. Aún más curioso que en el siglo XXI se permita un gremio privado recaudador de gabelas.

PCRMs should have the right to audit debtors of the private copying remuneration. If the debtor is located in a Member State other than the Member State where the PCRM operates (i.e.: cases of distance sales), the latter may appoint a sister PCRM to conduct the auditing.
Las entidades de gestión quieren el derecho de poder auditar a quien tenga deudas por el pago de canon de derechos privados.

Liability for the non-payment by importers or manufacturers of the private copying remuneration should be extended to the outlets of the products. These outlets should include i.a. distributors, retailers, organisers of trade fairs and Internet platforms for resellers of products subject to payment of the private copying remuneration. Las responsabilidades de cobra de los derechos de autor debe de extenderse a todos los responsables de la cadena de ventas.

Member States should consider the non payment of the private copying remuneration as a criminal offence subject to penalties with a true dissuasive effect. Esto es quizás, lo más grave de la propuesta: debe ser delito penal no pagar el canon digital. La gente no es tonta, y sabe que por sus backups, por sus fotos o por sus datos está pagando un dinero que no usa para copia privada. Todo el mundo sabemos donde buscar CD y DVD sin cánon - yo no quiero mantener a este gremio de reminiscencia medieval -.

Member States should ensure that distance sellers, and not consumers, be subject to the payment of the private copying remuneration applicable in the country where the costumer is located.

Si compro CD's en EEUU y me los mandan a España, la empresa en EEUU tiene que pagar el cánon digital. De traca. Luego no me extraña que haya gente que se dedique al contrabando de soportes o discos duros.

Articles 5(3), 33(1) and 38(1) of the Brussels I Regulation, articles 3, 4, 5 and 20 of Regulation 805/2004, articles 4(1), 6(1) and 8(1) of the Rome II Regulation, and article 5(2) of the Berne Convention, or the equivalent domestic provisions, should be applied to the non-payment of the private copying remuneration due in a country other than that where the distance seller is located, if need be by introducing the necessary amendments to these or other EC or national legislations. Exigen la modificación de la legilación europea para poder implementar el cobro de los derechos de copia privada cuando los productos se compren en países que no tienen legislación sobre la misma.

Member States shall ensure that intermediary service providers do not grant access to Internet sites from which products are being sold without the payment of the private copying remuneration due in the country where the customer is located.

Una más de censura en Internet. Si encuentro una tienda que me venda CD's sin canon, el acceso a la misma debe de ser cortado por los proveedores. Las sociedades de derechos de autor actuando como policia. A esto le podemos añadir que SGAE quieren que los proveedores de acceso les haga de policia.

Todo esto, para que nos vayamos haciendo una idea de cuales son las intenciones de gente como la SGAE y similares. Luego se quejarán de mala fama.

martes, mayo 27, 2008

Linux en los submarinos nucleares estaunidenses y británicos

La Clase Virginia de submarinos estadounidenses está pensada como submarinos de ataque multifunción tras el cambio de orientación del arma submarina tras la caída del Muro de Berlín. Se busca un submarino de ataque con capacidad oceánica pero que a la vez sea capaz de intervenir en aguas litorales (shallow waters) - desplegando comandos -, apoyar despliegue de tropas, ataques a naves de superficie y objetivos terrestres a través de misiles. Estos objetivos son un giro radical de la clase como sustitución de la Clase Los Ángeles (realmente la Clase Seawolf, de la cual sólo se construyeron tres unidades).

En un submarino es fundameltal el SONAR, el elemento encargado de escuchar el sonido en el óceano para descubrir los posibles enemigos, en especial el sonar pasivo. En las dos clases anteriores, Los Ángeles y Seawolf, el hardware y el software del SONAR eran elementos diseñados y fabricados bajo especificaciones militares. Estos equipos son caros de mantener, difíciles de actualizar - en especial la electrónica -. El sistema de SONAR de la clase Virginia es el AN/BQQ-10(V), el cual integra en un mismo sistema que combina técnicas de sonar pasivo y activo, usando como sensores un array esférico situado en la proa del submarino, un array activo situado bajo el array esférico, un array para detección cercana situada en la vela (torre),arrays de apertura ancha (WAA Wide Aperture Array) pasivo situado en los flancos del casco y arrays remolcados. Todos estos sensores generan información que es tratada en ordenadores estándares, lo que se conoce en el mundo militar como COTS, commercial off-the-shelf: componentes estándares. Esto permite, para empezar bajar un orden de magnitud el coste del desarrollo del sistema.

El sistema original empezó estando construido por módulos VME, posteriormente por estaciones de trabajo HP, hasta que a principios del año 2000, se sustituyó por sistemas de 8 procesadores Pentium III de Compaq y posteriormente en servidores duales Xeon. Estos sistemas ejecutaban Linux, ofreciendo un entorno en los que los programadores se sentían cómodos, no necesitaban sistemas de desarrollo propio para la gestión de los recursos hardware y aprovechaban las mejoras que venían desde el mundo de fuentes abiertas.

También se han usado clusters con Linux sobre XServer G4 de Apple. El uso de los XServer G4 en el 2004 se debe al excelente aprovechamiento de energía que realizaban esos ordenadores, así como del poco calor que disipaban, algo muy importante dentro de un submarino. Los ingenieros de Lockheed Martin consiguieron más potencia de cálculo y análisis de señales con ayuda de esos clusters de alto rendimiento que con procesadores digitales de señales específicos.

Como redes de interconexión estos sistemas utilizan gigabyte ethernet o fiber channel, dependiendo de la aplicación. Como curiosidad las fragatas españolas F-100 utilizan una red ATM de fibra óptica y sistemas Windows NT

Los submarinos británicos también llevan usando sistemas COTS desde hace bastante tiempo para desde sus submarinos de la clase Vanguard, la clase Astute hasta la Clase Trafalgar. Todos estos submarinos utilizan el Submarine Command System, desarrollado originalmente sobre Solaris/Sparc y que se ha acabado portando a hardware x86 utilizando Windows. Sin embargo, el sistema de sonar que utiliza la clase Astute (Sonar 2076) utiliza Linux para su funcionamiento.

Referencias

  1. Virginia Class Submarine
  2. A Revolutionary Use of COTS in a Submarine Sonar System
  3. Linux in Government: Navy Sonar Opens New Opportunities for Linux Clusters and IBM G5 servers
  4. Developments in Sonar Arrays.

Technorati Tags:

lunes, mayo 26, 2008

Lecciones del fiasco de Debian y Openssl

Hace algún tiempo saltó la noticia de la Debilidad criptográfica de las claves ssh generadas por la distribución Debian (y distribuciones derivadas). Esto se debe a una modificación del código del paquete OpenSSL para evitar una advertencia de uso de memoria no inicializada, dejando como única fuente de datos aleatorios para iniciar el generador de números seudoaletarios el PID del proceso. Esto causa que sólo haya 2^15 claves posibles (por ejemplo, HD Moore, creador de Metaexploit las ha calculado).

Aparte de tener que regenerar claves ssh y certificados, hay lecciones que aprender, según Russ Cox de este tipo de fallos, en especial de la cascada de que ha llevado a este problema. Russ los resume de la siguiente manera:

  • Los códigos excesivamente inteligentes son difíciles de mantener y si no se entiende la magia negra que hay detrás ,una modificación puede tener consecuencias catastróficas (en este caso, es usar memoria no inicializada para obtener entropía para el PNRG)
  • Falta de organización del código OpenSSL.
  • La comunicación entre el mantenedor de Debian y el equipo de OpenSSL no ha sido de lo más clara posible (en especial por no aportar bastante información de contexto sobre la advertencia de la herramienta usada para detectar la memoria no inicializada). Pueden verse alguno de los mails en el post de Russ.
Me quedo del artículo con dos puntos:
  • Mejor código claro y comprensible, que facilite la revisión por terceros y que no utilice magia negra para implementar según que optimización o funcionalidad.
  • En las listas de correos, hay que exponer claramente los problemas que se detectan, a ser posible explicando las diferencias en el código fuente.

sábado, mayo 24, 2008

¿Cuanto nos cuesta RTVE española en impuestos?

Mientras en un zapeo en TVE1 he visto el anuncio de ese icono tan español que nos va a representar en Eurovisión, producto de la factoría Buenafuente, me he ido a la página de TVE

Y me ha dado por pensar. ¿Qué pasaría si cerráramos todas las TV públicas y cuanto se podría bajar los impuestos a los ciudadanos y empresas, en especial en esta época de crisis?. Por ejemplo,para año 2007 se el presupuesto de RTVE fue de unos 1210 millones de euros.En el 2002 el presupuesto de Canal Sur era aproximadamente de unos 195 millones de euros, los Datos de Telemadrid hablan de unos 157 millones de gastos. En las locales ni entramos.

Lo complicado es saber - porque no te lo van a reconocer nunca qué cantidad de dinero público va a parar a estas TV, cuyo único motivo de su existencia es cantar las loas en los informativos al gobierno de turno. Curiosamente, mucha gente las defenderá comentando que son un servicio público (no sabía yo que Noche de fiesta, Arrayán o Operación Triunfo fueran servicios públicos).

Actualización

Si se ve la audiencia del Eurovisión se puede comprender perfectamente porque los políticos no quieren bajo ningún concepto desprenderse del circo^W,digo de la Tele pública (Telediario de las tres). País de pandererta...
Por cierto, ¿cuanto se va a embolsar Buenafuente por este engendro que hemos patrocinado todos a través de los impuestos?.

Technorati Tags:

viernes, mayo 23, 2008

Placa mini-itx con micro Intel-Atom

Para lanzar su nueva plataforma móvil, Atom Intel acaba de poner a la venta una placa mini-itx, la Intel D945GCLF, con una ranura para DDR2, dos puertos SATA, unb puerto IDE, un slot PCI, una chipset de video GMA950, USB, Firewire, puerto paralelo, puerto serie y puertos PS/2

Esperamos a que salga los primeros test de la plataforma para compararla respecto a las mini-itx basadas en los chips de Vía. (Visto en Ars Tecnica)

miércoles, mayo 21, 2008

Danger from the Deep

Durante muchos años me gustaron los simuladores, en especial los de vuelo y los de submarinos. Disfruté mucho con el Silent Service II. Buscando hoy en información sobre submarinos de la segunda guerra mundial, me he puesto a buscar información sobre simuladores que se ejecuten bajo Mac OS X. He dado con uno de fuentes abiertas que se llama Danger from the Deep. Este simulador es de fuentes abiertas (GPL) y el artwork y música están publicados con licencia creative commons.

Podéis mirar en la galería algunas capturas del programa funcionando.



Para compilar desde fuentes es necesario tener instalado SCONS, y en principio compila sin problemas en Windows y Linux.

Technorati Tags:

Guía para configurar de manera segura dispositivos que ejecuten Cisco IOS

(vía Cisco IOS Hints and tricks) Cisco acaba de publicar Cisco Guide to Harden Cisco IOS Devices, una guía que explica como configurar de manera segura dispositivos que ejecuten Cisco IOS. El documento tiene unas ideas generales y luego técnicas para securizar el plano de gestión (aquellos procesos encargados de recibir tráfico de gestión en el router), el plano de control (aquellos procesos encargado de cálculo de rutas y mantenimiento de todo el control de red) y plano de datos (aquellos procesos encargado de mover paquetes hacia su destino)

martes, mayo 20, 2008

RISC vs. CISC en los procesadores embebidos

Jon Stokes acaba de publicar RISC vs. CISC in the mobile era, una descripción de la microarquitectura que Intel está preparando para los mercados embebidos, en competencia con los núcleos ARM - el actual dominador -. Intel quiere llevar el juego de instrucciones (ISA) x86 a este mercado y aprovechar el músculo que supone disponer de un conjunto de instrucciones compatible desde el micro que puede llevar un teléfono móvil hasta los servidores de alta gama. En este segmento es fundamental el bajo consumo de potencia y tener potencia de ejecución.Intel ha llamado a esta nueva microarquitectura Atom.

Intel ha optado por implementar una microarquitectura muy simular a los primeros Pentium Pro: un sistema que decodifica instrucciones a las microoperaciones que son las que ejecutan el núcleo de ejecución. Este decodificador tiene dos unidades para las instrucciones más simples y otra unidad basada en una ROM con microcódigo para las más complejas. Esto complica el diseño del chip y aumenta el consumo de energía del mismo, todo para poder soportar el juego de instrucciones x86. Intel utiliza multithreading (SMT) para aumentar el rendimiento del chip y evitar que tanto esta etapa de decodificación como el núcleo de ejecución estén parados esperando información que tiene que llegar de la memoria y así amortizar toda la etapa de decodificación. Jon apunta en que en un futuro el micro incorporará ejecución fuera de orden.

Aunque usar un juego de instrucciones como x86 lleva a estas penalización, Intel confía en las mejoras en los procesos de fabricación de sus factorías para que esta desventaja inicial con la que parte respecto a ARM pueda desaparecer en un futuro. ARM, frente a Intel, sólo diseña sus propios micros, y se licencias los diseños de los mismos, siendo fábricas de terceros, los encargados de su fabricación (Samsumg o TSMC). Sin embargo, estos fabricantes evolucionan sus procesos de fabricación cada vez más rápido. Por otra parte, ¿cuanto código x86 es realmente aprovechable en estos dispositivos?

Technorati Tags: ,

domingo, mayo 18, 2008

Las cuentas de la SGAE: Un 250% más de beneficio y previsiones para llegar a los 500 millones de euros

Cuando esta mañana leía la noticia en el Economista,La SGAE gana un 250% más... y lanza un plan para ingresar 500 millones, me quedaba sorprendido: Estas señores que siempre se están quejando de las pérdidas debido a la piratería, de lo poco que el Estado invierte en sus obras o de lo malo que es Internet y las operadoras que no colaboran con la caza de los usuarios de redes P2P, sus beneficios han subido en un 250%. Su plan estratégico de crecimiento preveé llegar a finales del 2011 ingresando unos 500 millones de euros. No está mal recordar estos datos cuando empiecen la próxima quejas de que los autores no reciben compensación por sus obras, aunque intuyo que tendrán que financiar obras como La construcción del centro tecnológico de producción y formación de la Sociedad General de Autores y Editores que están realizando en La Cartuja.

Resulta increible ya el poco pudor que tienen a la hora de publicar sus resultados, y como están persiguiendo a quienes se atreven a investigar todo lo que se mueve alrededor del canon que se le paga a la SGAE.

No me resultería extraño, viendo las tarifas de la SGAE que pronto añadan a dicho formulario una apartado de canon sobre ADSL en función de la velocidad de descarga. (por cierto, no dejéis de ver por todo lo que cobran ....).Más en en la historia en Barrapunto

Technorati Tags:

viernes, mayo 16, 2008

Open GPS Tracker

Acabo de encontrar un pequeño proyecto sobre GPS, Open GPS Tracker. Este proyecto usa un móvil, un módulo Tyco Electronics A1035D GPS, un Motorola c168i y un microcontrolador Atmel ATTINY84-20PU AVR para montarse un pequeño dispositivo que manda la posición actual a través del móvil.
Lo más interesante es la posibilidad de adaptar el firmware del microcontrolador a nuestro gusto, con el uso de un pequeño programador y un conjunto de herramientasy por supuesto con las las fuentes del firmware (con una buena explicaci?n de como está diseñado el software y el módulo.

Technorati Tags:

Eliminando de Linux la sincronización a través del "Big Kernel Lock"

Linux se diseño originalmente para funcionar en sistemas con un sólo procesador. Conforme fue evolucionando, obtuvo soporte para multiprocesador (SMP). Todas estas migraciones empiezan con la implementación de un mecanismo de sincronizaci?n(Big Kernel Lock) que evita que haya más de un hilo que esté ejecutando código del kernel. A partir de aquí, empieza a utilizarse mecanismos de contención más finos, de tal manera que se permita que existan varios hilos de ejecución ejecutándose en el kernel, en diferentes partes del sistema. Cada subsistema utiliza sus propios objetos de sincronización.
Sin embargo, Linux tiene todavía diversos sitios donde utiliza el big kernel lock, implementado en la función lock_kernel(). Segun un correo mandado por Ingo Molnar a la lista de desarrollo del kernel existen más de 1300 puntos en el kernel que utilizan este mecanismo de sincronización que reduce el paralelismo y crea problemas de latencia cuando se utiliza en sistemas en tiempo real.
Acaban de empezar a remozar todas esas zonas del kernel donde se utiliza el mecanismo implementado en lock_kernel() para sustituirlo por mecanismos que permitan la interrupción, cosa importante para adaptar el sistema a especificacioenes de tiempo real y poca latencia.

Technorati Tags:

miércoles, mayo 14, 2008

Un bug de 25 años en los BSD: seekdir()

(vía reddit.programming) Ayer leyendo los correos de la lista de Samba vi una incidencia cuando se utilizaba en cualquier sistema con código derivado de *BSD (FreeBsd, NetBSD, OpenBSD o MacOS X), existía un problema cuando los ficheros se servían desde un sistema distinto a UFS. Esta mañana encontraba When seekdir() Won't Seek to the Right Position", la explicación de porqué Samba no funcionaba correctamente en estos sistemas con esta configuración (si se instala directamente desde las fuentes, Samba moría con una llamada a abort(), en los ports elimaban el check, pero tampoco funcionaba de manera correcta).
La gente de Samba documentaba el tema de la siguiente manera:
This is needed because the existing directory handling in FreeBSD and OpenBSD (and possibly NetBSD) doesn't correctly handle unlink() on files in a directory where telldir() has been used. On a block boundary it will occasionally miss a file when seekdir() is used to return to a position previously recorded with telldir().
Aproximandamente, la explicación de lo que sucede es la siguiente:si usamos un código para recorrer directorios,usamos telldir() para guardar la posición actual, y posteriormente volvemos a ella con seekdir(), si ha ocurrido un borrado (unlink()) de alguno de los elemenos, no vuelve a la posición correcta.
Esta historia lleva a unas pocos reflexiones interesantes.
  • No por tener las fuentes los fallos aparecen y se corrigen antes. Hay que saber explicar y proporcionar los test que llevan a la reproducción de los fallos para corregirse y sobre todo, hay que saber cómo y donde buscar.
  • A veces, la gente se preocupa de programar con Linux como objetivo, siempre cuesta un poco de tunning por mucho configure y portable que sea el código que funcione en otros Unix (con o sin fuentes) algunos programas.
  • Se tiende a establecer workarounds para fallos de los sistemas, cosa que luego los enquista y hacen que para que funcione tal o cual programa se tenga que mantener un código de compatibilidad que acaba por frenar la evolución. Windows es la prueba de ello.
  • A veces la comunicación entre diferentes proyectos de fuentes abiertas es complicada, en especial cuando hay que demostrar de quien es la culpa

UGT defiende la inversión del dinero de las pensioens en la Banca

Siguiendo con Propuesta de la banca española sobre invertir en ellos el dinero de los fondos de pensiones para que tapen sus agujeros, hoy nos llegan que el sindicato UGT estaría de acuerdo conque se produjera dicha inversión, siempre que se garantizaran ciertas medidas de seguridad. Lo que habría que explicarle a UGT, es que las inversiones tienen un riesgo. Si se está dispuesto a ganar dinero, se tiene que estar dispuesto a perderlo. No está mal recordar que no todas las inversiones que se hacen acaban siendo rentables y que la que ahora pide ayuda, es la misma que ha estado inundando el el sistema financiero de dinero a bajo interés (alentados por el monetarismo basado en la emisión de deuda), que ha causado la inflación y la subida de las viviendas en España. Lástima que no nos enseñen más economía básica en la Enseñanza Media. Probablemente, seríamos más inmunes a según que historias, y los políticos tendrían mucho más difícil vendernos la moto.

Technorati Tags:

La historia del Amiga: Game On!

Ars Technica acaba de publicar un nuevo capítulo de la historia del ordenador Amiga, Game on! donde aborda cuales fueron los juegos clave que lanzaron al Amiga como una de las mejores plataformas de desarrollo de juegos. En opinión del autor, estos fueron Mind Walker, Defender of the Crown, Faery Tale, Dungeon Master, Xenon 2, Shadow of The Beast y Lemmings

De los clásicos anteriores, mencionar a las compañias The Bitmap Brothers, autores del Xenon II (lo conocí en PC y el juego era espectacular) y Psygnosis, los autores del Shadow of The Beast (espectacular scroll Paralarax hasta 12 planos) y del Lemmings (Oh No!).

Para gustos, hay colores :), aunque si voy a dar mi opinión de alguno de los juegos que conocí en el Amiga 2000 de un buen Amiga (lástima que dejaras tu goto1982.net, aunque como sospecho, tiene tareas más gratificantes entre manos). Para un aficionado por aquella época a los simuladores de vuelo como yo, el Jet Fighter 1, aunque el Amiga no era especialmente ágil en mover gráficos vectoriales 3D. El otro juego que conocí fue el clásico Monkey Island, en especial la espectacular que tenía el juego.

jueves, mayo 08, 2008

Open Source CERT: Un sitio para distribuir información de seguridad de programas de fuentes abiertas

Acabo de conocer la existencia del Open Source Computer Emergency Response Team un sitio web mantenido por voluntarios para distribuir información sobre problemas de seguridad presentes en software de fuentes abiertas. El objetivo es ayudar tanto a los grandes proyectos de fuentes abiertas como aquellos proyectos más pequeños que no tienen la suficiente infraestructura para poder tener su propio equipo de seguridad. Este proyecto está apoyado por Google, con el objetivo de que la información de los problemas de seguridad y las correcciones lleguen cuanto antes a los usuarios de los programas.

Technorati Tags:

Propuesta de la Banca Española: Que la Seguridad Social los financie

Cuando esta mañana escuchaba en la radio y leía la propuesta de las asociaciones de Banca para que el Estado utilice el Fondo de Reserva de la Seguridad Social para comprar bonos y células hipoticarias. Pensar que la Banca, que se ha dedicado a las hipotecas de riesgo, que con préstamos baratos con las consecuencias que ha traído este monetarismo, ahora resulta que, como tienen riesgo de impago, para seguir ganando pasta, tenemos que ser los demás los que paguemos semejante disparate. Hay que tener la cara de cemento armado - nunca mejor dicho - para plantear siquiera en público semejante disparate: las pérdidas que se las paguemos todos, mientras que los beneficios se los quedan ellos.
Una cosa que tiene delito es el caso de las Cajas de Ahorros, también involucradas en esta petición. Las Cajas las controlan los partidos políticos de cada Comunidad Autónoma, y por tanto el Poder Político.
De esta manera, podrían seguir prestando dinero a las inmobiliarias, seguirán ganando pasta gansa, las inmobiliaras lo mismo, y la vivienda seguirá subiendo. Más en La alternativa de los bancos: usar el fondo de pensiones para frenar la crisis crediticia.

Technorati Tags:

miércoles, mayo 07, 2008

Controlando el firewall de Windows en la Linea de comandos:netsh

Hace poco publiqué un un pequeño tutorial del firewall de Windows XP. Entre las cosas que me dejé pendientes en el post fue el manejo del firewall a través del comando netsh
netsh es un programa capaz de manejar toda la configuración de red de los sistemas Windows, incluyendo el firewall. Netsh tiene diversos contextos, cada uno de los cuales es capaz de manejar un componente del sistema de red.
Para manejar el firewall el contexto que se utiliza es firewall. Para acceder a él ejecutamos la herramienta y tecleamos firewall. En este contexto podremos ir introduciendo comandos que permiten configurar el firewall a nuestro gusto.
c:\Documents and Settings\terron>netsh
netsh>firewall netsh firewall>

Algunas definiciones

Antes de manejar el firewall de Windows, a continuación la terminología que utiliza Microsoft para el firewall:
  • Perfil: Un conjunto de parámetros de configuración. Puede ser un perfil de dominio o estándar
  • Servicio: Microsoft ha creado una serie de conjuntos de servicios determinado en el firewall. Estos servicios son ficheros e impresoras, administración remota,escritorio remoto, universal plug and play y todos. Esto nos permite especificar grupos sin necesidad de tener que saber los puertos que utilizan.
  • Alcance: A la hora de especificar qué direcciones IP se le permite el acceso a través del firewall, Microsoft permite especificar todas las direcciones (ALL), subred (SUBNET) que indica direcciones IP que pertenecen a la misma subred a la cual el ordenador está conectado, personalizada (CUSTOM) especificando la lista de direcciones que pueden acceder a través del firewall.

Obteniendo información sobre la configuración

El primer comando que puede probarse es ver cual es ver cual es la configuración actual del firewall. Para ello usamos show opmode
netsh firewall>show opmode

Configuración del perfil Dominio (actual):
-------------------------------------------------------------------
Modo funcional                                = Deshabilitar
Modo de excepción                             = Habilitar

Configuración del perfil Estándar:
-------------------------------------------------------------------
Modo funcional                                = Habilitar
Modo de excepción                             = Habilitar

Configuración del servidor de seguridad Conexión de área local:
-------------------------------------------------------------------
Modo funcional                                = Habilitar

Configuración del servidor de seguridad Conexiones de red inalámbricas:
-------------------------------------------------------------------
Modo funcional                                = Habilitar

En este listado podemos ver que está activado el perfil de dominio. Dentro de este perfil el Modo funcional implica que el firewall está desconectado. Por otra parte la política del dominio impone que no se deben estar habilitadas las excepciones. Puede verse en el gui (firewall.cpl) la configuración actual:

También vemos cual es el estado del firewall en las diferentes interfaces de red que tiene el sistema (en este caso la Interfaz de red local y una intefaz inalámbrica). Es importante saber que la información respecto a las intefaces sólo es válidad si la configuración del perfil indica que se permiten la excepciones. Sino se permiten éstas, da exactamente igual la información que aporte esta entrada o lo que se intente configurar sobre las excepciones.

También puede verse el estado general del firewall. Con este comando, además de información sobre el estado del firewall (activado, desconectado) se obtiene varios parámetros de configuración del mismo,así como los puertos que están abiertos por defecto.

netsh firewall>show state
Estado del servidor de seguridad:
-------------------------------------------------------------------
Perfil                               = Dominio
Modo funcional                       = Deshabilitar
Modo de excepción                    = Habilitar
Modo de resp. difusi¢n/multidifusi¢n = Habilitar
Modo de notificaci¢n                 = Habilitar
Versi¢n de directiva de grupo        = Firewall de Windows
Modo de administraci¢n remota        = Deshabilitar

Puertos actualmente abiertos en todas las interfaces de red:
Puerto Protocolo Versi¢n  Programa
-------------------------------------------------------------------
137    UDP       IPv4     (null)
139    TCP       IPv4     (null)
138    UDP       IPv4     (null)
3389   TCP       IPv4     (null)
445    TCP       IPv4     (null)
La información de estado del firewall es la siguiente:
OpciónDescripción
PerfilIndica el perfil de firewall que está activado. Puede ser el perfil de dominio - cuando el sistema detecta que está conectado a una red manejada a través de un dominio de Windows - o el perfil estándar, el que se usa en caso contrario.
Modo funcionalIndica si el firewall está activado o no.
Mode de excepciónIndica si están activadas las excepciones o no.
Modo de resp. difusión/multidifusión Controla si debe de responderse con el firewall activado a peticiones multicast o broadcast que lleguen al sistema.
Modo de notificación Controla las notificaciones al usuario cuando un programa intenta escuchar en un puerto determinado.
Versión de directiva de grupo Quién ha configurado el sistema.
Modo de administración remota Si se habilita esta opción permite que se abran los puertos necesarios para la administración remota del equipo (MMC,registro de eventos,...)
Por último se muestra un listado de puertos y para qué protocolos están abiertos en el firewall. Esta información puede obternse también por perfil y por interfaz de red presente en el sistema. Esta información es la que se muestra en la pestaña avanzadas de GUI del firewall:
netsh firewall>show portopening
Configuración de puerto para el perfil Dominio:
Puerto Protocolo Modo          Nombre
-------------------------------------------------------------------
139    TCP       Habilitar     Servicio de sesi¢n de NetBIOS
445    TCP       Habilitar     SMP sobre TCP
137    UDP       Habilitar     Servicio de nombres de NetBIOS
138    UDP       Habilitar     Servicio de datagramas de NetBIOS
3389   TCP       Habilitar     Escritorio remoto

Configuración de puerto para el perfil Estándar:
Puerto Protocolo Modo          Nombre
-------------------------------------------------------------------
139    TCP       Habilitar     Servicio de sesi¢n de NetBIOS
445    TCP       Habilitar     SMP sobre TCP
137    UDP       Habilitar     Servicio de nombres de NetBIOS
138    UDP       Habilitar     Servicio de datagramas de NetBIOS
3389   TCP       Habilitar     Escritorio remoto
La siguiente tabla resume todos los comandos show y que información se obtiene de su ejecución
ComandoDescripción
show allowedprogramMuestra los programas a los cuales se le permite escuchar en puertos a la espera de conexiones.
show configMuestra la configuración actual.
show currentprofileMuestra cual es el perfil actual.
show icmpsettingMuestra la información de configuración del firewall para el protocolo ICMP.
show loggingMuestra la información de configuración del registro de seguridad.
show multicastbroadcastresponseMuestra la configuración de la respuesta del firewall a las peticiones de broadcast
show notificationsMuestra cual es el estado de las notificaciones al usuario
show opmodeMuestra el modo de operación del firewall.
show serviceMuestra los servicios que están permitido escuchar.
show stateMuestra el estado del firewall.

Configurando servicios

Los servicios son lo más sencillo que se puede configurar en el firewall. Por ejemplo, si se deseara permitir en cualquier perfil el acceso al escritorio remoto sólo para las redes directamente conectadas en todo los perfiles
netsh firewall>set service mode=ENABLE type=REMOTEDESKTOP scope=SUBNET profile=ALL
Microsoft, para complicar un poco más las cosas, permite que se omita el nombre de los parámetros de configuración , con lo que la línea anterior puede también escribirse como:
netsh firewall>set service ENABLE REMOTEDESKTOP SUBNET ALL
Otro ejemplo que puede ponerse es permitir la administración remota (mmc, registro de eventos )de un equipo desde cualquier red de la RFC 1918 y que sólo se aplique en el perfil estándar:
netsh firewall>set service ENABLE REMOTEADMIN CUSTOM 192.168.0.0/16,172.16.0.0/20,10.0.0.0/8 ESTANDAR

Abriendo puertos

Ahora, si necesitamos abrir un puerto determinado, no recogido en los servicios que define Microsoft, ¿cómo debe hacerse?. Para ello se usa portopening (ya sea add - para añadir - , set - para modificar - o delete - para borrar - ). Un ejemplo sencillo: si se tiene un servidor de ssh escuchando en el puerto 22, ¿cómo podría abrirse dicho puerto?:
netsh firewall>add portopening name="Servidor SSH" protocol=TCP port=22 mode=ENABLE scope=ALL profile =ALL
Una particularidad que tiene portopening es que puede abrirse puertos en función de la interfaz de red que se desee. Por ejemplo, si sólo se quisiera activar la conexión entrante a través del puerto 22 a una interfaz, por ejemplo Conexión de área local:
netsh firewall>add portopening name="Servidor SSH" protocol=TCP port=22 mode=ENABLE scope=ALL profile=ALL interface="Conexión de área local"
Al igual que ocurre con el apartado anterior, se puede omitir el nombre de los parámetros, complicando un poco más:
netsh firewall>add portopening "Servidor SSH" TCP 22 ENABLE ALL ALL "Conexión de área local"
Para modificar los parámetros de portopening, se utiliza el comando set. Por ejemplo, si en el apartado anterior se quiere que sólo se permitan conexiones entrantes al puerto 22 desde la subred a la cual está conectada la máquina, habría que cambiar el alcance (SCOPE) de la regla:
netsh firewall>set portopening "Servidor SSH" TCP 22 ENABLE SUBNET ALL "Conexión de área local"
Si queremos borrar una regla, se utiliza delete portopening:
netsh firewall>delete portopening "Servidor SSH" TCP 22 ENABLE SUBNET ALL "Conexión de área local"

Autorizando programas a escuchar en cualquier puerto

A veces, sin embargo, no se sabe a priori cuales son los puertos que va a usar una aplicación determinada. Ésta usa puertos dinámicos que puede ser cualquiera del rango. Una aplicación clásico de este tipo es un servidor ftp, que cuando utiliza el modo pasivo abre puertos a los cuales se conectan los clientes.

Por ejemplo, si queremos añadir como excepciones un servidor ftp, situado en c:\usr\bin\ftpd

netsh firewall>set allowedprogram program="c:\usr\bin\ftpd.exe" name="Servidor FTP" mode=ENABLE scope=ALL profile=ALL
Al igual que ocurre con portopening se usa el delete allowedprogram
netsh firewall>delete allowedprogram program="c:\usr\bin\ftpd.exe"

Activar las notificaciones

Puede quererse informar al usuario cuando un programa intenta escuchar en algún puerto. En la terminología del firewall de Windows XP a estos cuadros de diálogos se les llama notificaciones. Las notificaciones pueden activarse en función del perfil que esté activo. Por ejemplo, si se desea activar las notificaciones en el perfil de dominio:
netsh firewall>set notifications mode=ENABLE profile=DOMAIN

Configurando el ICMP

ICMP es un protocolo de control, transportado por datagramas IP y utilizado par informar de condiciones excepcionales durante las comunicaciones (redes no alcanzables, saber si una máquina responde, cálculo del máximo tamaño de un datagrama). El firewall de Windows XP permite controlar que tipo de peticiones ICMP va a aceptar la máquina o que paquetes ICMP va a generar la máquina.
La siguiente tabla recoge el tipo y el significado de cada uno:
TipoDescripción
2 Específico de ICMPv6, el sistema lo genera en caso de que el paquete de datos sea mayor que la MTU del enlace que quiera atravesar.
3 El sistema genera paquetes ICMP que indican que un determinado destino no es alcanzabe.
4 El sistema genera este paquete para indicar al extremo que le está enviando tráfico que lo haga a una menor velocidad.
5 En este caso el sistema permite recibir mensajes ICMP de redirección, normalmente generados por los routers del sistema.
8 Permite las peticines de echo (generadas por la orden ping)
9 Permite recibir peticiones de solicitud de router.
11 El sistema envía mensajes ICMP en caso de que un datagrama IP que vaya a rutar su TTL alcance el valor cero.
12 El sistema genera este paquete ICMP en caso de encontrar errores en la cabecera IP de un datagrama que haya recibido.
13 Permite al sistema recibir paquetes ICMP solicitándole una marca de tiempos.
17 Permite al sistema recibir peticiones ICMP para que el sistema devuelva la máscara de la interfaz de red que recibe la petición
Por ejemplo, si se quiere usar IPv6 es importante que los paquetes que calculan cual es la máxima MTU de una ruta entre equipos pase de manera adecuada. Para ello habría que dejar pasar los paquetes de tipo 2:
netsh firewall>set icmpsetting type=2 mode=ENABLE profile=ALL
Permite especificar que interfaz puede recibir paquetes (excepto para el tipo 2), y si se especifica la interfaz, no puede especificarse el perfil.

Repuesta a multicast

Controla como el sistema responde a los paquetes dirigidos a direcciones multicast o broadcast. Si se activa, el sistema responderá a este tipo de paquetes, en caso contrario, los ignorará. Por ejemplo, si queremos activar la respuesta en el perfil actual:
netsh firewall>set multicastbroadcastresponde mode=ENABLE profile=CURRENT

Registros

Cualquier sistema de firewall debe de registrar todos los accesos no autorizados, para poder analizar posteriormente los eventos. Se puede configurar el nombre del fichero donde se almacenarán los eventos, el tamaño máximo del mismo y si se quiere registrar los paquetes que se rechacen o bien todos los intentos de conexión. Si se quiere por ejemplo, registrar sólo los paquetes que se han rechazado:
netsh firewall>set logging filelocation="c:\windows\registrofirewall.log" maxfilesize=1000 droppedpackets=ENABLE

Referencias

Technorati Tags: ,

lunes, mayo 05, 2008

¿Troyanos en los chips fabricados en el extranjero?

El uso de componentes estándares para su uso en aplicaciones militares, fabricados muchos de ellos en países extranjeros ha levantado sospechas en el Departamento de Defensa de los EEUU. Jon Stokes explora la posibilidad de modificar la fabricación de los chips con troyanos o determinadas instrucciones que permitan inutilizarlos en caso de una guerra por parte del enemigo.En su artículo hace referencia a The Hunt for the Kill Switch Continued, publicado en el IEEE Spectrum, donde se habla de posibles modificaciones desde los layouts de los chips, hasta posibles intrusiones dentro de los equipos de diseño. Interesante la referencia (¿real o no?) de este último artículo:
According to a U.S. defense contractor who spoke on condition of anonymity, a “European chip maker” recently built into its microprocessors a kill switch that could be accessed remotely. French defense contractors have used the chips in military equipment, the contractor told IEEE Spectrum. If in the future the equipment fell into hostile hands, “the French wanted a way to disable that circuit,”

Este tipo de modificaciones son muy difíciles de detectar. Pueden ir desde una fabricación defectuosa, que haga que un componente electrónico falle pasado cierto tiempo, pasando por modificaciones que permitan que el sistema se inutilice al ejecutar o tratar cierta secuencia de datos. Esto es especialmente cierto en sistemas desarrollados alrededor de FPGAs, que pueden ser reprogramadas con facilidad (por poner un ejemplo, mucho equipamiento Cisco usa FPGAs para implementar su funcionalidad). Si se introducen modificaciones en chips más sensible, por ejemplo en generadores de números aleatorios usados en criptografía, o chips criptográficos, el problema se puede multiplicar de magnitud.

Puede verse más información en la que está investigando DARPA en el siguiente documento:http://www.darpa.mil/MTO/solicitations/baa07-24/Industry_Day_Brief_Final.pdf

A día de hoy no podemos saber mucho, aunque no está mal recordar el como la CIA se encargó de troyanizar software que los soviéticos espiaron, siendo quizás el más conocido el destinado a sabotear el suministro de gas en la URSS (y que causaron la explosión más grande de origen no nuclear que se recuerda)

Technorati Tags:

domingo, mayo 04, 2008

Rendimiento de aplicaciones AJAX

Acabo de ver en Slashdot una referencia a un artículo publicado por IBM sobre cómo medir el rendimiento de aplicaciones AJAX. El artículo usa como herramientas para medir el rendimiento Firebug y yslow y busca optimizar:
  • El tiempo de respuesta del servidor.
  • El tiempo de transferencia de los datos a través de Internet.
  • Tiempo de ejecución del javascript en local.
El artículo se centra en el uso de yslow para cumplir con las reglas que han publicado para tener un mayor rendimiento:
  • Realizar menos peticiones http.
  • Reducir el número de peticiones DNS.
  • Evitar las redirecciones de páginas.
  • Realizar código AJAX que pueda cachearse.
  • Cargar inicialmente sólo aquella parte de las páginas necesarias para renderizarla.
  • Aprovechar los tiempos muertos del navegador para precargar componentes que puedan ser necesarios más tarde.
  • Reducir el número de elementos de DOM.
  • Distribuir componentes entre varios dominios.
  • Minimizar el número de iframes.
  • Reducir el tamaño de las cookies.
  • No usar cookies en aquellos componentes estáticos (por ejemplo imágenes).
  • Reducir el número de accesos al DOM.
  • Usar gestores de eventos inteligentes.
  • Optimizar las imágenes.
Esto es un simple resumen de la información que tiene publicada Yahoo para el desarrollo web.

Technorati Tags: ,