Quis custodiet ipsos custodes?

No, no me he vuelto loco (en todo caso ya lo estoy), ni me ha dado por aprender latín (ya tuve bastante de eso en el instituto), ni me he puesto a estudiar ética o filosofía… Bueno, algo de ética sí. Para los que no lo sepáis, es una frase que aparece en una sátira de Juvenal, un escritor romano y que, traducido al castellano, significa “¿Quién vigilará a los vigilantes?”.

Todo esto viene a cuento por lo siguiente. Sed pacientes porque creo que lo que voy a contar hoy aquí es, como poco, un bombazo, si no algo para que algún juez actúe de oficio. Pero comencemos por el principio.

Todos conocéis la campaña de Tractis sobre el DNIe. Por dos euros, destinados a los gastos de envío, puedes recibir en casa un lector de tarjetas inteligentes destinado a operar con el DNIe. Ni trampa ni cartón: te suscribes y a los pocos días recibes tu lector, aunque en mi caso los pocos días han sido como dos meses, pero sé de gente que lo ha recibido en un par de semanas.

Además, el cacharrito funciona de cojones, o al menos se instala sin necesidad de drivers extras. Lo enchufas y listo, a funcionar. No he probado sus bondades porque no tengo DNIe, de hecho pensé en conseguirlo sólo para poder jugar con él, pero a vista de lo que me ha pasado, intentaré usarlo (el DNIe) lo menos posible…

Si sigues las instrucciones, el siguiente paso es instalar el certificado digital y el software anexo de la Policía, que se debe bajar de la propia web. Lo bajas, lo instalas y listo, a funcionar.

Vale, ahora cambiemos de registro.

¿Quién de los que lee esto no utiliza Visual Studio en alguno de sus colores? Pues eso, para muchos es la herramienta con la que se gana las habas. Y todos sabemos que el Visual Studio es muy pejigueras con algunas cosas, y que sin comerlo ni beberlo puede empezar a hacerte cosas raras y a funcionar, cuando menos, raro. Echemos al mejunje una sensible caída del rendimiento general de tu ordenador.

Je, je, algunos ya sabéis por dónde voy. Pero dejad que me regodee un poco en la situación. El ordenador va sensiblemente más lento, sufre enganches en los accesos a disco, y encima el Visual Studio te muestra errores como “All pipe instances are busy”, errores que no has visto en tu miserable vida…

Así que uno se coge el Process Explorer, que si no existiera habría que inventarlo, y le da por inspeccionar el Visual Studio. A la primera, directa en los dientes. Os dejo una captura:

image

Fijaros en la línea seleccionada, y en el delta de consumo de ciclos…

¿Qué cojones hace esa DLL ahí insertada?

Y encima consumiendo un 60% del tiempo de proceso de Visual Studio. Luego uno se pone a mirar otros procesos, como el antivirus, el Messenger… y en todos está. Bueno, todos no, sólo algunos. Sólo aquellos interesantes. Fijaros donde pone State: WrLpcReply. Es una función del Kernel encargada de comunicaciones inter-procesos… y si matamos ese proceso dentro de esa DLL no ocurre nada, Visual Studio sigue funcionando igual –de mal-, pero igual…

La verdad es que no tuve ganas de seguir. Desinstalé el certificado, pero como no me fío un pelo, hice una instalación limpia: apagar del botón de atrás de la fuente. Lanzar una instalación formateando discos, apagar a medio instalar. Volver a lanzar otra, dejando los discos sin particiones. Apagar. Y entonces instalar de nuevo. Así evitamos que se nos queden regalitos en el ordenador.

No tengo nada que ocultar, pero tampoco nada que mostrar.

Las preguntas abiertas para que alguien las responda son:

  • ¿Qué necesidad tiene el DNIe de insertarse en el antivirus, el Messenger o el Visual Studio?
  • ¿Es un error de programación y esa DLL debía insertarse en otro lado y los habituales programadores chapuceros han metido la pata?
  • ¿Por qué ha de consumir esa DLL tanto tiempo de proceso? Un 60% más del normal por aplicación interceptada. Inaceptable.
  • ¿Nos quiere espiar el Estado?

20 comentarios en “Quis custodiet ipsos custodes?”

  1. No es que yo sea ‘conspiranoico’, pero como mínimo es muy sospechoso y estoy totalmente de acuerdo en que deberían aclarar la razón de que esto ocurra, y con urgencia.

  2. David, ciertamente lo más lógico es pensar la versión “Consultora PACO”, la DLL está centrada en la espera de una llamada un CallBack remoto, lo interesante sería determinar qué hace ese callback, si consultar si se ha metido el dni en el lector o si recibir un buffer con el código fuente, por poner un ejemplo.

    Yo la verdad no he tenido ganas de seguir mirando, si alguien quiere hacerlo, que se instale el tema y estudie la citada DLL. Podría no salir nada o podría salir el mayor escándalo de los últimos tiempos, aunque como bien dices, lo más probable sería demostrar que o bien el programador que hizo eso era un chapuzas o que iba con prisas…

  3. Hola Rafael!

    Buen artículo, es el tipo de investigaciones que me gusta hacer sobre procesos y cosas raras en mi sistema.

    Mis siguientes pasos hubieran sido los siguientes: Ya que tengo esa dll localizada en algunos procesos me atacharía con WinDBG o con el mismo process explorer para ver la pila, seguramente se inicie porque está registrado como un provider criptográfico del sistema. Lo siguiente sería utilizan autoruns de Sysinternals, para ver si realmente esa dll u otra parecida está registrada en mi sistema.

    Seguramente se activará en los procesos en los que se acceda al almacén de certificados del sistema.

    Saludos. Luis.

  4. Tu forma de hacer limpieza del disco duro me parece surrealista, vamos, como hacerle vudú al ordenador. Arrancando el ordenador desde un DVD con linux por ejemplo seguro que puedes borrar las particiones y usar algún programa para escribir diversos patrones de datos en el disco para que no se puedan recuperar datos, siguiendo las directrices de TEMPEST.
    Yo apuesto por una chapuza de programación de la consultora de turno. Un familiar mio trabajó en una empresa que desarrolló el DNI-E, pero creo que en el chip. Todo era bastante “confidencial”,

  5. Pues cuando pones el DNI se pasa todo el rato pidiéndote el pin. Creo que deja de hacerlo cuando te identificas en alguna página (banco, AEAT,…). Por cierto, si te renuevas el DNI para conseguir el electrónico te lo renuevan para 10 años, no hasta la finalización del periodo actual, están de campaña…

  6. Después de leer el post, he recordado que la semana pasada al recibir mi lector y probarlo noté una cosa que me pareció bastante rara, y es que al tener el DNIe insertado en el lector e iniciar aplicaciones como el messenger y live mail (que hacen uso de certificados digitales) me saltaba la ventana de login del DNIe, por lo que puede estar relacionado con esto.

    Además recuerdo que al meter la clave del DNIe el live mail acababa cascando, con messenger no lo se.

  7. Joer quillo, cualquier dia de estos te vemos en TV discutiendo en un cara a cara con el Rubalcaba 🙂 O igual te apuntas al programa ese que hacen preguntas a ministros y les preguntas por el dni-e- Di que si chico, que no nos pueden colar dlls asi como asi en el visual studio, que se habran creido. xdddddddd

  8. Hay un comentario de David que no sé por qué no ha salido. Viene justo detrás del de Peni y delante de mi respuesta a él. Lo pego aquí:

    “Según Occam debería tratarse más de un error de programación -un becario mal pagado en vez de un equipo de programación- que de una conspiración.

    Dos escenas:

    (Director del M.del.Interior) – Señores de la empresa subcontratada, el estado quiere espiar a lo ciudadanos así que van a implementar un software que inyecte una dll en cada proceso interesante para que el Ministerio del Interior…

    (Consultora PACO) – Niño, tienes una semana para sacarte una aplicación que haga no se que de no se cual certificado. Anda, tírale que ya deberíamos haberla entregado. ”

  9. Biznaguero, ni borracho de agua me vuelvo a acercar a ese lector y a su certificado, en MAC, en Linux o en la biblia en pasta…

    Nostromo ADF, sí que es peculiar. Es lo menos para asegurar que no queda rastro sin pasarte un mes borrando cosas. Aparte de eso, nadie te dice que la rutina de MBR que pudiera haber no salte al ser leída por el linux o por cualquier otro sistema operativo. Yo no quiero un borrado total de disco, yo quiero evitar que una rutina vírica salte. ¿Es que ya no te acuerdas del Omicron PT?

    CafeBAR (alias Tella), lo que podrías hacer es meterle mano a la DLL y hacer una de tus entradas en donde quiera que las publiques. Que yo sé que estás capacitado… Yo no tengo ganas, además, un mindundi como yo no se puede acercar a tus alturas.

  10. Segundo intento de escribir mi respuesta a Cyber: Creo que no, que sólo lo pueden borrar los admin del sitio y el dueño del blog, yo al menos no puedo borrar mis mensajes en otros blogs de Geeks.

  11. Hola soy David. Además de borrado mi comentario al visitar geeks.ms me sale una página 403 desde que publiqué tal comentario.

    Creo que banearon mi IP. Esto lo estoy escribiendo desde Anonimouse.

    O están de broma o no entiendo porque borraron un comentario que lo único que aportaba era unas gotas de humor.

    En fin, parece que 30 años no es suficiente.

  12. Copio y pego, de nuevo a David (más que nada por si vuelve a desaparecer su comentario, y de paso este mío):

    “Hola soy David. Además de borrado mi comentario al visitar geeks.ms me sale una página 403 desde que publiqué tal comentario.

    Creo que banearon mi IP. Esto lo estoy escribiendo desde Anonimouse.

    O están de broma o no entiendo porque borraron un comentario que lo único que aportaba era unas gotas de humor.

    En fin, parece que 30 años no es suficiente.”

  13. Hola a todos!

    Solamente me gustaría aportar un poco de sensatez a la cuestión. Tengo 2 puntos de vista.

    1. El primer punto de vista es el que todos comentáis, estamos en un país en el que por desgracia abundan las consultoras Paco y no hay más remedio que aguantar muchas veces las chapuzas de estos que se hacen llamar ingenieros… en fin… no podemos luchar contra esto.

    2. Sobre el segundo punto de vista que quiero comentar es donde quiero aportar otro punto de vista diferente al de la psicosis que creo que tenéis en la cabeza. Es más, me hace hasta gracia! No habéis pensado que para poder incorporar un nuevo CSP (Cryptographic Service Provider) en Windows (ese gran sistema operativo) hay que generar una DLL que implemente el API que ofrece Windows para todas las funciones criptográficas. De este modo, no las realizará Windows (¿¿no teneis miedo de su implementación de seguridad?? ¿os fiais más?) si no la tarjeta criptográfica que tiene el DNI. En este caso, es WINDOWS el que detecta que se ha registrado en el sistema un nuevo proveedor criptográfico y es WINDOWS el que carga como dependencia esta librería del lector a todas las aplicaciones que hacen uso del proveedor criptográfico. Casi todas las aplicaciones de windows tienen acceso al repositorio de certificados, por lo tanto windows carga el nuevo proveedor instalado. Así que no es la DLL la que dice “anda, quiero cargarme en todos los programas” es Windows el que dice “upsss… voy a cargar esta DLL en todas las aplicaciones para que hagan uso del lector”. Ahora hablando desde el desconocimiento, una vez cargada la DLL, toda llamada que VISUAL STUDIO, MESSENGER… haga al proveedor criptográfico se convertirá en una llamada a la DLL que WINDOWS ha cargado (y que sobrecarga los métodos de acceso a repositorio de certificados, criptografía…).

    Lo que está claro es que el becario de turno se le haya ido la mano y haga que el sistema sea lento de cojones… eso ya he dicho que no lo podemos evitar, pero que la DLL se cargue en todas las aplicaciones… ES LO QUE HAY gracias a Windows (observad la imagen, CertStore Provider…).

    Finalmente me gustaría acabar comentando la psicosis de espionaje… jajajajjajajaa…. nos preocupa una DLL de acceso a un lector simplemente porque proviene (al final de la cadena) del gobierno y lo mejor es que luego seguro que todos estais entrando en Facebook, enviando mails desde GMail, búsquedas por google… jajajjaa… ya saben ellos más de vosotros que el gobierno. ¿Por que no tenemos miedo de las DLL que HP instala en nuestro S.O para poder imprimir con nuestra impresora?, alomejor está haciendo una copia de seguridad de los datos personales y enviándolos a HP. Un poquito de por favor… todos los lectores y sistemas de seguridad homologados para DNIe han de pasar certificaciones de seguridad y son las empresas auditoras las que homologan y certifican que el software del DNIe no contiene código malicioso y cumple normativas como FIPS, etc. ¿Hace esto HP? ¿Alguien vigila a Google para que no espie nuestros mails?

    Llegados a este punto tengo que decir que no tengo nada que ver con consultoras PACO 🙂 ni pertenezco a ella… y soy el primero que lucha por conseguir software y servicios de seguridad que nos permitan estar más tranquilos en casa y que NO HAGAN MORIR NUESTRAS MÁQUINAS (Abajo consultoras PACO!!!).

    Un saludo a todos… el blog es cojonudo!!! Y perdón por el rollazo…

  14. @ masterjc:
    Es más que probable que tengas razón, pero sabiendo la ‘prevención’ que hay frente a ciertas cosas, el hecho de distribuir ese tipo de aplicación en esas condiciones y sin ningún tipo de explicación es normal que de lugar a sospechas. Deberían haber puesto mucho más cuidado y haber pasado por lo menos un mínimo control de calidad.
    Si alguien nos quisiera espiar de ‘verdad’, estoy casi seguro que nos daríamos cuenta o no nos quedaría más remedio que soportarlo. alguien se acuerda de ‘Echelon’?

  15. masterjrc, completamente de acuerdo con tu análisis. Sólo una puntualización: he desensamblado y “depurado” esa DLL (¡huy, lo que he dicho! 😉 y todo apunta a que se han pasado con el “refresco” en la comprobación de la presencia de dispositivos criptográficos. No es malo, simplemente es una característica que ha elegido el desarrollador, o quizás se la han impuesto, nunca se sabe. No afecta al rendimiento del sistema y garantiza que se detecta inmediatamente la inserción o extracción de la tarjeta en la unidad lectora. Si esto afecta a VS porque carga una copia de la DLL con cada programa que la necesita, pues qué le vamos a hacer, como tú bien dices, son cosas del Ventanas; es lo que hay. Me uno a tu grito: ¡ABAJO CONSULTORAS PACO!.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *