GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo se protegen los archivos de aplicaciones que no son de confianza mutua en Linux?

Estoy ejecutando una máquina Ubuntu Linux. Cuando ejecuto aplicaciones escritas por diferentes proveedores como Chrome y Firefox, noto que todas se ejecutan con mi uid. Pero si ese es el caso, cualquier archivo que creen en el sistema de archivos también tendrá el mismo uid. Entonces, ¿cómo en Linux pueden dos aplicaciones que no son de confianza mutua mantener sus archivos seguros entre sí?

  • el uso de una política de ACL por parte de la aplicación A aún puede permitir que la aplicación B lea los archivos de A, a través de la parte del usuario de (usuario, grupo, otro)
  • ¿Las aplicaciones necesitan usar encriptación para proteger sus datos entre sí?

Respuesta aceptada:

La respuesta literal es que no existe una aplicación que no sea de confianza ejecutándose en su cuenta. Si desea ejecutar una aplicación que no es de confianza, ejecútela con una cuenta diferente o en una máquina virtual.

Los sistemas operativos de escritorio típicos, como Unix y Windows, y los sistemas operativos móviles típicos, como Android e iOS, tienen diferentes modelos de seguridad. Unix es un sistema operativo multiusuario, con usuarios que no son de confianza entre sí. Aplicaciones se consideran de confianza:todas las aplicaciones de un usuario se ejecutan en el mismo contexto de seguridad. Servicios , por otro lado, son algo menos confiables:generalmente se ejecutan bajo una cuenta dedicada, para reducir el impacto en caso de una vulnerabilidad de seguridad.

Hay dos razones principales por las que el modelo de seguridad de Unix funciona de esta manera:

  • Una razón negativa es la historia:cuando se diseñó Unix, las aplicaciones provenían de un pequeño grupo de programadores y estaban respaldadas por la reputación del proveedor o proporcionadas como código fuente o ambos. Rara vez se temía a las puertas traseras en las aplicaciones. Además, pocas aplicaciones se comunicaban a través de la red, por lo que había relativamente pocas oportunidades para activar y explotar vulnerabilidades. Por lo tanto, no había un fuerte incentivo para aislar las aplicaciones entre sí.
  • Una razón positiva es la funcionalidad:aislar aplicaciones hace que muchas cosas sean imposibles. Si cada aplicación tiene su propia área de datos, eso dificulta el intercambio de datos entre aplicaciones. En un sistema Unix típico, es muy común que los mismos datos sean manejados por múltiples aplicaciones. Esto es especialmente cierto ya que Unix no tiene una separación clara entre "aplicaciones" y "el sistema operativo". Un navegador web es una aplicación. No poder descargar un archivo en el directorio de su elección, porque el navegador está confinado a su propio directorio, es molesto. El programa que muestra menús e iconos cuando inicias sesión también es una aplicación en el mismo sentido. También lo son los administradores de archivos, que por definición necesitan acceso a todos sus archivos. También lo son los shells y otros intérpretes que ejecutan scripts por todas partes. Cuando imprime un documento desde un procesador de textos, esto puede implicar una aplicación para convertir el documento a un formato imprimible y otra aplicación para enviar los datos a la impresora.

Aunque ahora hay muchos más autores de aplicaciones que hace 40 años, las aplicaciones todavía se distribuyen típicamente a través de canales confiables, lo que conlleva una indicación de reputación. (Esto es notablemente más cierto para Linux que para Windows, lo cual es parte de la razón por la cual los virus son más comunes en Windows). Si se descubre que una aplicación tiene una puerta trasera, se extraerá rápidamente de los repositorios de software de Linux.

Relacionado:Debian:¿cambiar el tamaño de la partición raíz sin desinstalar y reinstalar Linux (o perder datos)?

Los sistemas operativos móviles se diseñaron teniendo en cuenta diferentes amenazas. Fueron diseñados para sistemas de un solo usuario, pero con aplicaciones provenientes de fuentes totalmente no confiables.

El aislamiento de aplicaciones está comenzando a abrirse camino en los sistemas Unix de escritorio. Algunas distribuciones ejecutan ciertos programas bajo marcos de seguridad como AppArmor o SELinux que restringen lo que puede hacer la aplicación. El costo de estas restricciones de seguridad es que a veces hacen que los usos deseables sean imposibles, por ejemplo, evitar que una aplicación restringida abra archivos en ciertos directorios.

El cifrado sería completamente inútil. El cifrado solo protege los datos en tránsito (a través de la red) o en reposo (almacenado en un disco), no protege los datos en un sistema en vivo: si el subsistema A descifra sus datos, depende del sistema operativo evitar que el subsistema B impida el acceso a los datos descifrados y, por lo tanto, no importa si los datos fueron descifrados por A o almacenados sin cifrar. El sistema operativo puede cifrar los datos, pero solo para protegerlos en caso de robo del medio de almacenamiento.

Si desea ejecutar un código en el que no confía, lo mejor que puede hacer es ejecutarlo en una máquina virtual. Otorgue acceso a la máquina virtual solo a los archivos que necesita la aplicación (p. ej., no comparta su directorio de inicio).


Linux
  1. Cómo cifrar archivos con gocryptfs en Linux

  2. Cómo cambiar el nombre de los archivos en Linux

  3. Cómo mejorar el tiempo de inicio de la aplicación en Linux

  4. Cómo instalar la aplicación Spotify en Linux

  5. Cómo comprimir varios archivos en Linux

Cómo truncar archivos (vacíos) en Linux

Cómo contar archivos en el directorio en Linux

Cómo desfragmentar su sistema Linux

Cómo cambiar el nombre de un archivo (s) en Linux

Cómo comprimir un archivo en Linux

Cómo crear archivos zip o directorios protegidos con contraseña en Linux