
Fuente: Certik Comunidad china
16 de enero de 2024,Socket Tech fue atacado y perdió alrededor de 3,3 millones de dólares estadounidensesEsenciaEl atacante usa un contrato de socketVulnerabilidad en el enlace de verificación de datosLos fondos del usuario que robaron el contrato autorizado a través de la entrada de datos maliciosos.Este ataque trajo pérdidas a 230 direcciones, y la mayor pérdida de dirección individual fue de aproximadamente 656,000 dólares estadounidenses.
Introducción de fondo
Socket es un protocolo interoperable que sirve a la seguridad de la cadena cruzada, datos eficientes y transmisión de activos.El contrato de Gateway de Socket es el punto de acceso para toda la interacción con la capa de liquidez del socket. .
Tres días antes del ataque de piratería, el administrador de contratos de socket ejecutó el comando AddRoute y agregó una nueva ruta al sistema.El propósito de agregar rutas es extender la función de la puerta de enlace del socket,Pero accidentalmente introduje una laguna claveEsencia
La siguiente figura es un registro de agregar enrutamiento a través del administrador del contrato:
Describir
1. A las 15:03, el 16 de enero, la hora de Beijing, la billetera del atacante fue transferida a los fondos utilizados por el ataque de nuestro tiempo muestra que los fondos son de 0xe620, que está relacionado con 10 BNB extraídos del efectivo de Tornado.
2.Estos fondos se utilizan para crear y ejecutar dos contratos para usar las lagunas de SocketEsenciaEl primer contrato está dirigido al USDC en la dirección de la dirección Socketgateway (la captura de pantalla es la siguiente).127 víctimas fueron engañadas por alrededor de $ 2.5 millones.
3. Luego, el segundo contrato apunta a Weth, USDT, WBTC, Dai y Matic en la dirección de la víctima.Como resultado, las otras 104 víctimas perdieron sobre los activos: Activos:
-42.48 Weth
-347,005.65 USDT
-2.89 WBTC
-13,821.01 Dai
-165,356.99 Matic
4. El atacante convierte el USDC y el USDT en ETH.
Vulnerabilidad
Las vulnerabilidades utilizadas por el atacante existen en la dirección de enrutamiento recientemente agregada Routeaddress.
La función original de la función PerformAction en esta dirección es ayudar a la función de envolver y desenvolver.
Sin embargo,Hay una laguna clave en esta función: Bajo la situación sin verificación, llame directamente a los datos externos a través de Swapextradata en .call () yEsto significa que un atacante puede ejecutar cualquier función maliciosaEsencia
En este incidente, el atacante realizó una entrada maliciosa de swapextradata para activar la función de transferencia.La llamada maliciosa aprovechó la autorización del usuario del contrato de Socketgateway y les robó fondos.
Aunque el contrato se asegurará de que el saldo del usuario cambie correctamente después de que se llame a la información verificando la verificación del saldo para garantizar que el saldo del usuario cambie, pero la función no considera que el atacante establece la cantidad a 0.
Restaurar el proceso de ataque
1. Use un contrato de ataque para llamar 0x00000196 () en el contrato de puerta de enlace de Socket.
2.Fallback () usa la firma de seis para llamar la firma para llamar a las lagunas.
3. En la captura de pantalla a continuación, podemos ver la falsa entrada utilizada por el atacante.
4. A continuación, llamará a WrappedTokenWapperImpl.performAction () para intercambiar.
5. Sin ninguna verificación, el falso swapextradata es aceptado y ejecutado por FromToken (Weth).
6. El atacante ejecuta repetidamente el proceso anterior hasta que los activos de la víctima estén agotados.Después de que apareció la transacción maliciosa, el enchufe rápidamente llamó discapleroute, bloqueando el enrutamiento de la vulnerabilidad antes, evitando el mayor rango de ataques.
7. El 23 de enero, Socket anunció que había recuperado 1032 ETR y anunció el 25 que compensaría todas las pérdidas.Este evento está resuelto.
Resumen de eventos
En un contrato de enrutamiento autorizado por usuarios ilimitados, los ataques maliciosos de llamada de llamada no son infrecuentes.
Los ataques similares en el pasado incluyenPuente dexible y HéctorEsencia
El 17 de febrero de 2023, el intercambio descentralizado dexible fue atacado y perdido más que1,5 millones de dólares estadounidensesEsenciaLas utilidades de vulnerabilidad ingresan los días de llamada maliciosa a la función relleno () de los activos de los usuarios dexibles para robar.
El 2 de junio de 2023, el protocolo de la red Héctor fue atacado.El atacante desplegó un falso contrato del USDC y aprobó los llamados maliciosos para transferir 652,000 USDC reales del contrato de la víctima.
La plataforma de polímero blockchain generalmente utiliza una serie de puentes y contratos de enrutamiento para mejorar la liquidez y reducir las pérdidas.Sin embargo, este complicado envasado puede traer más problemas a la seguridad.