Parceria com o GitHub para segurança da cadeia de suprimentos de pacotes Dart

A partir de hoje, o GitHub oferece suporte ao Dart no seu Advisory Database, no grafo de dependências e no Dependabot. Isso significa que o GitHub agora oferece suporte completo à segurança da cadeia de suprimentos para apps Dart e Flutter…

A partir de hoje, o GitHub oferece suporte ao Dart no seu Advisory Database, no grafo de dependências e no Dependabot. Isso significa que o GitHub agora oferece suporte completo à segurança da cadeia de suprimentos para apps Dart e Flutter.

Para conhecer essas novas capacidades, confira o post do blog do GitHub. Para entender o que isso significa para você como desenvolvedor Dart, continue lendo.

“Com o Dart agora em nosso ecossistema de segurança da cadeia de suprimentos, o GitHub amplia seu suporte a um segmento que cresce rapidamente na comunidade open source”, disse Courtney Claessens, Senior Product Manager do GitHub. “E, ao antecipar a segurança, ajudamos não só os desenvolvedores, mas também os milhões de usuários que dependem de apps desenvolvidos em Dart.”

Entendendo problemas de segurança em pacotes

#

Imagine que você está construindo um novo e fantástico app Flutter. Você usa muitos pacotes muito bons no seu pubspec (como este exemplo) e publica seu app em várias lojas. O que aconteceria se um desses pacotes tivesse uma atualização importante para corrigir uma vulnerabilidade de segurança? Como você ficaria sabendo disso? Não ficaria, a menos que verificasse manualmente o CHANGELOG de cada um dos dezenas de pacotes regularmente. Esse é um desafio real.

É aqui que entra o Dependabot. Se você gerencia o código-fonte em um repositório do GitHub, o grafo de dependências e o Dependabot monitoram as dependências do seu pubspec e avisam se você está sem uma atualização. O Dependabot envia um pull request para atualizar o pubspec.yaml para a versão mais recente do pacote em seu nome. Tudo isso acontece graças a melhorias específicas para Dart no GitHub.

Dependabot pull request to update a Dart package dependency.
Dependabot sending a PR to bump (update) a package dependency to a more recent version.
GitHub dependency graph listing dependencies for a Dart package.
Dependency Graph showing the set of dependencies for a Dart package.

Um banco de advisories para pacotes Dart

#

Esse cenário depende de um banco de dados aberto e de alta qualidade com advisories de segurança que listam vulnerabilidades conhecidas em pacotes Dart. Para esse recurso, fizemos parceria com o GitHub para adicionar suporte ao Dart no popular GitHub Advisory Database. Esse banco já contém milhares de advisories para outros ecossistemas, como npm, NuGet e Maven.

A partir de hoje, você pode selecionar o ecossistema Pub ao criar advisories para pacotes Dart publicados.

GitHub draft security advisory form with the ecosystem dropdown open and Pub selected.
Creating a new security advisory for a Dart package published on pub.dev

Se você publica pacotes no pub.dev, recomendamos duas novas boas práticas.

  1. Use o recurso de security advisory do GitHub para criar novos advisories no seu repositório. O GitHub incorpora esses advisories ao banco central do GitHub Advisory Database.

  2. Configure sua política de segurança, incluindo como os usuários podem reportar vulnerabilidades.

Proteja seus repositórios Dart hoje

#

Os novos recursos de segurança já estão disponíveis. Se o seu código-fonte estiver em um repositório público, o Dependabot já começou a monitorar problemas de segurança. Se o seu código estiver em um repositório privado do GitHub, você precisa de um pouco mais de configuração para ativar esse recurso.

Mais do Dart