Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
electronegativity — Electronegativity هي أداة لتحديد التكوينات الخاطئة وأنماط الأمن المضادة في تطبيقات Electron. | Kitploit
أدوات/GitHubGitHub/doyensec/electronegativity
التحليل الثابتتحليل الثغرات الأمنيةتحليل الكودسوء التكوين
GitHubdoyensec/electronegativity

electronegativity

Electronegativity هي أداة لتحديد التكوينات الخاطئة وأنماط الأمن المضادة في تطبيقات Electron.

عرض المستودع
1.1k71منذ 0 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

Electronegativity

⚠️ لم نعد نحافظ على هذا المشروع بنشاط ⚠️

ما هو Electronegativity؟

Electronegativity هي أداة لتحديد التكوينات الخاطئة وأنماط الأمان السيئة في التطبيقات المبنية على Electron.

تستخدم تحليل AST و DOM للبحث عن التكوينات ذات الصلة بالأمان، كما هو موصوف في الورقة البيضاء "Electron Security Checklist - A Guide for Developers and Auditors".

يمكن لمطوري البرامج ومدققي الأمان استخدام هذه الأداة لاكتشاف وتخفيف نقاط الضعف المحتملة وأخطاء التنفيذ عند تطوير التطبيقات باستخدام Electron. لا يزال فهم جيد لأمان (وعدم أمان) Electron مطلوبًا عند استخدام Electronegativity، حيث تتطلب بعض المشكلات المحتملة التي تكتشفها الأداة تحقيقًا يدويًا.

إذا كنت مهتمًا بأمان Electron، فاطلع على بحثنا في BlackHat 2017 Electronegativity - A Study of Electron Security وتابع مدونة Doyensec.

Electronegativity Demo

نسخة ElectroNG المحسنة

إذا كنت بحاجة إلى شيء أكثر قوة أو محدثًا، فهناك أداة SAST محسنة مبنية على Electronegativity متاحة نتيجة لسنوات عديدة من البحث والتطوير التطبيقي من Doyensec. في نهاية عام 2020، جلسنا لوضع خريطة طريق للمشروع وأنشأنا فريق تطوير للعمل على ما يعرف الآن باسم ElectroNG. يمكنك قراءة المزيد عن بعض التحسينات الرئيسية على الإصدار مفتوح المصدر في منشور مدونة حديث.

التثبيت

يتم دفع الإصدارات الرئيسية إلى 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 -->) سيعطل الفحص المحدد لهذا السطر فقط. من الممكن أيضًا توفير أسماء فحوصات متعددة باستخدام معرفاتها بحالة snake case (DANGEROUS_FUNCTIONS_JS_CHECK) أو أسماء بنائها (dangerousFunctionsJSCheck):

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

إذا وضعت توجيه eng-disable قبل أي كود في أعلى ملف .js أو .html، فسيؤدي ذلك إلى تعطيل الفحوصات الممررة للملف بالكامل.

ملاحظة حول الفحوصات الشاملة وتعليقات eng-disable

قبل الإصدار 1.9.0، لم يكن من الممكن تعطيل الفحوصات الشاملة باستخدام تعليقات الكود. إذا كنت لا تزال تستخدم إصدارًا قديمًا، فاستخدم وسيط سطر الأوامر -x لتعطيل قائمة من الفحوصات يدويًا (مثال -x LimitNavigationJsCheck,PermissionRequestHandlerJsCheck,CSPGlobalCheck). لاحظ أن استخدام التعليقات قد لا يكون مناسبًا لبعض الفحوصات عالية المستوى مثل CSP_GLOBAL_CHECK أو AVAILABLE_SECURITY_FIXES_GLOBAL_CHECK. في هذه الحالات، قد ترغب في استخدام العلم -x لاستبعاد فحوصات معينة من المسح الخاص بك.

CI/CD

Electronegativity Action يمكن تشغيله كجزء من خط أنابيب CI/CD في GitHub للحصول على "تنبيهات فحص الكود" (Code scanning alerts):

Code scanning alerts

برمجيًا

يمكنك أيضًا استخدام electronegativity برمجيًا، باستخدام خيارات مشابهة لواجهة سطر الأوامر:

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 الخاص بك!

تنزيل الأداة
Optionالوصف
-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 إظهار الوصف للنتائج، القيمة الافتراضية صحيح
-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إخراج معلومات الاستخدام