Actualizaciones del marco

Completado

Muchos desarrolladores consideran que los marcos y las bibliotecas que usan para compilar su software se deciden básicamente por sus características o por preferencias personales. Pero el marco de trabajo que elija es una decisión importante, no solo desde el punto de vista del diseño y la funcionalidad, sino también desde el punto de vista de la seguridad. Elegir un marco de trabajo con características de seguridad modernas y mantenerlo actualizado es una de las mejores formas de asegurarse de que sus aplicaciones son seguras.

Importancia de la elección del marco de trabajo

El factor más importante con respecto a la seguridad al elegir un marco es lo compatible que es. Los mejores marcos incluyen disposiciones de seguridad y existen grandes comunidades que los mejoran y los prueban. Ningún software es 100 % libre de errores o totalmente seguro, pero cuando se identifica una vulnerabilidad, queremos estar seguros de que se solucionará o de que se proporcionará una solución rápidamente.

A menudo, "buen soporte" es sinónimo de "moderno". Los marcos de trabajo anteriores tendían a ser reemplazados o a terminar por desvanecerse. Aunque tenga una fantástica experiencia con muchas aplicaciones escritas en un marco anterior, es mejor que elija una biblioteca moderna que tenga las características que necesita. Los marcos modernos suelen basarse en las lecciones aprendidas en las iteraciones anteriores, por lo que su elección para las nuevas aplicaciones es una forma de minimizar la exposición a las amenazas. Si se detecta una vulnerabilidad en el marco antiguo en el que estén escritas las aplicaciones heredadas, eso supone una aplicación más de la que ocuparse.

Para más información sobre el diseño seguro y la reducción de la superficie de amenazas, consulte Marco de buena arquitectura de Microsoft Azure: seguridad.

Actualización continua del marco

Los marcos de desarrollo de software (como Java Spring y .NET Core) publican actualizaciones y nuevas versiones con regularidad. Estas actualizaciones incluyen nuevas características, eliminación de características antiguas y, a menudo, correcciones de seguridad o mejoras. Cuando permitimos que nuestros marcos se queden obsoletos, se crea una "deuda técnica". Cuanto más desactualizados estén, más difícil y arriesgado será actualizar nuestro código a la última versión. Además, mantener versiones antiguas del marco de trabajo le expone a más amenazas de seguridad que se han corregido en las versiones más recientes del mismo.

Por ejemplo, desde 2016-2017 se han encontrado más de 30 vulnerabilidades en el marco Apache Struts. El equipo de desarrollo solucionó rápidamente estas vulnerabilidades, pero algunas compañías no aplicaron las revisiones y pagaron el precio en forma de vulneración de datos. Asegúrese de mantenerse al día los marcos y bibliotecas.

¿Cómo puedo actualizar mi marco?

Algunos marcos, como Java o .NET, requieren una instalación y tienden a publicar versiones a un ritmo conocido. Es recomendable estar atentos a las nuevas versiones y, una vez publicadas, probarlas en una bifurcación del código. Por ejemplo, .NET Core mantiene una página de notas de la versión que se puede comprobar para buscar las últimas versiones disponibles.

Las bibliotecas más especializadas, como los marcos de JavaScript o los componentes de .NET, se pueden actualizar con un administrador de paquetes. NPM y Webpack son opciones populares para proyectos web y son compatibles con la mayoría de los IDE o herramientas de compilación. En .NET, se usa NuGet para administrar las dependencias de los componentes. Además de actualizar el marco principal, crear ramas del código, actualizar los componentes y realizar pruebas es una buena forma de validar una versión nueva de una dependencia.

Nota

La herramienta de línea de comandos dotnet tiene las opciones add package y remove package para agregar o quitar paquetes NuGet, pero no tiene un comando update package correspondiente. Pero se puede ejecutar dotnet add package <package-name> en el proyecto y actualizará automáticamente el paquete a la versión más reciente. Esta es una manera fácil de actualizar las dependencias sin tener que abrir el IDE.

Aprovechamiento de las ventajas de la seguridad integrada

Compruebe siempre qué características de seguridad ofrecen sus marcos. No use nunca su propio método de seguridad si hay una técnica o funcionalidad estándar integrada. Confíe en los algoritmos y flujos de trabajo ya probados porque numerosos expertos los someten a examen, los analizan y los refuerzan para garantizar que son confiables y seguros.

.NET Core Framework tiene innumerables características de seguridad. He aquí algunos puntos de partida básicos en la documentación:

Cada una de estas características se ha escrito por expertos en su campo y se han probado exhaustivamente para asegurarse de que funcionan según lo previsto y solo según lo previsto. Otros marcos ofrecen características similares. Consulte con el proveedor del marco para averiguar qué ofrece en cada categoría.

Advertencia

Escribir sus propios controles de seguridad, en lugar de usar las funcionalidades de seguridad que ofrece el marco, no solo es perder tiempo, también es menos seguro.

Microsoft Defender for Cloud

Al usar Azure para hospedar las aplicaciones web, Defender for Cloud le avisará si los marcos no están actualizados como parte de la pestaña de recomendaciones. No olvide mirar allí de vez en cuando para ver si hay advertencias relacionadas con las aplicaciones.

Captura de pantalla de la recomendación de Microsoft Defender for Cloud de una actualización del marco.

Resumen

Siempre que sea posible, elija un marco moderno para compilar sus aplicaciones, use siempre las características de seguridad integradas y asegúrese de estar al día. Estas reglas sencillas le ayudarán a garantizar que la aplicación se inicie sobre una base sólida.