The Codest
  • Sobre nós
  • Serviços
    • Desenvolvimento de software
      • Desenvolvimento de front-end
      • Desenvolvimento backend
    • Staff Augmentation
      • Programadores Frontend
      • Programadores de back-end
      • Engenheiros de dados
      • Engenheiros de nuvem
      • Engenheiros de GQ
      • Outros
    • Aconselhamento
      • Auditoria e consultoria
  • Indústrias
    • Fintech e Banca
    • E-commerce
    • Adtech
    • Tecnologia da saúde
    • Fabrico
    • Logística
    • Automóvel
    • IOT
  • Valor para
    • CEO
    • CTO
    • Gestor de entregas
  • A nossa equipa
  • Case Studies
  • Saber como
    • Blogue
    • Encontros
    • Webinars
    • Recursos
Carreiras Entrar em contacto
  • Sobre nós
  • Serviços
    • Desenvolvimento de software
      • Desenvolvimento de front-end
      • Desenvolvimento backend
    • Staff Augmentation
      • Programadores Frontend
      • Programadores de back-end
      • Engenheiros de dados
      • Engenheiros de nuvem
      • Engenheiros de GQ
      • Outros
    • Aconselhamento
      • Auditoria e consultoria
  • Valor para
    • CEO
    • CTO
    • Gestor de entregas
  • A nossa equipa
  • Case Studies
  • Saber como
    • Blogue
    • Encontros
    • Webinars
    • Recursos
Carreiras Entrar em contacto
Seta para trás VOLTAR
2019-03-26
Desenvolvimento de software

Segurança em pacotes Javascript

Daniel Grek

Todos os dias, a quantidade de pacotes Javascript está a aumentar. É o resultado da atividade de uma comunidade que, por um lado, exige novas soluções e, por outro, as gera como forma de auto-desenvolvimento ou realização. Este grande crescimento abre novas portas e possibilidades, mas também traz perigos, dos quais todos os programadores têm de estar conscientes.

No final de novembro de 2018, a comunidade GitHub comunicou a existência de uma vulnerabilidade grave no fluxo de eventos - que ajuda a trabalhar com nó eventos de forma mais eficiente. Foi bastante popular, uma vez que o número de descarregamentos nesse período específico atingiu mais de 2,2 milhões por semana (em comparação com React com 3,7 mlns). Event-stream, bem como suas dependências, eram dependentes de outra biblioteca - mapa plano-vapor, que, por acaso, foi atualizado com um malware de bolso criptográfico. Permitia roubar chaves privadas e outros detalhes das contas dos utilizadores em máquinas onde o pacote estava incluído.

Eventualmente, flatmap-stream foi removido do NPM, o que criou problemas temporais com muitas outras bibliotecas. Em maio do mesmo ano, a comunidade encontrou um backdoor dentro do o getcookie que também fazia parte de muitas outras dependências. Tais exemplos podem ser multiplicados, o que demonstra que é importante prestar atenção às dependências instaladas em um pacote projeto, não só do Javascript mas também num contexto geral.

Confiar em soluções oficiais e em grandes comunidades

Na medida do possível, é importante confiar em soluções oficiais no seu projeto. Estas não são apenas menos vulneráveis devido a uma melhor processo de desenvolvimento. Uma grande comunidade, que normalmente vem com uma marca melhor, ajuda a identificar problemas muito mais rapidamente e, o que é mais importante, a encontrar boas soluções.

Utilizar tendências NPM

Segurança JavaScript

Fig. 1 Tendência do Webpack NPM.

Gráfico

Fig. 2. Tendência de NPM de fluxo de eventos.

Por vezes, o conhecimento de um estado atual do pacote pode não representar o seu passado. Uma rápida olhada no gráfico de tendências do npm pode mostrar uma tendência real de um pacote. Ele mostrará não apenas grandes picos, onde alguma vulnerabilidade pode ser encontrada, mas a condição geral de um determinado pacote (NOTA: grandes picos no google trends perto de 24 - 30 de dezembro representam a temporada de férias, o que pode não representar necessariamente um problema). Como exemplo, dê uma olhada na figura 1 - uma tendência representativa do download do Webpack por semana. Verá um crescimento estável sem quaisquer pontos de rutura, o que pode sugerir que o Webpack é um pacote estável e seguro de utilizar. Por outro lado, na figura 2, você encontrará uma grande queda em novembro, o que é um sinal claro de que algo errado pode ter acontecido nesse período (o que já sabemos que é verdade).

Auditoria de dependência

A melhor e mais confiável maneira de verificar o estado de suas dependências é executar um auditoria. Este comando está agora disponível nativamente tanto para o yarn como para o npm, embora exija as suas versões mais recentes. Ele envia uma lista de dependências atuais para um endpoint apropriado e retorna informações contendo suas vulnerabilidades atuais e outros detalhes de uso, incluindo referência à documentação. (figura3).

Dados interessantes

Fig. 3. Exemplo de resultado do comando npm audit. Fonte: https://docs.npmjs.com

Gerir dependências em Javascript não é uma tarefa fácil. A quantidade de soluções cresce a cada dia, portanto, lembre-se de escolher suas dependências com sabedoria e cuidado. Continue a auditar o seu projeto atual e actualize os seus pacotes regularmente.

Para saber mais sobre as dependências javascript e como resolver alguns dos seus problemas, consulte este artigo.

Fonte:

  1. https://github.com/dominictarr/event-stream/issues/116
  2. https://blog.npmjs.org/post/180565383195/details-about-the-event-stream-incident
  3. https://blog.npmjs.org/post/173526807575/reported-malicious-module-getcookies
  4. https://docs.npmjs.com/auditing-package-dependencies-for-security-vulnerabilities
  5. https://docs.npmjs.com/cli/audit
  6. https://yarnpkg.com/lang/en/docs/cli/audit/

Artigos relacionados

Ilustração de uma aplicação de cuidados de saúde para smartphone com um ícone de coração e um gráfico de saúde em ascensão, com o logótipo The Codest, representando soluções digitais de saúde e HealthTech.
Desenvolvimento de software

Softwares para o setor de saúde: Tipos, casos de uso

As ferramentas em que as organizações de cuidados de saúde confiam atualmente não se assemelham em nada às fichas de papel de há décadas atrás. O software de cuidados de saúde apoia agora os sistemas de saúde, os cuidados aos doentes e a prestação de cuidados de saúde modernos em...

OCODEST
Ilustração abstrata de um gráfico de barras em declínio com uma seta ascendente e uma moeda de ouro que simboliza a eficiência ou a poupança de custos. O logótipo The Codest aparece no canto superior esquerdo com o slogan "In Code We Trust" sobre um fundo cinzento claro
Desenvolvimento de software

Como dimensionar a sua equipa de desenvolvimento sem perder a qualidade do produto

Aumentar a sua equipa de desenvolvimento? Saiba como crescer sem sacrificar a qualidade do produto. Este guia cobre sinais de que é hora de escalar, estrutura da equipe, contratação, liderança e ferramentas - além de como o The Codest pode...

OCODEST
Desenvolvimento de software

Construir aplicações Web preparadas para o futuro: ideias da equipa de especialistas do The Codest

Descubra como o The Codest se destaca na criação de aplicações web escaláveis e interactivas com tecnologias de ponta, proporcionando experiências de utilizador perfeitas em todas as plataformas. Saiba como a nossa experiência impulsiona a transformação digital e o negócio...

OCODEST
Desenvolvimento de software

As 10 principais empresas de desenvolvimento de software sediadas na Letónia

Saiba mais sobre as principais empresas de desenvolvimento de software da Letónia e as suas soluções inovadoras no nosso último artigo. Descubra como estes líderes tecnológicos podem ajudar a elevar o seu negócio.

thecodest
Soluções para empresas e escalas

Fundamentos do desenvolvimento de software Java: Um Guia para Terceirizar com Sucesso

Explore este guia essencial sobre o desenvolvimento de software Java outsourcing com sucesso para aumentar a eficiência, aceder a conhecimentos especializados e impulsionar o sucesso do projeto com The Codest.

thecodest

Subscreva a nossa base de conhecimentos e mantenha-se atualizado sobre os conhecimentos do sector das TI.

    Sobre nós

    The Codest - Empresa internacional de desenvolvimento de software com centros tecnológicos na Polónia.

    Reino Unido - Sede

    • Office 303B, 182-184 High Street North E6 2JA
      Londres, Inglaterra

    Polónia - Pólos tecnológicos locais

    • Parque de escritórios Fabryczna, Aleja
      Pokoju 18, 31-564 Cracóvia
    • Embaixada do Cérebro, Konstruktorska
      11, 02-673 Varsóvia, Polónia

      The Codest

    • Início
    • Sobre nós
    • Serviços
    • Case Studies
    • Saber como
    • Carreiras
    • Dicionário

      Serviços

    • Aconselhamento
    • Desenvolvimento de software
    • Desenvolvimento backend
    • Desenvolvimento de front-end
    • Staff Augmentation
    • Programadores de back-end
    • Engenheiros de nuvem
    • Engenheiros de dados
    • Outros
    • Engenheiros de GQ

      Recursos

    • Factos e mitos sobre a cooperação com um parceiro externo de desenvolvimento de software
    • Dos EUA para a Europa: Porque é que as empresas americanas decidem mudar-se para a Europa?
    • Comparação dos centros de desenvolvimento da Tech Offshore: Tech Offshore Europa (Polónia), ASEAN (Filipinas), Eurásia (Turquia)
    • Quais são os principais desafios dos CTOs e dos CIOs?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Website terms of use

    Direitos de autor © 2026 por The Codest. Todos os direitos reservados.

    pt_PTPortuguese
    en_USEnglish de_DEGerman sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish fr_FRFrench pl_PLPolish arArabic it_ITItalian jaJapanese es_ESSpanish nl_NLDutch etEstonian elGreek cs_CZCzech pt_PTPortuguese