智能合约安全分析,假充值攻击如何突破交易所的防御?

2023-11-05

智能合约安全分析,假充值攻击如何突破交易所的防御?

引言
假充值攻击,是指攻击者通过利用交易所在处理充值过程中的漏洞或系统错误,发送伪造的交易信息到交易所钱包地址,这些伪造的交易信息被交易所误认为是真实的充值请求,并将对应的数字资产或货币添加到攻击者的账户中。攻击者利用这种方式,可以获得未经支付的数字资产,导致交易所的资产损失。
本文旨在深入探讨假充值攻击如何突破交易所的防御机制。我们将分析假充值攻击的原理,揭示攻击者利用的漏洞和策略。同时,我们将通过实例分析假充值攻击,以便更好地理解攻击方式和影响。此外,我们还将讨论交易所应对假充值攻击的应急措施和预防措施,以提供相关保护资产和应对类似攻击的建议。

充值原理解析

在了解假充值之前,我们需要先了解交易所的充值原理。
一个典型的流程如下:
1. 钱包地址生成
交易所为每个用户分配一个唯一的钱包地址,用于接收用户的充值。这些地址通常由交易所的系统自动生成。用户在进行充值时,需要将数字资产发送到交易所账户中的特定钱包地址。
2. 区块链账本扫描
交易所的节点会与区块链网络中的其它节点同步,以获取最新的区块链状态和交易信息。当交易所节点收到新的区块时,它会从区块包含的交易内容,或者区块触发的交易执行事件中,提取出用户的充值交易 ID 及对应的金额,加入待充值列表。
3. 确认入账
交易所通常要求交易在区块链网络中获得一定数量的确认后才被视为有效。确认是指交易所在区块被一定数量的区块所引用,并被其他矿工验证和确认。交易所设定的确认数目可以根据不同的数字资产和网络而有所不同。
如图所示:

(假充值攻击发生在步骤 5 和 6)

假充值攻击模式

交易所是黑客攻击的重灾区,因此交易所通常会把服务器置于重重防御系统的背后,对于管理资金的核心服务,甚至要离线托管。然而由于区块链系统对数据完整上的要求,恶意交易并不会被外围安全系统拦截。
需要说明的是,假充值攻击并非区块链的漏洞,而是攻击者利用区块链的一些特性,构造出特殊的交易。这些恶意交易会让交易所误认为是真实的充值请求,或者多次处理同一笔充值请求。Safful安全团队经过长期的实战,总结出了几种常见的假充值攻击手法:

自 2018 年以来,Safful安全团队多次首发披露过多个假充值攻击,包括:

  • USDT 虚假转账安全⻛险分析
  • EOS 假充值(hard_fail 状态攻击)红色预警细节披露与修复方案
  • 以太坊代币“假充值”漏洞细节披露及修复方案
  • 比特币 RBF 假充值风险分析

除了这些已经公开的假充值攻击,还有多个我们未曾公开的经典攻击手法,以及一些普适性的攻击手法。例如:

  • Bitcoin 多签假充值
  • Ripple 部分支付假充值
  • Filecoin 双花假充值
  • TON 反弹假充值

如果要了解更多详情,欢迎和我们联系以深入探讨。

实例分析:TON 反弹假充值

几乎所有的区块链都存在假充值问题,只是有的攻击很容易避免,有的却要对区块链的特性有十分深入的研究才能免受其害。
以 TON 的假充值为例,我们将向大家展示狡猾的攻击者如何利用 TON 的特性攻击交易所。
TON(The Open Network)是知名通讯软件 Telegram 发起的一个区块链项目,支持在用户的账号上部署智能合约。
交易所在对接 TON 充值时,按之前描述的方法,它首先会为用户生成一个充值地址,然后用户将资产转移到充值地址,最后确认入账。
交易所如何确认一笔交易是它的用户的呢?我们通过 RPC 接口来查看一笔正常的转账:

通常交易所会判断 in_msg 里的 destination 是否为用户的充值地址,如果是,那么把金额 value 按照精度换算后为用户入账。但这样安全吗?
TON 交易有一个特性,几乎所有在智能合约之间发送的内部消息都应该是可反弹的,即应该设置它们的 bounce 标志位。这样,如果目标智能合约不存在,或者在处理这条消息时抛出未处理的异常,该消息将被“反弹”回来,并携带原始值的余额(减去所有的消息转账和燃气费用)。
也就是说,如果一个恶意攻击者通过设置 bounce 标志位,给一个未部署过合约的账号转账,那么充值金额在扣掉手续费以后会被反弹回原账号。交易所检测到了用户的充值记录,但没想到充值的币居然还会原路返回“反弹”到攻击者的账号上。
我们来看这一笔交易,对比正常交易可以发现,多了一个 out_msg,这个 out_msg 就是资金被反弹回原账号的操作。

交易所如果只检验了 in_msg,那么就会错误地为攻击者入账,造成平台资产损失。

预防假充值攻击的最佳实践

防范假充值攻击的一些基本策略有:
**1. 多重确认机制:**设定充值的多重确认要求,确保交易在区块链上得到足够的确认后才被视为有效。确认数目应根据不同数字资产的安全性和区块链的确认速度来设定;
**2. 严谨的交易匹配:**从区块中筛选用户交易时,只有完全匹配正常转账模式的交易才能自动设置为到账,最后还要检查余额变化;
**3. 风险控制系统:**建立完善的风险控制系统,监测和检测异常交易活动。该系统可以通过分析充值模式、交易频率、交易规模等因素来识别潜在的风险和异常行为;
**4. 人工审核:**对于较大金额或高风险交易,采用人工审核机制进行额外的审核。人工审核可以增加交易的可信度,发现异常交易,并防止恶意充值;
**5. API 安全:**对外部 API 接口进行安全认证和授权,避免未经授权的访问和潜在的漏洞。定期审查 API 接口的安全性,并进行及时的安全更新和修复;
**6. 限制提款:**充值发生后,暂时限制用户对充值资产的提款操作。这样可以给交易所足够的时间来确认充值的有效性和防范潜在的假充值攻击;
**7. 安全更新:**及时更新交易所软件和系统,修复可能存在的安全漏洞。持续监控交易所的安全状态,并与网络安全专家合作,定期进行安全审计和渗透测试。
对于特定区块链的假充值防范,则需要通读官方说明文档,了解交易中存在的特征。

Badwhale 假充值检测系统

Safful安全团队在长期的攻防实践中开发出 Badwhale 假充值测试系统,专门为数字资产管理平台开发。该系统旨在帮助它们检测和评估其防范假充值攻击的能力,优化其防御机制,以保障用户资产的安全和数字资产管理平台的可靠性。
Badwhale 是Safful安全团队独家且沉淀多年的商业系统,为数十个平台持续服务多年,已避免了预估几十亿美金资产的假充值风险。
特色功能:
**1. 模拟假充值攻击:**Badwhale 能够模拟各种类型的假充值攻击,并自动发送虚假的充值请求到被测试的数字资产管理平台。这有助于评估数字资产管理平台的弱点,发现潜在的漏洞和安全隐患;
**2. 多样化的测试场景:**系统提供多样化的测试场景和攻击模式,可以根据实际情况对数字资产管理平台的假充值防御进行全面测试;
**3. 高度可扩展性:**Badwhale 设计为高度可扩展的测试系统,支持为不同数字资产管理平台和区块链平台提供测试,可以灵活适应不同系统架构和技术环境的需求。
Badwhale 目前已经支持数百条公链、数万代币的假充值测试,包括:

  • Bitcoin Families (BTC/LTC/DOGE/QTUM…)
  • BitcoinCash
  • Ethereum Families (ETH/BSC/HECO/RON/CFX-evm/FIL-evm/AVAX-evm/FTM-evm/RSK/GNO/MOVR-evm/GLMR-evm/KLAY/FSN/CELO/CANTO/EGLD/AURORA-evm/TLC/WEMIX/CORE/VS/WAN/KCCL/OKX…)
  • ERC20 Tokens (USDT…)
  • Ethereum L2 (ARB/OP/METIS…)
  • Polygon
  • Polygon Tokens
  • Cosmos Families (ATOM/LUNA/KAVA/IRIS/OSMO…)
  • EOS Families and EOS Tokens (EOS/WAX/XPR/FIO/TLOS…)
  • Ripple
  • Flow
  • Aptos
  • Solana
  • Solana SPL-Tokens
  • Conflux
  • Polkadot Families (DOT/ASTR/PARA/MOVR/GLMR…)
  • Tron
  • Filecoin
  • Ton
  • Mina
  • Sui
  • Ordinals (ORDI…)

借助 Badwhale 的强大功能,数字资产管理平台可以进行全面的假充值防御测试,了解其在面对假充值攻击时的表现,并优化其防御机制,提升用户资产的安全保障。Badwhale 的引入将帮助数字资产管理平台加强安全防护,提高对抗假充值攻击的能力,确保数字资产交易的可靠性和用户信任度。

结语

通过深入研究假充值攻击的突破方式,我们可以更好地认识到数字资产管理平台在保护用户资产和维护安全的重要性。只有通过增强安全防御措施、持续监测漏洞并采取适当的应对措施,数字资产管理平台才能有效地应对假充值攻击和其他安全威胁,确保数字资产交易的可信度和可靠性。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

智能合约安全分析,假充值攻击如何突破交易所的防御? 的相关文章

  • 蒙特卡洛在发电系统中的应用(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码实现
  • 小白入门黑客之渗透测试(超详细)基本流程(内附工具)

    经常会收到小伙伴们这样的私信 为什么我总是挖不到漏洞呢 渗透到底是什么样的流程呢 所以全网最详细的渗透测试流程来了 渗透测试其实就是通过一些手段来找到网站 APP 网络服务 软件 服务器等网络设备和应用的漏洞 告诉管理员有哪些漏洞 怎么填补
  • 利用CHAT写实验结论

    问CHAT 通过观察放置在玻璃表面上的单个水滴 人们可以观察到水滴充当成像系统 探究这样一个透镜的放大倍数和分辨率 CHAT回复 实验报告标题 利用玻璃表面的单一水滴观察成像系统的放大倍数和分辨率 一 实验目的 通过对比和测量 研究和探索玻
  • 什么是充放电振子理论?

    CHAT回复 充放电振子模型 Charging Reversal Oscillator Model 是一种解释ENSO现象的理论模型 这个模型把ENSO现象比喻成一个 热力学振荡系统 在这个模型中 ENSO现象由三个组成部分 充电 Char
  • 链上繁荣,合作不断,外媒热议波场 TRON 2023 年度成绩

    近日 权威外媒Theblock 美联社和Decrypt等就波场 TRON 2023大事件进行了年度盘点 报道指出 波场TRON网络在2023年取得了一系列的发展和合作 提升了其在Web3领域的地位 其中 波场TRON网络账户数量增加了 54
  • 打造完美人像,PixCake像素蛋糕助您一键修图

    您是否曾经为自己的人像照片需要进行繁琐的修图而感到困扰 是否曾经想要打造出完美的自拍照 却不知道该如何下手 现在 我们为您推荐一款强大的人像处理技术修图软件 PixCake像素蛋糕 PixCake像素蛋糕是一款基于AI人像处理技术的修图软件
  • 活动日程&直播预约|智谱AI技术开放日 Zhipu DevDay

    点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入 直播预约通道 关于AI TIME AI TIME源起于2019年 旨在发扬科学思辨精神 邀请各界人士对人工智能理论 算法和场景应用的本质问题进行探索 加强思想碰撞 链接全球AI学
  • 无人机视角、多模态、模型剪枝、国产AI芯片部署

    无人机视角 多模态 模型剪枝 国产AI芯片部署是当前无人机技术领域的重要研究方向 其原理和应用价值在以下几个方面进行详细讲述 一 无人机视角 无人机视角是指在无人机上搭载摄像头等设备 通过航拍图像获取环境信息 并进行图像处理和分析 这种技术
  • 台积电再被坑,2纳米光刻机优先给Intel和三星,美国太霸道了

    外媒指出今年ASML的10台2纳米光刻机分配已经基本确定了 Intel拿到6台 三星获得3台 台积电只能得到一台 考虑到美国对ASML的强大影响力 外媒的这些消息应该有较高的可信性 Intel在先进工艺制程方面 自从2014年量产14纳米之
  • 手把手教你用 Stable Diffusion 写好提示词

    Stable Diffusion 技术把 AI 图像生成提高到了一个全新高度 文生图 Text to image 生成质量很大程度上取决于你的提示词 Prompt 好不好 前面文章写了一篇文章 一份保姆级的 Stable Diffusion
  • 如何用GPT进行论文润色与改写?

    详情点击链接 如何用GPT GPT4进行论文润色与改写 一OpenAI 1 最新大模型GPT 4 Turbo 2 最新发布的高级数据分析 AI画图 图像识别 文档API 3 GPT Store 4 从0到1创建自己的GPT应用 5 模型Ge
  • 人工智能 AI 如何让我们的生活更加便利

    每个人都可以从新技术中获益 一想到工作或生活更为便利 简捷且拥有更多空余时间 谁会不为之高兴呢 借助人工智能 每天能够多一些空余时间 或丰富自己的业余生活 为培养日常兴趣爱好增添一点便利 从电子阅读器到智能家居 再到植物识别应用和智能室内花
  • AI在广告中的应用——预测性定位和调整

    营销人员的工作就是在恰当的时间将适合的产品呈现在消费者面前 从而增加他们购买的可能性 随着时间的推移 营销人员能够深入挖掘越来越精准的客户细分市场 他们不仅具备了实现上述目标的能力 而且这种能力还在呈指数级提升 在AI技术帮助下 现在的营销
  • 史上最全自动驾驶岗位介绍

    作者 自动驾驶转型者 编辑 汽车人 原文链接 https zhuanlan zhihu com p 353480028 点击下方 卡片 关注 自动驾驶之心 公众号 ADAS巨卷干货 即可获取 点击进入 自动驾驶之心 求职交流 技术交流群 本
  • 基于节点电价的电网对电动汽车接纳能力评估模型研究(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码 数据
  • 为什么这么多人自学黑客,但没过多久就放弃了(掌握正确的网络安全学习路线很重要)

    网络安全是一个 不断发展和演变 的领域 以下是一个 网络安全学习路线规划 旨在帮助初学者快速入门和提高自己的技能 基础知识 网络安全的 基础知识 包括 网络结构 操作系统 编程语言 等方面的知识 学习这些基础知识对理解网络安全的原理和技术至
  • 深度学习(5)--Keras实战

    一 Keras基础概念 Keras是深度学习中的一个神经网络框架 是一个高级神经网络API 用Python编写 可以在TensorFlow CNTK或Theano之上运行 Keras优点 1 允许简单快速的原型设计 用户友好性 模块化和可扩
  • 自动驾驶离不开的仿真!Carla-Autoware联合仿真全栈教程

    随着自动驾驶技术的不断发展 研发技术人员开始面对一系列复杂挑战 特别是在确保系统安全性 处理复杂交通场景以及优化算法性能等方面 这些挑战中 尤其突出的是所谓的 长尾问题 即那些在实际道路测试中难以遇到的罕见或异常驾驶情况 这些问题暴露了实车
  • 实力认证!鼎捷软件荣膺“领军企业”和“创新产品”两大奖项

    近日 由中国科学院软件研究所 中科软科技股份有限公司联合主办的 2023中国软件技术大会 于北京成功举办 本届大会以 大模型驱动下的软件变革 为主题 数十位来自知名互联网公司和软件巨头企业的技术大咖 不同领域行业专家 畅销书作者等分享嘉宾
  • 【安全】mybatis中#{}和${}导致sql注入问题及解决办法

    0 问题 使用mybatis的时候遇到了 和 可能导致sql注入的问题 1 预先了解 1 底层通过prepareStatement对当前传入的sql进行了预编译 一个 被解析为一个参数占位符 解析之后会将String类型的数据自动加上引号

随机推荐

  • APP弱网测试

    APP弱网测试 一 网络测试的一般流程 step1 首先要考虑网络正常的情况 各个模块的功能正常可用 页面元素 数据显示正常 step2 其次要考虑无网络的情况 APP各个功能在无网络情况下是否可用 APP各个页面之间切换是否正常 发送网络
  • torch.nn.Module和torch.nn.LSTM 相关文档

    torch nn Module和torch nn LSTM 相关文档 搬运官方链接 class torch nn Module 所有网络的基类 你的模型也应该继承这个类 import torch nn as nn import torch
  • fatal error C1034: stdio.h: 不包括路径集 ---LINK : fatal error LNK1104: 无法打开文件“libucrt.lib”【已解决】

    用windows 自带的编译工具 cl exe 编译 链接程序时候报错如下 1 编译报错 1 cpp 1 fatal error C1034 stdio h 不包括路径集 解决方法 新建环境变量 变量名 INCLUDE 变量值 D vs20
  • MQ 消息丢失、重复、积压问题,如何解决?

    MQ是面试中比较高频的问题 下面分享下MQ的常见问题 面试官在面试候选人时 如果发现候选人的简历中写了在项目中使用了 MQ 技术 如 Kafka RabbitMQ RocketMQ 基本都会抛出一个问题 在使用 MQ 的时候 怎么确保消息
  • Objective-C非正式协议和分类的区别

    当一个项目需要使用到一些通用的方法 这些方法需要在多个类中使用 那么我们就可以使用非正式协议来定义这些方法 以便于多个类之间共享这些方法 比如 我们可以定义一个名为 Utilities 的非正式协议 并在其中定义一些通用的方法 比如 Uti
  • 最大熵模型

    1 什么是最大熵原理 例子1 假设随机变量X有5个取值 A B C D E 要估计各个值的概率P A P B P E 这些概率值满足条件P A P B P C P D P E 1 但是满足这个条件的概率分布有无数个 如果没有其他信息 一个可
  • vue项目打包及配置跨域

    一 配置 proxy 跨域 module exports devServer open true 自动启动浏览器 host localhost localhost port 8080 端口号 hotOnly false 热更新 overla
  • python四行代码生成“年月日”格式的日期列表序列

    代码如下 import pandas as pd start 20110101 end 20161231 dates pd date range start end strftime Y m d to list 代码运行结果如下 需要说明的
  • 使用Typora将Markdown内容导出为Word(.docx)

    使用Typora将Markdown内容导出为Word docx 操作步骤 01 下载并安装Typora 自行前往Typora官网下载 傻瓜式安装 此处就不再做多余的解释 02 安装Pandoc 2 1 pandoc官网下载 真不知道怎么从这
  • Mongodb 定义model中的某个属性 保存任意类型

    参考 Mongoose5 0 文档http www mongoosejs net docs schematypes html 一个啥都可以放的 SchemaType 虽然便利 但也会让数据难以维护 Mixed 可以通过 Schema Typ
  • Spring @Scheduled @Async联合实现调度任务

    定时任务之前一直用的是quartz之类 但是注意到Spring中其实也提供了一种简单的调度注释 Scheduled 也就想尝一下鲜 代码示意如下 Component EnableScheduling public class AsyncTa
  • C++ primer plus 第六版 第十一章 复习题

    第十一章 复习题 1 Stonewt Stonewt operator double n const Stonewt result double total stn Lbs per stn n lbs n result stn total
  • RabbitMQ(三)手动Ack确认

    默认情况下 spring boot data amqp 是自动ACK机制 就意味着 MQ 会在消息发送完毕后 自动帮我们去ACK 然后删除消息的信息 这样依赖就存在这样一个问题 如果消费者处理消息需要较长时间 最好的做法是消费端处理完之后手
  • javascript enval()函数与JSON 之间关系

    概念定义 eval 函数可计算某个字符串 并执行其中的的 JavaScript 代码 enval 函数将把最后一个表达式或者语句所包含的值或引用作为返回值 举例说明一 eval javascrit表达式
  • 关于召开“CIE2019第三届中国IT教育论坛”的通知

    各相关高校 伴随着人工智能 智能制造 云计算 虚拟现实 5G等新技术的发展与日益成熟 全球范围内的新科技革命悄然打响 新一轮科技革命正在重塑世界竞争格局 以新技术 新业态 新产业为特点的新经济蓬勃发展 我国急需培养一批集学科 技术和产业思维
  • ubuntu18.04下mysql数据库安装和C语言连接操作

    数据库在应用系统开发中很常见 在众多的数据库中 mysql总是会占有一席之地 本篇说明一下如何在ubuntu18 04上安装mysql数据库 目录 1 更新环境 2 安装mysql数据库系统 3 检测是否安装成功 4 启动 重启 关闭 删除
  • CLion用于STM32开发

    最近想要复现稚晖君的ElectronBot 发现32的代码用的CLion编写的 而且是C和C 混编的 本来想着用keil再写一个 但是有点浪费时间 而且发现CLion学生可以白嫖 反正以后都要学习C 所以现在就装上吧 注 最终的效果只能下载
  • 克服过拟合和提高泛化能力的20条技巧和诀窍

    克服过拟合和提高泛化能力的20条技巧和诀窍 你是如何提升深度学习模型的效果 这是我经常被问到的一个问题 有时候也会换一种问法 我该如何提高模型的准确率呢 或者反过来问 如果我的网络模型效果不好 我该怎么办 通常我的回答是 具体原因我不清楚
  • 数据结构——查找

    一 查找的基本概念 查找 在数据集合中寻找满足某种条件的数据元素的过程称为查找 查找表 查找结构 用于查找的数据集合称为查找表 它由同一类型的数据元素 或记录 组成 关键字 数据元素中唯一标识该元素的某个数据项的值 使用基于关键字的查找 查
  • 智能合约安全分析,假充值攻击如何突破交易所的防御?

    智能合约安全分析 假充值攻击如何突破交易所的防御 引言 假充值攻击 是指攻击者通过利用交易所在处理充值过程中的漏洞或系统错误 发送伪造的交易信息到交易所钱包地址 这些伪造的交易信息被交易所误认为是真实的充值请求 并将对应的数字资产或货币添加