Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
electronegativity — Electronegativityは、Electronアプリケーションにおける設定ミスやセキュリティ上のアンチパターンを特定するためのツールです。 | Kitploit
ツール/GitHubGitHub/doyensec/electronegativity
静的分析脆弱性分析コード分析設定ミス
GitHubdoyensec/electronegativity

electronegativity

Electronegativityは、Electronアプリケーションにおける設定ミスやセキュリティ上のアンチパターンを特定するためのツールです。

リポジトリを見る
1.1k710年前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

Electronegativity

⚠️ このプロジェクトはもはや積極的にメンテナンスされていません ⚠️

Electronegativityとは?

Electronegativityは、Electronベースのアプリケーションにおける設定ミスやセキュリティアンチパターンを特定するためのツールです。

このツールは、ASTおよびDOM解析を活用してセキュリティ関連の設定をチェックします。これは、ホワイトペーパー「Electron Security Checklist - A Guide for Developers and Auditors」で説明されています。

ソフトウェア開発者やセキュリティ監査者は、このツールを使用して、Electronを使ったアプリケーション開発における潜在的な脆弱性や実装バグを検出し、軽減することができます。Electronegativityを使用する際には、Electronのセキュリティ(および非セキュリティ)に関する十分な理解が依然として必要です。このツールが検出する潜在的な問題の一部は手動による調査が必要だからです。

Electronのセキュリティに興味がある場合は、BlackHat 2017の研究「Electronegativity - A Study of Electron Security」をご覧いただき、Doyensecのブログにもご注目ください。

Electronegativityのデモ

ElectroNG 改良版

より強力または最新のものが必要な場合は、Doyensec による長年の応用研究開発の成果として、Electronegativityをベースに改良されたSASTツールが利用可能です。2020年末に、私たちはプロジェクトのロードマップを作成し、現在 ElectroNG として知られるものに取り組む開発チームを立ち上げました。OSSバージョンからの主な改善点の一部については、最近のブログ記事で読むことができます。

インストール

メジャーリリースはNPMにプッシュされており、以下のように簡単にインストールできます。

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

使い方

CLI

root@kitploit:~
$ electronegativity -h

Electronegativityを使用してElectronアプリを含むディレクトリの問題を検索する:

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

Electronegativityを使用してasarアーカイブの問題を検索し、結果をcsvファイルに保存する:

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

Electronegativityを使用して、Electronのバージョンアップグレード時の破壊的変更を見つける:

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

注: 「JavaScript heap out of memory」という致命的なエラーが発生した場合は、次のようにnodeを実行してください: node --max-old-space-size=4096 electronegativity -i /path/to/asar/archive -o result.csv

行またはファイルの無視

Electronegativityでは、eng-disableコメントを使用して個別のチェックを無効にできます。例えば、特定のチェックでコード行を無視したい場合は、次のように無効にできます:

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

eng-disableインラインコメント(// eng-disable、/* eng-disable */、<!-- eng-disable -->)は、その行のみ指定されたチェックを無効にします。また、スネークケースID(DANGEROUS_FUNCTIONS_JS_CHECK)またはコンストラクト名(dangerousFunctionsJSCheck)の両方を使用して複数のチェック名を指定することもできます:

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

.jsまたは.htmlファイルの先頭にあるコードの前にeng-disableディレクティブを配置すると、そのファイル全体で指定されたチェックが無効になります。

グローバルチェックとeng-disableアノテーションに関する注意

v1.9.0より前では、コードアノテーションを使用してグローバルチェックを無効にできませんでした。古いバージョンをまだ使用している場合は、代わりに-x CLI引数を使用してチェックのリストを手動で無効にしてください(例:-x LimitNavigationJsCheck,PermissionRequestHandlerJsCheck,CSPGlobalCheck)。 アノテーションの使用は、CSP_GLOBAL_CHECKやAVAILABLE_SECURITY_FIXES_GLOBAL_CHECKなどの一部の高レベルチェックには適用できない場合があることに注意してください。そのような場合は、-xフラグを使用してスキャンから特定のチェックを除外するとよいでしょう。

CI/CD

Electronegativity Action は、GitHub CI/CDパイプラインの一部として実行され、「コードスキャンアラート」を取得できます:

コードスキャンアラート

プログラムによる使用

Electronegativityをプログラムで使用することもできます。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));

結果には、グローバルチェックとアトミックチェックの数、解析中に発生したエラー、および見つかった問題の配列が含まれます。例えば次のようになります:

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

コントリビューション

このプロジェクトに貢献したいと考えている場合は、CONTRIBUTING.mdをご覧ください。

クレジット

Electronegativityは、多くのコントリビューターの作業のおかげで実現しました。

このプロジェクトはDoyensec LLCによってスポンサーされています。

Doyensec Research

ぜひ私たちにあなたのElectron.jsアプリケーションの脆弱性診断をご依頼ください!

ツールをダウンロード
OptionDescription
-Vバージョン番号を出力
-i, --input入力(ディレクトリ、.js、.html、.asar)
-l, --checks指定されたチェックのみ実行、CSV形式で指定
-x, --exclude-checks 指定されたチェックリストをスキップ、CSV形式で指定
-s, --severity指定された深刻度レベル以上の結果のみを返す
-c, --confidence指定された信頼度レベル以上の結果のみを返す
-o, --output <filename[.csv or .sarif]>結果をcsvまたはsarif形式でファイルに保存
-r, --relativeファイルの相対パスを表示
-v, --verbose 検出結果の説明を表示、デフォルトはtrue
-u, --upgrade Electronアップグレードチェックを実行、例:-u 7..8でElectron 7から8へのアップグレードをチェック
-e, --electron-version 設定されたElectronバージョンを仮定し、検出されたものを上書き、例:-e 7.0.0でElectron 7を使用していると扱う
-p, --parser-plugins 使用する追加のパーサープラグインをカンマ区切りで指定、例:-p optionalChaining
-h, --help使用法情報を出力