Colaborando con GitHub en seguridad de cadena de suministro para paquetes de Dart

A partir de hoy, GitHub soporta Dart en su Advisory Database, grafo de dependencias y Dependabot. Esto significa que GitHub ahora ofrece…

A partir de hoy, GitHub soporta Dart en su Advisory Database, dependency graph, y Dependabot. Esto significa que GitHub ahora ofrece soporte integral de seguridad de cadena de suministro para apps de Dart y Flutter.

Para conocer estas nuevas capacidades, consulta el blog post de GitHub. Para saber qué significa esto para ti como desarrollador de Dart, sigue leyendo.

“Con Dart ahora en nuestro ecosistema de seguridad de cadena de suministro, GitHub extiende su soporte a un segmento de rápido crecimiento de la comunidad open source,” dijo Courtney Claessens, Senior Product Manager de GitHub. “Y al mover la seguridad a la izquierda, ayudamos no solo a los desarrolladores, sino a los millones de usuarios que dependen de apps desarrolladas en Dart.”

Conociendo los problemas de seguridad de paquetes

#

Imagina que estás construyendo una fantástica nueva app de Flutter. Estás usando muchos paquetes realmente buenos en tu pubspec (como algo como esto) y publicando tu app en múltiples tiendas. ¿Qué pasaría si uno de ellos tuviera una actualización importante para arreglar una vulnerabilidad de seguridad? ¿Cómo te enterarías? No puedes, salvo que revises manualmente el CHANGELOG de cada uno de las decenas de paquetes de forma regular. Este es un desafío real.

Aquí es donde entra Dependabot. Si gestionas tu código fuente en un repositorio de GitHub, el dependency graph y Dependabot monitorean tus dependencias de pubspec y te avisan si te falta una actualización. Dependabot envía un pull request para actualizar pubspec.yaml a la última versión del paquete en tu nombre. Todo esto es posible gracias a nuevas mejoras específicas de Dart en GitHub.

Pull request de Dependabot para actualizar una dependencia de paquete de Dart.
Dependabot enviando un PR para actualizar (bump) una dependencia de paquete a una versión más reciente.
GitHub dependency graph listando las dependencias de un paquete de Dart.
Dependency Graph mostrando el conjunto de dependencias de un paquete de Dart.

Una base de datos de avisos para paquetes de Dart

#

Este escenario depende de una base de datos abierta y de alta calidad de avisos de seguridad que liste las vulnerabilidades conocidas en paquetes de Dart. Para esta funcionalidad, nos asociamos con GitHub para añadir soporte de Dart a su popular GitHub Advisory Database. Esta base de datos ya contiene miles de avisos para otros ecosistemas como npm, NuGet, y Maven.

A partir de hoy, ya puedes seleccionar el ecosistema Pub al crear avisos para paquetes de Dart publicados.

Formulario de borrador de security advisory de GitHub con el dropdown de ecosistema abierto y Pub seleccionado.
Creando un nuevo security advisory para un paquete de Dart publicado en pub.dev

Si publicas paquetes en pub.dev, te recomendamos dos nuevas mejores prácticas.

  1. Usa la funcionalidad de security advisory de GitHub para crear nuevos avisos en tu repo de GitHub. GitHub ingesta estos avisos en la base de datos central de GitHub Advisory.

  2. Configura tu security policy detallando cómo los usuarios pueden reportar vulnerabilidades.

Asegura tus repositorios de Dart hoy

#

Las nuevas funcionalidades de seguridad están disponibles hoy. Si tu código fuente reside en un repositorio público, Dependabot ha empezado a monitorear problemas de seguridad. Si tu código fuente está en un repo privado de GitHub, necesitas un poco más de configuración para habilitar esta funcionalidad.

Más de Dart