Los problemas de seguridad de Huawei en el Reino Unido demuestran la necesidad de una codificación segura
Publicado originalmente en La era de la información. Esta es una versión actualizada que corrige el posicionamiento en torno al soporte de seguridad actual 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 del Reino Unido identificó importantes problemas de seguridad dentro de los procesos de ingeniería de software de Huawei. Aunque gran parte de las noticias sobre este informe crítico se centran en los problemas no resueltos del año anterior, el problema más peligroso y que se pasa por alto es la clara falta de directrices y prácticas de codificación seguras empleadas por Huawei. Pero es un problema que puede solucionarse.
Las noticias, para el gigante chino de las telecomunicaciones Huawei, siguen empeorando. Mientras que Estados Unidos ha prohibido rotundamente que la empresa trabaje en el futuro para el gobierno, 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 corregibles. El Reino Unido creó en 2010 el Centro de Evaluación de la Ciberseguridad de Huawei (HCSEC) para evaluar y abordar los problemas de seguridad de los productos de Huawei, y elaborar un informe anual sobre ellos. Sin embargo, este año el informe ha sido especialmente condenatorio.
Gran parte de la atención sobre el informe HCSEC de 2019 en las noticias ha estado relacionada con el hecho de que casi no se ha abordado ningún fallo de seguridad del año anterior. Esto incluye el uso de una versión más antigua del sistema operativo en tiempo real VxWorks de Wind River que pronto llegará al final de su vida útil. Huawei ha prometido arreglar ese problema (y recibirá apoyo continuo de Wind River Systems), pero sigue siendo un componente básico 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 generalista consiste en lo que podría ser un proceso fundamentalmente roto, existente dentro del desarrollo y despliegue de nuevo software y hardware de la compañía. El informe señala "problemas técnicos significativos" en la forma en que Huawei maneja sus métodos de ingeniería interna.
Veamos algunos ejemplos de esos problemas técnicos señalados en el informe. Hay que decir que una de las mejores cosas que ha hecho Huawei ha sido crear unas directrices de codificación segura para ayudar a sus ingenieros y programadores a desplegar nuevo código. Esas directrices abarcan una amplia gama de buenas prácticas, como el uso de versiones seguras conocidas de funciones y procesos del sistema procedentes de bibliotecas de confianza y, desde luego, no de variantes con alguna vulnerabilidad conocida. En teoría, es algo estupendo, pero una evaluación en el mundo real de un sistema de producción de Huawei en el Reino Unido descubrió que esas directrices nunca se comunicaban a los programadores, eran ignoradas por ellos o simplemente no se aplicaban.
El informe examinó funciones específicas de manejo de memoria dentro de aplicaciones de cara al público, en este caso un conjunto de tableros de mensajes donde se invitaba a los usuarios, como función del programa, a añadir entradas. Dado que las áreas de entrada de los usuarios nunca deben ser tratadas como "de confianza", se esperaba que esas áreas contuvieran sólo código seguro, según las directrices internas de Huawei. En concreto, los encargados de las pruebas examinaron la invocación directa de las funciones de manejo de memoria memcpy(), strcpy() y sprintf() dentro de esos sistemas de producción, conocidas por provocar potencialmente graves problemas de seguridad como el desbordamiento del búfer desde 1988.
Sorprendentemente, hubo 5.000 invocaciones directas de 17 funciones seguras conocidas de memcpy(), pero también 600 usos de 12 variantes inseguras. La proporción es prácticamente la misma con las demás funciones. Hubo 1.400 invocaciones seguras de strcpy(), pero también 400 malas con vulnerabilidades conocidas. Y se encontraron 2.000 usos seguros de sprintf() frente a 200 inseguros. Aunque es bueno que la mayoría de los usos de esas funciones fueran seguros, eso sigue dejando un 20% del código total vulnerable a ataques conocidos. Se trata de una enorme superficie de ataque, y además sólo tiene en cuenta las invocaciones directas de las tres funciones de manejo de memoria, no los casos de su uso indirecto a través de punteros de función. Aunque los auditores sólo examinaron esas funciones específicas, es poco probable que las tres funciones de manejo de memoria elegidas sean las únicas con problemas.
Aunque es bueno que Huawei haya creado una guía de buenas prácticas para sus programadores, está claro que hay que hacer más. Es un paso para definir las expectativas de seguridad, pero sólo son efectivas si esas directrices se siguen activamente y son conocidas por la cohorte de desarrollo. Huawei podría dar pasos importantes en la mejora de su seguridad comprometiéndose a formar a sus programadores de forma eficaz, y no limitándose a dar las nociones básicas sobre cómo seguir sus directrices internas de Huawei. Deben dar un paso más para demostrar cómo codificar de forma más segura en general. Los programadores deben recibir una formación suficiente sobre los patrones de codificación buenos (seguros) y malos (inseguros) y tener la responsabilidad de practicar lo que su empresa predica, en todo momento.
Muchos de los problemas específicos de codificación señalados en el informe HCSEC se abordan y se aplican como parte de la Secure Code Warrior que capacita a los programadores y a los equipos de ciberseguridad para desplegar y mantener siempre un código seguro. Conceptos como no confiar nunca en la entrada del usuario, extraer siempre funciones de bibliotecas establecidas, sanear toda la entrada antes de pasarla a un servidor y muchas otras prácticas de codificación seguras se demuestran constantemente dentro de la plataforma. También se analizan vulnerabilidades muy específicas y se muestra, paso a paso, cómo evitarlas y mitigarlas.
Además de la formación especializada, las empresas como Huawei podrían hacer uso de las soluciones DevSecOps. Estas soluciones añaden formación en tiempo real directamente en el IDE, utilizando recetas de codificación seguras que se adaptan a las directrices de seguridad de la empresa, actuando como el ayudante del desarrollador en la "cocina" de la codificación mientras escribe su código. Este enfoque podría ayudar a los programadores de Huawei de todos los niveles de habilidad a escribir mejor el código y reconocer las posibles vulnerabilidades, al tiempo que permite a los expertos en seguridad de Huawei crear un "libro de cocina" de recetas que se adhieren a sus políticas y ayudan a ejecutar los comandos.
Una lección fundamental de los problemas de Huawei debería ser que la creación de directrices de codificación segura no tiene sentido si los programadores no las conocen, o simplemente no saben cómo seguir las buenas prácticas de codificación. En este caso, las directrices de buenas prácticas internas resultaron ser el propio zhilaohu de Huawei; lo que en Occidente se llamaría "un tigre de papel". Era un documento con mucho estilo, pero sin sustancia. Para dotarlo de un contenido real se necesitarían las herramientas prácticas adecuadas y un programa de formación real, que adoptara un enfoque práctico y creara conocimientos y habilidades continuas.
Un reciente informe del Centro de Evaluación de la Ciberseguridad de Huawei, del Reino Unido, ha detectado importantes problemas de seguridad en los procesos de ingeniería de software de Huawei. Pero es un problema que puede solucionarse.
Director General, Presidente y Cofundador
Secure Code Warrior está a disposición de su organización para ayudarle a proteger el código a lo largo de todo el ciclo de vida de desarrollo de software y crear una cultura en la que la ciberseguridad sea una prioridad. Tanto si es director de AppSec, desarrollador, CISO o cualquier persona implicada en la seguridad, podemos ayudar a su organización a reducir los riesgos asociados a un código inseguro.
Reservar una demostraciónDirector General, Presidente y Cofundador
Pieter Danhieux es un experto en seguridad mundialmente reconocido, con más de 12 años de experiencia como consultor de seguridad y 8 años como instructor principal de SANS enseñando técnicas ofensivas sobre cómo atacar y evaluar organizaciones, sistemas y personas en busca de debilidades de seguridad. En 2016, fue reconocido como una de las personas más cool de la tecnología en Australia (Business Insider), galardonado como Profesional de Seguridad Cibernética del Año (AISA - Asociación Australiana de Seguridad de la Información) y tiene certificaciones GSE, CISSP, GCIH, GCFA, GSEC, GPEN, GWAPT, GCIA.
Publicado originalmente en La era de la información. Esta es una versión actualizada que corrige el posicionamiento en torno al soporte de seguridad actual 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 del Reino Unido identificó importantes problemas de seguridad dentro de los procesos de ingeniería de software de Huawei. Aunque gran parte de las noticias sobre este informe crítico se centran en los problemas no resueltos del año anterior, el problema más peligroso y que se pasa por alto es la clara falta de directrices y prácticas de codificación seguras empleadas por Huawei. Pero es un problema que puede solucionarse.
Las noticias, para el gigante chino de las telecomunicaciones Huawei, siguen empeorando. Mientras que Estados Unidos ha prohibido rotundamente que la empresa trabaje en el futuro para el gobierno, 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 corregibles. El Reino Unido creó en 2010 el Centro de Evaluación de la Ciberseguridad de Huawei (HCSEC) para evaluar y abordar los problemas de seguridad de los productos de Huawei, y elaborar un informe anual sobre ellos. Sin embargo, este año el informe ha sido especialmente condenatorio.
Gran parte de la atención sobre el informe HCSEC de 2019 en las noticias ha estado relacionada con el hecho de que casi no se ha abordado ningún fallo de seguridad del año anterior. Esto incluye el uso de una versión más antigua del sistema operativo en tiempo real VxWorks de Wind River que pronto llegará al final de su vida útil. Huawei ha prometido arreglar ese problema (y recibirá apoyo continuo de Wind River Systems), pero sigue siendo un componente básico 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 generalista consiste en lo que podría ser un proceso fundamentalmente roto, existente dentro del desarrollo y despliegue de nuevo software y hardware de la compañía. El informe señala "problemas técnicos significativos" en la forma en que Huawei maneja sus métodos de ingeniería interna.
Veamos algunos ejemplos de esos problemas técnicos señalados en el informe. Hay que decir que una de las mejores cosas que ha hecho Huawei ha sido crear unas directrices de codificación segura para ayudar a sus ingenieros y programadores a desplegar nuevo código. Esas directrices abarcan una amplia gama de buenas prácticas, como el uso de versiones seguras conocidas de funciones y procesos del sistema procedentes de bibliotecas de confianza y, desde luego, no de variantes con alguna vulnerabilidad conocida. En teoría, es algo estupendo, pero una evaluación en el mundo real de un sistema de producción de Huawei en el Reino Unido descubrió que esas directrices nunca se comunicaban a los programadores, eran ignoradas por ellos o simplemente no se aplicaban.
El informe examinó funciones específicas de manejo de memoria dentro de aplicaciones de cara al público, en este caso un conjunto de tableros de mensajes donde se invitaba a los usuarios, como función del programa, a añadir entradas. Dado que las áreas de entrada de los usuarios nunca deben ser tratadas como "de confianza", se esperaba que esas áreas contuvieran sólo código seguro, según las directrices internas de Huawei. En concreto, los encargados de las pruebas examinaron la invocación directa de las funciones de manejo de memoria memcpy(), strcpy() y sprintf() dentro de esos sistemas de producción, conocidas por provocar potencialmente graves problemas de seguridad como el desbordamiento del búfer desde 1988.
Sorprendentemente, hubo 5.000 invocaciones directas de 17 funciones seguras conocidas de memcpy(), pero también 600 usos de 12 variantes inseguras. La proporción es prácticamente la misma con las demás funciones. Hubo 1.400 invocaciones seguras de strcpy(), pero también 400 malas con vulnerabilidades conocidas. Y se encontraron 2.000 usos seguros de sprintf() frente a 200 inseguros. Aunque es bueno que la mayoría de los usos de esas funciones fueran seguros, eso sigue dejando un 20% del código total vulnerable a ataques conocidos. Se trata de una enorme superficie de ataque, y además sólo tiene en cuenta las invocaciones directas de las tres funciones de manejo de memoria, no los casos de su uso indirecto a través de punteros de función. Aunque los auditores sólo examinaron esas funciones específicas, es poco probable que las tres funciones de manejo de memoria elegidas sean las únicas con problemas.
Aunque es bueno que Huawei haya creado una guía de buenas prácticas para sus programadores, está claro que hay que hacer más. Es un paso para definir las expectativas de seguridad, pero sólo son efectivas si esas directrices se siguen activamente y son conocidas por la cohorte de desarrollo. Huawei podría dar pasos importantes en la mejora de su seguridad comprometiéndose a formar a sus programadores de forma eficaz, y no limitándose a dar las nociones básicas sobre cómo seguir sus directrices internas de Huawei. Deben dar un paso más para demostrar cómo codificar de forma más segura en general. Los programadores deben recibir una formación suficiente sobre los patrones de codificación buenos (seguros) y malos (inseguros) y tener la responsabilidad de practicar lo que su empresa predica, en todo momento.
Muchos de los problemas específicos de codificación señalados en el informe HCSEC se abordan y se aplican como parte de la Secure Code Warrior que capacita a los programadores y a los equipos de ciberseguridad para desplegar y mantener siempre un código seguro. Conceptos como no confiar nunca en la entrada del usuario, extraer siempre funciones de bibliotecas establecidas, sanear toda la entrada antes de pasarla a un servidor y muchas otras prácticas de codificación seguras se demuestran constantemente dentro de la plataforma. También se analizan vulnerabilidades muy específicas y se muestra, paso a paso, cómo evitarlas y mitigarlas.
Además de la formación especializada, las empresas como Huawei podrían hacer uso de las soluciones DevSecOps. Estas soluciones añaden formación en tiempo real directamente en el IDE, utilizando recetas de codificación seguras que se adaptan a las directrices de seguridad de la empresa, actuando como el ayudante del desarrollador en la "cocina" de la codificación mientras escribe su código. Este enfoque podría ayudar a los programadores de Huawei de todos los niveles de habilidad a escribir mejor el código y reconocer las posibles vulnerabilidades, al tiempo que permite a los expertos en seguridad de Huawei crear un "libro de cocina" de recetas que se adhieren a sus políticas y ayudan a ejecutar los comandos.
Una lección fundamental de los problemas de Huawei debería ser que la creación de directrices de codificación segura no tiene sentido si los programadores no las conocen, o simplemente no saben cómo seguir las buenas prácticas de codificación. En este caso, las directrices de buenas prácticas internas resultaron ser el propio zhilaohu de Huawei; lo que en Occidente se llamaría "un tigre de papel". Era un documento con mucho estilo, pero sin sustancia. Para dotarlo de un contenido real se necesitarían las herramientas prácticas adecuadas y un programa de formación real, que adoptara un enfoque práctico y creara conocimientos y habilidades continuas.
Publicado originalmente en La era de la información. Esta es una versión actualizada que corrige el posicionamiento en torno al soporte de seguridad actual 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 del Reino Unido identificó importantes problemas de seguridad dentro de los procesos de ingeniería de software de Huawei. Aunque gran parte de las noticias sobre este informe crítico se centran en los problemas no resueltos del año anterior, el problema más peligroso y que se pasa por alto es la clara falta de directrices y prácticas de codificación seguras empleadas por Huawei. Pero es un problema que puede solucionarse.
Las noticias, para el gigante chino de las telecomunicaciones Huawei, siguen empeorando. Mientras que Estados Unidos ha prohibido rotundamente que la empresa trabaje en el futuro para el gobierno, 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 corregibles. El Reino Unido creó en 2010 el Centro de Evaluación de la Ciberseguridad de Huawei (HCSEC) para evaluar y abordar los problemas de seguridad de los productos de Huawei, y elaborar un informe anual sobre ellos. Sin embargo, este año el informe ha sido especialmente condenatorio.
Gran parte de la atención sobre el informe HCSEC de 2019 en las noticias ha estado relacionada con el hecho de que casi no se ha abordado ningún fallo de seguridad del año anterior. Esto incluye el uso de una versión más antigua del sistema operativo en tiempo real VxWorks de Wind River que pronto llegará al final de su vida útil. Huawei ha prometido arreglar ese problema (y recibirá apoyo continuo de Wind River Systems), pero sigue siendo un componente básico 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 generalista consiste en lo que podría ser un proceso fundamentalmente roto, existente dentro del desarrollo y despliegue de nuevo software y hardware de la compañía. El informe señala "problemas técnicos significativos" en la forma en que Huawei maneja sus métodos de ingeniería interna.
Veamos algunos ejemplos de esos problemas técnicos señalados en el informe. Hay que decir que una de las mejores cosas que ha hecho Huawei ha sido crear unas directrices de codificación segura para ayudar a sus ingenieros y programadores a desplegar nuevo código. Esas directrices abarcan una amplia gama de buenas prácticas, como el uso de versiones seguras conocidas de funciones y procesos del sistema procedentes de bibliotecas de confianza y, desde luego, no de variantes con alguna vulnerabilidad conocida. En teoría, es algo estupendo, pero una evaluación en el mundo real de un sistema de producción de Huawei en el Reino Unido descubrió que esas directrices nunca se comunicaban a los programadores, eran ignoradas por ellos o simplemente no se aplicaban.
El informe examinó funciones específicas de manejo de memoria dentro de aplicaciones de cara al público, en este caso un conjunto de tableros de mensajes donde se invitaba a los usuarios, como función del programa, a añadir entradas. Dado que las áreas de entrada de los usuarios nunca deben ser tratadas como "de confianza", se esperaba que esas áreas contuvieran sólo código seguro, según las directrices internas de Huawei. En concreto, los encargados de las pruebas examinaron la invocación directa de las funciones de manejo de memoria memcpy(), strcpy() y sprintf() dentro de esos sistemas de producción, conocidas por provocar potencialmente graves problemas de seguridad como el desbordamiento del búfer desde 1988.
Sorprendentemente, hubo 5.000 invocaciones directas de 17 funciones seguras conocidas de memcpy(), pero también 600 usos de 12 variantes inseguras. La proporción es prácticamente la misma con las demás funciones. Hubo 1.400 invocaciones seguras de strcpy(), pero también 400 malas con vulnerabilidades conocidas. Y se encontraron 2.000 usos seguros de sprintf() frente a 200 inseguros. Aunque es bueno que la mayoría de los usos de esas funciones fueran seguros, eso sigue dejando un 20% del código total vulnerable a ataques conocidos. Se trata de una enorme superficie de ataque, y además sólo tiene en cuenta las invocaciones directas de las tres funciones de manejo de memoria, no los casos de su uso indirecto a través de punteros de función. Aunque los auditores sólo examinaron esas funciones específicas, es poco probable que las tres funciones de manejo de memoria elegidas sean las únicas con problemas.
Aunque es bueno que Huawei haya creado una guía de buenas prácticas para sus programadores, está claro que hay que hacer más. Es un paso para definir las expectativas de seguridad, pero sólo son efectivas si esas directrices se siguen activamente y son conocidas por la cohorte de desarrollo. Huawei podría dar pasos importantes en la mejora de su seguridad comprometiéndose a formar a sus programadores de forma eficaz, y no limitándose a dar las nociones básicas sobre cómo seguir sus directrices internas de Huawei. Deben dar un paso más para demostrar cómo codificar de forma más segura en general. Los programadores deben recibir una formación suficiente sobre los patrones de codificación buenos (seguros) y malos (inseguros) y tener la responsabilidad de practicar lo que su empresa predica, en todo momento.
Muchos de los problemas específicos de codificación señalados en el informe HCSEC se abordan y se aplican como parte de la Secure Code Warrior que capacita a los programadores y a los equipos de ciberseguridad para desplegar y mantener siempre un código seguro. Conceptos como no confiar nunca en la entrada del usuario, extraer siempre funciones de bibliotecas establecidas, sanear toda la entrada antes de pasarla a un servidor y muchas otras prácticas de codificación seguras se demuestran constantemente dentro de la plataforma. También se analizan vulnerabilidades muy específicas y se muestra, paso a paso, cómo evitarlas y mitigarlas.
Además de la formación especializada, las empresas como Huawei podrían hacer uso de las soluciones DevSecOps. Estas soluciones añaden formación en tiempo real directamente en el IDE, utilizando recetas de codificación seguras que se adaptan a las directrices de seguridad de la empresa, actuando como el ayudante del desarrollador en la "cocina" de la codificación mientras escribe su código. Este enfoque podría ayudar a los programadores de Huawei de todos los niveles de habilidad a escribir mejor el código y reconocer las posibles vulnerabilidades, al tiempo que permite a los expertos en seguridad de Huawei crear un "libro de cocina" de recetas que se adhieren a sus políticas y ayudan a ejecutar los comandos.
Una lección fundamental de los problemas de Huawei debería ser que la creación de directrices de codificación segura no tiene sentido si los programadores no las conocen, o simplemente no saben cómo seguir las buenas prácticas de codificación. En este caso, las directrices de buenas prácticas internas resultaron ser el propio zhilaohu de Huawei; lo que en Occidente se llamaría "un tigre de papel". Era un documento con mucho estilo, pero sin sustancia. Para dotarlo de un contenido real se necesitarían las herramientas prácticas adecuadas y un programa de formación real, que adoptara un enfoque práctico y creara conocimientos y habilidades continuas.
Haga clic en el siguiente enlace y descargue el PDF de este recurso.
Secure Code Warrior está a disposición de su organización para ayudarle a proteger el código a lo largo de todo el ciclo de vida de desarrollo de software y crear una cultura en la que la ciberseguridad sea una prioridad. Tanto si es director de AppSec, desarrollador, CISO o cualquier persona implicada en la seguridad, podemos ayudar a su organización a reducir los riesgos asociados a un código inseguro.
Ver el informeReservar una demostraciónDirector General, Presidente y Cofundador
Pieter Danhieux es un experto en seguridad mundialmente reconocido, con más de 12 años de experiencia como consultor de seguridad y 8 años como instructor principal de SANS enseñando técnicas ofensivas sobre cómo atacar y evaluar organizaciones, sistemas y personas en busca de debilidades de seguridad. En 2016, fue reconocido como una de las personas más cool de la tecnología en Australia (Business Insider), galardonado como Profesional de Seguridad Cibernética del Año (AISA - Asociación Australiana de Seguridad de la Información) y tiene certificaciones GSE, CISSP, GCIH, GCFA, GSEC, GPEN, GWAPT, GCIA.
Publicado originalmente en La era de la información. Esta es una versión actualizada que corrige el posicionamiento en torno al soporte de seguridad actual 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 del Reino Unido identificó importantes problemas de seguridad dentro de los procesos de ingeniería de software de Huawei. Aunque gran parte de las noticias sobre este informe crítico se centran en los problemas no resueltos del año anterior, el problema más peligroso y que se pasa por alto es la clara falta de directrices y prácticas de codificación seguras empleadas por Huawei. Pero es un problema que puede solucionarse.
Las noticias, para el gigante chino de las telecomunicaciones Huawei, siguen empeorando. Mientras que Estados Unidos ha prohibido rotundamente que la empresa trabaje en el futuro para el gobierno, 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 corregibles. El Reino Unido creó en 2010 el Centro de Evaluación de la Ciberseguridad de Huawei (HCSEC) para evaluar y abordar los problemas de seguridad de los productos de Huawei, y elaborar un informe anual sobre ellos. Sin embargo, este año el informe ha sido especialmente condenatorio.
Gran parte de la atención sobre el informe HCSEC de 2019 en las noticias ha estado relacionada con el hecho de que casi no se ha abordado ningún fallo de seguridad del año anterior. Esto incluye el uso de una versión más antigua del sistema operativo en tiempo real VxWorks de Wind River que pronto llegará al final de su vida útil. Huawei ha prometido arreglar ese problema (y recibirá apoyo continuo de Wind River Systems), pero sigue siendo un componente básico 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 generalista consiste en lo que podría ser un proceso fundamentalmente roto, existente dentro del desarrollo y despliegue de nuevo software y hardware de la compañía. El informe señala "problemas técnicos significativos" en la forma en que Huawei maneja sus métodos de ingeniería interna.
Veamos algunos ejemplos de esos problemas técnicos señalados en el informe. Hay que decir que una de las mejores cosas que ha hecho Huawei ha sido crear unas directrices de codificación segura para ayudar a sus ingenieros y programadores a desplegar nuevo código. Esas directrices abarcan una amplia gama de buenas prácticas, como el uso de versiones seguras conocidas de funciones y procesos del sistema procedentes de bibliotecas de confianza y, desde luego, no de variantes con alguna vulnerabilidad conocida. En teoría, es algo estupendo, pero una evaluación en el mundo real de un sistema de producción de Huawei en el Reino Unido descubrió que esas directrices nunca se comunicaban a los programadores, eran ignoradas por ellos o simplemente no se aplicaban.
El informe examinó funciones específicas de manejo de memoria dentro de aplicaciones de cara al público, en este caso un conjunto de tableros de mensajes donde se invitaba a los usuarios, como función del programa, a añadir entradas. Dado que las áreas de entrada de los usuarios nunca deben ser tratadas como "de confianza", se esperaba que esas áreas contuvieran sólo código seguro, según las directrices internas de Huawei. En concreto, los encargados de las pruebas examinaron la invocación directa de las funciones de manejo de memoria memcpy(), strcpy() y sprintf() dentro de esos sistemas de producción, conocidas por provocar potencialmente graves problemas de seguridad como el desbordamiento del búfer desde 1988.
Sorprendentemente, hubo 5.000 invocaciones directas de 17 funciones seguras conocidas de memcpy(), pero también 600 usos de 12 variantes inseguras. La proporción es prácticamente la misma con las demás funciones. Hubo 1.400 invocaciones seguras de strcpy(), pero también 400 malas con vulnerabilidades conocidas. Y se encontraron 2.000 usos seguros de sprintf() frente a 200 inseguros. Aunque es bueno que la mayoría de los usos de esas funciones fueran seguros, eso sigue dejando un 20% del código total vulnerable a ataques conocidos. Se trata de una enorme superficie de ataque, y además sólo tiene en cuenta las invocaciones directas de las tres funciones de manejo de memoria, no los casos de su uso indirecto a través de punteros de función. Aunque los auditores sólo examinaron esas funciones específicas, es poco probable que las tres funciones de manejo de memoria elegidas sean las únicas con problemas.
Aunque es bueno que Huawei haya creado una guía de buenas prácticas para sus programadores, está claro que hay que hacer más. Es un paso para definir las expectativas de seguridad, pero sólo son efectivas si esas directrices se siguen activamente y son conocidas por la cohorte de desarrollo. Huawei podría dar pasos importantes en la mejora de su seguridad comprometiéndose a formar a sus programadores de forma eficaz, y no limitándose a dar las nociones básicas sobre cómo seguir sus directrices internas de Huawei. Deben dar un paso más para demostrar cómo codificar de forma más segura en general. Los programadores deben recibir una formación suficiente sobre los patrones de codificación buenos (seguros) y malos (inseguros) y tener la responsabilidad de practicar lo que su empresa predica, en todo momento.
Muchos de los problemas específicos de codificación señalados en el informe HCSEC se abordan y se aplican como parte de la Secure Code Warrior que capacita a los programadores y a los equipos de ciberseguridad para desplegar y mantener siempre un código seguro. Conceptos como no confiar nunca en la entrada del usuario, extraer siempre funciones de bibliotecas establecidas, sanear toda la entrada antes de pasarla a un servidor y muchas otras prácticas de codificación seguras se demuestran constantemente dentro de la plataforma. También se analizan vulnerabilidades muy específicas y se muestra, paso a paso, cómo evitarlas y mitigarlas.
Además de la formación especializada, las empresas como Huawei podrían hacer uso de las soluciones DevSecOps. Estas soluciones añaden formación en tiempo real directamente en el IDE, utilizando recetas de codificación seguras que se adaptan a las directrices de seguridad de la empresa, actuando como el ayudante del desarrollador en la "cocina" de la codificación mientras escribe su código. Este enfoque podría ayudar a los programadores de Huawei de todos los niveles de habilidad a escribir mejor el código y reconocer las posibles vulnerabilidades, al tiempo que permite a los expertos en seguridad de Huawei crear un "libro de cocina" de recetas que se adhieren a sus políticas y ayudan a ejecutar los comandos.
Una lección fundamental de los problemas de Huawei debería ser que la creación de directrices de codificación segura no tiene sentido si los programadores no las conocen, o simplemente no saben cómo seguir las buenas prácticas de codificación. En este caso, las directrices de buenas prácticas internas resultaron ser el propio zhilaohu de Huawei; lo que en Occidente se llamaría "un tigre de papel". Era un documento con mucho estilo, pero sin sustancia. Para dotarlo de un contenido real se necesitarían las herramientas prácticas adecuadas y un programa de formación real, que adoptara un enfoque práctico y creara conocimientos y habilidades continuas.
Índice
Director General, Presidente y Cofundador
Secure Code Warrior está a disposición de su organización para ayudarle a proteger el código a lo largo de todo el ciclo de vida de desarrollo de software y crear una cultura en la que la ciberseguridad sea una prioridad. Tanto si es director de AppSec, desarrollador, CISO o cualquier persona implicada en la seguridad, podemos ayudar a su organización a reducir los riesgos asociados a un código inseguro.
Reservar una demostraciónDescargarRecursos para empezar
Evaluación comparativa de las competencias en materia de seguridad: optimización del diseño seguro en la empresa
El movimiento Secure-by-Design es el futuro del desarrollo de software seguro. Conozca los elementos clave que las empresas deben tener en cuenta cuando piensan en una iniciativa Secure-by-Design.
DigitalOcean reduce su deuda de seguridad con Secure Code Warrior
El uso por parte de DigitalOcean de la formación Secure Code Warrior ha reducido significativamente la deuda de seguridad, permitiendo a los equipos centrarse más en la innovación y la productividad. La mejora de la seguridad ha reforzado la calidad de sus productos y su ventaja competitiva. De cara al futuro, SCW Trust Score les ayudará a seguir mejorando las prácticas de seguridad y a continuar impulsando la innovación.
Recursos para empezar
La puntuación de confianza revela el valor de las iniciativas de mejora de la seguridad mediante el diseño
Nuestra investigación ha demostrado que la formación en código seguro funciona. Trust Score, que utiliza un algoritmo basado en más de 20 millones de puntos de datos de aprendizaje procedentes del trabajo de más de 250 000 alumnos en más de 600 organizaciones, revela su eficacia a la hora de reducir las vulnerabilidades y cómo hacer que la iniciativa sea aún más eficaz.
Seguridad reactiva frente a seguridad preventiva: Prevenir es mejor que curar
La idea de introducir la seguridad preventiva en el código y los sistemas heredados al mismo tiempo que en las aplicaciones más recientes puede parecer desalentadora, pero un planteamiento basado en el diseño seguro, aplicado mediante la mejora de las competencias de los desarrolladores, puede aplicar las mejores prácticas de seguridad a esos sistemas. Es la mejor oportunidad que tienen muchas organizaciones de mejorar su seguridad.
Ventajas de la evaluación comparativa de las competencias de seguridad de los desarrolladores
La creciente atención que se presta al código seguro y a los principios del diseño seguro exige que los desarrolladores reciban formación en ciberseguridad desde el principio del proceso de desarrollo de software, con herramientas como Secure Code Warrior's Trust Score, que ayudan a medir y mejorar sus progresos.
Impulsando iniciativas de seguridad por diseño para empresas con éxito significativo
Nuestro último documento de investigación, Benchmarking Security Skills: Streamlining Secure-by-Design in the Enterprise, es el resultado de un análisis profundo de iniciativas reales de Secure-by-Design a nivel empresarial y de la derivación de enfoques de mejores prácticas basados en hallazgos basados en datos.