如果我在http://www.exploit-db.com/上搜索两个词:OpenBSD 和 NetBSD,那么我会得到 17 个关于 OpenBSD 安全漏洞的命中,以及 8 个关于 NetBSD 安全漏洞的命中。
那么究竟有什么区别,NetBSD 和 OpenBSD 如何审计他们的代码呢?
如果我在http://www.exploit-db.com/上搜索两个词:OpenBSD 和 NetBSD,那么我会得到 17 个关于 OpenBSD 安全漏洞的命中,以及 8 个关于 NetBSD 安全漏洞的命中。
那么究竟有什么区别,NetBSD 和 OpenBSD 如何审计他们的代码呢?
我要说的第一点是,给定漏洞/利用数据库的命中次数并不是整体安全性的可靠指标。这在很大程度上可以由其他因素来定义,例如安全研究人员的工作重点或披露政策。
即使是对项目网站的快速阅读也可以提供两者之间可能的比较安全状况的指标。OpenBSD 明确指出,其核心目标之一是“成为业界安全第一”。他们提供了大量有关完成此任务的方法的信息和详细信息。我不想重复@Bruno Rohée 的回答,但他们已经实现了许多高级安全功能,开创了常用 c 函数(strlcpy 和 strlcat,后来被 NetBSD 和 FreeBSD 采用)的新版本(并且公认有争议) ,他们提供了大量与其严格的源代码审计过程相关的信息,并以他们所谓的“默认安全”模式发布操作系统。
尽管 NetBSD 绝不缺乏任何通才比较的安全性,但它的核心项目目标没有明确提及安全性:
...而 OpenBSD 的做法是:
@rook:你应该在两个内核上运行一个差异,毕竟那些年(自分裂以来的 17 年)分歧仍然没有那么多,但是项目之间仍然存在交叉繁殖和一个非常好的想法会四处蔓延。
OpenBSD 在安全架构方面取得了更多进展,如编译器支持以防止缓冲区溢出,地址随机化,因此攻击者无法预测任何事情,严格的内存保护,因此可写内存不可执行,这类东西会产生任何错误如果不是不可能利用的话,它的开发人员会更加努力地窥探。它还使运行不安全的软件更加安全。
OpenBSD 也率先引入了许多进步,特别是在实用密码学领域,例如更强的密码散列 (bcrypt)、交换加密……不会影响任何漏洞利用计数的东西(这对于安全指标的意义不大,如果一个人没有发现一个错误,也许他只是看起来不够努力)但在实际安全方面做了很多工作。同样在实际的安全部分中,您可以看到广泛的特权分离,广泛的 chrooting,因为一旦发生坏事,就会减少坏事......
免责声明:我曾经是一名 OpenBSD 提交者,但那是很久以前的事了。
不显示现实!就像 apache 和 nginx 的 bug 区别一样。apache 有很多,但这仅仅是因为它比 nginx 更常用。
我对 NetBSD 代码审计一无所知,但 OpenBSD 对此非常认真。阅读(审计过程):http ://www.openbsd.org/security.html
如果您需要一个受信任的操作系统,那么 OpenBSD 应该是您的选择。
问候
NetBSD 和 OpenBSD 是非常相似的内核并且共享。内核具有几乎相同的架构并共享许多相同的功能。两者的项目目标不同。NetBSD 试图成为*BSD 与不同处理器体系结构最兼容的。所有 *BSD 的首要目标是非常安全,这也意味着很少的功能。您应该查看新的Debian BSD。
“复杂性是安全的最大敌人”——布鲁斯·施奈尔