Implicaciones de seguridad de almacenar archivos adjuntos de correo electrónico en el servidor Centos

4

Hay una aplicación en la que estoy trabajando que requiere procesar los correos entrantes a [email protected] .
Las cuentas de correo company.com se ejecutan a través de Google Apps for Business .
Así que obtengo los correos entrantes a través de IMAP y también almaceno los archivos adjuntos en el sistema de archivos del servidor.
Los archivos adjuntos son descargables por los usuarios de la aplicación.
El servidor es Centos 6.3 y la interfaz web de la aplicación se basa en Apache / PHP / MySql.

Mis preguntas son:
 1. ¿A qué tipo de riesgos de seguridad estoy expuesto al almacenar los archivos adjuntos en el sistema de archivos de mi servidor?
 2. ¿Es más seguro almacenar los archivos adjuntos en un almacenamiento externo (por ejemplo, Amazon S3 )?
3. ¿Es más seguro almacenar los archivos adjuntos en la base de datos?

    
pregunta dharm0us 08.02.2013 - 08:43
fuente

2 respuestas

2

Técnicamente , un sistema de archivos almacena archivos como secuencias opacas de bytes. No hay daño que dichos bytes puedan hacer a su servidor siempre y cuando no intente "interpretar" estos bytes. Desafortunadamente, algunos sistemas operativos están ansiosos por interpretar el contenido de los archivos, lo que genera un procesamiento pesado sin el consentimiento explícito del usuario; y ese procesamiento podría tener agujeros de seguridad explotados por los contenidos de archivos creados con fines malintencionados. Consulte esta respuesta para obtener más información. Se aplican contramedidas habituales: si utiliza un sistema operativo mantenido (como CentOS) y aplica diariamente las soluciones de seguridad publicadas, entonces debería estar bien. Todavía recomendaría evitar explorar el directorio con un explorador de archivos gráfico, para evitar la interpretación automática de los archivos de imágenes.

Legalmente , cualquier acto de almacenamiento de datos provenientes de fuentes externas puede causarle problemas, según lo que contenga el archivo y el marco legal en el que opera. Cuando tiene un servidor de correo, es bastante inevitable que reciba casi cualquier cosa por correo electrónico, y la mayoría de los sistemas legales reconocen que, como proveedor de servicios técnicos, no es responsable de los contenidos del correo electrónico. Sin embargo, puede que valga la pena hablar con un abogado, en particular si visualiza sistemas de almacenamiento creativos. También puede haber problemas de privacidad; es mejor que protejas el acceso al sistema de almacenamiento para los archivos adjuntos, así como protegerías a los buzones de correo.

Nota que el manejo seguro del correo electrónico no es fácil; se considera una mala forma de perder correos electrónicos cuando se produce una escasez de energía mal programada. Se supone que los sistemas de envío de correo electrónico nunca deben destruir físicamente los datos de correo electrónico hasta que el sistema de recepción haya anunciado debidamente que ha enviado el correo electrónico a un medio físico (que, en un contexto de sistema de archivos Unix, implica al menos una llamada fsync() ). Si divide los correos electrónicos en su cuerpo principal y adjuntos separados, entonces el manejo se vuelve más complejo; esto es probablemente más fácil de hacer con una base de datos que con un sistema de archivos. Por lo tanto, recomendaría la base de datos, no por seguridad, sino por confiabilidad.

    
respondido por el Tom Leek 08.02.2013 - 15:46
fuente
0

Los riesgos de seguridad de almacenar estos archivos adjuntos en un servidor de archivos y permitir que se descarguen a través de una aplicación web incluyen:

  • Descarga / copia no autorizada de los archivos
  • Modificación malintencionada de los archivos, que luego descargará el destinatario previsto
  • Uso del sistema para alojar archivos warez, malware u otros archivos problemáticos
  • Ejecución de los archivos por Apache como scripts
  • Uso del mecanismo de almacenamiento de archivos como parte de una estrategia de explotación contra el servidor

Como mínimo, recomendaría:

  • Colocar los archivos en un sistema de archivos dedicado con banderas de montaje altamente restrictivas
  • Darles nombres de archivo que no tengan nada que ver con sus nombres de archivo originales
  • Teniendo mucho cuidado con tu configuración de Apache
respondido por el ruief 08.02.2013 - 22:47
fuente

Lea otras preguntas en las etiquetas