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







Muy buen aporte, muchas gracias. Es incrible el gran trabajo que estais haciendo felicitaciones XD
ResponderEliminarY se tiene posibilidad de ver el código fuente?
ResponderEliminarInteresante, 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.
ResponderEliminarLa 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
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.
ResponderEliminarGracias,
Un coridal saludo.
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.
ResponderEliminar