软件包签名
编辑软件包签名编辑
Elastic 发布的所有集成软件包都具有软件包签名,可防止恶意攻击者篡改软件包内容。安装 Elastic 集成时,Kibana 会下载软件包并根据公钥验证软件包签名。如果软件包未经验证,您可以选择强制安装。但是,强烈建议您避免安装未经验证的软件包。
安装未经验证的软件包,即表示您承认承担所涉及的任何风险。
强制安装未经验证的软件包
- 使用集成 UI 时,系统会提示您确认是否要安装未经验证的集成。单击 仍然安装 以强制安装。
- 使用舰队 API 时,如果您尝试安装未经验证的软件包,您将看到一个 400 响应代码,其中包含验证失败消息。要强制安装,请设置 URL 参数
ignoreUnverified=true
。有关更多信息,请参阅 Kibana 舰队 API。
安装后,未经验证的集成会在集成 UI 的 已安装的集成 选项卡上标记出来。
为什么需要验证软件包?编辑
集成软件包包含指令(例如 ILM 策略、转换和映射),这些指令可以显著修改 Elasticsearch 索引的结构。仅依靠 HTTPS DNS 名称验证来证明软件包的来源不是一种安全的做法。坚定的攻击者可以伪造证书并提供旨在破坏目标的软件包。
安装经过验证的软件包可确保您的集成软件未被损坏或以其他方式篡改。
软件包未经验证意味着什么?编辑
以下是在安装过程中集成软件包验证失败的一些情况
- Elastic 服务器上的软件包 zip 文件已被篡改。
- 用户被恶意重定向到虚假的 Elastic 软件包注册表。
- 公共 Elastic 密钥已被泄露,Elastic 已使用更新后的密钥对软件包进行了签名。
以下是在安装后集成可能被标记为未经验证的一些原因
- 集成软件包验证失败,但被强制安装。
- 集成软件包是在舰队添加对软件包签名验证的支持之前安装的。
如果 Elastic 密钥将来发生变化怎么办?编辑
如果 Elastic 签名密钥将来发生变化(这种情况不太可能发生),则任何经过验证的集成软件包将继续显示为已验证,直到安装了新软件包或升级了现有软件包。如果发生这种情况,您可以在 kibana.yml
配置文件中设置 xpack.fleet.packageVerification.gpgKeyPath
设置以使用新密钥。