过去的一年对加密货币来说是一段相当黑暗的时期。 我们不仅看到了 Luna 的灾难性崩溃,3 Arrows Capital 的堕落,BlockFi、Celsius、Voyager、VAULD 等的破产和破产困境,以及使我们陷入加密寒冬的宏观经济状况,而且对于区块链和 DeFi 黑客和漏洞利用而言,这也是灾难性的一年,这导致人们逃离 DeFi 的速度比逃离鲨鱼出没水域的游泳者更快。
现在你可能在想自己, “哇,感谢令人沮丧的介绍。 加密听起来像一个雷区!”
你没有错,加密当然有其公平的风险份额。 但在让所有这些厄运和忧郁让你想永远抛弃加密货币并躲在床下之前,不要害怕,因为这篇文章将帮助你教你如何以最安全的方式驾驭 DeFi 水域,并向你展示你的需要了解区块链安全审计。
虽然这无助于防范加密货币中的所有风险,但并不能保护那些决定将毕生积蓄“YOLO”投入下一个 memecoin 的人,但本文中的信息至少会帮助你在你的箭筒中多放一支箭您可以部署它以大大增强您在 DeFi 空间的整体安全导航。
只是为了在早期减轻一些恐惧,不要担心这篇文章过于技术性。 这个有用的指南将非常容易理解,即使是我父亲将整个加密货币行业称为“那个比特币的东西”也能理解它。
因为我对区块链开发的技能和理发一样精通,所以我决定为这篇文章寻求一些专业的帮助和内部人士的建议。 我联系了我们的朋友 Ackee 区块链 帮助教我自己和普通乔这些区块链审计到底是什么。
我想向 Ackee 团队大声疾呼,感谢他们花时间帮助我们和我们的社区,向我们传授区块链审计的基础知识,并与我们合作撰写本文。 区块链和 DeFi 审计报告是加密货币非常重要的一个方面,而且我们中很少有人真正了解。
在确定 DApp 或 DeFi 协议的安全性和安全性时,我们中的许多人会寻找表明该平台已经过审计的东西,并且可能会认为“好的,足够好”。 我知道我过去曾对此感到内疚,但经过审计实际上意味着什么? 我们如何验证这一点? 正如您将在本文中了解到的那样,仅仅因为某些内容已经过审计,并不意味着它应该自动获得绿灯。
首先,让我们看看区块链审计公司实际做了什么。
页面内容👉
区块链审计公司做什么?
当我们听到“审计”这个词时,我们中的许多人都会不自觉地想象一个为政府工作的西装革履的老家伙,他会来敲门,用一把细齿梳子检查我们所有的财务和银行对账单。 在传统的金融行业,你是对的,但区块链审计师不能更进一步。
无论如何,区块链审计师都不是会计师,他们是编码和开发人员技能方面的专家,他们在区块链项目、智能合约或加密代币的源代码中寻找错误、错误和恶意代码。
不同的审计公司也可能专注于不同的领域,这就是为什么看到一个被不止一家公司审计的平台总是好的。 每次进行的审计都会降低风险,一家公司可能会发现另一家公司遗漏的东西。
1inch 就是一个很好的例子。 1inch 是经过多家不同公司审核的 DEX 聚合器,增强了用户对平台的信心,也凸显了 1inch 团队对确保社区安全的坚定承诺。
区块链审计公司将拥有一支工程师团队,可以执行以下任务:
- 安全审计
- 工具分析
- 手动代码审查
- 运行和编写自动化测试
- 进行漏洞赏金比赛
而 Ackee Blockchain 等其他审计公司也可以满足更多“全方位服务”的要求,并在其他领域提供帮助,例如:
- 在 Solidity 或 Rust 上创建安全的智能合约
- 协助构建完整的生态系统,处理用户体验、设计、前端、后端和 DevOps
Ackee Blockchain 也为整个区块链行业做出了贡献,这很值得一看。 他们开发了任何人都可以使用的开源安全工具,并且热衷于教学并为有抱负的区块链开发人员提供机会。 过去,他们为想要在区块链领域工作的开发人员举办了在线课程,甚至获得了 Solana 基金会的资助来运行一个 索拉纳暑期学校.
该团队提供在线暑期学校教授 Solidity,并在 2022 年秋季,Ackee Blockchain 首席执行官兼联合创始人 Josef Gattermayer 博士。 将在 布拉格捷克技术大学. 绝对值得与 Ackee 团队联系, 注册课程 在他们的网站上,如果您对区块链开发和安全的未来感兴趣,请关注他们。
正如你所看到的,区块链审计不仅仅是在一个黑暗的房间里呆呆地检查代码,还有一个完整的生态系统被封装在这个小众市场中。
为什么区块链审计很重要?
如果人类是完美的,就不需要区块链审计公司,因为每一行代码都将被完美地编写并且完全不受漏洞、错误和攻击的影响。
比人类犯错更糟糕的是,人们可能是腐败和恶意的。 相当频繁的情况是,不良行为者会故意将恶意代码输入到他们的协议中,这将使他们能够利用他们创建的平台来窃取用户的资金。
在人为错误和恶意意图之间,智能合约和区块链应用程序/DApps 容易受到以下风险的影响:
- 导致协议无法使用的拒绝服务攻击。
- 地毯拉/后门盗窃,创始人输入恶意代码,允许他们提取放入智能合约的资金。
- 以有利于黑客和伤害用户的方式利用代码,例如在预期方法之外铸造新代币或从智能合约中榨取客户资金。
- 一些黑客只是想“眼睁睁地看着世界燃烧”,并会利用他们发现的任何故障来破坏平台。
许多 DeFi 用户认为在 DeFi 平台中寻找的最重要的事情之一是代码是否开源。 这是很好的第一步,因为许多项目将在像 Github 这样的公共网站上发布代码,任何人都可以进入并自己检查/验证代码。
在查看项目的 GitHub 页面时,这通常是正在考虑使用 DApp 的用户寻找的内容之一,再次以 1inch 为例:
在验证协议的真实性时,这是一个很好的初始方法,因为这是社区成员或任何人都可以进入并验证其中没有隐藏恶意代码的地方。
知道任何人都可以在 GitHub 上发布任何内容也很有帮助。 GitHub 中发布的代码不会自动确认与运行智能合约的代码相同。 幸运的是,用户可以通过进入像 Etherscan 这样的区块浏览器并检查 GitHub 中的代码是否实际部署和使用来验证这一点。 这里是 Etherscan 中的 1 英寸令牌, 例如。 我倾向于同意将开源发布到 GitHub 是一个好兆头的观点,但对我来说,当我点击 GitHub 进行查看时,我看到的只是:
因此,与其让我的大脑像在炎热的人行道上煎鸡蛋一样试图弄清楚这一点,我更喜欢看到来自区块链审计公司的一组专业人士对这一切进行了仔细研究并竖起大拇指。
澄清一件事很重要,那就是仅仅因为协议已经过审计,并不意味着它是 100% 安全的。 任何代码都不能被认为是完全不受黑客攻击的影响,因为黑客的工具和技能一直在变得越来越复杂。 正如白帽(好)黑客和区块链开发人员一直在变得更好和不断发展一样,坏人也是如此。
你可以认为它有点像猫捉老鼠的游戏,编写代码本质上就像构建一个创造性的谜题和解决问题,而黑客正在寻找解决或攻击谜题的方法,越来越聪明和复杂,所以会有始终是风险因素。
为什么 2022 年对加密漏洞利用特别不利
当我们看到这样的标题时:
这可能非常令人心碎。 加密行业受到了严重的黑眼圈,因为每周似乎都会发生另一次大规模的黑客攻击或漏洞利用,导致数百万美元的资金损失。
这不仅令人悲伤,因为这些普通人赔钱,而且令人担忧,因为这些攻击使整个加密货币行业受到越来越严厉的批评,减缓采用速度,让投资者远离,并为政府提供增加权威所需的借口控制以“保护”投资者,经常采取严厉措施,我们中的许多人转向加密货币来逃避。
造成这种情况的主要原因归结为草率的开发人员工程。
当我与来自 Ackee 的 Josef 坐下来时,我问他为什么会有创纪录的漏洞利用数量,他的解释是有道理的。
Josef 重述了一遍,继续向我解释说,加密行业正在迅速发展,团队推出产品的竞争非常激烈。 缺乏能够满足需求的熟练和经验丰富的区块链开发人员,导致许多项目雇用新手开发人员并持有“足够好”的态度,在没有进行适当检查和审计的情况下启动 DApp。
Josef 还继续解释说,对区块链审计服务的需求正在飙升,并且没有足够的区块链审计公司来满足项目的需求。 这导致项目团队不想等待审计团队可用,因此他们继续启动或发布升级,要么没有审计,要么依赖不涵盖的过时审计平台的新版本或迭代。
这个主题在 2021 年牛市期间尤为突出,但现在我们处于熊市中,情况要轻松得多。 项目不急于启动,处于审核瓶颈的项目较少。 确实,熊市是建立的时间,团队倾向于在市场放缓时采取更加勤奋的方法。
我们回顾了两次特定的成功攻击,这些攻击恰好是为了调查到底发生了什么,以帮助我们正确看待这一切。
2016 年以太坊 DAO 黑客攻击
本质上,这里发生的事情被称为重入错误。 简单来说,代码执行两条指令:
- 提现
- 更新余额
如果按时间顺序执行,它可以正常工作。 但由于以太坊是一个分布式系统(与 web2 程序不同),该合约可以从另一个合约中调用,这带来了实现自定义回调函数的选项,该回调函数从撤回指令中调用。
而黑客实现的这个回调函数在最终执行更新余额指令之前,会再次调用合约多次。 这允许攻击者多次撤回。
这是 web3 新手经常犯的错误。 即使在这次攻击 5 年后,问题仍然存在于开发人员没有花时间从这个案例中学习。 在这种情况下,解决方案非常简单,就是将这两行代码按相反的顺序放置。 先更新,后撤。
审核员在审核协议时会寻找此类已知问题。
索拉纳虫洞攻击 2022
2022 年的开局并不顺利,XNUMX 月初索拉纳发生了第一次重大袭击。 攻击者绕过了 Rust 程序中的签名验证,因此看起来监护人已经在 Solana 上的 Wormhole 中签署了 120k ETH 存款,即使他们没有。 攻击者随后铸造了 Solana 上价值 120k 的包裹 ETH。
在这次虫洞攻击之前,加密社区中的许多人认为 Solana 和 Rust 开发太难,无法吸引业余开发者。 这导致人们相信只有最优秀的开发人员才能在 Solana 上工作,这意味着没有那么强烈的审计需求。 在这次攻击之后,Josef 提到他和他的团队发现对 Solana DApp 和协议的审计请求显着增加。
毕竟,你可能会想,如果人类是错误和有害意图的源头,那么仅仅让计算机和人工智能机器不太可能犯错误和无恶意意图只是编写所有这些代码不是有意义的吗?为我们?
这是一个很好的问题,因为上面的文章,这也是我脑海中闪过的东西。 我们将在下一节中介绍。
区块链安全的未来
很明显,我们正在走向一个未来,我们的许多工作将外包给计算机和人工智能程序,这些程序可以比我们做得更好。
我们已经在自动化收银员和拥有比人类更多机器人的汽车制造工厂中看到了这一点。 计算机甚至接管了医生和药剂师等高度专业化的工作,因为机器人可以用手术刀更精确,计算机程序可以搜索整个药物数据库,并在几秒钟内生成关于哪些药物可以和不能与其他化学物质混合的报告,以及药物,人类不可能完成的任务。
我确信编程和开发将是最早被计算机取代的工作之一。 如果屏幕上的所有字母和数字都是为了完成某些任务而构建的,那么计算机肯定可以比人类做得更好,而且错误更少,对吧?
我认为区块链审计公司会走渡渡鸟(灭绝)的道路,因为一旦计算机开始自主开发,就不会发现任何错误。 这突显了我对开发知之甚少,因为 Ackee 团队解释了一些我不理解的概念。
区块链开发的很大一部分是解决问题并从 360 度角度看待问题。 它需要大量的创造力和“跳出框框”的思维,这是计算机无法做到的。 它不仅仅是“当‘X’发生时,执行‘Y’”那么简单。
我们还需要考虑到这些 DApp 和应用程序中的许多都在尝试解决“人类”问题以及我们如何与系统、协议和程序进行交互。 抱歉,小黄油机器人,但你不适合理解人类问题并提供人类解决方案。
不仅区块链开发和安全领域的工作量猛增,而且看起来未来几年都需要这些角色。
这并不是说 web3 开发领域没有发生自动化。 有很多免费工具可供开发人员使用,可以为他们提供一些安全反馈,并帮助他们分担一些工作,以便开发人员可以专注于其他任务。
比如在以太坊上,有一个很好的静态代码分析器,名叫 滑行 这很受欢迎,Ackee Blockchain 正在开发他们自己的开源静态分析器,称为 沃科,它检测事物的方式与 Slither 不同,从而减少了必须手动分析代码的负担。
Ackee 团队还发现了 Solana 关于测试问题的趋势。 开发人员没有编写足够的代码,因为它是劳动密集型的,需要编写大量样板代码。 因此,Ackee Blockchain 率先开展了一个项目,他们为 Solana 编写了一个开源测试框架,名为 特德尔尼克 这将使开发人员更容易编写测试。 该团队获得了荣誉奖,并在 Hackathon 在布拉格为Trdelnik。
所有这些都向我们表明,自动化和计算机可能会在协助区块链开发人员和安全审计员方面发挥越来越重要的作用,但不太可能很快取代它们。
区块链开发人员的普遍看法是,这些黑客和漏洞利用中的许多都是由于这仍然是一个年轻且缺乏经验的行业的结果。 随着区块链行业的不断发展和成熟,漏洞利用应该会越来越少,从而使整个加密空间变得更加安全和用户友好。
好的,现在让我们进入好东西,这篇文章的主要内容。
如何验证平台已被审计
第一步是实际确保找到审计。 这些可以在项目的 GitHub 存储库中找到,任何进行的审计都应该在项目的文档或平台网站本身中明确提及。 如果你找不到任何关于审计的内容,我会远离。
没有公开的审计可能意味着:
- 没有进行审计
- 项目不希望被人知道的审计失败
- 审计发现了团队没有解决的问题
- 该代码包含可能导致盗窃的恶意后门路由
如前所述,很高兴看到代码是开源的,在 GitHub 上被标记为“公开”。 这不是一个要求,但它仍然是一个奖励。 不过,有理由不开源代码,所以这并不总是一个交易破坏者。 不开源代码的原因可能是:
- 希望保持竞争优势的公司。 一旦公司开源了他们的代码,任何人都可以创建相同的协议并参与竞争。 这就是为什么可口可乐对他们的食谱保密,而肯德基则以“绝密 11 种香草和香料”而闻名。
- 一旦代码公开,黑客就可以使用该信息来寻找漏洞。 尽管好的做法恰恰相反,但如果一个项目对其代码有信心,他们就会发布它。
- 早期的项目可能不想马上开源他们的代码,直到他们建立了一个庞大的社区和足够的用户,从而为潜在的竞争对手制造了障碍。
我最近遇到了一个项目团队,他们后悔立即开源他们的平台,因为一家竞争公司只是复制了他们的代码和商业模式,并且有更多的资金来支付影响者和追随者的费用。 这使得竞争公司似乎从一开始就是更好的平台,因为它给人的印象是更多的用户和更多的追随者。 竞争公司现在大大领先于选择更加有机和合乎道德地发展的原始创始团队。
这是一个很棒的视觉效果 桥全球 总结了开源和闭源软件之间的一些普遍差异:
通过比较流行的硬件钱包,可以找到两种有趣的开放源代码和封闭源代码方法 Trezor 和 莱杰. Trezor 选择向公众发布 100% 的源代码以供任何人验证,而 Ledger 选择更贴近自己的底牌并开源一些代码,但保持其固件闭源。
这导致许多区块链精英选择 Trezor 而不是 Ledger,因为他们认为 Ledger 应该开源他们的代码,想知道他们试图隐藏什么。 我个人认为这并不值得关注,因为 Ledger 已经证明了他们的业绩记录和对该领域的奉献精神,并已发展成为世界上最大的硬件钱包提供商之一,创造了一些最高级别的安全加密存储设备。
一旦进行并定位了审计,只要它被公开,任何人都可以打开文件并找到审计结果。 为了我们的简单目的,我们不需要滚动整个审计文档,而是只需要寻找“执行摘要”页面,它通常看起来像这样:
此页面将位于报告的开头或结尾。 这是一个以普通人可以理解的简单格式显示审核结果的页面。 让我们深入了解这向我们展示了哪些信息。
审计是最近的吗? 审计应该是一项持续的服务,并且对于引入的每个更新、版本或新特性/功能肯定应该进行新的审计。 如果推出了新功能或新版本,则之前的审核结果将不再有效,因为代码库可能已更改。
这可以通过查看项目版本和/或提交哈希来验证。 版本就像你看到的那样 Uniswap “V2”(版本 2),提交哈希标识源代码存储库中的修订。 当查看审核中显示的版本或提交哈希时,可以在上图中标题为“存储库”的表格中看到,用户可以检查以确保它与 GitHub 中显示的版本或提交哈希一致。
这看起来像这样:
这是 Ackee Blockchain Audits 的另一面:
虽然如果提交哈希不匹配,这并不一定意味着存在危险信号。 每次进行新的调整或迭代时,项目 GitHub 上的提交哈希都会更改。 每次调整都会改变提交哈希,如果只是一个小的调整,不应该引起关注。
如果您在 GitHub 主页面上没有看到来自审计的提交哈希,您可以进入“提交历史”并搜索提交哈希,并亲自查看自审计以来发生了多少变化。
这可以通过点击这里来完成:
然后在这里搜索:
由于每次更改都会填充一个新的提交哈希,每个更改都带有日期和时间戳,如果在执行审计和项目当前正在进行的提交哈希之间有大量新提交,您可以希望考虑等到进行另一次审计后再参与。
如果您有分析的眼光并想更深入地研究,您可以单击每个新的提交哈希并将红色显示的旧代码与绿色显示的新代码进行比较,并亲自验证到底发生了什么变化:
如果您发现新的提交哈希与执行审计时不同,并看到如下内容:
这是我提到的那些微不足道的变化之一,虽然它填充了一个新的提交哈希,但它没有什么可担心的,因为这是一个简单的文件重命名。 上面的 GitHub 图片显示了 0 个添加和 0 个删除。
现在到执行摘要中要寻找的下一件事:
问题 - 执行摘要显示了审计期间发现的所有问题,更重要的是,如果团队解决了这些问题。 这部分可以在底部附近看到,它显示“总问题”,然后将它们分解为严重性以及它们是否已得到解决。 审计公司首先识别问题,将它们标记给开发团队,然后在开发人员解决问题后再次检查代码,然后审计团队将问题标记为“已解决”。
显然,任何被标记为“严重”或“高风险”的问题都应该得到解决。 即使报告显示所有关键或高风险问题都已解决,但仍应以对该项目的一些怀疑态度加以注意。 如果审计团队一开始就发现了大量的关键问题,这可能会突出表明项目背后的开发团队可能还很新手,从而导致未来出现更多和额外的问题。
中等或低风险问题很常见,通常不会引起关注。 如果审计团队只是提出替代方案或对如何处理某事有不同意见,他们甚至可能将某事标记为低风险问题。
以下是每个类别含义的摘要:
危急 – 任何标记为关键的东西都意味着现在可以利用某些东西。
Ackee Blockchain 的团队告诉我一个关于他们正在进行的审计的故事,他们在已经启动的协议上发现了一个关键问题。 他们在早上 5 点在“全员参与”紧急情况下将项目的开发团队叫醒,以尽快修复代码。 幸运的是,他们在黑客能够识别漏洞之前及时发现了问题。
严重程度高 – 现在无法利用的问题,但如果某些特定序列得到满足,则可能存在。
中到低 – 这些通常是需要或建议的细微调整,不一定是安全威胁。
不同的审计公司也会以不同的格式编写执行摘要。 上面显示的执行摘要由审计公司完成 量子邮票。 Ackee Blockchain 为 PDF 提供审计和网络摘要,将初始和后续结果结合在一起,形成更易于阅读的论文格式。 你可以在他们的 审计摘要。
要寻找的其他事项:
- 是否有不止一家公司完成了审计? 寻找问题的眼睛越多,代码中存在缺陷的可能性就越小。
- 区块链审计公司是否专业并在社区中受到尊重? 如果您以前从未听说过审计公司,请查看他们的网站并查找他们从事的其他项目。 他们审核过的平台是否有信誉? 在公司进行审计后检查是否有任何平台被利用,这可能会突出审计技能不佳的记录。 从第 1 层网络基金会寻找诸如赢得黑客马拉松和支持/赠款之类的东西。
Ackee 区块链就是一个很好的例子,它已被四个关键基金会分配了官方开发/社区赠款:Coinbase Giving、以太坊基金会、Solana 基金会和 Tezos 基金会。
如果您在这个错误信息的时代变得不信任,这是可以理解的,如果您看到上图来自 Ackee Blockchain 网站的声明,而不是相信他们的话,您可以随时导航到基金会的网站提到并自己验证索赔。
我之所以这么说,是因为在我多年撰写评论的过程中,声称“福布斯或雅虎财经精选”的网站数量惊人,而它们从未如此。 我希望有某种形式的互联网警察可以将公司因诸如此类的谎言和误导性陈述而被关进互联网监狱。 这就是为什么在加密货币中有一种说法,“不要信任,要验证”。 不用担心,Ackee 签出,实际上受到上述基金会的信任,我查过😉
关闭的思考
好吧,你有它。 一些关于区块链安全的信息,我希望你觉得有用。 我希望这篇文章能帮助你更加自信地冒险进入加密货币世界,并且能够比以前更安全地在加密货币水域航行。 我知道下次我选择我的加密资产信任的 DApp 和协议时,我会努力验证这些信息。
俗话说,“在加密货币中,重要的不是你赚了多少,而是你保留了多少”,不幸的是,我们中的许多老顽固的加密货币老手在无数次黑客攻击中损失的比我们公平份额的 Satoshis 还多,骗局、拉地毯、破产等。我们拥有的知识越多,我们就越能保护自己免受这个新的和萌芽的古怪加密世界中存在的许多严酷风险。
免责声明:这些是作者的观点,不应视为投资建议。 读者应该自己研究。