Segurança Node JS: Verificando se tem problemas

Segurança Node JS: Verificando se tem problemas

5 de agosto de 2016 0 Por Ramos de Souza Janones
Como vender Software - Seja desktop, web ou MobilePowered by Rock Convert
Powered by Rock Convert

Verifique erros de segurança em seus projetos desenvolvidos com o Node JS framework e as melhores práticas no desenvolvimento de aplicações web.

Vamos falar sobre segurança Node JS.

Não precisamos ir muito além para aumentarmos a segurança da nossa aplicação.

E você, já conhecia as técnicas aqui apresentadas? Conhece outras dicas de segurança fáceis de aplicar, seja na plataforma Node.js ou não? Compartilhe sua experiência!

nsp

nsp é a principal linha de comando de interface do  Node Security Platform. Ele permite que faça audiência ed verificação de segurança em arquivos package.json ou npm-shrinkwrap.json.

Instalação

npm install nsp --global

Exemplo de uso

Dentro do diretório de seu projeto

nsp check

gulp-nsp

O plugin gulp é que irá rodar o Node Security Platform em seu package.json ou npm-shrinkwrap.json

Instalação

npm install gulp-nsp --save-dev

Então em seu arqui Gulp, adicione as seguintes linhas:

var gulpNSP = require('gulp-nsp');
 
//To check your package.json
gulp.task('nsp', function (cb) {
  gulpNSP({package: __dirname + '/package.json'}, cb);
});
 
//To check your shrinkwrap.json
gulp.task('nsp', function (cb) {
  gulpNSP({shrinkwrap: __dirname + '/npm-shrinkwrap.json'}, cb);
});
 
//If you don't want to stop your gulp flow if some vulnerabilities have been found use the stopOnError option:
gulp.task('nsp', function (cb) {
  gulpNSP({
    package: __dirname + '/package.json',
    stopOnError: false
  }, cb);
});
 
//For enterprises building behind a proxy (HTTP_PROXY or HTTPS_PROXY), use the proxy option:
gulp.task('nsp', function (cb) {
  gulpNSP({
    shrinkwrap: __dirname + '/npm-shrinkwrap.json',
    proxy: process.env.HTTPS_PROXY
  }, cb);
});

grunt-nsp

Execute Node Security como um serviço grunt

Instalação

npm install grunt-nsp --save-dev

Existe seu arquivo Grunt com:

grunt.initConfig({
  nsp: {
    package: grunt.file.readJSON('package.json')
  }
});
 
grunt.loadNpmTasks('grunt-nsp');

vscode-nsp

Um plugin para o Visual Studio Code que roda o Node Security Platform de seu editor.

Instalação

From within VS Code, press ⌘+P and run the following command

ext install vscode-nsp
 » MundoJS » Node  

 Reporte ao Node Foundation qualquer erro de segurança que você tiver:

Reportando um Bug

Todos os bugs de segurança no Node.js são tratados com seriedade e devem ser reportados através do sistema HackerOne ou do e-mail security@nodejs.org. O problema reportado será entregue a uma subdivisão do time de principal, responsável por gerênciar as questões de segurança.

LEIA TAMBÉM:  Resenha do livro: Como meu jogo alcançou 3 Milhões de Downloads?

Seu relatório será confirmado em até 24 horas, e você receberá, dentro de 48h, uma resposta mais detalhada sobre o assunto, indicando os próximos passos a serem tomados.

Após a resposta inicial do seu reporte, a equipe de segurança se encarregará de manter você informado sobre o progresso que está sendo feito em relação à resolução e ao anúncio completo, e pode solicitar informações adicionais ou orientação sobre o problema reportado. Estas atualizações serāo enviadas pelo menos a cada cinco dias. Mas na prática, isso é geralmente feito entre 24 à 48 horas.

Programa Node.js de Bug Bounty

O projeto do Node.js é engajado em um programa oficial de recompensa por bugs (bug bounty) para pesquisadores de segurança e responsáveis por divulgações públicas.

O programa é gerenciado através da plataforma HackerOne em https://hackerone.com/nodejs, onde mais detalhes podem ser encontrados.

Reportando um Bug em um módulo de terceiros (third party)

Problemas de segurança em módulos de terceiros (third-party) devem ser reportados aos seus respectivos maintainers e também coordenados através do Node Ecosystem Security Team ou via e-mail para security-ecosystem@nodejs.org.

Detalhes sobre este processo podem ser encontrados no repositório do Security Working Group.

LEIA TAMBÉM:  O que são middlewares em Node JS?

Obrigado por melhorar a segurança do Node.js e seu ecossistema. Seus esforços e a divulgação feita de forma responsável são muito estimados e serão reconhecidos.

Política de Divulgação

Aqui encontra-se a política de divulgação de segurança para o Node.js:

  • O relatório de segurança é recebido e designado a um primeiro responsável. Esta pessoa coordenará os processos de atualização e revisão. O problema é confirmado e uma lista de todas as versões afetadas é determinada. O código é auditado para encontrar possíveis problemas similares em potencial. As correções são preparadas para todas as versões que ainda estão sob manutenção. Estas correções não são enviadas ao repositório público mas mantidos localmente aguardando a divulgação.
  • Uma data de embargo é sugerida e escolhida para essa vulnerabilidade e um CVE (Common Vulnerabilities and Exposures (CVE®)) é solicitado para esta vulnerabilidade.
  • Na data de embargo, é enviada uma cópia do anúncio para a lista de e-mails de segurança do Node.js. As alterações são enviadas para o repositório público e é feito o deploy dos novos builds para o nodejs.org. Dentro de 6 horas da notificação na lista de segurança, uma cópia do anúncio será publicada no blog do Node.js.
  • Geralmente a data de embargo será definida 72 horas após o horário que o CVE é criado. Entretanto, a data pode variar dependendo do grau de severidade do bug ou a dificuldade na aplicação da correção (fix).
  • Este processo pode levar algum tempo, especialmente quando é necessária uma coordenação com maintainers de outros projetos. Todo esforço será feito para garantir que o bug seja corrigida a tempo. Entretanto, é importante que acompanhe o processo de release acima para garantir que o anúncio seja feito de forma consistente.
LEIA TAMBÉM:  Conheça o Deno: O sucessor do Node.js

Recebendo Atualizações de segurança

Notificaçōes de segurança serão distribuídas através dos seguintes métodos.

Powered by Rock Convert
Powered by Rock Convert
Siga os bons!
Últimos posts por Ramos de Souza Janones (exibir todos)
vote
Article Rating