Los problemas de seguridad de Huawei en el Reino Unido demuestran la necesidad de una codificación segura.

Publicado originalmente en Information Age. Esta es una versión actualizada que corrige la información sobre el soporte de seguridad continuo de Wind River Systems para su producto de sistema operativo en tiempo real, VxWorks.
Un informe reciente del Centro de Evaluación de Ciberseguridad de Huawei en el Reino Unido identificó problemas de seguridad importantes en los procesos de ingeniería de software de la empresa. Aunque gran parte de las noticias sobre este informe crítico se centran en problemas no resueltos del año anterior, el problema más peligroso y pasado por alto es la clara falta de directrices y prácticas de codificación segura empleadas por Huawei. Pero es un problema que se puede solucionar.
Las noticias para el gigante chino de las telecomunicaciones Huawei siguen empeorando. Mientras que Estados Unidos ha prohibido directamente a la empresa trabajar en proyectos gubernamentales futuros, el Reino Unido ha aceptado mejor el hecho de que muchos de los fallos subyacentes en los dispositivos y el código de Huawei son reparables. El Reino Unido estableció el Centro de Evaluación de Ciberseguridad de Huawei (HCSEC) en 2010 para evaluar y abordar los problemas de seguridad en los productos de Huawei, y para producir un informe anual sobre ellos. Sin embargo, este año el informe fue especialmente condenatorio.
Gran parte de la atención mediática sobre el informe del HCSEC de 2019 se ha centrado en el hecho de que casi no se han abordado los fallos de seguridad del año anterior. Esto incluye el uso de una versión antigua del sistema operativo en tiempo real VxWorks de Wind River, que pronto llegará al final de su vida útil. Huawei ha prometido solucionar ese problema (y recibirá soporte continuo de Wind River Systems), pero sigue siendo un componente central en gran parte de la infraestructura de telecomunicaciones del Reino Unido.
Un factor crítico que parece haber sido pasado por alto por la mayor parte de la prensa convencional equivale a lo que podría ser un proceso fundamentalmente roto, existente dentro del desarrollo y despliegue de nuevo software y hardware por parte de la empresa. El informe señala "problemas técnicos significativos" en la forma en que Huawei maneja sus métodos de ingeniería internos.
Analicemos algunos ejemplos de esos problemas técnicos descritos en el informe. Hay que decir que una de las mejores cosas que ha hecho Huawei es crear directrices de codificación segura para ayudar a sus ingenieros y programadores a desplegar código nuevo. Esas directrices cubren una amplia gama de mejores prácticas, como el uso de versiones seguras conocidas de funciones y procesos del sistema de bibliotecas de confianza, y ciertamente no variantes con vulnerabilidades conocidas. Eso es excelente en teoría, pero una evaluación real de un sistema de producción de Huawei en el Reino Unido descubrió que esas directrices nunca se comunicaron a los programadores, fueron ignoradas por ellos o simplemente no se aplicaron.
El informe analizó funciones específicas de manejo de memoria dentro de aplicaciones orientadas al público, en este caso un conjunto de foros donde se invitaba a los usuarios, como función del programa, a añadir entradas. Dado que las áreas de entrada de usuario nunca deben tratarse como "de confianza", se esperaba que esas áreas contuvieran solo código seguro, según las directrices internas de Huawei. Específicamente, los evaluadores analizaron la invocación directa de las funciones de manejo de memoria memcpy(), strcpy() y sprintf() dentro de esos sistemas de producción, conocidas por resultar potencialmente en graves problemas de seguridad como el desbordamiento de búfer desde 1988.
Sorprendentemente, hubo 5000 invocaciones directas de 17 funciones memcpy() seguras conocidas, pero también 600 usos de 12 variantes inseguras. La proporción fue similar con las otras funciones. Hubo 1400 invocaciones seguras de strcpy() pero también 400 incorrectas con vulnerabilidades conocidas. Y se encontraron 2000 usos seguros de sprintf() en comparación con 200 inseguros. Aunque es bueno que la mayoría de los usos de esas funciones fueran seguros, eso deja alrededor del 20% del código total vulnerable a ataques conocidos. Esa es una enorme superficie de ataque, y solo tiene en cuenta las invocaciones directas de las tres funciones de manejo de memoria, no las instancias de su uso indirecto a través de punteros de función. Aunque los auditores solo analizaron esas funciones específicas, es poco probable que sean las únicas con problemas.
Aunque es positivo que Huawei haya creado una guía de mejores prácticas para sus programadores, está claro que se necesita hacer más. Es un paso definir las expectativas de seguridad, pero solo son efectivas si esas directrices se siguen activamente y son familiares para el equipo de desarrollo. Huawei podría avanzar significativamente en la mejora de su seguridad comprometiéndose a formar a sus programadores de manera efectiva, y no solo repasando los conceptos básicos sobre cómo seguir sus directrices internas. Deben dar el paso adicional de demostrar cómo codificar de forma más segura en general. Los programadores necesitan estar suficientemente formados en patrones de codificación buenos (seguros) y malos (inseguros) y tener la responsabilidad de practicar lo que su empresa predica, siempre.
Muchos de los problemas de codificación específicos descritos en el informe del HCSEC se abordan y aplican como parte de la plataforma Secure Code Warrior, que forma a programadores y equipos de ciberseguridad para desplegar y mantener siempre código seguro. Conceptos como nunca confiar en la entrada del usuario, extraer siempre funciones de bibliotecas establecidas, desinfectar toda la entrada antes de pasarla a un servidor y muchas otras prácticas de codificación segura se demuestran constantemente dentro de la plataforma. También analizamos vulnerabilidades muy específicas y mostramos, paso a paso, cómo evitarlas y mitigarlas.
Además de una formación especializada, empresas como Huawei podrían hacer uso de soluciones DevSecOps. Esto añade entrenamiento en tiempo real directamente en el IDE, utilizando recetas de codificación segura personalizadas según las directrices de seguridad de la empresa, actuando como el "sous-chef" del desarrollador en la "cocina" de codificación mientras escriben su código. Este enfoque podría ayudar a los programadores de Huawei de todos los niveles a escribir mejor código y reconocer posibles vulnerabilidades, al tiempo que permite a los expertos en seguridad de Huawei crear un "libro de cocina" de recetas que cumplan con sus políticas y ayuden a ejecutar comandos.
Una lección fundamental de los problemas de Huawei debería ser que crear directrices de codificación segura no tiene sentido si los programadores no las conocen o simplemente no saben cómo seguir buenas prácticas. En este caso, las directrices internas resultaron ser el propio zhilaohu de Huawei; lo que en Occidente llamaríamos "un tigre de papel". Era un documento con mucho estilo, pero sin sustancia. Para darle fuerza real se necesitarían las herramientas prácticas adecuadas y un programa de formación real, uno que adopte un enfoque práctico y desarrolle conocimientos y habilidades de forma continua.
Controle el desarrollo impulsado por IA antes de su lanzamiento
Mida el riesgo asistido por IA, aplique políticas de codificación segura en el momento de la confirmación y acelere la entrega segura en todo su ciclo de vida de desarrollo de software (SDLC).
Explorar más blogs
Acceda a contenido especializado sobre programación segura, gobernanza de IA y gestión de riesgos de software.

Una cultura de seguridad: cómo Sage creó su programa de defensores
Descubre cómo Sage reforzó su seguridad con un enfoque flexible y centrado en las relaciones, logrando formar a más de 200 expertos en seguridad y alcanzar una reducción de riesgos cuantificable.

Kamer van Koophandel: Seguridad a escala impulsada por los desarrolladores
La Cámara de Comercio (Kamer van Koophandel) comparte cómo integró la programación segura en el desarrollo diario mediante certificaciones basadas en roles, evaluaciones comparativas de puntuación de confianza y una cultura de responsabilidad compartida en seguridad.

Cómo un «Juego de Códigos» guía a IAG Group hacia un futuro de programación más seguro
IAG Group es la entidad detrás de muchas de las principales compañías de seguros en la región de Asia-Pacífico, que suscribe pólizas para millones de clientes por un valor aproximado de 11.400 millones de dólares australianos en primas anuales.

Mes de la Concienciación sobre Ciberseguridad 2026: Comprender la seguridad de la IA es fundamental para la defensa empresarial
Hemos llegado a un punto en el que la mayoría de las principales empresas de IA han pedido públicamente una ralentización global en el desarrollo de la IA para que las medidas de seguridad puedan ponerse al día, pero la verdad es que ya se han materializado graves problemas de seguridad. Esto deja a innumerables líderes de seguridad y equipos ejecutivos en una situación urgente, a medida que los costes monetarios y de riesgo de la implementación de la IA siguen acumulándose.

Habilitador 8: Branding de su programa
Un programa de codificación segura necesita algo más que un buen contenido para tener éxito. El Habilitador 8 muestra cómo el branding transforma la participación en una experiencia codiciada basada en el estatus.
.avif)
Cada empleado está ahora en la primera línea de la ciberseguridad de la IA
El panorama tecnológico empresarial está cambiando a una velocidad que pocos previeron hasta que fue demasiado tarde. Hemos cruzado oficialmente el umbral del código escrito por humanos y la asistencia básica de copilotos hacia la era del Ciclo de Vida de Desarrollo Agéntico (ADLC). Si bien los agentes de IA autónomos prometen una eficiencia sin precedentes en múltiples funciones, también traen consigo una clase completamente nueva de riesgos regulatorios y de seguridad.
Proteja el desarrollo basado en IA antes de su lanzamiento
Identifique riesgos de desarrollo, aplique políticas y prevenga vulnerabilidades en todo el ciclo de vida de su software.