安全概况

EPPlus 是一个用于 Office Open XML 格式电子表格处理的 .NET类库。它作为一个包含多个.NET目标框架签名装配的NuGet包发布,旨在作为客户构建应用中的组件使用。

EPPlus 运行方式

EPPlus 没有自己的片长。它是一个库,加载到主机应用程序的进程中,并在该进程内完全执行。这对其安全特性产生了以下影响:

  • EPPlus 不运行在自己的进程中。它作为引用它的应用程序中的进程代码运行。
  • EPPlus 不管理自己的数据库或持久存储。任何文件或数据处理均由主机应用程序执行。
  • EPPlus 不会打网络电话。所有文件I/O都是本地的,位于主机进程。
  • EPPlus 没有认证或授权机制。它不识别用户、不发放凭证或控制访问。
  • EPPlus 没有自己的基础设施——没有服务器,没有云服务,没有托管端点。
  • 渗透测试仅在主机应用的背景下有意义,因为 EPPlus 不会暴露独立的运行时或网络表面。有意义的安全测试是在使用 EPPlus的主机应用层面进行的。

这对安全评估意味着什么

许多标准安全问卷是为SaaS产品或网络服务设计的。关于TLS配置、访问日志、用户配置、基础设施加固、运行时监控或数据存储的问题不适用于 EPPlus,因为 EPPlus 不提供这些表面。

与 EPPlus 相关的安全问题已在本站其他部分得到解答:

  • 发布完整性——请参见 代码签署部分 ,了解如何验证释放文件未被篡改。
  • 依赖完整性——请参阅 软件物料清单 ,了解每个版本的完整组件库存。
  • 已知漏洞——请参见 漏洞披露, 了解已披露的问题和我们的评估。
  • 报告与应对——请参阅我们的 漏洞披露政策 ,了解如何报告安全问题、协调披露流程、内部响应目标以及CRA第14条对CERT-SE和ENISA的报告义务。

安全开发实践

EPPlus 是在一套旨在及早发现缺陷——包括安全相关缺陷——的实践基础下开发的:

  • 所有代码更改均通过拉取请求进行,合并前必须由 EPPlus 团队的其他成员审核和批准。该过程是公开的,并发生在 EPPlus GitHub 仓库中。
  • 每一次变更都会经过数千次单元测试,作为我们CI/CD流水线的一部分,发布前完成。
  • 每次推送都会分析源代码 GitHub CodeQL。详情请参见 源代码扫描
  • 依赖关系会持续扫描已知漏洞。详情请参见 漏洞扫描

责任边界

由于 EPPlus 运行在主机应用的进程内,因此对整体安全态势的责任是共同承担的。 EPPlus Software AB 负责库中的内容——代码的正确性、发布的工件完整性以及及时处理报告的漏洞。主机应用程序负责库周围的一切——运行环境、访问用户以及传递到库中进行处理的数据。

主机应用职责

  • 在将文件传递给 EPPlus之前,决定文件是可信还是不可信。
  • 在进程层面应用资源限制(内存、CPU、处理时间)。
  • 认证和授权主机应用的用户。
  • 操作主机应用运行的基础设施。

EPPlus 软件公司职责

  • 图书馆代码本身的正确性和安全性。
  • 在文档限制内处理格式良好和格式错误的输入文件,避免沙箱化或超出主机应用的隔离。
  • 根据我们的 漏洞披露政策,及时修复报告的漏洞。
  • 通过代码签署和发布的SBOM维护供应链完整性。