martes, 17 de julio de 2012

Hispasec presenta Office Signature Checker

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 Office a 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