Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
electronegativity — Electronegativity é uma ferramenta para identificar configurações incorretas e anti-padrões de segurança em aplicações Electron. | Kitploit
Ferramentas/GitHubGitHub/doyensec/electronegativity
Análise EstáticaAnálise de VulnerabilidadesAnálise de CódigoConfiguração Incorreta
GitHubdoyensec/electronegativity

electronegativity

Electronegativity é uma ferramenta para identificar configurações incorretas e anti-padrões de segurança em aplicações Electron.

Ver Repositório
1.1k71há 0 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Electronegativity

⚠️ Não estamos mais mantendo ativamente este projeto ⚠️

O que é Electronegativity?

Electronegativity é uma ferramenta para identificar configurações incorretas e anti-padrões de segurança em aplicações baseadas em Electron.

Ela utiliza análise de AST e DOM para buscar configurações relevantes para segurança, conforme descrito no whitepaper "Electron Security Checklist - A Guide for Developers and Auditors".

Desenvolvedores de software e auditores de segurança podem usar esta ferramenta para detectar e mitigar potenciais fraquezas e bugs de implementação ao desenvolver aplicações usando Electron. Um bom entendimento da (in)segurança do Electron ainda é necessário ao usar Electronegativity, pois alguns dos possíveis problemas detectados pela ferramenta exigem investigação manual.

Se você tem interesse em Segurança do Electron, dê uma olhada em nossa pesquisa BlackHat 2017 Electronegativity - A Study of Electron Security e fique de olho no blog do Doyensec.

Electronegativity Demo

Versão Melhorada do ElectroNG

Se você precisa de algo mais poderoso ou atualizado, uma ferramenta SAST melhorada baseada no Electronegativity está disponível como resultado de muitos anos de P&D aplicada da Doyensec. No final de 2020, nos sentamos para criar um roteiro do projeto e montamos uma equipe de desenvolvimento para trabalhar no que hoje é o ElectroNG. Você pode ler mais sobre algumas das principais melhorias em relação à versão OSS em uma postagem recente no blog.

Instalação

As versões principais são publicadas no NPM e podem ser simplesmente instaladas usando:

root@kitploit:~
$ npm install @doyensec/electronegativity -g

Uso

CLI

root@kitploit:~
$ electronegativity -h

Usando electronegativity para procurar problemas em um diretório contendo um aplicativo Electron:

root@kitploit:~
$ electronegativity -i /path/to/electron/app

Usando electronegativity para procurar problemas em um arquivo asar e salvando os resultados em um arquivo csv:

root@kitploit:~
$ electronegativity -i /path/to/asar/archive -o result.csv

Usando electronegativity ao atualizar de uma versão do Electron para outra para encontrar mudanças que quebram:

root@kitploit:~
$ electronegativity -i /path/to/electron/app -v -u 7..8

Nota: se você estiver enfrentando o Erro Fatal "JavaScript heap out of memory", você pode executar o node usando node --max-old-space-size=4096 electronegativity -i /path/to/asar/archive -o result.csv

Ignorando Linhas ou Arquivos

Electronegativity permite desabilitar verificações individuais usando comentários eng-disable. Por exemplo, se você quiser que uma verificação específica ignore uma linha de código, você pode desabilitá-la da seguinte forma:

root@kitploit:~
const res = eval(safeVariable); /* eng-disable DANGEROUS_FUNCTIONS_JS_CHECK */
root@kitploit:~
<webview src="https://doyensec.com/" enableblinkfeatures="DangerousFeature"></webview> <!-- eng-disable BLINK_FEATURES_HTML_CHECK -->

Qualquer comentário inline eng-disable (// eng-disable, /* eng-disable */, <!-- eng-disable -->) desabilitará a verificação especificada apenas para aquela linha. Também é possível fornecer vários nomes de verificação usando tanto seus IDs em snake case (DANGEROUS_FUNCTIONS_JS_CHECK) quanto seus nomes de construtor (dangerousFunctionsJSCheck):

root@kitploit:~
shell.openExternal(eval(safeVar)); /* eng-disable OPEN_EXTERNAL_JS_CHECK DANGEROUS_FUNCTIONS_JS_CHECK */

Se você colocar uma diretiva eng-disable antes de qualquer código no topo de um arquivo .js ou .html, isso desabilitará as verificações passadas para o arquivo inteiro.

Nota sobre Verificações Globais e anotações eng-disable

Antes da v1.9.0, as Verificações Globais não podiam ser desabilitadas usando anotações de código. Se você ainda está usando uma versão antiga, use o argumento de CLI -x para desabilitar manualmente uma lista de verificações (ex: -x LimitNavigationJsCheck,PermissionRequestHandlerJsCheck,CSPGlobalCheck). Note que usar anotações pode não ser aplicável para algumas verificações de nível mais alto, como CSP_GLOBAL_CHECK ou AVAILABLE_SECURITY_FIXES_GLOBAL_CHECK. Para esses casos, você pode querer usar a flag -x para excluir verificações específicas da sua varredura.

CI/CD

A Electronegativity Action pode ser executada como parte do seu pipeline CI/CD do GitHub para obter "Code scanning alerts":

Code scanning alerts

Programaticamente

Você também pode usar electronegativity programaticamente, usando opções semelhantes às da CLI:

root@kitploit:~
const run = require('@doyensec/electronegativity')
// or: import run from '@doyensec/electronegativity';

run({
  // input (directory, .js, .html, .asar)
  input: '/path/to/electron/app',
  // save the results to a file in csv or sarif format (optional)
  output: '/path/for/output/file',
  // true to save output as sarif, false to save as csv (optional)
  isSarif: false,
  // only run the specified checks (optional)
  customScan: ['dangerousfunctionsjscheck', 'remotemodulejscheck'],
  // only return findings with the specified level of severity or above (optional)
  severitySet: 'high',
  // only return findings with the specified level of confidence or above (optional)
  confidenceSet: 'certain',
  // show relative path for files (optional)
  isRelative: false,
  // run Electron upgrade checks, eg -u 7..8 to check upgrade from Electron 7 to 8 (optional)
  electronUpgrade: '7..8',
  // assume the set Electron version, overriding the detected one
  electronVersion: '5.0.0',
  // use additional parser plugins
  parserPlugins: ['optionalChaining']
})
    .then(result => console.log(result))
    .catch(err => console.error(err));

O resultado contém o número de verificações globais e atômicas, quaisquer erros encontrados durante a análise e um array dos problemas encontrados, como este:

root@kitploit:~
{
  globalChecks: 6,
  atomicChecks: 36,
  errors: [
    {
      file: 'ts/main/main.ts',
      sample: 'shell.openExternal(url);',
      location: { line: 328, column: 4 },
      id: 'OPEN_EXTERNAL_JS_CHECK',
      description: 'Review the use of openExternal',
      properties: undefined,
      severity: { value: 2, name: 'MEDIUM', format: [Function: format] },
      confidence: { value: 0, name: 'TENTATIVE', format: [Function: format] },
      manualReview: true,
      shortenedURL: 'https://git.io/JeuMC'
    },
    {
      file: 'ts/main/main.ts',
      sample: 'const popup = new BrowserWindow(options);',
      location: { line: 340, column: 18 },
      id: 'CONTEXT_ISOLATION_JS_CHECK',
      description: 'Review the use of the contextIsolation option',
      properties: undefined,
      severity: { value: 3, name: 'HIGH', format: [Function: format] },
      confidence: { value: 1, name: 'FIRM', format: [Function: format] },
      manualReview: false,
      shortenedURL: 'https://git.io/Jeu1p'
    }
  ]
}

Contribuindo

Se você está pensando em contribuir com este projeto, por favor dê uma olhada em nosso CONTRIBUTING.md.

Créditos

Electronegativity foi possível graças ao trabalho de muitos contribuidores.

Este projeto foi patrocinado pela Doyensec LLC.

Doyensec Research

Contrate-nos para quebrar sua aplicação Electron.js!

Baixar ferramenta
OpçãoDescrição
-Vexibe o número da versão
-i, --inputentrada (diretório, .js, .html, .asar)
-l, --checksexecuta apenas as verificações especificadas, passadas em formato csv
-x, --exclude-checks pula a lista de verificações especificada, passada em formato csv
-s, --severityretorna apenas achados com o nível de severidade especificado ou superior
-c, --confidenceretorna apenas achados com o nível de confiança especificado ou superior
-o, --output <filename[.csv or .sarif]>salva os resultados em um arquivo no formato csv ou sarif
-r, --relativeexibe caminho relativo para arquivos
-v, --verbose exibe a descrição dos achados, padrão é verdadeiro
-u, --upgrade executa verificações de atualização do Electron, ex: -u 7..8 para verificar atualização do Electron 7 para 8
-e, --electron-version assume a versão definida do Electron, substituindo a detectada, ex: -e 7.0.0 para tratar como usando Electron 7
-p, --parser-plugins especifica plugins de parser adicionais a serem usados separados por vírgulas, ex: -p optionalChaining
-h, --helpexibe informações de uso