¿Restringir el acceso al contenido del archivo es una forma de obtener información sensible pero necesaria para el día a día de un software de terceros?

0

Para aclarar esto directamente. Quiero decir, ¿qué pasaría si cada software de terceros (incluso malicioso) que se ejecuta en este sistema operativo nunca tenga acceso a sus datos y, en lugar de eso, "describa" qué hacer?

Entonces, por ejemplo 'aquí en el índice x, cambie este byte por y', 'si en el índice x es "01", cámbielo por y'. Obviamente, esto sería difícil para los desarrolladores. Es por eso que sugiero usar algo como una interfaz donde los tipos de datos están definidos y pueden ser definidos por cada software. Puede abarcar desde primites como int, char hasta literalmente HTML, JSON e incluir operaciones predeterminadas basadas en este tipo de datos.

Ahora, cualquier software que se ejecute en este sistema operativo debe manejar datos con algún tipo de interfaz y nunca tendrá acceso directo a sus datos subyacentes.

Sin embargo esto solo se aplicará a los archivos que son accesibles públicamente como Imágenes / Documentos, lo que le da al software la posibilidad de manejar sus archivos de configuración ( myapp.conf ) cómo quiere, pero no el Mensaje secreto en secret_text.txt (asegurándose de que nadie pueda acceder a estos archivos, excepto el creador / aplicación).

La GUI es realmente complicada porque tiene para mostrar los datos reales al usuario. Por lo tanto, es necesario para una parte del sistema operativo, de lo contrario el esfuerzo es inútil.

Ahora tengo algunas preguntas que no puedo responder solo:

  • ¿Las explotaciones afectarán este diseño de forma más dramática que en Linux / Windows?
  • ¿Cuánto beneficio obtengo en comparación con diferentes enfoques?
  • ¿De qué manera las aplicaciones están limitadas por este diseño?
  • ¿dónde debería implementarse este enfoque? ( Espacio de kernel / Espacio de usuario )
  • debido a la razón por la cual la GUI debe ser parte del sistema operativo, ¿cuáles son las desventajas o los beneficios de esto?

Entonces, con estas preguntas en mente, ¿será esta una forma segura de manejar datos (confidenciales)?

PS : es mi primera pregunta aquí, si algo no está claro, por favor hágamelo saber.

    
pregunta ShaderStack 25.10.2017 - 13:45
fuente

2 respuestas

1

Si entiendo esta pregunta correctamente, estás proponiendo un sistema donde las aplicaciones nunca pueden leer un archivo, pero solo envían comandos a una interfaz que lee y modifica datos. De esa manera, la aplicación no sabrá nada sobre los datos con los que opera. Eso no va a funcionar como una forma de proteger sus datos. Déjame explicarte por qué.

Digamos que tengo algunas fotos que quiero recortar, pero no quiero que mi aplicación de edición de fotos las vea. La aplicación de edición de fotos simplemente enviaría el comando de recorte a la interfaz JPG, y la interfaz realizará el recorte.

Y si quiero ver la imagen en la pantalla mientras la recorro, creo que la interfaz también tendrá que ocuparse de eso. Y si la ventana de la aplicación de fotos se redimensionara para ajustarse a la imagen, la interfaz tendría que hacerlo también porque la aplicación no sabría el tamaño de la imagen. Pero sepa que la aplicación de fotos no sabe el tamaño de su propia ventana ... ¿cómo puede controlar qué botones se muestran en la barra de herramientas? Supongo que la interfaz también tendrá que ocuparse de eso.

¿Ves lo que está pasando aquí? La interfaz está asumiendo toda la complejidad que maneja la aplicación. Simplemente no hay una interfaz limpia entre la lectura y la escritura, por lo que la interfaz solo tragará más y más aplicaciones hasta que la aplicación sea solo un shell vacío alrededor de la interfaz.

Y si la interfaz es tan compleja como solía ser la aplicación, uno tiene que hacer la pregunta: ¿De dónde vienen las interfaces? La gente simplemente descargará interfaces llenas de troyanos en lugar de aplicaciones llenas de troyanos.

    
respondido por el Anders 25.10.2017 - 14:19
fuente
0

Este tipo de ocultación de información tiene algunas debilidades clave.

Primero, para ser útil, los datos ocultos deben producir algún tipo de salida visible. Esa salida visible se puede analizar para una entrada dada y, en general, es posible trabajar hacia atrás para determinar qué aspecto de al menos parte del original debe tener. Eventualmente, puede acumular lo suficiente para realizar modificaciones maliciosas sin tener que ver directamente los datos que está cambiando.

Segundo, no todos los ataques están relacionados con la captura de datos. Este sistema no hace nada para evitar la corrupción o destrucción de datos. No importa si puedo ver sus registros financieros si puedo decir "establecer todos los saldos debidos a 0". Si alguien puede destruir su sistema, no ayuda mucho que no tengan acceso para VER sus datos.

Por último, un sistema de este tipo aún sería potencialmente vulnerable a las vulnerabilidades que podrían comprometer la funcionalidad del sistema operativo. El sistema operativo aún debe poder escribir en él y cuanto más complejas sean las instrucciones que operan con los datos, mayor será la posibilidad de que un error de software permita romper el sistema en mayor o menor medida.

Eso no significa que tales sistemas sean inútiles, pero tienen casos de uso muy específicos y se usan como parte de una defensa en profundidad para evitar el uso indebido. Existe un tipo completo de criptografía llamada encriptación homomórfica que permite realizar operaciones matemáticas en datos encriptados sin descifrarlos. Dichos sistemas son bastante complejos, pero son útiles en situaciones donde las operaciones deben ser realizadas por sistemas que no deben tener conocimiento de los datos en los que realmente están operando.

La clave, al igual que con todo lo relacionado con la seguridad, es comprender las amenazas que necesita mitigar y las capacidades y debilidades de las herramientas que está utilizando para abordar esas amenazas. Las operaciones de datos opacos son una herramienta, pero muy especializada y limitada que se ajusta a un nicho muy específico y generalmente pequeño.

    
respondido por el AJ Henderson 27.10.2017 - 16:41
fuente

Lea otras preguntas en las etiquetas