Buenas prácticas de seguridad para macros en Excel

  • Las macros de Excel son muy potentes, pero también pueden ser una vía habitual de entrada de malware si no se gestionan con una configuración de seguridad adecuada.
  • La combinación de certificados digitales, documentos y ubicaciones de confianza, y políticas de macros reduce drásticamente el riesgo sin renunciar a la automatización.
  • Excel y Microsoft 365 ofrecen opciones avanzadas (bloqueo de macros de Internet, macros firmadas, control del modelo de objetos) que permiten aplicar el principio de mínimo privilegio.
  • La mejor protección surge de sumar configuración técnica, buenas prácticas de uso y una revisión crítica de cualquier archivo que provenga de fuentes externas o desconocidas.

como hacer macros en Excel

Las macros de Excel son uno de esos inventos que, bien usados, te ahorran horas de trabajo, pero mal gestionados pueden convertirse en un auténtico quebradero de cabeza de seguridad. Automatizan tareas repetitivas con código VBA o XLM, pero precisamente por ese poder son una vía clásica para colar virus, troyanos o ransomware a través de documentos aparentemente inofensivos.

Por eso, si trabajas en una empresa o manejas información sensible, no vale con cruzar los dedos y confiar en que nadie haga clic donde no debe. Excel y Microsoft 365 incorporan varias capas de protección: certificados digitales, configuración del Centro de confianza, bloqueo de macros procedentes de Internet, documentos y ubicaciones de confianza, y opciones avanzadas de acceso al modelo de objetos. Usadas con cabeza, permiten un equilibrio bastante razonable entre productividad y seguridad.

¿Qué es una macro y por qué supone un riesgo de seguridad?

Una macro en Excel es, básicamente, una secuencia de órdenes grabadas o programadas para ejecutar una tarea de forma automática. Normalmente se implementa en Visual Basic for Applications (VBA), aunque también existen las más antiguas macros de Excel 4.0 basadas en XLM.

El problema viene de que ese código tiene capacidad para hacer casi de todo en tu equipo: abrir y guardar archivos, borrar datos, modificar configuraciones, conectarse a Internet, descargar otros ejecutables, lanzar programas externos, etc. Es decir, las mismas capacidades que te permiten automatizar un proceso de negocio pueden ser utilizadas por un atacante para ejecutar código malicioso.

No tardaron los ciberdelincuentes en darse cuenta de que las macros eran sencillas de escribir y de incrustar en documentos de Word o Excel. A partir de ahí, comenzaron a circular campañas masivas de phishing con adjuntos Office que, al habilitar las macros, descargaban malware, robaban credenciales o abrían la puerta a infecciones de ransomware en redes completas.

Por este motivo, Microsoft empezó hace años a endurecer progresivamente la seguridad alrededor de las macros: primero dejando de ejecutarlas de forma automática, luego mostrando advertencias, y más recientemente bloqueando directamente las macros en documentos descargados de Internet en las versiones modernas de Microsoft 365.

Excel con Python
Artículo relacionado:
Excel con Python: integrar scripts y automatizar análisis

Certificados digitales y firma de macros en Office

Una de las líneas de defensa más importantes es la posibilidad de firmar digitalmente un proyecto de macros o un archivo. Office utiliza la tecnología Microsoft Authenticode, de forma que el certificado empleado para la firma identifica al autor y permite comprobar que el contenido no ha sido modificado desde que se firmó.

El funcionamiento conceptual es sencillo: el editor de la macro genera una firma digital con su certificado, se incrusta en el proyecto VBA y, cuando el usuario abre el archivo, Office verifica la validez del certificado y la integridad del código. Si todo cuadra y el certificado pertenece a un editor de confianza, la macro puede ejecutarse sin necesidad de decisiones manuales constantes.

Para usar esta protección, primero hay que obtener e instalar un certificado digital válido en el equipo donde se desarrollan las macros. A partir de ahí, el autor puede firmar sus proyectos y distribuirlos dentro de la organización con un nivel mucho mayor de control.

¿Cómo conseguir un certificado digital para firmar macros?

Tienes varias opciones para hacerte con un certificado adecuado para firmar código en Office, según el nivel de formalidad y el entorno en el que vayas a usar las macros. La vía más robusta es recurrir a una entidad de certificación (CA) comercial, que te expedirá un certificado reconocido por el ecosistema de Microsoft.

En entornos corporativos suele ser habitual que el propio departamento de TI o el administrador de seguridad interna actúe como autoridad emisora usando una infraestructura de clave pública (PKI) interna. En ese caso, el certificado se distribuye y confía a nivel de dominio, lo que simplifica la gestión para cientos o miles de usuarios.

Si quieres ver qué autoridades son aceptadas dentro del ecosistema Microsoft, puedes consultar la lista de miembros del Programa de certificados raíz de Microsoft. Esa lista marca qué CA están integradas en el almacén de confianza de Windows y, por tanto, se consideran de confianza por defecto en la mayoría de equipos.

Crear tu propio certificado con Selfcert.exe

Para escenarios más modestos —por ejemplo, pruebas locales, desarrollo personal o pequeños grupos de trabajo— Microsoft ofrece una herramienta llamada Selfcert.exe que permite generar certificados autofirmados.

Un certificado creado con Selfcert.exe no proporciona la misma garantía que uno emitido por una CA pública, porque no hay una tercera parte independiente que verifique tu identidad. Sin embargo, resulta muy práctico para escenarios controlados en los que tú mismo gestionas qué se considera confiable.

El flujo típico sería: generas tu certificado con Selfcert.exe, lo instalas en tu almacén personal, firmas tus proyectos de macros con ese certificado y, en los equipos de destino, importas y marcas ese certificado como editor de confianza. A partir de ahí, las macros firmadas con él podrán ejecutarse si la política de seguridad así lo permite.

Seguridad de macros en Excel: opciones del Centro de confianza

como hacer macros en Excel

La configuración fina de cómo se comportan las macros en Excel se controla desde el Centro de confianza. En muchos entornos empresariales, estas opciones están bloqueadas por directivas de grupo (GPO) y solo las puede modificar el administrador; en otros, el propio usuario puede ajustarlas según el nivel de riesgo que quiera asumir.

La ruta general es similar en las aplicaciones de Microsoft 365: Archivo > Opciones > Centro de confianza > Configuración del Centro de confianza y, dentro de esa ventana, el apartado de Configuración de macros. Desde ahí puedes elegir entre distintas políticas con implicaciones muy diferentes.

Deshabilitar todas las macros sin notificación

Esta opción es la más restrictiva: bloquea totalmente la ejecución de macros y ni siquiera muestra mensajes de advertencia. En Excel aparece como “Deshabilitar macros de VBA sin notificación” y se aplica solo a las macros VBA (no a otros tipos de contenido activo).

En este modo, cualquier archivo con macros se abrirá como si se tratara de un libro normal, pero el código no se ejecutará bajo ninguna circunstancia, salvo que el archivo se encuentre en una ubicación de confianza o se aplique alguna política específica que lo permita. Es una configuración muy usada en organizaciones extremadamente sensibles al riesgo o en estaciones bloqueadas.

Deshabilitar todas las macros con notificación

Esta es la configuración predeterminada en muchas instalaciones de Excel, porque ofrece un equilibrio entre seguridad y usabilidad. Las macros se deshabilitan al abrir el archivo, pero el usuario ve una barra de advertencia indicando que el documento contiene macros y ofreciendo la posibilidad de habilitarlas manualmente.

Es la opción más recomendable para la mayoría de usuarios individuales, ya que obliga a tomar una decisión consciente en cada archivo que incluye macros. Eso sí, deja cierto margen al error humano: si alguien habilita macros en un documento malicioso, el sistema no lo impedirá por sí mismo.

Deshabilitar todas las macros excepto las firmadas digitalmente

Esta política eleva bastante el nivel de seguridad. Las macros sin firmar se bloquean y generan una advertencia, mientras que las macros firmadas con un certificado de un editor marcado como confiable se ejecutan de forma automática.

En Excel la opción se muestra como “Deshabilitar macros de VBA excepto las firmadas digitalmente” y se aplica únicamente al código VBA. Es ideal para entornos donde toda la automatización oficial se distribuye firmada desde un equipo de desarrollo o desde el departamento de TI, y se desea impedir radicalmente la ejecución de código procedente de fuentes desconocidas.

Si llega un archivo con macros firmadas por alguien que aún no está en tu lista de editores de confianza, Excel te propondrá habilitar esa macro y, si quieres, confiar en ese editor para el futuro. De este modo vas construyendo, poco a poco, un perímetro de autores aprobados.

Habilitar todas las macros (no recomendado)

Esta opción hace exactamente lo que dice: permite que todas las macros VBA se ejecuten sin pedir confirmación. En Excel suele figurar como “Habilitar macros de VBA (no recomendado, se puede ejecutar código potencialmente peligroso)”.

Desde el punto de vista de seguridad es un auténtico coladero, ya que cualquier documento con macros, venga de donde venga, podrá ejecutar código al abrirse. Solo tiene sentido en laboratorios muy controlados, máquinas aisladas o escenarios de prueba específicos. Para un equipo de trabajo o personal, lo sensato es evitar esta opción.

Macros de Excel 4.0 (XLM) y su configuración

Antes de que VBA se convirtiera en el estándar, Excel ya permitía automatizar tareas mediante macros basadas en el lenguaje XLM (Excel 4.0). Estas macros siguen existiendo, pero están consideradas de alto riesgo, ya que han sido aprovechadas por muchas familias de malware recientes.

Por ello, Excel incluye una casilla independiente: “Habilitar macros de Excel 4.0 cuando las macros de VBA están habilitadas”. Si no la marcas, las macros XLM se deshabilitan sin notificación, aunque las macros VBA sigan la política que hayas configurado.

Solo deberías activar esta casilla si tienes una razón muy sólida y conoces bien el origen y el contenido de esas macros heredadas. En la mayoría de entornos modernos, lo recomendable es dejarlas desactivadas para cerrar una superficie de ataque muy utilizada por los ciberdelincuentes.

Confiar en el acceso al modelo de objetos de proyectos de VBA

Otra casilla relevante en el Centro de confianza es “Confiar en el acceso al modelo de objetos de proyectos de VBA”. Esta opción controla si un programa externo puede automatizar Office y manipular el entorno VBA, incluyendo la edición o generación de código de forma dinámica.

Por defecto viene desactivada, lo cual es una buena medida de seguridad: impide que software no autorizado genere o modifique macros por su cuenta y dificulta cierto tipo de código que se autorreplica entre documentos. Solo tiene sentido activarla en escenarios muy concretos de automatización avanzada en los que confíes plenamente en el cliente que realiza ese acceso.

En la práctica, para la gran mayoría de usuarios y empresas, lo más prudente es mantener esta casilla siempre sin marcar. Así se reduce la posibilidad de que otras aplicaciones abusen del modelo de objetos para introducir código oculto en tus proyectos.

Documentos y ubicaciones de confianza

Además de las políticas generales, Excel permite marcar determinados contenidos como confiables para evitar advertencias repetitivas cuando trabajas siempre con los mismos archivos. Aquí entran en juego los “documentos confiables” y las “ubicaciones de confianza”.

Un documento confiable es simplemente un archivo al que has dado explícitamente permiso para ejecutar su contenido activo. Por ejemplo, si abres un libro de Excel con macros y ves el aviso de seguridad, puedes seleccionar “Habilitar contenido” y, en el cuadro de diálogo que aparece, confirmar que confías en ese documento. A partir de entonces, las macros se ejecutarán sin nuevos avisos en ese archivo concreto.

Si en algún momento quieres revocar esa confianza, no hay una lista por archivo, sino que tendrás que borrar todos los documentos confiables desde el Centro de confianza. Es una medida algo drástica, pero eficaz si sospechas que has otorgado confianza de más.

Las ubicaciones de confianza, por su parte, permiten definir carpetas específicas del sistema donde cualquier archivo se considerará confiable. Es muy útil cuando descargas o recibes macros de Internet que has revisado y quieres usar de forma recurrente sin ver advertencias cada vez.

Un enfoque práctico es crear, por ejemplo, una carpeta llamada “ARCHIVOS DE CONFIANZA” y, desde las opciones de Excel, entrar en Programador > Seguridad de macros > Ubicaciones de confianza > Agregar nueva ubicación, seleccionar esa carpeta y marcarla como segura. A partir de ahí, cualquier libro con macros que coloques dentro de esa ruta se abrirá sin mostrar mensajes de protección.

Bloqueo de macros procedentes de Internet en Microsoft 365

Con el tiempo, las campañas de malware basadas en macros se han vuelto tan agresivas que Microsoft decidió dar un paso más. En las versiones actuales de Microsoft 365, las macros en documentos descargados de la web se bloquean automáticamente por defecto, especialmente en la versión 2206 de Office 365 y posteriores.

Esta medida afecta a aplicaciones como Access, Excel, PowerPoint, Visio y Word, siempre que el archivo tenga el marcado de “procedente de Internet” que añade Windows a los ficheros descargados. El objetivo es cortar de raíz un vector de ataque muy habitual en correos de phishing y enlaces maliciosos.

Por supuesto, sigue siendo posible habilitar manualmente esas macros si consideras que el documento es de confianza. Normalmente, una vez descargado, puedes moverlo a una ubicación de confianza o modificar sus propiedades para eliminar el marcado de origen. No obstante, conviene pensárselo dos veces antes de hacerlo, especialmente si no tienes claro el remitente o el contexto en el que has recibido el archivo.

Macros en entornos corporativos: bloqueo, firma y “sandbox” práctico

Muchas organizaciones han optado durante años por bloquear completamente las macros mediante políticas de grupo (GPO), dejando todos los ajustes en el modo más restrictivo. Esta estrategia elimina de golpe el riesgo, pero también limita mucho la automatización que podría mejorar procesos internos.

Cuando surgen necesidades concretas —“necesitamos esta hoja con botones que hagan ciertas tareas”, “queremos macros para informes periódicos”—, la solución no debería ser simplemente relajar la seguridad en todo el parque. Una aproximación más madura pasa por combinar varias herramientas de Office y de la propia organización:

como hacer macros en Excel
Artículo relacionado:
Cómo importar y exportar datos en diferentes formatos en Excel
  • Definir una política clara de que solo se ejecutarán macros firmadas con un certificado interno o de un proveedor aprobado.
  • Activar en el Centro de confianza la opción de deshabilitar todas las macros excepto las firmadas digitalmente, y distribuir el certificado del editor como “editor de confianza”.
  • Centralizar las plantillas y libros con macros en ubicaciones de confianza en servidores o en SharePoint, gestionadas por TI.
  • Restringir, mediante GPO, la posibilidad de cambiar estas configuraciones a nivel de usuario, aplicando el principio de mínimo privilegio.

Excel no ofrece un “sandbox” estricto al estilo de una máquina virtual, pero este modelo de macros firmadas + ubicaciones de confianza + bloqueo de código desconocido funciona en la práctica como un perímetro de ejecución controlado. Las macros hacen solo lo que su autor ha programado, y ese autor está identificado y aprobado por la organización.

Además, es importante no fiarlo todo a la “formación para no ejecutar malware”. La capacitación ayuda, pero la seguridad debe ser, en la medida de lo posible, un diseño estructural y no solo un recordatorio constante. Si el sistema está configurado para bloquear por defecto y solo permitir excepciones claramente definidas, los errores humanos tienen mucho menos margen.

Buenas prácticas adicionales para trabajar de forma segura con macros

Más allá de la configuración técnica, hay una serie de hábitos que conviene incorporar si trabajas con macros con frecuencia. La mayoría son sentido común, pero marcan la diferencia a la hora de reducir el riesgo:

  • No habilites macros en archivos de remitentes desconocidos o sospechosos, aunque parezcan documentos de trabajo habituales (facturas, informes, pedidos, etc.).
  • Desconfía especialmente de archivos comprimidos (ZIP, RAR) con documentos Office que piden habilitar macros para ver el contenido o desbloquear funcionalidades.
  • Revisa con detalle cualquier macro descargada de Internet antes de ejecutarla en entornos de producción; si puedes, analízala en un entorno aislado o máquina virtual.
  • Mantén siempre Office y Windows actualizados, ya que muchas medidas de protección se introducen en actualizaciones de versión.
  • Coordina con el equipo de TI o el proveedor de seguridad para integrar la política de macros con el antivirus o EDR corporativo, de forma que se analice el comportamiento de los procesos lanzados desde macros.

Si combinas estas pautas con una configuración estricta del Centro de confianza, la probabilidad de sufrir un incidente grave se reduce de manera notable, incluso en organizaciones donde el uso de macros es intenso.

Usar macros en Excel de forma segura no consiste en renunciar a ellas, sino en entender bien qué pueden hacer, quién las escribe y desde dónde se ejecutan; cuando se alinean certificados digitales, configuraciones del Centro de confianza, bloqueo de macros de Internet y buenas prácticas de uso, se logra un entorno donde la automatización aporta valor sin dejar la puerta abierta al malware ni depender ciegamente de que el usuario acierte siempre al pulsar el botón de habilitar contenido. Comparte esta información para que más usuarios sepan crear macros en Excel.