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
MalEval — Código oficial del artículo de ISSTA 2026: ¿Es suficiente "Saber que es malicioso"? Evaluación de los LLM para la auditoría de comportamiento de malware de grano fino | Kitploit
Herramientas/GitHubGitHub/zhengxr930/maleval
Seguridad AndroidAnálisis EstáticoAnálisis de CódigoAnálisis de MalwareAprendizaje AutomáticoPapers e InvestigaciónAprendizaje y EducaciónSeguridad de IA
GitHubzhengxr930/maleval

MalEval

Código oficial del artículo de ISSTA 2026: ¿Es suficiente "Saber que es malicioso"? Evaluación de los LLM para la auditoría de comportamiento de malware de grano fino

Ver Repositorio
5112hace 1 mesAún no revisado

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

MalEval

Artículo: ¿Es “saber que es malicioso” suficiente? Evaluación de LLMs para la auditoría detallada del comportamiento de malware

DOI del artículo: 10.1145/3832187

MalEval es un marco para evaluar informes de comportamiento de malware Android generados por grandes modelos de lenguaje. El código de este repositorio implementa dos rutas de ejecución:

  1. Desde APK: ejecutar análisis estático en archivos APK para generar puntos de entrada, cadenas de llamadas, cuerpos de funciones y funciones alcanzables.
  2. Desde artefacto: partir de las salidas de análisis estático precalculadas y generar resúmenes de funciones, representaciones intermedias con contexto, informes de comportamiento y métricas de evaluación.

El conjunto de datos publicado se aloja por separado en el repositorio de conjuntos de datos de MalEval en Hugging Face.

El benchmark contiene 255 aplicaciones Android: 200 muestras de malware archivadas, 30 muestras de malware recientes y 25 aplicaciones benignas utilizadas como falsos positivos simulados. Consulta DATA.md para ver los archivos publicados, la procedencia, los derechos y las notas de manipulación segura.

Estructura del Repositorio

root@kitploit:~
info/                Sample metadata for the benign, MalRadar, and new malware splits.
model_registry.yaml Model/provider configuration for LLM-based stages.
DATA.md              Dataset composition, provenance, and access instructions.
LICENSE.txt          License scope and third-party-material exclusions.
CITATION.cff         Machine-readable citation metadata.
src/                 Static analysis, summarization, behavior generation, and metrics code.

El conjunto de datos debe extraerse de modo que el repositorio tenga esta estructura:

root@kitploit:~
MalEval/
|-- info/
|-- src/
`-- artifacts/
    |-- apk/
    |-- call_chain/
    |-- entrypoints/
    |-- functions/
    |-- meta_info/
    |-- reachable_func/
    `-- reports/

Entorno

Usa Python 3.10 o superior. Recomendamos un entorno virtual nuevo:

root@kitploit:~
python3 -m venv .venv
source .venv/bin/activate
python3 -m pip install --upgrade pip
python3 -m pip install -r requirements.txt

Configura los proveedores de modelos en model_registry.yaml antes de ejecutar las etapas basadas en LLM. Cada entrada de modelo puede almacenar valores literales, como api_key y base_url, o referencias a variables de entorno, como api_key_env y base_url_env.

Ejemplo:

root@kitploit:~
models:
  gpt:
    provider: openai
    model: gpt-5
    api_key: <your_openai_key>
    base_url: https://api.openai.com/v1

El registro predeterminado incluye entradas para gpt, gpt-5, qwen, deepseek, llama, coder, claude y gemini. Si prefieres variables de entorno, define las variables referenciadas por model_registry.yaml, por ejemplo OPENAI_API_KEY, DEEPSEEK_API_KEY, QWEN3_API_KEY, HUGGINGFACE_API_KEY, ANTHROPIC_API_KEY, GEMINI_API_KEY, y .

Desde APK

Esta ruta comienza desde los archivos APK en artifacts/apk/<split>/ y regenera los artefactos de análisis estático. El split debe ser uno de malradar, new o benign.

Ejecutar un APK:

root@kitploit:~
sha=<apk_sha256>
python3 src/preparation/run_static_analysis.py \
  --folder malradar \
  --apk "$sha" \
  --output-root results/static_analysis

Ejecutar un pequeño lote muestreado:

root@kitploit:~
python3 src/preparation/run_static_analysis.py \
  --folder malradar \
  --sample-size 5 \
  --seed 42 \
  --output-root results/static_analysis

Los archivos generados se escriben en:

root@kitploit:~
results/static_analysis/entrypoints/
results/static_analysis/call_chain/
results/static_analysis/functions/
results/static_analysis/reachable_func/

Desde Artefacto

Esta ruta comienza desde el directorio artifacts/ publicado. Utiliza los archivos precalculados functions, call_chain, entrypoints, reachable_func y meta_info.

Resúmenes de Funciones

root@kitploit:~
model=gpt
split=malradar
sha=<apk_sha256>

python3 src/preparation/get_functionality_summary.py --model "$model" --folder "$split" --apk "$sha"

Omite --apk para ejecutar el split completo.

Resúmenes con Contexto y sin Contexto

root@kitploit:~
python3 src/preparation/get_context_summary.py --model "$model" --folder "$split" --apk "$sha"
python3 src/preparation/get_no_context_summary.py --model "$model" --folder "$split" --apk "$sha"

Informes de Comportamiento

root@kitploit:~
python3 src/generate_behavior/get_behavior.py --model "$model" --folder "$split" --flag context --apk "$sha"
python3 src/generate_behavior/get_behavior.py --model "$model" --folder "$split" --flag no_context --apk "$sha"
python3 src/generate_behavior/get_meta_behavior.py --model "$model" --folder "$split" --apk "$sha"

Las salidas se escriben en results/summary/, results/context_summary/, results/no_context_summary/, results/behavior/, results/no_context_behavior/ y results/meta_behavior/.

Métricas

Después de generar los resúmenes y los informes de comportamiento, calcula las métricas con:

root@kitploit:~
python3 src/metrics/run_metrics.py --model "$model" --flag context
python3 src/metrics/run_metrics.py --model "$model" --flag no_context
python3 src/metrics/run_metrics.py --model "$model" --flag meta

Para omitir las llamadas al modelo juez:

root@kitploit:~
python3 src/metrics/run_metrics.py --model "$model" --flag context --skip-eas

También hay scripts de métricas individuales disponibles:

root@kitploit:~
python3 src/metrics/aec_b_f1.py --model "$model" --flag context
python3 src/metrics/fpcr_tpmr_f1c.py --model "$model" --flag context
python3 src/metrics/eas.py --model "$model" --flag context --split malradar --judge-model gpt-5

Verificación Mínima

El árbol fuente se puede verificar sin descargar APKs ni configurar credenciales de modelos:

root@kitploit:~
python3 -m compileall -q src
python3 - <<'PY'
import json
from pathlib import Path

expected = {
    "archived_sample_info.json": 200,
    "latest_sample_info.json": 30,
    "benign_sample_info.json": 25,
}
for name, count in expected.items():
    actual = len(json.loads((Path("info") / name).read_text()))
    assert actual == count, (name, actual, count)
print("metadata check passed: 200 archived malware + 30 recent malware + 25 benign")
PY

Alcance de la Reproducibilidad

  • El cálculo de métricas sobre los informes publicados no requiere hardware local de inferencia de modelos.
  • Regenerar las salidas de los LLM requiere las credenciales API correspondientes o un endpoint autoalojado compatible.
  • El análisis estático y toda manipulación de APKs deben realizarse en un entorno de investigación aislado. No instales ni ejecutes las muestras publicadas en un dispositivo personal o de producción.
  • La reproducción numérica exacta puede verse afectada por cambios en los endpoints de los modelos alojados. Los informes publicados conservan las salidas utilizadas en el artículo.
Descargar herramienta
GEMINI_PROJECT
GEMINI_LOCATION