Únase a Keyfactor en la RSA Conference™ 2024 | del 6 al 9 de mayo | Más información

¿Qué es la firma de código? La hoja de ruta definitiva para la firma segura de código

La mayoría de los desarrolladores de software y firmware reconocen la importancia de la firma de código. Sin embargo, tienen dificultades para aplicarla de forma eficaz y segura. Esta guía explora las amenazas y los contratiempos más comunes en las operaciones de firma de código. A continuación, nos sumergimos en la orientación paso a paso sobre cómo abordar las necesidades de sus desarrolladores y equipo de seguridad - todo en un solo lugar.

ilustración de personas que trabajan en dispositivos conectados en red
  • Inicio
  • Centro educativo
  • ¿Qué es la firma de código? La hoja de ruta definitiva para la firma segura de código

¿Qué es la firma de código?

Vivimos en un mundo que funciona con código. Software impregna prácticamente todos los aspectos de nuestras vidas, desde las cosas que usamos cada día hasta la infraestructura crítica de nuestra sociedad. Es difícil imaginar un negocio hoy en día que no dependa de software de alguna manera. A medida que IoT sigue creciendo, software no hace sino incrustarse más en nuestro mundo físico.

Hubo un tiempo en que los usuarios podían confiar en los software que descargaban, pero eso dista mucho de ser cierto hoy en día. Como los piratas informáticos son cada vez más expertos en el arte de propagar programas maliciosos, incluso a los profesionales de TI les resulta difícil saber si el software o el producto que han adquirido son legítimos. Aquí es donde entra en juego la firma de código.

La firma de código es un método criptográfico utilizado por los desarrolladores para demostrar que un fragmento de software es auténtico. Al firmar digitalmente aplicaciones, software o firmware integrado con una clave privada, se demuestra a los usuarios finales que el código procede de una fuente fiable y legítima y que no ha sido manipulado desde su publicación.

"Cuando firmas un fragmento de código, declaras que software procede de tu organización y que lo respaldas". Ted Shorter | Director Técnico y Cofundador, Keyfactor

Cómo se utiliza la firma de código

IT corporativa

Los equipos de TI de las empresas deben asegurarse de que todos los scripts o utilidades internos que se apliquen en la empresa estén firmados para evitar su manipulación por parte de usuarios internos o amenazas externas.

IoT Fabricantes

En la emergente Internet de los objetos (IoT), la firma de código es la forma más eficaz de garantizar la integridad de los dispositivos desde su activación hasta las actualizaciones de firmware y software .

Desarrolladores de aplicaciones móviles

Las tiendas de aplicaciones más populares de Microsoft, Google y Apple exigen que las aplicaciones móviles estén firmadas antes de poder enviarlas y publicarlas para su compra.

Software Vendedores

A menudo se exige a los desarrolladores de software que firmen el código para apoyar la instalación. Los sistemas operativos como Windows y macOS avisarán a los usuarios si software o los controladores no están firmados.

Por qué es importante la seguridad de la firma de código

Firmar código sin proteger sus claves privadas puede exponerle a más riesgos que no hacerlo. Los atacantes intentan comprometer estas claves para firmar y distribuir código malicioso a sus clientes, enmascarado como software o firmware legítimos.

ilustración de edificios urbanos

Robo de llaves

Si las claves privadas vinculadas a sus certificados de firma de código se ven comprometidas, se acabó el juego. Las claves de firma de código robadas son el premio gordo de los hackers: se venden o se utilizan para crear malware firmado que parece publicado por tus desarrolladores.

Infracción de firma

Los hackers no necesitan tus claves para firmar malware. Si se vulneran los servidores de compilación o las estaciones de trabajo de los desarrolladores con acceso ilimitado a los sistemas de firma de código, un atacante puede simplemente enviar malware para que se firme y distribuya sin ser detectado.

Mal uso interno

Los desarrolladores se especializan en código, no en seguridad. Los desarrolladores pueden hacer mal uso de las claves y certificados de firma de código o extraviarlos fácilmente, lo que facilita a los posibles atacantes socavar la integridad de sus operaciones de firma de código.

El impacto del compromiso de código

Software editores, fabricantes de dispositivos y equipos de desarrollo internos han adoptado la firma de código como forma de proteger su propiedad intelectual, la marca de su empresa y a sus usuarios finales. Pero la confianza y la integridad de la firma de código dependen totalmente de la seguridad de sus claves.

Una sola brecha en esta "cadena de confianza" puede paralizar toda su empresa. Los esfuerzos para revocar y reemitir rápidamente los certificados, notificar a los clientes y enviar una actualización recién firmada son costosos. Esto supone una pérdida de ingresos y el coste de restablecer la confianza de sus usuarios, socios e inversores.

"Las organizaciones experimentaron una media de 4 incidentes relacionados con el uso indebido de claves y certificados de firma de código en los últimos dos años. El coste medio de estos incidentes fue de 15 millones de dólares." - Informe Ponemon 2019, El impacto de las identidades digitales inseguras.

Conozca sus riesgos

Los recientes ataques a la firma de código subrayan la importancia de gestionar el riesgo para la reputación. Tanto si consumes software como si lo vendes, todos los líderes empresariales deben invertir en la confianza asociada a su marca digital, y esperar lo mismo de sus proveedores.

ilustración de edificios con uno en alerta

Adobe Breach

Reportado: 2012

INCUMPLIMIENTO

Los hackers accedieron a un servidor de compilación con acceso al sistema de firma de código de Adobe. Una vez dentro, los hackers utilizaron el servidor para firmar malware con un certificado de firma de código válido. Adobe respondió revocando el certificado, lo que afectó a tres de sus aplicaciones y a millones de usuarios.

Incidente Bit9

Reportado: 2013

ROBO

Bit9 recibió informes de sus clientes de que se había descubierto malware en sus redes, malware que estaba firmado digitalmente por el propio certificado de firma de código de Bit9. Más tarde se descubrió que los hackers se infiltraron en una máquina virtual y robaron un certificado para firmar y distribuir el malware a al menos tres clientes de Bit9.

Fuga D-Link

Reportado: 2015

MAL USO

Los hackers no siempre tienen que robar un certificado de firma de código válido, sobre todo cuando los propios fabricantes lo publican sin saberlo. En 2015, los desarrolladores del fabricante de equipos de red D-Link publicaron accidentalmente cuatro claves de firma de código privadas en el firmware open-source . No se conocía ningún malware firmado con estas claves, pero D-Link recibió duras críticas por el incidente.

Suckfly APT

Reportado: 2016

ROBO

Un grupo de amenazas persistentes avanzadas (APT) con sede en China, conocido como Suckfly, robó certificados de firma de código de al menos nueve empresas diferentes de Corea del Sur. A continuación, el grupo utilizó estos certificados durante dos años para firmar hacktools y malware en una campaña dirigida contra empresas de la India.

D-Link (de nuevo)

Reportado: 2018

ROBO

Las empresas tecnológicas D-Link y Changing Information Technology, con sede en Taiwán, fueron blanco de otro grupo APT conocido como BlackTech. Al menos dos certificados de firma de código fueron robados y utilizados para firmar el malware de Windows conocido como PLEAD, que roba las contraseñas introducidas en los navegadores web de las máquinas infectadas.

ShadowHammer

Denunciado: 2019

INCUMPLIMIENTO

ASUS, un conocido fabricante de ordenadores portátiles y teléfonos móviles, distribuyó sin saberlo malware a miles de sus clientes durante al menos cinco meses. Este sofisticado ataque a la cadena de suministro de software se conoció como "Operación ShadowHammer". Los piratas informáticos comprometieron dos certificados de firma de código de ASUS y distribuyeron malware firmado a través de la utilidad ASUS Live Update, insertando puertas traseras en al menos un millón de dispositivos.

"Vimos que las actualizaciones bajaban del servidor ASUS Live Update. Eran actualizaciones troyanizadas, o maliciosas, y estaban firmadas por ASUS". - Los hackers secuestraron las actualizaciones de ASUS Software para instalar puertas traseras en miles de ordenadores

Obstáculos para el éxito

La buena noticia es que la mayoría de los proveedores independientes de software (ISV) y fabricantes de dispositivos reconocen la importancia de la firma de código. El mayor reto es cómo implantarla de forma que satisfaga eficazmente las necesidades tanto de los desarrolladores como de los equipos de seguridad informática.

Velocidad frente a seguridad

Los equipos de seguridad y PKI preferirían aislar y bloquear las claves privadas, pero los desarrolladores necesitan un acceso rápido para firmar el código y enviarlo a producción. El mayor problema es cómo implantar salvaguardas para evitar el uso indebido de claves y certificados sin obstaculizar la productividad de los desarrolladores.

Amenazas sofisticadas

Software Los ataques a la cadena de suministro son cada vez más frecuentes y sofisticados. Hackers, ciberdelincuentes e incluso ataques patrocinados por el Estado ponen en peligro la seguridad y la integridad de su software . Como el coste de los certificados de firma de código en el mercado clandestino sigue aumentando, algunos atacantes han adoptado un enfoque más directo.

Desarrollo ágil y DevOps

Las prácticas DevOps han arrasado en el mundo de las TI. Las construcciones incrementales rápidas y frecuentes de software son el nombre del juego. Cualquier cambio en el ciclo de vida del desarrollo (SDLC) de Software puede introducir más riesgos de los que pretende evitar. La seguridad debe adaptarse a los flujos de trabajo DevOps existentes y a los procesos de firma.

Equipos de desarrollo dispersos

Los equipos de desarrollo actuales colaboran en ubicaciones dispersas por todo el mundo. Cuando un equipo remoto necesita firmar código, la solución fácil es comprar un certificado de firma. Una vez adquiridos, los certificados suelen quedar al alcance de los hackers y fuera del alcance de su equipo de seguridad en estaciones de trabajo de desarrolladores o servidores de compilación dispares.

Hoja de ruta hacia la firma segura de código

Basta de teoría. Analicemos los cuatro pasos prácticos que su organización puede dar para superar estos retos y la solución adecuada para ayudarle a conseguirlo

01 | Salvaguardar las claves privadas

Las claves privadas que los desarrolladores utilizan para firmar código tienen un valor incalculable para los piratas informáticos. Una vez comprometidas, estas claves pueden utilizarse para firmar prácticamente cualquier código y distribuirlo a miles de usuarios. Este tipo de ataques es cada vez más frecuente, ya que los hackers tratan de eludir las herramientas de detección de malware.

ilustración de servidores protegidos mediante cifrado

Ninguna industria o empresa es inmune. Proveedores de confianza en seguridad y hardware como Bit9 (ahora Carbon Black) y D-Link han sido presa de atacantes persistentes. Estos atacantes lograron introducirse en su red para encontrar y comprometer claves de firma de código y utilizarlas contra sus propios clientes.

La carga de firmar el código suele recaer en desarrolladores especializados en escribir código, no en asegurar claves. Como resultado, las claves acaban en ubicaciones de red no seguras, como estaciones de trabajo de desarrolladores, servidores de compilación y quién sabe dónde más. Los equipos de seguridad de TI a menudo desconocen exactamente cuántos certificados de firma de código tienen o dónde están almacenados.

Obtenga un inventario completo de su paisaje

Los certificados digitales y las claves utilizadas para la firma de código son activos de gran valor, pero el 71% de las organizaciones no saben exactamente cuántos tienen. Empiece por hacer un inventario de cuántas claves de firma de código tiene, dónde están y cómo se almacenan.

Centralizar la gestión de claves y certificados

La firma de código local crea silos de seguridad y aumenta los costes. Una solución centralizada del lado del servidor puede simplificar la administración, mejorar la seguridad y eliminar la necesidad de tener un certificado de firma de código independiente para cada desarrollador o flujo de creación.

Almacenar claves privadas en un HSM certificado

Hardware (HSM) son la forma más eficaz de garantizar que sus claves privadas permanezcan bajo su control. Las claves pueden almacenarse o generarse dentro del HSM y utilizarse para firmar código en cualquier lugar sin tener que salir nunca de hardware.

Elija una solución flexible

Elija una solución fácil de implantar y escalar a medida que crece la demanda de firma de código. Los servicios de HSM en la nube ofrecen todas las ventajas de la seguridad de nivel hardware, pero sin el gasto inicial, la configuración manual y el mantenimiento continuo de los HSM dedicados de hardware .

02 | Operaciones de firma segura

Si un hacker penetra en su red de desarrolladores, no necesita robar sus claves. Si acceden a un servidor de compilación o a una estación de trabajo de desarrollador con acceso a la infraestructura de firma de código, los hackers pueden simplemente enviar malware para que se firme y distribuya sin ser detectado.

ilustración de personas utilizando ordenadores portátiles alrededor de un gran icono de escudo

Más conocidos como "ataques a la cadena de suministrosoftware ", estas amenazas son aún más difíciles de detectar porque a menudo implican a una persona con información privilegiada o a un atacante con acceso directo a la firma de código. Incluso empresas como Adobe y ASUS, que cuentan con sofisticados equipos de seguridad, fueron incapaces de detectar las brechas en su infraestructura de firma de código durante meses.

Los atacantes siempre encuentran el camino de menor resistencia. Almacenar claves privadas en un HSM reduce el riesgo de robo de claves, pero puede apostar a que los actores de amenazas decididos encontrarán otra forma. En el caso de Adobe, las claves privadas se almacenaban de forma segura en un HSM, pero los hackers accedieron a un servidor de compilación y se limitaron a solicitar firmas de código malicioso.

Es absolutamente fundamental garantizar que sólo los desarrolladores adecuados puedan firmar el código correcto, en el momento adecuado. Al permitir que sólo los usuarios autorizados firmen y aprueben el código, puede asegurarse de que incluso si un pirata informático entra en su red. Esto evita que los hackers accedan a su infraestructura crítica de firma de código.

Definir funciones y separar tareas

Establezca funciones separadas para las personas autorizadas a enviar código para su firma y para las autorizadas a aprobar solicitudes de firma. Dividir estas funciones ayudará a garantizar que sólo los usuarios de confianza puedan firmar código, manteniendo a los hackers fuera de las operaciones de firma.

Hacer cumplir las políticas y prácticas de firma de códigos

Asegúrese de que incluso a los desarrolladores autorizados sólo se les concede acceso para firmar código durante un periodo de tiempo, un número de firmas y otros parámetros definidos para evitar la firma ilegítima o el uso indebido interno. Busque soluciones que puedan ayudarle a aplicar estas políticas.

Prueba de segmentos y firma de liberación

Si el código se firma durante las fases de desarrollo y pruebas, los certificados deben ser distintos de los utilizados en la firma de producción. Asegúrese de que las claves de desarrollo no están vinculadas a la misma raíz de confianza que las claves utilizadas para firmar el código de producción.

Seguimiento de las actividades de firma

Los gestores de desarrollo o de versiones deben hacer un seguimiento de cada uso de claves privadas para firmar código. Esto le ayudará a asegurarse de que sólo los desarrolladores adecuados firman el código correcto con las claves adecuadas.

03 | Integrarse con DevOps

No es un insulto a los desarrolladores decir que la seguridad no es su principal prioridad. Para mantenerse a la cabeza de la curva digital, los equipos de desarrollo deben moverse rápido para escribir código y enviarlo a producción. Sin embargo, los equipos de seguridad presionan cada vez más a los desarrolladores para que cumplan unos requisitos que a menudo atascan el proceso de creación y publicación.

ilustración de un código en la pantalla de un ordenador

La responsabilidad de asegurar las claves de firma de código no debe recaer en los desarrolladores: simplemente necesitan acceso para enviar y firmar código rápidamente. Se trata de encontrar el equilibrio adecuado entre los requisitos de seguridad informática para bloquear las claves privadas y la necesidad de los desarrolladores de firmar cualquier código, desde cualquier lugar y sin interrupciones.

Formalice su proceso de firma de código

Documente, controle y siga rigurosamente los pasos necesarios para firmar el código como parte de su ciclo de vida de desarrollo (SDLC) en software . Defina qué comprobaciones y verificaciones (por ejemplo, control de calidad, pruebas de penetración, análisis de virus, análisis estático, etc.) deben realizarse antes de firmar.

Cubrir los equipos de desarrollo distribuidos

La capacidad de permitir la firma remota es fundamental con los equipos de desarrollo distribuidos de hoy en día. Elija una solución que permita a los desarrolladores firmar código desde cualquier lugar, sin que las claves salgan nunca de los confines seguros de la protección de hardware .

Minimizar los cambios en el SDLC

Adopte un enfoque colaborativo para garantizar que los equipos de seguridad y desarrollo alcanzan objetivos mutuos para proteger las claves sin interrumpir el SDLC. Es importante encontrar soluciones que se adapten a tus procesos, y no al revés.

Integración con herramientas y plataformas de firma

Integrar directamente los procesos de firma de código con las herramientas y flujos de trabajo existentes siempre que sea posible. La firma de código debe ser compatible con múltiples formatos de archivos de código, plataformas (por ejemplo, Microsoft Authenticode, Java, etc.) y autoridades de certificación (CA).

04 | Supervisar y auditar el cumplimiento

Implantar la seguridad es una cosa, pero mantener a los desarrolladores en conformidad con sus políticas y buenas prácticas de firma de código es otra. La seguridad de la firma de código es un proceso continuo, no una implantación de "todo listo". Los certificados caducan inevitablemente, las claves y los algoritmos se debilitan con el tiempo y las amenazas siguen evolucionando. Los equipos de seguridad deben ser capaces de identificar estos riesgos rápidamente y responder con eficacia.

Supervisar las operaciones de firma de código

Al supervisar las solicitudes de firma de código, las autorizaciones y las firmas en tiempo real, los equipos de seguridad pueden detectar con mayor eficacia las actividades anómalas y responder en cuestión de minutos, en lugar de meses.

ilustración de hombres que utilizan GUI

Registro y auditoría del uso de claves

Mantenga un registro de auditoría exhaustivo de quién utilizó claves de firma de código, cuándo y quién autorizó la acción. Revise periódicamente los registros en busca de actividades sospechosas y asegúrese de que no puedan ser manipulados.

Incluir certificados de firma de código en CLM

Todos los certificados digitales de su organización deben regirse por la gestión del ciclo de vida de los certificados (CLM), incluidos los certificados con Extended Validation y los certificados estándar de firma de código, con disposiciones sobre cómo se solicitan, emiten, renuevan o revocan.

Firma de código empresarial con Keyfactor

Keyfactor Code Assure es la única plataforma que le ofrece visibilidad, control y protección completos de las operaciones de firma de código, sin interrumpir los flujos de trabajo de creación y publicación existentes. Los certificados y claves de firma de código se almacenan de forma centralizada en un HSM a prueba de manipulaciones. Una vez dentro, las claves privadas nunca abandonan el HSM. Las sólidas API permiten a los desarrolladores acceder de forma rápida y controlada a la firma de código desde cualquier lugar, mientras que los equipos de seguridad conservan una pista de auditoría completa de las actividades de firma de código.

Firma de código para la empresa

Descubra cómo la plataforma Keyfactor puede modernizar su PKI, evitar interrupciones de certificados, acelerar