Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
electronegativity — Elettronegatività è uno strumento per identificare configurazioni errate e anti-pattern di sicurezza nelle applicazioni Electron. | Kitploit
Strumenti/GitHubGitHub/doyensec/electronegativity
Analisi StaticaAnalisi delle VulnerabilitàAnalisi del CodiceConfigurazione Errata
GitHubdoyensec/electronegativity

electronegativity

Elettronegatività è uno strumento per identificare configurazioni errate e anti-pattern di sicurezza nelle applicazioni Electron.

Vedi Repository
1.1k710 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Electronegativity

⚠️ Non manteniamo più attivamente questo progetto ⚠️

Cos'è Electronegativity?

Electronegativity è uno strumento per identificare configurazioni errate e anti-pattern di sicurezza nelle applicazioni basate su Electron.

Sfrutta il parsing AST e DOM per cercare configurazioni rilevanti per la sicurezza, come descritto nel whitepaper "Electron Security Checklist - A Guide for Developers and Auditors".

Sviluppatori di software e auditor di sicurezza possono utilizzare questo strumento per rilevare e mitigare potenziali debolezze e bug di implementazione nello sviluppo di applicazioni Electron. È comunque richiesta una buona comprensione della (in)sicurezza di Electron quando si utilizza Electronegativity, poiché alcuni dei potenziali problemi rilevati dallo strumento richiedono un'indagine manuale.

Se sei interessato alla sicurezza di Electron, dai un'occhiata alla nostra ricerca BlackHat 2017 Electronegativity - A Study of Electron Security e tieni d'occhio il blog di Doyensec.

Demo di Electronegativity

Versione Migliorata di ElectroNG

Se hai bisogno di qualcosa di più potente o aggiornato, uno strumento SAST migliorato basato su Electronegativity è disponibile come risultato di molti anni di R&S applicata da Doyensec. Alla fine del 2020, ci siamo seduti per creare una roadmap di progetto e abbiamo creato un team di sviluppo per lavorare su quello che oggi è ElectroNG. Puoi leggere alcuni dei principali miglioramenti rispetto alla versione OSS in un recente articolo del blog.

Installazione

Le versioni principali vengono pubblicate su NPM e possono essere semplicemente installate usando:

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

Utilizzo

CLI

root@kitploit:~
$ electronegativity -h

Utilizzo di electronegativity per cercare problemi in una directory contenente un'app Electron:

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

Utilizzo di electronegativity per cercare problemi in un archivio asar e salvare i risultati in un file csv:

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

Utilizzo di electronegativity durante l'aggiornamento da una versione di Electron a un'altra per trovare modifiche che interrompono la compatibilità:

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

Nota: se si verifica l'errore fatale "JavaScript heap out of memory", puoi eseguire node usando node --max-old-space-size=4096 electronegativity -i /path/to/asar/archive -o result.csv

Ignorare Righe o File

Electronegativity consente di disabilitare singoli controlli utilizzando commenti eng-disable. Ad esempio, se desideri che un controllo specifico ignori una riga di codice, puoi disabilitarlo come segue:

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

Qualsiasi commento inline eng-disable (// eng-disable, /* eng-disable */, <!-- eng-disable -->) disabiliterà il controllo specificato solo per quella riga. È anche possibile fornire più nomi di controllo usando sia i loro ID snake case (DANGEROUS_FUNCTIONS_JS_CHECK) che i loro nomi costruttore (dangerousFunctionsJSCheck):

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

Se inserisci una direttiva eng-disable prima di qualsiasi codice all'inizio di un file .js o .html, disabiliterà i controlli passati per l'intero file.

Nota sui Controlli Globali e le annotazioni eng-disable

Prima della v1.9.0, i controlli globali non potevano essere disabilitati usando annotazioni nel codice. Se stai ancora utilizzando una versione vecchia, usa l'argomento CLI -x per disabilitare manualmente una lista di controlli (ad es. -x LimitNavigationJsCheck,PermissionRequestHandlerJsCheck,CSPGlobalCheck). Nota che l'uso di annotazioni potrebbe non essere applicabile per alcuni controlli di alto livello come CSP_GLOBAL_CHECK o AVAILABLE_SECURITY_FIXES_GLOBAL_CHECK. In quei casi, potresti voler usare il flag -x per escludere controlli specifici dalla scansione.

CI/CD

Electronegativity Action può essere eseguito come parte della tua pipeline CI/CD di GitHub per ottenere "Avvisi di scansione del codice":

Avvisi di scansione del codice

A livello di programmazione

Puoi anche utilizzare electronegativity a livello di programmazione, usando opzioni simili a quelle della 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));

Il risultato contiene il numero di controlli globali e atomici, eventuali errori incontrati durante il parsing e un array dei problemi trovati, come questo:

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

Contribuire

Se stai pensando di contribuire a questo progetto, dai un'occhiata al nostro CONTRIBUTING.md.

Crediti

Electronegativity è stato reso possibile grazie al lavoro di molti contributori.

Questo progetto è stato sponsorizzato da Doyensec LLC.

Ricerca Doyensec

Affidati a noi per testare la sicurezza della tua applicazione Electron.js!

Scarica lo strumento
OpzioneDescrizione
-Vmostra il numero di versione
-i, --inputinput (directory, .js, .html, .asar)
-l, --checksesegue solo i controlli specificati, passati in formato csv
-x, --exclude-checks salta la lista di controlli specificata, passata in formato csv
-s, --severityrestituisce solo i risultati con il livello di gravità specificato o superiore
-c, --confidencerestituisce solo i risultati con il livello di confidenza specificato o superiore
-o, --output <filename[.csv or .sarif]>salva i risultati in un file in formato csv o sarif
-r, --relativemostra il percorso relativo per i file
-v, --verbose mostra la descrizione dei risultati, il valore predefinito è true
-u, --upgrade esegue controlli di aggiornamento di Electron, ad es. -u 7..8 per verificare l'aggiornamento da Electron 7 a 8
-e, --electron-version imposta la versione di Electron, sovrascrivendo quella rilevata, ad es. -e 7.0.0 per trattare come Electron 7
-p, --parser-plugins specifica plugin parser aggiuntivi da usare separati da virgole, ad es. -p optionalChaining
-h, --helpmostra le informazioni sull'uso