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。

评论

所有评论

推荐阅读

  • 美国已拒绝伊朗就结束战争提出的书面方案

    5月15日电,据伊朗《德黑兰时报》15日报道,美国已拒绝伊朗就结束战争提出的“14点”书面方案。报道称,美国政府已就上述书面方案作出回应,美国拒绝了德黑兰的方案,并“重申其强硬立场”,尤其是在核问题上。伊朗提出的方案基于两阶段谈判程序:第一阶段旨在结束所有战线的战争;如果伊朗的条件得到满足,则将启动关于核问题的第二阶段谈判。 (新华社)

  • BTC突破81000美元

    行情显示,BTC突破81000美元,现报81003.37美元,24小时涨幅达到1.54%,行情波动较大,请做好风险控制。

  • 日本央行警告投资基金活动或引发金融体系风险

    5月15日,日本央行理事神山一成(Kazushige Kamiyama)在一份演讲稿中指出,投资基金在提供风险资本方面发挥着关键作用,但也可能给一国的金融体系带来潜在风险。神山一成表示:“全球对冲基金资金流向的突然转变,可能会加剧债券和股票市场的价格波动。”

  • 韩国首尔���指跌幅扩大至7%,现报7421.91点

    5月15日消息,韩国首尔综指跌幅扩大至7%,现报7421.91点。

  • 美国国债收益率创下数月新高

    5月15日,霍尔木兹海峡实际上仍处于关闭状态,同时对通胀的担忧依然存在,亚洲交易时段美国国债收益率上升。Tradeweb的数据显示,美国两年期国债收益率触及4.064%,为2025年2月以来的最高水平。美国10年期国债收益率升至4.530%的一年高点,美国30年期国债收益率升至5.071%,为2025年7月以来的最高水平。数据显示,在触及这些水平后,收益率有所回落,但仍较前交易日高出6-8个基点。(东新社)

  • 特朗普:热情期待在华盛顿接待习近平主席

    美国总统特朗普15日表示,非常感谢习近平主席邀请我到中南海做客。此次访华是一次非常成功的访问,举世瞩目,令人难忘。我愿同习近平主席继续保持诚恳深入沟通,热情期待在华盛顿接待习近平主席。(新华社)

  • 日经225指数向下触及61000点,日内跌2.65%

    日经225指数向下触及61000点,日内跌2.65%。

  • 韩国首尔综指暴跌5%

    5月15日,韩国首尔综指重挫5%,受三星和SK海力士拖累,其中三星电子跌幅扩大至7%。

  • 美股股指期货持续下挫,纳指期货跌幅扩大至1%

    5月15日消息,美股股指期货持续下挫,纳指期货跌幅扩大至1%,标普500指数期货跌0.60%。

  • 韩国KOSPI指数跌近5% 存储巨头下挫

    5月15日,韩国KOSPI指数回落至7600点下方,日内跌近5%。三星电子和SK海力士分别跌超6%和5%。(金十)