SCW图标
英雄背景无分隔线
博客

Coders Conquer Security: Serie Share & Learn: Carga de archivos sin restricciones

Jaap Karan Singh
发布于 2019 年 1 月 10 日
最后更新于 2026年3月6日

El problema de la carga de archivos sin restricciones no es un ataque en sí mismo, sino una situación o estado común que permite a los atacantes acceder fácilmente a las aplicaciones y los recursos de la red. Puedes pensar que es algo así como andar por ahí con ropa mojada cuando hace frío. Si bien hacerlo no necesariamente hará que te enfermes por sí solo, reduce tu resistencia hasta el punto de que cualquier virus oportunista fácilmente abruma las defensas del cuerpo.

En el ámbito de la ciberseguridad, los atacantes pueden aprovechar rápidamente cualquier aplicación o programa al que se haya permitido subir archivos sin restricciones. Y los resultados pueden ser devastadores. Los atacantes inteligentes pueden utilizar su acceso sin restricciones para subir archivos malintencionados, configurar scripts para robar credenciales o lanzar ataques más profundos contra una red utilizando los permisos propios de una aplicación. Incluso un atacante relativamente poco sofisticado podría utilizar este tipo de acceso sin restricciones para realizar ataques de denegación de servicio o bloquear una aplicación.

Afortunadamente, hay varias maneras de superar el problema de la subida de archivos sin restricciones que detendrán a los posibles atacantes. Para ello, analizaremos tres aspectos clave de la subida de archivos sin restricciones:

  • Cómo funcionan
  • Por qué son tan peligrosos
  • Cómo puedes establecer defensas para detenerlos.

¿Cómo aprovechan los ataques la carga de archivos sin restricciones?

Hay muchas razones por las que los sitios querrían permitir que el público suba archivos. Quizás una empresa esté buscando contratar personas y quiera permitirles subir sus currículums como parte del proceso de solicitud. Los bancos pueden alentar a los clientes a completar documentos importantes en casa, por ejemplo, al solicitar un préstamo o abrir una cuenta nueva. Los sitios turísticos o de redes sociales pueden invitar a los usuarios a subir sus fotografías para compartirlas con otros.

Hay muchas razones válidas para permitir la carga de archivos. Y de forma predeterminada, es probable que la mayoría de las aplicaciones nuevas permitan subir cualquier tipo de archivo, sin restricciones. El problema comienza cuando un posible atacante se da cuenta de que no hay restricciones para subir esas cargas.

Al no tener restricciones a la hora de subir contenido, los sitios sufren tres tipos de ataques. Empezando por los menos sofisticados, un usuario malintencionado puede simplemente subir archivos enormes, como archivos comprimidos que contienen cientos de gigabytes de información. Además de reducir el ancho de banda, esto puede sobrecargar el área de almacenamiento asignada a la aplicación.

El siguiente escalón de la infame escalera es un usuario que sube un archivo malicioso, como un virus, o incluso algo más siniestro, como un ransomware. Es algo así como la vieja superstición de tener que invitar específicamente a un vampiro a tu casa. Si cuelgas un cartel que dice que cualquiera puede entrar libremente, es como subir archivos sin restricciones. Ya no controlas lo que entra por tu puerta, y probablemente deberías esperar que no todas las visitas o archivos sean benignos. Algunos de ellos pueden ser monstruos.

Por último, un atacante experto puede utilizar las subidas sin restricciones para introducirse en una red y realizar ataques más profundos. Como no hay restricciones en cuanto a lo que alguien puede subir, un atacante puede enviar su propio shell web a través de ese proceso. A partir de entonces, pueden enviar comandos a su shell y esos comandos se ejecutarán en el servidor con el mismo nivel de permisos que la aplicación.

¿Por qué es tan peligroso tener acceso sin restricciones a los archivos?

Si bien la implementación de una aplicación con acceso sin restricciones a los archivos no es un peligro inmediato, es básicamente como abrir una brecha en las defensas de ciberseguridad e invitar a alguien a atacar a la organización. Tarde o temprano, alguien responderá.

En el nivel más básico, los atacantes ni siquiera necesitan mucha habilidad para causar estragos. El simple hecho de comprimir archivos extremadamente grandes y subirlos puede ser suficiente para denegar el servicio a los usuarios válidos. Con el tiempo, puede incluso bloquear la aplicación o un sitio completo, dependiendo de cómo esté programada y conectada en red la aplicación.

Tener acceso sin restricciones a los archivos también puede abrir un agujero en los firewalls de red y otras protecciones. Si ha creado una ruta para que los atacantes carguen malware directamente en su red principal, no importará si tiene un escáner que analice su correo electrónico entrante o la actividad de navegación web de sus empleados. El malware puede bloquear la aplicación o incluso el servidor en el que se ejecuta, aunque probablemente ese sea el mejor resultado posible. En el peor de los casos, un programa verdaderamente malintencionado como el ransomware puede utilizar el servidor infectado para extenderse por toda la red.

Es probable que los atacantes más expertos no sean tan obvios al explotar una aplicación con acceso ilimitado a los archivos. En su lugar, pueden utilizar la vulnerabilidad para poner en peligro la aplicación y utilizarla para penetrar más profundamente en la red, actuar con lentitud e intentar evitar ser detectados. Esto se puede hacer cargando un shell web u otro archivo de tipo .exe y, a continuación, enviándole comandos directamente una vez que aparezca. Todo lo que el usuario ejecute a través de su shell normalmente lo ejecutará el servidor, utilizando los niveles de permisos establecidos para la aplicación que lo aloja. Para el servidor, esos comandos provienen de la aplicación y no es probable que se comprueben o examinen más a fondo.

Todo esto hace que la vulnerabilidad de acceso sin restricciones a los archivos sea una de las más peligrosas de la red. Probablemente no se trate de si causará un problema, sino de cuándo.

¿Cómo elimino la vulnerabilidad de acceso sin restricciones a los archivos?

Entonces, ¿cómo se resuelve el problema del acceso sin restricciones a los archivos? La forma más sencilla es simplemente añadir una o varias restricciones a los tipos de archivos que se pueden cargar. Puedes comunicárselas al usuario si lo deseas, por ejemplo, diciéndole que el sitio solo aceptará archivos de Word o de texto o, en el caso de un sitio para compartir imágenes, solo .jpgs o .gifs. En el backend, tendrás que crear una lista blanca de extensiones de archivo aceptables y, a continuación, rechazar todo lo demás. También se deben establecer restricciones en cuanto a la longitud máxima de los nombres de los archivos. Si el nombre de un archivo contiene caracteres especiales que podrían indicar que se ha intentado activar un comando ejecutable, también se debe rechazar.

Además de los tipos de archivos y las reglas de nomenclatura, también querrá restringir el tamaño máximo de cada archivo. El tamaño máximo debe ser razonable y apropiado para el tipo de archivo que se espera que recopile la aplicación. Esto podría significar un límite de aproximadamente 10 megabytes para los archivos de Word y algo un poco más grande, quizás alrededor de 50 megabytes, para los archivos gráficos. También es posible establecer reglas de tamaño mínimo de archivo, pero solo si se conoce bien el rango de tamaño de los archivos esperados, lo que podría ocurrir si los usuarios rellenan y cargan un formulario específico.

Es posible que los atacantes sigan encontrando una forma inteligente de burlar un shell u otro programa potencialmente malicioso más allá de las restricciones de tamaño y tipo de archivo. Como compensación, los archivos recopilados siempre deben almacenarse en un directorio privado sin privilegios de ejecución. Para mayor seguridad, el sistema puede cambiar el nombre de los archivos a una serie de caracteres aleatorios. Esto evitaría que los usuarios no autorizados de fuera de la red buscaran la ubicación del archivo que han subido, lo que podría permitirles acceder a la red. Sin embargo, si lo hace, es probable que necesite configurar y mantener una tabla que vincule los nombres aleatorios de los archivos con sus designaciones originales.

Por último, cualquier programa defensivo que utilice la organización para esas tareas debe analizar todo lo que llegue a la red a través de una carga en busca de malware y virus. Puede que esto no lo detecte todo, pero es un importante nivel de seguridad que podría usarse para detectar hasta el 90 por ciento o más de los archivos malintencionados más comunes que intentan entrar al subir archivos.

Restringir el problema de carga de archivos sin restricciones

Una vez que se implementan varios niveles de seguridad en el backend, el problema de carga de archivos sin restricciones deja de ser un problema. Básicamente, estás eliminando el problema imponiendo restricciones a la carga de archivos, por lo que ya no son ilimitadas. Solo se permite la entrada de archivos buenos, mientras que todos los vampiros y el malware se quedan fuera.

Para leer más, puede echar un vistazo a la carga de archivos sin restricciones de OWASP Hoja de trucos de prevención, que describe algunos de los problemas más comunes cuando se permite este tipo de situaciones en una red. También puede poner a prueba sus nuevos conocimientos defensivos con el escaparate gratuito de la plataforma Secure Code Warrior, que forma a los equipos de ciberseguridad para que se conviertan en los mejores ciberguerreros. Para obtener más información sobre cómo derrotar esta vulnerabilidad y la galería de otras amenazas de los delincuentes, visita la Blog de Secure Code Warrior.

¿Cree que está preparado para hacer frente a esta vulnerabilidad ahora mismo? Dirígete al campo de batalla y pon a prueba tus habilidades:

查看资源
查看资源

En el ámbito de la ciberseguridad, los atacantes pueden aprovechar rápidamente cualquier aplicación o programa al que se haya permitido subir archivos sin restricciones. Y los resultados pueden ser devastadores.

感兴趣了解更多吗?

Jaap Karan Singh是一位安全编码布道者,首席辛格和Secure Code Warrior 的共同创始人。

了解更多

Secure Code Warrior 您的组织在软件开发全生命周期中保护代码安全,并营造将网络安全置于首位的企业文化。无论您是应用安全管理员、开发人员、首席信息安全官,还是任何与安全相关的工作人员,我们都能助力您的组织降低不安全代码带来的风险。

预约演示
分享到:
领英品牌社交x 标志
作者
Jaap Karan Singh
发表于2019年1月10日

Jaap Karan Singh是一位安全编码布道者,首席辛格和Secure Code Warrior 的共同创始人。

分享到:
领英品牌社交x 标志

El problema de la carga de archivos sin restricciones no es un ataque en sí mismo, sino una situación o estado común que permite a los atacantes acceder fácilmente a las aplicaciones y los recursos de la red. Puedes pensar que es algo así como andar por ahí con ropa mojada cuando hace frío. Si bien hacerlo no necesariamente hará que te enfermes por sí solo, reduce tu resistencia hasta el punto de que cualquier virus oportunista fácilmente abruma las defensas del cuerpo.

En el ámbito de la ciberseguridad, los atacantes pueden aprovechar rápidamente cualquier aplicación o programa al que se haya permitido subir archivos sin restricciones. Y los resultados pueden ser devastadores. Los atacantes inteligentes pueden utilizar su acceso sin restricciones para subir archivos malintencionados, configurar scripts para robar credenciales o lanzar ataques más profundos contra una red utilizando los permisos propios de una aplicación. Incluso un atacante relativamente poco sofisticado podría utilizar este tipo de acceso sin restricciones para realizar ataques de denegación de servicio o bloquear una aplicación.

Afortunadamente, hay varias maneras de superar el problema de la subida de archivos sin restricciones que detendrán a los posibles atacantes. Para ello, analizaremos tres aspectos clave de la subida de archivos sin restricciones:

  • Cómo funcionan
  • Por qué son tan peligrosos
  • Cómo puedes establecer defensas para detenerlos.

¿Cómo aprovechan los ataques la carga de archivos sin restricciones?

Hay muchas razones por las que los sitios querrían permitir que el público suba archivos. Quizás una empresa esté buscando contratar personas y quiera permitirles subir sus currículums como parte del proceso de solicitud. Los bancos pueden alentar a los clientes a completar documentos importantes en casa, por ejemplo, al solicitar un préstamo o abrir una cuenta nueva. Los sitios turísticos o de redes sociales pueden invitar a los usuarios a subir sus fotografías para compartirlas con otros.

Hay muchas razones válidas para permitir la carga de archivos. Y de forma predeterminada, es probable que la mayoría de las aplicaciones nuevas permitan subir cualquier tipo de archivo, sin restricciones. El problema comienza cuando un posible atacante se da cuenta de que no hay restricciones para subir esas cargas.

Al no tener restricciones a la hora de subir contenido, los sitios sufren tres tipos de ataques. Empezando por los menos sofisticados, un usuario malintencionado puede simplemente subir archivos enormes, como archivos comprimidos que contienen cientos de gigabytes de información. Además de reducir el ancho de banda, esto puede sobrecargar el área de almacenamiento asignada a la aplicación.

El siguiente escalón de la infame escalera es un usuario que sube un archivo malicioso, como un virus, o incluso algo más siniestro, como un ransomware. Es algo así como la vieja superstición de tener que invitar específicamente a un vampiro a tu casa. Si cuelgas un cartel que dice que cualquiera puede entrar libremente, es como subir archivos sin restricciones. Ya no controlas lo que entra por tu puerta, y probablemente deberías esperar que no todas las visitas o archivos sean benignos. Algunos de ellos pueden ser monstruos.

Por último, un atacante experto puede utilizar las subidas sin restricciones para introducirse en una red y realizar ataques más profundos. Como no hay restricciones en cuanto a lo que alguien puede subir, un atacante puede enviar su propio shell web a través de ese proceso. A partir de entonces, pueden enviar comandos a su shell y esos comandos se ejecutarán en el servidor con el mismo nivel de permisos que la aplicación.

¿Por qué es tan peligroso tener acceso sin restricciones a los archivos?

Si bien la implementación de una aplicación con acceso sin restricciones a los archivos no es un peligro inmediato, es básicamente como abrir una brecha en las defensas de ciberseguridad e invitar a alguien a atacar a la organización. Tarde o temprano, alguien responderá.

En el nivel más básico, los atacantes ni siquiera necesitan mucha habilidad para causar estragos. El simple hecho de comprimir archivos extremadamente grandes y subirlos puede ser suficiente para denegar el servicio a los usuarios válidos. Con el tiempo, puede incluso bloquear la aplicación o un sitio completo, dependiendo de cómo esté programada y conectada en red la aplicación.

Tener acceso sin restricciones a los archivos también puede abrir un agujero en los firewalls de red y otras protecciones. Si ha creado una ruta para que los atacantes carguen malware directamente en su red principal, no importará si tiene un escáner que analice su correo electrónico entrante o la actividad de navegación web de sus empleados. El malware puede bloquear la aplicación o incluso el servidor en el que se ejecuta, aunque probablemente ese sea el mejor resultado posible. En el peor de los casos, un programa verdaderamente malintencionado como el ransomware puede utilizar el servidor infectado para extenderse por toda la red.

Es probable que los atacantes más expertos no sean tan obvios al explotar una aplicación con acceso ilimitado a los archivos. En su lugar, pueden utilizar la vulnerabilidad para poner en peligro la aplicación y utilizarla para penetrar más profundamente en la red, actuar con lentitud e intentar evitar ser detectados. Esto se puede hacer cargando un shell web u otro archivo de tipo .exe y, a continuación, enviándole comandos directamente una vez que aparezca. Todo lo que el usuario ejecute a través de su shell normalmente lo ejecutará el servidor, utilizando los niveles de permisos establecidos para la aplicación que lo aloja. Para el servidor, esos comandos provienen de la aplicación y no es probable que se comprueben o examinen más a fondo.

Todo esto hace que la vulnerabilidad de acceso sin restricciones a los archivos sea una de las más peligrosas de la red. Probablemente no se trate de si causará un problema, sino de cuándo.

¿Cómo elimino la vulnerabilidad de acceso sin restricciones a los archivos?

Entonces, ¿cómo se resuelve el problema del acceso sin restricciones a los archivos? La forma más sencilla es simplemente añadir una o varias restricciones a los tipos de archivos que se pueden cargar. Puedes comunicárselas al usuario si lo deseas, por ejemplo, diciéndole que el sitio solo aceptará archivos de Word o de texto o, en el caso de un sitio para compartir imágenes, solo .jpgs o .gifs. En el backend, tendrás que crear una lista blanca de extensiones de archivo aceptables y, a continuación, rechazar todo lo demás. También se deben establecer restricciones en cuanto a la longitud máxima de los nombres de los archivos. Si el nombre de un archivo contiene caracteres especiales que podrían indicar que se ha intentado activar un comando ejecutable, también se debe rechazar.

Además de los tipos de archivos y las reglas de nomenclatura, también querrá restringir el tamaño máximo de cada archivo. El tamaño máximo debe ser razonable y apropiado para el tipo de archivo que se espera que recopile la aplicación. Esto podría significar un límite de aproximadamente 10 megabytes para los archivos de Word y algo un poco más grande, quizás alrededor de 50 megabytes, para los archivos gráficos. También es posible establecer reglas de tamaño mínimo de archivo, pero solo si se conoce bien el rango de tamaño de los archivos esperados, lo que podría ocurrir si los usuarios rellenan y cargan un formulario específico.

Es posible que los atacantes sigan encontrando una forma inteligente de burlar un shell u otro programa potencialmente malicioso más allá de las restricciones de tamaño y tipo de archivo. Como compensación, los archivos recopilados siempre deben almacenarse en un directorio privado sin privilegios de ejecución. Para mayor seguridad, el sistema puede cambiar el nombre de los archivos a una serie de caracteres aleatorios. Esto evitaría que los usuarios no autorizados de fuera de la red buscaran la ubicación del archivo que han subido, lo que podría permitirles acceder a la red. Sin embargo, si lo hace, es probable que necesite configurar y mantener una tabla que vincule los nombres aleatorios de los archivos con sus designaciones originales.

Por último, cualquier programa defensivo que utilice la organización para esas tareas debe analizar todo lo que llegue a la red a través de una carga en busca de malware y virus. Puede que esto no lo detecte todo, pero es un importante nivel de seguridad que podría usarse para detectar hasta el 90 por ciento o más de los archivos malintencionados más comunes que intentan entrar al subir archivos.

Restringir el problema de carga de archivos sin restricciones

Una vez que se implementan varios niveles de seguridad en el backend, el problema de carga de archivos sin restricciones deja de ser un problema. Básicamente, estás eliminando el problema imponiendo restricciones a la carga de archivos, por lo que ya no son ilimitadas. Solo se permite la entrada de archivos buenos, mientras que todos los vampiros y el malware se quedan fuera.

Para leer más, puede echar un vistazo a la carga de archivos sin restricciones de OWASP Hoja de trucos de prevención, que describe algunos de los problemas más comunes cuando se permite este tipo de situaciones en una red. También puede poner a prueba sus nuevos conocimientos defensivos con el escaparate gratuito de la plataforma Secure Code Warrior, que forma a los equipos de ciberseguridad para que se conviertan en los mejores ciberguerreros. Para obtener más información sobre cómo derrotar esta vulnerabilidad y la galería de otras amenazas de los delincuentes, visita la Blog de Secure Code Warrior.

¿Cree que está preparado para hacer frente a esta vulnerabilidad ahora mismo? Dirígete al campo de batalla y pon a prueba tus habilidades:

查看资源
查看资源

请填写以下表格以下载报告

我们希望获得您的许可,以便向您发送有关我们产品或安全编码相关主题的信息。我们将始终以最高标准谨慎处理您的个人数据,绝不会出于营销目的将其出售给其他公司。

发送
scw 成功图标
SCW 错误图标
要提交表单,请启用「分析」cookie。完成后请随时将其重新禁用。

El problema de la carga de archivos sin restricciones no es un ataque en sí mismo, sino una situación o estado común que permite a los atacantes acceder fácilmente a las aplicaciones y los recursos de la red. Puedes pensar que es algo así como andar por ahí con ropa mojada cuando hace frío. Si bien hacerlo no necesariamente hará que te enfermes por sí solo, reduce tu resistencia hasta el punto de que cualquier virus oportunista fácilmente abruma las defensas del cuerpo.

En el ámbito de la ciberseguridad, los atacantes pueden aprovechar rápidamente cualquier aplicación o programa al que se haya permitido subir archivos sin restricciones. Y los resultados pueden ser devastadores. Los atacantes inteligentes pueden utilizar su acceso sin restricciones para subir archivos malintencionados, configurar scripts para robar credenciales o lanzar ataques más profundos contra una red utilizando los permisos propios de una aplicación. Incluso un atacante relativamente poco sofisticado podría utilizar este tipo de acceso sin restricciones para realizar ataques de denegación de servicio o bloquear una aplicación.

Afortunadamente, hay varias maneras de superar el problema de la subida de archivos sin restricciones que detendrán a los posibles atacantes. Para ello, analizaremos tres aspectos clave de la subida de archivos sin restricciones:

  • Cómo funcionan
  • Por qué son tan peligrosos
  • Cómo puedes establecer defensas para detenerlos.

¿Cómo aprovechan los ataques la carga de archivos sin restricciones?

Hay muchas razones por las que los sitios querrían permitir que el público suba archivos. Quizás una empresa esté buscando contratar personas y quiera permitirles subir sus currículums como parte del proceso de solicitud. Los bancos pueden alentar a los clientes a completar documentos importantes en casa, por ejemplo, al solicitar un préstamo o abrir una cuenta nueva. Los sitios turísticos o de redes sociales pueden invitar a los usuarios a subir sus fotografías para compartirlas con otros.

Hay muchas razones válidas para permitir la carga de archivos. Y de forma predeterminada, es probable que la mayoría de las aplicaciones nuevas permitan subir cualquier tipo de archivo, sin restricciones. El problema comienza cuando un posible atacante se da cuenta de que no hay restricciones para subir esas cargas.

Al no tener restricciones a la hora de subir contenido, los sitios sufren tres tipos de ataques. Empezando por los menos sofisticados, un usuario malintencionado puede simplemente subir archivos enormes, como archivos comprimidos que contienen cientos de gigabytes de información. Además de reducir el ancho de banda, esto puede sobrecargar el área de almacenamiento asignada a la aplicación.

El siguiente escalón de la infame escalera es un usuario que sube un archivo malicioso, como un virus, o incluso algo más siniestro, como un ransomware. Es algo así como la vieja superstición de tener que invitar específicamente a un vampiro a tu casa. Si cuelgas un cartel que dice que cualquiera puede entrar libremente, es como subir archivos sin restricciones. Ya no controlas lo que entra por tu puerta, y probablemente deberías esperar que no todas las visitas o archivos sean benignos. Algunos de ellos pueden ser monstruos.

Por último, un atacante experto puede utilizar las subidas sin restricciones para introducirse en una red y realizar ataques más profundos. Como no hay restricciones en cuanto a lo que alguien puede subir, un atacante puede enviar su propio shell web a través de ese proceso. A partir de entonces, pueden enviar comandos a su shell y esos comandos se ejecutarán en el servidor con el mismo nivel de permisos que la aplicación.

¿Por qué es tan peligroso tener acceso sin restricciones a los archivos?

Si bien la implementación de una aplicación con acceso sin restricciones a los archivos no es un peligro inmediato, es básicamente como abrir una brecha en las defensas de ciberseguridad e invitar a alguien a atacar a la organización. Tarde o temprano, alguien responderá.

En el nivel más básico, los atacantes ni siquiera necesitan mucha habilidad para causar estragos. El simple hecho de comprimir archivos extremadamente grandes y subirlos puede ser suficiente para denegar el servicio a los usuarios válidos. Con el tiempo, puede incluso bloquear la aplicación o un sitio completo, dependiendo de cómo esté programada y conectada en red la aplicación.

Tener acceso sin restricciones a los archivos también puede abrir un agujero en los firewalls de red y otras protecciones. Si ha creado una ruta para que los atacantes carguen malware directamente en su red principal, no importará si tiene un escáner que analice su correo electrónico entrante o la actividad de navegación web de sus empleados. El malware puede bloquear la aplicación o incluso el servidor en el que se ejecuta, aunque probablemente ese sea el mejor resultado posible. En el peor de los casos, un programa verdaderamente malintencionado como el ransomware puede utilizar el servidor infectado para extenderse por toda la red.

Es probable que los atacantes más expertos no sean tan obvios al explotar una aplicación con acceso ilimitado a los archivos. En su lugar, pueden utilizar la vulnerabilidad para poner en peligro la aplicación y utilizarla para penetrar más profundamente en la red, actuar con lentitud e intentar evitar ser detectados. Esto se puede hacer cargando un shell web u otro archivo de tipo .exe y, a continuación, enviándole comandos directamente una vez que aparezca. Todo lo que el usuario ejecute a través de su shell normalmente lo ejecutará el servidor, utilizando los niveles de permisos establecidos para la aplicación que lo aloja. Para el servidor, esos comandos provienen de la aplicación y no es probable que se comprueben o examinen más a fondo.

Todo esto hace que la vulnerabilidad de acceso sin restricciones a los archivos sea una de las más peligrosas de la red. Probablemente no se trate de si causará un problema, sino de cuándo.

¿Cómo elimino la vulnerabilidad de acceso sin restricciones a los archivos?

Entonces, ¿cómo se resuelve el problema del acceso sin restricciones a los archivos? La forma más sencilla es simplemente añadir una o varias restricciones a los tipos de archivos que se pueden cargar. Puedes comunicárselas al usuario si lo deseas, por ejemplo, diciéndole que el sitio solo aceptará archivos de Word o de texto o, en el caso de un sitio para compartir imágenes, solo .jpgs o .gifs. En el backend, tendrás que crear una lista blanca de extensiones de archivo aceptables y, a continuación, rechazar todo lo demás. También se deben establecer restricciones en cuanto a la longitud máxima de los nombres de los archivos. Si el nombre de un archivo contiene caracteres especiales que podrían indicar que se ha intentado activar un comando ejecutable, también se debe rechazar.

Además de los tipos de archivos y las reglas de nomenclatura, también querrá restringir el tamaño máximo de cada archivo. El tamaño máximo debe ser razonable y apropiado para el tipo de archivo que se espera que recopile la aplicación. Esto podría significar un límite de aproximadamente 10 megabytes para los archivos de Word y algo un poco más grande, quizás alrededor de 50 megabytes, para los archivos gráficos. También es posible establecer reglas de tamaño mínimo de archivo, pero solo si se conoce bien el rango de tamaño de los archivos esperados, lo que podría ocurrir si los usuarios rellenan y cargan un formulario específico.

Es posible que los atacantes sigan encontrando una forma inteligente de burlar un shell u otro programa potencialmente malicioso más allá de las restricciones de tamaño y tipo de archivo. Como compensación, los archivos recopilados siempre deben almacenarse en un directorio privado sin privilegios de ejecución. Para mayor seguridad, el sistema puede cambiar el nombre de los archivos a una serie de caracteres aleatorios. Esto evitaría que los usuarios no autorizados de fuera de la red buscaran la ubicación del archivo que han subido, lo que podría permitirles acceder a la red. Sin embargo, si lo hace, es probable que necesite configurar y mantener una tabla que vincule los nombres aleatorios de los archivos con sus designaciones originales.

Por último, cualquier programa defensivo que utilice la organización para esas tareas debe analizar todo lo que llegue a la red a través de una carga en busca de malware y virus. Puede que esto no lo detecte todo, pero es un importante nivel de seguridad que podría usarse para detectar hasta el 90 por ciento o más de los archivos malintencionados más comunes que intentan entrar al subir archivos.

Restringir el problema de carga de archivos sin restricciones

Una vez que se implementan varios niveles de seguridad en el backend, el problema de carga de archivos sin restricciones deja de ser un problema. Básicamente, estás eliminando el problema imponiendo restricciones a la carga de archivos, por lo que ya no son ilimitadas. Solo se permite la entrada de archivos buenos, mientras que todos los vampiros y el malware se quedan fuera.

Para leer más, puede echar un vistazo a la carga de archivos sin restricciones de OWASP Hoja de trucos de prevención, que describe algunos de los problemas más comunes cuando se permite este tipo de situaciones en una red. También puede poner a prueba sus nuevos conocimientos defensivos con el escaparate gratuito de la plataforma Secure Code Warrior, que forma a los equipos de ciberseguridad para que se conviertan en los mejores ciberguerreros. Para obtener más información sobre cómo derrotar esta vulnerabilidad y la galería de otras amenazas de los delincuentes, visita la Blog de Secure Code Warrior.

¿Cree que está preparado para hacer frente a esta vulnerabilidad ahora mismo? Dirígete al campo de batalla y pon a prueba tus habilidades:

观看网络研讨会
开始
了解更多

点击下方链接,下载此资源的PDF文件。

Secure Code Warrior 您的组织在软件开发全生命周期中保护代码安全,并营造将网络安全置于首位的企业文化。无论您是应用安全管理员、开发人员、首席信息安全官,还是任何与安全相关的工作人员,我们都能助力您的组织降低不安全代码带来的风险。

查看报告预约演示
查看资源
分享到:
领英品牌社交x 标志
感兴趣了解更多吗?

分享到:
领英品牌社交x 标志
作者
Jaap Karan Singh
发表于2019年1月10日

Jaap Karan Singh是一位安全编码布道者,首席辛格和Secure Code Warrior 的共同创始人。

分享到:
领英品牌社交x 标志

El problema de la carga de archivos sin restricciones no es un ataque en sí mismo, sino una situación o estado común que permite a los atacantes acceder fácilmente a las aplicaciones y los recursos de la red. Puedes pensar que es algo así como andar por ahí con ropa mojada cuando hace frío. Si bien hacerlo no necesariamente hará que te enfermes por sí solo, reduce tu resistencia hasta el punto de que cualquier virus oportunista fácilmente abruma las defensas del cuerpo.

En el ámbito de la ciberseguridad, los atacantes pueden aprovechar rápidamente cualquier aplicación o programa al que se haya permitido subir archivos sin restricciones. Y los resultados pueden ser devastadores. Los atacantes inteligentes pueden utilizar su acceso sin restricciones para subir archivos malintencionados, configurar scripts para robar credenciales o lanzar ataques más profundos contra una red utilizando los permisos propios de una aplicación. Incluso un atacante relativamente poco sofisticado podría utilizar este tipo de acceso sin restricciones para realizar ataques de denegación de servicio o bloquear una aplicación.

Afortunadamente, hay varias maneras de superar el problema de la subida de archivos sin restricciones que detendrán a los posibles atacantes. Para ello, analizaremos tres aspectos clave de la subida de archivos sin restricciones:

  • Cómo funcionan
  • Por qué son tan peligrosos
  • Cómo puedes establecer defensas para detenerlos.

¿Cómo aprovechan los ataques la carga de archivos sin restricciones?

Hay muchas razones por las que los sitios querrían permitir que el público suba archivos. Quizás una empresa esté buscando contratar personas y quiera permitirles subir sus currículums como parte del proceso de solicitud. Los bancos pueden alentar a los clientes a completar documentos importantes en casa, por ejemplo, al solicitar un préstamo o abrir una cuenta nueva. Los sitios turísticos o de redes sociales pueden invitar a los usuarios a subir sus fotografías para compartirlas con otros.

Hay muchas razones válidas para permitir la carga de archivos. Y de forma predeterminada, es probable que la mayoría de las aplicaciones nuevas permitan subir cualquier tipo de archivo, sin restricciones. El problema comienza cuando un posible atacante se da cuenta de que no hay restricciones para subir esas cargas.

Al no tener restricciones a la hora de subir contenido, los sitios sufren tres tipos de ataques. Empezando por los menos sofisticados, un usuario malintencionado puede simplemente subir archivos enormes, como archivos comprimidos que contienen cientos de gigabytes de información. Además de reducir el ancho de banda, esto puede sobrecargar el área de almacenamiento asignada a la aplicación.

El siguiente escalón de la infame escalera es un usuario que sube un archivo malicioso, como un virus, o incluso algo más siniestro, como un ransomware. Es algo así como la vieja superstición de tener que invitar específicamente a un vampiro a tu casa. Si cuelgas un cartel que dice que cualquiera puede entrar libremente, es como subir archivos sin restricciones. Ya no controlas lo que entra por tu puerta, y probablemente deberías esperar que no todas las visitas o archivos sean benignos. Algunos de ellos pueden ser monstruos.

Por último, un atacante experto puede utilizar las subidas sin restricciones para introducirse en una red y realizar ataques más profundos. Como no hay restricciones en cuanto a lo que alguien puede subir, un atacante puede enviar su propio shell web a través de ese proceso. A partir de entonces, pueden enviar comandos a su shell y esos comandos se ejecutarán en el servidor con el mismo nivel de permisos que la aplicación.

¿Por qué es tan peligroso tener acceso sin restricciones a los archivos?

Si bien la implementación de una aplicación con acceso sin restricciones a los archivos no es un peligro inmediato, es básicamente como abrir una brecha en las defensas de ciberseguridad e invitar a alguien a atacar a la organización. Tarde o temprano, alguien responderá.

En el nivel más básico, los atacantes ni siquiera necesitan mucha habilidad para causar estragos. El simple hecho de comprimir archivos extremadamente grandes y subirlos puede ser suficiente para denegar el servicio a los usuarios válidos. Con el tiempo, puede incluso bloquear la aplicación o un sitio completo, dependiendo de cómo esté programada y conectada en red la aplicación.

Tener acceso sin restricciones a los archivos también puede abrir un agujero en los firewalls de red y otras protecciones. Si ha creado una ruta para que los atacantes carguen malware directamente en su red principal, no importará si tiene un escáner que analice su correo electrónico entrante o la actividad de navegación web de sus empleados. El malware puede bloquear la aplicación o incluso el servidor en el que se ejecuta, aunque probablemente ese sea el mejor resultado posible. En el peor de los casos, un programa verdaderamente malintencionado como el ransomware puede utilizar el servidor infectado para extenderse por toda la red.

Es probable que los atacantes más expertos no sean tan obvios al explotar una aplicación con acceso ilimitado a los archivos. En su lugar, pueden utilizar la vulnerabilidad para poner en peligro la aplicación y utilizarla para penetrar más profundamente en la red, actuar con lentitud e intentar evitar ser detectados. Esto se puede hacer cargando un shell web u otro archivo de tipo .exe y, a continuación, enviándole comandos directamente una vez que aparezca. Todo lo que el usuario ejecute a través de su shell normalmente lo ejecutará el servidor, utilizando los niveles de permisos establecidos para la aplicación que lo aloja. Para el servidor, esos comandos provienen de la aplicación y no es probable que se comprueben o examinen más a fondo.

Todo esto hace que la vulnerabilidad de acceso sin restricciones a los archivos sea una de las más peligrosas de la red. Probablemente no se trate de si causará un problema, sino de cuándo.

¿Cómo elimino la vulnerabilidad de acceso sin restricciones a los archivos?

Entonces, ¿cómo se resuelve el problema del acceso sin restricciones a los archivos? La forma más sencilla es simplemente añadir una o varias restricciones a los tipos de archivos que se pueden cargar. Puedes comunicárselas al usuario si lo deseas, por ejemplo, diciéndole que el sitio solo aceptará archivos de Word o de texto o, en el caso de un sitio para compartir imágenes, solo .jpgs o .gifs. En el backend, tendrás que crear una lista blanca de extensiones de archivo aceptables y, a continuación, rechazar todo lo demás. También se deben establecer restricciones en cuanto a la longitud máxima de los nombres de los archivos. Si el nombre de un archivo contiene caracteres especiales que podrían indicar que se ha intentado activar un comando ejecutable, también se debe rechazar.

Además de los tipos de archivos y las reglas de nomenclatura, también querrá restringir el tamaño máximo de cada archivo. El tamaño máximo debe ser razonable y apropiado para el tipo de archivo que se espera que recopile la aplicación. Esto podría significar un límite de aproximadamente 10 megabytes para los archivos de Word y algo un poco más grande, quizás alrededor de 50 megabytes, para los archivos gráficos. También es posible establecer reglas de tamaño mínimo de archivo, pero solo si se conoce bien el rango de tamaño de los archivos esperados, lo que podría ocurrir si los usuarios rellenan y cargan un formulario específico.

Es posible que los atacantes sigan encontrando una forma inteligente de burlar un shell u otro programa potencialmente malicioso más allá de las restricciones de tamaño y tipo de archivo. Como compensación, los archivos recopilados siempre deben almacenarse en un directorio privado sin privilegios de ejecución. Para mayor seguridad, el sistema puede cambiar el nombre de los archivos a una serie de caracteres aleatorios. Esto evitaría que los usuarios no autorizados de fuera de la red buscaran la ubicación del archivo que han subido, lo que podría permitirles acceder a la red. Sin embargo, si lo hace, es probable que necesite configurar y mantener una tabla que vincule los nombres aleatorios de los archivos con sus designaciones originales.

Por último, cualquier programa defensivo que utilice la organización para esas tareas debe analizar todo lo que llegue a la red a través de una carga en busca de malware y virus. Puede que esto no lo detecte todo, pero es un importante nivel de seguridad que podría usarse para detectar hasta el 90 por ciento o más de los archivos malintencionados más comunes que intentan entrar al subir archivos.

Restringir el problema de carga de archivos sin restricciones

Una vez que se implementan varios niveles de seguridad en el backend, el problema de carga de archivos sin restricciones deja de ser un problema. Básicamente, estás eliminando el problema imponiendo restricciones a la carga de archivos, por lo que ya no son ilimitadas. Solo se permite la entrada de archivos buenos, mientras que todos los vampiros y el malware se quedan fuera.

Para leer más, puede echar un vistazo a la carga de archivos sin restricciones de OWASP Hoja de trucos de prevención, que describe algunos de los problemas más comunes cuando se permite este tipo de situaciones en una red. También puede poner a prueba sus nuevos conocimientos defensivos con el escaparate gratuito de la plataforma Secure Code Warrior, que forma a los equipos de ciberseguridad para que se conviertan en los mejores ciberguerreros. Para obtener más información sobre cómo derrotar esta vulnerabilidad y la galería de otras amenazas de los delincuentes, visita la Blog de Secure Code Warrior.

¿Cree que está preparado para hacer frente a esta vulnerabilidad ahora mismo? Dirígete al campo de batalla y pon a prueba tus habilidades:

目录

下载PDF
查看资源
感兴趣了解更多吗?

Jaap Karan Singh是一位安全编码布道者,首席辛格和Secure Code Warrior 的共同创始人。

了解更多

Secure Code Warrior 您的组织在软件开发全生命周期中保护代码安全,并营造将网络安全置于首位的企业文化。无论您是应用安全管理员、开发人员、首席信息安全官,还是任何与安全相关的工作人员,我们都能助力您的组织降低不安全代码带来的风险。

预约演示下载
分享到:
领英品牌社交x 标志
资源中心

入门资源

更多出版物
资源中心

入门资源

更多出版物