Preguntas de la entrevista sobre seguridad móvil: captura de paquetes

¿Cómo funciona justTrustMe?

justTrustMe es un módulo Xposed para omitir la verificación de certificados SSL para aplicaciones de Android. Su principio es conectar la clase javax.net.ssl.X509TrustManager del sistema para que siempre devuelva éxito al verificar el certificado del servidor. De esta manera, incluso si el servidor utiliza un certificado autofirmado o el certificado del capturador de paquetes, la aplicación lo aceptará.

¿Conoces la fijación de SSL? ¿Cómo obtener el certificado de fijación SSL?

La fijación de SSL es una política de seguridad que requiere que una aplicación confíe únicamente en certificados predefinidos o claves públicas, en lugar de certificados en el almacén de certificados del sistema. Esto evita ataques de intermediario y el descifrado SSL por parte de capturadores de paquetes. Normalmente, los certificados de fijación SSL se obtienen del servidor y se integran en la aplicación durante la fase de desarrollo de la misma.

¿Cómo evitar la fijación de SSL?

Hay varias formas de evitar la fijación de SSL:

  • Utilizando herramientas de análisis dinámico como Xposed o Frida, se enganchan métodos de verificación de certificados relacionados para que se salte la verificación del certificado.
  • Utilice medios de ingeniería inversa (como descompilación, depuración, etc.), busque la implementación de fijación de SSL en la aplicación y luego modifique el código de la aplicación para deshabilitar o evitar la fijación de SSL.
  • Reemplace el certificado anclado o la clave pública en la aplicación con el certificado de la herramienta de captura de paquetes, para que la aplicación confíe en el certificado de la herramienta de captura de paquetes.

¿Cómo protegerse contra la comunicación Socket?

Los métodos de protección para la comunicación Socket incluyen principalmente:

  • Cifre los datos de comunicación de Socket para evitar que las herramientas de captura de paquetes vean datos de texto sin formato directamente.
  • Utilice SSL/TLS para cifrar las conexiones de Socket para mejorar la seguridad de las comunicaciones.
  • Ofusque y refuerce el código de la aplicación, reduciendo la dificultad de la ingeniería inversa y el análisis dinámico.
  • Detecte herramientas de captura de paquetes, configuraciones de proxy, etc. cuando la aplicación se esté ejecutando y, si se encuentran anomalías, tome las medidas de protección correspondientes (como finalizar solicitudes de red, salir de aplicaciones, etc.).

¿El principio de captura de paquetes de intermediario en Android? ¿Cómo proteger? ¿Como pelear?

Principio de captura de paquetes de intermediario: la herramienta de captura de paquetes actúa como un agente entre el cliente y el servidor, intercepta y descifra la comunicación SSL/TLS y ve datos de texto sin formato. La clave para implementar la captura de paquetes de intermediario es permitir que la aplicación confíe en el certificado de la herramienta de captura de paquetes.
Los métodos de defensa incluyen:

  • Utilice la fijación de SSL para que las aplicaciones confíen únicamente en certificados predefinidos o claves públicas.
  • Cifre las solicitudes y respuestas de la red para que las herramientas de captura de paquetes no puedan ver directamente los datos de texto sin formato.
  • Detecte herramientas de captura de paquetes, configuraciones de proxy, certificados SSL instalados, etc., y tome las medidas de protección correspondientes.

Las contramedidas incluyen:

  • Evite la fijación de SSL y las comprobaciones de certificados utilizando herramientas de análisis dinámico (por ejemplo, Xposed, Frida).
  • Modifique el código de la aplicación para deshabilitar o evitar la fijación de SSL.
  • Reemplace el certificado fijado o la clave pública en la aplicación con el certificado de la herramienta de captura de paquetes.

¿Qué otras formas de capturar paquetes? ¿Puede un entorno no raíz capturar paquetes? ¿Cuéntame sobre el plan?

Además de los métodos comunes de captura de paquetes (como Wireshark, Charles, Fiddler), existen los siguientes métodos:

  • Utilice Packet Capture, un artefacto de captura de paquetes de Android, para utilizar servicios VPN para capturar el tráfico de red sin root.
  • Capture paquetes a nivel de código de aplicación y capture solicitudes y respuestas de red a través de interceptores o bibliotecas de red personalizadas.

¿Cuáles son algunas de las situaciones de captura de paquetes más difíciles que existen?

Las situaciones de captura de paquetes más difíciles pueden incluir las siguientes:

  • La aplicación implementa una fuerte fijación de SSL y utiliza técnicas de cifrado, ofuscación y refuerzo, lo que hace que sea muy difícil evitar la fijación de SSL.
  • La aplicación utiliza un algoritmo o protocolo de cifrado personalizado, de modo que la herramienta de captura de paquetes no puede analizar directamente el contenido de la comunicación.
  • La aplicación tiene un poderoso mecanismo de detección y protección de captura de paquetes, como verificar la configuración del proxy, los certificados SSL instalados, el entorno operativo, etc. Una vez que se encuentran anomalías, se tomarán las medidas de protección correspondientes de inmediato (como interrumpir las solicitudes de red, salir de las aplicaciones, etc. .).

Supongo que te gusta

Origin blog.csdn.net/u010671061/article/details/132332859
Recomendado
Clasificación