保护 BTCPay 服务器的安全:为什么单独更新到 2.4.4 并不能保护您的闪电节点
核心要点
- 因此,任何在某个时候通过自己的反向代理暴露服务器 LND 接口的人都有两项工作:更新并再次取消该访问权限。
- 受影响的服务器明确是 BTCPay 服务器在 8 月份默认禁用此访问权限后手动重新打开此访问权限的服务器。
- 如果需要,请通过提供的设置而不是通过您自己的规则再次设置远程访问。

开门见山,因为正是这个问题让您来到这里:BTCPay Server 2.4.4 的更新关闭了到您的闪电节点的公共默认路由。它不会删除您自己构建的路线。因此,任何在某个时候通过自己的反向代理暴露服务器 LND 接口的人都有两项工作:更新并再次取消该访问权限。 BTCPay Server 背后的项目在 2026 年 9 月 8 日的公告中准确地说了这一点。触发事件并不是新的盗窃事件。该项目正在看到自动程序探测已手动重新打开此访问的服务器。到目前为止,还没有关于这条路线成功接管的报道,该项目也没有与八月事件背后的人有任何联系。这就是好消息:有一个窗口可以在不造成损害的情况下解决问题。对于作为持有者或商人的您来说,这比服务器细节更重要。自托管支付服务器是将传入的比特币支付、闪电节点的密钥和您的工作余额汇集在一起的点。失去那里的访问权限,你会失去真正的金钱,而不是配置。这就提出了第二个问题:挂在互联网上的节点上真正需要多少余额,以及哪些内容属于冷存储?如果您还没有划清界限,我们的硬件钱包比较是比任何进一步的代理规则更好的起点。现在正在发生的事情:机器人正在调用不受保护的 LND 端点 该项目公开描述了该模式。自动化程序重复调用 LND 编程接口的一个特定路径:用于更改钱包密码的端点 /lnd-rest/btc/v1/changepassword 。受影响的服务器明确是 BTCPay 服务器在 8 月份默认禁用此访问权限后手动重新打开此访问权限的服务器。使这一点变得微妙的一点是:只要 LND 钱包仍然锁定,端点就不需要身份验证。这并不是狭义上的bug,而是界面设计的问题。锁定的钱包尚无法对任何人进行身份验证,因此解锁和更改密码的路径必须无需凭据即可访问。只要该路由只能在服务器内部访问,它就是无害的。只有将其发布到开放互联网上,它才会成为一种进入方式。Macaroon、LND 和反向代理:其余三个术语取决于 LND,它是闪电网络的常见实现之一,闪电网络是闪电网络的支付层,可以在几秒钟内以零点几分钱的价格完成比特币转账。如果您的 BTCPay 服务器接受闪电付款,LND 几乎总是位于底层。马卡龙是 LND 允许命令的凭证。将其视为具有分级权限的密钥文件。管理马卡龙是主密钥:谁持有它,谁就控制了节点的钱包及其支付渠道。反向代理是从互联网获取传入请求并将其传递到正确的内部服务的服务器进程。 BTCPay 服务器附带了自己的服务器之一。许多运营商在其旁边或前面设置了第二个节点,例如让移动钱包在他们外出时与他们的节点通信。自建的转发规则正是这个目的。为什么 LND 重启后的窗口会存在 这个序列并不引人注目,但这正是它有效的原因。 LND 每次重启后,钱包都会首先被锁定。 BTCPay 服务器有一个内部解锁功能,可以自动提供密码。从服务启动到解锁生效之间有一个短暂的时间间隔。如果在此期间可以从开放互联网访问该接口,则攻击者的速度可能会更快。该项目清醒地描述了后果:无论谁在那一刻提交了已知密码,都可以设置一个新密码,并让 LND 向他们颁发一个控制节点的管理杏仁饼。从此万能钥匙就属于别人了。过去的一个细节让情况变得更糟:旧的 BTCPay 安装使用共享的默认密码创建了 LND 钱包。所以没什么可猜测的。任何知道默认情况的人只需要在正确的时间敲门即可。攻击路线不是永久状态,而是一个间隙:LND 重新启动和 BTCPay 服务器自动解锁之间的短暂窗口。八月的盗窃案和九月的调查是两起独立的事件,这种区别很重要,因为德语报道在八月停止了,这两件事很容易混淆为一。较早的事件,2026 年 8 月 7 日。该项目发布了版本 2.4.2 的安全公告。所有早期版本都包含一个漏洞,未经身份验证的远程攻击者可以通过该漏洞检索 LND 的蛋白杏仁饼干文件。该项目明确确认该漏洞已被利用,用户受到影响并且资金被耗尽。 BTCPay Server自有链上钱包不在本次覆盖范围内,包括热门钱包;相比之下,LND 链上钱包中的余额属于受影响的节点。该项目和支持者后来提供了回收比特币 10% 的奖励,上限为 3 个比特币,当时约为 19 万美元。新事件,2026 年 9 月 8 日。到目前为止,这里还没有损坏的报告。它涉及机器人寻找进入途径以及该项目采取的预防措施。将这两种说法混为一谈是一种没有任何消息来源支持的损失。
根据该项目自己的说法,该项目从两个方面解决了上述问题。第一:结束共享密码。新的 LND 映像不再创建具有共享默认密码的钱包。每个新生成的钱包都有自己的随机密码。仍保留旧默认值的现有钱包会在启动时自动迁移。这消除了依赖先验知识的攻击部分。第二:网络边缘阻塞。 Docker 设置会阻止在捆绑的反向代理本身中创建和解锁钱包的未经身份验证的路由。通过公共默认路径,重新启动窗口现已关闭。 2.4.4 带来了可能影响您操作的进一步更改,即使它们与攻击无关。结账时的 NFC 支付现在默认处于关闭状态,必须在商店设置中重新打开。没有金额的发票默认会被冻结。通过连接到计算机的读卡器设置 Boltcards 已经不复存在;相反,BTCPay 服务器会打开相应的应用程序。由于重大更改,任何使用 WHMCS 集成的人都需要该插件的 4.0.0 版本,以及新生成的 API 密钥。受邀请的商店用户必须先接受邀请。并且销售点模块不再允许每个请求有一个单独的通知地址;模块中存储的内容适用。标准 Docker 设置同时实现了更大的飞跃:Bitcoin Core 从 29.2 升至 31.1,LND 升至 0.21.3-beta。据该项目称,在 Knots 遵循一条从主链分离的链后,对比特币 Knots 的支持被取消。任何有意运行 Knots 的人都应该在更新之前而不是之后阅读该内容。最重要的是与主机的绑定更紧密:应用程序容器现在只获取一小部分允许的维护命令的密钥,而不是广泛的 SSH 访问。这是核心,也是该项目在 8 月份已经写过的一句话:BTCPay Server 的更新不会关闭您单独管理的访问路由。您自己的反向代理中的转发规则、路由器上的转发端口、您自己设置的 Tor 服务 - 更新不知道这些,也无法将它们收回。因此,该项目的指示是明确的:不要通过您自己的反向代理手动将 LND 接口公开到互联网。如果您已经这样做了,请删除该访问权限并更新您的服务器。两者都按该顺序阅读,而不是作为替代。任何在 8 月份已经通过自己的途径暴露的人都应该额外轮换其节点的凭据。更新到2.4.2自动重新生成标准安装的杏仁饼;这不适用于自我管理路径。您可以从 8 月底的 Core Lightning 漏洞中了解到相同的逻辑,我们在对 Core Lightning 漏洞的分析中对此进行了拆解:危险的假设从来不是漏洞本身,而是相信版本更新可以处理接下来的所有事情。外部闪电网络访问又回来了,但只有明确的选择加入对于许多运营商来说,八月份的关闭是痛苦的,因为它也删除了合法的路线:在你外出时,像 Zeus 这样的移动钱包操作你自己的节点。该项目从未对此提出异议,并于 9 月份宣布有序推进。目前的情况是:9 月 11 日合并了路由更改,并提供了支持的远程访问选项,而 LND 和 Core Lightning 的接口默认保持关闭状态。这就是与旧情况的决定性区别:访问是存在的,但你必须故意将其打开,然后它会沿着项目维护的路径运行,而不是沿着你自己的手工运行。实际上,这意味着:如果您需要远程访问,请使用提供的交换机并停止构建您自己的转发规则。并借此机会检查您手机上的哪个钱包应该有权访问您的节点。下面链接的软件钱包比较中列出了哪些软件钱包支持哪些连接类型;并非所有这些都具有相同的权限级别,并且使用受限制的杏仁饼进行远程访问比使用主密钥进行远程访问要无害得多。窗口保持打开状态的时间取决于您的硬件和通道数据库的大小。你无法围绕它制定计划。操作员清单:您今天的工作内容 按顺序,无论您是否感到受到影响:建立您的版本。正在运行的版本显示在管理区域的页脚中。如果低于 2.4.4,那就是你的第一步。更新。在 Docker 安装中,通过服务器设置 › 维护 › 更新。在按您通常的路线以不同方式管理的安装上。寻找您自己的转发规则。检查您的代理配置并观察任何到达 /lnd-rest/ 以下内容到互联网的规则。想想路由器上的转发端口以及您自己设置的 Tor 服务。删除您找到的所有路线。不要注释掉它们并将它们放在那里;将它们取出并重新加载服务。如果您的节点可通过自我管理路径访问,则轮换凭证。生成新的杏仁饼,使旧的杏仁饼失效,再次在移动钱包中建立存储的连接。如果需要,请通过提供的设置而不是通过您自己的规则再次设置远程访问。如果您没有时间正确执行第三点和第四点,八月份通知中的建议在精神上仍然适用:无法到达的节点也无法探测。几个小时没有远程访问比周末开放端点要好。
