Spaces:
Sleeping
Sleeping
Upload index.html
Browse files- index.html +39 -96
index.html
CHANGED
|
@@ -195,39 +195,39 @@
|
|
| 195 |
/* === CONFIGURACIÓN INICIAL === */
|
| 196 |
const DOMAINS = [
|
| 197 |
{ id:'perimetro', name:'Perímetro / Firewall', qs:[
|
| 198 |
-
{q:'¿Usas un firewall dedicado (Mikrotik/OPNsense/etc.) con reglas mínimas por servicio?', help:'Un firewall dedicado filtra el tráfico
|
| 199 |
-
{q:'¿Tienes listas de acceso/geo-bloqueo/IPS/DoS activas?', help:'Listas de acceso
|
| 200 |
-
{q:'¿Los servicios expuestos están detrás de NAT o Port-Forward controlado?', help:'NAT oculta
|
| 201 |
-
{q:'¿Hay políticas VPN de acceso remoto con 2FA?', help:'VPN
|
| 202 |
]},
|
| 203 |
{ id:'servers', name:'Servidores / Hardening', qs:[
|
| 204 |
-
{q:'¿Cuentas con hardening básico (SSH seguro, usuarios/roles, auditoría)?', help:'Hardening significa configurar el sistema de forma segura: SSH sin root, solo claves, usuarios con privilegios mínimos, y logs de auditoría.'},
|
| 205 |
-
{q:'¿Actualizaciones y parches aplicados regularmente?', help:'Aplicar actualizaciones de seguridad mensualmente para corregir vulnerabilidades conocidas en
|
| 206 |
{q:'¿Servicios innecesarios deshabilitados/controlados?', help:'Cada servicio activo es una posible puerta de entrada. Deshabilitar servicios como FTP, Telnet, servicios de impresión no usados, etc.'}
|
| 207 |
]},
|
| 208 |
{ id:'backups', name:'Backups y Recuperación', qs:[
|
| 209 |
-
{q:'¿Aplicas la regla 3-2-1 (3 copias, 2 medios, 1 offsite)?', help:'3 copias totales, en al menos 2
|
| 210 |
-
{q:'¿Pruebas de restauración realizadas en los últimos 6 meses?', help:'Verificar periódicamente que los backups son recuperables restaurando datos de prueba en
|
| 211 |
{q:'¿Backups protegidos contra ransomware (inmutables/air-gap)?', help:'Backups inmutables no pueden ser modificados o eliminados. Air-gap significa almacenamiento físicamente desconectado de la red.'}
|
| 212 |
]},
|
| 213 |
{ id:'monitor', name:'Monitoreo y Alertas', qs:[
|
| 214 |
{q:'¿Monitoreo centralizado (Zabbix/PRTG/Grafana) con alertas 24/7?', help:'Sistema que monitorea servidores, redes, servicios y envía alertas inmediatas cuando detecta problemas o anomalías.'},
|
| 215 |
-
{q:'¿Métricas revisadas mensualmente?', help:'Analizar regularmente
|
| 216 |
{q:'¿Alertas integradas con soporte?', help:'Las alertas críticas deben notificar automáticamente al personal técnico mediante email, SMS, Telegram, etc.'}
|
| 217 |
]},
|
| 218 |
{ id:'network', name:'Red y Conectividad', qs:[
|
| 219 |
-
{q:'¿Segmentación VLANs para aislar servicios críticos?', help:'Dividir la red en segmentos lógicos separados
|
| 220 |
{q:'¿Control de ancho de banda/Proxy/filtrado de contenidos?', help:'Limitar ancho de banda por servicio, filtrar contenido malicioso, y controlar acceso a internet mediante proxy.'},
|
| 221 |
-
{q:'¿Wi-Fi empresarial con WPA2-Enterprise?', help:'WPA2-Enterprise usa autenticación individual por usuario en lugar de
|
| 222 |
]},
|
| 223 |
{ id:'endpoints', name:'Usuarios / Estaciones', qs:[
|
| 224 |
-
{q:'¿Antimalware/EDR y políticas de actualización?', help:'EDR
|
| 225 |
-
{q:'¿Gestión de contraseñas y MFA?', help:'Password manager para contraseñas seguras y únicas. MFA
|
| 226 |
-
{q:'¿Políticas de mínimo privilegio + bloqueo de USB?', help:'Usuarios solo tienen permisos necesarios para su trabajo. Bloqueo de puertos USB previene infecciones y fugas
|
| 227 |
]},
|
| 228 |
{ id:'webmail', name:'Web y Correo', qs:[
|
| 229 |
-
{q:'¿Sitios con HTTPS válido y cabeceras seguras?', help:'HTTPS encripta comunicación web. Cabeceras de seguridad previenen ataques como XSS, clickjacking,
|
| 230 |
-
{q:'¿Correo con SPF, DKIM y DMARC publicados?', help:'
|
| 231 |
{q:'¿WAF/antispam/antiphishing activos?', help:'WAF protege aplicaciones web, antispam filtra correo no deseado, antiphishing detecta intentos de engaño.'}
|
| 232 |
]}
|
| 233 |
];
|
|
@@ -249,70 +249,6 @@ const RECS = {
|
|
| 249 |
webmail:'Forzar HTTPS, cabeceras OWASP, SPF+DKIM+DMARC y WAF.'
|
| 250 |
};
|
| 251 |
|
| 252 |
-
// Contenido de ayuda detallado
|
| 253 |
-
const HELP_CONTENT = {
|
| 254 |
-
'firewall-dedicado': `
|
| 255 |
-
<h4>🚧 Firewall Dedicado - Explicación Completa</h4>
|
| 256 |
-
<p>Un <strong>firewall dedicado</strong> es un dispositivo o software especializado que actúa como guardián entre tu red interna e Internet.</p>
|
| 257 |
-
|
| 258 |
-
<div class="help-example">
|
| 259 |
-
<h5>🔧 Qué buscar:</h5>
|
| 260 |
-
<ul>
|
| 261 |
-
<li>Reglas que <strong>deniegan todo por defecto</strong></li>
|
| 262 |
-
<li>Solo puertos <strong>estrictamente necesarios</strong> abiertos</li>
|
| 263 |
-
<li>Separación de redes (LAN, DMZ, WAN)</li>
|
| 264 |
-
<li>Logs de conexiones sospechosas</li>
|
| 265 |
-
</ul>
|
| 266 |
-
</div>
|
| 267 |
-
|
| 268 |
-
<div class="help-example">
|
| 269 |
-
<h5>📋 Ejemplo de reglas seguras:</h5>
|
| 270 |
-
<code>
|
| 271 |
-
# DENEGAR todo por defecto<br>
|
| 272 |
-
# PERMITIR solo SSH desde IPs admin<br>
|
| 273 |
-
# PERMITIR HTTP/HTTPS desde cualquier lugar<br>
|
| 274 |
-
# DENEGAR todo lo demás
|
| 275 |
-
</code>
|
| 276 |
-
</div>
|
| 277 |
-
|
| 278 |
-
<p><strong>¿Por qué es importante?</strong> Sin firewall, todos tus servicios están expuestos directamente a Internet.</p>
|
| 279 |
-
`,
|
| 280 |
-
|
| 281 |
-
'listas-acceso': `
|
| 282 |
-
<h4>🛡️ Listas de Acceso y Protecciones - Explicación</h4>
|
| 283 |
-
<p>Estas son <strong>capas adicionales de seguridad</strong> que complementan al firewall básico.</p>
|
| 284 |
-
|
| 285 |
-
<div class="help-example">
|
| 286 |
-
<h5>🎯 Componentes clave:</h5>
|
| 287 |
-
<ul>
|
| 288 |
-
<li><strong>Listas de acceso:</strong> Bloqueo de IPs maliciosas conocidas</li>
|
| 289 |
-
<li><strong>Geo-bloqueo:</strong> Restricción por país (ej: bloquear Rusia, China)</li>
|
| 290 |
-
<li><strong>IPS:</strong> Detección de patrones de ataque en tiempo real</li>
|
| 291 |
-
<li><strong>Protección DoS:</strong> Limita conexiones simultáneas</li>
|
| 292 |
-
</ul>
|
| 293 |
-
</div>
|
| 294 |
-
|
| 295 |
-
<p><strong>Beneficio:</strong> Previene el 80% de ataques automatizados y escaneos de red.</p>
|
| 296 |
-
`,
|
| 297 |
-
|
| 298 |
-
'nat-portforward': `
|
| 299 |
-
<h4>🌐 NAT y Port-Forward Controlado</h4>
|
| 300 |
-
<p><strong>NAT (Network Address Translation)</strong> oculta tus IPs internas. <strong>Port-Forward</strong> redirige puertos específicos.</p>
|
| 301 |
-
|
| 302 |
-
<div class="help-example">
|
| 303 |
-
<h5>✅ Configuración segura:</h5>
|
| 304 |
-
<ul>
|
| 305 |
-
<li>NAT activado para toda la red interna</li>
|
| 306 |
-
<li>Port-Forward solo para servicios esenciales</li>
|
| 307 |
-
<li>Nunca redirigir rangos de puertos completos</li>
|
| 308 |
-
<li>Registrar cada redirección con justificación</li>
|
| 309 |
-
</ul>
|
| 310 |
-
</div>
|
| 311 |
-
|
| 312 |
-
<p><strong>Riesgo:</strong> Port-Forward incorrecto puede exponer servicios internos accidentalmente.</p>
|
| 313 |
-
`
|
| 314 |
-
};
|
| 315 |
-
|
| 316 |
let current = 0, answers = {};
|
| 317 |
const steps = document.getElementById('dlxSteps'),
|
| 318 |
bar = document.getElementById('dlxBar'),
|
|
@@ -328,28 +264,35 @@ function showHelp(helpKey, questionText) {
|
|
| 328 |
const title = document.getElementById('helpTitle');
|
| 329 |
const content = document.getElementById('helpText');
|
| 330 |
|
| 331 |
-
//
|
| 332 |
-
|
| 333 |
-
|
| 334 |
-
|
| 335 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 336 |
content.innerHTML = `
|
| 337 |
-
<h4>💡
|
| 338 |
<p><strong>Pregunta:</strong> ${questionText}</p>
|
| 339 |
<div class="help-example">
|
| 340 |
-
<h5>
|
| 341 |
-
<p>
|
| 342 |
</div>
|
| 343 |
<div class="help-example">
|
| 344 |
-
<h5>
|
| 345 |
-
<
|
| 346 |
-
<li><strong>Sí:</strong> Si tienes completamente implementado y documentado</li>
|
| 347 |
-
<li><strong>Parcial:</strong> Si está implementado pero necesita mejoras</li>
|
| 348 |
-
<li><strong>No:</strong> Si no está implementado o es inefectivo</li>
|
| 349 |
-
<li><strong>No sé:</strong> Si no tienes certeza del estado actual</li>
|
| 350 |
-
</ul>
|
| 351 |
</div>
|
| 352 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 353 |
`;
|
| 354 |
}
|
| 355 |
|
|
|
|
| 195 |
/* === CONFIGURACIÓN INICIAL === */
|
| 196 |
const DOMAINS = [
|
| 197 |
{ id:'perimetro', name:'Perímetro / Firewall', qs:[
|
| 198 |
+
{q:'¿Usas un firewall dedicado (Mikrotik/OPNsense/etc.) con reglas mínimas por servicio?', help:'Un firewall dedicado es un dispositivo/software que filtra todo el tráfico entre tu red e Internet. "Reglas mínimas" significa permitir SOLO los puertos y servicios estrictamente necesarios para operar, denegando todo lo demás por defecto.'},
|
| 199 |
+
{q:'¿Tienes listas de acceso/geo-bloqueo/IPS/DoS activas?', help:'Listas de acceso: Bloquean IPs maliciosas conocidas. Geo-bloqueo: Restringe tráfico de países de alto riesgo. IPS: Detecta y bloquea patrones de ataque en tiempo real. Protección DoS: Limita conexiones para prevenir saturación.'},
|
| 200 |
+
{q:'¿Los servicios expuestos están detrás de NAT o Port-Forward controlado?', help:'NAT oculta las IPs internas de tu red. Port-Forward controlado significa redirigir SOLO puertos específicos necesarios (ej: puerto 443 para web), no rangos completos.'},
|
| 201 |
+
{q:'¿Hay políticas VPN de acceso remoto con 2FA?', help:'VPN crea un túnel seguro para acceso remoto. 2FA (autenticación de dos factores) añade una capa extra de seguridad además de la contraseña (código SMS, app authenticator, etc.).'}
|
| 202 |
]},
|
| 203 |
{ id:'servers', name:'Servidores / Hardening', qs:[
|
| 204 |
+
{q:'¿Cuentas con hardening básico (SSH seguro, usuarios/roles, auditoría)?', help:'Hardening significa configurar el sistema de forma segura: SSH sin acceso root, solo autenticación por claves, usuarios con privilegios mínimos, y logs de auditoría activos.'},
|
| 205 |
+
{q:'¿Actualizaciones y parches aplicados regularmente?', help:'Aplicar actualizaciones de seguridad mensualmente para corregir vulnerabilidades conocidas en sistema operativo y aplicaciones.'},
|
| 206 |
{q:'¿Servicios innecesarios deshabilitados/controlados?', help:'Cada servicio activo es una posible puerta de entrada. Deshabilitar servicios como FTP, Telnet, servicios de impresión no usados, etc.'}
|
| 207 |
]},
|
| 208 |
{ id:'backups', name:'Backups y Recuperación', qs:[
|
| 209 |
+
{q:'¿Aplicas la regla 3-2-1 (3 copias, 2 medios, 1 offsite)?', help:'3 copias totales de datos, en al menos 2 medios diferentes (discos, cinta, cloud), y 1 copia fuera del sitio físico principal.'},
|
| 210 |
+
{q:'¿Pruebas de restauración realizadas en los últimos 6 meses?', help:'Verificar periódicamente que los backups son recuperables restaurando datos de prueba en ambiente controlado.'},
|
| 211 |
{q:'¿Backups protegidos contra ransomware (inmutables/air-gap)?', help:'Backups inmutables no pueden ser modificados o eliminados. Air-gap significa almacenamiento físicamente desconectado de la red.'}
|
| 212 |
]},
|
| 213 |
{ id:'monitor', name:'Monitoreo y Alertas', qs:[
|
| 214 |
{q:'¿Monitoreo centralizado (Zabbix/PRTG/Grafana) con alertas 24/7?', help:'Sistema que monitorea servidores, redes, servicios y envía alertas inmediatas cuando detecta problemas o anomalías.'},
|
| 215 |
+
{q:'¿Métricas revisadas mensualmente?', help:'Analizar regularmente rendimiento, capacidad, intentos de acceso fallidos, y otros indicadores de seguridad.'},
|
| 216 |
{q:'¿Alertas integradas con soporte?', help:'Las alertas críticas deben notificar automáticamente al personal técnico mediante email, SMS, Telegram, etc.'}
|
| 217 |
]},
|
| 218 |
{ id:'network', name:'Red y Conectividad', qs:[
|
| 219 |
+
{q:'¿Segmentación VLANs para aislar servicios críticos?', help:'Dividir la red en segmentos lógicos separados para aislar servidores críticos, usuarios, e invitados.'},
|
| 220 |
{q:'¿Control de ancho de banda/Proxy/filtrado de contenidos?', help:'Limitar ancho de banda por servicio, filtrar contenido malicioso, y controlar acceso a internet mediante proxy.'},
|
| 221 |
+
{q:'¿Wi-Fi empresarial con WPA2-Enterprise?', help:'WPA2-Enterprise usa autenticación individual por usuario en lugar de contraseña compartida para toda la red WiFi.'}
|
| 222 |
]},
|
| 223 |
{ id:'endpoints', name:'Usuarios / Estaciones', qs:[
|
| 224 |
+
{q:'¿Antimalware/EDR y políticas de actualización?', help:'EDR detecta comportamientos sospechosos. Políticas de actualización automática para software y antivirus.'},
|
| 225 |
+
{q:'¿Gestión de contraseñas y MFA?', help:'Password manager para contraseñas seguras y únicas. MFA requiere código adicional además de la contraseña.'},
|
| 226 |
+
{q:'¿Políticas de mínimo privilegio + bloqueo de USB?', help:'Usuarios solo tienen permisos necesarios para su trabajo. Bloqueo de puertos USB previene infecciones y fugas.'}
|
| 227 |
]},
|
| 228 |
{ id:'webmail', name:'Web y Correo', qs:[
|
| 229 |
+
{q:'¿Sitios con HTTPS válido y cabeceras seguras?', help:'HTTPS encripta comunicación web. Cabeceras de seguridad previenen ataques como XSS, clickjacking, etc.'},
|
| 230 |
+
{q:'¿Correo con SPF, DKIM y DMARC publicados?', help:'Protocolos que previenen suplantación de identidad (spoofing) en correos electrónicos.'},
|
| 231 |
{q:'¿WAF/antispam/antiphishing activos?', help:'WAF protege aplicaciones web, antispam filtra correo no deseado, antiphishing detecta intentos de engaño.'}
|
| 232 |
]}
|
| 233 |
];
|
|
|
|
| 249 |
webmail:'Forzar HTTPS, cabeceras OWASP, SPF+DKIM+DMARC y WAF.'
|
| 250 |
};
|
| 251 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 252 |
let current = 0, answers = {};
|
| 253 |
const steps = document.getElementById('dlxSteps'),
|
| 254 |
bar = document.getElementById('dlxBar'),
|
|
|
|
| 264 |
const title = document.getElementById('helpTitle');
|
| 265 |
const content = document.getElementById('helpText');
|
| 266 |
|
| 267 |
+
// Encontrar la pregunta correspondiente para mostrar su ayuda
|
| 268 |
+
let helpContent = '';
|
| 269 |
+
DOMAINS.forEach(domain => {
|
| 270 |
+
domain.qs.forEach((item, i) => {
|
| 271 |
+
const currentHelpKey = `${domain.id}-q${i}`;
|
| 272 |
+
if (currentHelpKey === helpKey) {
|
| 273 |
+
helpContent = item.help;
|
| 274 |
+
}
|
| 275 |
+
});
|
| 276 |
+
});
|
| 277 |
+
|
| 278 |
+
if (helpContent) {
|
| 279 |
content.innerHTML = `
|
| 280 |
+
<h4>💡 Explicación Técnica</h4>
|
| 281 |
<p><strong>Pregunta:</strong> ${questionText}</p>
|
| 282 |
<div class="help-example">
|
| 283 |
+
<h5>🔍 Qué significa esto:</h5>
|
| 284 |
+
<p>${helpContent}</p>
|
| 285 |
</div>
|
| 286 |
<div class="help-example">
|
| 287 |
+
<h5>🎯 Por qué es importante:</h5>
|
| 288 |
+
<p>Esta medida protege contra amenazas específicas y es considerada una práctica esencial de seguridad.</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 289 |
</div>
|
| 290 |
+
`;
|
| 291 |
+
} else {
|
| 292 |
+
content.innerHTML = `
|
| 293 |
+
<h4>💡 Ayuda Contextual</h4>
|
| 294 |
+
<p><strong>Pregunta:</strong> ${questionText}</p>
|
| 295 |
+
<p>Esta pregunta evalúa la implementación de controles de seguridad específicos para este dominio técnico.</p>
|
| 296 |
`;
|
| 297 |
}
|
| 298 |
|