Cointime

扫码下载App
iOS & Android

如何构建安全的去中心化应用程序 ?

个人专家

作者:Alexander Nazarov. 编译:Cointime:QDD.

理解dApp安全

安全性应该是dApp生命周期的关键考虑因素。然而,我们的重点将放在软件开发过程上,承认从开发的早期阶段就需要采取积极的安全措施。从一开始就将安全措施纳入其中,比在事后添加更容易且更经济有效。

为确保一个安全的应用程序,基本原则是遵循保密性、完整性和可用性等主要安全原则。应用程序必须安全地管理敏感信息,提供准确的信息,彻底验证输入并抵御外部操纵。这些原则构成了基线。每个应用程序的安全要求都是独特的,应该认真确定,考虑业务目标、技术限制和其他相关因素。

的确,了解哪些方面与你的系统相关可能具有挑战性。因此,在开发的初始阶段,培养对正在构建的产品的全面了解至关重要。对用户期望、潜在的负面影响、所需行为以及在不理想的情况下可能出现的不良结果进行关键问题的提问。这种询问有助于定义明确的安全目标,并确定需要重点关注的领域。

在这种理解的基础上,你可以继续设计你的应用程序。评估应用程序的特性、其实现方式和与预先设定的目标的一致性。在这个阶段,仔细审查每个架构和技术决策。不要轻易接受诸如“X是做Y的最安全方式”之类的陈述,而应该进行批判性的评估。在安全方面,没有一个适用于所有情况的解决方案。深入了解你正在使用的技术的优势和劣势,确保其在特定用例中的有效实施。

最后,全面的文档记录是至关重要的。记录你的决策和发现的弱点,可以为开发人员和安全专业人员提供宝贵的指导,引导他们将注意力集中在最需要的地方。

通过我们全面的dApp审核,确保离链组件与区块链网络之间的安全互动

实际中保护不同类型的dApp   虽然理论上可能很简单,但实施安全措施可能是具有挑战性的。因此,我们建议遵循公认的威胁建模框架,例如“攻击模拟和威胁分析过程”(PASTA)。这个线性的七阶段框架有助于系统化你的安全方法,与我们之前强调的原则密切相关:

1. 定义目标 2. 定义技术范围 3. 分解应用程序 4. 分析威胁 5. 漏洞分析 6. 攻击分析 7. 风险和影响分析

根据你的应用类型,其他指南可能会有所不同。因此,考虑到不同类型的dApp及其相关风险,我们为流行的dApp用例提供了建议。

非托管钱包的安全提示

这种类型的钱包直接访问私钥,并负责其安全保管,使你完全拥有资产的所有权。这种钱包的例子包括MetaMask、HackenAI和MyEtherWallet。

在这种情况下,主要的安全考虑应该是钱包存储的私钥或种子的安全性:

密钥应该被正确加密,只有在设计上并已明确告知用户的情况下才离开应用程序。     应仔细分析和验证与密钥的每次交互,以确保逻辑正确且正确实现。我们还建议进行单元测试以自动完成此操作。     调试或监视机制不应访问钱包存储的敏感数据。     还应考虑特定平台的弱点。例如,应用程序在移动端、桌面端、Web端或作为Web扩展运行,将产生显著差异。

跨链桥的安全提示

当查看跨链桥的一部分的离链服务器应用程序时,我们可以强调它们通常具有的特定责任:

1. 验证在区块链上发生了某个事件。

2. 将外部信息传输到区块链。

这些特性是主要的安全考虑因素。但是,当然,如果适用于你的情况,你还应考虑其他系统特定的问题,例如私钥安全。

在决定考虑某些事情是否确认时,应基于来自不同数据提供者的信息,并经过验证。例如,系统可以要求多个验证器的签名才能接受跨链转移为有效。在这种情况下,每个验证器使用不同的区块链节点也是必要的,退回到具有多个独立数据源的同一原则。请参见“CWE-1293多个独立数据缺少来源关联”以更好地了解此问题。

我们还鼓励你阅读“跨链互操作性和安全性”报告,以更好地了解生态系统的整体状况。

区块链浏览器的安全提示

当某人想查看他们进行的转账状态时,浏览器是第一个停靠点。它们是当前存在的最常用的dApp,但可以说在安全性和它们对加密货币用户日常生活的影响上最容易被忽视。它们提供有关区块链的有价值的信息,并显着简化了整个用户体验,但这是以集中化的成本为代价。当然,这并不是一个完全的问题,但仍然需要考虑。

在这种情况下,主要的安全关注点是浏览器提供的信息的完整性和网站用户的安全性。

区块链浏览器应该从不同的区块链节点收集和比较信息,以降低被受损节点影响系统的风险。 从区块链中收集的信息应视为用户输入,而不是完全可信的信息。 包含索引数据的数据库应对外部操纵具有抗性。 网站的安全性应具有为敏感信息网站设计的常规安全措施。当你考虑用户使用网站验证交易和开展业务时,这是必要的。

我们还建议在使用区块链浏览器作为区块链信息源时要谨慎,尤其是如果它是系统中的唯一数据源。不幸的是,在撰写本文时,我们尚未找到任何一个区块链浏览器会在服务协议层面提供提供不准确信息的责任。

针对连接网站的安全提示

这些网站使用第三方服务,通常是插入或连接钱包,与区块链通信,它们不存储或有权访问用户的私钥。因此,它们已通过不要求对用户资产进行保管而消除了重大的安全风险,留下我们关注较不紧迫但仍然至关重要的安全考虑因素。

在这种情况下,用户的隐私和常规Web安全是主要的安全关注点。

尽管大多数区块链生态系统本身都建立在透明度上,但普遍认为,如果用户愿意,他们应该能够保持隐私。基于这种假设,网站应限制他们收集可能创建用户身份和在线存在之间联系的信息,或向用户传达这种情况并提供保障。这些问题包括但不限于IP地址、地理位置、个人详细信息和其他可能可识别信息。

总结

总之,dApp安全是一个主动的过程,从你的应用程序的设计和开发开始,持续到其生命周期结束。这个综合策略应包括识别独特的安全要求,批判性地评估设计决策,并记录已知的弱点以备后续参考。通过以安全为重心的心态开始,并利用强大的审计服务,例如dApp AuditSmart Contract Audit,你可以构建一个更安全、更强大和更用户友好的dApp。

评论

所有评论

推荐阅读

  • 以太坊上假冒GME代币发生Rugpull

    据PeckShield监测,以太坊上假冒GameStop GME下跌100%。0xcbae开头地址抛售了1,434,204,649,380.8枚GME并兑换为93.2枚WETH(价值27万美元),注:Rugpull代币与合法代币名称相同。

  • ETH跌破2900美元

    行情显示,ETH跌破2900美元,现报2899.38美元,日内跌幅达到0.48%,行情波动较大,请做好风险控制。

  • 欧洲央行管委:我们很可能在六月开始降息

    欧洲央行管委维勒鲁瓦表示,我们很可能在六月开始降息。

  • 前FTX高管Ryan Salame请求法庭从宽处理,判处其18个月监禁

    根据周二提交的一份量刑备忘录,前FTX高管Ryan Salame于去年9月承认共谋非法政治献金以及共谋经营无证汇款业务的罪名 ,其律师请求法庭从宽处理,判处其18个月的刑期。RyanSalame在FTX和Alameda任职期间,为FTX客户管理电汇存款和法币兑换,利用Alameda的资金参与政治献金,并在巴哈马领导慈善活动。 在提交的文件中,其律师辩称,Salame在被关闭的公司中扮演的角色与欺诈的核心关系不大,更多的是操作性的。他们还提到了萨拉梅与当局的合作、真正的悔意、为解决药物滥用问题所做的努力,以及交易所倒闭给他造成的重大个人和经济损失。

  • 5月15日早间要闻速递

    1.美国比特币ETF持有价值近600亿美元的BTC

  • 香港警方逮捕100万元USDT诈骗团伙,检获 3000 张冥币

    据星岛日报报道,香港警方于 4 月 12 日接获一名35岁男子报案,称其在尖沙咀一店铺转售约值 100 万元的虚拟货币 USDT 后未能收回现金,怀疑被骗。

  • 前总统特朗普赢得内布拉斯加州共和党党内初选

    据美国《国会山报》统计报道,美国现任总统拜登赢得2024年美国总统选举在内布拉斯加州的民主党党内初选,前总统特朗普赢得该州共和党党内初选。

  • 成都公安公布两起以虚拟货币为媒介向国外转移资产、虚开发票骗取国家退税资金的典型案例

    今天是全国第十五个“5·15”打击和防范经济犯罪宣传日,川渝公安经侦部门联合开展的打击和防范经济犯罪宣传日活动在成都天府国际金融中心举行。 活动现场,成都公安公布了两起经济犯罪典型案例。其中,成都市公安局侦破涉案金额高达138亿元的特大地下钱庄案,犯罪嫌疑人以USDT泰达币为媒介,逃避国家外汇监管,非法提供外汇结算渠道,该案涉及全国26各省(市、自治区),如今公安机关已在全国范围内抓获犯罪嫌疑人193名。

  • 昨日Tether发行1.1亿美元的USDT,赎回2300万美元的USDT

    据ChainArgos监测,Tether于5月14日共发行1.1亿美元的USDT,同时赎回了2300万美元的USDT。

  • 萨尔瓦多为新机场酒店启动基于比特币的融资

    萨尔瓦多启动宣布圣萨尔瓦多国际机场的度假酒店进行比特币融资,目标融资目标为625万美元。资金将用于建造一座占地4,484平方米的五层设施,设有80间客房、商业空间、游泳池和其他设施。 该酒店位于机场内,使其成为该地区唯一的酒店服务提供商。 该投资机会的最低投资额为 1,000 美元,共有 6,250 种代币可供选择,每种代币每半年支付 10% 的年收益率。 该项目由Inversiones Laguardia SA de CV监督并通过Bitfinex证券推动。