Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
Tools/GitHubGitHub/doyensec/electronegativity
Statische AnalyseSchwachstellenanalyseCode-AnalyseFehlkonfiguration
GitHubdoyensec/electronegativity

electronegativity

Electronegativity ist ein Tool zur Identifizierung von Fehlkonfigurationen und Sicherheits-Anti-Patterns in Electron-Anwendungen.

Repository anzeigen
1.1k71vor 0 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Electronegativity

⚠️ Wir pflegen dieses Projekt nicht mehr aktiv ⚠️

Was ist Electronegativity?

Electronegativity ist ein Werkzeug, um Fehlkonfigurationen und Sicherheits-Anti-Patterns in Electron-basierten Anwendungen zu identifizieren.

Es nutzt AST- und DOM-Parsing, um sicherheitsrelevante Konfigurationen zu finden, wie im Whitepaper "Electron Security Checklist - A Guide for Developers and Auditors" beschrieben.

Softwareentwickler und Sicherheitsauditoren können dieses Werkzeug nutzen, um potenzielle Schwachstellen und Implementierungsfehler bei der Entwicklung von Electron-Anwendungen zu erkennen und zu beheben. Ein gutes Verständnis von Electron-(Un-)Sicherheit ist dennoch erforderlich, da einige der vom Tool erkannten potenziellen Probleme manuell untersucht werden müssen.

Wenn Sie sich für Electron-Sicherheit interessieren, werfen Sie einen Blick auf unsere BlackHat 2017-Forschung Electronegativity - A Study of Electron Security und behalten Sie den Doyensec-Blog im Auge.

Electronegativity-Demo

Verbesserte Version ElectroNG

Wenn Sie etwas Leistungsfähigeres oder Aktuelleres benötigen, ist ein verbessertes SAST-Tool basierend auf Electronegativity als Ergebnis langjähriger angewandter Forschung und Entwicklung von Doyensec verfügbar. Ende 2020 setzten wir uns zusammen, um eine Projekt-Roadmap zu erstellen, und gründeten ein Entwicklungsteam, um an dem zu arbeiten, was heute ElectroNG ist. Sie können mehr über einige der wichtigsten Verbesserungen gegenüber der OSS-Version in einem aktuellen Blogbeitrag lesen.

Installation

Hauptversionen werden auf NPM veröffentlicht und können einfach mit folgendem Befehl installiert werden:

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

Verwendung

CLI

root@kitploit:~
$ electronegativity -h

Verwendung von electronegativity, um Probleme in einem Verzeichnis mit einer Electron-App zu suchen:

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

Verwendung von electronegativity, um Probleme in einem asar-Archiv zu suchen und die Ergebnisse in einer CSV-Datei zu speichern:

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

Verwendung von electronegativity beim Upgrade von einer Electron-Version auf eine andere, um Breaking Changes zu finden:

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

Hinweis: Wenn Sie auf den fatalen Fehler "JavaScript heap out of memory" stoßen, können Sie node mit node --max-old-space-size=4096 electronegativity -i /path/to/asar/archive -o result.csv ausführen.

Ignorieren von Zeilen oder Dateien

Electronegativity ermöglicht es, einzelne Prüfungen mit eng-disable-Kommentaren zu deaktivieren. Wenn Sie beispielsweise möchten, dass eine bestimmte Prüfung eine Codezeile ignoriert, können Sie sie wie folgt deaktivieren:

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

Jeder eng-disable-Inline-Kommentar (// eng-disable, /* eng-disable */, <!-- eng-disable -->) deaktiviert die angegebene Prüfung nur für diese Zeile. Es ist auch möglich, mehrere Prüfungsnamen sowohl mit ihren Snake-Case-IDs (DANGEROUS_FUNCTIONS_JS_CHECK) als auch mit ihren Konstruktnamen (dangerousFunctionsJSCheck) anzugeben:

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

Wenn Sie eine eng-disable-Direktive vor jeglichem Code am Anfang einer .js- oder .html-Datei platzieren, werden die übergebenen Prüfungen für die gesamte Datei deaktiviert.

Hinweis zu Global Checks und eng-disable-Annotationen

Vor Version 1.9.0 konnten Global Checks nicht mit Code-Annotationen deaktiviert werden. Wenn Sie noch eine alte Version verwenden, nutzen Sie stattdessen das -x CLI-Argument, um manuell eine Liste von Prüfungen zu deaktivieren (z.B. -x LimitNavigationJsCheck,PermissionRequestHandlerJsCheck,CSPGlobalCheck). Beachten Sie, dass die Verwendung von Annotationen für einige übergeordnete Prüfungen wie CSP_GLOBAL_CHECK oder AVAILABLE_SECURITY_FIXES_GLOBAL_CHECK möglicherweise nicht anwendbar ist. In diesen Fällen sollten Sie das -x-Flag verwenden, um bestimmte Prüfungen von Ihrem Scan auszuschließen.

CI/CD

Electronegativity Action kann als Teil Ihrer GitHub CI/CD-Pipeline ausgeführt werden, um "Code scanning alerts" zu erhalten:

Code scanning alerts

Programmatisch

Sie können electronegativity auch programmatisch verwenden, mit ähnlichen Optionen wie für das 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));

Das Ergebnis enthält die Anzahl der globalen und atomaren Prüfungen, etwaige Fehler beim Parsen und ein Array der gefundenen Probleme, wie folgt:

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

Mitwirken

Wenn Sie darüber nachdenken, zu diesem Projekt beizutragen, werfen Sie bitte einen Blick auf unsere CONTRIBUTING.md.

Credits

Electronegativity wurde durch die Arbeit vieler Mitwirkender ermöglicht.

Dieses Projekt wurde von Doyensec LLC gesponsert.

Doyensec Research

Beauftragen Sie uns, Ihre Electron.js-Anwendung zu testen!

Tool herunterladen
OptionBeschreibung
-Vgibt die Versionsnummer aus
-i, --inputEingabe (Verzeichnis, .js, .html, .asar)
-l, --checksführt nur die angegebenen Prüfungen aus, als CSV-Format übergeben
-x, --exclude-checks überspringt die angegebene Liste von Prüfungen, als CSV-Format übergeben
-s, --severitygibt nur Ergebnisse mit dem angegebenen Schweregrad oder höher zurück
-c, --confidencegibt nur Ergebnisse mit dem angegebenen Konfidenzniveau oder höher zurück
-o, --output <filename[.csv or .sarif]>speichert die Ergebnisse in einer Datei im CSV- oder SARIF-Format
-r, --relativezeigt relativen Pfad für Dateien an
-v, --verbose zeigt die Beschreibung der Ergebnisse an, standardmäßig true
-u, --upgrade führt Upgrade-Prüfungen für Electron durch, z.B. -u 7..8 für Upgrade von Electron 7 auf 8
-e, --electron-version legt die Electron-Version fest und überschreibt die erkannte Version, z.B. -e 7.0.0 für Electron 7
-p, --parser-plugins gibt zusätzliche Parser-Plugins an, getrennt durch Kommas, z.B. -p optionalChaining
-h, --helpzeigt Nutzungsinformationen an