File Editor Access/Modification
ID de alerta: file_editor
MITRE ATT&CK: T1055 – Process Injection · T1059 – Command and Scripting Interpreter
Severidad / Criticidad
Sección titulada «Severidad / Criticidad»| Nivel | Condición |
|---|---|
| Baja | Acceso al editor (cooldown de 15 minutos) |
| Media | Modificación de archivos CSS/JS (posible defacement) |
| Crítica | Modificación de archivos PHP (posible RCE) |
¿Por qué se considera maliciosa?
Sección titulada «¿Por qué se considera maliciosa?»- Los editores de temas/plugins permiten RCE inmediata mediante modificaciones PHP.
- Permite inyección de backdoors sin subida de archivos.
- Facilita alteraciones en archivos core para persistencia.
- Habilita defacement mediante manipulación de CSS/JS.
- No existe justificación legítima de seguridad para editar código directamente en producción.
- Es un anti-patrón de seguridad; debe deshabilitarse en entornos de producción.
¿Cuándo salta la alerta?
Sección titulada «¿Cuándo salta la alerta?»- Acceso al editor:
theme-editor.phpoplugin-editor.php(severidad baja, cooldown 15 min). - Modificación de archivo detectada:
POSTconnewcontent(severidad según extensión). - Análisis de contenido: presencia de
eval(),system(),exec(),base64_decode(). - Funciones peligrosas detectadas:
file_get_contents(),include(),require(). - Parámetros de request sospechosos:
$_POST,$_GET,$_REQUEST.
Indicadores Técnicos (IOCs)
Sección titulada «Indicadores Técnicos (IOCs)»| Tipo | Patrón/Ejemplo |
|---|---|
file_pattern | eval(base64_decode($_POST['cmd'])); |
file_pattern | @assert($_REQUEST['code']); |
file_pattern | create_function('', $_GET['func']); |
file_pattern | add_action('init', 'malicious_function'); |
behavior | Acceso a theme-editor.php o plugin-editor.php |
behavior | Cambios en archivos PHP fuera de despliegues planificados |
Falsos positivos comunes
Sección titulada «Falsos positivos comunes»- Desarrolladores realizando hotfixes de emergencia (aun así, mala práctica).
- Diseñadores editando CSS en producción.
- Plugins legítimos que actualizan plantillas a través del editor.
!!! tip "" Verificar contexto: identidad del usuario, horario, dirección IP y procedimientos de despliegue antes de descartar.
Pasos de investigación
Sección titulada «Pasos de investigación»- Confirmar identidad del usuario que editó y revisar los logs de acción.
- Comparar el archivo modificado con backups o control de versiones.
- Buscar código ofuscado o funciones peligrosas añadidas.
- Construir una línea de tiempo: timestamp, IP, número de archivos modificados y correlación con despliegues.
- Revisar logs de acceso para requests dirigidas a los archivos modificados.
Mitigaciones recomendadas
Sección titulada «Mitigaciones recomendadas»=== “Inmediatas”
!!! danger "" - Revertir cambios sospechosos desde backup o control de versiones. - Ejecutar análisis completo del sitio con herramientas antimalware. - Auditar y forzar cambio de credenciales si hubo ediciones no autorizadas. - Deshabilitar el editor en producción inmediatamente si está activo.=== “Preventivas”
!!! tip "" Añadir en `wp-config.php`:
```php define('DISALLOW_FILE_EDIT', true); define('DISALLOW_FILE_MODS', true); ```
- Forzar despliegues mediante control de versiones (CI/CD). - Implementar monitoreo de integridad de archivos (FIM). - Registrar y alertar accesos al editor con notificaciones de administración. - Restringir acceso al panel por IP y habilitar 2FA para cuentas con permisos de edición.Referencias
Sección titulada «Referencias»- WordPress Hardening Guide
- OWASP Code Injection Guidance