社会工程学在智能合约中的攻击与漏洞利用

本文最重要的一个问题是,这六种社会工程攻击是否可以用于现实世界的智能合约。为了回答这个问题,选择满足以下条件的5个智能合约源代码:a)代表智能合约的流行用例b)他们有成千上万的活跃用户c)他们的市场价格高(用户委托资金)d)合约实现了OpenZeppelin合约库的标准用例。然后,稍微修改这些合约的源代码,将社会工程攻击整合到其中,不需要更改函数或合并不安全的做法和已知的漏洞。这证明了流行的信赖智能合约可以用于社会工程攻击。


将攻击模式整合到5个合约源代码后,将合约部署到Ropsten测试网上,验证其预期功能。然后模拟合约的生产配置,证明了在攻击A2中在EOA广告位配置合约(例如攻击A2中在EOA广告位配置合约),测试中进行的交易失败。在各种情况下,a)攻击在测试阶段保持休眠状态,只在生产配置时激活b)攻击在视觉上隐藏了审查员c)每次攻击都有合理的伪装(例如,假装从服务费中获利)。上表总结了其中整合的五种智能合约和攻击模式。


生产配置模拟:人气合约源代码的手动分析显示,许多合约使用OpenZeppelin合同模板和定制添加项目。在案例研究中,演示了将攻击代码整合到现有Token中,而不破坏OpenZepelinContracts库提供的安全模式和函数。可以将操纵后的Token宣传为具有其他功能的新加密货币,如为初期用人单位提供的特殊VIP特权。出于道德考虑,使用Ropsten测试网进行测试和生产部署模拟,该测试网的智能合约执行与Mainnet相同,但与实际资金无关。为了模拟攻击者对恶意合约的生产配置,故意使用不同结构函数的自变量配置相同的合约(例如,用同形异义词替换Token符号的字母),或者提交其他交易(例如,在以下位置配置智能合约)硬码的EOA地址。有效地模拟了生产配置中以前处于休眠状态的恶意功能性化。这里提供了五种攻击模式整合的高级概述。


TetherUSD稳定货币集成A4攻击:稳定货币是与法定货币(如美元)市场价格相关的替代Token。主流稳定货币主要采用加密货币交易所,市场价格高,每天交易量高。TetherUSD是最受欢迎的稳定货币,是配置在以太网广场的ERC-20智能合约。通过在每次转移前添加对Token符号看似无害的检测,将攻击模式A4整合到USDT源码中。通过确认传输例程的功能不变来测试代码。之后,通过对Token符号进行隐形修改模拟代码的生产部署,该修改通过结构函数传递。毕竟,由于被篡改的Token符号,智能合约会捕获用户Token。


BinanceToken集成A5攻击:BinanceToken(BNB)是流行的ERC-20元,市场资本化和每日交易量高,由大型加密货币交易所Binance的金融资产担保。通过添加一个看似纯粹的日志记录套路,将攻击模式A5集成到BNBToken源码中,这个套路将转账记录保存在另一个智能合约中。在测试中,代码按预期执行日志记录。但在最终部署中,业主用同形异义词替换了日志记录功能ICC标头中的一个字母。日志调用引起异常,无法向用户转移资金。

分享: