安全一直是信息技术中至关重要的方面之一。如今,许多组织及其开发人员在构建应用时都会秉持安全优先的理念。这些原则和实践通常统称为“DevSecOps”,涵盖应用安全的整体文化和方法。DevSecOps代表开发、安全和运维,旨在将安全优先的理念融入信息技术和基础设施的各个方面。
区块链是信息技术领域近年来涌现且备受关注的方向之一。围绕区块链,已形成由去中心化协议和应用组成的庞大生态系统,旨在推动互联网迈向许多人所称的Web3。
什么是Web3?去中心化应用究竟是什么?
Web3一词涵盖多种概念,主要关注应用架构和用户体验的各个方面:
- 去中心化
- 开放性
- 不可变性
- 可编程性
- 透明度
这些核心概念旨在利用公钥密码学,让用户重新掌控自己的身份,并通过各种区块链机制和协议推动点对点经济模式的普及。许多区块链及其相关协议可以处理高级交易,并使用在隔离虚拟化环境中执行的智能合约来管理状态。
随后,这些状态会通过一种称为共识算法的机制,在网络中的所有节点之间同步。该机制使用户或节点能够在分布式环境中协调,从而确保即使部分参与方发生故障,系统中的所有节点仍能就唯一可信的信息源达成一致。此外,许多区块链通过保持协议开放且无需许可,实现抗审查运行。
整体格局如何?
基于区块链的架构存在额外风险,因为网络的基础通常由基于数字代币的加密货币提供支持,而这种加密货币通常具有货币价值。这些代币由地址持有,通常存储在外部拥有账户中或智能合约内。此外,由于使用公钥加密技术也会使信任分布在网络中,因此网络上的每个地址都容易受到攻击。
每个账户的余额都通过所谓的公共账本分布在整个网络中,任何人都可以查看,这为黑客针对特定用户或合约实施攻击提供了可乘之机。因此,隐私和匿名性对区块链尤为重要。管理这些账户的人员往往会成为攻击目标,也可能利用职务之便从事非法活动,相关威胁包括:
- 社会工程学
- 信任关系或密钥管理不善
- 侵占和欺诈
- 诈骗
此外,各类区块链技术、协议和去中心化应用的技术覆盖范围已经十分广泛,并且仍在快速扩大。因此,必须考虑这一快速发展生态系统带来的安全影响。任何以去中心化为核心理念构建的系统都会扩大攻击面,因而产生更多攻击点,需要对其进行仔细分析和保护。
在审核去中心化应用和技术基础设施的安全性时,以下几个方面值得考虑:
- 第1层区块链(Bitcoin和Ethereum)
- 第 2 层区块链(侧链和 Rollup)
- 智能合约
- 编译器
- 软件钱包
- 硬件钱包
- 区块链客户端(矿工和验证者)
- 托管型交易所(中心化)
- DeFi交易所(去中心化)
- 提供商
- 市场(NFT)
智能合约中的常见攻击途径
在应用开发生命周期中谈到DevSecOps时,通常指的是安全驱动开发,这也常被称为“安全左移”。这是DevSecOps文化中非常重要的一环,因为它要求开发人员从一开始就将安全视为代码的一部分。基于区块链的智能合约可以存储价值并发挥类似银行的作用,因此其中的代码尤其容易受到攻击,编写时应严格考虑安全性。
业内已发生多起针对智能合约漏洞的黑客攻击,通常以利用代码缺陷为主要手段。去年发生了历史上规模较大的黑客攻击事件之一。跨链协议Poly Network报告称,攻击者入侵了一个智能合约,将多种资产转移至其控制的外部钱包地址,转移金额折合6.1亿美元。
智能合约开发存在许多漏洞,较为常见的攻击包括:
- 下溢和上溢:通常发生在算术运算导致无符号整数达到其最大字节容量时,此时数值会“回绕”,并可能导致应用程序的业务逻辑出现意外行为。
- 合约重入:攻击者通过反复重新进入合约来利用漏洞,通常会提取超出允许额度的资金。
- 交易抢跑:指利用技术或市场优势,提前获知即将发生的交易。
- 密钥管理不当。
- 访问控制实施不当。
如何才能营造更公平的竞争环境?
- 构建安全优先的文化。对于希望构建注重安全的文化的组织而言,DevSecOps理念是一个很好的起点。
- 开展审计。审计可从全新视角审视应用逻辑和运营流程,帮助发现代码中的漏洞,并增强应用用户的信任。MythX和Slither是审计Ethereum智能合约的实用工具。
- 提供漏洞赏金并开展众包渗透测试。众包安全是一种经过验证的方法,有助于增强整体安全防护能力。通过让公司参与漏洞赏金计划,并对应用和基础设施开展渗透测试,可以更早发现并应对漏洞和黑客攻击。
- 采用开源策略。对于区块链这类技术而言,应用的透明度至关重要,因为参与者可以根据代码验证和审计结果决定是否加入。此外,将部分组件开源有助于提高项目在社区环境中的问责性。
- 为管理操作实施多重签名。 对智能合约采用多重签名架构,以执行所有权转移、资金转移及其他关键管理操作,可为应用程序增加一层安全保障。
结论
区块链、去中心化应用及其相关协议正在快速发展。这些新颖的应用部署方式有望推动众多行业发生变革。然而,我们必须秉持安全优先的理念,并尽可能践行DevSecOps文化。
延伸阅读
踏上区块链探索之旅时,一个不错的起点是阅读您所基于的协议白皮书:
接下来,研究以往的黑客攻击和漏洞,甚至尝试在开发环境中复现攻击。
为了通过实践学习以太坊安全知识,我推荐以下夺旗赛(CTF)项目。这些项目会在特意设置了漏洞的程序或网站中隐藏漏洞或“旗标”,以教授安全基础知识。
关于作者

相关博客文章
Thingbot正转变为攻击平台
Lori MacVittie重点介绍了F5 Labs对2018年1月至6月全球物联网设备攻击的研究,并指出了其中令人警醒的影响。物联网设备不仅持续遭到利用,还被转变为攻击平台,这意味着攻击者可以更充分地利用这个必然增长的市场。
借助F5全新Quick Start,在AWS上快速开展业务
在AWS re:Invent开幕前,我们很高兴与大家分享F5与AWS之间全新的Quick Start集成。F5的Tom Atkins将介绍该服务如何启动、配置和运行在AWS上部署工作负载所需的计算、网络、存储及其他AWS服务。