Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
electronegativity — Electronegativity는 Electron 애플리케이션에서 잘못된 설정과 보안 안티패턴을 식별하는 도구입니다. | Kitploit
도구/GitHubGitHub/doyensec/electronegativity
Static AnalysisVulnerability AnalysisCode AnalysisMisconfiguration
GitHubdoyensec/electronegativity

electronegativity

Electronegativity는 Electron 애플리케이션에서 잘못된 설정과 보안 안티패턴을 식별하는 도구입니다.

저장소 보기
1.1k710년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

일렉트로네거티비티(Electronegativity)

⚠️ 이 프로젝트는 더 이상 적극적으로 유지 관리되지 않습니다 ⚠️

일렉트로네거티비티란?

일렉트로네거티비티는 Electron 기반 애플리케이션에서 잘못된 설정과 보안 안티패턴을 식별하는 도구입니다.

이 도구는 "Electron Security Checklist - A Guide for Developers and Auditors" 백서에 설명된 대로 AST 및 DOM 파싱을 활용하여 보안 관련 구성을 찾아냅니다.

소프트웨어 개발자와 보안 감사자는 이 도구를 사용하여 Electron을 사용하는 애플리케이션을 개발할 때 잠재적인 약점과 구현 버그를 탐지하고 완화할 수 있습니다. 일렉트로네거티비티를 사용할 때는 Electron (비)보안에 대한 충분한 이해가 여전히 필요하며, 도구가 탐지하는 일부 잠재적 문제는 수동 조사가 필요합니다.

Electron 보안에 관심이 있다면, BlackHat 2017 연구 자료인 Electronegativity - A Study of Electron Security를 확인하고 Doyensec의 블로그를 주시하세요.

Electronegativity 데모

ElectroNG 개선 버전

더 강력하거나 업데이트된 기능이 필요하다면, Doyensec의 수년간의 응용 연구개발 결과로 일렉트로네거티비티를 기반으로 한 개선된 SAST 도구가 제공됩니다. 2020년 말, 우리는 프로젝트 로드맵을 만들고 현재 ElectroNG가 된 제품을 개발할 팀을 구성했습니다. 최근 블로그 게시글에서 OSS 버전에 비해 주요 개선 사항을 더 자세히 읽을 수 있습니다.

설치

주요 릴리스는 NPM에 푸시되며 다음과 같이 간단히 설치할 수 있습니다.

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

사용법

CLI

root@kitploit:~
$ electronegativity -h

Electron 앱이 포함된 디렉토리에서 문제를 찾기 위해 일렉트로네거티비티 사용:

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

asar 아카이브에서 문제를 찾고 결과를 csv 파일로 저장:

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

Electron 버전 간 업그레이드 시 호환성 문제를 찾기 위해 일렉트로네거티비티 사용:

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

참고: "JavaScript heap out of memory" 오류가 발생하면, node --max-old-space-size=4096 electronegativity -i /path/to/asar/archive -o result.csv를 사용하여 node를 실행할 수 있습니다.

라인 또는 파일 무시하기

일렉트로네거티비티는 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

일렉트로네거티비티 액션은 GitHub CI/CD 파이프라인의 일부로 실행되어 "코드 스캐닝 알림"을 제공할 수 있습니다.

코드 스캐닝 알림

프로그래밍 방식

CLI와 유사한 옵션을 사용하여 일렉트로네거티비티를 프로그래밍 방식으로 사용할 수도 있습니다.

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

run({
  // 입력 (디렉토리, .js, .html, .asar)
  input: '/path/to/electron/app',
  // 결과를 csv 또는 sarif 형식의 파일로 저장 (선택 사항)
  output: '/path/for/output/file',
  // 출력을 sarif로 저장하려면 true, csv로 저장하려면 false (선택 사항)
  isSarif: false,
  // 지정된 검사만 실행 (선택 사항)
  customScan: ['dangerousfunctionsjscheck', 'remotemodulejscheck'],
  // 지정된 심각도 수준 이상의 결과만 반환 (선택 사항)
  severitySet: 'high',
  // 지정된 신뢰도 수준 이상의 결과만 반환 (선택 사항)
  confidenceSet: 'certain',
  // 파일의 상대 경로 표시 (선택 사항)
  isRelative: false,
  // Electron 업그레이드 검사 실행, 예: -u 7..8 (Electron 7에서 8로 업그레이드 확인) (선택 사항)
  electronUpgrade: '7..8',
  // 감지된 버전을 재정의하여 설정된 Electron 버전 가정
  electronVersion: '5.0.0',
  // 추가 파서 플러그인 사용
  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: '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: 'contextIsolation 옵션 사용 검토',
      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를 확인해 주세요.

크레딧

일렉트로네거티비티는 많은 기여자의 작업 덕분에 가능했습니다.

이 프로젝트는 Doyensec LLC의 후원을 받았습니다.

Doyensec Research

귀하의 Electron.js 애플리케이션을 테스트해 드립니다!

도구 다운로드
옵션설명
-V버전 번호 출력
-i, --input입력 (디렉토리, .js, .html, .asar)
-l, --checks지정된 검사만 실행, csv 형식으로 전달
-x, --exclude-checks <제외할검사이름>지정된 검사 목록 건너뛰기, csv 형식으로 전달
-s, --severity지정된 심각도 수준 이상의 결과만 반환
-c, --confidence지정된 신뢰도 수준 이상의 결과만 반환
-o, --output <파일이름[.csv 또는 .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사용 정보 출력