secure-scan 1.2.3 → 1.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +85 -317
- package/aur/.SRCINFO +11 -0
- package/aur/PKGBUILD +28 -0
- package/debian/changelog +10 -0
- package/debian/compat +1 -0
- package/debian/control +16 -0
- package/debian/rules +17 -0
- package/dist/cli/index.js +109 -9
- package/dist/cli/index.js.map +1 -1
- package/docs/V1.2.1-IA_Performances.md +2 -2
- package/package.json +2 -2
- package/secure-scan.config.json +2 -16
- package/src/cli/index.ts +117 -9
- package/dist/core/engine/index.d.ts +0 -5
- package/dist/core/engine/index.d.ts.map +0 -1
- package/dist/core/engine/index.js +0 -21
- package/dist/core/engine/index.js.map +0 -1
- package/dist/core/engine/ruleEngine.d.ts +0 -46
- package/dist/core/engine/ruleEngine.d.ts.map +0 -1
- package/dist/core/engine/ruleEngine.js +0 -173
- package/dist/core/engine/ruleEngine.js.map +0 -1
- package/dist/core/index.d.ts +0 -8
- package/dist/core/index.d.ts.map +0 -1
- package/dist/core/index.js +0 -24
- package/dist/core/index.js.map +0 -1
- package/dist/core/scanner/fileScanner.d.ts +0 -31
- package/dist/core/scanner/fileScanner.d.ts.map +0 -1
- package/dist/core/scanner/fileScanner.js +0 -199
- package/dist/core/scanner/fileScanner.js.map +0 -1
- package/dist/core/scanner/index.d.ts +0 -5
- package/dist/core/scanner/index.d.ts.map +0 -1
- package/dist/core/scanner/index.js +0 -21
- package/dist/core/scanner/index.js.map +0 -1
- package/dist/core/scoring/index.d.ts +0 -5
- package/dist/core/scoring/index.d.ts.map +0 -1
- package/dist/core/scoring/index.js +0 -21
- package/dist/core/scoring/index.js.map +0 -1
- package/dist/core/scoring/riskScoring.d.ts +0 -49
- package/dist/core/scoring/riskScoring.d.ts.map +0 -1
- package/dist/core/scoring/riskScoring.js +0 -180
- package/dist/core/scoring/riskScoring.js.map +0 -1
- package/dist/core/securityScanner.d.ts +0 -47
- package/dist/core/securityScanner.d.ts.map +0 -1
- package/dist/core/securityScanner.js +0 -298
- package/dist/core/securityScanner.js.map +0 -1
- package/reporte-test.html +0 -5036
- package/src/analyzers/javascript/PROMPT_JS_ANALYZER.md +0 -267
- package/src/rules/malware/INFO.md +0 -287
package/README.md
CHANGED
|
@@ -1,325 +1,153 @@
|
|
|
1
|
-
# 🔐 Secure-Scan
|
|
1
|
+
# 🔐 Secure-Scan
|
|
2
2
|
|
|
3
3
|
[](https://opensource.org/licenses/MIT)
|
|
4
4
|
[](https://nodejs.org)
|
|
5
5
|
[](#-idiomas)
|
|
6
6
|
|
|
7
|
-
**Secure-Scan** es una herramienta
|
|
7
|
+
**Secure-Scan** es una herramienta de **Análisis Estático de Seguridad de Aplicaciones (SAST)** diseñada para detectar vulnerabilidades y código malicioso en repositorios de código sin ejecutarlos.
|
|
8
8
|
|
|
9
9
|
## 🎯 Características Principales
|
|
10
10
|
|
|
11
|
-
### 🔍 Análisis de Código Fuente
|
|
12
11
|
- ✅ **Análisis Estático Puro** - Sin ejecución, compilación ni interpretación de código
|
|
13
|
-
- 🔍 **Detección de Vulnerabilidades** - SQL Injection, XSS, CSRF, Command Injection,
|
|
14
|
-
- 🦠 **Detección de Malware** - Backdoors, keyloggers, cryptominers,
|
|
15
|
-
- 🌐 **Multi-lenguaje** - JavaScript, Python, PHP, Java, C/C++, C
|
|
16
|
-
|
|
17
|
-
### 📦 Análisis de Composición de Software (SCA)
|
|
18
|
-
- 📋 **Análisis de Manifiestos** - package.json, requirements.txt, composer.json, pom.xml, etc.
|
|
19
|
-
- 🔓 **Detección de CVEs** - Vulnerabilidades conocidas en dependencias
|
|
20
|
-
- ⚠️ **Typosquatting** - Detecta paquetes maliciosos con nombres similares
|
|
21
|
-
- 🔐 **Análisis de Lock Files** - package-lock.json, yarn.lock, composer.lock, Pipfile.lock
|
|
22
|
-
|
|
23
|
-
### 🔬 Escaneo de Dependencias Instaladas (NUEVO)
|
|
24
|
-
- 📂 **Escaneo de node_modules** - Análisis profundo de paquetes npm/yarn instalados
|
|
25
|
-
- 🐍 **Escaneo de venv/site-packages** - Paquetes Python instalados
|
|
26
|
-
- 🐘 **Escaneo de vendor** - Dependencias PHP Composer
|
|
27
|
-
- 🦠 **Detección de Malware en Dependencias**:
|
|
28
|
-
- 🚪 Backdoors (reverse shells, conexiones C2, robo de SSH keys)
|
|
29
|
-
- ⛏️ Cryptominers (minería de criptomonedas oculta)
|
|
30
|
-
- 🔓 Data Stealers (robo de credenciales, variables de entorno, tokens)
|
|
31
|
-
- 📥 Malicious Loaders (descarga de payloads remotos)
|
|
32
|
-
- 🔐 Código Ofuscado (base64 eval, hex encoding, anti-análisis)
|
|
33
|
-
- 📤 Exfiltración de Datos (DNS tunneling, HTTP POST de datos)
|
|
34
|
-
- 🛡️ Técnicas Anti-Análisis (detección de debuggers, sandbox evasion)
|
|
35
|
-
- ✅ **Verificación de Integridad** - Compara versiones instaladas vs lock files
|
|
36
|
-
- ⚡ **Análisis de Post-Install Scripts** - Detecta scripts maliciosos en hooks
|
|
37
|
-
|
|
38
|
-
### 📊 Reportes y Estándares
|
|
12
|
+
- 🔍 **Detección de Vulnerabilidades** - SQL Injection, XSS, CSRF, Command Injection, etc.
|
|
13
|
+
- 🦠 **Detección de Malware** - Backdoors, keyloggers, cryptominers, payloads ocultos
|
|
14
|
+
- 🌐 **Multi-lenguaje** - JavaScript, Python, PHP, Java, C/C++, C#
|
|
39
15
|
- 📊 **Reportes HTML Profesionales** - Estilo auditoría de seguridad
|
|
40
|
-
- 🤖 **IA Integrada** - Análisis inteligente
|
|
16
|
+
- 🤖 **IA Integrada** - Análisis inteligente de patrones complejos
|
|
41
17
|
- 📋 **Mapeo a Estándares** - OWASP Top 10, CWE, MITRE ATT&CK, SANS Top 25
|
|
42
18
|
- 🌍 **Multiidioma** - Reportes en español (por defecto) o inglés
|
|
43
|
-
- 📈 **Puntuación de Riesgo** - Score 0-100 basado en severidad y cantidad de hallazgos
|
|
44
19
|
|
|
45
|
-
## 🏗️ Arquitectura
|
|
46
|
-
|
|
47
|
-
```
|
|
48
|
-
secure-scan/
|
|
49
|
-
├── src/
|
|
50
|
-
│ ├── cli/ # Interfaz de línea de comandos
|
|
51
|
-
│ ├── core/ # Núcleo del sistema
|
|
52
|
-
│ │ ├── scanner/ # Escáner de archivos
|
|
53
|
-
│ │ ├── engine/ # Motor de reglas
|
|
54
|
-
│ │ └── scoring/ # Motor de puntuación de riesgo
|
|
55
|
-
│ ├── analyzers/ # Analizadores por lenguaje (plugins)
|
|
56
|
-
│ │ ├── javascript/
|
|
57
|
-
│ │ ├── python/
|
|
58
|
-
│ │ ├── php/
|
|
59
|
-
│ │ ├── java/
|
|
60
|
-
│ │ ├── c-cpp/
|
|
61
|
-
│ │ ├── csharp/
|
|
62
|
-
│ │ └── iac/ # Infraestructura como Código
|
|
63
|
-
│ ├── dependencies/ # Análisis de Dependencias (SCA)
|
|
64
|
-
│ │ ├── parsers/ # Parsers por ecosistema (npm, pip, composer, etc.)
|
|
65
|
-
│ │ ├── detectors/ # Detectores de vulnerabilidades
|
|
66
|
-
│ │ ├── database/ # Base de datos CVE y paquetes maliciosos
|
|
67
|
-
│ │ └── installed/ # Escáner de dependencias instaladas (malware)
|
|
68
|
-
│ ├── rules/ # Reglas de detección
|
|
69
|
-
│ │ ├── vulnerabilities/
|
|
70
|
-
│ │ └── malware/
|
|
71
|
-
│ ├── ai/ # Motor de IA
|
|
72
|
-
│ ├── reports/ # Generador de reportes
|
|
73
|
-
│ ├── i18n/ # Traducciones (español/inglés)
|
|
74
|
-
│ ├── types/ # Definiciones TypeScript
|
|
75
|
-
│ └── utils/ # Utilidades
|
|
76
|
-
├── test-samples/ # Archivos de prueba
|
|
77
|
-
└── docs/ # Documentación
|
|
78
|
-
```
|
|
79
20
|
|
|
80
21
|
## 🚀 Instalación
|
|
81
22
|
|
|
82
23
|
### Opción 1: Instalación Global (Recomendada)
|
|
83
24
|
|
|
84
25
|
```bash
|
|
85
|
-
|
|
86
|
-
git clone https://github.com/your-org/secure-scan.git
|
|
87
|
-
cd secure-scan
|
|
88
|
-
|
|
89
|
-
# Instalar dependencias y compilar
|
|
90
|
-
npm install
|
|
91
|
-
|
|
92
|
-
# Instalar globalmente
|
|
93
|
-
npm link
|
|
94
|
-
|
|
95
|
-
# Verificar instalación
|
|
96
|
-
secure-scan --version
|
|
26
|
+
npm install -g secure-scan
|
|
97
27
|
```
|
|
28
|
+
Así se evitan usar la clonación del repositorio.
|
|
98
29
|
|
|
99
|
-
###
|
|
100
|
-
|
|
101
|
-
La IA local permite análisis avanzado **sin costos** y con **privacidad total**. Sigue estos pasos:
|
|
102
|
-
|
|
103
|
-
#### Paso 1: Instalar Ollama
|
|
104
|
-
|
|
105
|
-
**Windows:**
|
|
30
|
+
### Desinstalar la herramienta
|
|
106
31
|
```bash
|
|
107
|
-
|
|
108
|
-
winget install Ollama.Ollama
|
|
109
|
-
|
|
110
|
-
# O descarga el instalador desde https://ollama.ai
|
|
32
|
+
npm uninstall -g secure-scan
|
|
111
33
|
```
|
|
112
34
|
|
|
113
|
-
|
|
35
|
+
### Opción 2: Clonar el repositorio
|
|
114
36
|
```bash
|
|
115
|
-
|
|
37
|
+
git clone https://github.com/your-org/secure-scan.git
|
|
38
|
+
cd secure-scan
|
|
116
39
|
```
|
|
117
40
|
|
|
118
|
-
|
|
41
|
+
Instalar dependencias y compilar:
|
|
119
42
|
```bash
|
|
120
|
-
|
|
43
|
+
npm install
|
|
121
44
|
```
|
|
122
45
|
|
|
123
|
-
|
|
124
|
-
|
|
46
|
+
Instalar globalmente:
|
|
125
47
|
```bash
|
|
126
|
-
|
|
127
|
-
ollama pull codellama:7b-instruct
|
|
128
|
-
|
|
129
|
-
# Alternativas según tu hardware:
|
|
130
|
-
# - PC con 8GB+ RAM: codellama:7b-instruct (3.8 GB)
|
|
131
|
-
# - PC con 16GB+ RAM: codellama:13b-instruct (7.4 GB)
|
|
132
|
-
# - PC con poca RAM: llama3.2:3b (2 GB)
|
|
48
|
+
npm link
|
|
133
49
|
```
|
|
134
50
|
|
|
135
|
-
|
|
136
|
-
|
|
51
|
+
### Verificar instalación
|
|
137
52
|
```bash
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
ollama list
|
|
141
|
-
|
|
142
|
-
# Si no está corriendo, iniciarlo manualmente:
|
|
143
|
-
ollama serve
|
|
53
|
+
secure -V
|
|
54
|
+
secure --version
|
|
144
55
|
```
|
|
145
56
|
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
```bash
|
|
149
|
-
# Escaneo básico con IA local
|
|
150
|
-
secure-scan scan ./mi-proyecto --ai --ai-provider local
|
|
151
|
-
|
|
152
|
-
# Con reporte de salida
|
|
153
|
-
secure-scan scan ./mi-proyecto --ai --ai-provider local -o ./reporte-seguridad
|
|
154
|
-
```
|
|
57
|
+
## 📖 Uso
|
|
155
58
|
|
|
156
|
-
>
|
|
59
|
+
> **AVISO:** Modificar el archivo `secure-scan.config.json` para configurar la herramienta según tus necesidades.
|
|
157
60
|
|
|
158
|
-
###
|
|
61
|
+
### Escaneo Básico
|
|
159
62
|
|
|
160
63
|
```bash
|
|
161
|
-
#
|
|
162
|
-
|
|
163
|
-
```
|
|
64
|
+
# Escanear un proyecto
|
|
65
|
+
secure scan ./mi-proyecto
|
|
164
66
|
|
|
165
|
-
|
|
67
|
+
# O usando la ruta completa
|
|
68
|
+
secure scan "C:\Users\TuUsuario\Proyectos\mi-proyecto"
|
|
166
69
|
|
|
167
|
-
|
|
168
|
-
|
|
70
|
+
# Personalizar escaneos con
|
|
71
|
+
secure init
|
|
169
72
|
```
|
|
170
73
|
|
|
171
|
-
|
|
172
|
-
### VISO MODIFICAR EL ARCHIVO secure-scan.config.json PARA CONFIGURAR LA HERRAMIENTA SEGÚN TUS NECESIDADES.
|
|
173
|
-
### Escaneo Básico
|
|
174
|
-
|
|
74
|
+
### Comando Sugerido
|
|
175
75
|
```bash
|
|
176
|
-
|
|
177
|
-
secure-scan scan ./mi-proyecto
|
|
178
|
-
|
|
179
|
-
# O usando la ruta completa
|
|
180
|
-
secure-scan scan "C:\Users\TuUsuario\Proyectos\mi-proyecto"
|
|
76
|
+
secure scan "ruta-proyecto-analizar" -v --ai --ai-provider local -o "ruta-resultado-escaneo\nombre-resultado"
|
|
181
77
|
```
|
|
182
78
|
|
|
183
79
|
### Opciones Disponibles
|
|
184
80
|
|
|
185
81
|
```bash
|
|
186
82
|
# Escanear con reporte HTML personalizado
|
|
187
|
-
secure
|
|
83
|
+
secure scan ./proyecto -o ./mi-reporte
|
|
188
84
|
|
|
189
85
|
# Modo verbose (más detalles)
|
|
190
|
-
secure
|
|
86
|
+
secure scan ./proyecto -v
|
|
191
87
|
|
|
192
88
|
# Usar análisis de IA (requiere API key)
|
|
193
|
-
secure
|
|
89
|
+
secure scan ./proyecto --ai --api-key TU_API_KEY
|
|
194
90
|
|
|
195
91
|
# Especificar lenguajes
|
|
196
|
-
secure
|
|
92
|
+
secure scan ./proyecto --languages javascript,python
|
|
197
93
|
|
|
198
94
|
# Reporte en inglés
|
|
199
|
-
secure
|
|
95
|
+
secure scan ./proyecto --lang en
|
|
200
96
|
|
|
201
97
|
# Reporte en español (por defecto)
|
|
202
|
-
secure
|
|
203
|
-
```
|
|
204
|
-
|
|
205
|
-
### Combinación de Opciones
|
|
206
|
-
|
|
207
|
-
Puedes combinar múltiples opciones en un solo comando:
|
|
208
|
-
|
|
209
|
-
```bash
|
|
210
|
-
# Escaneo completo con IA, verbose y reporte personalizado
|
|
211
|
-
secure-scan scan ./proyecto -v --ai --api-key "TU_API_KEY" -o "./reporte-seguridad"
|
|
212
|
-
|
|
213
|
-
# Escaneo con IA local (Ollama), lenguajes específicos y reporte en inglés
|
|
214
|
-
secure-scan scan ./proyecto --ai --ai-provider local -o "./security-report" --lang en --languages javascript,python
|
|
215
|
-
|
|
216
|
-
# Escaneo rápido solo críticos con salida JSON
|
|
217
|
-
secure-scan scan ./proyecto --min-severity critical --json
|
|
218
|
-
|
|
219
|
-
# Escaneo completo excluyendo carpetas
|
|
220
|
-
secure-scan scan ./proyecto -v --exclude "tests,docs,examples" -o "./audit-report"
|
|
221
|
-
```
|
|
222
|
-
|
|
223
|
-
### Referencia de Opciones
|
|
224
|
-
|
|
225
|
-
| Opción | Alias | Descripción | Ejemplo |
|
|
226
|
-
|--------|-------|-------------|---------|
|
|
227
|
-
| `--output` | `-o` | Ruta del reporte HTML | `-o ./reporte` |
|
|
228
|
-
| `--verbose` | `-v` | Salida detallada | `-v` |
|
|
229
|
-
| `--ai` | - | Habilitar análisis IA | `--ai` |
|
|
230
|
-
| `--api-key` | - | API key (auto-detecta proveedor) | `--api-key "sk-..."` |
|
|
231
|
-
| `--ai-provider` | - | Proveedor IA (openai, anthropic, google, gemini, local, auto) | `--ai-provider google` |
|
|
232
|
-
| `--ai-model` | - | Modelo de IA | `--ai-model gpt-4o` |
|
|
233
|
-
| `--languages` | `-l` | Lenguajes a escanear | `--languages js,py` |
|
|
234
|
-
| `--exclude` | `-e` | Patrones a excluir | `--exclude "test,docs"` |
|
|
235
|
-
| `--min-severity` | - | Severidad mínima | `--min-severity high` |
|
|
236
|
-
| `--lang` | - | Idioma del reporte (es/en) | `--lang en` |
|
|
237
|
-
| `--json` | - | Salida en formato JSON | `--json` |
|
|
238
|
-
| `--max-file-size` | - | Tamaño máximo de archivo | `--max-file-size 10485760` |
|
|
239
|
-
|
|
240
|
-
### Proveedores de IA Soportados
|
|
241
|
-
|
|
242
|
-
La herramienta **auto-detecta el proveedor** basándose en el formato de tu API key:
|
|
243
|
-
|
|
244
|
-
| Proveedor | Prefijo API Key | Modelos Disponibles |
|
|
245
|
-
|-----------|-----------------|---------------------|
|
|
246
|
-
| **OpenAI** | `sk-` o `sk-proj-` | `gpt-4o`, `gpt-4-turbo`, `gpt-4`, `gpt-3.5-turbo`, `o1-preview`, `o1-mini` |
|
|
247
|
-
| **Anthropic** | `sk-ant-` | `claude-3-opus`, `claude-3-sonnet`, `claude-3-haiku` |
|
|
248
|
-
| **Google AI** | `AIzaSy` | `gemini-1.5-pro`, `gemini-1.5-flash`, `gemini-pro` |
|
|
249
|
-
| **Local** | N/A | Cualquier modelo via Ollama, LM Studio, etc. |
|
|
250
|
-
|
|
251
|
-
```bash
|
|
252
|
-
# OpenAI (auto-detectado)
|
|
253
|
-
secure-scan scan ./proyecto --ai --api-key "sk-proj-abc123..."
|
|
254
|
-
|
|
255
|
-
# Google Gemini (auto-detectado)
|
|
256
|
-
secure-scan scan ./proyecto --ai --api-key "AIzaSyAbc123..."
|
|
257
|
-
|
|
258
|
-
# Anthropic Claude (auto-detectado)
|
|
259
|
-
secure-scan scan ./proyecto --ai --api-key "sk-ant-abc123..."
|
|
260
|
-
|
|
261
|
-
# Especificar modelo manualmente
|
|
262
|
-
secure-scan scan ./proyecto --ai --api-key "sk-..." --ai-model gpt-4o
|
|
263
|
-
|
|
264
|
-
# IA Local con Ollama (sin API key)
|
|
265
|
-
secure-scan scan ./proyecto --ai --ai-provider local
|
|
98
|
+
secure scan ./proyecto --lang es
|
|
266
99
|
```
|
|
267
100
|
|
|
268
101
|
### Comandos Adicionales
|
|
269
102
|
|
|
270
103
|
```bash
|
|
271
104
|
# Ver ayuda
|
|
272
|
-
secure
|
|
105
|
+
secure --help
|
|
273
106
|
|
|
274
107
|
# Ver versión
|
|
275
|
-
secure
|
|
108
|
+
secure --version
|
|
276
109
|
|
|
277
110
|
# Inicializar configuración
|
|
278
|
-
secure
|
|
111
|
+
secure init
|
|
279
112
|
|
|
280
113
|
# Listar reglas disponibles
|
|
281
|
-
secure
|
|
114
|
+
secure rules
|
|
282
115
|
|
|
283
116
|
# Filtrar reglas por lenguaje
|
|
284
|
-
secure
|
|
117
|
+
secure rules -l python
|
|
285
118
|
```
|
|
286
119
|
|
|
287
|
-
## 🦠 Detección de Malware en Dependencias
|
|
288
|
-
|
|
289
|
-
Secure-Scan escanea las dependencias instaladas en busca de código malicioso. Actualmente detecta **17 patrones de malware**:
|
|
290
|
-
|
|
291
|
-
### Categorías de Malware Detectado
|
|
292
|
-
|
|
293
|
-
| Categoría | Descripción | Ejemplos |
|
|
294
|
-
|-----------|-------------|----------|
|
|
295
|
-
| 🚪 **Backdoors** | Acceso remoto no autorizado | Reverse shells, conexiones C2, robo de SSH keys |
|
|
296
|
-
| ⛏️ **Cryptominers** | Minería de criptomonedas | APIs de Stratum, CoinHive, MoneroOcean |
|
|
297
|
-
| 🔓 **Data Stealers** | Robo de información | Credenciales, tokens, variables de entorno |
|
|
298
|
-
| 📥 **Loaders** | Descarga de payloads | eval(require('http').get), dynamic imports |
|
|
299
|
-
| 🔐 **Ofuscación** | Código oculto | Base64 + eval, hex encoding, char codes |
|
|
300
|
-
| 📤 **Exfiltración** | Envío de datos | DNS tunneling, HTTP POST, WebSockets |
|
|
301
|
-
| 🛡️ **Anti-Análisis** | Evasión de detección | Anti-debug, sandbox detection |
|
|
302
|
-
| 📁 **File System** | Acceso sospechoso | /etc/passwd, ~/.ssh, credential stores |
|
|
303
120
|
|
|
304
|
-
|
|
121
|
+
## 🏗️ Arquitectura
|
|
305
122
|
|
|
306
123
|
```
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
124
|
+
secure-scan/
|
|
125
|
+
├── src/
|
|
126
|
+
│ ├── cli/ # Interfaz de línea de comandos
|
|
127
|
+
│ ├── core/ # Núcleo del sistema
|
|
128
|
+
│ │ ├── scanner/ # Escáner de archivos
|
|
129
|
+
│ │ ├── engine/ # Motor de reglas
|
|
130
|
+
│ │ └── scoring/ # Motor de puntuación de riesgo
|
|
131
|
+
│ ├── analyzers/ # Analizadores por lenguaje (plugins)
|
|
132
|
+
│ │ ├── javascript/
|
|
133
|
+
│ │ ├── python/
|
|
134
|
+
│ │ ├── php/
|
|
135
|
+
│ │ ├── java/
|
|
136
|
+
│ │ ├── c-cpp/
|
|
137
|
+
│ │ ├── csharp/
|
|
138
|
+
│ │ └── iac/ # Infraestructura como Código
|
|
139
|
+
│ ├── rules/ # Reglas de detección
|
|
140
|
+
│ │ ├── vulnerabilities/
|
|
141
|
+
│ │ └── malware/
|
|
142
|
+
│ ├── ai/ # Motor de IA
|
|
143
|
+
│ ├── reports/ # Generador de reportes
|
|
144
|
+
│ ├── i18n/ # Traducciones (español/inglés)
|
|
145
|
+
│ ├── types/ # Definiciones TypeScript
|
|
146
|
+
│ └── utils/ # Utilidades
|
|
147
|
+
├── test-samples/ # Archivos de prueba
|
|
148
|
+
└── docs/ # Documentación
|
|
312
149
|
```
|
|
313
150
|
|
|
314
|
-
### Verificación de Integridad
|
|
315
|
-
|
|
316
|
-
El escáner también verifica que las versiones instaladas coincidan con las declaradas en los lock files:
|
|
317
|
-
|
|
318
|
-
- ✅ `package-lock.json` vs `node_modules/*/package.json`
|
|
319
|
-
- ✅ `yarn.lock` vs `node_modules/*/package.json`
|
|
320
|
-
- ✅ `composer.lock` vs `vendor/*/composer.json`
|
|
321
|
-
- ✅ `Pipfile.lock` vs `venv/lib/python*/site-packages/`
|
|
322
|
-
|
|
323
151
|
## 🌍 Idiomas
|
|
324
152
|
|
|
325
153
|
Secure-Scan soporta reportes en múltiples idiomas:
|
|
@@ -331,10 +159,10 @@ Secure-Scan soporta reportes en múltiples idiomas:
|
|
|
331
159
|
|
|
332
160
|
```bash
|
|
333
161
|
# Reporte en español (por defecto)
|
|
334
|
-
secure
|
|
162
|
+
secure scan ./proyecto -o reporte
|
|
335
163
|
|
|
336
164
|
# Reporte en inglés
|
|
337
|
-
secure
|
|
165
|
+
secure scan ./proyecto -o report --lang en
|
|
338
166
|
```
|
|
339
167
|
|
|
340
168
|
## 📊 Niveles de Severidad
|
|
@@ -349,24 +177,12 @@ secure-scan scan ./proyecto -o report --lang en
|
|
|
349
177
|
|
|
350
178
|
## 🛡️ Estándares de Seguridad
|
|
351
179
|
|
|
352
|
-
Todos los hallazgos se mapean a
|
|
353
|
-
|
|
354
|
-
| Estándar | Descripción | Uso |
|
|
355
|
-
|----------|-------------|-----|
|
|
356
|
-
| **OWASP Top 10** | Top 10 riesgos de seguridad web | Vulnerabilidades web |
|
|
357
|
-
| **CWE** | Common Weakness Enumeration | Debilidades de código |
|
|
358
|
-
| **MITRE ATT&CK** | Tácticas y Técnicas de Atacantes | Detección de malware |
|
|
359
|
-
| **SANS Top 25** | Errores de Software Más Peligrosos | Priorización |
|
|
180
|
+
Todos los hallazgos se mapean a:
|
|
360
181
|
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
| SQL Injection | CWE-89 | A03:2021 | T1190 |
|
|
366
|
-
| XSS | CWE-79 | A03:2021 | T1059.007 |
|
|
367
|
-
| Reverse Shell | CWE-506 | - | T1059, T1571 |
|
|
368
|
-
| Cryptominer | CWE-400 | - | T1496 |
|
|
369
|
-
| Data Exfiltration | CWE-200 | - | T1041 |
|
|
182
|
+
- **OWASP Top 10** - Open Web Application Security Project
|
|
183
|
+
- **CWE** - Common Weakness Enumeration (Enumeración de Debilidades Comunes)
|
|
184
|
+
- **MITRE ATT&CK** - Tácticas y Técnicas de Atacantes
|
|
185
|
+
- **SANS Top 25** - Errores de Software Más Peligrosos
|
|
370
186
|
|
|
371
187
|
## 🔧 Configuración
|
|
372
188
|
|
|
@@ -404,15 +220,6 @@ Crea un archivo `secure-scan.config.json` en la raíz del proyecto:
|
|
|
404
220
|
|
|
405
221
|
Secure-Scan soporta el uso de **modelos de IA locales** para análisis de seguridad sin depender de APIs externas.
|
|
406
222
|
|
|
407
|
-
### Requisitos de Hardware
|
|
408
|
-
|
|
409
|
-
| Modelo | RAM Mínima | GPU (Opcional) | Velocidad |
|
|
410
|
-
|--------|------------|----------------|-----------|
|
|
411
|
-
| `llama3.2:3b` | 4 GB | No necesaria | Muy rápida |
|
|
412
|
-
| `codellama:7b-instruct` | 8 GB | 4 GB VRAM | Rápida |
|
|
413
|
-
| `codellama:13b-instruct` | 16 GB | 8 GB VRAM | Moderada |
|
|
414
|
-
| `deepseek-coder:6.7b` | 8 GB | 6 GB VRAM | Rápida |
|
|
415
|
-
|
|
416
223
|
### Configuración para IA Local
|
|
417
224
|
|
|
418
225
|
Modifica la sección `ai` en `secure-scan.config.json`:
|
|
@@ -422,7 +229,6 @@ Modifica la sección `ai` en `secure-scan.config.json`:
|
|
|
422
229
|
"ai": {
|
|
423
230
|
"enabled": true,
|
|
424
231
|
"provider": "local",
|
|
425
|
-
"model": "codellama:7b-instruct",
|
|
426
232
|
"endpoint": "http://localhost:11434/api/generate",
|
|
427
233
|
"enhanceFindings": true,
|
|
428
234
|
"generateSummary": true,
|
|
@@ -461,7 +267,7 @@ Modifica la sección `ai` en `secure-scan.config.json`:
|
|
|
461
267
|
|
|
462
268
|
4. **Ejecutar escaneo con IA local**:
|
|
463
269
|
```bash
|
|
464
|
-
secure
|
|
270
|
+
secure scan ./mi-proyecto --ai
|
|
465
271
|
```
|
|
466
272
|
|
|
467
273
|
### Ejemplo con LM Studio
|
|
@@ -489,19 +295,10 @@ Modifica la sección `ai` en `secure-scan.config.json`:
|
|
|
489
295
|
|
|
490
296
|
## 📈 Hoja de Ruta
|
|
491
297
|
|
|
492
|
-
- [x] Fase 1: Análisis estático básico
|
|
493
|
-
- [x] Fase 2: Integración de IA
|
|
494
|
-
- [x] Fase 3: Soporte multiidioma (
|
|
495
|
-
- [
|
|
496
|
-
- [x] Parsers para 6 ecosistemas (npm, pip, composer, maven, nuget, go)
|
|
497
|
-
- [x] Detección de CVEs y vulnerabilidades conocidas
|
|
498
|
-
- [x] Detección de typosquatting
|
|
499
|
-
- [x] **Escaneo de dependencias instaladas con detección de malware**
|
|
500
|
-
- [x] **17 patrones de malware (backdoors, cryptominers, stealers, etc.)**
|
|
501
|
-
- [x] **Verificación de integridad (lock files vs instalados)**
|
|
502
|
-
- [ ] Fase 5: Integración CI/CD (GitHub Actions, GitLab CI, Azure DevOps)
|
|
503
|
-
- [ ] Fase 6: Análisis dinámico (DAST)
|
|
504
|
-
- [ ] Fase 7: Dashboard web en tiempo real
|
|
298
|
+
- [x] Fase 1: Análisis estático básico
|
|
299
|
+
- [x] Fase 2: Integración de IA
|
|
300
|
+
- [x] Fase 3: Soporte multiidioma (español/inglés)
|
|
301
|
+
- [ ] Fase 4: Análisis de dependencias
|
|
505
302
|
|
|
506
303
|
## ⚠️ Advertencias de Seguridad
|
|
507
304
|
|
|
@@ -510,34 +307,6 @@ Modifica la sección `ai` en `secure-scan.config.json`:
|
|
|
510
307
|
- No genera ni contiene malware funcional
|
|
511
308
|
- Uso responsable y ético únicamente
|
|
512
309
|
|
|
513
|
-
## 💻 Ejemplo de Salida
|
|
514
|
-
|
|
515
|
-
```
|
|
516
|
-
🔐 Secure-Scan v2.0.0
|
|
517
|
-
|
|
518
|
-
📂 Escaneando: ./mi-proyecto
|
|
519
|
-
🔍 Archivos analizados: 156
|
|
520
|
-
📏 Líneas de código: 24,853
|
|
521
|
-
⏱️ Tiempo: 2.34s
|
|
522
|
-
|
|
523
|
-
📊 Resultados del Escaneo:
|
|
524
|
-
┌──────────────────────────────────────────────────────────────┐
|
|
525
|
-
│ 🔴 Crítico: 5 │ 🟠 Alto: 12 │ 🟡 Medio: 23 │
|
|
526
|
-
│ 🟢 Bajo: 8 │ 🔵 Info: 3 │ Total: 51 │
|
|
527
|
-
└──────────────────────────────────────────────────────────────┘
|
|
528
|
-
|
|
529
|
-
📦 Dependencias Analizadas:
|
|
530
|
-
┌──────────────────────────────────────────────────────────────┐
|
|
531
|
-
│ 📋 Manifiestos: 3 │ 📦 Paquetes: 847 │
|
|
532
|
-
│ 🔓 CVEs: 12 │ 🦠 Malware: 0 │
|
|
533
|
-
│ ⚠️ Typosquatting: 1 │ ✅ Integridad: OK │
|
|
534
|
-
└──────────────────────────────────────────────────────────────┘
|
|
535
|
-
|
|
536
|
-
📈 Puntuación de Riesgo: 72/100 (Alto)
|
|
537
|
-
|
|
538
|
-
📄 Reporte generado: ./security-report.html
|
|
539
|
-
```
|
|
540
|
-
|
|
541
310
|
## 📄 Licencia
|
|
542
311
|
|
|
543
312
|
MIT License - Ver [LICENSE](LICENSE)
|
|
@@ -550,15 +319,14 @@ MIT License - Ver [LICENSE](LICENSE)
|
|
|
550
319
|
4. Push a la rama (`git push origin feature/nueva-funcionalidad`)
|
|
551
320
|
5. Abre un Pull Request
|
|
552
321
|
|
|
553
|
-
## 📞 Soporte
|
|
554
|
-
|
|
555
|
-
- 📧 Email: soporte@secure-scan.dev
|
|
556
|
-
- 🐛 Issues: [GitHub Issues](https://github.com/your-org/secure-scan/issues)
|
|
557
322
|
- 📖 Documentación: [docs/](docs/)
|
|
558
323
|
|
|
559
324
|
---
|
|
560
325
|
|
|
561
326
|
**Desarrollado con ❤️ para la comunidad de seguridad**
|
|
327
|
+
## ATT: Luis000923
|
|
328
|
+
## 🔐 Secure-Scan
|
|
562
329
|
|
|
563
|
-
|
|
564
|
-
|
|
330
|
+
[](https://opensource.org/licenses/MIT)
|
|
331
|
+
[](https://nodejs.org)
|
|
332
|
+
[](#-languages)
|
package/aur/.SRCINFO
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
pkgbase = secure-scan
|
|
2
|
+
pkgdesc = Herramienta SAST para detectar vulnerabilidades y código malicioso
|
|
3
|
+
pkgver = 1.2.4
|
|
4
|
+
pkgrel = 1
|
|
5
|
+
url = https://github.com/Sobdev/secure-scan
|
|
6
|
+
arch = any
|
|
7
|
+
license = MIT
|
|
8
|
+
makedepends = npm
|
|
9
|
+
depends = nodejs>=18
|
|
10
|
+
|
|
11
|
+
pkgname = secure-scan
|
package/aur/PKGBUILD
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Maintainer: Sobdev <tu-email@ejemplo.com>
|
|
2
|
+
pkgname=secure-scan
|
|
3
|
+
pkgver=1.2.4
|
|
4
|
+
pkgrel=1
|
|
5
|
+
pkgdesc="Herramienta SAST para detectar vulnerabilidades y código malicioso"
|
|
6
|
+
arch=('any')
|
|
7
|
+
url="https://github.com/Sobdev/secure-scan"
|
|
8
|
+
license=('MIT')
|
|
9
|
+
depends=('nodejs>=18')
|
|
10
|
+
makedepends=('npm')
|
|
11
|
+
source=("https://registry.npmjs.org/${pkgname}/-/${pkgname}-${pkgver}.tgz")
|
|
12
|
+
sha256sums=('SKIP')
|
|
13
|
+
|
|
14
|
+
package() {
|
|
15
|
+
cd "${srcdir}"
|
|
16
|
+
|
|
17
|
+
# Crear directorios
|
|
18
|
+
install -dm755 "${pkgdir}/usr/lib/${pkgname}"
|
|
19
|
+
install -dm755 "${pkgdir}/usr/bin"
|
|
20
|
+
|
|
21
|
+
# Instalar el paquete globalmente en el directorio del paquete
|
|
22
|
+
npm install -g "${pkgname}@${pkgver}" --prefix "${pkgdir}/usr"
|
|
23
|
+
|
|
24
|
+
# Corregir permisos
|
|
25
|
+
find "${pkgdir}/usr" -type d -exec chmod 755 {} \;
|
|
26
|
+
find "${pkgdir}/usr" -type f -exec chmod 644 {} \;
|
|
27
|
+
chmod 755 "${pkgdir}/usr/bin/secure-scan"
|
|
28
|
+
}
|
package/debian/changelog
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
secure-scan (1.2.4-1) unstable; urgency=medium
|
|
2
|
+
|
|
3
|
+
* Initial release
|
|
4
|
+
* Configuración init mejorada con archivo completo
|
|
5
|
+
* Soporte para múltiples lenguajes: JS, TS, Python, PHP, Java, C/C++, C#
|
|
6
|
+
* Detección de vulnerabilidades y malware
|
|
7
|
+
* Análisis de dependencias
|
|
8
|
+
* Integración con IA local (Ollama)
|
|
9
|
+
|
|
10
|
+
-- Sobdev <tu-email@ejemplo.com> Mon, 23 Dec 2024 12:00:00 +0000
|
package/debian/compat
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
11
|
package/debian/control
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
Source: secure-scan
|
|
2
|
+
Section: devel
|
|
3
|
+
Priority: optional
|
|
4
|
+
Maintainer: Sobdev <tu-email@ejemplo.com>
|
|
5
|
+
Build-Depends: debhelper (>= 11), nodejs (>= 18), npm
|
|
6
|
+
Standards-Version: 4.5.0
|
|
7
|
+
Homepage: https://github.com/Sobdev/secure-scan
|
|
8
|
+
|
|
9
|
+
Package: secure-scan
|
|
10
|
+
Architecture: all
|
|
11
|
+
Depends: nodejs (>= 18)
|
|
12
|
+
Description: Herramienta SAST para detectar vulnerabilidades y malware
|
|
13
|
+
Secure-Scan es una herramienta de Análisis Estático de Seguridad (SAST)
|
|
14
|
+
que detecta vulnerabilidades de seguridad y código malicioso en múltiples
|
|
15
|
+
lenguajes de programación incluyendo JavaScript, TypeScript, Python, PHP,
|
|
16
|
+
Java, C/C++, C# y archivos de infraestructura como código.
|
package/debian/rules
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
#!/usr/bin/make -f
|
|
2
|
+
|
|
3
|
+
%:
|
|
4
|
+
dh $@
|
|
5
|
+
|
|
6
|
+
override_dh_auto_build:
|
|
7
|
+
npm install
|
|
8
|
+
npm run build
|
|
9
|
+
|
|
10
|
+
override_dh_auto_install:
|
|
11
|
+
mkdir -p debian/secure-scan/usr/lib/secure-scan
|
|
12
|
+
mkdir -p debian/secure-scan/usr/bin
|
|
13
|
+
cp -r dist/* debian/secure-scan/usr/lib/secure-scan/
|
|
14
|
+
cp -r node_modules debian/secure-scan/usr/lib/secure-scan/
|
|
15
|
+
cp package.json debian/secure-scan/usr/lib/secure-scan/
|
|
16
|
+
echo '#!/bin/bash\nnode /usr/lib/secure-scan/cli/index.js "$$@"' > debian/secure-scan/usr/bin/secure-scan
|
|
17
|
+
chmod +x debian/secure-scan/usr/bin/secure-scan
|