Skip to main content

Prácticas recomendadas de seguridad empresarial para gestionar vulnerabilidades a escala

Escrito por
Blog illustrations vulnerabilities at scale

9 de noviembre de 2020

0 minutos de lectura

¿Qué es la seguridad empresarial?

La seguridad empresarial a escala consiste, entre otras cosas, en abordar los siguientes desafíos:

  • Te enfrentas a una acumulación cada vez mayor de problemas de seguridad, lo que hace perder tiempo a los desarrolladores y a los ingenieros de seguridad.

  • Los desarrolladores y los ingenieros de seguridad no colaboran bien debido a una menor confianza entre ellos.

  • Periodos prolongados de exposición a vulnerabilidades graves, debido a la falta de priorización de los problemas de seguridad más importantes y fáciles de corregir.

¿Cómo garantizar el cumplimiento efectivo de las normas de seguridad en varios equipos cuando se enfrentan a una cantidad abrumadora de vulnerabilidades que deben corregirse?

¡Esta guía de prácticas recomendadas de seguridad empresarial trata precisamente de eso!

Descarga la guía.

Ya sea que implementes una arquitectura de seguridad empresarial o una solución de ciberseguridad empresarial, tendrás que afrontar desafíos de seguridad de aplicaciones, como garantizar que tus equipos de desarrollo no sufran retrasos ni se vean limitados o bloqueados.

Snyk anunció recientemente sus soluciones de gestión de seguridad empresarial a escala, que destacan las capacidades de gestión de proyectos que priorizan a los desarrolladores y se centran en la productividad de los equipos de seguridad y desarrollo. Funciones como los atributos y las etiquetas de proyectos, las políticas a nivel de proyecto y las condiciones de error en los pull requests son excelentes ejemplos de cómo ayudar a los desarrolladores a tomar medidas y permitir que el equipo de seguridad se enfoque en lo que importa.

Toma medidas para mejorar tu arquitectura de seguridad empresarial:

  • haz que la compilación falle solo cuando haya una corrección disponible

  • asigna automáticamente al responsable de seguridad para que revise los problemas

  • crea pull requests priorizados para corregir vulnerabilidades

  • cumplimiento de licencias

  • vulnerabilidades con reachability

    Panel de Snyk Reports que muestra la cantidad de problemas de seguridad y licencias, con gráficos de problemas a lo largo del tiempo y ventana de exposición.

Crea pull requests priorizados para corregir vulnerabilidades

Desafío: Hay muchas vulnerabilidades de seguridad pendientes y a los desarrolladores les cuesta identificar y resolver los problemas de seguridad entre tantos.

Solución: Reduce el riesgo general al enfocarte en las vulnerabilidades de seguridad más importantes que se pueden corregir.

Snyk introdujo la puntuación de prioridad de vulnerabilidades para ayudar a mitigar el problema de larga data de asignar puntuaciones a las vulnerabilidades de seguridad, por ejemplo, mediante el CVSS estandarizado, que plantea enormes desafíos para que los desarrolladores y los ingenieros de seguridad de aplicaciones determinen el verdadero impacto según el contexto adecuado de una vulnerabilidad de seguridad. Escribimos más sobre los desafíos de puntuar las vulnerabilidades de seguridad con CVSS, que también sirve como una buena introducción a los conceptos básicos de CVSS.

La puntuación de prioridad de Snyk tiene en cuenta datos como la madurez del exploit, si hay una corrección disponible, la puntuación CVSS y otros factores, para asignar a cada vulnerabilidad una puntuación de prioridad de entre 0 y 1000. Cuanto más alta sea la puntuación, más urgente será corregir la vulnerabilidad.

Para ayudarte a despejar la acumulación y el largo historial de vulnerabilidades de seguridad pendientes, queremos asegurarnos de que te enfoques en las vulnerabilidades de seguridad más importantes para reducir el riesgo general y el periodo de exposición.

¿Cómo lo hacemos de una forma útil y práctica para los desarrolladores?

Ve a la configuración de integración de Snyk y habilita la opción de crear pull requests para todas las vulnerabilidades corregibles de máxima prioridad presentes en el proyecto. ¡No te preocupes, esto no inundará a los desarrolladores con muchos pull requests ni les quitará todo el tiempo! En su lugar, abriremos solo un pull request nuevo al día. Estos pull requests permiten tomar medidas y cuentan con versiones posteriores de paquetes para las que existe una ruta de actualización, por lo que al equipo de desarrollo le debería tomar muy poco esfuerzo revisarlos y combinarlos.

Configuración de la integración de Snyk con GitHub que muestra una cuenta conectada y opciones para crear pull request de corrección automáticos

Asigna automáticamente al responsable de seguridad para que revise los problemas

Desafío: Las correcciones de seguridad se automatizan y generan un pull request en el repositorio del proyecto, lo cual es excelente, pero ¿quién debería revisarlas?

Solución: Estandariza la revisión de seguridad de las correcciones automatizadas y las actualizaciones automatizadas de dependencias asignando automáticamente un revisor al pull request creado. Puedes asignar a una persona según quién haya sido el último usuario en modificar el archivo de manifiesto, ya sea pom.xml o package.json, o designar específicamente al responsable de seguridad u otra persona de tu equipo para que te ayude a revisar los cambios incluidos en el pull request.

Página de configuración de Snyk que muestra una integración de GitHub conectada y opciones habilitadas para asignar responsables a los pull request.

Haz que la compilación falle solo cuando haya una corrección disponible

Desafío: Quieres ayudar a los desarrolladores a crear software seguro usando código abierto, pero terminas bloqueándolos por completo y, muchas veces, ni siquiera pueden actuar en función de tus hallazgos.

  • Un desarrollador descubre que la canalización de CI falló debido a un problema de seguridad de baja gravedad y no puede continuar con su proyecto.

  • A un desarrollador le cuesta resolver una vulnerabilidad de seguridad que detectó la canalización de CI y que provocó el fallo de la compilación, porque no existe una corrección real para ese problema de seguridad.

Solución: Para ayudar a los desarrolladores a adoptar la seguridad y resolver los errores sin descartarlos como ruido o falsos positivos, debes proporcionarles herramientas útiles y prácticas que se adapten a sus flujos de trabajo.

Snyk ofrece una configuración granular que te permite hacer que la compilación de CI falle solo si las vulnerabilidades detectadas superan un umbral de gravedad alta. Así, cuando los desarrolladores tengan que dedicar tiempo a resolver una vulnerabilidad de seguridad debido a un fallo del entorno de compilación, podrán priorizar los problemas más importantes.

¿Qué esperas que hagan los desarrolladores cuando una canalización de CI falla debido a una vulnerabilidad de seguridad? Probablemente esperas que la corrijan. Eso está muy bien, pero la mayoría de las herramientas y las integraciones simplemente hacen que la compilación falle de todos modos. Aquí es donde entra en juego el enfoque de Snyk que prioriza a los desarrolladores. La integración de CI incluye una opción para que la compilación falle solo cuando los problemas detectados tengan una corrección disponible. De esta manera, los desarrolladores pueden tomar medidas para resolver los problemas de seguridad en lugar de pasar un tiempo interminable clasificando vulnerabilidades para descubrir que no hay ninguna corrección disponible.

Para aprovechar todas estas funciones de seguridad, puedes ir a la configuración de integración correspondiente a tu entorno, como GitHub, y ajustar estas condiciones de fallo de compilación cuando snyk analiza los pull requests, por ejemplo:

Página de configuración de Snyk que muestra una integración de GitHub conectada y las pruebas de seguridad predeterminadas habilitadas para pull request.

Prioriza las vulnerabilidades con reachability desde tu propio código

Desafío: Te cuesta priorizar qué componentes de código abierto corregir primero, por ejemplo:

  • Tengo muchas vulnerabilidades de seguridad en mis bibliotecas de código abierto, pero ¿cómo sé qué biblioteca se usa en el código de producción?

  • Los desarrolladores dicen: «Sí, usamos esta biblioteca de código abierto, pero ¿cómo podemos saber si usamos la clase o el método donde se encuentra la vulnerabilidad de seguridad?»

Solución: Snyk entiende que los desarrolladores y los ingenieros de seguridad necesitan una forma de priorizar mejor el trabajo de clasificación de cientos de vulnerabilidades. Para resolverlo, aplica análisis estático de código y determina si se puede acceder a una vulnerabilidad de seguridad en una biblioteca de código abierto de terceros que usas desde tu propio código (de primera parte).

Snyk entiende el contexto en el que se detectó una vulnerabilidad y toma medidas para priorizar su corrección, reducir los riesgos para el negocio y acortar los periodos de exposición.

En términos técnicos, la función de vulnerabilidades con reachability se basa en el algoritmo de Snyk, que construye un grafo de llamadas desde el código fuente de tu aplicación hasta las dependencias de código abierto del proyecto.

Por ahora, el análisis de vulnerabilidades con reachability de Snyk se aplica solo a proyectos de Java, Maven y Gradle, y está disponible únicamente en las pruebas de la CLI o en la interfaz de Snyk cuando analizas un proyecto. ¡La compatibilidad con Git llegará pronto!

Identifica las vulnerabilidades de seguridad según su reachability desde tu código:

  1. Asegúrate de usar la versión más reciente de Snyk CLI

  2. Ve a la carpeta de tu aplicación y a los archivos de manifiesto correspondientes

  3. Ejecuta snyk test --reachable

Si se encuentran vulnerabilidades con reachability, el resultado de la prueba será similar a la siguiente captura de pantalla:

Salida de terminal que muestra cuatro problemas de dependencias y una ruta explotable hasta una vulnerabilidad, resueltos al actualizar Apache HttpComponents.

De hecho, puedes monitorear toda esta información en la interfaz de Snyk.

Continúa y envía una instantánea de este manifiesto a Snyk para que podamos monitorearlo continuamente por ti y enviarte alertas. Para monitorear el proyecto, ejecuta:

snyk monitor --reachable

Ahora podemos filtrar todos los problemas de seguridad por vulnerabilidades con reachability y priorizar primero las que hay que corregir:

Panel de vulnerabilidades que muestra un problema de Directory Traversal de gravedad media y alcanzable en Apache HttpClient, con información sobre la corrección y las rutas de reachability.

Si te interesa obtener más información sobre la función de vulnerabilidades con reachability, consulta estas publicaciones:

Políticas de cumplimiento de licencias

Desafío: Si te cuesta responder a las siguientes solicitudes del departamento legal, es que estás experimentando los desafíos del software de seguridad empresarial:

  • Necesitamos una lista de todas las bibliotecas de código abierto que usan tus proyectos de aplicaciones.

  • Es fundamental no infringir las leyes de licencias y derechos de autor distribuyendo sin saberlo software copyleft que incumple las condiciones de su licencia.

Solución: Snyk te permite abordar los problemas de seguridad empresarial y cumplimiento de licencias de dos maneras:

  • Te proporciona un informe de todas las licencias que usas en tus proyectos, que puedes exportar como CSV.

  • Te permite establecer políticas de licencias de software de código abierto, aplicables a nivel de proyecto y organización, para cumplir las directrices del departamento legal de tu empresa.

Gestión de licencias de software

La pestaña Informes de Snyk te permite ver todas las licencias que usan tus proyectos, en todos los proyectos y organizaciones importados, si es necesario.

También puedes filtrar la lista según tus necesidades o ordenarla por la cantidad de dependencias o proyectos afectados por licencias específicas. Esto resulta práctico para priorizar rápidamente los requisitos legales que deben abordarse debido a infracciones de licencias específicas.

Si necesitas exportar la lista para colaborar con otro equipo en una hoja de cálculo, solo tienes que hacer clic en el botón Exportar como CSV para crear una lista de materiales de software que incluya tus licencias.

Página de licencias de Snyk Reports que muestra los tipos de licencia de los proyectos, la cantidad de dependencias y proyectos, y un botón para exportar como CSV.

Políticas de licencias

Establecer una política de licencias en toda una organización es una práctica común para garantizar que la empresa no se exponga a acciones legales por el uso indebido de bibliotecas de software o, peor aún, por infringir completamente sus licencias.

Para abordar este problema, Snyk permite establecer una política de licencias para los proyectos y garantizar que no pasen la comprobación de licencias durante una compilación o en una canalización de integración continua.

Puedes establecer políticas de seguridad con un nivel muy granular y aplicarlas a proyectos que coincidan con atributos específicos. Esto ayuda a garantizar que los equipos tengan suficiente libertad para trabajar de forma independiente y cuenten con las medidas de protección adecuadas.

¿Cómo se establece una política en la interfaz de Snyk?

Configuramos las políticas a nivel de grupo, por lo que debes ser administrador de grupo. Las políticas se aplican a todas las organizaciones y proyectos que pertenecen a grupos específicos.

Administrador de políticas de Snyk que muestra la política de licencias predeterminada aplicada a una organización.

Como puedes ver, Snyk ya aplica una política predeterminada de cumplimiento de licencias adaptada a las expectativas de licenciamiento empresarial. Puedes ajustarla para que se adapte mejor a tus requisitos legales.

Interfaz de políticas de licencias de Snyk que muestra nombres de licencias, configuraciones de gravedad alta y media, y un campo de descripción

Categoriza los proyectos de manera eficaz

Desafío: Estas son algunas señales de que necesitas urgentemente soluciones de seguridad empresarial:

  • Los desarrolladores y los ingenieros de seguridad dedican mucho tiempo a encontrar los proyectos que deben atender.

  • Te ahogas en un océano de vulnerabilidades de seguridad y no sabes por dónde empezar.

Solución: Configura los proyectos con atributos de impacto empresarial y metadatos de la pila tecnológica. Así, el servicio tendrá el nivel de atención adecuado según su criticidad, detalles sobre el entorno de implementación y las características de la aplicación, y quedará bien representada su relación con el frontend o el backend.

Puntos extra: Con Snyk, las soluciones de seguridad empresarial tienen en cuenta los comentarios de nuestros clientes. De verdad los escuchamos, y por eso sabemos qué crear. Aquí tienes otra herramienta que te permite identificar quién es responsable de una aplicación dentro de la organización: hay un campo dedicado _Project owner_field que puedes asignar a cualquier usuario o desarrollador que tenga acceso al proyecto de Snyk.

Si prefieres ver un video sobre este tema, aquí tienes un breve resumen sobre cómo administrar tus proyectos según sus atributos y etiquetas:

Managing Projects at Scale with Snyk
Vista general de un proyecto de Snyk para package.json, que muestra vulnerabilidades, detalles del proyecto y un menú desplegable abierto para seleccionar al propietario del proyecto.

La siguiente lista de proyectos puede parecer intimidante, ¿verdad?

¿Con qué proyecto debería empezar? ¿Cómo puedo filtrar esta lista de proyectos en toda mi organización o unidad de negocio?

Panel de proyectos de Snyk que muestra proyectos con recuentos de vulnerabilidades altas, medias y bajas, y enlaces para ver los informes.

Si trabajas en SecOps, o en operaciones de seguridad, estos desafíos son bastante comunes. Como responsable de seguridad en la organización, por ejemplo, como security champion o líder de grupo, seguramente necesitas ayuda para abordar adecuadamente las preocupaciones de seguridad empresarial.

Así resolvemos este problema con Snyk: una imagen vale más que mil palabras, así que aquí tienes una. A la izquierda puedes ver la lista de filtros que te ayudan a filtrar los proyectos según:

  • Problemas y correcciones disponibles: este filtro es muy eficaz. Puedes asegurarte de que los desarrolladores se enfoquen primero en las vulnerabilidades de seguridad que realmente se pueden corregir, sin perder tiempo clasificando y validando las que no. ¡Las soluciones de seguridad empresarial, más fáciles!

  • Integraciones: explora los proyectos según su origen. ¿Buscas un proyecto supervisado mediante Snyk CLI? ¿Quieres encontrar todos los proyectos de la integración con GitLab o Bitbucket Cloud?

  • Entorno: ¿qué tipo de proyecto es? ¿Frontend? ¿Backend? Quizás sea una aplicación móvil que supervisas con la nueva compatibilidad con el plugin de Gradle de Snyk. Filtra rápidamente aquí.

  • Ciclo de vida: la arquitectura de seguridad empresarial suele requerir la aplicación de políticas de seguridad según la exposición pública de la aplicación. Por ejemplo, si solo los empleados de una empresa pueden acceder a una aplicación, su criticidad podría ser menor. Este atributo del ciclo de vida te permite configurar y filtrar los proyectos según si están implementados en producción, en preparación o en otro entorno.

    Panel de proyectos de Snyk con una lista de proyectos y la cantidad de problemas de gravedad alta, media y baja, además de filtros por integraciones y entornos

Así configuré uno de mis proyectos para encontrarlo fácilmente en la lista de proyectos con los filtros relacionados con la seguridad:

Vista general de un proyecto de Snyk para package.json que muestra vulnerabilidades y un menú desplegable de entorno abierto con las opciones Frontend, Backend, Internal, External, Mobile y Saa

Descarga la guía de buenas prácticas de seguridad empresarial.

¿Quieres leer más sobre este tema?

Lee más sobre cómo escalar con éxito con Snyk, de la mano del equipo de producto de Snyk.

Consulta la documentación de la base de conocimientos de Snyk sobre los atributos de los proyectos y cómo configurarlos.

Comienza con Capture the Flag

Aprende a resolver desafíos de Capture the Flag con nuestro taller virtual 101 a pedido.