
Principales Malas Prácticas de Seguridad en el Desarrollo de Software y Productos para Infraestructuras Críticas
En octubre del 2024, la Agencia de Seguridad de Infraestructura y Ciberseguridad (CISA) y el Buró Federal de Investigaciones (FBI) publicaron un documento sobre prácticas inseguras en productos de seguridad, que representan una amenaza para la seguridad, la economía e incluso la salud pública de Estados Unidos. En este artículo, presentaremos, las que según CISA y el FBI son las principales prácticas de seguridad comunes que elevan el riesgo a niveles altos y críticos. 1. Propiedades del Producto Uso de lenguajes de programación en memoria insegura (CWE-119 y debilidades relacionadas): el uso de lenguajes de programación que son inseguros en memoria como C, C++ y Perl son desaconsejados. Se recomienda a los desarrolladores migrar a lenguajes seguros en memoria o establecer una hoja de ruta para mitigar vulnerabilidades antes del 1 de enero de 2026. Se trata de propuestas coincidentes con la que personajes influyentes de la industria han venido expresando: Cuando se menciona que un lenguaje es «inseguro en memoria», se hace referencia a que estos lenguajes permiten un control muy granular sobre la memoria (en el caso de C y C++) o permiten errores sutiles en su manejo (en el caso de Perl), lo que puede resultar en vulnerabilidades de seguridad si no se gestionan adecuadamente. Esto no significa que los lenguajes sean inherentemente inseguros, sino que requieren más atención y precaución en el manejo de memoria para evitar fallos y por eso se desaconseja su uso. Inyección Directa de Datos del Usuario en Consultas SQL (CWE-89): Esta vulnerabilidad de seguridad es muy conocida ya que afecta a aplicaciones web y sistemas que interactúan con bases de datos. Ocurre cuando una aplicación permite que un usuario malintencionado manipule directamente las consultas SQL que la aplicación ejecuta, generalmente mediante la entrada de datos (por ejemplo, formularios web, URL o parámetros). CISA y el FBI recomiendan el uso de consultas parametrizadas para prevenir esta vulnerabilidad. Inyección de Comandos en el Sistema Operativo (CWE-78): es una vulnerabilidad de seguridad que ocurre cuando un atacante puede insertar comandos del sistema operativo en una aplicación que los ejecuta sin la debida validación o control. La inclusión de datos proporcionados por el usuario en cadenas de comandos del sistema operativo es una práctica insegura, ya que puede permitir la ejecución no autorizada de comandos maliciosos. Se sugiere delinear claramente los datos del usuario de los comandos del sistema operativo. Contraseñas Predeterminadas (CWE-1392 y CWE-1393): Los productos que utilizan contraseñas predeterminadas compartidas son extremadamente vulnerables. Los fabricantes deben cambiar las contraseñas predeterminadas antes de entregar un producto y brindar instrucciones clave sobre cómo cambiar las contraseñas para los usuarios finales. Como alternativa, se debe utilizar contraseñas únicas para cada instancia del producto o implementar autenticación multifactor (MFA). Vulnerabilidades Conocidas sin Corregir: Lanzar productos con componentes vulnerables conocidos es un asunto muy peligroso. CISA y el FBI sugieren que los fabricantes deben emitir parches de seguridad sin costo y notificar a los usuarios sobre las amenazas en menos de 30 días. 2. Funcionalidades de Seguridad Falta de Autenticación Multifactor (MFA): Los productos utilizados en infraestructuras críticas que no admiten MFA elevan considerablemente el riesgo. Se establece que a partir de enero de 2026, los productos que autentican usuarios deben habilitar MFA por defecto para las cuentas administrativas. Falta de Capacidad para Recopilar Evidencia de Intrusiones: Es crucial que los productos permitan a los clientes recopilar evidencia de intrusiones, como cambios de configuración y flujos de red. Esto debe incluirse en el producto base, con registros en un formato estándar. 3. Procesos y Políticas Organizacionales Falta de Publicación de CVEs y CWEs a Tiempo: No publicar CVEs para vulnerabilidades críticas de manera oportuna es peligroso. Las empresas deben emitir CVEs completos, incluyendo campos CWE, para vulnerabilidades de alto impacto. Ausencia de Política de Divulgación de Vulnerabilidades (VDP): No contar con una política de divulgación de vulnerabilidades para productos críticos aumenta el riesgo. Las organizaciones deben establecer políticas de divulgación que incluyan la realización de pruebas por parte del público sobre los productos ofrecidos por el fabricante, vías de reporte claras y un compromiso divulgación pública de vulnerabilidades de acuerdo con las mejores prácticas de divulgación coordinada de vulnerabilidades (CVD) y los estándares internacionales. Conclusión El cumplimiento de las recomendaciones de CISA y el FBI antes del 1 de diciembre de 2026 marca un punto de inflexión en la seguridad de productos destinados a infraestructuras críticas. Este plazo enfatiza la urgencia de implementar prácticas seguras desde el diseño y desarrollo de software, especialmente en áreas clave como el manejo de memoria, la autenticación multifactor y la prevención de vulnerabilidades conocidas. Adoptar estas directrices no solo es un compromiso con la seguridad de los clientes y la calidad del producto, sino también con la estabilidad y la protección de las infraestructuras críticas, dado el impacto potencial que los fallos pueden tener en la economía, la salud pública y la seguridad de cualquier nación. Implementar seguridad desde el diseño («Secure by Design») y eliminar vulnerabilidades conocidas en cada etapa del ciclo de vida del desarrollo ayudará a mitigar riesgos y proteger los intereses tanto de los usuarios finales como de las organizaciones responsables de estas infraestructuras. Principales Malas Prácticas de Seguridad en el Desarrollo de Software y Productos para Infraestructuras Críticas


