安全性一直是信息技术最重要的方面之一,如今许多组织及其开发人员在构建应用时都采取安全第一的思维方式。 这些原则和行动通常被统称为“DevSecOps”,它涵盖了应用安全的整个文化和方法。 DevSecOps 代表开发、安全和运营。 其目标是将安全第一的思维融入信息技术和基础设施的各个方面。
区块链是信息技术领域最新、最令人兴奋的领域之一,它拥有一个由去中心化协议和应用组成的巨大生态系统,旨在带领我们进入网络的更新版本,即许多人所说的 Web3。
Web3 一词涵盖了各种概念,主要关注应用架构和用户体验方面:
这些核心概念旨在让用户使用公钥加密重新控制自己的身份,并通过各种区块链机制和协议促进点对点经济的采用。 许多区块链及其周边协议可以使用在隔离的虚拟化环境中执行的智能合约来处理高级交易并管理状态。
然后通过一种称为共识算法的机制在网络上的所有节点之间同步这些内容。 这是一种允许用户或节点在分布式设置中进行协调的机制,以确保即使某些代理出现故障,系统中的所有节点都可以就单一事实来源达成一致。 此外,许多区块链通过保持其协议的开放和无需许可的方式以抗审查的方式运行。
基于区块链的架构还存在额外的风险,因为网络主干通常由基于代币的数字加密货币提供支持,并且通常具有货币价值。 这些代币保存在地址中,通常存储在外部拥有的账户或智能合约中。 而且由于信任也是通过使用公钥加密来分布的,因此网络上的每个地址都容易受到攻击。
每个账户的余额都分布在网络上的公共账本上,任何人都可以看到,这为黑客针对特定用户或合约留下了漏洞。 这使得隐私和匿名性成为区块链的一个特别重要的方面。 通常,管理这些账户的人要么是攻击目标,要么利用其职位采取非法行动,威胁包括:
此外,各种区块链技术、协议和去中心化应用的技术足迹已经很大,并且正在快速增长。 因此,思考这个快速发展的生态系统的安全影响非常重要。 任何以去中心化为核心理念构建的事物都会变得更加广泛,因此也会有更多的攻击点,需要仔细分析和保护。
在审核分散式应用和技术基础设施的安全性时,以下是值得考虑的几个主题:
当我们在应用的开发生命周期中谈论 DevSecOps 时,我们通常指的是安全驱动开发。 这通常也被称为“安全左移”行为。 这是 DevSecOps 文化最重要的方面之一,因为它始于开发人员将安全性视为代码。 由于基于区块链的智能合约可以存储价值并充当银行的角色,这使得其中的代码特别容易受到攻击,因此在编写时应严格考虑安全性。
业界已发现多起针对智能合约漏洞的黑客攻击,通常集中于利用代码。 历史上最大的黑客攻击事件之一发生在去年,当时跨链协议 Poly Network 报告称,一名攻击者入侵了一份智能合约,将各种资产转移到黑客控制的外部钱包地址,转移了相当于 6.1 亿美元的资金。
智能合约开发存在很多漏洞,但最常见的攻击有:
区块链、分散式应用及其周围的各种协议正在快速发展。 这些部署应用的新颖且令人兴奋的方式有可能颠覆许多不同的行业。 然而,我们必须注重安全第一的思维方式,并尽可能地实施 DevSecOps 文化。
任何人进入区块链之旅的第一步都是阅读与你正在构建的协议相关的白皮书:
接下来,研究以前的黑客攻击和漏洞,甚至尝试在开发环境中重现黑客攻击。
为了获得以太坊安全性的实践学习经验,我推荐以下捕获标志(CTF)程序,其中漏洞或“标志”隐藏在故意存在漏洞的程序或网站中,以教授安全基础知识。