Curve深陷安全事件,OKLink如何破局


acedfcddfd607df367832b81949b6766.jpeg

出品|欧科云链研究院

作者|Matthew Lee

7月31号,Curve 在平台表示 Vyper 0.2.15 的稳定币池由于编译器的漏洞所以遭到攻击。具体因为重入锁功能的失效所以黑客可以轻易发动重入攻击,即允许攻击者在单次交易中执行某些功能而Curve上的部分资金池又使用了旧版本的编译器,给黑客提供了机会。

(重入攻击是一种由于 Vyper 的特性加上智能合约编写不当导致的漏洞,之前已经多次发生,欧科云链的安全团队之前有过对此类案例的详细分析,点击文末左下角“阅读原文”查看,所以本文对攻击细节不再展示)

紧接着其他多个项目都宣布遭受到了攻击,NFT 质押协议 JPEG’d,借贷项目 AlchemixFi 和 DeFi 协议 MetronomeDAO,跨链桥 deBridge、采用 Curve 机制的 DEX Ellipsis等都分别遭受巨额损失。

ac81666a972cb95f6b32dee55e0d1a85.jpeg

然而在7月30号,一些项目方已经知道了潜在的攻击威胁。以 Alchemix 为例,在30号就已经开始转出资产,而且已经成功的转出 8000ETH,但是在转移资产的过程中,依然被攻击者盗取在 AMO 合约的剩余 5000ETH。

31e9f9eadfe55c8ba975cbcc0a662a94.jpeg图片来源:OKLink Explorer

其他项目方也相继采取了一些措施,如 AAVE 禁止 Curve 进行借贷;Alchemix 也从曲线池中移除 AMO 控制的流动性;Metronome 直接暂停主网功能。

 如何从攻防两端

 防范黑客进攻?

Curve 不是第一次出现被黑客攻击的事件了,作为 Defi 的顶级项目都无法免疫黑客攻击,普通的项目方更应该在黑客攻击端和合约防守端重视起来。

那么针对进攻端,项目方可以做哪些准备呢?

OKLink 团队推荐项目方通过链上标签系统提前辨别有黑历史的钱包阻止有过异常行为地址的交互。Curve 的其中一个攻击者的地址就有过不良记录曾被 OKLink 记录,如下图所示:

9ba5cd51dafd9c543f75c3a69465ba07.jpeg图片来源:OKLink Chaintelligence Pro

其行为模式也一定程度上超出常理,如下图所示,有三日交易笔数过百。

7a948cbc47ce361b8d9e44658c1a3ae2.jpeg图片来源:OKLink Onchain AML

项目方如何在防守端进行防御呢?

针对上述事件梳理,我们发现项目方在处理此类事件的两点问题,

1. 维护工作不到位大部分项目非常注重代码的编写和审核,但是维护工作一直没受到重视,Vyper 编译器的这个漏洞是两年前被发现的,但受攻击的池子还是采用的旧版编译器。

2. 代码测试场景过于单一很多测试代码起不到真正的测试问题的作用,应增加模糊测试等更复杂的测试手段,且应该在黑客攻击途径,攻击复杂度,机密性,完整性等多个维度进行测试的工作。

 被盗资金如何追回?

现实中,大部分被盗资金都难以追回。下图是黑客转出资金去向,可以看到被盗 ETH 没有对外转出动作,地址也没有和实体机构相关联。

27a347fffa9ded59c6efda1de4043730.jpeg

图片来源:OKLink Chaintelligence Pro

有一部分地址和实体机构有关联的,如地址0xb752DeF3a1fDEd45d6c4b9F4A8F18E645b41b324 (已归还2,879.54 ETH),类似地址有关联实体机构的,我们可以通过报警和实体机构协商的办法追回资金。

486c3e33dd466ae89b766783a15f86a5.jpeg图片来源:OKLink Chaintelligence Pro

针对此次事件的正确做法是通过 OKLink 或者其他技术服务商的预警和跟踪功能,等待沉淀地址的后续的资金动向,在进一步实施行动。但是,最好的方法是行业团结一致制定基于安全事件的响应机制,可以对有异常行为进行更好的打击。


给我们的警示

重入攻击此类的安全事件一定还会发生,所以除了上述在攻防两端我们需要付出的努力外,项目方需要做好应急预案当受到黑客攻击时能最及时的进行反应,减少项目方和用户的损失。Vyper贡献者也建议,对于 Vyper 此类公共产品我们应该加强公众激励寻找关键漏洞。OKLink呼吁应该尽早建立起一套安全响应标准,让黑/灰地址的资金追踪变得更加容易。


正如 OKLink 产品在此类事件中的攻防两端起到防范黑客和追查资金的作用,项目方在搭建平台的安全模块时应考虑第三方技术服务商可以带来的额外价值,更快更好的筑起项目的安全堡垒。


欧科云链的 Raymond Lei 和 Mengxuan Ren 对此文亦有帮助。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/20419.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

二、搜索与图论6:Dijkstra 模板题+算法模板(Dijkstra求最短路 I, Dijkstra求最短路 II,1003 Emergency)

文章目录 算法模板Dijkstra题目代码模板朴素dijkstra算法堆优化版dijkstra 树与图的存储(1) 邻接矩阵:(2) 邻接表:关于e[],ne[],h[]的理解 关于堆的原理与操作 模板题Dijkstra求最短路 I原题链接题目思路题解 Dijkstra求最短路 II原题链接题目思路题解 1…

05|Oracle学习(UNIQUE约束)

1. UNIQUE约束介绍 也叫:唯一键约束,用于限定数据表中字段值的唯一性。 1.1 UNIQUE和primary key区别: 主键/联合主键每张表中只有一个。UNIQUE约束可以在一张表中,多个字段中存在。例如:学生的电话、身份证号都是…

AWS——01篇(AWS入门 以及 AWS之EC2实例及简单实用)

AWS——01篇(AWS入门 以及 AWS之EC2实例及简单实用) 1. 前言2. 创建AWS账户3. EC23.1 启动 EC2 新实例3.1.1 入口3.1.2 设置名称 选择服务3.1.3 创建密钥对3.1.4 网络设置——安全组3.1.4.1 初始设置3.1.4.2 添加安全组规则(开放新端口&…

尝试多数据表 sqlite

C 唯一值得骄傲的地方就是 通过指针来回寻址 😂 提高使用的灵活性 小脚本buff 加成

Windows用户如何将cpolar内网穿透配置成后台服务,并开机自启动?

Windows用户如何将cpolar内网穿透配置成后台服务,并开机自启动? 文章目录 Windows用户如何将cpolar内网穿透配置成后台服务,并开机自启动?前置准备:VS Code下载后,默认安装即可VS CODE切换成中文语言 1. 将…

uni-app选择器( uni-data-picker)选择任意级别

背景说明 uni-app 官方的插件市场有数据驱动选择器,可以用作多级分类的场景。引入插件后,发现做不到只选择年级,不选择班级(似乎,只能到最后子节点了)。 需求中,有可能选择的不是叶子。比如&a…

适应于Linux系统的三种安装包格式 .tar.gz、.deb、rpm

deb、rpm、tar.gz三种Linux软件包的区别 rpm包-在红帽LINUX、SUSE、Fedora可以直接进行安装,但在Ubuntu中却无法识别; deb包-是Ubuntu的专利,在Ubuntu中双击deb包就可以进入自动安装进程; tar.gz包-在所有的Linux版本中都能使用…

2023 8-2 ~ 8-3

2181 合并0之间的节点 思路挺简单 就是注意一下指针不要制空 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), next(nullptr) {}* ListNod…

【Docker】Docker+Zipkin+Elasticsearch+Kibana部署分布式链路追踪

文章目录 1. 组件介绍2. 服务整合2.1. 前提:安装好Elaticsearch和Kibana2.2. 再整合Zipkin 点击跳转:Docker安装MySQL、Redis、RabbitMQ、Elasticsearch、Nacos等常见服务全套(质量有保证,内容详情) 本文主要讨论在Ela…

opencv rtsp 硬件解码

讨论使用opencv的reader 硬件解码的方案有太多种,如果使用ffmpeg硬件解码是最方便的,不方便的是把解码过后的GPU 拉到 CPU 上,再使用opencv的Mat 从cpu 上上载到gpu上,是不是多了两个过程,应该是直接从GPU mat 直接去…

数实融合 产业共创 | 竹云受邀出席“2023湾区数字科技50人论坛”

7月29日,“2023湾区数字科技50人论坛”在深圳湾科技生态园圆满举行!本届论坛由深圳市科学技术协会指导,中国鲲鹏产业源头创新中心、湾盟产业创新服务中心主办,深圳市金融攻关基地、广东赛迪工业和信息化研究院、香港科技大学深港协…

MySQL数据库备份与恢复

在任何数据库环境中,总会有不确定的意外情况发生,比如停电,计算机系统的各种软硬件故障,认为破坏,管理员误操作等是不可避免的,这些情况可能会导致 数据的丢失, 服务器瘫痪 等严重后果。存在多个…

STM32CubeMX配置定时器PWM--保姆级教程

———————————————————————————————————— ⏩ 大家好哇!我是小光,嵌入式爱好者,一个想要成为系统架构师的大三学生。 ⏩最近在开发一个STM32H723ZGT6的板子,使用STM32CUBEMX做了很多驱动&#x…

【Python】从同步到异步多核:测试桩性能优化,加速应用的开发和验证

目录 测试工作中常用到的测试桩mock能力 应用场景 简单测试桩 http.server扩展:一行命令实现一个静态文件服务器 性能优化:使用异步响应 异步响应 能优化:利用多核 gunicorn 安装 gunicorn 使用 gunicorn 启动服务 性能优化&#…

/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28‘ not found

某项目中,我要给别人封装一个深度学习算法的SDK接口,运行在RK3588平台上,然后客户给我的交叉编译工具链是 然后我用他们给我的交叉编译工具链报下面的错误: aarch64-buildroot-linux-gnu-gcc --version /data/chw/aarch64/bin/cca…

使用idea实现git操作大全(在项目开发中遇到的实际情况

使用idea实现git操作大全(在项目开发中遇到的实际情况) 1.安装git插件2.在开发中切记拉一个自己的分支 1.安装git插件 2.在开发中切记拉一个自己的分支 选中需要拉的分支,右键该分支,选中new breach from “分支”,点…

Permute 3 for mac音视频格式转换

Permute是一款Mac平台上的媒体格式转换软件,由Chaotic Software开发。它可以帮助用户快速地将各种音频、视频和图像文件转换成所需格式,并提供了一些常用工具以便于用户进行编辑和处理。 Permute的主要特点包括: - 支持大量格式:支…

小程序安全性加固:如何保护用户数据和防止恶意攻击

第一章:引言 在当今数字化时代,移动应用程序的使用已经成为人们日常生活中的重要组成部分。小程序作为一种轻量级的应用程序形式,受到了广泛的欢迎。然而,随着小程序的流行,安全性问题也日益凸显。用户数据泄露和恶意攻…

flask中写一个基础的sqlHelper类

写一个SQLHelper类: from flask_sqlalchemy import SQLAlchemydb SQLAlchemy()class SQLHelper:staticmethoddef add(record):db.session.add(record)return SQLHelper.session_commit()staticmethoddef add_all(records):db.session.add_all(records)return SQLH…

STM32 DMA

DMA介绍 DMA,Direct Memory Access,即直接存储器访问。 DMA传输,将数据从一个地址空间复制到另一个地址空间。(内存(程序里定义的数组)->外设(串口、SPI等外设的数据寄存器)、外…