¿Por qué debería borrar su mesa de trabajo al salir de la aplicación?

7

He estado explorando una de mis aplicaciones de iOS y la vulnerabilidad de mayor riesgo parece ser que el pegado no se borra cuando finalizo la aplicación. No quiero que el usuario pierda información potencialmente útil que haya copiado como resultado del exceso de celo, especialmente cuando los datos siguen siendo muy inseguros cuando la aplicación no se ha terminado y otras aplicaciones se están ejecutando en conjunto.

En una pregunta similar a la mía, pero para Windows, se sugiere que este no sería un problema de alto riesgo, ya que la cartulina debería ser la menor de mis preocupaciones cuando hay malware en mi dispositivo. ¿Cuál es la razón principal por la que debería estar haciendo esto y por qué se considera un riesgo bastante alto?

La aplicación tiene acceso a Internet y contiene SPI.

    
pregunta Deco 15.01.2016 - 00:31
fuente

3 respuestas

3

Cuando el malware está presente en el dispositivo, de hecho, tener el almacén de materiales para pegar estos datos sería la menor de tus preocupaciones. Sin embargo, esto sigue siendo una mala práctica.

No debe almacenar datos de usuario importantes en el portapapeles. Ni siquiera deberías ponerlo en el portapapeles / portapapeles de todos modos. ¿Por qué? Porque una aplicación maliciosa podría acceder a los datos de su portapapeles. Imagina un sitio web accede a tu portapapeles (ya sea normalmente, oa través de un exploit), u otro ¿La aplicación lo almacena y lo envía a un servidor remoto?

¿Qué pasa si hay un método como:

sendDataToRemoteServerForPurposesOfExtremeHaxoring(string evilLaugh, string pasteboardData) ?

Me gusta así:

// Oh noes!
UIPasteboard *pasteBoard = [UIPasteboard generalPasteboard];
sendDataToRemoteServerForPurposesOfExtremeHaxoring("Mwahahahahaha", pasteBoard.string);

Además, almacenar la contraseña de un usuario y otra información crítica en el portapapeles es, en mi opinión, un enorme, enorme no-no. ¿Qué pasa si el usuario lo pega accidentalmente? ¿Qué pasa si una aplicación lo explota? ¿Qué pasa si un sitio web lo explota? Hay muchas razones para no hacer esto.

    
respondido por el Mark Buffalo 19.01.2016 - 17:15
fuente
5

El portapapeles no se puede considerar un lugar seguro , por varias razones:

  • Malware que accede al contenido del portapapeles : en su pregunta se centró en el malware instalado en su máquina, sin embargo, podría haber malware transitorio (como un banner malicioso de Adobe Flash en un sitio web que visitó para instancia ...) que no infectará su computadora cuando se ejecute, sino que intentará obtener el contenido del portapapeles en ese momento y enviarlo a su casa,

  • Manipulación incorrecta del usuario : una manipulación incorrecta podría llevarlo a pegar el contenido incorrecto en el lugar equivocado. Por lo general, sin consecuencias, con datos confidenciales, la manipulación incorrecta puede tener graves consecuencias,

  • Gente alrededor del usuario : cuando la computadora se deja desatendida y desbloqueada o si la atención del usuario se distrae temporalmente, es muy rápido que otra persona presione Ctrl-V y luego Ctrl-Z en su teclado para ver rápidamente el contenido de su portapapeles sin que el usuario se dé cuenta.

Si bien aún es mejor evitar el uso completo del portapapeles, cuando se requiere, la mitigación de dicha amenaza es garantizar que los datos confidenciales no permanezcan en el portapapeles durante demasiado tiempo: lo ideal es que permanezcan allí el tiempo suficiente para estar. utilizado y ya no.

En su pregunta, sugiere borrar el portapapeles cuando se cierra la aplicación. La eficiencia de esto depende en gran medida de la forma en que se utiliza la aplicación: si este es el tipo de aplicación que se cierra solo al final del día, tal medida parece simplemente ineficaz.

Un buen ejemplo y fuente de inspiración para esta situación puede ser el administrador de contraseñas KeePass , que propone manejar esto de dos maneras, dependiendo de Preferencias del usuario:

  • Para evitar completamente el uso del portapapeles, KeePass propone lo que llama Autotipo : llenará directamente los campos específicos simulando las pulsaciones de teclas apropiadas. La ventaja es que nunca pasan datos a través del portapapeles, sin embargo, tal comportamiento es más complejo de implementar y es posible que no sea totalmente compatible o portátil (especialmente si se menciona una aplicación móvil),

  • Al usar el portapapeles para copiar / pegar contraseñas, KeePass puede configurarse para borrar automáticamente el portapapeles después de un corto período de tiempo. Al copiar una contraseña, KeePass muestra en la parte inferior de su ventana principal una barra de progreso decreciente que le da al usuario una respuesta visual sobre el progreso del tiempo de espera, y una vez que el tiempo de espera expira (15 o 30 segundos, por ejemplo) y si el clipboard aún contiene datos de KeePass luego KeePass elimina el contenido del portapapeles (el usuario no debe usar uno de esos "administradores de historial del portapapeles" para esto aunque sea realmente efectivo).

respondido por el WhiteWinterWolf 19.01.2016 - 18:04
fuente
2

Aquí me centraré en el aspecto de iOS: otras respuestas sí mencionan cosas que no son aplicables en iOS (por ejemplo, 'Auto-tipo:'). Soy un desarrollador de iOS y he trabajado en aplicaciones 'seguras'.

Lamentablemente, cada "escáner de seguridad" que he probado para el código de iOS es, en el mejor de los casos, lo que denomino "altamente engañoso". Sospecho que la frase que normalmente usaría no es lo suficientemente amigable para la familia como para stackexchange.

La "vulnerabilidad" y su mitigación sugerida son "altamente engañosas". A la vez, perjudica la facilidad de uso y no ayuda cuando un iPad ejecuta la aplicación en multitarea 'lado a lado', ni en otra situación.

Como dice WhiteWinterWolf, en primer lugar, debe considerar no permitir que datos altamente confidenciales ingresen al portapapeles del sistema si eso funciona para su caso de uso. En iOS, puede implementar un portapapeles interno para la aplicación, subclasificando UITextField , UITextView (etc.) y proporcionando reemplazos para UIResponderStandardEditActions que no usan el sistema [UIPasteboard generalPasteboard] .

Si tiene un caso de uso convincente para permitir que los datos se pasen a otras aplicaciones, a partir de iOS 10, también puede configurar UIPasteboardOptionExpirationDate y UIPasteboardOptionLocalOnly (ya que iOS 10 ahora comparte el portapapeles en todos los dispositivos registrados en el la misma cuenta de iCloud de forma predeterminada) para intentar limitar la exposición.

    
respondido por el JosephH 17.03.2017 - 12:21
fuente

Lea otras preguntas en las etiquetas