¿Qué información nunca debe aparecer en los registros? [cerrado]


11

Estoy a punto de escribir las pautas de la compañía sobre lo que nunca debe aparecer en los registros (seguimiento de una aplicación). De hecho, algunos desarrolladores intentan incluir la mayor cantidad de información posible en el rastreo, lo que hace que sea riesgoso almacenar esos registros y extremadamente peligroso enviarlos , especialmente cuando el cliente no sabe que esta información está almacenada, porque a ella nunca le importó. y nunca lea documentación y / o mensajes de advertencia.

Por ejemplo, cuando se trata de archivos, algunos desarrolladores están tentados a rastrear los nombres de los archivos . Por ejemplo, antes de agregar el nombre de archivo a un directorio, si rastreamos todo por error, será fácil notar, por ejemplo, que el nombre agregado es demasiado largo y que el error en el código fue olvidar verificar la longitud del cadena concatenada Es útil, pero se trata de datos confidenciales y nunca debe aparecer en los registros .

Del mismo modo:

  • contraseñas ,
  • Direcciones IP e información de red (dirección MAC, nombre de host, etc.) ¹,
  • Accesos a bases de datos,
  • Entrada directa del usuario y datos comerciales almacenados

nunca debe aparecer en el rastro.

Entonces, ¿qué otro tipo de información debe ser desterrada de los registros? ¿Hay alguna guía ya escrita que pueda usar?


¹ Obviamente, no estoy hablando de cosas como IIS o registros de Apache. De lo que estoy hablando es del tipo de información que se recopila con la única intención de depurar la aplicación en sí misma, no para rastrear la actividad de entidades no confiables.


Editar: Gracias por sus respuestas y sus comentarios. Como mi pregunta no es demasiado precisa, intentaré responder las preguntas formuladas en los comentarios:

  • ¿Qué estoy haciendo con los registros?

Los registros de la aplicación pueden almacenarse en la memoria, lo que significa, ya sea en forma simple en el disco duro en localhost, en una base de datos, nuevamente en forma simple o en eventos de Windows. En todos los casos, la preocupación es que esas fuentes pueden no ser lo suficientemente seguras. Por ejemplo, cuando un cliente ejecuta una aplicación y esta aplicación almacena registros en un archivo de texto sin formato en el directorio temporal, cualquier persona que tenga acceso físico a la PC puede leer esos registros.

Los registros de la aplicación también pueden enviarse a través de Internet. Por ejemplo, si un cliente tiene un problema con una aplicación, podemos pedirle que ejecute esta aplicación en modo de seguimiento completo y que nos envíe el archivo de registro. Además, algunas aplicaciones pueden enviarnos automáticamente el informe de bloqueo (e incluso si hay advertencias sobre datos confidenciales, en la mayoría de los casos los clientes no los leen).

  • ¿Estoy hablando de campos específicos?

No. Estoy trabajando solo en aplicaciones comerciales generales, por lo que los únicos datos confidenciales son los datos comerciales. No hay nada relacionado con la salud u otros campos cubiertos por regulaciones específicas. Pero gracias por hablar sobre eso, probablemente debería echar un vistazo a esos campos para obtener algunas pistas sobre lo que puedo incluir en las pautas.

  • ¿No es más fácil encriptar los datos?

No. Haría que cada aplicación sea mucho más difícil, especialmente si queremos usar diagnósticos de C # y TraceSource. También requeriría administrar autorizaciones, lo cual no es lo más fácil de hacer. Finalmente, si estamos hablando de los registros que nos envía un cliente, debemos poder leer los registros, pero sin tener acceso a datos confidenciales. Entonces, técnicamente, es más fácil nunca incluir información confidencial en los registros y nunca preocuparse por cómo y dónde se almacenan esos registros.


¿Está tomando en cuenta el nivel de registro? Quiero decir, podría estar bien para debugun nombre de archivo, pero no para infoun nombre de archivo.
Jeremy Heiler

@Jeremy Heiler: solo estoy hablando de los datos de registro que se almacenan en el disco duro (a menudo de forma no segura) y / o se envían a través de Internet a los desarrolladores de la aplicación con fines de depuración.
Arseni Mourzenko

Muchas aplicaciones escriben el registro directamente en el disco, sin importar el nivel de registro. A menos que su almacenamiento de registro sea una tabla de base de datos ... Si envía los archivos de registro a otros desarrolladores a través de la red, podría cifrar el archivo, ¿sí?
FrustratedWithFormsDesigner

2
Sin saber lo que está haciendo, es realmente difícil imaginar cuáles son los datos confidenciales. ¿Tiene preocupaciones regulatorias (PCI o HIPAA o lo que sea)?
David Thornley

1
Si puede hablar sobre el campo específico en el que está trabajando, pregunte en security.stackexchange.com, ya que los expertos en seguridad / cumplimiento allí pueden informarle sobre asuntos regulatorios, legales u otros problemas de seguridad.

Respuestas:


3

Creo que la mejor manera de manejar esto es tratar los archivos de registro como simplemente otra interfaz de usuario para la aplicación. El hecho de que la información se almacene en archivos de texto no hace que el contenido sea diferente de la información que se muestra en las pantallas normales de la interfaz de usuario.

Piense en cómo protegería la misma información si se mostrara en una interfaz de usuario normal. Tendría que identificar quién era el usuario y luego exponer solo la información que este usuario tenía derecho a ver.

La información en los archivos de registro debe tratarse de la misma manera. Primero debe responder exactamente a quién se le debe permitir ver el archivo de registro y qué información se les debe permitir ver.

Pasar archivos de registro mal diseñados es un gran riesgo de seguridad. No creo que obtenga una buena solución para eso mediante la inclusión en una lista negra de algún tipo de datos. Una mejor estrategia es incluir en la lista blanca lo que podría ir en cada archivo de registro y diseñar los archivos de registro desde abajo.


8

La información de la tarjeta de crédito nunca debe registrarse.

Números de identificación (como SSN en los EE. UU. O Teudat Zehut # en Israel).

Nombres de computadora de red, rutas compartidas de red.


El estándar PCI-DSS prohíbe almacenar el número de tarjeta de cualquier forma o forma.
Tangurena

@Tangurena no es cierto, sí permiten el almacenamiento, pero requieren que esté debidamente protegido. (Requisitos de PCI-DSS y evaluación de seguridad V2.0 de octubre de 2010, requisito 3)
Newtopian

7

Información de salud de identificación personal cubierta por la Ley de Responsabilidad y Portabilidad del Seguro de Salud de 1996 (HIPAA). Este artículo enumera los siguientes ejemplos:

  • Información sobre reclamos de atención médica o encuentros de atención médica, como documentación de visitas al médico y notas hechas por médicos y otro personal del proveedor;
  • Asesoramiento sobre pagos y remesas de atención médica;
  • Coordinación de beneficios de salud;
  • Estado de reclamo de atención médica;
  • Inscripción y desafiliación en un plan de salud;
  • Elegibilidad para un plan de salud;
  • Pagos de primas del plan de salud;
  • Certificaciones de referencia y autorización;
  • Primer informe de lesión;
  • Adjuntos de reclamos de salud.


2

La parte superior de mi cabeza....

La información de la tarjeta de crédito no debe estar en los registros. Los datos del SSN (o SIN) no deben estar en registros.

... por supuesto, hay excepciones, si por casualidad trabajas para algún almacén de datos central para una compañía de tarjetas de crédito o una agencia gubernamental que administra los datos del SIN, entonces es posible que tengas que registrarlos, porque es la carne principal de lo que Estamos procesando / gestionando.


1

Si pero.

Para depurar algunos problemas necesita datos reales.

Por lo tanto, debe jugar un juego de equilibrio: de hecho, debe discutir y acordar con sus principales clientes qué consideran datos confidenciales o confidenciales y qué no. Si varios clientes no están de acuerdo, tome el peor de los casos para cada aspecto del mismo, a menos que pueda justificarlo ante aquellos clientes que podrían exagerar al etiquetar todo lo sensible.

He trabajado en control de tráfico aéreo, finanzas y banca. En cada situación hay datos confidenciales. Hay tareas para las cuales es inevitable manejar datos confidenciales, en esos casos debe asegurarse lo más posible de que trabaje con personas confiables. Este riesgo puede mitigarse de alguna manera mediante cláusulas legales que se acuerden antes de acceder a dichos datos (acuerdos de no divulgación, uso de datos solo por razones comerciales válidas, acceso limitado a los datos, sanciones de enjuiciamiento por no respetar o hacer cumplir los acuerdos ...) - y procesos relevantes que hacen posible rastrear esas cosas.

Si los datos son críticos, entonces debe pagar el precio al configurar sistemas que protejan la integridad, coherencia y seguridad de estos datos.

Dicho esto, tiene razón al hacer la pregunta "qué datos". Realmente lo respondes tú mismo: la mayor parte está relacionada con los negocios. Por lo tanto, pregunte a sus clientes si no puede responderse a sí mismo, teniendo en cuenta todo lo anterior y conservando alguna forma de identificar y solucionar los problemas que puedan surgir.


He trabajado con datos de hipotecas en vivo, que tenían muchas cosas que podría haber usado mal. Fue interesante que no haya sido examinado por seguridad o me pidieron que firmara algo específico. La gran diferencia entre eso y los lugares donde he trabajado con datos menos confidenciales fue la falta de un grupo de lotería de oficina.
David Thornley

0

Yo diría que registre mensajes que parecen divertidos mientras codifica. No los encontrarás divertidos en el futuro y estarán allí para siempre, ¡como esa publicación mal aconsejada de blog / facebook / twiter!

Mantenga los mensajes de registro aburridos :)

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.