La firma de código es un mecanismo de seguridad que se utiliza para verificar la autenticidad e integridad del código digital. Consiste en añadir una firma digital al código, lo que permite a los usuarios determinar quién lo creó y si ha sido manipulado. La firma de código se utiliza habitualmente para firmar archivos ejecutables, bibliotecas y scripts, pero también puede utilizarse para firmar archivos de macros de Excel.
¿Qué es la firma de código?
La firma de código es una práctica de seguridad que implica la firma digital de software con un certificado para verificar su autenticidad e integridad. Los certificados de firma de código son emitidos por proveedores de confianza. autoridades de certificación (CA) y permitir a los usuarios finales verificar que el software que están descargando o ejecutando no ha sido alterado ni modificado desde que fue firmado por el editor del software.
Esto ayuda a prevenir la distribución e instalación de malware y otro software malicioso en los sistemas de los usuarios. Para establecer la confianza en una firma digital y garantizar que el código no haya sido manipulado, las herramientas de firma de código populares, como Microsoft Authenticode y Java Code Signing, suelen requerir un certificado digital confiable emitido por una autoridad certificadora externa.
Firmar archivos de Excel
Los archivos de macro de Excel se utilizan para automatizar tareas en Microsoft Excel. Pueden contener macros, que son pequeños programas que automatizan tareas repetitivas, como dar formato a datos o generar informes. Los archivos de macro se pueden crear con el lenguaje de programación VBA (Visual Basic para Aplicaciones) y se pueden guardar con la extensión .xlsm.
Amenazas que plantean las macros
Si bien las macros de Office siguen siendo la mejor opción para procesos críticos para la empresa, también representan una gran amenaza para la seguridad. Se ejecutan dentro de los documentos de Office con los mismos derechos que la persona que los abrió. Además, las macros aumentan aún más sus privilegios mediante el uso de exploits adicionales, lo que las convierte en una poderosa herramienta para que los hackers se infiltren en una organización.
Pero ¿qué hace que Macro sea tan terrible? A diferencia de otros programas, la gente suele usar los documentos de Office sin dudarlo. Con solo un clic, se activa la ejecución de la macro, lo cual es especialmente fácil de lograr mediante ingeniería social, insertando instrucciones en un correo electrónico o incluso en el propio documento.
Los administradores se encuentran en apuros cuando se trata de macros principalmente por estas razones:
- Es Es casi imposible proporcionar configuraciones de políticas que puede definir qué macros se pueden ejecutar.
- Marcos de políticas como El control de aplicaciones/listas blancas no funcionan para macros.
- Algunas macros maliciosas pueden Evitar los detectores de malware.
Ahora surge la pregunta: ¿qué podemos hacer para protegernos de las macroamenazas? La respuesta es sencilla., implementar la firma de macros para crear políticas de usuario final seguras.
Al firmar un archivo de macro de Excel, puede garantizar que los usuarios confíen en el código del archivo y que no haya sido manipulado. Firmar digitalmente las macros de su organización sienta las bases para las funciones de políticas de MS Office. Esto le permite...
- Utilice políticas de grupo para permitir la ejecución solo de macros firmadas con certificados de confianza y
- Asignar certificados de confianza a usuarios y grupos.
Con CodeSign Secure, podemos simplificar el proceso de firma y verificación. Nuestro proceso implica hash del lado del cliente para aumentar la velocidad del servidor y utilizar HSM para almacenar claves privadas, lo que garantiza una superficie de ataque baja y una firma rápida y segura de archivos.
Limitaciones de los enfoques actuales
Esta tabla destaca cómo las políticas de fácil acceso tienen una seguridad insuficiente o tienen un impacto negativo inaceptable en el negocio:
| Método | Nivel de seguridad | Implementación | Impacto en el negocio | observaciones |
|---|---|---|---|---|
| Permitir que los usuarios decidan si habilitar la ejecución de macros | Media | Alto | Alto | No siempre se puede confiar en que los usuarios tomen las mejores decisiones |
| Habilitar la ejecución de macros | Bajo | Alto | Alto | Nunca es apropiado habilitar esto. |
| Deshabilitar la ejecución de macros excepto las macros firmadas digitalmente | Altura media | Media | Alto | El proceso de firma digital en Office es laborioso y requiere que los escritores de macros tengan acceso a las claves privadas de sus PC de desarrollo. |
| Deshabilitar la ejecución de macros excepto para los usuarios que las requieran | Altura media | Bajo | Media | Cada uno de estos usuarios sigue siendo peligroso y su número aumenta con frecuencia. |
| Deshabilitar la ejecución de macros excepto para ciertas ubicaciones de almacenamiento | Altura media | Altura media | Altura media | Aunque como resultado se reducirán los ataques directos online y por correo electrónico, cualquiera puede dejar un documento dañino en un lugar confiable. |
| Deshabilitar la ejecución de macros para todos | Alto | Alto | Bajo | Muy seguro, pero a menudo poco realista. |
| Uso de CodeSign Secure- Deshabilitar la ejecución de macros excepto las macros firmadas digitalmente | Alto | Alto | Alto | Proporcionar un procedimiento más seguro que cumpla con las políticas de ejecución de macros para la firma de políticas de autorización y aprobación. |
Proceso de firma paso a paso
Estos son los pasos para firmar un archivo de macro de Excel. Primero, debemos instalar las herramientas necesarias.
Paso 1
Debemos instalar Windows SDK, que proporciona bibliotecas y herramientas para crear aplicaciones de Windows. Este kit de desarrollo instalará una herramienta llamada signtool, incluida en el SDK de Windows. Haga clic en "Descargar el instalador" y ejecútelo una vez descargado.
Puede elegir instalar solo las herramientas de firma del SDK de Windows para aplicaciones de escritorio.
Nota: Recuerde la ruta predeterminada que se muestra en la ruta de instalación, ya que será útil para ejecutar estos comandos desde el símbolo del sistema.

En la página de Privacidad de Windows Kits, cualquiera de las opciones para permitir que Microsoft recopile información es válida. Haga clic en Siguiente.

Aceptar el acuerdo de licencia

Deseleccione todas las funciones excepto Herramientas de firma del SDK de Windows para aplicaciones de escritorio Luego seleccione Instalar. No necesitamos todas las funciones para que el proceso de firma funcione.

Cuando se le pregunte si desea permitir que esta aplicación realice cambios, seleccione Sí.

Por último, seleccionamos cerrar y a continuación tenemos que agregar una ruta a las variables de entorno del sistema para poder ejecutar comandos desde el Símbolo del sistema de manera efectiva.

Haga clic en la barra de búsqueda de Windows en la barra de tareas y escriba “Editar las variables de entorno del sistema” y seleccione la opción del panel de control del mismo nombre.

Haga clic en Variables de entorno

Antes de editar la lista de variables, navegue hasta donde está instalado el SDK de Windows para usar el explorador de archivos, debe copiar la ruta de la carpeta que contiene la aplicación signtool, la ruta predeterminada es C:\Archivos de programa (x86)\Windows Kits\10\bin\10.0.22621.0\x64, Consulta la siguiente captura de pantalla. Asegúrate de hacer clic derecho y copiar la ruta como se muestra. También puedes ver la aplicación signtool al final de la lista de archivos; este es el comando que ejecutarás.

En la lista de Variables del Sistema, haga clic en Nuevo. Escriba Ruta como nombre de la variable y copie y pegue la ruta mencionada. Haga clic en OK en el entorno empresarial las variables ventana y te propiedades ventana.

Para probar la instalación, abra el símbolo del sistema y escriba herramienta de señalización, y la salida debería ser como se muestra a continuación.

La ubicación de instalación predeterminada de signtool es, por ejemplo: C:\Archivos de programa (x86)\Windows Kits\10\bin\10.0.22621.0\x64
Paso 2
Descargue e instale el Paquete de interfaz de sujeto para la firma digital de archivos de Microsoft Office
Este enlace lleva a la página de descarga de Microsoft para un Paquete de Interfaz. Esta descarga incluye dos bibliotecas de Paquetes de Interfaz de Sujeto (SIP) que permiten la firma digital y la verificación de firmas de proyectos de Visual Basic para Aplicaciones en la mayoría de los formatos de archivo de Office compatibles con macros de VBA. Estas bibliotecas son necesarias para que signtool reconozca archivos .xls y .xlsm. Después de descargar el instalador, siga los pasos a continuación.

Después de descargar el .exe, ábralo y elija una carpeta de instalación o cree una nueva carpeta como se muestra a continuación:

Indicará que los archivos se extrajeron correctamente y encontrará la carpeta de instalación llena de archivos. Estas son las bibliotecas esenciales para habilitar la firma de macros de Excel. Debemos ejecutar un par de comandos para instalar estos archivos .dll en el registro.
Abra un símbolo del sistema de administrador y escriba lo siguiente, la ruta será donde acaba de instalar los archivos:
regsvr32.exe
regsvr32.exe
Para obtener más información sobre cómo registrar controles OLE, visite El sitio web de Microsoft.
Si tiene éxito, verá un mensaje: “DIIRegister Server in tuvo éxito”.
Paso 3
A continuación, debemos descargar el instalador redistribuible de Microsoft Visual C++. Estas bibliotecas son necesarias para muchas aplicaciones creadas con herramientas de Microsoft C y C++. Dado que las herramientas que utilizamos requieren estas bibliotecas, es necesario instalarlas. Para más información, consulte Documentación de Microsoft.
Enlace de descarga del instalador redistribuible de Microsoft Visual C++:
Ejecute el instalador, acepte los términos y condiciones y haga clic en instalar.


Paso 4
Ahora podemos usar el símbolo del sistema para firmar nuestros archivos. Es posible firmar archivos de macros de Excel de Windows con el comando signtool. / kc será el nombre de tu certificado, /f será la ruta al archivo certificate.pem, /fd y el /td son los algoritmos deseados, /csp es el nombre del proveedor de almacenamiento de cifrado (en este caso, Encryption Consulting Key Storage Provider), / tr es la dirección del servidor de marca de tiempo, luego después de la /td SHA256 es la ruta entre comillas del archivo a firmar.
Con este caso de firma de macros, puedes utilizar .xls o .xlsm extensiones de archivo y ejecutar el comando de firma.
signtool sign /csp “Proveedor de almacenamiento de claves de consultoría de cifrado” /kc evcodesigning /f C:\Usuarios\Administrador\Escritorio\ParaPruebas\evcodesigning.pem /fd SHA256 /tr http://timestamp.digicert.com /td SHA256 “C:\Usuarios\Administrador\Escritorio\ParaPruebas\MacroTest.xlm”

Paso 5
Después de firmar el archivo, puede verificarlo y mostrar su información. Para verificar el archivo firmado, simplemente use el comando de verificación:
signtool.exe verificar /pa C:\Users\Administrator\Desktop\ForTesting\MacroTest.xlsm

Conclusión
Una vez firmado el archivo de macro de Excel, los usuarios que lo abran verán un mensaje de advertencia indicando que contiene macros, pero también verán la firma digital y podrán verificar su validez. Si la firma digital no es válida, se les advertirá que el archivo puede contener código malicioso y que su apertura podría ser peligrosa.
En resumen, incorporar la firma de código en la seguridad del software es crucial para protegerlo contra ataques de malware y manipulación. Code Sign Secure de Encryption Consulting ofrece diversas ventajas, como una integración perfecta con los flujos de trabajo de desarrollo, autenticación y cifrado robustos, y opciones de precios personalizables. Para obtener más información sobre cómo usar Code Sign Secure, visite: Solución de señalización de código o contáctenos en [email protected]
