
Los problemas de seguridad de Huawei en el Reino Unido demuestran la necesidad de una codificación segura
Publicado originalmente en Era de la información. Esta es una versión actualizada que corrige la posición en torno al 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 del Reino Unido identificó los principales problemas de seguridad en los procesos de ingeniería de software de Huawei. Si bien gran parte de las noticias sobre este importante informe se centran en cuestiones no abordadas del año anterior, el problema más peligroso y pasado por alto es la evidente falta de directrices y prácticas de codificación seguras empleadas por Huawei. Sin embargo, es un problema que se puede solucionar.
Las noticias, para el gigante chino de telecomunicaciones Huawei, siguen empeorando. Si bien los Estados Unidos han prohibido rotundamente que la empresa trabaje en el gobierno en el futuro, el Reino Unido ha aceptado más el hecho de que muchas de las fallas subyacentes en los dispositivos y el código de Huawei son solucionables. El Reino Unido creó el Centro de Evaluación de Ciberseguridad de Huawei (HCSEC) en 2010 para evaluar y abordar los problemas de seguridad de los productos de Huawei y para producir un informe anual acerca de ellos. Sin embargo, este año el informe fue especialmente condenatorio.
Gran parte de la atención prestada al informe HCSEC de 2019 en las noticias se ha relacionado 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 anterior del sistema operativo en tiempo real VxWorks de Wind River, que pronto dejará de funcionar. Huawei ha prometido solucionar ese problema (y recibirá el apoyo continuo de Wind River Systems), pero sigue siendo un componente fundamental de gran parte de la infraestructura de telecomunicaciones del Reino Unido.
Un factor crítico que parece haber sido pasado por alto por la mayoría de la prensa convencional equivale a lo que podría ser un proceso fundamentalmente interrumpido, que existe dentro del desarrollo e implementación de nuevo software y hardware por parte de la empresa. El informe señala «problemas técnicos importantes» relacionados con la forma en que Huawei gestiona sus métodos de ingeniería internos.
Veamos algunos ejemplos de los problemas técnicos descritos en el informe. Hay que decir que una de las mejores cosas que Huawei ha hecho ha sido crear directrices de codificación seguras para ayudar a sus ingenieros y programadores a implementar código nuevo. Estas directrices abarcan una amplia gama de prácticas recomendadas, como el uso de versiones seguras conocidas de las funciones y los procesos del sistema procedentes de bibliotecas confiables y, desde luego, no de variantes con vulnerabilidades conocidas. En teoría, eso es algo fantástico, pero una evaluación real de un sistema de producción de Huawei en el Reino Unido reveló que esas directrices o bien nunca se comunicaban a los programadores, o bien eran ignoradas por ellos o simplemente no se aplicaban.
El informe analizó las funciones específicas de gestión de la memoria en las aplicaciones públicas, en este caso un conjunto de tableros de mensajes en los que se invitaba a los usuarios, como función del programa, a añadir entradas. Dado que las áreas que ingresan los usuarios nunca deben considerarse «confiables», se esperaba que esas áreas solo contuvieran código seguro, de acuerdo con las directrices internas de Huawei. En concreto, los evaluadores analizaron la invocación directa de las funciones de gestión de memoria memcpy (), strcpy () y sprintf () en esos sistemas de producción, conocidas por provocar graves problemas de seguridad, como el desbordamiento del búfer desde 1988 .
Sorprendentemente, hubo 5000 invocaciones directas de 17 funciones seguras conocidas de memcpy (), pero también 600 usos de 12 variantes inseguras. Era aproximadamente la misma proporción que las demás funciones. Había 1.400 invocaciones seguras de strcpy (), pero también 400 incorrectas con vulnerabilidades conocidas. Además, se encontraron 2000 usos seguros de sprintf (), en comparación con 200 usos inseguros. Si bien 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 los ataques conocidos. Se trata de una zona de ataque muy peligrosa y, además, solo tiene en cuenta las invocaciones directas de las tres funciones de gestión de la memoria, y no los casos en los que se utilizan indirectamente mediante punteros de función. Si bien los auditores solo analizaron esas funciones específicas, es poco probable que las tres funciones de gestión de memoria elegidas sean las únicas que presenten problemas.
Si bien es bueno que Huawei haya creado una guía de mejores prácticas para sus programadores, está claro que queda mucho por hacer. Definir las expectativas de seguridad es tan solo un paso, pero solo son eficaces si esas directrices se siguen de forma activa y el grupo de desarrolladores las conoce. Huawei podría lograr avances significativos en la mejora de su seguridad si se comprometiera a capacitar a sus programadores de manera eficaz y no se limitara a echar un vistazo a los aspectos básicos sobre cómo seguir las directrices internas de Huawei. En general, deben dar un paso más y demostrar cómo programar de forma más segura. Los programadores deben estar suficientemente capacitados sobre los patrones de codificación buenos (seguros) y malos (inseguros) y asumir la responsabilidad de poner en práctica lo que su empresa predica en todo momento.
Muchos de los problemas de codificación específicos descritos en el informe HCSEC se abordan y aplican como parte del Secure Code Warrior plataforma, que capacita a los programadores y equipos de ciberseguridad para que siempre implementen y mantengan un código seguro. En la plataforma se demuestran constantemente conceptos como no confiar nunca en las entradas de los usuarios, extraer siempre funciones de bibliotecas establecidas, limpiar todas las entradas antes de pasarlas a un servidor y muchas otras prácticas de codificación segura. También analizamos las vulnerabilidades más específicas y mostramos, paso a paso, cómo evitarlas y mitigarlas.
Además de una formación especializada, empresas como Huawei podrían utilizar las soluciones DevSecOps. Incorpora 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, y actúa como el ayudante del desarrollador en la «cocina» de programación en la que escriben su código. Este enfoque podría ayudar a los programadores de Huawei de todos los niveles de habilidad a escribir mejor código y a reconocer las posibles vulnerabilidades, al tiempo que permitiría a los expertos en seguridad de Huawei crear un «recetario» con recetas que se ajusten a sus políticas y ayuden a ejecutar los comandos.
Una lección fundamental de los problemas de Huawei debería ser que crear pautas 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 internas sobre mejores prácticas resultaron ser las propias de Huawei, lo que Occidente llamaría»un tigre de papel'. Era un documento con mucho estilo, pero sin contenido. Para hacerlo más efectivo se necesitarían las herramientas prácticas adecuadas y un programa de capacitación real, que adoptara un enfoque práctico y desarrollara conocimientos y habilidades continuos.


Un informe reciente del Centro de Evaluación de Ciberseguridad de Huawei del Reino Unido identificó los principales problemas de seguridad en los procesos de ingeniería de software de Huawei. Sin embargo, es un problema que se puede solucionar.
首席执行官、主席和联合创始人

Secure Code Warrior 您的组织在软件开发全生命周期中保护代码安全,并营造将网络安全置于首位的企业文化。无论您是应用安全管理员、开发人员、首席信息安全官,还是任何与安全相关的工作人员,我们都能助力您的组织降低不安全代码带来的风险。
预约演示首席执行官、主席和联合创始人
Pieter Danhieux是全球公认的安全专家,拥有超过12年的安全顾问经验,并在SANS担任首席讲师8年,教授如何针对和评估组织、系统和个人的安全弱点的攻击性技术。2016年,他被评为澳大利亚最酷的科技人士之一(Business Insider),被授予年度网络安全专业人士(AISA - 澳大利亚信息安全协会),并持有GSE、CISSP、GCIH、GCFA、GSEC、GPEN、GWAPT、GCIA认证。


Publicado originalmente en Era de la información. Esta es una versión actualizada que corrige la posición en torno al 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 del Reino Unido identificó los principales problemas de seguridad en los procesos de ingeniería de software de Huawei. Si bien gran parte de las noticias sobre este importante informe se centran en cuestiones no abordadas del año anterior, el problema más peligroso y pasado por alto es la evidente falta de directrices y prácticas de codificación seguras empleadas por Huawei. Sin embargo, es un problema que se puede solucionar.
Las noticias, para el gigante chino de telecomunicaciones Huawei, siguen empeorando. Si bien los Estados Unidos han prohibido rotundamente que la empresa trabaje en el gobierno en el futuro, el Reino Unido ha aceptado más el hecho de que muchas de las fallas subyacentes en los dispositivos y el código de Huawei son solucionables. El Reino Unido creó el Centro de Evaluación de Ciberseguridad de Huawei (HCSEC) en 2010 para evaluar y abordar los problemas de seguridad de los productos de Huawei y para producir un informe anual acerca de ellos. Sin embargo, este año el informe fue especialmente condenatorio.
Gran parte de la atención prestada al informe HCSEC de 2019 en las noticias se ha relacionado 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 anterior del sistema operativo en tiempo real VxWorks de Wind River, que pronto dejará de funcionar. Huawei ha prometido solucionar ese problema (y recibirá el apoyo continuo de Wind River Systems), pero sigue siendo un componente fundamental de gran parte de la infraestructura de telecomunicaciones del Reino Unido.
Un factor crítico que parece haber sido pasado por alto por la mayoría de la prensa convencional equivale a lo que podría ser un proceso fundamentalmente interrumpido, que existe dentro del desarrollo e implementación de nuevo software y hardware por parte de la empresa. El informe señala «problemas técnicos importantes» relacionados con la forma en que Huawei gestiona sus métodos de ingeniería internos.
Veamos algunos ejemplos de los problemas técnicos descritos en el informe. Hay que decir que una de las mejores cosas que Huawei ha hecho ha sido crear directrices de codificación seguras para ayudar a sus ingenieros y programadores a implementar código nuevo. Estas directrices abarcan una amplia gama de prácticas recomendadas, como el uso de versiones seguras conocidas de las funciones y los procesos del sistema procedentes de bibliotecas confiables y, desde luego, no de variantes con vulnerabilidades conocidas. En teoría, eso es algo fantástico, pero una evaluación real de un sistema de producción de Huawei en el Reino Unido reveló que esas directrices o bien nunca se comunicaban a los programadores, o bien eran ignoradas por ellos o simplemente no se aplicaban.
El informe analizó las funciones específicas de gestión de la memoria en las aplicaciones públicas, en este caso un conjunto de tableros de mensajes en los que se invitaba a los usuarios, como función del programa, a añadir entradas. Dado que las áreas que ingresan los usuarios nunca deben considerarse «confiables», se esperaba que esas áreas solo contuvieran código seguro, de acuerdo con las directrices internas de Huawei. En concreto, los evaluadores analizaron la invocación directa de las funciones de gestión de memoria memcpy (), strcpy () y sprintf () en esos sistemas de producción, conocidas por provocar graves problemas de seguridad, como el desbordamiento del búfer desde 1988 .
Sorprendentemente, hubo 5000 invocaciones directas de 17 funciones seguras conocidas de memcpy (), pero también 600 usos de 12 variantes inseguras. Era aproximadamente la misma proporción que las demás funciones. Había 1.400 invocaciones seguras de strcpy (), pero también 400 incorrectas con vulnerabilidades conocidas. Además, se encontraron 2000 usos seguros de sprintf (), en comparación con 200 usos inseguros. Si bien 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 los ataques conocidos. Se trata de una zona de ataque muy peligrosa y, además, solo tiene en cuenta las invocaciones directas de las tres funciones de gestión de la memoria, y no los casos en los que se utilizan indirectamente mediante punteros de función. Si bien los auditores solo analizaron esas funciones específicas, es poco probable que las tres funciones de gestión de memoria elegidas sean las únicas que presenten problemas.
Si bien es bueno que Huawei haya creado una guía de mejores prácticas para sus programadores, está claro que queda mucho por hacer. Definir las expectativas de seguridad es tan solo un paso, pero solo son eficaces si esas directrices se siguen de forma activa y el grupo de desarrolladores las conoce. Huawei podría lograr avances significativos en la mejora de su seguridad si se comprometiera a capacitar a sus programadores de manera eficaz y no se limitara a echar un vistazo a los aspectos básicos sobre cómo seguir las directrices internas de Huawei. En general, deben dar un paso más y demostrar cómo programar de forma más segura. Los programadores deben estar suficientemente capacitados sobre los patrones de codificación buenos (seguros) y malos (inseguros) y asumir la responsabilidad de poner en práctica lo que su empresa predica en todo momento.
Muchos de los problemas de codificación específicos descritos en el informe HCSEC se abordan y aplican como parte del Secure Code Warrior plataforma, que capacita a los programadores y equipos de ciberseguridad para que siempre implementen y mantengan un código seguro. En la plataforma se demuestran constantemente conceptos como no confiar nunca en las entradas de los usuarios, extraer siempre funciones de bibliotecas establecidas, limpiar todas las entradas antes de pasarlas a un servidor y muchas otras prácticas de codificación segura. También analizamos las vulnerabilidades más específicas y mostramos, paso a paso, cómo evitarlas y mitigarlas.
Además de una formación especializada, empresas como Huawei podrían utilizar las soluciones DevSecOps. Incorpora 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, y actúa como el ayudante del desarrollador en la «cocina» de programación en la que escriben su código. Este enfoque podría ayudar a los programadores de Huawei de todos los niveles de habilidad a escribir mejor código y a reconocer las posibles vulnerabilidades, al tiempo que permitiría a los expertos en seguridad de Huawei crear un «recetario» con recetas que se ajusten a sus políticas y ayuden a ejecutar los comandos.
Una lección fundamental de los problemas de Huawei debería ser que crear pautas 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 internas sobre mejores prácticas resultaron ser las propias de Huawei, lo que Occidente llamaría»un tigre de papel'. Era un documento con mucho estilo, pero sin contenido. Para hacerlo más efectivo se necesitarían las herramientas prácticas adecuadas y un programa de capacitación real, que adoptara un enfoque práctico y desarrollara conocimientos y habilidades continuos.

Publicado originalmente en Era de la información. Esta es una versión actualizada que corrige la posición en torno al 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 del Reino Unido identificó los principales problemas de seguridad en los procesos de ingeniería de software de Huawei. Si bien gran parte de las noticias sobre este importante informe se centran en cuestiones no abordadas del año anterior, el problema más peligroso y pasado por alto es la evidente falta de directrices y prácticas de codificación seguras empleadas por Huawei. Sin embargo, es un problema que se puede solucionar.
Las noticias, para el gigante chino de telecomunicaciones Huawei, siguen empeorando. Si bien los Estados Unidos han prohibido rotundamente que la empresa trabaje en el gobierno en el futuro, el Reino Unido ha aceptado más el hecho de que muchas de las fallas subyacentes en los dispositivos y el código de Huawei son solucionables. El Reino Unido creó el Centro de Evaluación de Ciberseguridad de Huawei (HCSEC) en 2010 para evaluar y abordar los problemas de seguridad de los productos de Huawei y para producir un informe anual acerca de ellos. Sin embargo, este año el informe fue especialmente condenatorio.
Gran parte de la atención prestada al informe HCSEC de 2019 en las noticias se ha relacionado 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 anterior del sistema operativo en tiempo real VxWorks de Wind River, que pronto dejará de funcionar. Huawei ha prometido solucionar ese problema (y recibirá el apoyo continuo de Wind River Systems), pero sigue siendo un componente fundamental de gran parte de la infraestructura de telecomunicaciones del Reino Unido.
Un factor crítico que parece haber sido pasado por alto por la mayoría de la prensa convencional equivale a lo que podría ser un proceso fundamentalmente interrumpido, que existe dentro del desarrollo e implementación de nuevo software y hardware por parte de la empresa. El informe señala «problemas técnicos importantes» relacionados con la forma en que Huawei gestiona sus métodos de ingeniería internos.
Veamos algunos ejemplos de los problemas técnicos descritos en el informe. Hay que decir que una de las mejores cosas que Huawei ha hecho ha sido crear directrices de codificación seguras para ayudar a sus ingenieros y programadores a implementar código nuevo. Estas directrices abarcan una amplia gama de prácticas recomendadas, como el uso de versiones seguras conocidas de las funciones y los procesos del sistema procedentes de bibliotecas confiables y, desde luego, no de variantes con vulnerabilidades conocidas. En teoría, eso es algo fantástico, pero una evaluación real de un sistema de producción de Huawei en el Reino Unido reveló que esas directrices o bien nunca se comunicaban a los programadores, o bien eran ignoradas por ellos o simplemente no se aplicaban.
El informe analizó las funciones específicas de gestión de la memoria en las aplicaciones públicas, en este caso un conjunto de tableros de mensajes en los que se invitaba a los usuarios, como función del programa, a añadir entradas. Dado que las áreas que ingresan los usuarios nunca deben considerarse «confiables», se esperaba que esas áreas solo contuvieran código seguro, de acuerdo con las directrices internas de Huawei. En concreto, los evaluadores analizaron la invocación directa de las funciones de gestión de memoria memcpy (), strcpy () y sprintf () en esos sistemas de producción, conocidas por provocar graves problemas de seguridad, como el desbordamiento del búfer desde 1988 .
Sorprendentemente, hubo 5000 invocaciones directas de 17 funciones seguras conocidas de memcpy (), pero también 600 usos de 12 variantes inseguras. Era aproximadamente la misma proporción que las demás funciones. Había 1.400 invocaciones seguras de strcpy (), pero también 400 incorrectas con vulnerabilidades conocidas. Además, se encontraron 2000 usos seguros de sprintf (), en comparación con 200 usos inseguros. Si bien 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 los ataques conocidos. Se trata de una zona de ataque muy peligrosa y, además, solo tiene en cuenta las invocaciones directas de las tres funciones de gestión de la memoria, y no los casos en los que se utilizan indirectamente mediante punteros de función. Si bien los auditores solo analizaron esas funciones específicas, es poco probable que las tres funciones de gestión de memoria elegidas sean las únicas que presenten problemas.
Si bien es bueno que Huawei haya creado una guía de mejores prácticas para sus programadores, está claro que queda mucho por hacer. Definir las expectativas de seguridad es tan solo un paso, pero solo son eficaces si esas directrices se siguen de forma activa y el grupo de desarrolladores las conoce. Huawei podría lograr avances significativos en la mejora de su seguridad si se comprometiera a capacitar a sus programadores de manera eficaz y no se limitara a echar un vistazo a los aspectos básicos sobre cómo seguir las directrices internas de Huawei. En general, deben dar un paso más y demostrar cómo programar de forma más segura. Los programadores deben estar suficientemente capacitados sobre los patrones de codificación buenos (seguros) y malos (inseguros) y asumir la responsabilidad de poner en práctica lo que su empresa predica en todo momento.
Muchos de los problemas de codificación específicos descritos en el informe HCSEC se abordan y aplican como parte del Secure Code Warrior plataforma, que capacita a los programadores y equipos de ciberseguridad para que siempre implementen y mantengan un código seguro. En la plataforma se demuestran constantemente conceptos como no confiar nunca en las entradas de los usuarios, extraer siempre funciones de bibliotecas establecidas, limpiar todas las entradas antes de pasarlas a un servidor y muchas otras prácticas de codificación segura. También analizamos las vulnerabilidades más específicas y mostramos, paso a paso, cómo evitarlas y mitigarlas.
Además de una formación especializada, empresas como Huawei podrían utilizar las soluciones DevSecOps. Incorpora 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, y actúa como el ayudante del desarrollador en la «cocina» de programación en la que escriben su código. Este enfoque podría ayudar a los programadores de Huawei de todos los niveles de habilidad a escribir mejor código y a reconocer las posibles vulnerabilidades, al tiempo que permitiría a los expertos en seguridad de Huawei crear un «recetario» con recetas que se ajusten a sus políticas y ayuden a ejecutar los comandos.
Una lección fundamental de los problemas de Huawei debería ser que crear pautas 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 internas sobre mejores prácticas resultaron ser las propias de Huawei, lo que Occidente llamaría»un tigre de papel'. Era un documento con mucho estilo, pero sin contenido. Para hacerlo más efectivo se necesitarían las herramientas prácticas adecuadas y un programa de capacitación real, que adoptara un enfoque práctico y desarrollara conocimientos y habilidades continuos.

点击下方链接,下载此资源的PDF文件。
Secure Code Warrior 您的组织在软件开发全生命周期中保护代码安全,并营造将网络安全置于首位的企业文化。无论您是应用安全管理员、开发人员、首席信息安全官,还是任何与安全相关的工作人员,我们都能助力您的组织降低不安全代码带来的风险。
查看报告预约演示首席执行官、主席和联合创始人
Pieter Danhieux是全球公认的安全专家,拥有超过12年的安全顾问经验,并在SANS担任首席讲师8年,教授如何针对和评估组织、系统和个人的安全弱点的攻击性技术。2016年,他被评为澳大利亚最酷的科技人士之一(Business Insider),被授予年度网络安全专业人士(AISA - 澳大利亚信息安全协会),并持有GSE、CISSP、GCIH、GCFA、GSEC、GPEN、GWAPT、GCIA认证。
Publicado originalmente en Era de la información. Esta es una versión actualizada que corrige la posición en torno al 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 del Reino Unido identificó los principales problemas de seguridad en los procesos de ingeniería de software de Huawei. Si bien gran parte de las noticias sobre este importante informe se centran en cuestiones no abordadas del año anterior, el problema más peligroso y pasado por alto es la evidente falta de directrices y prácticas de codificación seguras empleadas por Huawei. Sin embargo, es un problema que se puede solucionar.
Las noticias, para el gigante chino de telecomunicaciones Huawei, siguen empeorando. Si bien los Estados Unidos han prohibido rotundamente que la empresa trabaje en el gobierno en el futuro, el Reino Unido ha aceptado más el hecho de que muchas de las fallas subyacentes en los dispositivos y el código de Huawei son solucionables. El Reino Unido creó el Centro de Evaluación de Ciberseguridad de Huawei (HCSEC) en 2010 para evaluar y abordar los problemas de seguridad de los productos de Huawei y para producir un informe anual acerca de ellos. Sin embargo, este año el informe fue especialmente condenatorio.
Gran parte de la atención prestada al informe HCSEC de 2019 en las noticias se ha relacionado 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 anterior del sistema operativo en tiempo real VxWorks de Wind River, que pronto dejará de funcionar. Huawei ha prometido solucionar ese problema (y recibirá el apoyo continuo de Wind River Systems), pero sigue siendo un componente fundamental de gran parte de la infraestructura de telecomunicaciones del Reino Unido.
Un factor crítico que parece haber sido pasado por alto por la mayoría de la prensa convencional equivale a lo que podría ser un proceso fundamentalmente interrumpido, que existe dentro del desarrollo e implementación de nuevo software y hardware por parte de la empresa. El informe señala «problemas técnicos importantes» relacionados con la forma en que Huawei gestiona sus métodos de ingeniería internos.
Veamos algunos ejemplos de los problemas técnicos descritos en el informe. Hay que decir que una de las mejores cosas que Huawei ha hecho ha sido crear directrices de codificación seguras para ayudar a sus ingenieros y programadores a implementar código nuevo. Estas directrices abarcan una amplia gama de prácticas recomendadas, como el uso de versiones seguras conocidas de las funciones y los procesos del sistema procedentes de bibliotecas confiables y, desde luego, no de variantes con vulnerabilidades conocidas. En teoría, eso es algo fantástico, pero una evaluación real de un sistema de producción de Huawei en el Reino Unido reveló que esas directrices o bien nunca se comunicaban a los programadores, o bien eran ignoradas por ellos o simplemente no se aplicaban.
El informe analizó las funciones específicas de gestión de la memoria en las aplicaciones públicas, en este caso un conjunto de tableros de mensajes en los que se invitaba a los usuarios, como función del programa, a añadir entradas. Dado que las áreas que ingresan los usuarios nunca deben considerarse «confiables», se esperaba que esas áreas solo contuvieran código seguro, de acuerdo con las directrices internas de Huawei. En concreto, los evaluadores analizaron la invocación directa de las funciones de gestión de memoria memcpy (), strcpy () y sprintf () en esos sistemas de producción, conocidas por provocar graves problemas de seguridad, como el desbordamiento del búfer desde 1988 .
Sorprendentemente, hubo 5000 invocaciones directas de 17 funciones seguras conocidas de memcpy (), pero también 600 usos de 12 variantes inseguras. Era aproximadamente la misma proporción que las demás funciones. Había 1.400 invocaciones seguras de strcpy (), pero también 400 incorrectas con vulnerabilidades conocidas. Además, se encontraron 2000 usos seguros de sprintf (), en comparación con 200 usos inseguros. Si bien 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 los ataques conocidos. Se trata de una zona de ataque muy peligrosa y, además, solo tiene en cuenta las invocaciones directas de las tres funciones de gestión de la memoria, y no los casos en los que se utilizan indirectamente mediante punteros de función. Si bien los auditores solo analizaron esas funciones específicas, es poco probable que las tres funciones de gestión de memoria elegidas sean las únicas que presenten problemas.
Si bien es bueno que Huawei haya creado una guía de mejores prácticas para sus programadores, está claro que queda mucho por hacer. Definir las expectativas de seguridad es tan solo un paso, pero solo son eficaces si esas directrices se siguen de forma activa y el grupo de desarrolladores las conoce. Huawei podría lograr avances significativos en la mejora de su seguridad si se comprometiera a capacitar a sus programadores de manera eficaz y no se limitara a echar un vistazo a los aspectos básicos sobre cómo seguir las directrices internas de Huawei. En general, deben dar un paso más y demostrar cómo programar de forma más segura. Los programadores deben estar suficientemente capacitados sobre los patrones de codificación buenos (seguros) y malos (inseguros) y asumir la responsabilidad de poner en práctica lo que su empresa predica en todo momento.
Muchos de los problemas de codificación específicos descritos en el informe HCSEC se abordan y aplican como parte del Secure Code Warrior plataforma, que capacita a los programadores y equipos de ciberseguridad para que siempre implementen y mantengan un código seguro. En la plataforma se demuestran constantemente conceptos como no confiar nunca en las entradas de los usuarios, extraer siempre funciones de bibliotecas establecidas, limpiar todas las entradas antes de pasarlas a un servidor y muchas otras prácticas de codificación segura. También analizamos las vulnerabilidades más específicas y mostramos, paso a paso, cómo evitarlas y mitigarlas.
Además de una formación especializada, empresas como Huawei podrían utilizar las soluciones DevSecOps. Incorpora 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, y actúa como el ayudante del desarrollador en la «cocina» de programación en la que escriben su código. Este enfoque podría ayudar a los programadores de Huawei de todos los niveles de habilidad a escribir mejor código y a reconocer las posibles vulnerabilidades, al tiempo que permitiría a los expertos en seguridad de Huawei crear un «recetario» con recetas que se ajusten a sus políticas y ayuden a ejecutar los comandos.
Una lección fundamental de los problemas de Huawei debería ser que crear pautas 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 internas sobre mejores prácticas resultaron ser las propias de Huawei, lo que Occidente llamaría»un tigre de papel'. Era un documento con mucho estilo, pero sin contenido. Para hacerlo más efectivo se necesitarían las herramientas prácticas adecuadas y un programa de capacitación real, que adoptara un enfoque práctico y desarrollara conocimientos y habilidades continuos.




%20(1).avif)
.avif)
