¿Qué es un ataque de inclusión de archivos?
Publicado: 2023-03-31Cualquier herramienta se puede utilizar con buenas o malas intenciones, y la inclusión de archivos no es diferente. La inclusión de archivos es un método de programación que facilita el mantenimiento del código y amplía las funciones en un sitio. Un ataque de inclusión de archivos abusa de la forma en que PHP usa la inclusión de archivos como un método válido para unir y ejecutar código de muchos archivos separados para crear una sola página web. Dado que PHP es un lenguaje que usa WordPress, WordPress y otras aplicaciones de PHP son propensas a vulnerabilidades de inclusión de archivos cuando las medidas de seguridad apropiadas están rotas, incompletas o ausentes.
En esta guía completa sobre ataques de inclusión de archivos, exploraremos las formas en que los piratas informáticos aprovechan la desinfección y validación deficientes de las entradas de los usuarios para inyectar malware y enviar instrucciones incorrectas para ingresar a los sitios de WordPress.
Aprenderá cómo ocurren los ataques de inclusión de archivos de WordPress y qué puede hacer para proteger su sitio web de ser víctima de ellos.
¿Qué es la inclusión de archivos?
La inclusión de archivos es una técnica de desarrollo para incluir muchos archivos en una secuencia de comandos o página web para agregar funcionalidad, reutilizar una plantilla de diseño o compartir una parte del contenido en varias páginas.
Las inclusiones de archivos son absolutamente necesarias. Los desarrolladores suelen utilizarlos para los siguientes propósitos:
- Incluir archivos de encabezado y pie de página comunes a todas las páginas de un sitio web para garantizar la coherencia en el diseño y la función.
- Incluyendo scripts y bibliotecas para funciones clave en un sitio web o una aplicación web.
- Incluyendo archivos de configuración que contienen ajustes para la aplicación, como información de conexión a la base de datos y claves API.
- Incluir contenido como imágenes, video, texto u otro contenido en páginas web.
- Incluye funcionalidad para generar contenido dinámico basado en la entrada del usuario pasada como parámetro de URL. Por ejemplo, un usuario puede enviar un formulario para generar cierta salida.
Tipos de inclusión de archivos
Con la técnica de inclusión de archivos, los desarrolladores pueden agregar archivos y scripts a una página web de forma estática o dinámica.
Mediante la inclusión de archivos estáticos, un desarrollador puede reutilizar el mismo texto o código en varias páginas consultando un Localizador uniforme de recursos (URL) o una ruta a un archivo almacenado localmente, es decir, en el mismo servidor. Las inclusiones de archivos estáticos permiten que los temas utilicen el mismo código de encabezado, pie de página o menú de navegación en muchas páginas web.
Las inclusiones de archivos dinámicos aceptan la entrada del usuario en tiempo de ejecución. El usuario indica la salida deseada pasando la ruta a un archivo específico. Por lo general, la entrada del usuario se pasará como un parámetro en una URL o en el envío de un formulario. Por ejemplo, un usuario puede seleccionar "Inglés" de una lista desplegable de selección de idiomas, lo que lo lleva a una versión en inglés de la página en la que se encuentra cambiando la URL de esta manera: /page.php?language=english
. Si alguien reemplazó " english
" con la URL de un archivo remoto, es posible que pueda inyectar un shell web como puerta trasera y/u otro malware en el sitio de destino si no hay comprobaciones para evitarlo.
¿Cómo se implementa la inclusión de archivos en WordPress?
Todas las aplicaciones web dinámicas escritas en PHP, como WordPress, pueden utilizar la inclusión de archivos de forma segura. En las aplicaciones escritas en PHP, los desarrolladores realizan la inclusión de archivos utilizando las declaraciones include
y require
. Los desarrolladores usan ambas declaraciones para insertar el contenido de un script PHP en otro. Esto sucede antes de que el código se ejecute en el servidor.
Si observa algunos de los archivos principales de WordPress, muchos de ellos se refieren a otros scripts principales. Cuando están todos cargados juntos, construyen la estructura de su sitio y generan las páginas web individuales solicitadas por un visitante. El index.php
principal hace referencia wp-blog-header.php
, que carga el entorno de WordPress y la plantilla del tema: wp-load.php
y template-loader.php
, respectivamente.
Junto con el núcleo de WordPress, los complementos y los temas también utilizan la inclusión de archivos para realizar las tareas necesarias. Sin embargo, con decenas de miles de complementos de WordPress disponibles, no todos están tan probados como el núcleo de WordPress.
Las inclusiones de archivos presentan serios riesgos de seguridad cuando los desarrolladores no los protegen adecuadamente. Si el código que está utilizando no valida ni desinfecta la entrada del usuario, los piratas informáticos pueden explotarlo. Pueden usarlo para instalar malware y robar información confidencial, ¡posiblemente la suya o la de sus clientes!
¿Qué es un ataque de inclusión de archivos?
Son posibles dos tipos de ataques de inclusión de archivos: inclusión de archivos locales (LFI) o inclusión de archivos remotos (RFI).
Los ataques de inclusión de archivos forman parte de una clase más amplia de ataques de inyección . Esto incluye inyecciones de SQL (SQLi), secuencias de comandos entre sitios (XSS) y ataques de inclusión de comandos. Los piratas informáticos pueden explotar las vulnerabilidades de entrada para realizar otros tipos de ataques, como ataques de desbordamiento de búfer.
Ataques de inclusión de archivos locales y remotos
Los sitios web y las aplicaciones web que se basan en inclusiones dinámicas de archivos para habilitar ciertas funciones pueden estar expuestos tanto a ataques de inclusión de archivos remotos como a ataques de inclusión de archivos locales.
Inclusiones de archivos locales (LFI)
Un ataque de inclusión de archivos locales puede inyectar un archivo ubicado en el mismo servidor que el sitio web o la aplicación web de destino. Los ataques LFI a menudo pueden obtener acceso a archivos normalmente restringidos. En un ataque LFI, el archivo incluido ya debe estar presente en el servidor de aplicaciones local al que se dirige. En un ataque LFI, un mal actor puede leer archivos importantes, acceder a información más confidencial o ejecutar comandos arbitrarios.
Los ataques de inclusión de archivos locales también pueden permitir que alguien acceda a datos confidenciales fuera del sitio web objetivo. Esto incluye archivos de configuración del servidor como /etc/passwd
o archivos de configuración de otro sitio web como wp-config.php
. Sin embargo, es importante tener en cuenta que los archivos de destino deben ser legibles para usuarios sin privilegios; por ejemplo, el archivo /etc/passwd
en los sistemas Linux es propiedad de root, pero con sus permisos de archivo establecidos en 644, todos los demás usuarios del sistema puede verlo.
Para navegar a través del sistema de archivos, los atacantes emplean el recorrido de directorios, una técnica para acceder a archivos fuera del directorio de trabajo actual mediante la manipulación de secuencias de recorrido de rutas de directorios como ../../../
.
Inclusiones de archivos remotos (RFI)
Los ataques de inclusión de archivos remotos se dirigen a sitios web y aplicaciones que recurren a archivos alojados en otro servidor. Al explotar la inclusión remota de archivos, un atacante puede recurrir a un código malicioso alojado en otro lugar. Debe existir una vulnerabilidad en el servidor de destino, pero el atacante la usará para ejecutar código malicioso alojado en otro lugar.
En los ataques de inclusión de archivos remotos, los piratas informáticos aprovechan el comando "incluir archivos dinámicos" en las aplicaciones web. Los piratas informáticos pueden explotar las aplicaciones web que aceptan la entrada del usuario, como direcciones URL y valores de parámetros, y pasarlos a los mecanismos de "inclusión de archivos" sin la desinfección adecuada. En este tipo de vulnerabilidad, los atacantes pueden explotar la aplicación web para incluir archivos remotos con scripts maliciosos.
¿Por qué ocurren los ataques de inclusión de archivos de WordPress?
Los sitios de WordPress representan el 43% de Internet, por lo que son un gran objetivo para los atacantes. Nuestro Informe anual de vulnerabilidades de WordPress de 2022 muestra que más del 90% de todas las vulnerabilidades de WordPress descubiertas el año pasado estaban en complementos y temas. Por lo general, vimos al menos una nueva falla de seguridad informada semanalmente en 20 a 50 complementos.
Recientemente, los investigadores de seguridad descubrieron una vulnerabilidad de inclusión de archivos en el popular tema OceanWP. OceanWP tiene más de medio millón de usuarios activos. (Informamos esto en nuestro informe semanal de vulnerabilidades de WordPress). Aunque OceanWP corrigió rápidamente la vulnerabilidad, los piratas informáticos tuvieron tiempo de explotarla mientras millones de sitios de WordPress todavía usaban el código obsoleto.
Cómo detectar un ataque de inclusión de archivos de WordPress
A diferencia de los ataques de denegación de servicio que pueden ralentizar significativamente su sitio web o los redireccionamientos maliciosos que alejan a las personas de su sitio web hacia recursos fraudulentos, los ataques de inclusión de archivos son difíciles de detectar. La razón de esto es simple. Los piratas informáticos utilizan la inclusión de archivos como punto de entrada para cargar malware y llevar a cabo más ataques. La inclusión del archivo es un camino silencioso hacia el daño más visible. Por lo tanto, cuando un hacker inyecta un código malicioso en un sitio web o accede a información confidencial, existe una gran posibilidad de que usted apenas lo note.
Esto nos lleva a una conclusión importante. La seguridad del sitio web debe comenzar por reducir la superficie de ataque y fortalecerla. Esto ayudará a evitar que los piratas informáticos aprovechen las vulnerabilidades de entrada de las que se derivan los ataques de inyección, como los ataques de inclusión de archivos, las inyecciones de comandos y SQL y las secuencias de comandos entre sitios (XSS).
¿Cómo defenderse de los ataques de inclusión de archivos de WordPress?
Con el creciente número de ataques cibernéticos dirigidos a WordPress, la seguridad del sitio web de WordPress es más importante que nunca. La defensa contra los ataques de inclusión de archivos de WordPress requiere un enfoque multifacético que limite la posibilidad de explotar las vulnerabilidades de entrada y la ejecución de código arbitrario. Puede hacerlo si adopta una combinación de medidas de seguridad proactivas y reactivas.
Estas son las tres principales recomendaciones de seguridad de WordPress para proteger su sitio web contra los ataques de inclusión de archivos.
Mantenga todo el software actualizado
Mantener todo su software actualizado, incluido el núcleo de WordPress, los temas, los complementos y las extensiones, es fundamental cuando se trata de reducir la superficie de ataque de su sitio. A medida que surgen nuevas vulnerabilidades todos los días, no dé a los piratas informáticos la oportunidad de explotarlas. Instale parches de seguridad y realice actualizaciones tan pronto como estén disponibles.
Adquiera el hábito de realizar actualizaciones periódicas usted mismo o active las actualizaciones automáticas para asegurarse de que su sitio web nunca ejecute ningún código vulnerable. iThemes Security Pro puede encargarse del núcleo de WordPress, complementos y actualizaciones de temas por usted.
iThemes Security Pro busca automáticamente nuevas versiones del software que utiliza su sitio web. Su sistema de gestión de versiones garantiza que tengas instalados todos los parches y actualizaciones de seguridad tan pronto como estén disponibles. Además de eso, iThemes también lo alertará si está ejecutando algún software obsoleto en la infraestructura de su servidor. Por ejemplo, si está utilizando una versión de PHP pasada su fecha de finalización o un servidor MySQL vulnerable, iThemes Pro le avisará.
Si tiene varios sitios de WordPress bajo su control, iThemes Sync Pro le brinda una interfaz única para administrarlos todos. Sync también ofrece monitoreo avanzado del tiempo de actividad y comentarios de SEO.
Deshabilitar la inclusión de archivos remotos en PHP
Es posible que un sitio web haga referencia a archivos remotos desde una URL externa si la opción allow_url_fopen
está habilitada en el entorno PHP. Esto puede aumentar el riesgo de ataques de inclusión de archivos remotos. Deshabilitar allow_url_fopen
elimina efectivamente la posibilidad de que alguien ejecute un código malicioso cargado desde una ubicación remota en su sitio web de WordPress.
Puede deshabilitar allow_url_fopen
en la configuración global de PHP o configurando allow_url_fopen
en 0
en un archivo local .user.ini
o php.ini
creado para una carpeta web individual. Puede verificar si la opción está deshabilitada en su entorno PHP creando una página de información de PHP simple usando la función phpinfo()
, como se muestra a continuación.
Implementar encabezados de seguridad de WordPress
Los encabezados de respuesta HTTP como la Política de seguridad de contenido (CSP) y Set-Cookie pueden agregar una capa de defensa contra la inclusión de archivos y otros ataques de inyección a su sitio web de WordPress.
Los encabezados de seguridad de WordPress permiten reducir o bloquear los vectores mediante los cuales pueden ocurrir ataques de inclusión de archivos remotos y secuencias de comandos entre sitios (XSS) al hacer una lista de fuentes confiables, secuencias de comandos y otro contenido que se puede cargar. Todas las demás fuentes serán denegadas. Además de eso, los encabezados de respuesta HTTP pueden ayudarlo a agregar protección contra la falsificación de solicitudes entre sitios (CSRF) y el secuestro de clics.
Proteja su sitio de WordPress contra ataques de inyección con iThemes Security Pro
Junto con SQL y las inyecciones de comandos, los ataques de inclusión de archivos constituyen los vectores de ataque más comunes que apuntan a la seguridad de los sitios de WordPress. Aunque WordPress demuestra un alto nivel de seguridad de la aplicación, los sitios altamente personalizados combinados con prácticas de seguridad deficientes pueden exponer un sitio web de WordPress a ataques de inyección que aprovechan las vulnerabilidades de entrada.
Todos los días, se encuentran nuevas vulnerabilidades en la creciente población de complementos y temas de WordPress. Y aunque generalmente se parchean rápidamente, la falta de actualizaciones oportunas y la dependencia de software antiguo pueden hacer que su sitio web de WordPress sea un objetivo fácil para los piratas informáticos. Hoy en día, la seguridad del sitio web es más crítica que nunca. El creciente número de ciberataques significa que incluso los propietarios de sitios web más atentos pueden ser víctimas de piratas informáticos si no toman medidas proactivas para proteger sus sitios.
iThemes Security Pro es una poderosa solución de seguridad de WordPress que le permite adoptar las mejores prácticas de seguridad de WordPress para proteger su sitio web contra los ataques cibernéticos más sofisticados. Con monitoreo avanzado de integridad de archivos, escaneo de vulnerabilidades y mitigación automática de ataques, iThemes Security Pro es una excelente opción si está buscando una forma efectiva y confiable de proteger su sitio de WordPress.
El mejor complemento de seguridad de WordPress para asegurar y proteger WordPress
Actualmente, WordPress funciona en más del 40% de todos los sitios web, por lo que se ha convertido en un objetivo fácil para los piratas informáticos con intenciones maliciosas. El complemento iThemes Security Pro elimina las conjeturas de la seguridad de WordPress para que sea más fácil asegurar y proteger su sitio web de WordPress. Es como tener un experto en seguridad a tiempo completo en el personal que supervisa y protege constantemente su sitio de WordPress por usted.
Kiki tiene una licenciatura en administración de sistemas de información y más de dos años de experiencia en Linux y WordPress. Actualmente trabaja como especialista en seguridad para Liquid Web y Nexcess. Antes de eso, Kiki formó parte del equipo de soporte de Liquid Web Managed Hosting donde ayudó a cientos de propietarios de sitios web de WordPress y aprendió qué problemas técnicos encuentran a menudo. Su pasión por la escritura le permite compartir su conocimiento y experiencia para ayudar a las personas. Además de la tecnología, a Kiki le gusta aprender sobre el espacio y escuchar podcasts sobre crímenes reales.