Método de prueba de intercambios de cifrado y billeteras de cifrado


Las criptomonedas y los intercambios criptográficos pueden sufrir ataques de piratas informáticos (o la estupidez de los usuarios, desarrolladores, así como problemas con la lógica del sistema). Las pruebas podrían ayudar a identificar vulnerabilidades y problemas en la lógica de la aplicación, sin embargo, no encontré una metodología formalizada en la que se escribiría a lo que se debe prestar atención durante las pruebas. Después de probar una docena de intercambios y billeteras, decidí formalizar el procedimiento para probarlas, quienes estén interesados, bienvenidos a cat.

Al probar intercambios y billeteras, llamé la atención sobre su funcionamiento y formulé los aspectos de sus pruebas a continuación en forma de una pequeña técnica, pero en orden.
En primer lugar, ¿necesita comprender lo que es importante para el cliente? Es importante para el cliente que el dinero del intercambio o la billetera y la preservación de los datos personales de los usuarios no sean robados. Y dado que, de hecho, cada intercambio o billetera, en su mayor parte, es un sitio web o aplicación web, el cliente desea realizar una simulación de un ataque de piratas informáticos, es decir, Prueba de caja negra (ver Tabla 1), pero para completar la prueba, la prueba de Caja gris se elige con mayor frecuencia (ver Tabla 1).
Para probar la lógica del trabajo, necesita una criptomoneda de prueba. Y dado que cada intercambio tiene sus propias restricciones para depositar / retirar fondos, el monto de la criptomoneda de prueba debe ser al menos el mínimo permitido para el retiro y debe ser suficiente para realizar al menos 5 transacciones de compra y venta y / o input-output.

Tabla 1. Tipos de pruebas según la información proporcionada.
TipoDescripción
Caja negra
  • Las pruebas se llevan a cabo sin involucrar al equipo técnico del cliente.
Caja gris
  • contacto con el equipo técnico del cliente
  • agregar cuentas que se están probando en la "lista blanca"
  • el cliente proporciona fondos (monedas) para la prueba

Caja blanca
  • atención al cliente completa
  • proporcionar el código fuente de la aplicación
  • provisión de registros
  • otorgar acceso a diferentes privilegios
  • provisión de fondos (monedas) en la cantidad necesaria para la prueba



En Hacken, probamos las vulnerabilidades en el siguiente orden:
  1. Estudiar información disponible públicamente.
  2. Verificación por herramientas automatizadas.
  3. Verificar en modo manual.
  4. Redacción de informes.


Características de probar intercambios de cifrado y billeteras de cifrado

1. Prueba de verificación KYC: este es un requisito de la mayoría de los intercambios de cifrado y las ICO.

En esta sección se analizan las descargas de archivos de prueba (fotos o capturas de pantalla de documentos que confirman la identidad de una persona).

  • Comprobación de la capacidad de descargar archivos ejecutables al servidor del sistema
  • Verifique la posibilidad de robo de documentos escaneados: nombres de archivos y directorios de fuerza bruta.
  • Comprobando el acceso no autorizado al sistema de archivos del servidor.

2. Prueba de fondos de entrada-salida

  • Verificación de la corrección de los números de redondeo al depositar / retirar fondos.
  • Verificar la sustitución de la dirección de la billetera al depositar / retirar fondos (el error más simple no es verificar la billetera del remitente y el destinatario, pero es muy crítico).
  • Verificación de la lógica de trabajo al depositar / retirar fondos.
  • Verificación de la omisión de la confirmación de la operación de compra-venta (código de autenticación de dos factores, OTP, contraseña especial).
  • Verifique las vulnerabilidades de retiro de la condición de carrera.
  • Comprobar la posibilidad de ir más allá de los límites de entrada / salida de fondos.

3. Probar la compra y venta de criptomonedas (se aplica solo a los intercambios)

  • Comprobación de la exactitud de los números de redondeo al comprar y vender fondos.
  • Verificación de la sustitución de la dirección durante la compra y venta.
  • Comprobación de la lógica del trabajo al comprar y vender fondos.
  • Comprobación de la posibilidad de sustitución o modificación de una orden de venta.
  • Verificación de la omisión de la confirmación de la operación de compra-venta (código de autenticación de dos factores, OTP, contraseña especial).
  • Comprobación de la posibilidad de condición de carrera en la implementación de operaciones de compra / venta.
  • Comprobando la posibilidad de falsificar direcciones de billetera.


Prueba de elementos web

4. Probar el proceso de registro

  • Comprobación del filtrado de los parámetros entrantes durante el registro.
  • Verificación de la funcionalidad de confirmación del usuario.
  • Comprobando la capacidad de iterar sobre nombres de usuario, direcciones de correo electrónico y números de teléfono.
  • Verificando la posibilidad de evitar el chequeo de captcha durante el registro.
  • Comprobación de vulnerabilidades y lógica al restablecer contraseñas y cambiar datos.

5. Probar el proceso de autenticación

  • Verificación de filtrado de autenticación.
  • Comprobando la posibilidad de seleccionar un nombre de usuario y contraseña para una cuenta en el diccionario (protección contra la fuerza bruta).
  • Comprobar bypass comprobar captcha.
  • Verificación de bypass de autenticación de dos factores
  • Comprobando la capacidad de deshabilitar la autenticación de dos factores.
  • Comprobación de fugas de datos durante la autenticación.

6. Probar los marcos y tecnologías que se utilizaron en el desarrollo del intercambio.

Durante las pruebas de vulnerabilidades, es necesario determinar las tecnologías y técnicas (marcos) con las que se desarrollaron los intercambios. Por lo tanto, al comprender la tecnología con la que se desarrolló la billetera o el intercambio, puede encontrar un posible exploit o vulnerabilidades ya descubiertas en fuentes abiertas. Es necesario verificar que todas las bibliotecas, marcos y software de terceros no tengan vulnerabilidades disponibles públicamente en el momento del lanzamiento o la configuración correcta de los sistemas de seguridad (por ejemplo, CloudFlare).

7. Prueba de OWASP

La metodología OWASP contiene una lista de verificación que examina todos los riesgos de seguridad posibles para un sitio web. Por lo tanto, dicha verificación le permite identificar posibles vulnerabilidades (bueno, mucho más depende de la franqueza de las manos de la experiencia y las habilidades del probador)

Encontrado con mayor frecuencia:

  • Verificación de los parámetros de filtrado en el extremo posterior, ya que a menudo se verifican solo en el extremo frontal
  • La ausencia de marcas de solicitud HTTP, que no es crítica, pero puede conducir al almacenamiento en caché de contraseñas o la posibilidad de un ataque de Clickjacking
  • Falta de gestión de la sesión: esto puede llevar al hecho de que cuando se roba una cookie o un atacante tiene acceso directo a una computadora o teléfono, se pueden realizar operaciones de un usuario válido
  • Versiones vulnerables de servicios abiertos.
  • Usando JSON Web Tokens (JWT), con algoritmos de cifrado débiles

8. Prueba de la API

  • Verificación de vulnerabilidades de la API escribiendo un módulo de programa para interactuar con la API y verificando posibles vulnerabilidades lógicas en el lado del cliente y la API.
  • Use Swagger para ver la estructura de la solicitud, es necesario comprender qué debe enviarse al servidor y, por lo tanto, verificar la API para detectar vulnerabilidades.

9. Prueba de WebSockets

Software que se usa comúnmente para pruebas:

  • Burpsuite
  • Acunetix
  • Zenmap
  • Owasp zap
  • Sqlmap

Y otras herramientas según sea necesario.

Conclusión

En este artículo intenté formalizar y estructurar la metodología para probar intercambios, que apliqué en más de 10 casos de prueba de intercambios y billeteras. Tomamos esta metodología como la metodología principal para probar los intercambios en Hacken . Hoy, la industria de las tecnologías blockchain, las soluciones descentralizadas y las criptomonedas está en la cima de la popularidad. Las preguntas frecuentes y los manuales se actualizan mucho más rápido que la Ley de Moore, por lo tanto, el artículo no pretende ser un manual excepcional para probar intercambios de cifrado, solo expresa la experiencia adquirida durante la repetición repetida de este procedimiento.

Source: https://habr.com/ru/post/es418879/


All Articles