热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

黑客事件频发,请收下这篇Crypto防盗指南

黑暗森林中的攻击手法和防范措施。原文标题:《TheStateofCrypt
黑暗森林中的攻击手法和防范措施。

原文标题:《The State of Crypto Security

撰文:Kofi Kufuor

编译:Katie 辜

黑客今年从加密应用程序中窃取了 20 多亿美元。国庆期间,行业又经历了 TokenPocket 闪兑服务商被盗(损失超 2100 万美元)和 BNB  Chain 跨链 桥 BSC Token Hub 遭攻击(损失约 5.66 亿美元)的加密盗窃事件。

随着加密生态系统的发展,安全攻防战只会越演越烈。因此,本文将:

  • 提出加密安全事件的分类法;
  • 列举出迄今为止让黑客最赚钱的攻击手段;
  • 回顾当前用于防止黑客攻击的工具的优缺点;
  • 讨论加密安全的未来。

黑客类型

加密应用生态系统由互操作协议组成,由智能合约支持,依赖于链和互联网的底层基础设施。此堆栈的每一层都有其独有的漏洞。我们可以根据利用的堆栈层和使用的方法对加密黑客进行分类。

攻击基础设施

对基础设施层的攻击利用了加密应用程序的底层系统中的弱点:依赖用于达成共识的区块链、用于前端的互联网服务和用于私钥管理的工具。

攻击智能合约语言

这一层的黑客利用了智能合约语言(如 Solidity)的弱点和漏洞,例如可重入性(reentrancy)和实现委托调用(delegatecall)的危险,这些可以通过遵循安全规范来规避。

攻击协议逻辑

这类攻击利用单个应用程序业务逻辑中的错误。如果黑客发现了一个错误,他们可以利用这个错误触发应用程序开发者没有预料到的行为。

例如,如果一个新的 DEX 在决定用户从交易中获得多少钱的数学方程中出现了错误,那么这个错误就可以被利用,使用户从交易中获得比本应可能获得的更多的钱。

协议逻辑级攻击还可以利用用于控制应用程序参数的治理系统。

攻击生态系统

许多知名的加密黑客利用了多个应用程序之间的交互。最常见的是黑客利用一个协议中的逻辑错误,利用从另一个协议借来的资金来扩大攻击规模。

通常,用于生态系统攻击的资金是通过闪电贷(flashloan)借来的。在执行闪电贷时,你可以从 Aave  和 dYdX  等协议的流动性池中借到你想要的金额。

数据分析

我收集了 2020 年以来 100 起规模最大的加密货币黑客攻击的数据集,被盗资金总计 50 亿美元。

生态系统受到的攻击最为频繁。他们占 41%。

协议逻辑漏洞导致了最多的金钱损失。

金额最大的三个攻击:Ronin 跨链桥攻击(6.24 亿美元),Poly Network 攻击(6.11 亿美元)和 BSC 跨链桥攻击(5.7 亿美元)。

如果排除前三大攻击,则针对基础设施的被盗案件是损失资金最多的类别。

黑客是如何下手的?

基础设施

在 61% 的基础设施漏洞中,私钥是通过未知的方式泄露的。黑客可能通过网络钓鱼邮件和虚假招聘广告等社会攻击获得这些私钥。

智能合约语言

可重入性攻击是智能合约语言级别上最热门的攻击类型。

在可重入攻击中,易受攻击的智能合约中的函数调用恶意合约上的一个函数。或者,当易受攻击的合约向恶意的合约发送代币时,可以触发恶意合约中的函数。然后,在合约更新其余额之前,恶意函数在递归循环中回调易受攻击的函数。

例如,在 Siren Protocol 黑客攻击中,提取质押品代币的函数很容易被重入,并被反复调用(每次恶意合约接收代币时),直到所有质押品耗尽。

协议逻辑

协议层上的大多数漏洞都是特定应用程序独有的,因为每个应用程序都有唯一的逻辑(除非它是纯分叉 )。

访问控制错误是样本组中最常见的重复出现的问题。例如,在 Poly Network 黑客事件中,「EthCrossChainManager」合约有一个任何人都可以调用的功能来执行跨链交易。

注意:有很多情况下,多个协议使用相同的技术会被黑客攻击,因为团队分叉了一个有漏洞的代码库。

例如,许多 Compound  分叉,如 CREAM、Hundred Finance 和 Voltage Finance 都成为了重入性攻击的受害者,因为 Compound 的代码在允许交互之前无需检查交互的效果。这对 Compound 来说很有效,因为他们审查了他们支持的每个新代币的漏洞,但制作分叉的团队并没有这么做。

生态系统

98% 的生态系统攻击中都使用了闪电贷。

闪电贷攻击通常遵循以下公式:使用贷款进行大规模交易,推高贷款协议用作喂价( price feed)的 AMM 上的代币价格。然后,在同一笔交易中,使用膨胀的代币作为质押品,获得远高于其真实价值的贷款。

黑客在哪里下手?

根据失窃的合约或钱包所在的链对数据集进行分析。以太坊的黑客数量最多,占样本组的 45%。币安 智能链(BSC)以 20% 的份额位居第二。

造成这种情况的因素有很多:

  • 以太坊和 BSC 拥有最高的 TVL(在应用程序中存入的资金),所以对这些链上的黑客来说,奖励的规模更大。
  • 大多数加密货币开发人员都知道 Solidity,这是以太坊和 BSC 上的智能合约语言,而且有更复杂的工具支持该语言。

以太坊的被盗资金最多(20 亿美元)。BSC 位居第二(8.78 亿美元)。

涉及跨链桥或多链应用程序(例如多链交易或多链借贷)对数据集产生了巨大的影响。尽管这些黑客事件只占总数的 10%,但却窃取了 25.2 亿美元的资金。

如何防止黑客攻击?

对于威胁堆栈的每一层,我们都可以使用一些工具来早期识别潜在的攻击载体并防止攻击的发生。

基础设施

大多数大型基础设施黑客攻击都涉及黑客获取诸如私钥等敏感信息。遵循良好的操作安全(OPSEC)步骤并进行经常性的威胁建模可以降低这种情况发生的可能性。拥有良好 OPSEC 流程的开发团队可以:

  • 识别敏感数据(私钥、员工信息、API 密钥等);
  • 识别潜在的威胁(社会攻击、技术利用、内部威胁等);
  • 找出现有安全防御的漏洞和弱点;
  • 确定每个漏洞的威胁级别;
  • 制定并实施减轻威胁的计划。

智能合约语言和协议逻辑

1. 模糊测试工具

模糊测试工具,如 Echidna,测试智能合约如何对大量随机生成的交易做出反应。这是检测特定输入产生意外结果的边缘情况的好方法。

2. 静态分析

静态分析工具,如 Slither 和 Mythril,自动检测智能合约中的漏洞。这些工具非常适合快速找出常见的漏洞,但它们只能捕获一组预定义的问题。如果智能合约存在工具规范中没有的问题,也不会被发现。

3. 形式化验证

形式化验证工具,如 Certora,将比较智能合约与开发人员编写的规范。该规范详细说明了代码应该做什么以及所需的属性。例如,开发人员在构建一个贷款应用程序时,会指定每笔贷款都必须有足够的质押品支持。如果智能合约的任何可能行为不符合规范,则形式化验证者将识别该违规行为。

形式化验证的缺点是测试只和规范保持一样的标准。如果所提供的规范没有说明某些行为或过于宽松,那么验证过程将无法捕获所有的错误。

4. 审计和同行评审

在审计或同行评审期间,一组受信任的开发人员将测试和评审项目代码。审计员将撰写一份报告,详细说明他们发现的漏洞,以及如何修复这些问题的建议。

让专业的第三方评审合约是发现原始团队遗漏的漏洞的好方法。然而,审核员也是人,他们永远不会捕抓到所有漏洞。此外要信任审计员,如果审计员发现了问题,他们会告诉您,而不是自己利用它。

5. 生态系统攻击

尽管生态系统攻击是最常见和最具破坏性的类型,现有工具中没有很多工具适合防止这类攻击。自动安全工具专注于每次在一个合约中查找错误。审计通常无法解决如何利用生态系统中多个协议之间的交互。

像 Forta 和 tenerly Alerts 这样的监视工具可以在发生组合性攻击时提供早期警告,以便团队采取行动。但在闪电贷攻击中,资金通常在单笔交易中被盗,因此任何预警都太晚了,无法防止巨大损失。

威胁检测模型可以用来发现内存池中的恶意交易,在节点处理它们之前,交易就存在于内存池中,但黑客可以通过使用 flashbot 等服务直接将交易发送给矿工,从而绕过这些检查。

加密安全的未来

我对加密安全的未来有两个预测:

1. 我相信最好的团队将从把安全视为基于事件的实践(测试 ->同行评审 ->审核)转变为将其视为一个连续的过程。他们将:

  • 对主代码库中的每一个新增代码执行静态分析和模糊处理;
  • 对每一次重大升级都进行正式验证;
  • 建立具有响应动作的监视和警报系统(暂停整个应用程序或受影响的特定模块);
  • 让一些团队成员制定和维护安全自动化和攻击响应计划。

安全工作不应在审计后结束。在许多情况下,例如 Nomad 跨链桥黑客攻击,其漏洞是基于审计后升级中引入的错误。

2. 加密安全社区应对黑客攻击的过程将变得更有组织和精简。每当黑客攻击发生时,贡献者就会涌入加密安全群组聊天,渴望提供帮助,但缺乏组织意味着重要细节可能会在混乱中丢失。我认为在未来,这些群聊将转变成更有条理的组织形式:

  • 使用链上监控和社交媒体监控工具,快速检测主动攻击;
  • 使用安全信息和事件管理工具协调工作;
  • 采取独立的工作流程,使用不同的渠道沟通黑白客的工作、数据分析、根本原因和其他任务。

推荐阅读
  • 应用链时代,详解 Avalanche 与 Cosmos 的差异 ... [详细]
  • 在对WordPress Duplicator插件0.4.4版本的安全评估中,发现其存在跨站脚本(XSS)攻击漏洞。此漏洞可能被利用进行恶意操作,建议用户及时更新至最新版本以确保系统安全。测试方法仅限于安全研究和教学目的,使用时需自行承担风险。漏洞编号:HTB23162。 ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • 数字图书馆近期展出了一批精选的Linux经典著作,这些书籍虽然部分较为陈旧,但依然具有重要的参考价值。如需转载相关内容,请务必注明来源:小文论坛(http://www.xiaowenbbs.com)。 ... [详细]
  • 投融资周报 | Circle 达成 4 亿美元融资协议,唯一艺术平台 A 轮融资超千万美元 ... [详细]
  • 如果程序使用Go语言编写并涉及单向或双向TLS认证,可能会遭受CPU拒绝服务攻击(DoS)。本文深入分析了CVE-2018-16875漏洞,探讨其成因、影响及防范措施,为开发者提供全面的安全指导。 ... [详细]
  • 本文详细介绍了如何使用OpenSSL自建CA证书的步骤,包括准备工作、生成CA证书、生成服务器待签证书以及证书签名等过程。 ... [详细]
  • 本文总结了一些开发中常见的问题及其解决方案,包括特性过滤器的使用、NuGet程序集版本冲突、线程存储、溢出检查、ThreadPool的最大线程数设置、Redis使用中的问题以及Task.Result和Task.GetAwaiter().GetResult()的区别。 ... [详细]
  • 秒建一个后台管理系统?用这5个开源免费的Java项目就够了
    秒建一个后台管理系统?用这5个开源免费的Java项目就够了 ... [详细]
  • 本文详细介绍了MySQL数据库的基础语法与核心操作,涵盖从基础概念到具体应用的多个方面。首先,文章从基础知识入手,逐步深入到创建和修改数据表的操作。接着,详细讲解了如何进行数据的插入、更新与删除。在查询部分,不仅介绍了DISTINCT和LIMIT的使用方法,还探讨了排序、过滤和通配符的应用。此外,文章还涵盖了计算字段以及多种函数的使用,包括文本处理、日期和时间处理及数值处理等。通过这些内容,读者可以全面掌握MySQL数据库的核心操作技巧。 ... [详细]
  • 近期在研究逆向工程,因此尝试了一些CTF题目。通过合天网络安全实验室的CTF实战演练平台(http://www.hetianlab.com/CTFrace.html),我对Linux逆向工程的掌握还不够深入,因此暂时跳过了RE300题目。首先从逆向100开始,将文件后缀名修改为.apk进行初步分析。这一过程不仅帮助我熟悉了基本的逆向技巧,还加深了对Android应用结构的理解。 ... [详细]
  • 本文对SQL Server系统进行了基本概述,并深入解析了其核心功能。SQL Server不仅提供了强大的数据存储和管理能力,还支持复杂的查询操作和事务处理。通过MyEclipse、SQL Server和Tomcat的集成开发环境,可以高效地构建银行转账系统。在实现过程中,需要确保表单参数与后台代码中的属性值一致,同时在Servlet中处理用户登录验证,以确保系统的安全性和可靠性。 ... [详细]
  • 浏览器作为我们日常不可或缺的软件工具,其背后的运作机制却鲜为人知。本文将深入探讨浏览器内核及其版本的演变历程,帮助读者更好地理解这一关键技术组件,揭示其内部运作的奥秘。 ... [详细]
  • C++ 开发实战:实用技巧与经验分享
    C++ 开发实战:实用技巧与经验分享 ... [详细]
  • 2016-2017学年《网络安全实战》第三次作业
    2016-2017学年《网络安全实战》第三次作业总结了教材中关于网络信息收集技术的内容。本章主要探讨了网络踩点、网络扫描和网络查点三个关键步骤。其中,网络踩点旨在通过公开渠道收集目标信息,为后续的安全测试奠定基础,而不涉及实际的入侵行为。 ... [详细]
author-avatar
紫陌
这个世界上真的有天使的存在吗
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有