Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
electronegativity — Electronegativity est un outil pour identifier les mauvaises configurations et les anti-modèles de sécurité dans les applications Electron. | Kitploit
Outils/GitHubGitHub/doyensec/electronegativity
Analyse StatiqueAnalyse des VulnérabilitésAnalyse de CodeMauvaise Configuration
GitHubdoyensec/electronegativity

electronegativity

Electronegativity est un outil pour identifier les mauvaises configurations et les anti-modèles de sécurité dans les applications Electron.

Voir le dépôt
1.1k714il y a 1 anVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Electronegativity

⚠️ Nous ne maintenons plus activement ce projet ⚠️

Qu'est-ce qu'Electronegativity ?

Electronegativity est un outil pour identifier les mauvaises configurations et les anti-patrons de sécurité dans les applications basées sur Electron.

Il utilise l'analyse AST et DOM pour rechercher des configurations pertinentes pour la sécurité, comme décrit dans le livre blanc "Electron Security Checklist - A Guide for Developers and Auditors".

Les développeurs de logiciels et les auditeurs de sécurité peuvent utiliser cet outil pour détecter et atténuer les faiblesses potentielles et les bugs d'implémentation lors du développement d'applications utilisant Electron. Une bonne compréhension de la (in)sécurité d'Electron est encore nécessaire lors de l'utilisation d'Electronegativity, car certains des problèmes potentiels détectés par l'outil nécessitent une investigation manuelle.

Si vous êtes intéressé par la sécurité d'Electron, jetez un œil à notre recherche BlackHat 2017 Electronegativity - A Study of Electron Security et gardez un œil sur le blog de Doyensec.

Electronegativity Demo

Version améliorée ElectroNG

Si vous avez besoin de quelque chose de plus puissant ou mis à jour, un outil SAST amélioré basé sur Electronegativity est disponible grâce à des années de R&D appliquée de Doyensec. Fin 2020, nous nous sommes assis pour créer une feuille de route du projet et avons créé une équipe de développement pour travailler sur ce qui est maintenant ElectroNG. Vous pouvez en savoir plus sur les principales améliorations par rapport à la version OSS dans un article de blog récent.

Installation

Les versions majeures sont publiées sur NPM et peuvent être simplement installées en utilisant :

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

Utilisation

CLI

root@kitploit:~
$ electronegativity -h
OptionDescription
-Vaffiche le numéro de version
-i, --inputentrée (répertoire, .js, .html, .asar)
-l, --checksexécute uniquement les vérifications spécifiées, passées au format csv
-x, --exclude-checks ignore la liste de vérifications spécifiée, passée au format csv
-s, --severityne retourne que les résultats avec le niveau de sévérité spécifié ou supérieur
-c, --confidencene retourne que les résultats avec le niveau de confiance spécifié ou supérieur
-o, --output <filename[.csv or .sarif]>enregistre les résultats dans un fichier au format csv ou sarif
-r, --relativeaffiche le chemin relatif des fichiers
-v, --verbose affiche la description des résultats, par défaut true
-u, --upgrade exécute les vérifications de mise à niveau d'Electron, ex: -u 7..8 pour vérifier la mise à niveau d'Electron 7 vers 8
-e, --electron-version suppose la version d'Electron définie, en remplacement de celle détectée, ex: -e 7.0.0 pour considérer l'utilisation d'Electron 7
-p, --parser-plugins spécifie des plugins d'analyse supplémentaires à utiliser séparés par des virgules, ex: -p optionalChaining
-h, --helpaffiche les informations d'utilisation

Utilisation d'electronegativity pour rechercher des problèmes dans un répertoire contenant une application Electron :

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

Utilisation d'electronegativity pour rechercher des problèmes dans une archive asar et enregistrer les résultats dans un fichier csv :

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

Utilisation d'electronegativity lors de la mise à niveau d'une version d'Electron à une autre pour trouver les changements cassants :

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

Note : si vous rencontrez l'erreur fatale « JavaScript heap out of memory », vous pouvez exécuter node en utilisant node --max-old-space-size=4096 electronegativity -i /path/to/asar/archive -o result.csv

Ignorer des lignes ou des fichiers

Electronegativity vous permet de désactiver des vérifications individuelles en utilisant des commentaires eng-disable. Par exemple, si vous voulez qu'une vérification spécifique ignore une ligne de code, vous pouvez la désactiver comme suit :

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 -->

Tout commentaire en ligne eng-disable (// eng-disable, /* eng-disable */, <!-- eng-disable -->) désactivera la vérification spécifiée uniquement pour cette ligne. Il est également possible de fournir plusieurs noms de vérifications en utilisant à la fois leurs ID en snake case (DANGEROUS_FUNCTIONS_JS_CHECK) ou leurs noms de constructeur (dangerousFunctionsJSCheck) :

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

Si vous placez une directive eng-disable avant tout code en haut d'un fichier .js ou .html, cela désactivera les vérifications passées pour le fichier entier.

Note sur les vérifications globales et les annotations eng-disable

Avant la v1.9.0, les vérifications globales ne pouvaient pas être désactivées à l'aide d'annotations de code. Si vous utilisez encore une ancienne version, utilisez l'argument CLI -x pour désactiver manuellement une liste de vérifications (ex: -x LimitNavigationJsCheck,PermissionRequestHandlerJsCheck,CSPGlobalCheck). Notez que l'utilisation d'annotations peut ne pas être applicable pour certaines vérifications de plus haut niveau telles que CSP_GLOBAL_CHECK ou AVAILABLE_SECURITY_FIXES_GLOBAL_CHECK. Dans ces cas, vous pouvez utiliser le drapeau -x pour exclure des vérifications spécifiques de votre analyse.

CI/CD

Electronegativity Action peut être exécutée dans le cadre de votre pipeline CI/CD GitHub pour obtenir des « alertes d'analyse de code » :

Code scanning alerts

Par programmation

Vous pouvez également utiliser electronegativity par programmation, en utilisant des options similaires à celles de la 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));

Le résultat contient le nombre de vérifications globales et atomiques, les erreurs rencontrées lors de l'analyse et un tableau des problèmes trouvés, comme ceci :

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'
    }
  ]
}

Contribuer

Si vous envisagez de contribuer à ce projet, veuillez consulter notre CONTRIBUTING.md.

Crédits

Electronegativity a été rendu possible grâce au travail de nombreux contributeurs.

Ce projet a été sponsorisé par Doyensec LLC.

Doyensec Research

Engagez-nous pour casser votre application Electron.js !

Télécharger l’outil