Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
electronegativity — Electronegativity es una herramienta para identificar configuraciones incorrectas y antipatrones de seguridad en aplicaciones Electron. | Kitploit
Herramientas/GitHubGitHub/doyensec/electronegativity
Análisis EstáticoAnálisis de VulnerabilidadesAnálisis de CódigoMala Configuración
GitHubdoyensec/electronegativity

electronegativity

Electronegativity es una herramienta para identificar configuraciones incorrectas y antipatrones de seguridad en aplicaciones Electron.

Ver Repositorio
1.1k714hace 1 añoRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Electronegativity

⚠️ Ya no mantenemos activamente este proyecto ⚠️

¿Qué es Electronegativity?

Electronegativity es una herramienta para identificar configuraciones incorrectas y anti-patrones de seguridad en aplicaciones basadas en Electron.

Aprovecha el análisis de AST y DOM para buscar configuraciones relevantes para la seguridad, como se describe en el documento técnico "Electron Security Checklist - A Guide for Developers and Auditors".

Los desarrolladores de software y auditores de seguridad pueden usar esta herramienta para detectar y mitigar posibles debilidades y errores de implementación al desarrollar aplicaciones con Electron. Aún se requiere un buen entendimiento de la (in)seguridad de Electron al usar Electronegativity, ya que algunos de los posibles problemas detectados por la herramienta requieren investigación manual.

Si estás interesado en la Seguridad de Electron, echa un vistazo a nuestra investigación de BlackHat 2017 Electronegativity - A Study of Electron Security y mantente al tanto del blog de Doyensec.

Demostración de Electronegativity

Versión Mejorada de ElectroNG

Si necesitas algo más potente o actualizado, una herramienta SAST mejorada basada en Electronegativity está disponible como resultado de muchos años de I+D aplicada de Doyensec. A finales de 2020, nos sentamos a crear una hoja de ruta del proyecto y formamos un equipo de desarrollo para trabajar en lo que ahora es ElectroNG. Puedes leer más sobre algunas de las principales mejoras respecto a la versión OSS en una entrada de blog reciente.

Instalación

Las versiones principales se publican en NPM y se pueden instalar fácilmente usando:

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

Uso

CLI

root@kitploit:~
$ electronegativity -h
OpciónDescripción
-Vmuestra el número de versión
-i, --inputentrada (directorio, .js, .html, .asar)
-l, --checkssolo ejecuta las comprobaciones especificadas, pasadas en formato csv
-x, --exclude-checks omite la lista de comprobaciones especificadas, pasadas en formato csv
-s, --severitysolo devuelve hallazgos con el nivel de severidad especificado o superior
-c, --confidencesolo devuelve hallazgos con el nivel de confianza especificado o superior
-o, --output <filename[.csv or .sarif]>guarda los resultados en un archivo en formato csv o sarif
-r, --relativemuestra la ruta relativa para los archivos
-v, --verbose muestra la descripción de los hallazgos, por defecto true
-u, --upgrade ejecuta comprobaciones de actualización de Electron, ej. -u 7..8 para comprobar la actualización de Electron 7 a 8
-e, --electron-version asume la versión de Electron establecida, anulando la detectada, ej. -e 7.0.0 para tratar como si se usara Electron 7
-p, --parser-plugins especifica complementos de analizador adicionales separados por comas, ej. -p optionalChaining
-h, --helpmuestra información de uso

Usando electronegativity para buscar problemas en un directorio que contiene una aplicación Electron:

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

Usando electronegativity para buscar problemas en un archivo asar y guardando los resultados en un archivo csv:

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

Usando electronegativity al actualizar de una versión de Electron a otra para encontrar cambios importantes:

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

Nota: si te encuentras con el Error Grave "JavaScript heap out of memory", puedes ejecutar node usando node --max-old-space-size=4096 electronegativity -i /path/to/asar/archive -o result.csv

Ignorar Líneas o Archivos

Electronegativity permite deshabilitar comprobaciones individuales usando comentarios eng-disable. Por ejemplo, si deseas que una comprobación específica ignore una línea de código, puedes deshabilitarla de la siguiente manera:

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

Cualquier comentario en línea eng-disable (// eng-disable, /* eng-disable */, <!-- eng-disable -->) deshabilitará la comprobación especificada solo para esa línea. También es posible proporcionar múltiples nombres de comprobación usando tanto sus IDs en snake case (DANGEROUS_FUNCTIONS_JS_CHECK) como sus nombres de constructor (dangerousFunctionsJSCheck):

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

Si colocas una directiva eng-disable antes de cualquier código en la parte superior de un archivo .js o .html, esto deshabilitará las comprobaciones pasadas para el archivo completo.

Nota sobre Comprobaciones Globales y anotaciones eng-disable

Antes de v1.9.0, las comprobaciones globales no se podían deshabilitar mediante anotaciones de código. Si todavía estás usando una versión antigua, usa el argumento de CLI -x para deshabilitar manualmente una lista de comprobaciones (ej. -x LimitNavigationJsCheck,PermissionRequestHandlerJsCheck,CSPGlobalCheck). Ten en cuenta que el uso de anotaciones puede no ser aplicable para algunas comprobaciones de nivel superior como CSP_GLOBAL_CHECK o AVAILABLE_SECURITY_FIXES_GLOBAL_CHECK. Para esos casos, es posible que quieras usar la bandera -x para excluir comprobaciones específicas de tu escaneo.

CI/CD

Electronegativity Action puede ejecutarse como parte de tu pipeline de CI/CD de GitHub para obtener "Alertas de escaneo de código":

Alertas de escaneo de código

Programáticamente

También puedes usar electronegativity programáticamente, con opciones similares a las de la 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));

El resultado contiene el número de comprobaciones globales y atómicas, cualquier error encontrado durante el análisis y un array de los problemas encontrados, como esto:

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

Contribuir

Si estás pensando en contribuir a este proyecto, por favor echa un vistazo a nuestro CONTRIBUTING.md.

Créditos

Electronegativity fue posible gracias al trabajo de muchos contribuidores.

Este proyecto ha sido patrocinado por Doyensec LLC.

Doyensec Research

¡Contrátenos para auditar su aplicación Electron.js!

Descargar herramienta