Hemos programado Office Signature Checker, una herramienta para comprobar la firma de documentos Office (sin necesidad de ejecutarlos). Si bien Windows permite comprobar la firma de los ejecutables antes de lanzarlos, por ahora no había forma cómoda de verificar un certificado de un documento Office sin tener que abrirlo y, por tanto, exponerse a ciertos riesgos. Office Signature Checker hace esa pequeña labor.
De un ejecutable firmado, se puede comprobar su certificado (o sea, que la clave pública ha sido validada y pertenece a quien dice pertenecer) en las propiedades del fichero.
Otra forma, es con la utilidad Sigcheck de Sysinternals.
Pero ninguno de estos métodos funciona para archivos en Office, que también pueden estar firmados. En Office 2007, para firmar con un certificado un documento y garantizar su integridad y procedencia, simplemente, indicándolo. Si no se tiene un certificado preparado, el sistema lo generará automáticamente. Si se está en un entorno corporativo, quizás la compañía tenga su propia PKI.
Luego, para comprobar si un documento está o no firmado, es necesario abrirlo, verificar el ribete, y pulsar en el usuario para ver su certificado.
Es un proceso implica abrir el documento antes de conocer si está firmado. Si este documento explotase alguna vulnerabilidad, ya sería demasiado tarde. Un proceso más concienciado con la seguridad, al igual que con los ejecutables, es verificar la procedencia antes de abrir el fichero. Para eso sirve Office Signature Checker.
Es una pequeña utilidad que extrae el certificado de los documentos Officea partir de su versión 2007 (sólo válido en documentos con formato docx, xlsx, etc), y muestra el certificado si está firmado. Simplemente es necesario pasarle como parámetro el documento, o realizar la verificación desde el menú contextual.
Detalles técnicos
La aplicación es muy simple, y no pretende más que concienciar un poco sobre la importancia de verificar los ficheros (ejecutables o no) antes de lanzarlos. Los documentos de Office a partir de 2007 son en realidad un archivo ZIP, que contiene información XML. La aplicación extrae el certificado, lo almacena en los archivos temporales, y lo muestra por pantalla. Si el documento está firmado por más de un usuario, mostrará todos los certificados. Hace uso de la librería DotNetZip. Modifica el menú contextual de las siguientes ramas:
HKLM «SOFTWARE\Classes\Excel.Sheet.12\
HKLM «SOFTWARE\Classes\Word.Document.12\
HKLM «SOFTWARE\Classes\PowerPoint.Show.12\
HKLM «SOFTWARE\Classes\Access.Application.12\
Por tanto, la opción «Check Certifcates» se mostrará sobre los archivos Excel, Word, PowerPoint y Access 2007.
Ha sido programada en C# (solo necesita .NET 2, de serie en Windows) por Sergio de los Santos y el diseño es de Jose Mesa. Está disponible desde http://hispasec.com/osc/osc.exe
Sergio de los Santos
Twitter: @ssantosv
Villaveiran dice
Muy buen aporte, muchas gracias. Es incrible el gran trabajo que estais haciendo felicitaciones XD
Andrés Aquino dice
Y se tiene posibilidad de ver el código fuente?
Julian Perez dice
Interesante, y como siempre Hispasec dando muestras de su dinamismo. Sin embargo, existe una herramienta (que cuenta con una version gratuita validada por INTECO) desde hace años, que no solo permite verificar las firmas de office desde 2003 sino que permite firmarlos. De hecho, funciona incluso para documentos de Open Office.
La empresa desarrolladora es KSI Seguridad Digital y la herramienta se llama «Explorador ESecure». Unas auténtica virguería que sería estupendo que un día analizase Hispasec, ya que incorpora cifrado simetrico, asimetrico y borrado seguro incluso en su version gratuita.
Solo por aclarar, soy uno de los socios fundadoreas de KSI y esta fue la primera maravillosa herramienta con la que nacimos hace 5 años. ANALITICS21 es un Spin-off.
Un cordial saludo
Informatica dice
Por la descripcion que se nos da es una excelente herramienta ya que lo hace de forma sencilla, tendríamos que probarlo para comprobar, y como dice Andrés Aquino seria bueno poder ver el codigo fuente.
Gracias,
Un coridal saludo.
ssantos dice
En cuanto pueda, quizás comente el código en una entrada en el blog. Pero insisto en que es infinitamente sencillo… no aporta demasiado.