Explorer te come... el Zorro

Estas proporciones ya las vengo mirando hace rato en google analytics, pero ahora se me ocurrio compartirlos con ustedes, y ver como un gran descuido por parte de Microsoft le quito algo de terreno. Por un lado, tampoco se alamaron tanto ya que la compatibilidad con ASP no es igual que en Firefox como asi tambien en las paginas estáticas.
Lo unico que se espera de Firefox 3.0 es que deje de comer la memoria, ya que es uno de los problemas solucionar....



Read more

Descubriendo Velneo

Para aquellos que no les gusta perder tiempo, les presento Velneo:


Velneo es un entorno integrado de desarrollo (IDE) visual que integra lenguaje de programación con un conjunto de instrucciones de proceso (más de 150), un motor propio de base de datos, un servidor de aplicaciones multitarea y multiprocesador que permite atacar aplicaciones albergadas en él vía TCP/IP y un servidor web con pasarela propia, pensado para desarrollo de productos empresariales.

Ofrece un paradigma de programación bastante diferente a los lenguajes tradicionales utilizando un entorno de desarrollo RAD (Rapid Application Development) ya que tienen entre su misión acortar el tiempo necesario para realizar un proyecto, y que apenas sea necesario escribir código.

El motor de base de datos es propio y está integrado en el servidor de aplicaciones. Es un modelo de base de datos relacional, cuya primera versión apareció hace más de 20 años. Es compatible con sistemas de traspaso de datos como XML y SOAP. Destaca por el soporte de transacciones, su estabilidad y su escalabilidad.

Dispone de objetos TCP para comunicaciones avanzadas, Servicios Web, WSDL, POP3, SMTP, SOAP, etc. Permite la ejecución de funciones remotas, dotando al sistema de interconectividad entre servidores, replicación, consolidación y arquitecturas on-off.

Dispone de una interfaz para la implementación y manejo de todo tipo de DLL´s y permite el acceso nativo a bases de datos como Oracle e Informix y el acceso a bases de datos externas vía ODBC como DB2, MySQL, SQL Server, Access, etc. La ejecución de aplicaciones en arquitectura Cliente / Servidor se realiza por TCP/IP mediante el protocolo de acceso VATP (propietario de la plataforma Velneo) con cifrado de 128 bits, por el puerto 690 asignado por la IANA y HTTP (para la explotación del contenido Web). La evolución de esta plataforma se convertirá en un nuevo producto, llamado V7, que se encuentra actualmente bajo desarrollo en fase Beta y será multiplataforma utilizando para ello las QT de Trolltech, pudiendo ejecutarse en plataformas Windows, Linux y Mac.

Acá pueden ingresar a la web oficial.

Read more

Prometeus

Read more

Documental: Tecnología de los '80

Hoy estuve mirando un documental bastante melancólico y divertido de la tecnología de los años '80, para aquellos que hayan vivido esa década les resultara entretenido igualmente para aquellos que no.


Read more

La próxima versión Ubuntu se llamará Hardy Heron

El director de la comunidad Ubuntu, Jono Bacon, dio a conocer en su blog que la nueva versión de la distribución Linux, será lanzada el año próximo bajo el nombre de Hardi Heron, en castellano “garza resistente”.

Así, la sucesora de la versión Gutsy Gibbon, que verá la luz el próximo mes de octubre, tiene prevista como fecha de lanzamiento el mes de abril de 2008.

Según el portal vnunet.es, la actualización es la primera de Ubuntu con soporte a largo plazo desde Dapper Drake (versión 6.0), lo que significa que los usuarios obtendrán actualizaciones de seguridad durante cinco años para la edición de servidores y de tres años para la correspondiente a PCs de consumo.

De este modo, y como las ediciones regulares del sistema operativo tienen un soporte de tres años, Hardi Heron será incluso más importante que su predecesora, la 7.10, porque presenta más estabilidad y confianza.

Por otro lado, para aquellos que no conozcan las peculiaridades de las designaciones de Ubuntu, he aquí una pequeña explicación:

Por empezar, los nombres se numeran de manera año.mes, por ejemplo, la siguiente versión será la 7.10, porque saldrá en octubre de 2007.

Además, los nombramientos siempre son formados por un animal más un adjetivo, que empiezan con la misma letra y, desde la versión Dapper Drake (Pato Pulcro), vienen ordenados alfabéticamente.


Fuente: RedUSERS

Read more

Windows Vista vs Linux Ubuntu 7.04

Se habla mucho del Vista y Ubuntu, pero todavía no se había hecho una buena evaluación para los usuarios hogareños. El Artículo publicado por MaximoPC no tiene ningún desperdicio, haciendo click aquí podrán leerlo y sacar sus propias conclusiones.
Read more

POST 100!!!!

Bueno para festejar el post número 100 de este itento de blog :P. Ok, no sean malos no tengo tanto tiempo para armar articulos interesantes, aunque tengo algunas cosas voy a ir posteandolas cuando no ocurra nada interesante... nada es perfecto... y les dejo esta screen como prueba, recien me tira este error nuestro amigo googlito ;)




Fuente: yo mismo :D
Read more

Vint Cerf llega a la Argentina

El vicepresidente y jefe de evangelización de internet en Google, Vint Cerf, se encuentra en el país para brindar una serie de conferencias acerca del estado actual de la web, las tecnologías que se están diseñando para darle soporte y los próximos desafíos técnicos que su desarrollo implica.

Cerf es conocido como uno de los “padres de Internet”, dado que es el creador –junto a Robert Kahn– de los protocolos TCP/IP y la arquitectura básica de la red, que establecieron la técnica para la transferencia de archivos en paquetes de datos a través de la red.

Entonces, uno de los gurúes de la web, estará presente mañana en el congreso USUARIA, donde disertará sobre internet y los medios, y un día después en la Facultad de Ciencias Exactas de la Universidad de Buenos Aires, casa en la que analizará la evolución de la red en el siglo XXI.

Así, el ejecutivo de Google examinará en la UBA el crecimiento de internet, y se referirá a cómo las aplicaciones basadas en la red se están transformando en las más populares, debido a la confiabilidad que ofrecen y el trabajo cooperativo que fomentan.

Además, Cerf indagará acerca de cuáles son las nuevas formas de servicios basados en la red y los nuevos soportes que permitirán a los usuarios administrar sus actividades vinculadas con el trabajo y el entretenimiento.

Otra de las temáticas incluidas en la exposición del directivo tratará sobre la extensión de internet para operar a través del sistema solar, como una infraestructura de comunicación para soportar la exploración del espacio a través de la robótica.

La primera conferencia de Cerf en la Argentina se realizará en el marco del congreso USUARIA, en el Sheraton Hotel de Retiro, mañana a las 19.00. La información sobre este evento se encuentra en http://www.usuaria.org.ar .

Para asistir a la charla que uno de los padres de internet llevará a cabo el día siguiente, es decir, el miércoles próximo, a las 10.00 en la UBA, escribir a: charlacerf@dc.uba.ar y confirmar detalles de lugar un día antes del evento en: http://www.dc.uba.ar.



Fuente: RedUSERS

Read more

Richard Stallman Guantanamero

Read more

La última actualización de Windows reveló el fallo que causó el reciente apagón de Skype

Según fuentes de la empresa, el reciente "apagón" de Skype se debió a un fallo en su propio software, que fue puesto en evidencia por la instalación en miles de equipos de los últimos parches de Microsoft y su posterior rearranque e incorporación a la red de Skype en un breve lapso de tiempo.

Skype desmiente así en un comunicado los rumores que apuntaban a una posible vulnerabilidad como la causa última de la desconexión preventiva de sus servidores en los pasados días...

No obstante no se conocen los suficientes detalles para entender por qué esta actualización concreta de Windows resultó tan intolerable para la red de Skype, cuando nunca había ocurrido nada parecido con las actualizaciones previas.

Como es sabido, Skype utiliza algoritmos y código propietarios y nunca proporciona demasiados detalles sobre cualquier tipo de incidencias.


Fuente: Kriptópolis
Read more

Hotmail ofrecerá 5 GB de capacidad de almacenamiento


Enfocado en aplicar una serie de cambios que tienen como fin complementario mostrar que la firma evalúa las sugerencias de los clientes de la prestación, Microsoft prepara una actualización de Hotmail en base a las propuestas y comentarios que recibió la compañía por parte de sus usuarios.

Así, el gigante del software anunció que la capacidad de almacenamiento de su servicio de correo electrónico crecerá hasta los 5 GB para los usuarios gratuitos y hasta los 10 GB para los de pago.

Además, Microsoft indicó que realizará mejoras en el rendimiento de la aplicación, y que reforzará el sistema de seguridad a través del bloqueo de imágenes y enlaces incluidos en mensajes de cuentas desconocidas para el usuario.

Asimismo, la empresa con sede en Redmond sostuvo que integrará un asistente para limpiar la lista de contactos que estén duplicados, y que las cabeceras serán reducidas para dejar más espacio a los mensajes.

Según el portal especializado vnunet.es, las actualizaciones también permitirán aceptar pedidos enviados de Outlook, e ingresar directamente a la bandeja de entrada en lugar de pasar previamente por la página “Hoy”.

Por último, Microsoft señaló que las nuevas características estarán disponibles en forma gradual para todos los usuarios durante las próximas semanas.



Fuente: RedUSERS

Read more

Skype, con problemas para comunicar

El servicio de llamadas a través de internet con el programa Skype sufrió ayer un problema que ha impedido las comunicaciones a todos sus usuarios, según informó la propia empresa en su página web.

Los técnicos de Skype publicaron un recuadro de alerta en su página web en el que advertían de que desde las 14:02 hora GMT un problema en su software de identificación impedía a los usuarios, varios millones en todo el mundo, entrar al sistema y, por lo tanto, establecer llamadas.

Skype, el servicio de voz IP más utilizado del mundo y que fue comprado por eBay en 2005, espera que el problema se resuelva hoy.

Unos 220 millones de usuarios, incluidos propietarios de negocios pequeños, se han visto afectados por el problema, según una información publicada por el diario estadounidense The New York Times.

La empresa ha suspendido también temporalmente las descargas del programa que permite el acceso a su red.

Los programas como Skype permiten realizar llamadas desde la computadora a otra PC o a teléfonos fijos o móviles tradicionales.

Las llamadas entre usuarios de la misma red es gratuita, mientras que las conexiones con los servicios tradicionales son pagos, aunque más baratas.

Para poder hacer llamadas a través de Skype se necesita una computadora convencional con tarjeta de sonido, micrófono y altavoces, o unos auriculares con micrófono integrados.

Además es indispensable la conexión a internet, que puede hacerse con módem o bien con ADSL.

Una comunicación de Skype en su “Heartbeat Blog” indicó que la compañía estaba viendo “signos de mejora a la hora de conectarse” a las 7:00 de la mañana GMT pero que era demasiado pronto para decir que el problema estaba cerca de resolverse.



Fuente: RedUSERS

Read more

Comprometidos algunos servidores de Ubuntu

Hace unos días la gente de la comunidad Ubuntu recibió el aviso de que uno de sus servidores había sido comprometido. Tras realizar las pertinentes comprobaciones, se detectó que el compromiso afectaba en realidad a 5 de los 8 servidores (cuyo hosting patrocina Canonical) y que además estaban activamente atacando a otros webs. Por tanto se tomó la decisión de desconectarlos y proceder a devolverlos a un estado seguro antes de restaurar las copias de seguridad. Sin embargo, debido a la dificultad y pocas garantías del proceso, se está considerando el traslado de varios de esos servidores al centro de datos de Canonical...

El ataque se pudo realizar por diversas vías, ya que los servidores estaban sin parchear y sin actualizar adecuadamente. Canonical acusa de ello a la comunidad Ubuntu y la comunidad se queja de que el hardware con que contaban hacía el sistema imparcheable. Ahora planea la duda de si algún fichero descargado por los usuarios pudiera haber sido manipulado.


Fuente: Kriptópolis

Read more

Windows Vista a control remoto XD

El fabricante de soluciones de conectividad Keyspan acaba de lanzar al mercado un control remoto que funciona a una distancia mayor que los mandos que utilizan señal infrarroja, diseñado especialmente para el sistema operativo Windows Vista.

Así, la firma desarrolló una plataforma que opera por señal de radio frecuencia (RF) y permite manejar el software de Microsoft desde una distancia máxima de 30 metros, ofreciendo una cobertura tres veces mayor a la de otros dispositivos similares.

Además, como funciona a través de RF, la unidad de Keyspan no necesita apuntarse directamente a los equipos dispuestos con Vista para ser ejecutado, y consta de un receptor para puertos USB.

De este modo, el control remoto puede ser accionado a distancia, enviando órdenes a la PC aún cuando entre ésta y el usuario existan obstáculos que se interpongan en la señal.

Asimismo, el producto, disponible a un costo de U$S 49, no requiere de la instalación de ningún software adicional, y presenta compatibilidad con las versiones Windows Vista Home Premium y Ultimate.


Fuente: RedUSERS

Read more

Microsoft Surface 2007 vs Apple Vision 1987

Read more

Web de la ONU hackeada

El sitio web de la Secretaría General de Naciones Unidas exhibe ahora mismo el siguiente mensaje:

Este sitio estará temporalmente no disponible debido a un mantenimiento programado.

Por favor, traten de acceder más tarde. Sentimos cualquier inconveniente.

Pero el "mantenimiento programado" es sólo una excusa. La realidad es otra: el web de la ONU fue jaqueado hace unas horas y su portada fue sustituida por esta otra...

Actualización (20:55): Al parecer, el defacement fue la guinda final del bombardeo que sufrió esta mañana la sección de comentarios al discurso del Secretario General con mensajes pacifistas contra Israel y EE.UU. Finalmente varias páginas fueron jaqueadas, sustituyendo los discursos y citas del secretario y vicesecretario por el texto en cuestión. Algunas de estas páginas han sido repuestas, pero la vulnerabilidad no ha sido aún cerrada. [Fuentes: Peru.com, Perfil.com y Hackademix.]

mensaje defacement ONU

Según Giorgio Maone, todo hace pensar que se ha utilizado Inyección SQL, a la que el sitio parece vulnerable.

Fuente: Kriptópolis
Read more

Acer planea vender ordenadores con Linux en Europa

Parece que las explosivas declaraciones del presidente de Acer arremetiendo contra Windows Vista no se van a quedar sólo en palabras.

Hace unos días supimos que un distribuidor de Singapur estaba anunciando portátiles Acer con Ubuntu ya instalado.

Al interesarse reporteros de ZDNet UK por la posibilidad de que pudieran venderse ordenadores con Ubuntu también en Reino Unido, un portavoz de Acer declaró que no existían planes al respecto, aunque Acer ofrecía en fábrica Ubuntu precargado. "Si existiera demanda, Acer los vendería en Reino Unido", declaró el portavoz.

Sin embargo, estas declaraciones han sido poco después matizadas por otro portavoz de Acer: "En estos momentos, Acer no dispone de PCs con Linux precargado, pero estamos considerando presentar uno en el futuro"...

Los reporteros de ZDNet UK se pusieron en contacto con el vendedor de Singapur que ofrecía portátiles Acer con Ubuntu, quien les manifestó que la idea había partido de él mismo: al tratarse de un modelo que no contaba con recursos para correr Windows Vista, decidieron que "Ubuntu era bastante bueno comparado con Windows XP". El comerciante manifestó que Acer les suministró el modelo "desnudo", es decir, sin ningún sistema operativo preinstalado. Al parecer, otros distribuidores de Singapur venden el mismo modelo con otras distribuciones de Linux, que algunos afirman que han sido preinstaladas por Acer.


Fuente: Kriptopolis

Read more

Flip3D y Coverflow ya son efectos disponibles en Compiz Fusion



Fuente: Genbeta
Read more

Microsoft, con problemas en Chile

Los internautas se oponen al acuerdo firmado por el gigante tecnológico y el gobierno, por considerar que vulnerará la privacidad y monopolizará el uso de Internet en el país.

Con el objetivo de demostrar su oposición al convenio de cooperación establecido entre Microsoft y las autoridades chilenas, cientos de internautas decidieron crear un sitio web bajo el lema “Por un Chile abierto e independiente en tecnología”. Además de ese medio que les permite volcar sus opiniones, pusieron en marcha varios foros de discusión y utilizaron el sitio de videos YouTube para dejar en claro su desacuerdo con este acuerdo que, según afirman los usuarios, vulnerará la privacidad y monopolizará el uso de Internet en el país.

Según un artículo difundido por AFP, ya han empezado a circular por la red varios interrogantes: uno de ellos, acerca de si con este pacto el gobierno chileno se ha vendido a las facilidades que puede ofrecer la mayor empresa de tecnología del mundo. En cambio, otros internautas pusieron en duda el manejo de información pública y ciudadana por parte de las autoridades. Cabe recordar que esta batalla digital comenzó días atrás, al hacerse público el acuerdo de cooperación voluntaria entre el Ministerio de Economía chileno y Microsoft.

En base a este convenio, trascendió que ambas partes acordaron una asociación voluntaria que incluye 11 puntos para ampliar la infraestructura digital del país valiéndose del software creado por la compañía. Además, esta alianza contempla la capacitación digital para todos los ciudadanos chilenos de entre 18 y 35 años, la creación de portales municipales y la entrega de unos 1,6 millones de dólares para instruir a estudiantes y profesores en el uso de productos Microsoft.

Sin embargo, el punto más polémica es la idea de crear un domicilio digital, a través del cual se crearán cuentas de correo electrónico a los 16 millones de chilenos, con el objetivo de fomentar su interacción con el sector público. En relación a este punto, muchos usuarios están convencidos de que la iniciativa violaría la privacidad de los chilenos, ya que comprometería la entrega de datos confidenciales almacenados en el Registro Civil.

Siempre de acuerdo a lo publicado por AFP, desde el punto de vista del periodista Francisco Leal, el único que saldría beneficiado por este servicio sería Microsoft, que “gana automáticamente -sin concursos ni sorteos- 15 millones de (potenciales) usuarios”. En declaraciones a la agencia informativa, el periodista aseguró que de esta forma, los chilenos se convierten, “por auspicio de nuestro Ministerio de Economía, en los primeros usuarios con Windows preinstalado del mundo".

Ante la polémica generada, el Ministerio de Economía negó que el convenio incluya la entrega de datos privados. Por su parte, el director de comunicaciones de Microsoft Chile, Martín Karich, señaló que no se estableció un contrato, sino “una declaración de intenciones para trabajar en conjunto en proyectos que están bajo el marco de la Agenda Digital”.



Fuente: SiliconNews
Read more

Los sistemas de navegación satelital podrían ser hackeados

Según los expertos del sitio web Inverse Path, los sistemas de navegación por satélite de los automóviles pueden ser manejados a distancia fácilmente, permitiendo que eventuales hackers otorguen indicaciones falsas y desvíen el destino de los conductores.

Así, los analistas demostraron que utilizando antenas y una serie de aparatos electrónicos, el tráfico legítimo de información transmitido por radio a dichos sistemas, puede ser reemplazado por instrucciones engañosas.

Los equipos de navegación de automóviles constantemente están buscando canales de información, descargando datos sobre el tránsito, el clima y los problemas de las rutas.

También disponen de mapas almacenados y reciben constantemente actualizaciones sobre accidentes de tráfico, cierres de calles u otras condiciones que podrían llevar a alterar el rumbo. Luego, la información actualizada se envía en códigos informáticos y frecuencias de radio FM.

El artefacto pirata opera rastreando estos datos y después los modifica dentro de los canales existentes o crea informes falsos en frecuencias no utilizadas.

Los resultados del experimento fueron enviados al canal de mensajes sobre el tráfico de Europa, que minimizó la cuestión pronunciándose a favor de los sistemas de protección existentes.


Fuente: RedUSERS

Read more

Video: Conferencia de Asa Doztler en Argentina

Read more

Presentaron el proyecto SELF en Argentina


La Fundación Vía Libre organizó junto a este consorcio compuesto por tres universidades y cuatro ONGs de Europa, Asia y América Latina el primer taller sobre Construcción Colaborativa de materiales educativos sobre Software Libre y Estándares Abiertos.

En el auditorio de la Sede Parque Centenario de la Facultad de Ciencias Sociales de la Universidad de Buenos Aires, se llevó a cabo hoy el primer taller sobre Construcción Colaborativa de materiales educativos sobre Software Libre y Estándares Abiertos, organizado entre la Fundación Vía Libre y SELF, un consorcio integrado por la Universidad Oberta Catalunya, la Göteburg University de Suecia, la Fundación de Software Libre de Europa, Internet Society de Bulgaria y Holanda, el Tata Institute of Fundamental Research de la India, y la misma Fundación Vía Libre.

Se trató del primer encuentro en Argentina organizado bajo las líneas del proyecto SELF (Science, Education and Learning in Freedom), financiado con 1 millón de euros por la Unión Europea para generar una plataforma internacional cooperativa con el objetivo de compartir y crear materiales educativos y de entrenamiento gratuitos sobre software libre y estándares abiertos.

"La Unión Europea se dio cuenta a partir de una serie de estudios que el software libre no sólo genera importantes ahorros sino también una serie de ventajas estratégicas, y el mayor obstáculo que se les presenta en este sentido es la capacitación", dijo Federico Heinz, presidente de la Fundación Vía Libre. Esta es la principal razón por la cual surgió el proyecto que hoy busca la ayuda de todos aquellos interesados en los materiales educativos y de entrenamiento relacionados.

¿En qué consiste SELF?

El proyecto busca eludir el obstáculo que hoy representan los altos costos de capacitación en software libre, y para eso propone una plataforma que sea un repositorio de materiales educativos y de entrenamiento de software libre y estándares abiertos, pero también un ambiente para la creación colaborativa de nuevos materiales. Inspirado en Wikipedia, el proyecto busca evaluar, adaptar, crear y traducir estos materiales, y unir los esfuerzos profesionales y de la comunidad para el beneficio público. Por esto, SELF se dirige principalmente a instituciones educativas, organizaciones de formación y Gobiernos.

Si bien para la puesta en marcha inicial de la plataforma el apoyo lo provee la Comisión Europea, el proyecto espera financiación adicional de distintos gobiernos. "El objetivo es producir un efecto de bola de nieve iniciado con fondos públicos", aseguran desde el sitio Web. Las metas del proyecto se resumen en los siguientes puntos:

  • Convertirse en la base de conocimientos central sobre software libre y estándares abiertos
  • Facilitar una herramienta para la elaboración cooperativa de contenidos abiertos sobre software libre
  • Facilitar el aprendizaje y el intercambio de conocimiento sobre el software libre y los estándares abiertos
  • Contribuir al desarrollo económico y tecnológico de diversas regiones
  • Construir una comunidad de usuarios interesada en convertirse en auto-sostenible.

    El taller tuvo como objetivo incentivar el uso, la diseminación y la construcción de los materiales disponibles en la plataforma SELF, y contó con la presencia de delegados de la administración pública, el sector empresarial, las ONGs, el mundo académico y la comunidad de Software Libre, todos interesados en el proyecto.

    El evento fue filmado por la organización Cafelug y próximamente será publicado en su página Web.


  • Fuente: CanalAR
    Read more

    Hotswap recibe el respaldo de Steve Wozniak y Red McCombs

    El cofundador de Apple y el de Clear Channel Communications, respectivamente, han mostrado su apoyo a la empresa de video en Internet.

    Los magnates millonarios Steve Wozniak y Red McCombs, cofundadores de Apple y Clear Channel Communications respectivamente, han manifestado su apoyo a un proyecto de vídeo por Internet creado por tres jóvenes licenciados de la Universidad de California. Además, como forma de mostrar su respaldo al proyecto, Wozniak ha firmado como consejero de la compañía “para darles ideas que me vengan a la mente”.

    Según señalaron sus fundadores, esta iniciativa, a la que denominaron Hotswap.com, tiene ambiciosos planes para alimentar la creciente demanda de vídeos por Internet de buena definición para los usuarios de comercio electrónico. En base a los dichos de los jóvenes, la tecnología de compresión digital que ofrece Hotswap.com puede hacer que clips de cámaras digitales comunes imiten la televisión de alta definición en páginas web.

    Luke Thomas, ex estudiante de 21 años de Berkeley y presidente de Hotswap, aseguró que la tecnología propuesta por su compañía permite transformar a los vídeos a menudo borrosos colgados por aficionados en YouTube.com y páginas similares. Además, añadió que su empresa ya ha solicitado patentes por esta tecnología.

    Formada hace sólo tres meses con el respaldo de la firma de financiación Kinsey Hills Group, Hotswap.com ya ha logrado contratos con las cadenas de distribuidoras de automóviles AutoNation y Red McCombs Enterprises. El vicepresidente para Desarrollo Empresarial de McCombs, Rad Weaver, dijo que la compañía ha empezado a utilizar videoclips con tecnología de Hotswap para sus listas de coches usados en Internet.


    Fuente: Silicon News
    Read more

    Utilizan la tragedia de Brasil para activar troyanos

    El fabricante de software de seguridad web y filtrado de contenido, Websense, acaba de detectar la existencia de una nueva campaña de correos basura que emplea la reciente tragedia aérea de Brasil como señuelo.

    Así, los usuarios reciben un correo electrónico que indica que TAM implantó un programa de ayuda para la familia y la víctima, y proporciona una línea telefónica por cobrar, diseñada para ofrecer información acerca de la tripulación del fatídico vuelo.

    Además, el spam remitido incluye un vínculo para conectarse a un sitio web que supuestamente muestra el video de la catástrofe, grabado por el circuito interno del aeropuerto brasilero.

    Luego, si los internautas clickean en el link de la grabación, se les pide que ingresen un código que, al ser activado, descarga un troyano que a su vez se vincula a otro sitio e instala otro troyano, que robará la información confidencial del usuario.

    Según Websense, el ataque procede de Corea y, al parecer, se trata de un agente malicioso que ya hospedó anteriormente un código maligno de la región de Brasil, y que ahora fue alterado para llevar a cabo la nueva agresión.


    Por otra parte, TAM aseveró que la compañía no acostumbra enviar emails no solicitados, e invitó a aquellos que estén interesados en obtener información sobre el siniestro, a que ingresen al sitio oficial de la empresa: http://www.taminforma.com.br/



    Fuente:RedUSERS

    Read more

    Se lanzó la producción masiva de las OX de OLPC

    La portátil del proyecto educativo liderado por Negroponte fue presentada en su versión beta final y se aprobó la producción en masa e inicio de las cadenas de abastecimiento para su lanzamiento en octubre. ¿El sueño hecho realidad?

    Luego de la polémica por la adhesión del ex-enemigo privado Nº1 Intel a One Laptop Per Child, y del acuerdo de no agresión mutua firmado por ambas partes, el proyecto educativo liderado por el controversial Nicholas Negroponte parece acercarse cada vez más al plano de la realidad. Tal es así que ayer se presentó la versión Beta 4 (B4) final de su portátil OX y se aprobó la producción en masa del dispositivo. Luego de 2 años de trabajo, OLPC está muy cerca de ubicar sus cuestionadas portátiles en las escuelas y transformar su sueño en realidad.

    A partir de un comunicado, Walter Bender, presidente de software y contenidos de OLPC, aseguró que los proveedores de hardware han recibido el OK para activar las cadenas de abastecimiento de más de 800 partes que se combinarán para el lanzamiento de la línea de ensamblaje en octubre. De esta manera, se comenzarán a distribuir masivamente las OX a los gobiernos de los países emergentes que se encuentran inscriptos en el proyecto.

    "Aún queda completar la programación del sistema", destacó Bender. Sin embargo, según las últimas noticias publicadas en el portal del proyecto, el software estaría terminado para septiembre. Igualmente, el ejecutivo manifestó que las B4 serán sometidas a un último testeo a través de desarrolladores, expertos en hard, voluntarios técnicos de OLPC y algunas escuelas piloto que vienen trabajando con la versión B2.

    Características de la OX Beta 4 final

    La versión final de la laptop de OLPC posee una pantalla legible bajo la luz solar que provee una experiencia similar a la de estar leyendo una hoja de papel. También cuenta con una bisagra que permite inclinar la pantalla de manera tal de obtener un mejor ángulo de visión.

    Por otro lado, se caracteriza por ser más robusta, ofreciendo durabilidad para soportar las condiciones climáticas y ambientales más severas. Las computadoras B4 actualizadas son más resistentes: pueden ser utilizadas al aire libre o bajo la lluvia. El modelo también cuenta con una antena Wi-fi de alto alcance, que también la protege de caídas de hasta 1,5 metros.

    Además, su diseño de ingeniería fue pensado para funcionar independientemente del suministro eléctrico. Las B4 pueden ser energizadas mediante distintas fuentes de alimentación, incluyendo un interruptor de cordón para tirar, un panel solar, o un cargador de múltiples baterías a energía solar ubicado en la escuela. Además consumen menos de un Watt de energía cuando son utilizadas como un libro electrónico y la batería tiene una duración de más de 12 horas.

    Qué traerá adentro

  • Procesador AMD más robusto y veloz: Geode LX-700
  • 64 KB I/64 KB D de L1 Cache, 128 KB de L2 Cache (vs. 32 KB de L1 cache)
  • Reloj de memoria y procesador más veloz (433/333 vs. 366/266)
  • 1.5 W typ. vs. 3 W typ.
  • Procesador de gráficos superior, incluyendo soporte para blits rotados y conversión de profundidad
  • Mayor memoria: 256 MB de SDRAM (vs. 128 MB)
  • Mayor NAND Flash: 1 GB (vs. 0.5GB)



  • Fuente: CanalAR
    Read more

    Internet de banda ancha vía electricidad

    La empresa Schneider Electric ofrecerá acceso a conexión de alta velocidad a través de la red eléctrica. El ancho de banda que se podría alcanzar ronda los 204 Mb. Se estima que estará disponible en Argentina a fin de año.

    A partir de diciembre se podría acceder a Internet de banda ancha a través de la electricidad. Por lo tanto, al enchufar un cable al tomacorriente se podrá tener conexión sin necesitar otro cableado además del eléctrico existente en los hogares y oficinas. La empresa encargada de brindar este servicio será Schneider Electric, desde donde aseguran que esta tecnología será implementada donde otras no lleguen.

    "La convergencia en las redes de comunicaciones y la creación de contenidos por parte de los usuarios exige una velocidad de transferencia amplia y estable, y eso es lo que garantiza usar la red eléctrica para transmitir datos en banda ancha", explicó Adrián Liotine, gerente de Marketing en la Argentina de Schneider Electric al portal Infobaeprofesional.com.

    Este servicio, llamado Ilevo, está basado en Power Line Communications, una aplicación que provee Internet y servicio de telefonía a través de energía eléctrica. Esta tecnología ya se utiliza en países como Brasil, España y Francia.

    Por otra parte, la posibilidad de brindar Internet a través del tendido eléctrico comenzó a ser probada por Edenor, a fines del año pasado. Se espera que el sistema PLC colabore con la eliminación de la Brecha Digital.

    "Igualmente, esta modalidad también es observada con interés por las telcos en tanto, al posibilitar un ancho de banda de 200 Mbps, el PLC aseguraría el rendimiento de la futura IPTV, esto es, la televisión a través de la banda ancha", aclaró.

    Características de Power Line Communication

    • Reducción de la Brecha Digital: Posibilidad de insertarse en áreas de baja densidad de población dónde no se dispone de acceso a banda ancha ni a tecnologías convencionales.
    • Conectividad: Acceso desde cualquier habitación dentro de un edificio con aplicaciones múltiples, como por ejemplo servicios de Internet, telefonía, aprendizaje a distancia (e-learning), mantenimiento remoto, vigilancia a distancia, video conferencias, etc.
    • Banda Ancha: Alto nivel de performance técnica que permite transportar grandes volúmenes de información y servicios multimedia, como VDI (datos de voz e imágenes), servicios IP, VOD (video on demand), etc., con un sistema de banda ancha que garantiza la confidencialidad en el intercambio de información.
    • Flexibilidad: Permite el manejo de modificaciones en puntos de acceso de usuarios (incremento del número de usuarios, cambios en los servicios necesarios, ubicación geográfica, etc.).
    • Integración: Se integra con las infraestructuras de comunicación existentes (fibra óptica, cableado estructurado, Wi-Fi y otros).
    • Escalabilidad: Avanzada calidad de servicio que sustenta el funcionamiento de las redes de mayor complejidad, con aplicaciones de internet y o multimedia.
    • Fácilidad de Instalación: Simple, rápido y de efectivo costo de instalación, sin la necesidad de construcciones adicionales y sin interferir con el funcionamiento de infraestructuras existentes.


    Cómo funciona Ilevo




    Fuente: CanalAR
    Read more

    Explosión Nuclear en Republica Checa ???

    Este hack se realizó el 16/6 a una cámara del programa Panorama de la televisión checa.


    Read more

    Distribuyen troyanos a través de phishing en español

    La firma ESET, proveedora de software antivirus, informó acerca de la existencia de una nueva amenaza que distribuye códigos maliciosos mediante la utilización de mensajes de correo que simulan provenir de una entidad bancaria mexicana.

    Los emails encargados de difundir el ataque son similares a los correos electrónicos tipo phishing, e incitan a los internautas a que descarguen un archivo, informándoles que se trata de una herramienta anti-fraude provista por una reconocida institución financiera de México.

    En uno de los casos detectados por ESET, el spam enviado poseía un archivo adjunto comprimido en formato .rar, que al ser ejecutado descargaba una carpeta con el nombre “Security”.

    A su vez, dicha carpeta contenía un documento llamado “SeguridadAAA.exe”, que en realidad era el troyano Win32/TrojanClicker.VB.NCU.

    Además de infectar la PC del usuario, el malware en cuestión ingresó a distintas páginas web en forma automática, buscando beneficiar a esos sitios específicos, a través de la realización de clicks en enlaces de publicidad.

    Según ESET, aunque la utilización de empresas u organizaciones reconocidas por parte de los atacantes no es ninguna novedad, sí lo es el hecho de encontrar mensajes de correo del estilo phishing en idioma español.

    Además la firma aseveró que no es raro que los creadores de malware utilicen técnicas semejantes al phishing para llevar a cabo sus desmanes, dada la efectividad que logró este tipo de ataque como medio de estafa online.

    A modo de recomendación, Cristian Borghello, Technical & Educational Manager de ESET para Latinoamérica, expresó que “la mejor forma de protegerse de este tipo de agresiones es combinar el conocimiento de la forma de actuar de los códigos maliciosos, con un software antivirus de detección proactiva y análisis heurísticos, que sea capaz de descubrir nuevas amenazas”.



    Fuente: RedUSERS

    Read more

    Finalmente, Intel se unirá al proyecto One Laptop Per Child

    En un giro inesperado, ambas partes anunciaron una sinergia para desarrollar colaborativamente sus respectivos programas. Intel además formaría parte del consejo de OLPC. Hace unos dias, Negroponte la acusaba de intentar hundir su proyecto con la Classmate.

    Las dos fuerzas que hasta el día de hoy luchaban antagónicamente por implementar su propuesta tecnológica-educativa en los paises emergentes, han llegado a un cese de fuego. Intel y el proyecto One Laptop Per Child anunciaron un acuerdo para explorar diversas formas de colaboración a través de una sinergia entre sus respectivos programas.

    Con este acuerdo, Intel pasaría a formar parte del consejo de OLPC, conviertiendose en el miembro número 11, detrás de corporaciones del tamaño de Google, e-Bay, Nortel y su acérrimo rival: AMD. Si parecía que el enfrentamiento culminar�a con la prevalencia de uno sobre el otro, parece que ambas partes reconocieron el viejo lema de "la unión hace la fuerza".

    En el anuncio más inesperado del momento, los líderes de ambas instituciones dieron la palabra. "Intel se une al consejo de OLPC como líder mundial en tecnología, para ayudarnos a alcanzar a los niños del mundo. La colaboración con Intel significa que el máximo número de laptops beneficiaría los pequeños", declaró Nicholas Negroponte, fundador de OLPC. Por su parte, Paul Otellini, CEO de Intel, manifestó: "Comenzar a trabajar con OLPC es un claro ejemplo de nuestro compromiso con la educación, de más de 20 años, y de nuestra confianza en el rol de la tecnología para que las oportunidades del siglo XXI lleguen a niños alrededor del mundo".

    Hace unos días, Negroponte acusaba a Intel de intentar hundir su proyecto con la Classmate (ver Negroponte: "Soy bueno vendiendo ideas, pero no tanto vendiendo portátiles"). Durante lo que duró el enfrentamiento, el líder de OLPC aprovechó cada oportunidad para asegurar que la Classmate de Intel era demasiado cara y que su OX era una máquina más accesible económicamente y adecuada tecnológicamente a los países emergentes. Por otro lado, Negroponte siempre se ha mostrado crítico frente a Intel asegurando que su táctica no consistía en vender portátiles a los gobiernos, sino impedir que OLPC lo pudiera hacer. ¿Qué ocurrió durante el transcurso de estos dias para que cambiara repentinamente de opinión?

    Cruzando la otra vereda, los representantes de Intel tampoco estuvieron tímidos al momento de las acusaciones. Craig Barret, chairman del fabricante de procesadores, había calificado a la OX de OLPC, cuando el proyecto fuera recién presentado, como "el juguetito de los 100 dólares". Una vez firmado el acuerdo, los comentarios bajaron notablemente de tono, y ahora los ejecutivos intentan brindar una imagen de colaboración y paz. Un ejemplo son las declaraciones recientes de Will Swope, gerente general de asuntos corporativos de Intel, al portal News.com, donde manifestó que "los dos grupos entendieron que tienen más cosas en común que en disputa" y que "ambas partes intentan lograr lo mismo".

    Por otro lado, Swope destacó que no estaría mal para Intel la integración de sus procesadores en la portátil OX de OLPC. "Esta es una decisión que corresponde a OLPC, y de ninguna manera habremos ganado el negocio con este acuerdo". Como es sabido, las OX funcionan con procesadores AMD, lo que a priori generó una polémica entre los especialistas que ya preveen una disputa entre los dos fabricantes dentro del proyecto de Negroponte. Rebecca Gonzales, senior manager de AMD para mercados emergentes, se encargó de poner paños fríos a la cuestión: "Por el momento, no vemos cambios en la manera en que AMD participará dentro de OLPC", y agregó: "Le damos la bienvenida a Intel".

    A medida que se dificulta la puesta en marcha del proyecto de Negroponte -principalmente por los costos de producción cuando aún la demanda no es lo suficientemente masiva- el proyecto educativo originalmente basado en software libre se redibuja (o desdibuja). Debido a que se trata de un plan ambicioso, y de muy compleja implementación, el modelo 1 a 1 necesita tiempo y una discusión abierta. Habrá que tener en cuenta también, en que medida dos fuerzas que hasta el momento se mostraron severamete antagónicas, serán capaces de trabajar colaborativamente para cumplir el objetivo fundamental: llevar tecnología y educación a los niños de los paises emergentes.

    El próximo miércoles, Esteban Galuzzi, gerente general de Intel Argentina, explicará los alcances preliminares de este acuerdo.


    Fuente: Canal-AR
    Read more

    Kaspersky advierte sobre virus que aparentan ser archivos PDF

    Según el informe mensual de la firma de seguridad Kaspersky, la modalidad de ataque que aprovecha la buena reputación de los documentos PDF forma parte de las últimas tendencias de amenazas informáticas.

    Así, la compañía moscovita aseveró que el hecho de que la mayoría de las PCs dispongan de un visualizador de archivos PDF, convirtió a los documentos con dicha extensión en una buena herramienta para que los atacantes puedan difundir malware.

    La infección basada en el formato desarrollado por Adobe es capaz de engañar a la mayor parte de los filtros de los antivirus, mediante la introducción de ruido en las imágenes, y su posterior distorsión.

    De este modo, los ciberdelincuentes alteran las figuras con caracteres multicolor, mostrándolas fuera de foco o con líneas encima, para que no funcione el reconocimiento óptico de caracteres (OCR).

    Igualmente, Kaspersky destacó que como el texto de los archivos PDF es interpretable, los sistemas antispam que combinen las imágenes con el mensaje distorsionado incrustado en el PDF, podrán procesar los códigos maliciosos del documento.



    Fuente: RedUSERS

    Read more

    Hacker's Heroes o delincuentes: Parte nº 4

    Read more

    Hacker`s Heroes o Delincuentes - Parte 3 - Kevin Mitnick

    Read more

    Hacker`s Heroes o Delincuentes - Parte nº2 - Los Magos del Silicon

    Read more

    Hacker's heroes o delincuentes: Parte nº1

    Read more

    ¿Que es SQL Injection?

    SQL Injection es una vulnerabilidad de seguridad en la implementación de la validación en una base de datos, que es aprovechada por el atacante para obtener acceso a la misma. La vulnerabilidad ocurre cuando se inyecta código SQL en los parámetros pasados por el usuario, para provocar la ejecución de una sentencia SQL que de acceso a la base de datos.

    Si la se encuentra implementado de esta forma:
    consulta:= "SELECT * FROM usuarios 
    WHERE
    nombre = '
    " + nombreUsuario + "';"

    el atacante podría escribir:

    "Pepe'; DROP TABLE usuarios; SELECT * FROM datos
    WHERE nombre LIKE '%
    ",

    (teniendo en cuenta que Pepe es válido)

    se ejecutaría:

    SELECT * FROM usuarios WHERE nombre = 'Pepe';
    DROP TABLE usuarios;
    SELECT * FROM datos WHERE nombre LIKE '%
    ';

    (borraría la tabla 'usuarios' y seleccionaría datos que
    quizá no están disponibles para los usuarios web comunes)

    La solución al SQL Injection es la verificación de todos los parámetros y consultas hacia la base de datos.
    Read more

    Ya es definitiva la tercer versión de la GPL

    Tras dieciocho meses de consulta pública, y 15 años sin modificaciones, la “Free Software Foundation” (FSF) lanzó oficialmente la tercer versión de la Licencia Pública General (GNU/GPL).

    La actualización de la GPL es el resultado del trabajo conjunto entre la comunidad de software libre y las comunidades legales que, a través de cuatro comisiones, colaboraron en la redacción de la licencia.

    El texto final de la GPLv3 incorpora un documento explicativo sobre los cambios introducidos, e integra por primera vez la Lesser GNU GPL, licencia menor que es igual en condiciones y restricciones a la GPL, y que sólo se usa para casos puntuales y estratégicos.

    Según la edición digital del diario español El Mundo, se trata de un “refuerzo” que pretende incrementar las defensas del software libre, así como enfrentar cualquier medida que implique un freno a la libertad del usuario.

    De este modo, una parte de la reforma se refiere a las consecuencias de las patentes de software o su “patentabilidad”, para salvaguardar a los creadores de programas bajo GPL del riesgo de que terceros registren sus desarrollos.

    Además, la misma fuente aseveró que la nueva licencia prohíbe el uso de software cubierto con la GPL en sistemas con tecnologías anticopia, que “restringen la libertad de los consumidores”.

    Asimismo, una de las prioridades de la FSF es impulsar a los desarrolladores de proyectos GNU a que migren hacia la nueva versión –que podrá ser adaptada a las realidades de cada país– lo antes posible.


    Fuente: RedUSERS
    Read more

    Pero si estas igual !!! 1º

    Acá podemos ver un collage que data de un articulo del año 1994 de la revista Popular Science, que conmemoraba el décimo año de Macintosh.


    Arriba Andy Hertzfeld, Bill Atkinson, Burrell Smith, y abajo Steve Jobs and Susan Kare, con Jef Raskin en el centro. Stebe Jobs es el quinto beatle... :P
    Read more

    Ataque masivo por email a altos cargos

    MessageLabs interceptó el pasado 26 de junio 500 correos maliciosos enviados a altos cargos en lo que considera el primer ataque masivo dirigido.

    En el informe mensual que MessageLabs ha publicado hoy, la compañía especializada en seguridad habla de un ataque masivo sin precedentes dirigido con precisión hacia altos cargos, especialmente de los sectores de banca y finanzas, y hacia sus familiares.

    Los correos incluían en el asunto el nombre y el cargo de sus víctimas. De 200 millones de ataques diarios, normalmente MessageLabs detecta sólo 10 dirigidos de forma personal, lo que supone un aumento sustancial.

    MessageLabs desconoce quiénes realizaron el ataque, aunque se cree que los hackers obtuvieron la información que necesitaban a través de sitios de búsqueda y redes sociales.

    Mark Sunner, Analista Jefe de Seguridad de la compañía, asegura que "con certeza algunos ejecutivos se vieron comprometidos". En este contexto, no parece desproporcionada la preocupación de la UE por la ciberseguridad.



    Fuente: SiliconNews

    Read more

    Adware simula la descarga de un programa de Adobe

    La firma de seguridad informática Hispasec advirtió sobre la existencia de una página que simula ser una descarga del software Adobe Shockwave, instalando adware en las PCs de los usuarios.

    Según el portal especializado vnunet.es, los atacantes compraron un dominio (.net) a una empresa de hosting gratuito, donde se aloja la página.

    Así, el sitio muestra juegos online ambientados en la Edad Media, donde las presentaciones flash para ejecutarlos no funcionan.

    Luego, los enlaces supuestamente rotos redireccionan a los internautas hacia hxxp://XXXXX.XXXXspace.com/runescape/flasherror.html, que despliega el mensaje: “Your version of Macromedia Flash Player needs to be updated”.

    Acto seguido, si los usuarios pulsan “Click Here” serán derivados a: xxp://XXXXX.XXXXspace.com/runescape/shockwave/download.html, que simula ser la web oficial de descarga de Adobe Shockwave Player Download Center.

    Por último, el malware es descargado, previo consentimiento, desde: hxxp://xx.xxxxay.com/flashv10/Shockwave_Installer_Slim.exe.

    De acuerdo a la compañía de seguridad, sólo dos antivirus pudieron reconocer el adware en cuestión: ClamAV como Trojan.Pakes-248 y Webwasher-Gateway como Trojan.Bifrose.NU.

    Asimismo, Hispasec recomienda observar bien la URL de la dirección de descarga de este componente, utilizar servicios como VirusTotal.com., y localizar la firma digital con la que Adobe Macromedia legitima sus archivos.

    Esto es posible pulsando el botón derecho del mouse sobre el instalador original, que está certificado por VeriSign.



    Fuente: RedUSERS

    Read more

    ¡El increíble procesador de 80 núcleos!

    Santa Clara, California. En Intel Research Day 2007, evento en el que la empresa muestra a la prensa especializada sus últimas líneas de investigación. Una de las más notables es “Polaris”, el procesador de 80 núcleos que, por ahora, puede alcanzar 1 Teraflop corriendo a 3,2 GHz consumiendo solo 24 Watts. Subiendo la frecuencia al doble, alcanza 2 Teraflops, pero se convierte en una estufa: disipa unos ¡160 Watts! Para comparación, la PC de tu escritorio corre a unos 20 Gigaflops, unas 100 veces más lenta. Pero lo más increible de todo, es que lo desarrolló Maradona de joven, como podemos ver en la foto con nuestro enviado especial.
    Miguel Lederkremer



    Fuente: RedUSERS
    Read more

    Keyloggers: Diferentes implementaciones en el sistema operativo Windows (segunda parte)

    Nikolay Grebennikov

    El presente artículo es la continuación del anterior trabajo dedicado a los keyloggers y es un análisis detallado de los aspectos técnicos de la realización de estos "espías de teclado". Como ya hemos dicho en el primer artículo, la idea principal del keylogger consiste en interponerse entre dos eslabones cualquiera en la cadena que sigue la señal desde que se pulsa una tecla hasta que el carácter correspondiente aparece en la pantalla. Haremos un análisis de los eslabones que contiene esta cadena, así como de las diferentes variantes de construcción de los keyloggers de hardware y software.

    Este artículo está pensado para los especialistas técnicos y los usuarios cualificados. A los demás lectores les será suficiente recordar que en el SO Windows existen muchas formas de interceptar los datos ingresados desde el teclado. No obstante, la mayor parte de los keyloggers existentes usan sólo dos de ellas.

    Antes de empezar, aclaramos que en el presente artículo no aduciremos ningún ejemplo del código fuente de las diferentes implementaciones de los keyloggers. No compartimos la opinión de algunos expertos en seguridad que consideran que se puede publicar este tipo de información.

    • Procesamiento de la pulsación de teclas en el SO Windows
      • Principios de funcionamiento del teclado como dispositivo mecánico
      • Interacción de bajo nivel con el teclado mediante los puertos de entrada-salida
      • Arquitectura de los "dispositivos interactivos de entrada"
      • Drivers del modo del núcleo para teclados PS/2
        • Pila de drivers para los dispositivos de introducción de datos del sistema
        • Pila de drivers para los teclados Plug and Play PS/2
        • Pila de dispositivos para los teclados Plug and Play PS/2
      • Procesamiento por las aplicaciones de la entrada de datos desde el teclado
        • Flujo de entrada no procesado (recepción de datos desde el driver)
        • Procesamiento de los mensajes por una ventana en particular
        • Masivos del estado de las teclas del teclado
      • "Trampas" para el teclado
      • Esquema general de procesamiento
      • Modelo de entrada directa (Raw Input)
    • Diferentes implementaciones de keyloggers
      • Keyloggers del modo del usuario
        • Instalación de trampas para los mensajes del teclado
        • Utilización del barrido cíclico del estado del teclado
        • Incrustación en el proceso y captura de las funciones de procesamiento de los mensajes
        • Uso de modelos de entrada directa
      • Keyloggers del modo del núcleo
        • Uso de un driver-filtro de clase teclado Kbdclass
        • Uso de un driver-filtro del driver funcional i8042prt
        • Modificación de la tabla de procesamiento de las solicitudes del sistema del driver Kbdclass
        • Modificación de la tabla de servicios del sistema KeServiceDescriptorTableShadow
        • Modificación del código de la función NtUserGetMessage/PeekMessage mediante splicing
        • Sustitución del driver en la pila de drivers del teclado
        • Realización de un driver-procesador de interrupciones IRQ 1 propio
    • Conclusiones

    Procesamiento de la pulsación de teclas en el SO Windows

    Existen varias tecnologías básicas, usadas por una serie de keyloggers, que permiten interceptar las pulsaciones de teclas y eventos del ratón. Sin embargo, antes de considerar los ejemplos reales de los keyloggers, es necesario ponerse al corriente del esquema de procesamiento de las pulsaciones de teclas utilizado en el SO Windows. Para describir todo el esquema, desde la pulsación de la tecla hasta el funcionamiento de la interrupción del sistema del controlador del teclado y la obtención del mensaje WM_KEYDOWN en la ventana activa, utilizaremos tres fuentes:

    1. El libro "El hardware de IBM PC". Alexandr Frolov, Grigory Frolov, Tomo 2, libro 1: Dialog-MIFI, 1992. Capítulo 2, "El teclado", donde se describen el principio de funcionamiento del teclado, los puertos e interrupciones que usa;
    2. La sección "Acceso a dispositivo de interfaz humana" de la Biblioteca MSDN, dónde se describe la parte básica (del controlador) del esquema del procesamiento del uso del teclado;
    3. El libro de Jeffrey Richter "Creación de aplicaciones WIN32 efectivas considerando las especificaciones de la versión de 64 bits de Windows". En el capítulo 27, "El modelo de introducción de datos y el estado local de la introducción" se describe el nivel superior del esquema de procesamiento de las pulsaciones de teclas (realizado en el modo de usuario).

    Principios de funcionamiento del teclado como dispositivo mecánico

    En la actualidad, la mayoría de los teclados vienen como dispositivos separados que se conectan al ordenador mediante uno de los enchufes, por lo general PS/2 ó USB. Existen dos microcontroladores que sustentan el procesamiento de las pulsaciones: uno en la placa madre del ordenador y el otro en el teclado. Por lo tanto, el teclado del ordenador personal es en sí una especie de ordenador. Está basado en el microcontrolador 8042, que de forma constante escanea las pulsaciones de teclas en el teclado, independientemente de las actividades en el procesador central x86.

    Cada una de las teclas tiene asignado un número determinado, que está relacionado con los contactos de la matriz del teclado y no depende de las letras impresas en la superficie de las teclas. Este número se llama scan-code (esta denominación remarca el hecho de que el ordenador escanea el teclado en busca de pulsaciones de teclas). El scan-code es un valor arbitrario, escogido por IBM cuando diseñaba el primer teclado para ordenadores personales. El scan-code no guarda correspondencia con el código ASCII del teclado. Una tecla puede tener varios códigos ASCII. La tabla de scan-codes se puede ver, por ejemplo, aquí.

    En realidad, el teclado genera dos scan-codes para cada tecla: uno cuando el usuario la pulsa y otro cuando la suelta. La presencia de dos scan-codes es importante, ya que algunas teclas sólo son útiles cuando están oprimidas (Shift, Control, Alt).


    Fig. 1. Esquema simplificado del teclado

    Cuando el usuario pulsa una tecla en el teclado, se cierra un contacto eléctrico. Como resultado, en el siguiente barrido, el microcontrolador registrará la pulsación de determinada tecla y enviará al ordenador el scan-code de la tecla pulsada y una solicitud de interrupción. Acciones similares se ejecutan cuando el usuario suelta la tecla.

    El segundo microcontrolador recibe el scan-code, lo convierte, lo envía al puerto de entrada-salida 60h y a continuación genera una interrupción de hardware para el ordenador central. Después de esto, el procedimiento de procesamiento de la interrupción puede recibir un scan-code del puerto de entrada-salida indicado.

    Vale decir que el teclado contiene una memoria intermedia (buffer) de 16 bytes, mediante el cual realiza el intercambio de datos con el ordenador.

    Interacción de bajo nivel con el teclado mediante los puertos de entrada-salida

    La interacción con el controlador del teclado se efectúa por medio del puerto de entrada-salida 64h. Al leer el byte de este puerto se puede determinar el estado del controlado del teclado, al grabar el byte, se puede enviar una instrucción al controlador.

    La interacción con el microcontrolador ubicado en el teclado se hace mediante los puertos de entrada-salida 60h y 64h. Los bites 0 y 1 en el byte del estado (puerto 64h en modo de lectura) dan la posibilidad de controlar el procedimiento de interacción: antes de escribir datos en estos puertos, el bite 0 del puerto 64h debe ser regresado a 0. Cuando los datos están disponibles para su lectura en los puertos 60h, el bite 1 del puerto 64h es igual a 1. Los bites de activación/desactivación del teclado en el byte de instrucción (puerto 64h en modo de escritura) determina si el teclado está activo y si el controlador del teclado solicitará una interrupción en el sistema cuando el usuario pulse la tecla.

    os bytes escritos en el puerto 60h se envían al controlador del teclado, mientras que los bytes escritos en el puerto 64h se envían al controlador del sistema del teclado. Las listas de las instrucciones permitidas para su envío al controlador del teclado están en el documento "8042 KeyboardController IBM Technical Reference Manual" o aquí.

    Los bytes leídos del puerto 60h llegan desde el teclado. El puerto 60h en modo de lectura contiene el scan-code de la última tecla pulsada, y en el modo de escritura se usa para el control extendido del teclado. Al usar el puerto 60h para escribir, el programa recibe además las siguientes posibilidades:

    • establecer el tiempo de espera antes de que el teclado empiece a repetir los caracteres;
    • establecer el periodo de generación del scan-code en el modo de repetición;
    • control de los diodos ubicados en el panel del teclado: Scroll Lock, Num Lock, Caps Lock.

    En resumen, para leer los datos provenientes del teclado es suficiente saber leer los valores de los puertos de entrada-salida 60h y 64h. Sin embargo, en el sistema operativo Windows, a las aplicaciones en modo de usuario no se les permite trabajar con los puertos, por lo que esta tarea se la encomienda a los controladores del sistema operativo.

    Arquitectura de los "dispositivos interactivos de entrada"

    Bueno, pero... ¿quién procesa las interrupciones de hardware que se generan cuando en el puerto 60h aparecen datos enviados por el teclado? Evidentemente, es aquel que registró la rutina de procesamiento de interrupción hardware del teclado IRQ 1. En el SO Windows este procesamiento está a cargo del driver i8042prt.sys. A diferencia de los viejos tiempo del MS DOS, cuando cada componente del sistema no guardaba relación con los demás, en Windows todos los componentes están diseñados según una arquitectura rígida y funcionan según severas reglas consagradas en la interfaz de software. Por eso, antes de empezar a examinar el driver i8042prt, analizaremos la arquitectura de los dispositivos de entrada interactivos, en cuyo marco funcionan todos los componentes de software relacionados con el procesamiento de la entrada de datos desde el teclado y el ratón.

    Los dispositivos usados para el control directo de las operaciones en el ordenador, se denominan dispositivos interactivos de entrada en el SO Windows (interactive input devices). El teclado es uno de estos dispositivos, al igual que los manipuladores como el ratón, joistick, trackball, pedales, cascos de realidad virtual, etc.

    La arquitectura de control de los dispositivos de entrada interactivos se basan en el estándar USB Human Interface Device (HID), propuesto por la organización USB Implementers Forum. Pero esta arquitectura no sólo se limta a los dispositivos Usb y admite otros tipos de dispositivos de entrada, en particular: teclados bluetooth, teclados y ratones PS/2, así como los dispositivos que se conectan al puerto de juego (puerto de E/S 201).

    A continuación analizaremos los principios de organización de la pila de drivers y la pila de dispositivos de los teclados PS/2, que desde el punto de vista histórico son el primer tipo de dispositivos usados. Los teclados USB usan una serie de elementos introducidos durante el diseño de soporte hardware de los teclados PS/2.

    Drivers del modo del núcleo para teclados PS/2

    Pila de drivers para los dispositivos de introducción de datos del sistema

    Los drivers del teclado, sin importar cual sea su esquema de conexión física, usan drivers del sistema de la clase "teclado" para procesar las operaciones que no dependen del hardware. Estos drivers se llaman drivers de clase porque cumplen las exigencias del sistema independientemente de la implementación del hardware.

    El correspondiente driver de funciones (driver del puerto) implementa las operaciones de entrada-salida de un dispositivo en particular. En el SO Windows para plataformas x86 el teclado (i8042) y el ratón comparten un solo driver del sistema.


    Fig. 2. Pila de drivers para los dispositivos de introducción de datos del sistema: teclado y ratón

    Pila de drivers para los teclados Plug and Play PS/2


    Fig. 3. Pila de drivers para los teclados Plug and Play PS/2

    La pila de drivers contiene (desde arriba hacia abajo):

    1. Kbdclass, un filtro-driver de nivel superior de la clase del teclado;
    2. un filtro-driver opcional de nivel superior de la clase del teclado;
    3. i8042prt, el driver funcional del teclado;
    4. el driver raíz del bus.

    En el SO Windows 2000 (y superiores) el driver de clase del teclado es el driver Kbdclass, cuyas principales tareas son:

    • garantizar las operaciones generales e independientes del hardware de la clase de dispositivos;
    • brindar soporte a Plug and Play, a la gestión de energía y a Windows Management Instrumentation (WMI);
    • brindar soporte para los dispositivos antiguos;
    • ejecutar simultáneamente las operaciones de varios dispositivos;
    • aplicar la rutina class service callback routine, solicitada por el driver funcional para la transmisión de datos del bufer de entrada del dispositivo al bufer de datos del driver de clase de dispositivos.

    En el SO Windows 2000 (y superiores) el driver funcional para los dispositivos de entrada que usan el puerto PS/2 (teclado y ratón) es el driver i8042prt, cuyas principales funciones son:

    • garantizar las operaciones simultáneas dependientes del hardware de los dispositivos de entrada PS/2 (el teclado y el ratón comparten los puertos de entrada-salida, pero usan diferentes interrupciones, rutinas de procesamiento de interrupciones (ISR) y rutinas de conclusión del procesamiento de las interrupciones);
    • brindar soporte a Plug and Play, a la gestión de energía y a Windows Management Instrumentation (WMI);
    • brindar soporte para los dispositivos antiguos;
    • llamar la rutina class service callback routine de las clases del teclado y del ratón para la transmisión de datos del bufer de entrada de datos i8042prt al bufer de datos de driver de clase;
    • la llamada del conjunto de funciones de la llamada inversa que pueden realizar los drivers-filtros de alto nivel para la gestión flexible del dispositivo.

    Fig. 4. Lista de recursos hardware usados por el driver i8042prt

    En la figura se muestra la lista de recursos hardware usados por el driver i8042prt. Los recursos se pueden visualizar con, por ejemplo, la utilidad DeviceTree, desarrollada por la compañía Open Systems Resources. Para aquellos que han leído las secciones 2.1 y 2.2, los valores de los puertos de entrada-salida (IO) 60h y de interrupción de hardware (IRQ) 1 no tienen nada de sorprendente.

    En la pila del driver mostrada el nuevo driver-filtro puede ser agregado, por ejemplo, para el procesamiento específico de la entrada desde el teclado por encima del driver de clase del teclado. Este driver debe admitir el mismo procesamiento de todas las solicitudes de entrada-salida (IRP) e instrucciones de control (IOCTL) que el driver de clase del teclado. En este caso, antes de ser enviados al subsistema del modo del usuario, los datos serán entregados a este driver-filtro para su procesamiento.

    Pila de dispositivos para los teclados Plug and Play PS/2

    Ahora veremos la pila de dispositivos que crean los drivers indicados más arriba en la pila de drivers del teclado. En la parte derecha de la figura de abajo se representa la pila de dispositivos mencionada en MSDN Library para el teclado PS/2. A la derecha, una captura de pantalla del programa DeviceTree que muestra la situación real en el ordenador del autor de este artículo.


    Fig. 5. Configuración de los objetos de dispositivos del teclado Plug and Play PS/2

    En general, la pila de dispositivos (para ser más correctos, la pila de objetos de los dispositivos) del teclado PS/2 está conformada por:

    1. el objeto físico del teclado (PDO) creado por el driver del bus (en este caso, el bus PCI): \Device\00000066;
    2. el objeto funcional del dispositivo del teclado (FDO) creado y adjuntado al PDO por el driver i8042prt: objeto sin nombre (unnamed);
    3. los filtros-objetos opcionales del dispositivo "teclado", creados por los filtros-driver del teclado desarrollados por fabricantes;
    4. el filtro objeto de alto nivel del dispositivo de clase "teclado", creado por el driver de clase Kbdclass: \Device\KeyboardClass0.

    Procesamiento por las aplicaciones de la entrada de datos desde el teclado

    Flujo de entrada no procesado (recepción de datos desde el driver)

    En el capítulo anterior hemos dado ejemplos de la construcción de las pilas de teclado en modo de núcleo del sistema operativo. Ahora veremos cómo transcurre la transmisión de información sobre la pulsación de teclas a las aplicaciones del modo del usuario.

    El subsistema Microsoft Win32 recibe acceso al teclado usando el flujo de entrada no procesado (Raw Input Thread, RIT), que es parte del proceso del sistema csrss.exe (user mode part of Win32-subsystem). El sistema operativo crea durante su inicio un RIT y una cola del sistema de entrada de hardware (system hardware input queue, SHIQ).

    RIT abre el objeto "dispositivo" del driver de clase del teclado para su uso exclusivo y con la ayuda de la función ZwReadFile le envía una solicitud de entrada-salida (IRP) del tipo IRP_MJ_READ. Recibida la solicitud, el driver Kbdclass lo marca como "pendiente", lo pone en la cola y devuelve el código STATUS_PENDING. El flujo de entrada no procesado tiene que esperar la conclusión del IRP, para lo cual usa una llamada de procedimiento asincrónico (Asynchronous Procedure Call, APC).

    Cuando el usuario pulsa o suelta una de las teclas, el controlador del sistema del teclado genera una interrupción de hardware. El elemento que lo procesa escoge una rutina especial de tratamiento de la interrupción IRQ 1 (interrupt service routine, ISR), registrada en el sistema por el driver i8042prt. Este procedimiento lee en la cola interna del controlador del teclado los datos que aparecieron. El procesamiento de la interrupción del sistema debe ser lo más rápido posible, por lo que ISR pone en la cola la llamada de procedimiento retrasado (Deferred Procedure Call, DPC) I8042KeyboardIsrDpc y concluye su trabajo. En cuanto sea posible (cuando IRQL baje al DISPATCH_LEVEL), DPC será llamada por el sistema. En este momento se llamará al procedimiento de llamada inversa KeyboardClassServiceCallback registrada por el driver Kbdclass y el driver i804prt. KeyboardClassServiceCallback extraerá de su cola la solicitud IRP que espera su conclusión, llenará la mayor cantidad de estructuras KEYBOARD_INPUT_DATA, que contienen toda la información necesaria sobre las pulsaciones de teclas y concluirá el IRP. El flujo de entrada no procesado se activa, procesa la información recibida y de nuevo envía un IRP del tipo IRP_MJ_READ al driver de clase que de nuevo se pone en la cola hasta la siguiente pulsación o liberación de tecla. De esta manera, la pila del teclado siempre tiene por lo menos un IRP en espera que se encuentra en la cola del driver Kbdclass.


    Fig. 6. Sucesión (orden) de las solicitudes del RIT al driver del teclado

    Mediante la utilidad IrpTracker desarrollada por la compañía Open Systems Resources, podemos hacer un seguimiento de la secuencia de llamadas que tienen lugar durante el procesamiento de la entrada del teclado.


    Fig. 7. Procesamiento de la entrada del teclado en el modo del usuario

    Pero... ¿de qué manera el RIT procesa la información que le llega? Todos los eventos procedentes del teclado se acumulan en una cola del sistema de entrada de hardware, después de lo cual se convierten sucesivamente en mensajes de Windows (tipo WM_KEY*, WM_?BUTTON* o WM_MOUSEMOVE) y que se ponen al final de la cola de entrada virtual (virtualized input queue, VIQ) del flujo activo (foreground thread). En los mensajes de Windows los scan-codes de las teclas se convierten en códigos de teclas virtuales (virtual-key code), que no corresponden a la ubicación de las teclas en el teclado, sino a las acciones que cumple esta tecla. El mecanismo de transformación de los códigos depende del layout del teclado, de las teclas pulsadas al mismo tiempo (por ejemplo, SHIFT) y otros factores.

    Cuando el usuario entra al sistema, el proceso Windows Explorer crea un flujo que a su vez crea el panel de tareas y el escritorio (WinSta0_RIT). Este flujo se encadena al RIT. Si el usuario inicia MS Word, entonces el flujo que crea la ventana se encadena de inmediato al RIT. Después, el flujo que pertenece a Explorer, se desconecta del RIT, ya que sólo un flujo puede estar conectado al RIT al mismo tiempo. Cuando se pulsa una tecla, en el SHIQ aparece el elemento correspondiente que hace que el RIT se active, transforme el evento de entrada hardware en un mensaje de teclado y lo pone en el VIQ del flujo de MS Word.

    Procesamiento de los mensajes por una ventana en particular

    ¿De qué manera se procesan los mensajes del teclado que están en su cola de mensajes?

    El ciclo estándar de procesamiento de mensajes suele representarse de la siguiente manera:

    while(GetMessage(&msg, 0, 0, 0))
    {
    TranslateMessage(&msg);
    DispatchMessage(&msg);
    }

    Mediante las funciones GetMessage, los eventos del teclado se extraen de la cola y se remiten con la función DispatchMessage a la rutina de la ventana, que ejecuta el procesamiento de mensajes enviados a la ventana dónde en ese momento dado está el foco de entrada (input focus). El foco de entrada es un atributo que se puede asignar a una ventana creada por una aplicación o por Windows. Si la ventana tiene un foco de entrada, la correspondiente función de la misma recibe todos los mensajes del teclado provenientes de la cola del sistema. La aplicación puede pasar el foco de entrada de una ventana a otra, por ejemplo mediante la combinación de teclas Alt+Tab.

    La función TranslateMessage suele llamarse antes que la función DispatchMessage. La primera se basa en los mensajes WM_KEYDOWN, WM_KEYUP, WM_SYSKEYDOWN, WM_SYSKEYUP para crear los mensajes "de símbolos" WM_CHAR, WM_SYSCHAR, WM_DEADCHAR y WM_SYSDEADCHAR. Los mensajes de símbolos creados se ponen en la cola de mensajes de la aplicación, pero los mensajes de teclado originales no se eliminan de esta cola.

    Masivos del estado de las teclas del teclado

    Una de las tareas enfrentadas durante el diseño del modelo de entrada de hardware de Windows era su tolerancia a las fallas. La tolerancia a las fallas la garantiza el procesamiento independiente de la entrada de datos, lo que evita que un flujo tenga efectos indeseables en otro flujo. Pero esto no es suficiente para aislar completamente unos flujos de otros, por lo que el sistema admite un concepto adicional, la tabla local de entrada (local input table). Cada flujo tiene su propio estado de entrada, cuyos datos se guardan en la estructura THREADINFO. En la información sobre este estado se incluyen los datos sobre la cola de entrada virtual y también un grupo de variables. Estas últimas contienen la información de control sobre el estado de la entrada. En lo que respecta al teclado, se admiten los siguientes datos: qué ventana está en el foco del teclado, qué ventana está activa en el momento dado, qué teclas están presionadas, cuál es el estado del cursor de entrada.

    La información sobre las teclas pulsadas se guarda en el masivo de estado sincrónico de las teclas (synchronous key state array). Este masivo se incluye en las variables del estado local de entrada de cada flujo. Al mismo tiempo, el masivo del estado asincrónico de las teclas (asynchronous key state array), en el que se contiene información similar, es sólo uno y se comparte entre todos los flujos. Los masivos reflejan el estado de todas las teclas en un momento dado y la función GetAsyncKeyState permite determinar si una tecla dada está siendo pulsada. GetAsyncKeyState siempre muestra 0 (no pulsada) si la llama otro flujo que no sea el que creó la ventana que está en el foco de entrada.

    La función GetKeyState se diferencia de GetAsyncKeyState en que muestra el estado del teclado en el momento en que se extrajo el último mensaje de la cola del flujo. Esta función se puede llamar en cualquier momento, para ella no tiene la menor importancia qué ventana está en el foco.

    "Trampas" para el teclado

    Enlace al capítulo "Hooks" de la sección Win32 and Com Development: Interfaz del usuario.

    En el sistema operativo Microsoft Windows se llama "trampa" (hook) al mecanismo de intercepción de los eventos con el uso de una función especial (p.e. la transmisión de mensajes de Windows, la entrada desde el ratón o el teclado antes de que lleguen a la aplicación). Esta función puede, después, reaccionar a los eventos y en ciertos casos, modificarlos o anularlos.

    Las funciones que reciben notificaciones sobre los eventos se llaman funciones filtrantes y se diferencian según los tipos de eventos que interceptan. Para que Windows pueda llamar una función filtrante, ésta deberá estar encadenada a una "trampa", p.e. a una trampa de teclado. El encadenamiento de una o varias funciones filtrantes a una determinada trampa se denomina "instalación del hook". Para instalar y eliminar las funciones filtrantes, las aplicaciones usan las funciones Win32 API SetWindowsHookEx y UnhookWindowsHookEx. Algunos hooks pueden instalarse para todo el sistema o para un solo flujo en particular.

    Si un hook tiene encadenadas varias funciones filtrantes, Windows procesa la cola de funciones. La función encadenada más tarde se ubica en el principio de la cola, y la primera en el final de la cola. La cola de funciones-filtros (ver fig. 8) tiene soporte directo de Windows, lo que permite simplificar la escritura de funciones filtrantes y mejorar la productividad del sistema operativo.

    El sistema admite cadenas independientes para cada tipo de hooks. La cadena de hooks es una lista de marcas que apuntan a las funciones filtrantes (funciones especiales de llamada inversa, determinadas por las aplicaciones). Cuando acontece cierto evento relacionado con un tipo de hook en particular, el sistema envía mensajes sucesivos a cada función filtrante en la cadena de hooks. La acción que puede ejecutar la función filtrante depende del tipo de hook: algunas funciones sólo pueden hacer un seguimiento de la aparición de eventos, otras pueden modificar los parámetros de los mensajes o hasta detener el procesamiento de los mensajes, bloqueando la llamada de la siguiente función filtrante en la cadena de hooks o la función de procesamiento de mensajes de la ventana destino.


    Fig. 8. Cadena de funciones-filtros en Windows

    Cuando se encadena a un hook una o más funciones-filtros y surge un evento que dispare el hook, el SO Windows llama la primera función de la cola de funciones-filtros y con esto concluye su responsabilidad. Después, la función es responsable de llamar la siguiente función en la cadena, para lo cual se usa la función Win32 API CallNextHookEx.

    El SO admite varios tipos de hooks, cada uno de los cuales provee acceso a uno de los aspectos del mecanismo de procesamiento de mensajes de Windows.

    Para el autor de un keylogger, representan interés los hooks de casi todos los tipos: WH_KEYBOARD, WH_KEYBOARD_LL (intercepción de eventos del teclado al ser puestos en la cola de eventos del flujo), WH_JOURNALRECORD y WH_JOURNALPLAYBACK (grabación y reproducción de eventos del teclado y del ratón), WH_CBT (captura de varios eventos, incluyendo la eliminación de evento del teclado de la cola de sistema de la entrada hardware), WH_GETMESSAGE (captura de los eventos recibidos desde la cola de eventos del flujo).

    Esquema general de procesamiento

    Resumamos todos los conocimientos expuestos arriba sobre la entrada de datos por el teclado en un solo algoritmo. El algoritmo de recorrido de la señal desde la pulsación de una tecla hasta la aparición de caracteres en la pantalla se puede representar de la siguiente manera:

    1. Durante su inicio, el sistema operativo crea en el proceso del sistema csrss.exe un flujo no procesado de entrada y una cola del sistema de entrada de hardware.
    2. El flujo de entrada no procesado en el ciclo envía solicitudes de lectura al driver de clase del teclado, los cuales quedan en situación de espera hasta la aparición de eventos provenientes del teclado.
    3. Cuando el usuario pulsa o suelta una tecla en el teclado, el microcontrolador registra la pulsación de determinada tecla y enviará al ordenador el scan-code de la tecla pulsada y una solicitud de interrupción.
    4. El microcontrolador del sistema recibe el scan-code, lo convierte, lo envía al puerto de entrada-salida 60h y a continuación genera una interrupción de hardware para el ordenador central.
    5. El controlador de interrupciones llama la rutina de procesamiento de interrupciones IRQ 1, el ISR registrado en el sistema como driver funcional del teclado i8042prt.
    6. La rutina ISR lee de la cola interna del controlador del teclado los datos que van apareciendo, los convierte en scan-codes de teclas virtuales (valores independientes determinados por el sistema) y pone en la cola una llamada de rutina retrasada I8042KeyboardIsrDpc.
    7. En cuanto es posible, el sistema llama el DPC que a su vez llama la rutina de llamada inversa KeyboardClassServiceCallback, registrada por el driver de clase del teclado Kbdclass.
    8. La rutina KeyboardClassServiceCallback extrae de su cola la solicitud en espera del flujo no procesado de entrada y regresa la información sobre la tecla pulsada.
    9. El flujo de entrada no procesado guarda la información recibida en una cola de sistema de entrada de hardware y genera los mensajes de teclado de Windows WM_KEYDOWN, WM_KEYUP, que se ponen en la cola de entrada virtual VIQ del flujo activo.
    10. El ciclo de procesamiento de los mensajes extrae el mensaje de la cola y lo envía a la rutina de ventana correspondiente para su procesamiento. Con esto, se puede llamar la función de sistema TranslateMessage, que sobre la base de los mensajes del teclado crea los mensajes "simbólicos" adicionales WM_CHAR, WM_SYSCHAR, WM_DEADCHAR è WM_SYSDEADCHAR.

    Modelo de entrada directa (Raw Input)

    El modelo de entrada desde el teclado descrita más arriba tiene una serie de defectos desde el punto de vista de los programadores de aplicaciones. Así, para recibir entrada desde un dispositivo no estándar, la aplicación debe ejecutar una gran cantidad de operaciones: abrir el dispositivo, enviarle solicitudes regularmente, controlar la posibilidad de que el dispositivo sea usado por otra aplicación, etc. Por esto, en las últimas versiones del SO Windows se propuso un modelo alternativo de entrada, llamada modelo de entrada directa (raw input model), llamada a simplificar la programación de aplicaciones que usan dispositivos de entrada no estándar (ver fig. 3, aplicaciones DirectInput).

    El modelo de entrada directa es diferente del modelo original de entrada de Windows. En el modelo anterior, la aplicación recibe una entrada que no depende del dispositivo en forma de mensajes (como WM_CHAR) que se envían a las ventanas de la aplicación. En el modelo de entrada directa, la aplicación debe registrar el dispositivo desde el cual quiere recibir la entrada de datos. A continuación la aplicación recibe la entrada de datos del usuario mediante WM_INPUT. Se admiten dos tipos de transmisión de datos: estándar y buferizado. Para la interpretación de los datos ingresados la aplicación debe recibir información sobre la naturaleza del dispositivo de entrada, que se puede hacer con la ayuda de la función GetRawInputDeviceInfo.

    Diferentes implementaciones de keyloggers

    A continuación analizaremos los principales métodos de implementación de los keyloggers basándonos en los modelos arriba descritos de procesamiento de la entrada de datos del teclado en el SO Windows. Sabiendo la estructura de este modelo, es más fácil entender qué mecanismos pueden usar los keyloggers.

    keyloggers pueden introducirse en cualquier lugar de la secuencia de procesamiento, capturando los datos sobre las teclas pulsadas, transmitidas por un subsistema de procesamiento al siguiente subsistema en la cadena de procesadores. Los métodos de implementación de programas keyloggers que analizaremos los hemos dividido en métodos del modo del usuario y métodos del modo del núcleo. En la figura 9 se muestran todos los subsistemas de procesamiento de entrada del teclado y sus relaciones mutuas. Al lado de ciertos subsistemas hay cifras en círculos rojos, que corresponden a la sección del artículo dónde se describe el método de implementación de keyloggers relacionado con la suplantación o utilización del subsistema indicado.


    Fig. 9. Esquema general de entrada del teclado en el SO Windows

    En esta sección no analizaremos los métodos de implementación de keyloggers basados en hardware. Solo mencionaremos que existen tres variedades de realización de los keyloggers hardware: el keylogger que se incrusta en el mismo teclado, el que se integra en el cable que conecta el teclado y el ordenador y el que se incrusta en el mismo ordenador. El más extendido es el segundo tipo de keylogger hardware. Uno de los ejemplos más famosos es KeyGhost USB Keylogger.

    Actualmente, dos de los pocos antivirus que brindan protección contra la amenaza potencial de los keyloggers son los productos de la versión 6.0 de Kaspersky Lab. Para más detalles lea el artículo "Kaspersky Anti-Virus 6.0 y Kaspersky Internet Security 6.0: Protección contra los programas de registro de pulsaciones en el teclado (keyloggers)".

    Keyloggers del modo del usuario

    Los keyloggers del modo del usuario son los más fáciles de implementar y de detectar, ya que para capturar los datos usan funciones conocidas y bien documentadas de la interfaz Win32 API.

    Instalación de trampas para los mensajes del teclado

    Quizás este sea el método más difundido de implementación de los keyloggers. Por medio de la llamada de la función SetWindowsHookEx, el keylogger instala un hook global para los eventos del teclado en todos los flujos del sistema (ver sección 2.6). La función filtrante del hook en este caso se ubica en una biblioteca dinámica aparte, que se incrusta en todos los procesos del sistema que procesa los mensajes. Al extraer de la cola de mensajes cualquier flujo de mensajes del teclado, el sistema llamará la función filtrante instalada.

    Entre las virtudes de este método de intercepción están la simplicidad y la captura garantizada de todas las pulsaciones de teclas. Entre sus defectos está la necesidad de un fichero dll y la relativa facilidad de detección, ya que está incrustado en todos los procesos del sistema.

    Ejemplos de keyloggers que usan este método: AdvancedKeyLogger, KeyGhost, Absolute Keylogger, Actual Keylogger, Actual Spy, Family Key Logger, GHOST SPY, Haxdoor, MyDoom, etc.

    Kaspersky Internet Security detecta de forma proactiva este tipo de keyloggers como invader (loader). Para que esto sea posible, debe estar activa la opción "Incrustación de capturadores de ventanas" del sistema "Análisis de actividades de las aplicaciones en el módulo de defensa proactiva).

    Utilización del barrido cíclico del estado del teclado

    Es el segundo método de implementación de keyloggers más difundido. El estado de todas las teclas, a pequeños intervalos, se solicita mediante las funciones GetAsyncKeyState y GetKeyState. Estas funciones devuelven masivos del estado sincrónico o asincrónico de las teclas (ver sección 2.5.3). Al analizarlas, se puede entender qué teclas han sido pulsadas o liberadas después del último barrido.

    Las ventajas de este método son la extrema simplicidad de su implementación y la ausencia de módulos adicionales (como en el caso de los hooks). Sus defectos: no se garantiza la detección de todas las pulsaciones, pueden haber lagunas; es fácil detectarla mediante la monitorización de los procesos que envían solicitudes al teclado con elevada frecuencia.

    Este método de realización se usa en los keyloggers similares a Computer Monitor, Keyboard Guardian, PC Activity Monitor Pro, Power Spy, Powered Keylogger, Spytector, Stealth KeyLogger y Total Spy.

    Kaspersky Internet Security detecta de forma proactiva este tipo de keyloggers como Keylogger. Para que esto sea posible, debe estar activa la opción "Incrustación de capturadores de ventanas" del sistema "Análisis de actividades de las aplicaciones en el módulo de defensa proactiva).

    Incrustación en el proceso y captura de las funciones de procesamiento de los mensajes

    Es un método poco utilizado. El keylogger se incrusta en todos los procesos y captura en estos las funciones GetMessage o PeekMessage (ver sección 2.5.2) de la biblioteca user32.dll. Con este fin se pueden usar diferentes métodos: splicing, modificación de la tabla de direcciones de las funciones importadas por IAT, la captura de la función GetProcAddres, que devuelve la dirección de la función desde la dll cargada. El keylogger puede implementarse en forma de DLL o mediante la incrustación directa de código en el proceso afectado.

    Como resultado, tenemos lo siguiente: cuando la aplicación llama, por ejemplo, la función GetMessage para recibir el siguiente mensaje de la cola de mensajes, esta llamada llega al código del interceptor. El interceptor llama la función original GetMessage desde user32.dll y analiza los resultados devueltos según los tipos de mensaje. Al recibir un mensaje del teclado, se extrae toda la información de los parámetros del mensaje y se los registra en el keylogger.

    Entre las ventajas de este método está su efectividad: como la difusión de este método es mínima, sólo pocos programas permiten detectarlos; además, contra estos keyloggers son inútiles los teclados de pantalla, ya que los mensajes que estos envía también se interceptan.

    Sus defectos: la modificación de la tabla IAT no garantiza la captura, ya que las direcciones de las funciones de la biblioteca user32.dll pueden guardarse antes de que el keylogger se incruste; el spicing tiene sus dificultades relacionadas, por ejemplo, con la necesidad de reescribir en tiempo real el cuerpo de la función.

    Kaspersky Internet Security detecta de forma proactiva este tipo de keyloggers como invader. Para que esto sea posible, debe estar activa la opción "Incrustación de capturadores de ventanas" del sistema "Análisis de actividades de las aplicaciones en el módulo de defensa proactiva).

    *Splicing: método usado para interceptar las llamadas de las funciones API. La esencia del método consiste en el reemplazo de lo primeros bites (por lo general 5) de la función de la instrucción JMP, que entrega el control al código del interceptor.

    Uso de modelos de entrada directa

    En el presente tenemos noticias de sólo un ejemplo de implementación de este método: la utilidad de pruebas de la seguridad del sistema contra keyloggers. La esencia del método es el uso del nuevo modelo de entrada directa (ver sección 2.8), para lo cual el keylogger registra el teclado en calidad de dispositivo desde dónde quiere recibir la entrada de datos. Después, el keylogger empieza a recibir datos sobre las teclas pulsadas o liberadas mediante el mensaje WM_INPUT.

    Sus ventajas son la simplicidad de implementación y su efectividad: como este método se ha hecho famoso hace poco tiempo, casi ninguno de los programas de defensa tiene, por el momento, la capacidad de hacerle frente.

    Sus defectos: es muy fácil detectarlo ya que es necesario registrar la solicitud para que la aplicación obtenga entrada directa (ninguno de los procesos del sistema tiene este permiso por defecto).

    Kaspersky Internet Security 7.0 detecta de forma proactiva este tipo de keyloggers como Keylogger. Para que esto sea posible, debe estar activa la opción "Incrustación de capturadores de ventanas" del sistema "Análisis de actividades de las aplicaciones en el módulo de defensa proactiva).

    Keyloggers del modo del núcleo

    Los keyloggers del modo del núcleo son más complejos que los del modo del usuario, tanto en su implementación como en su detección. Su escritura exige conocimientos especiales, pero se pueden crear keyloggers completamente imperceptibles para todas las aplicaciones del modo del usuario. Para la captura de datos pueden usar métodos documentados en Microsoft Driver Development Kit y métodos no documentados.

    Uso de un driver-filtro de clase teclado Kbdclass

    Método de captura documentado en el DDK (ver sección 2.4.2). Los keyloggers basados en este método capturan las solicitudes enviadas al teclado mediante la instalación del filtro sobre el dispositivo “\Device\KeyboardClass0”, creado por el driver Kbdclass (ver sección 2.4.3). Se filtran sólo las solicitudes IRP_MJ_READ, ya que son precisamente estos los que permiten recibir los códigos de las teclas pulsadas o liberadas.

    Sus ventajas: garantiza la captura de todas las pulsaciones, no se lo puede detectar sin usar un driver, por lo que no todos los antikeyloggers los detectan. Sus defectos: es necesario instalar un driver.

    Los más conocidos keyloggers que usan este método de implementación son: ELITE Keylogger y Invisibel KeyLogger Stealth.

    Kaspersky Internet Security detecta de forma proactiva este tipo de keyloggers como Keylogger mediante la monitorización de la pila de dispositivos. Para que esto sea posible, debe estar activa la opción "Incrustación de capturadores de ventanas" del sistema "Análisis de actividades de las aplicaciones en el módulo de defensa proactiva).

    Uso de un driver-filtro del driver funcional i8042prt

    Está documentado en el DDK. Los keyloggers que usan este método capturan las solicitudes al teclado mediante la instalación de un filtro sobre un dispositivo sin nombre creado por el driver i8042prt bajo el dispositivo "Device\KeyboardClass0" (ver sección 2.4.3). El driver i8042prt es una interfaz software para agregar funciones adicionales de procesamiento de la interrupción IRQ1 (IsrRoutine), en la cual se puede hacer el análisis de los datos recibidos desde el teclado.

    Sus ventajas y defectos son similares a los del método anterior. Pero tiene un defecto más: su dependencia del tipo de teclado: el driver i8042prt sólo procesa las solicitudes provenientes de teclados PS/2, por eso este método no sirve para capturar los datos introducidos por un teclado USB o un teclado inalámbrico.

    Kaspersky Internet Security detecta de forma proactiva este tipo de keyloggers como Keylogger mediante la monitorización de la pila de dispositivos. Para que esto sea posible, debe estar activa la opción "Incrustación de capturadores de ventanas" del sistema "Análisis de actividades de las aplicaciones en el módulo de defensa proactiva).

    Modificación de la tabla de procesamiento de las solicitudes del sistema del driver Kbdclass

    Los keyloggers basados en este método capturan las solicitudes al teclado, reemplazando el punto de entrada IRP_MJ_READ en la tabla de procesamiento de solicitudes del sistema (dispatch table) del driver Kbdclass. Por sus funciones es parecido al driver-filtro del driver Kbdclass (ver sección 3.2.1). Tiene las mismas particularidades. En otra implementación se usa la captura de otra función del procesador de solicitudes: IRP_MJ_DEVICECONTROL. En este caso el keylogger se convierte en algo parecido al driver-filtro i8042 (ver sección 3.2.2).

    Kaspersky Internet Security detecta de forma proactiva este tipo de keyloggers como Keylogger. Para que esto sea posible, debe estar activa la opción "Incrustación de capturadores de ventanas" del sistema "Análisis de actividades de las aplicaciones en el módulo de defensa proactiva).

    Modificación de la tabla de servicios del sistema KeServiceDescriptorTableShadow

    Es un método bastante difundido de implementar keyloggers. Sus funciones son similares a las del método del modo del usuario descrito en la sección 3.1.3. Los keyloggers basados en este método capturan las solicitudes al teclado mediante un parche aplicado al punto de entrada NtUserGetMessage/PeekMessage en la segunda tabla de servicios del sistema (KeServiceDescriptorTableShadow) del driver win32k.sys. La información sobre la pulsacion de teclas llega al interceptor cuando en cualquiera de los flujos se concluye la llamada de las funciones GetMessage o PeekMessage.

    La ventaja de este método es la dificultad de su detección. Su defecto: la relativa complejidad de su implementación (la búsqueda de la tabla KeServiceDescriptorTableShadow es una tarea difícil; además, otros drivers pueden haber "parchado" el punto de entrada a esta tabla) y la necesidad de instalar un driver independiente.

    Kaspersky Internet Security detecta de forma proactiva este tipo de keyloggers como Keylogger. Para que esto sea posible, debe estar activa la opción "Incrustación de capturadores de ventanas" del sistema "Análisis de actividades de las aplicaciones en el módulo de defensa proactiva).

    Modificación del código de la función NtUserGetMessage/PeekMessage mediante splicing

    Es un tipo de keylogger que se encuentra muy raras veces. Los keyloggers basados en este método capturan las solicitudes al teclado modificando el código de la función NtUserGetMessage o NtUserPeekMessage por medio del splicing. Los datos de la función se realizan en el núcleo del sistema en el driver win32k.sys y se llaman desde las funciones correspondientes de la biblioteca user32.dll. Como se indica en la sección 3.1.3, estas funciones permiten filtrar todos los mensajes recibidos por las aplicaciones y obtener los datos sobre las teclas pulsadas o liberadas de los mensajes del teclado.

    La ventaja de este método es la dificultad de su detección, su defecto es la complejidad de su implementación (la necesidad de reescribir el cuerpo de la función en tiempo real, la dependencia de la versión del sistema operativo y los programas instalados, así como la necesidad de instalar un driver.

    Sustitución del driver en la pila de drivers del teclado

    Este método se basa en la sustitución del driver Kbdclass o de uno de los drivers de bajo nivel por un driver programado por el delincuente. Un evidente defecto de este método es la complejidad de su realización, ya que no se sabe con anterioridad el tipo de teclado usado y por lo tanto es fácil detectar la sustitución del driver. Como resultado, este método prácticamente no se usa.

    Realización de un driver-procesador de interrupciones IRQ 1 propio

    El método consiste en escribir su propio driver de modo de núcleo que capture las interrupciones del teclado (IRQ 1) y que se dirija directamente a los puertos de entrada-salida (60h, 64h). Como es un método difícil de implementar y no está clara su interacción con el procesador de interrupciones del sistema IRQ 1 (driver i8042prt.sys), en la actualidad es un método netamente teórico.

    Conclusiones

    En este artículo hemos analizado el algoritmo de recorrido desde la pulsación de una tecla hasta la aparición de un carácter en la pantalla, hemos visto los eslabones de la cadena de procesamiento de la señal y los métodos de implementación de los keyloggers basados en la captura de la entrada del teclado en determinadas etapas de este algoritmo.

    1. El esquema de introducción de datos desde el teclado en el SO Windows es bastante complejo y se puede introducir interceptores prácticamente en cualquier etapa. En algunas etapas del algoritmo ya existen interceptores, en otros todavía no.
    2. Existe una dependencia entre la difusión del keylogger y la complejidad de su realización. Así, los métodos más utilizados de captura (la instalación de un hooker de eventos de entrada y el barrido cíclico del estado del teclado) son al mismo tiempo los más usados. Utilizando estos métodos, hasta una persona que ha aprendido a programar hace una semana puede escribir un keylogger.
    3. La gran mayoría de los keyloggers que existen hoy en día son instrumentos bastante simples de implementar, que pueden utilizarse con fines delictivos, sobre todo para robar la información confidencial introducida por medio del teclado.
    4. Las compañías antivirus deben brindar a los usuarios protección contra la amenaza representada por los keyloggers usados por los delincuentes.

    A medida de que se vayan perfeccionando los medios de defensa, los autores de keyloggers tendrán que adoptar implementaciones más complejas que usen drivers del núcleo del sistema operativo Windows. En este campo todavía tienen muchas posibilidades.

    Fuente:
    Kaspersky Lab
    Read more