
Coders Conquer Security: Serie Share & Learn: Carga de archivos sin restricciones
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 Coding Evangelistであり、Chief Singhであり、Secure Code Warrior の共同設立者です。

Secure Code Warrior ソフトウェア開発ライフサイクル全体を通じてコードを保護し、サイバーセキュリティを最優先事項とする文化を構築するために、貴組織をSecure Code Warrior 。AppSec管理者、開発者、CISO、セキュリティ関連担当者など、あらゆる立場の方々に対し、不安全なコードに関連するリスクを軽減するお手伝いをいたします。
デモを予約するJaap Karan Singhは、Secure Coding Evangelistであり、Chief Singhであり、Secure Code Warrior の共同設立者です。


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:

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 ソフトウェア開発ライフサイクル全体を通じてコードを保護し、サイバーセキュリティを最優先事項とする文化を構築するために、貴組織をSecure Code Warrior 。AppSec管理者、開発者、CISO、セキュリティ関連担当者など、あらゆる立場の方々に対し、不安全なコードに関連するリスクを軽減するお手伝いをいたします。
報告書を見るデモを予約するJaap Karan Singhは、Secure Coding Evangelistであり、Chief Singhであり、Secure Code Warrior の共同設立者です。
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:




%20(1).avif)
.avif)
