book_icon

GitHub continua a investir em melhorias, com melhorias na segurança do npm

Novas melhorias na segurança do npm incluem login melhorado e experiência de publicação com o npm CLI, contas do GitHub e Twitter conectadas, e um novo comando CLI para verificar a integridade dos pacotes no npm

GitHub continua a investir em melhorias, com melhorias na segurança do npm

A comunidade JavaScript baixa mais de 5 bilhões de pacotes do npm por dia, e o GitHub reconhece como é importante que pessoas desenvolvedoras possam fazer isso com confiança. Como administrador do registro npm, o GitHub continua a investir em melhorias que aumentem a confiança das pessoas desenvolvedoras e a segurança geral do próprio registro.

“O GitHub está anunciando a disponibilidade geral de uma experiência 2FA (autenticação em dois fatores) aprimorada no npm.”, afirma Monish Mohan, gerente de produto da GitHub. Além de compartilhar investimentos adicionais feitos no processo de verificação de contas e pacotes,

As melhorias para o npm disponíveis a partir de agora incluem:

Uma experiência simplificada de login e publicação com o npm CLI

A capacidade de conectar as contas do GitHub e Twitter ao npm

Todos os pacotes no npm foram abandonados e foi adicionado um novo comando npm CLI para auditar a integridade dos pacotes.

O GitHub tem trabalhado para tornar a experiência CLI melhor do que nunca com base neste feedback, e a experiência melhorada de login e publicação está agora disponível no npm 8.15.0  

Experiência de login e publicação simplificada
A segurança da conta é significativamente melhorada com a adoção do 2FA, mas se a experiência acrescentar muitas dificuldades, não se pode esperar que os clientes a adotem.

Recentemente o GitHub anunciou uma variedade de melhorias no registro npm para facilitar a adoção do 2FA pelos desenvolvedores – em uma versão beta pública. As primeiras pessoas a adotar a nova experiência 2FA compartilharam o feedback sobre o processo de login e publicação com o npm CLI, e a plataforma reconheceu que havia espaço para melhorias. O projeto inicial foi criado para ser retrocompatível com o npm 6 e outros clientes; de fato, o projeto Yarn foi capaz de dar suporte à nova experiência ao Yarn 1 em menos de 10 linhas de código!

O GitHub tem trabalhado para tornar a experiência CLI melhor do que nunca com base neste feedback, e a experiência melhorada de login e publicação está agora disponível no npm 8.15.0.

Com a nova experiência, os usuários serão beneficiados com:
O login e a autenticação de publicação são gerenciados no navegador.

O login pode usar uma sessão existente apenas solicitando seu segundo fator ou verificação por e-mail OTP para criar uma nova sessão.

A publicação agora suporta “Lembrar de mim por 5 minutos” e permite publicações subsequentes a partir do mesmo IP + token de acesso para evitar o prompt 2FA por um período de 5 minutos. Isto é especialmente útil quando se publica a partir de um espaço de trabalho npm.

Atualmente isso é um opt-in com o sinalizador `–auth-type=web` e será a experiência padrão no npm 9.

“`

npm login –auth-type=web

npm publish –auth-type=web

“`

Estas experiências melhoradas facilitarão aos usuários a segurança de suas contas. Uma conta segura é o começo de um ecossistema seguro. Confira a documentação para saber mais sobre o 2FA no npm.

Conectando as contas do GitHub e Twitter ao npm
Pessoas desenvolvedoras podem incluir suas contas do GitHub e Twitter em seus perfis npm praticamente desde que as contas npm estão disponíveis. Estes dados têm sido úteis para conectar a identidade de uma conta no npm a uma identidade em outras plataformas; entretanto, historicamente estes dados têm sido um campo de texto de formato livre que não foi validado ou verificado.

É por isso que o GitHub está lançando a capacidade de conectar uma conta npm às contas do GitHub e Twitter. A conexão destas contas é feita por meio de integrações oficiais tanto com o GitHub como com o Twitter e garante que os dados verificados da conta sejam incluídos nos perfis npm daqui para frente. Os dados anteriormente não verificados do GitHub ou Twitter não serão mais mostrados nos perfis de usuários públicos, tornando possível as pessoas desenvolvedoras auditar identidades e confiar que uma conta é de quem diz ser.

Ter uma conexão verificada entre as identidades através de plataformas melhora significativamente a capacidade de fazer a recuperação de contas. Estes novos dados verificados estabelecem a base para automatizar a verificação de identidade como parte da recuperação de conta. Com o tempo, a plataforma irá depreciar esses dados antigos, mas continuará a honrá-los por enquanto para garantir que os clientes não fiquem bloqueados fora de suas contas.

Verificando pacotes localmente com “assinaturas de auditoria npm”
Até hoje, os usuários do npm tinham que contar com um processo de várias etapas para validar a assinatura de pacotes do npm. Este processo baseado no PGP (Pretty Good Privacy, programa de criptografia que fornece privacidade criptográfica e autenticação para a comunicação de dados) era complexo e exigia que os usuários tivessem conhecimento de ferramentas criptográficas que proporcionavam uma experiência ruim para a pessoa desenvolvedora. Pessoas desenvolvedoras que dependem deste processo existente devem logo começar a usar o novo comando “audit signatures”. As chaves PGP devem expirar no início do próximo ano com mais detalhes a seguir.

Recentemente, o GitHub começou a trabalhar para reassinar todos os pacotes npm com novas assinaturas contando com o algoritmo seguro ECDSA (Elliptic Curve Digital Signature Algorithm) e usando um HSM (Hardware security module) para gerenciamento de chaves, e agora é possível contar com essa assinatura para verificar a integridade dos pacotes instalados a partir do npm.

O exemplo abaixo mostra o fluxo de trabalho do GitHub Actions com a “assinatura de auditoria” em ação.

“`

name: npm Package

on:

release:

types: [created]

jobs:

build:

runs-on: ubuntu-latest

steps:

uses: actions/checkout@v3

uses: actions/setup-node@v3

with:

node-version: 16.x

registry-url: ‘https://registry.npmjs.org’

run: npm install -g npm

run: npm ci

run: npm audit signatures

run: npm test

run: npm publish

env:

NODE_AUTH_TOKEN: ${{secrets.npm_token}}

“`
O que vem a seguir?
O principal objetivo do GitHub continua sendo proteger o registro do npm, e o próximo grande marco será reforçar o 2FA para todas as contas de alto impacto, aquelas que gerenciam pacotes com mais de 1 milhão de downloads semanais ou 500 dependentes, triplicando o número de contas que terão que adotar um segundo fator. Antes desta aplicação, a plataforma vai promover ainda mais melhorias no processo de recuperação de contas, incluindo a introdução de formas adicionais de verificação de identidade e automatizando o máximo possível do processo.

As opiniões dos artigos/colunistas aqui publicados refletem exclusivamente a posição de seu autor, não caracterizando endosso, recomendação ou favorecimento por parte da Infor Channel ou qualquer outros envolvidos na publicação. Todos os direitos reservados. É proibida qualquer forma de reutilização, distribuição, reprodução ou publicação parcial ou total deste conteúdo sem prévia autorização da Infor Channel.