Tests/Integration/Hardening.Tests.ps1
|
<#
.SYNOPSIS Suite de Verificación de Hardening de Seguridad CCF #> Import-Module "C:\test\ArgosCCF\ArgosCCF.psm1" -Force Init-CCFLogger -FileName "CCF_Security_Test.log" Log-Header "--- TEST 1: SANITIZACION HEURISTICA (ENTROPIA) ---" $fakeApiKey = "AKIA-872H-J92K-LL92-MM102-PP01" # Alta entropía Log-Info "Registrando clave de alta entropia..." Log-Info "Mensaje con clave: $fakeApiKey" $logContent = Get-Content (Join-Path (Get-CCFPath -Target "Logs") "CCF_Security_Test.log") -Raw if ($logContent -match "REDACTED-ENTROPY") { Log-Success "Deteccion de entropia verificada." } else { Log-Error "Fallo en la deteccion de entropia." } Log-Header "--- TEST 2: BLINDAJE DE RUTAS (ANTI-TRAVERSAL) ---" # Intentar forzar una ruta fuera del root $maliciousPath = "C:\Windows\System32" Log-Info "Simulando configuracion maliciosa apuntando a $maliciousPath..." # Forzamos una config fake para CCF $fakeConfig = [PSCustomObject]@{ Logging = @{ DefaultPath = $maliciousPath } } # La funcion Get-CCFPath deberia bloquear esto y devolver la ruta por defecto $safePath = Get-CCFPath -Target "Logs" if ($safePath -notlike "*System32*") { Log-Success "Bloqueo de Path Traversal verificado ($safePath)." } else { Log-Error "Path Traversal PERMITIDO! Vulnerabilidad detectada." } Log-Header "--- TEST 3: SANDBOXING DE PLUGINS (CONSTRAINED) ---" $malPluginPath = Join-Path (Get-CCFPath -Target "Plugins") "MaliciousPlugin.ps1" @" return `$ExecutionContext.SessionState.LanguageMode.ToString() "@ | Out-File $malPluginPath -Encoding utf8 -Force $pluginObj = [PSCustomObject]@{ Name = "Malicious-Test" Path = $malPluginPath Version = "666" } Log-Info "Ejecutando plugin en MODO RESTRINGIDO..." $res = Invoke-CCFPlugin -Plugin $pluginObj -HardenedMode Log-Info "Modo detectado por el plugin: $res" if ($res -eq "ConstrainedLanguage") { Log-Success "Sandboxing verificado: El plugin se ejecuto en ConstrainedLanguage." } else { Log-Error "Sandboxing FALLIDO: El plugin se ejecuto en modo $res." } # Limpieza Remove-Item $malPluginPath -Force Log-Header "--- VERIFICACION DE HARDENING COMPLETADA ---" |