11

揭开区块链渗透测试的神秘面纱

 4 years ago
source link: http://blockchain.51cto.com/art/202004/614378.htm
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

区块链技术正在改变人们的工作和生活方式。凭借无与伦比的潜力,区块链使人们能够更好地控制和管理金融交易、医疗保健和许多其他活动,这些活动需要更多的隐私和透明度。以下帮助人们了解什么是区块链渗透测试。

JVjq2aY.jpg!web

2014年,全球规模最大的比特币交易所价值5亿美元的比特币被盗,此外大约有6,000万美元的以太币通过基于以太坊的分散式自治组织(DAO)重定向至匿名帐户。2017年,全球第二大比特币攻击事件发生在比特币在线交易平台Bitfinex,造成将近7200万美元的损失。

区块链技术正在改变人们的工作和生活方式。也为数字业务生态系统带来了新的安全性,并提高了效率。

了解区块链

在过去的几年,区块链为数字生态系统带来了翻天覆地的变化。人们需要了解的是,它实际上不仅与加密货币有关,而且还是一个不可变记录的时间戳链,也就是采用加密方式链接的区块。

区块链是一个记录任何数字资产事务的开放式分类账。这些数字资产可以通过智能合约(例如ERC令牌)或区块链网络的核心加密货币(例如比特币或以太坊)进行管理。

区块链网络始于“创世纪”(genesis)区块的配置。顾名思义,“创世纪”是区块链的第一个区块,其先前的区块哈希值为0x000。然后根据一致性和配置(例如区块时间、区块大小等),将更多区块添加到链中。

区块(包括其中的事务)将得到验证并添加到链中,以后无法进行修改。区块链中的任何修改都会导致创建新事务,从而使其具有可追溯性。这是区块链网络的基本功能。

什么是区块链渗透测试?

渗透测试就是测试人员以潜在黑客的心态工作,有效地利用编码错误进行测试。简单地说,测试人员自己充当黑客,试图闯入网络检测和报告安全漏洞。渗透测试人员所花费的总时间取决于网络大小及其体系结构的复杂性。规模较小的测试很快就能处理,而较大的测试可能需要长达数周的时间。需要区块链渗透测试作为解决方案的一些挑战包括:

  • 缺乏测试工具
  • 知识不足
  • 不适当的策略
  • 不可撤销的事务
  • 性能和负载测试

有效的区块链测试可帮助组织通过网络基础设施安全地构建和利用该技术。其测试过程包括核心测试策略和服务,例如云计算测试服务、功能测试、API测试、集成测试、安全测试和性能测试。它还包括特定于区块链的测试策略,例如块测试、智能合约测试和对等/节点测试。

(1) 功能测试–这个测试评估案例方案和业务方案。测试人员考虑的组件包括:

  • 区块链的规模–最基本的事务由包含事务信息本身的数据构成,这些数据占用空间。尽管具有争议,但目前每个块包含1MB数据。这种规模需要定期检查和测试。而且,链的规模没有限制,并且随着时间的推移不断增加。测试人员需要测试区块链的功能和性能,以便对其进行检查。
  • 块的添加–在对每个事物进行身份验证之后,测试人员将验证这些块并将其添加到区块链中。如上所述,区块链无法更改,因此在添加之前对块进行验证使其成为一个极为关键的过程。
  • 数据传输–区块链涉及点对点体系结构,这使得测试人员必须验证数据的加密和解密,并使其完美无缺。其目的是确保数据丢失最小化或不丢失。

(2) API测试– API测试就是要检查应用程序与区块链生态系统之间的交互。这样做是为了验证API发送的请求和响应,并确保它们的格式和执行正确。

(3) 集成测试–由于区块链测试在不同环境和并行系统中的部署,集成测试的需求上升。测试是为了确保不同的组件能够无缝地相互通信。测试团队测试API以确保这些API可以在验证阶段使用。

(4) 性能测试–区块链中的性能测试可确定潜在的瓶颈,并检查应用程序是否已准备好投入生产。确定性能的测试自动化是检查区块链整体可扩展性的关键。

(5) 安全测试–目的是确保完全保护区块链应用程序免受病毒和恶意程序等攻击。区块链的安全测试需要非常彻底和响应迅速。正在进行的事务无法停止,因此测试过程应足够有效以发现所有潜在威胁。有效的安全测试还有助于改善公司在消费者面临风险之前撤销有缺陷的商品的流程,这有助于实现数字质量保证。

以下是数字生态系统中不同行业利用的一些功能:

  • 医疗保健–医疗验证和记录维护、索赔处理
  • 零售–减轻欺诈行为,保护消费者数据的隐私
  • 通信–网络访问和控制,保护移动钱包
  • 媒体-反盗版、支付方式、数字传输
  • 金融–跨渠道付款,商业交易的安全性
  • 确保智能合约
  • 强大的数字保证解决方案

这是一个自动执行的合同,其中包含有关各方之间的协议条款,以代码行的形式编写。然后将包含代码和协议条款的这些合同分发到分散的区块链网络上。智能合约允许匿名方之间进行信任交易,而无需使用中央系统。

区块链渗透测试工具

同样重要的是,测试人员要选择合适的区块链渗透测试工具,以减少漏洞,并提供最佳质量的结果。在此建议使用以下工具测试基于区块链的应用程序:

(1) Truffle框架–Truffle是最受欢迎的开发环境之一,也是区块链测试的测试框架。

Truffle为智能合约提供简单的生命周期管理,包括支持库链接、自定义部署和复杂的基于区块链的应用程序。Truffle还提供了自动契约测试,开发者可以使用JS和Solidity编写自己的自动测试代码。它的一些显著特点是:

  • 在开发过程中立即重建资产;
  • 可配置的构建管道,完全支持自定义构建过程;
  • 可编写脚本的部署和迁移框架;
  • 与交互式控制台的直接合同通信。

(2) Embark–Embark提供了一种简单的声明性方法来定义要部署的智能合约及其相关性。

(3) 以太坊测试仪–为各种区块链测试需求提供可管理的API支持。它旨在改善用户和开发人员的体验,并帮助他们轻松管理和执行所选工具。

(4) Populus –这里的测试由python测试框架提供支持,并为测试智能合约提供了有用的实用工具。

结论

区块链是所有现代安全交易的领先技术。由于区块链测试的不断发展,目前还没有相应的标准指南。这一领域知识的缺乏往往导致工程师按照个人的选择进行设计,最终无法满足组织的要求。与其相反,外包的安全和区块链测试专家凭借其全面的知识库帮助客户在其连接的基础设施上构建和使用区块链技术。

这些服务包括对智能合约、安全控制、流程和访问控制以及区块链分类账网络内的横向移动进行彻底的人工审查。还需要提供详细的环境测试,包括移动应用程序和Web应用程序、API、网络等。

【责任编辑:赵宁宁 TEL:(010)68476606】


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK