安全是有分量的

防御ddos_服务器怎么防ddos攻击_超稳定

2022-01-12 06:22栏目:商业圈

防御ddos_服务器怎么防ddos攻击_超稳定

热释光;DR:根据作者的经验,这篇文章指出,一般来说,开源加密并不比开源加密更安全。林纳斯定律背后的一个想法是,开源软件(OSS)比封闭源码软件(CSS)有更少的bug,因为更多的人可以访问OSS及其代码。因此,更多的人会使用该软件,阅读其源代码,发现其中的错误,并报告这些错误。这篇文章在加密错误的背景下讨论了这一观点,加密错误是加密组件中的软件或逻辑错误。

我想根据发现的方式和发现的难度,使用我最近谈论的区块链错误(通常是加密错误)的例子,将加密错误分为四类。这些想法主要是基于我十年前开始审查各种项目的加密软件的经验,无论是科技初创企业、大型公司、政府组织还是区块链公司。

使用漏洞:这些漏洞可以在不阅读代码的情况下使用应用程序发现。例如良性的SHA-512越界读取幻灯片45-49。对于这种bug,当Github上82%的项目少于45颗星时,OSS不一定会赢(我刚刚编造了一个数字,但你明白了)。在CSS中,我没有注意到广泛使用的应用程序和边缘应用程序在质量上有很大的区别,这表明使用bug的数量很少。原语bug:这些bug是由于选择了错误的加密原语或协议引起的。通常情况下,阅读文档就足够了,甚至不用深入研究代码。十年前,原始错误并不罕见,但今天每个人都有互联网连接,可以了解要避免的原始错误。最近的一个例子是使用易受IOTA签名冲突影响的哈希函数,如幻灯片24-25所述。根据我的经验,近年来,OSS的原语bug往往较少,原因是CSS有时依赖于其他/遗留组件,因此无法完全选择所有原语。误用bug:这是在使用正确的原语时,但是以一种不安全的方式。例如,有效的DDos防御,Lisk使用Ed25519签名和安全哈希函数来生成太短的地址(参见幻灯片17-20)。其他常见的陷阱包括具有易于冲突的nonce的流密码,阿里云有没有免费的ddos防御,或者PBKDF2迭代次数不足。这些bug通常出现在代码评审中,相对容易找到,尽管比原始bug要难一些。把我们自己限制在误用bug上,我不认为我在CSS中看到的每行代码都比在OSS中看到的可怕。硬漏洞:要找到这样的漏洞,加密的"流行文化"是不够的。您通常需要了解复杂的协议或逻辑,并且在数学或编程语言等领域具有特定但不一定是高级的技能。例如,幻灯片14-16中讨论的libzerocoin错误对于代码审阅者来说并不明显。这样的bug可能是偶然发现的,但是他们有更多的机会被有经验的人发现,静态能防御cc吗,也就是那些不会免费工作的人:要么在付费审计期间,要么在出售bug的时候,要么在换取bug奖金的时候。

结果是,要找到硬bug,你需要那些认真阅读代码的人,但是这样的人太少,代码太多,所以在OSS和CSS中都存在bug。付费安全审计有帮助,但不会发现所有的漏洞,因为它们往往比深度更广。即使经过合格人员的安全审计,日本高防cdn,一些bug仍然无法被发现,即使在广泛审计的应用程序中也是如此。同样,这也适用于OSS和CSS。

所有这些听起来都不是很原始,也不是特定于加密错误,而不是"正常"错误。可能不同的是,加密bug往往比非加密bug更难找到,同时它们的利用往往不那么复杂:例如,如何设置ddos防御,为了利用加密bug,很少需要编写复杂的外壳代码和链利用。然而,某些密码错误需要强大的计算能力才能利用(例如ROCA或SHA-1碰撞)。

当然,这些点会受到重大选择偏差的影响:它们仅基于我审查过的项目,你可以推测,公司愿意为审计或其他原因共享源代码是因为他们对自己的代码质量更有信心(相反,当公司因为知道自己的代码糟糕而要求审计时也是如此。)

一些离别的想法:我只讨论了代码的质量,不是真正的风险。例如,你可以认为OSS中的bug更容易被利用,因为源代码就在那里,但这是另一个争论。你也可以说,OSS倾向于被其他OSS重用,这会放大某个特定错误的影响。

感谢Antony Vennard、Arrigo Triulzi、Jason Donenfeld、Nadim Kobeissi、Nathan Hamiel的反馈和编辑,Samuel Neves.

分享:点击打印(在新窗口中打开)点击给朋友发邮件(在新窗口中打开)点击在LinkedIn上分享(在新窗口中打开)点击在Twitter上分享(在新窗口中打开)点击在Reddit上分享(在新窗口中打开)相关的审计crust Crypto:第一个小时2019年2月7日质子链的"加密"代码评估2021年3月2日在"区块链"中与2021年5月27日在"量子计算"中实现(量子)飞跃