联网, nextcloud, 安全

下一朵云,安全性分析

没有安全性就没有隐私。

首先,我想让所有人有点害怕,以使人们欣赏此陈述的程度。

如打开该帖子的图所示,那里有成千上万个易受攻击的Owncloud / 下一朵云实例。通过在IP扫描期间尝试公共URL路径来检测这些漏洞,将使许多人感到惊讶。

但是让’从NextCloud创作者本人那里听到了这一切

当然,要保证您的系统安全和更新是一项艰巨的工作,但是我们必须认为我们有可能暴露我们最私人的数据。

让 our analysis begin.

下一朵云Pi

归根结底,NextCloud是 网络服务 需要在 系统。这意味着系统和Web应用程序都需要安全。我会用 下一朵云Pi 以示例为例,但是许多其他方面也适用于其他安装。

让’s see how 下一朵云Pi 处理这个

  • 无人参与的安全更新:NextCloudPi自动应用最新的安全补丁。
  • 失败2禁 暴力保护:不仅适用于NextCloud,还适用于SSH
  • 默认情况下为HTTPS:任何使用HTTP的尝试都会重定向到HTTPS
  • HTTP严格传输安全性(HSTS)
  • 让’s Encrypt CA signed 可信证书.
  • ModSecurity WAF:配置为可与NextCloud一起使用的Web应用程序防火墙
  • TLSv1.2:NextCloudPi仅接受现代加密协议。
  • 强向前保密性:基于ECDH的CipherSuites。

我们将在最后一节中进一步解释这些内容。

下一朵云

从NextCloud开发人员的角度来看,他们已经做了很多工作。

他们会尽可能使用安全配置。我们可以看到他们如何尝试在代码的不同位置保护用户。以后再说。

他们还提供了非常好的文档 强化系统,并在有可用更新时警告用户,并在管理页面中执行确实有用的检查。

正如他们在视频中所承认的那样,他们还有待改进的一件事就是能够像WordPress一样,为NC推出自动安全更新。这是具有挑战性的,但如果做得正确,肯定会帮助解决许多过时安装的当前情况。

我了解那些人。这是我第三次升级个人云,这确实很耗时。这是我选择NextCloudPi的原因之一,因为我不仅为自己而且为其他人自动化了该过程。

NC 11还添加了其他出色的安全功能,例如两步验证,CSRF保护,内置的蛮力保护等。您可以在这里签出 文章.

有关漏洞列表,您可以检查 这个数据库.

测试工具

下一朵云安全扫描

但是,并非一切都在开发人员的控制之下。的 系统 例如,NC不在哪里运行,这就是为什么他们提供在线服务的原因,您可以在其中评估NC安装的脆弱性。

下一朵云安全扫描

我复活了一个旧的OwnCloud 8实例,并将其与基于NC 11.0.2的最新NextCloudPi进行了比较。让’查看结果,我们将在最后一节中解释一些漏洞。

OwnCloud 8.1.3
OwnCloud 8.3安全性

OwnCloud 8.3安全性
下一朵云Pi 11.0.2
下一朵云Pi 11.0.2
下一朵云Pi 11.0.2

做得好,数控开发人员!

SSL实验室

SSL实验室 提供了惊人的免费服务来测试服务器的安全性。

SSL实验室测试中的A +

下一朵云Pi通过飞扬的色彩!在上一节中,我们将讨论一些漏洞和保护。

通过指定仅允许TLSv1.2,我们可以进一步加强安全性。我们可以通过使用以下配置行来实现

SSLProtocol -all +TLSv1.2
仅TLSv1.2

这意味着较旧的浏览器将无法访问我们的云。我认为这很好,因为我们不仅受益于较小的攻击面,不仅针对已知漏洞,而且还针对可以在旧协议中发现的潜在新漏洞,从中受益。

这里很多红色

如果这不是您想要的,例如因为您的手机是Android<4.4,可以保留为

SSLProtocol all -SSLv2 -SSLv3
仅禁用SSL

与旧客户端的兼容性现在已大大扩展。

更绿色,但这更好吗?

最后,我们可以看到系统中还有哪些其他漏洞

细节
其他工具

这些是其他免费服务,您可以在其中评估网站的安全性。

//securityheaders.io/
//observatory.mozilla.org/

细节

如果您想更多地了解这篇文章中出现的一些怪异的首字母缩写词和概念,请进行简要说明。

安全头

首先,让’看一下我们与安全性相关的NextCloud实例的响应头

  • 严格的运输安全,缩写 HSTS,是一种安全机制,服务器通过该机制告知浏览器只能使用HTTPS。如果证书可以,浏览器将拒绝连接’不会受到信任或通过普通HTTP进行信任,它将自动将使用HTTP的任何链接转换为HTTPS。
  • 如本节所述,通过使用ModSecurity隐藏了服务器签名。 发布.
  • X-Frame-Options:“SAMEORIGIN”,指定只能渲染源自云的帧。这是针对 点击劫持.
  • X-XSS保护:“1; mode=block”,将Internet Explorer配置为阻止任何XSS尝试,这意味着仅执行云中托管的脚本。
  • X内容类型选项:“nosniff”,会禁用Internet Explorer中的MIME类型嗅探,这是一项不安全的功能,可能会受到特制资源下载的攻击。
  • X允许的跨域策略:“none”,则不允许将您的内容嵌入其他媒体,例如PDF和Adobe Flash。服务器将拒绝此类请求。
  • 内容安全政策也称为 CSP是一种机制,服务器通过该机制指示浏览器将要提供什么类型的数据。客户将这些白名单列入白名单,并拒绝所有其他白名单。
  • X-Firefox-Spdy:“h2”,表示HTTP / 2,其中 实际上 仅适用于HTTPS,因为主要的浏览器决定仅通过HTTPS提供HTTP / 2。
Firefox由于HSTS拒绝连接不安全

这些安全标头中的大多数都是由NextCloud放置的,只有HSTS,隐藏服务器签名并使用HTTP / 2是NextCloudPi服务器配置的一部分。

CSRF

此外,NextCloud还可以防止跨站点请求伪造(CSRF)攻击。像这样的地方 lib / base.php 核心/ajax/update.php 提供相同的站点cookie并检查请求的有效性。

CSRF是利用您已登录且NC信任您这一事实的攻击,例如,它们可以在 图片另一个 签入 另一个 在您的系统上执行经过身份验证的操作的网站,例如更改管理员密码。

一旦打开选项卡,浏览器尝试在该URL上加载图像,恶意操作就会触发,因为您在同一浏览器中有一个活动会话cookie。

防止这种情况的最直接方法是创建随机会话令牌,并在每个请求中都需要它。恶意选项卡中的代码无法识别,因为合法Web服务器未提供该代码。

TLS后备攻击

当今网络使用的加密协议是TLS。 TLS替代了较早的SSL,后者已有20多年的历史,并且仍在某些客户端上使用。

我会引用这个优秀的 资源

SSL / TLS家族中有五种协议:SSL v2,SSL v3,TLS v1.0,TLS v1.1和TLS v1.2:

SSL v2不安全,因此不能使用。该协议版本太糟糕了,即使它们位于完全不同的服务器上,也可用于攻击具有相同名称的RSA密钥和站点(DROWN攻击)。

SSL v3与HTTP(POODLE攻击)一起使用时不安全,而与其他协议一起使用时则较弱。它也已过时,不应使用。

TLS v1.0也是不应该使用的旧协议’t be used, but it’在实践中通常仍是必需的。它的主要缺点(BEAST)在现代浏览器中已得到缓解,但其他问题仍然存在。

TLS v1.1和v1.2都没有已知的安全问题,但是只有v1.2提供了现代加密算法。

TLS v1.2应该是您的主要协议,因为它’是唯一提供现代身份验证加密的版本(也称为AEAD)。如果你不这样做’目前不支持TLS v1.2,因此缺乏安全性。

TLS回退攻击发生在 信息技术部 欺骗浏览器和服务器使用旧版 不安全的 协议以利用它,因此它可以绕过TLSv1.2。

它是一个 降级 浏览器在协议协商中不严格并允许易受攻击的协议通过而引起的攻击。有很好的信息 这个 页,但总和为“浏览器决定他们更喜欢呈现所有页面,而不是拒绝使用有问题的服务器”。这是浏览器大战。

处理这种情况的机制是TLS后备信令密码套件值(SCSV),它允许浏览器向服务器发出信号,表明它确实同时支持最新协议,并表示它支持旧套件,以便旧的越野车服务器接受它。能够读取此额外信息的现代服务器将因此采取行动,并拒绝协议降级。

有许多基于此的重要攻击,例如

您可以看到SSL实验室报告中的NextCloudPi受到了保护,因为NextCloudPi附带的openSSL版本支持TLS_FALLBACK_SCSV。

这很容易测试。让’尝试使用TLSv1.1进行连接,但是使用TLS_FALLBACK_SCSV机制添加了我们支持TLSv1.2的额外信息。

$ openssl s_client -servername 192.168.0.128 -connect 192.168.0.128:443. -fallback_scsv -tls1_1
CONNECTED(00000003)
140092628760216:error:1409443E:SSL routines:ssl3_read_bytes:tlsv1 alert 在 appropriate fallback:s3_pkt.c:1493:SSL alert number 86
140092628760216:error:1409E0E5:SSL routines:ssl3_write_bytes:ssl handshake failure:s3_pkt.c:659:

我们可以看到服务器如何拒绝非法降级。

我建议的另一个选项是完全禁用SSL2和SSL3。就像我之前说过的那样,您的个人云没有足够多的妄想症。

前向保密

这将很长时间才能正确解释,但让’s只是说,即使有人无法立即解密您的通信,也不表示他们无法存储通信,而是等到他们以某种方式能够掌握您的加密密钥然后能够读取存储的内容。

如果您的关键协商协议提供了针对这种情况的保护,则据说可以提供 前向保密.

密钥协商的经典方法是RSA密钥交换机制,它不提供前向保密性,但由于它需要较少的CPU能力,因此仍被大多数站点使用。服务器应该’如果私有密钥遭到破坏,则与该服务器的所有存储通信都将立即可用。

基于 迪菲·赫尔曼 密钥交换机制的确提供了前向保密性,因为对密钥进行了协商,使用和处置。一次性使用一次性钥匙。

下一朵云Pi使用基于DH密钥交换的密码套件,这就是为什么测试结果中的套件首先要以 TLS_ECDHE_.

DH代表Diffie-Hellman。 EC代表 椭圆曲线密码学,这是一种数学方法,仅用于使用本质上更强的键(对于破坏它所需的相同计算能力,需要更少的位)。放在一起,你会得到 椭圆曲线Diffie Hellman交流.

结论

因此,希望到现在为止您已经掌握了自托管数据的安全含义。这篇文章中的TL; DR外卖消息是

使用NextCloudPi,激活所有安全性附加功能,并在收到警报时更新NextCloud

总是有很多事情要做,但这是我们目前所坐的地方。

建议和更正是非常欢迎的。

参考文献

//www.perpetual-beta.org/weblog/security-headers.html

//danielnixon.org/http-security-headers/

//www.html5rocks.com/en/tutorials/security/content-security-policy/

HTTP严格传输安全性(HSTS)–更好的应用程序安全性

作者: 纳乔帕克

谦虚地分享我认为有用的东西 [ 的github 码头工人hub ]

10 评论s

  1. 谢谢您提供的图片,它工作得非常流畅,非常完美。安全插件也非常节省时间。
    我并不是Linux专业人士,所以我不得不问您一些有关安全性的问题。

    我安装了您的映像,但没有任何改动。如果更改数据库用户和密码或禁用pi用户,是否会有问题?

    1. 完全禁用pi用户没有问题。我自己也做ðŸ™,

      如果更改数据库凭据,则必须在/var/www/nextcloud/config/config.php中复制它们。

      'dbuser' => 'ncadmin',
      'dbpassword' => 'ownyourbits',
      

      干杯,

    1. 谢谢你的建议。

      这也是他们在Nextcloudbox Snap中执行此操作的方式,因此我已经想到了这一点。

      它在以后的改进列表中,但是我需要进行一些深远的更改以实现它。

      并不是很关键,因为目前他们可以访问数据库已经为时已晚,但可以肯定的是这是一个不错的改进。

      谢谢!我们需要尽可能多的眼睛看这些东西。

发表评论

您的电子邮件地址不会被公开。 必需的地方已做标记 *