破解区块链:终极指南

我记得看过 Poly Network被黑 的事件并且不知所措。我的思绪开始销毁所有的汽缸,试图拼凑出它是如何发生的。到那时,与区块链相关的黑客攻击已经很普遍了,但这是第一次传到我的耳朵里。尽管黑客归还

我记得看过 Poly Network被黑 的事件并且不知所措。我的思绪开始销毁所有的汽缸,试图拼凑出它是如何发生的。到那时,与区块链相关的黑客攻击已经很普遍了,但这是第一次传到我的耳朵里。尽管黑客归还了资金,但事件本身却足够令人难忘,激发了我的好奇心,并让我再次踏上了成为黑客的道路。

区块链黑客攻击是网络安全中比较难以捉摸的途径之一,但采取它仍然是我做过的最好的决定之一。无论是在智力上还是在经济上,它都是开创性的、具有挑战性的并且非常有益。我不得不深入了解事物运作方式的复杂性——这是我在其他学科中没有做过的事情。智能合约黑客是一种艺术形式,没有什么比观看漏洞利用和随后的一系列交易更美妙的了。

作为 Web3 领域的白帽黑客,感觉就像是一个超级英雄。为普通人节省数百万美元带来的欣喜若狂,尤其是因为许多人只是想在一个旨在让他们失望的系统中勉强过日子。站在技术突破的前沿所带来的经济利益也不错。针对严重漏洞的漏洞奖金高达 250 万美元,区块链安全公司的平均年薪为 150,000 美元。

最重要的是,这些机会中的大部分都是完全远程的,这意味着你可以在家工作。

加入我,Anon,在这条很少有人走的路上。和我一起拯救 Web3 并成为传奇。我们需要你阻止下一次重大黑客攻击。

那么,区块链是如何被黑客入侵的?

有多种方式,但最常见和最突出的攻击发生在智能合约(在区块链上运行的程序)。其他漏洞可能是由于协议本身的弱点,或者由于坏人控制的验证器数量,例如 51% 攻击。正如一句老话所说,“更复杂,更多错误。”

本文的重点是让你了解该技术、这些黑客是如何发生的,并为你在最短的时间内成为智能合约黑客/区块链安全从业者提供路线图。保护人们的互联网、他们的金钱和随之而来的梦想的专注于安全的人员严重短缺。

然而,它并不是一个详尽的指南,因为该技术仍在不断涌现,也不是要教你如何破解任何东西。相反,它旨在对在哪里以及如何找到你需要的信息进行高级概述,因为无数人可以比我更好地教授技术概念。在我们开始之前,这里是内容概览:

  1. 区块链基础知识
  2. 智能合约
  3. 基础:Solidity 和 Ethereum
  4. 漏洞利用:公司如何因一行错误代码而损失数百万美元
  5. 我为什么选择区块链安全?
  6. 致谢

1.区块链基础

让我们从区块链到底是什么开始,以及为什么每个人都对它们如此兴奋。不,这不仅仅是钱的问题(无论如何,对我们加密货币朋克来说)。比特币提出的区块链只是一个全球分布式账本/数据库,它使用加密货币功能来验证通过网络发送的交易/数据。这些交易由节点(即矿工)验证,这些节点因其努力而获得加密货币奖励。

比特币只是一种数字货币,是普通人能够与世界上任何人进行交易的途径。

一位名叫 Vitalik Buterin 和 Gavin Woods 博士的年轻程序员将这个概念更进一步,并将以太坊介绍给世界。

以太坊是一种类似于比特币的区块链协议。与比特币不同,以太坊是图灵完备的,这意味着它可以近似模拟任何其他现实世界、通用计算机和运行程序的计算方面。翻译?它是一个全球性的、去中心化的计算机,任何人都可以为其贡献计算能力,因此被昵称为“世界计算机”。以太坊和其他区块链的发展培养了一种意识形态和对未来充满希望的愿景。你最近可能听说过它,这是对互联网的下一次迭代……Web 3.0 的大胆声明。

Web2 与 Web3

Web3 是一个更加去中心化的网络的愿景,其中用户信息真正属于自己,并且跨站点的广告和跟踪是一种选择加入的功能,而不是无处不在的入侵。一个用户可以更好地控制他们的隐私以及他们透露自己的信息的网络。一个你可以从去中心化应用程序的服务中受益并获得经济收益的网络。隐私不是保密。相反,它是有选择地向世界展示自己的能力。我不喜欢看到我的个人身份信息被泄露并在暗网上出售,尤其是在我费尽心思清理我的在线形象之后。

想想一个普通的网站或应用程序。它有一个前端或用户界面以及一个存储和操作数据的后端,通常用 Python、PHP、Ruby 或其他语言编写。通常,它托管在云中或本地的 Web 服务器上,并且容易受到可能导致停机的中断、自然灾害等的影响。在区块链上,你没有这样的问题。要使应用程序/网站停机,运行网络的每个节点/矿工都必须离线。

Web2 应用程序和托管解决方案通常由单个实体(Azure、AWS 等)控制,因此该实体可以对你施加限制并审查你的意见。由于区块链协议的不变性,审查或删除存储在区块链中的数据几乎是不可能的,除非在某些情况下我们会这样做。付款是通过原生代币以太 (ETH) 内置的,这与 Web2 不同,Web2 需要集成 Stripe 之类的东西。最后,没有人可以阻止你为你的应用程序使用该服务或引导你离开区块链,因为没有人拥有它。

现在,有一些警告。我只会解决技术问题。Web3 不是灵丹妙药。大多数 DApp 甚至都不是去中心化的,原因有很多,从 gas 费(使用世界计算机支付的以太币)到错误地声称 DApp 状态,以便将其登上月球。将数据存储在区块链上是非常昂贵的,而且未加密的敏感数据甚至绝不能输入其中,因为任何人都可以对字节码进行逆向工程并重建数据。(对于普通人来说说起来容易做起来难)。其他协议通过降低费用解决了gas问题。ETH 本身计划通过 ETH 2.0 的发布来解决这个问题。

目前,大多数使用星际文件系统 (IPFS),这是一种协议和点对点网络,用于在分布式/去中心化文件系统、本地存储或云中存储和共享数据,以将数据存储在链。挖矿的资源密集性也受到批评。较新的协议已经采用了权益证明共识算法,该算法应该比工作证明占用的资源少得多,因此由于进入门槛较低,因此允许更多人参与验证过程。更多的节点意味着协议本质上更安全。

如果你现在不了解所有这些以及它是如何连接的,请不要担心。一旦你开始学习,你就会。

Web3 对传统 Web 应用渗透测试仪意味着什么

Web 应用程序黑客攻击在客户端不会发生显着变化。你习惯的许多漏洞可能会延续到 Web3。但是,诸如 SQL 注入、文件上传漏洞和底层服务器上的 RCE 之类的事情不会。正如我们之前提到的,DApp 不需要数据库,它们的后端是智能合约,这开启了一个完全不同的黑客世界。

2. 智能合约

智能合约主要是在区块链领域发生黑客攻击的地方,因此你将不得不习惯于使用它们。这个行业对于初学者来说有点神秘,因为它是一个狂野的前沿。幸运的是,我为你找到了大部分资源。所以,事不宜迟,让我们开始黑客攻击。

什么是智能合约?

智能合约只是在区块链网络上运行的计算机程序。这个概念最初是由计算机科学家和加密货币学家 Nick Szabo 在 1990 年代后期创造的。然而,它们首先由以太坊协议实现。为比特币设计的脚本语言有意设计为图灵不完整的,并且仅限于对支出条件的简单真/假评估,而 Solidity 是为以太坊虚拟机 (EVM) 构建的主要编程语言,旨在促进以太坊的使用作为全球分布的计算机,而不仅仅是数字货币的协议。此后出现了几种新的区块链协议。大多数都有用 Solidity 编写的智能合约。其他的则是用更现代的语言编写的,比如 Rust(NEAR、Solana)、Python(Algorand)甚至 Go 和 C/C++(EOS)。

然而,值得一提的是,Solana 一直致力于使Solidity 智能合约成为可能。

3. 基础:Solidity 和 Ethereum

这不是你应该看的建筑之美;是经得起时间考验的基础建设。

——大卫·艾伦·科

0tykuDUv6Lv4pYPnP-1

现在你可能正在打瞌睡并希望了解基本术语,是时候讨论如何破解和保护智能合约了。我将首先概述你需要学习的内容以及这些知识如何相互关联。然后,我会给你一个资源列表,我个人使用它们的经验,以及一些成功的秘诀。

首先,你将必须学习将要使用的核心区块链(以及技术本身的工作原理)。对于许多人来说,这将是以太坊或 Solana,尽管我建议从以太坊开始。从核心区块链技术开始就像学习传统安全中的网络一样。以太坊涵盖的大多数概念很容易转移到其他协议,因此选择以太坊作为第一步是一个不错的选择。了解以太坊的最佳资源是Andreas Antonopoulos 和 Gavin Woods 博士的Mastering Ethereum。最好的部分?这本书在 Github 上是免费和开源的。

你将需要阅读第 1、2、3、4、5、6、13 和 14 章。如果你不喜欢看书,那么前面有一些视频资源可以解释相同的概念,尽管不像 -本书的深度。

GitHub – ethereumbook/ethereumbook: 掌握以太坊,作者:Andreas M. Antonopoulos,Gavin Wood

掌握以太坊是一本面向开发人员的书,提供了以太坊的操作和使用指南,以太坊……

github.com

你的下一步将是学习 Solidity 的来龙去脉,或者你选择的智能合约所用的任何语言。如果你不熟悉代码及其常见实现,那么你将落后,浪费时间尝试 Google 不熟悉的函数或库。

之前有几位比我更有经验的审计师告诉过我这一点。在我的旅程开始时,我没有听,而是尝试了一些以太坊智能合约 CTF。不用说,代码看起来像胡言乱语。所以,我回到了众所周知的以太坊学校并熟悉了这门语言。我使用了 freeCodeCamp 完全免费提供的这门价格。

它涵盖了以太坊的基础知识以及挖矿如何在表面上工作。然而,它比大多数其他资源更胜一筹,因为它涵盖了编码代币标准,如 ERC20、ERC721(NFT)和 DeFi(去中心化金融),这将使你对 DApp 和 DEX 的业务逻辑有令人难以置信的理解。这些知识对于打破现代智能合约将是无价的。

提示:你可能无法从本价格中轻松掌握 Solidity 的语法,因此我建议你查看 CryptoZombies 进行额外练习。熟悉语法将花费更少的时间。

如果你想做一些项目,那么 buildspace 可能适合你,尽管根据我的经验,它们不是学习 Solidity 语法细微差别的最佳选择,而且项目通常需要有 React 和 JavaScript 的前端经验/用户界面(UI)。

注意:要成为智能合约审计员/黑客,不一定要能够使用 JavaScript、React 等编写 UI 或前端。如果你想成为一名成熟的区块链开发人员,则更有必要。

有了这个,我们可以进入有趣的东西……黑客。

加倍努力:这绝不是必要的,但它可以帮助你脱颖而出。我强烈建议在开始 Solidity 价格之前完成计算机科学的入门价格,例如哈佛的 CS50。这有明显的好处,比如帮助你非常快速地掌握其他语言的语法,并通过价格作业和最终项目锻炼你解决问题的技能。这意味着能够快速移植到其他协议。拥有强大计算机科学背景的区块链开发人员比你想象的更难找到。

我希望更多的区块链协议能够采用像 Rust 这样的内存安全语言。除此之外,还有一些协议有自己的语言,如前所述。学习如何编程(这是本价格的目的)对你很有帮助。

它还涉及多种语言,如 JS、CSS 和 HTML,以防你真的热衷于制作前端。

4. 漏洞利用:公司如何通过一行错误代码损失数百万美元

“如果一项技术壮举成为可能,人类就会做到。几乎就好像它已连接到我们存在的核心。”

——草薙元子,攻壳机动队

0tf5I3IjQmNXREv_W

0tf5I3IjQmNXREv_W

ShinSekai, Wenqing Yan

Web3 空间对于黑客来说是一个如此有趣和有趣的游乐场。一行有问题的代码可能导致数以百万计的以太币被永远锁定,数以百万计的以太币在几小时内被盗,甚至由于灾难性的重入后果而导致区块链(以太坊经典硬分叉)分叉攻击(DAO被黑)。

双方都获得了丰厚的回报,Immunefi 上提供了多个 1,000,000 美元以上的漏洞赏金计划,并有可能成为绝对的传奇人物。黑客,无论是道德的还是犯罪的,仍然是人,我们都渴望成为比我们自己更伟大的事物的一部分并为自己出名。

欢迎来到 Web3 和加密货币朋克运动,匿名。欢迎来到革命。我们很高兴你帮助我们保护人们的互联网。

然后是技术方面……

安全最佳实践和常见攻击

你列表中的第一件事应该是了解智能合约安全最佳实践和保护代码的纪律。

我之前说过,但掌握以太坊是你对以太坊大多数事情的一站式服务,并包含对常见攻击、示例代码和现实世界示例的最佳实践和解释。

这里也值得一看关于这个主题的 ConsenSys 材料。

如果你更喜欢更直观的方法,Secureum 训练营将为你提供良好的服务。通过他们的创始人@0xRajeev留意新的队列公告。该训练营包括 RACE(CARE Endeavor 准备情况评估)和 CARE(全面审计准备评估)计划,涵盖从以太坊和 Solidity 的基础知识到最佳实践和智能合约审计技术的一系列主题。

测验、他们的答案和作业由0xTaylor提供。我强烈建议做所有的作业,因为它们包含有趣的谈话和阅读,这里没有链接。

此外,我建议通读各种备受推崇的智能合约安全公司(如 Trail of Bits 和 ConsenSys)的审计报告。

最后,我们来到智能合约程序员,他是我最喜欢的 YouTube 用户之一,也是唯一通过视频提供常见 Solidity 智能合约漏洞技术解释的用户之一。他的 Solidity 内容也非常适合快速提醒或概念介绍。下面,我链接了他的被黑 Solidity 播放列表。

智能合约安全挑战(Capture the Flags)

在学习了基础知识之后,你将需要练习你的技能。这将构成你体验的核心。最常见的练习方法是使用夺旗 (CTF),这是学习安全概念的挑战/游戏。我已经链接了每个 CTF 的站点,但没有嵌入,因为这会占用太多空间。

我建议按以下顺序进行:

Ethernaut / CaptureTheEther ->该死的易受攻击的 DeFi -> Paradigm CTF(Paradigm创建的最难的工具之一,特别是DeFi最具传奇色彩的安全研究员 samczsun。你可以在这里阅读 Immunefi 对他的采访。)

Ethernaut/Capture the Ether 重叠,所以你可以做一个。该死的易受攻击的 DeFi 需要了解 DeFi 的实现,因为解决方案主要在于打破智能合约的业务逻辑。至于 Paradigm,我不确定,因为我还没有尝试过。

如果你遇到困难,有很多文章可供参考,但我可以为Web3区块链开发人员的视频提供关于 Ethernaut 的担保。它们非常详细,会引导你了解智能合约的逻辑,因此非常适合学习。

对于该死的易受攻击的 DeFi,Smart Contract Programmer 已为你提供帮助。

真实世界体验

这是你的下一步。你可以而且应该在 Immunefi 上寻找漏洞,该平台拥有众多漏洞赏金计划,总奖励金额超过 6100 万美元。

最后,我鼓励你申请各种智能合约安全公司,因为像你这样的人的需求非常高。经验要求不像更传统的安全角色那样令人沮丧(入门级工作需要 5 年网络安全经验,对吗?)奖金?薪水还不错,角色多偏远。

在 Web3被黑space 中保持领先

DeFi 移动得非常快,很容易失去立足点。幸运的是,以下新闻提供者将帮助你了解最新的黑客攻击及其技术故障。

将所有内容捆绑在一起:

freeCodeCamp 价格 ->掌握以太坊的第 1、2、3、4、5、6、13和 14章(可选) -> CryptoZombies ->被黑 Solidity -> 掌握以太坊的智能合约安全章节(可选) -> SWC 注册表 – > Secureum 训练营 -> CTFs -> 现实生活经验/工作。

注意:从一开始就将 Secureum 训练营视频作为你学习的一部分可能是值得的。我个人跳过了 Ethereum 和 Solidity 模块,因为我已经完成了 freeCodeCamp 价格并阅读了Mastering Ethereum 中的相应章节。

5. 我为什么选择区块链?

为什么我选择专注于区块链安全而不是其他学科?

除了我们在介绍中介绍的内容之外,如果我说我没有被最早的 1337 Web3 黑客之一所带来的声望所吸引,那我就是在撒谎。

Web2 和其他学科有时间成熟,保护和入侵它的黑客也有时间。当你可以了解他们不知道或由于他们的傲慢而不愿视为相关的内容时,为什么要成为精英人群中的另一张面孔?

黑客应该对技术、它的工作原理以及如何让它出乎意料的事情充满好奇。在这方面,你我都成功了。我为你能走到这一步而感到自豪,Anon。愿你翱翔于新的高度,让你的名字在去中心化的网络中得到回响。

更传统的网络安全分支中的机会充满了激烈的竞争。我们都知道一位朋友多年来一直试图进入这个行业——这个行业需要 5 年的入门级薪酬经验,以及价值数千美元的认证。每个人都想知道为什么专业人士短缺……

自从转向区块链安全以来,没有多少人要求一年以上的经验或任何花哨的认证。见鬼,我以前从来没有收到加入任何公司的邀请,但感谢我的好朋友和导师,我有机会加入 DeFi 的一些最伟大的安全公司。这对我来说意义重大,也是我永远不会忘记的事情。我所要做的就是超越自己的守门人,并向自己证明我可以胜任这份工作。:)

区块链安全是唯一能让像我这样身无分文的孩子感到宾至如归的地方,无论是与专家的人在一起还是摆在我面前的机会,我祈祷这对你来说也是一样的。

6. 致谢

0M4-7i5YsO3sIiZ_o-1

在你的暮色中 颜文清

我想花点时间感谢所有帮助撰写本文的人。

首先,也是最重要的是 Halborn 的首席进攻安全工程师Timur Guvenkaya,他在百忙之中抽出时间与我讨论如何开始,并在我向他提出愚蠢的问题时不断指导我。在我刚开始学习的时候,他确实是唯一一个没有把我当成浪费时间的人,对此,我永远感激不尽。如果没有他,我不确定我是否会全职从事这项工作,我怀疑这篇文章会在这里。❤

Immunefi 的 DeFi 安全分类员Adrian Hetman鼓励我加入 Immunefi 社区,并在涉及 DeFi 时偶尔指导我。即使是加入 Immunefi 从事全职工作的微妙请求和鼓励。:)

Immunefi 的社区负责人 Jonah Michaels 为这篇文章在 Immunefi 的 Medium 出版物上的发布提供了便利。

Immunefi 的白帽黑客ckksec和Jah与我分享了他们成为 DeFi 黑客的其他途径。不幸的是,我选择忽略这一点,因为文章已经太长了,但请随时要求跟进他们的故事/白帽学者如何变得健康……学者 XD。

Wenqing Yan 又名 Yuumei 因其令人惊叹的艺术而遍布整个出版物。她的所有作品都激发了丰富多彩的世界,提供短暂而奇妙的逃离现实。我特别感谢 Fisheye Placebo(一个关于一群年轻的激进主义者和黑客行动主义者的故事),它在我的黑客之旅中起到了催化剂的作用。你可以在下面阅读:

我还要感谢本文中提到的所有内容创建者和安全公司。感谢你在回馈社区和帮助保护 Web3 方面所做的工作。

最后,我要感谢你坚持到最后,并在你成为 DeFi 黑客的旅程中迈出了第一步。如果你愿意,请随时在Twitter 上标记我,让我了解你的进展,并要求我提供更多技术文章/视频。如果有足够的压力,我相信我会崩盘并屈服。;)

DeFi 世界现在是你的了。我相信你会用我给你的知识做得很好。请记住,能力越大,责任越大

收藏我們

搜索