------从Hybrid(混合部署)到Air-Gapped(完全网络隔离部署),如何根据安全边界选择合适的部署模式
开源软件已经成为现代软件开发的重要组成部分。与此同时,越来越多企业开始使用软件成分分析(Software Composition Analysis,SCA)工具识别软件中的开源组件,并持续管理相关的安全漏洞、许可证与知识产权风险。但对于汽车、航空航天、半导体、工业、医疗、关键基础设施等对源代码和知识产权保护要求较高的行业,部署 SCA 时经常会遇到一个问题:
"我们的源代码不能出网,是不是意味着 SCA 必须采用完全隔离部署?"
答案并不一定。"源代码不离开企业环境"与"整个 SCA 系统完全不与外部网络通信",实际上是两种不同的安全边界。企业真正需要考虑的,不是简单判断哪种架构"更安全",而是首先明确:哪些数据不能离开自己的安全域?
一、源码不出网,不等于整个 SCA 系统必须与互联网隔离
部分 SaaS SCA 产品需要将待分析代码或相关数据发送至第三方环境,而另外一些 SCA 架构则允许代码始终留在企业本地,仅通过经过处理的特征信息与外部知识库进行匹配。因此,对于有源代码保护要求的企业,可以大致形成三种不同的部署模式:
|---------------------|----------|---------------|-----------------------------|------------|------------------|
| 部署模式 | 原始源码 | Hash/特征信息 | Knowledge Base(知识库)**** | 外部网络连接 | 典型场景 |
| Cloud / SaaS云端部署 | 视具体架构而定 | 通常需要通信 | 云端 | 需要 | 普通商业软件研发 |
| Hybrid混合部署 | 保留在企业本地 | 与托管KB受控通信 | 云端/托管 | 需要 | 源码不能出网,但允许受控外部通信 |
| Air-Gapped 完全网络隔离部署 | 完全本地 | 完全本地 | 本地部署 | 不需要 | 整个研发/分析环境禁止外部通信 |
关键区别不是"代码在哪里扫描",而是安全边界在哪里结束。

图 1|三种部署方式的安全边界
这意味着:要求"源代码不上传第三方环境"的企业,并不天然需要 Air-Gapped部署。如果经过本地处理后的 Hash、Signature 或其他特征信息可以与外部托管 Knowledge Base(知识库) 进行受控通信,Hybrid 架构可能已经能够满足企业的代码保护要求,同时继续利用持续更新的 OSS 知识库。
二、什么时候才真正需要 Air-Gapped SCA?
FossID 将 Air-Gapped SCA 的主要价值归纳为增强安全性、定制化合规、完整控制软件开发生命周期、数据主权以及性能与可扩展性。尤其对于国防、政府、金融和关键基础设施等具有严格安全要求的行业,完全隔离可以显著减少外部网络带来的攻击和数据泄露风险。
1. 研发环境本身禁止任何外部网络通信
这是选择 Air-Gapped 最明确的场景。例如部分国防及军工研发、涉密项目、政府高安全等级系统、关键基础设施和高安全等级工业研发环境,其内部开发网络本身可能已经采用物理或逻辑隔离。这种情况下,问题已经不是"源代码能不能上传?",而是"这套研发环境能不能与互联网发生任何通信?"如果答案是否定的,那么依赖外部 Hosted Knowledge Base 的 Hybrid 架构自然无法满足要求,SCA 引擎和 Knowledge Base 都必须部署在隔离安全域内部。
2. 不仅源码,代码衍生信息同样禁止出网
有些企业允许源代码不上传,但经过单向处理后的代码特征可以与外部服务通信,这类企业可以考虑 Hybrid。但更严格的安全策略可能要求 Source Code、Hash / Signature、组件信息、SBOM、扫描结果、项目元数据全部不得离开安全域。此时,单纯做到"Source Code remains local"已经不够。Air-Gapped 保护的不只是源代码,而是整个分析环境与外部网络之间的隔离边界。
3. 企业受到严格的数据主权要求约束
对于受到数据主权、数据存储地域或跨境传输要求约束的组织,数据究竟存储在哪里、由谁处理,可能本身就是合规要求的一部分。Air-Gapped完全网络隔离的本地私有化(on-premise)架构可以使数据保持在组织指定的法律管辖或内部环境之内。此时需要考虑的不只是源码是否泄露,还包括分析数据、组件信息、SBOM、漏洞数据以及第三方是否能够接触这些信息。
4. 企业需要完全控制 SCA 基础设施
Air-Gapped部署的另一个特点是企业掌握整个 SCA 基础设施,包括 Server、Storage、Network、SCA Engine、Knowledge Base 和 Integration。企业可以按照自己的 SDLC、安全域和基础设施要求,将 SCA 与内部 Git、CI/CD、Build System、IDE、Issue Tracking、Compliance Workflow 等进行集成。
5. 存在特殊的性能与扩展需求
完全本地化意味着企业可以根据自身代码规模和分析负载设计 CPU、Memory、Storage 和 Analysis Node。对于超大型代码库、大量项目并行分析或特殊内网基础设施,可以针对实际环境进行性能优化。需要注意的是,Air-Gapped 并不天然一定比 Cloud/SaaS 更快;其优势在于企业可以根据自身环境进行针对性配置。
三、什么时候 Hybrid 可能反而更合理?
Air-Gapped部署提供了非常严格的安全边界,但并不意味着所有"源码不能出网"的企业都应该采用它。假设企业要求原始源代码绝对不能上传到第三方环境,但允许本地生成的 Hash、Signature 或其他必要特征与外部 Knowledge Base 进行受控通信,那么 Hybrid 往往可以在以下三个方面取得更好的平衡:
**· 源代码保护:**原始代码始终保留在企业内部环境。
**· Knowledge Base 时效性:**可以持续利用托管 Knowledge Base 中更新的 OSS Components、Licenses 和 Vulnerabilities。
**· 运维复杂度:**企业无需完整承担庞大的本地 OSS Knowledge Base 的持续维护工作。
Hybrid 并不是"安全性较低的 Air-Gapped",而是针对另一种安全边界设计的部署架构。
它解决的是:如何在源代码保护与外部知识库持续更新之间取得平衡。
四、Air-Gapped部署的代价:Knowledge Base 不能"断粮"
SCA的有效性高度依赖 Knowledge Base,因为新的开源项目、组件版本、许可证信息、CVE及漏洞数据每天都在不断产生和变化。Cloud/Hosted Knowledge Base可以持续更新这些信息,而完全隔离环境不能直接访问互联网。因此Air-Gapped SCA必须建立一套受控的知识库更新机制。

图2|Air-Gapped 并不意味着"不需要更新"
因此,Air-Gapped 部署不是"部署以后永远不用更新"的同义词,而是所有外部数据交换都必须通过企业定义的受控机制完成。企业需要承担额外的KB 更新、系统升级、基础设施、备份、维护和安全管理成本。
五、Hybrid 还是 Air-Gapped?先问自己三个问题
Q1 :原始源代码是否允许离开企业环境?
如果允许,可以根据具体安全要求考虑 Cloud/SaaS 等架构;如果不允许,继续 Q2。
Q2:经过本地处理的 Hash/Signature 等特征信息,是否允许与外部 Knowledge Base 进行受控通信?
如果允许,Hybrid 通常值得优先评估;如果不允许,继续 Q3。
Q3 :研发和 SCA 分析环境是否要求与互联网及其他外部系统完全隔离?
如果是,Air-Gapped 部署通常是更符合安全边界的架构。

图3|部署模式快速判断
六、安全边界,而不是"安全等级",才是选型的关键
Hybrid 与 Air-Gapped 部署最好不要理解成"普通版 → 高安全版",而应该理解成针对不同安全边界的两种架构选择。
如果企业真正的要求是"我的源代码绝对不能离开企业环境",那么能够保持源码本地、同时利用持续更新的托管 Knowledge Base 的 Hybrid 架构可能已经能够满足需求,而且通常具有更低的基础设施和知识库维护成本。
但如果要求进一步提高到"不仅源码不能出网,任何项目相关信息都不能离开安全域,而且研发环境本身禁止与外部网络通信",那么完整的 Air-Gapped SCA 才真正体现其价值。
因此,SCA 部署选型真正应该回答的不是"哪一种部署模式最安全?",而是"我们的安全边界究竟在哪里?"只有先回答这个问题,才能在源代码安全、数据隔离、知识库时效性、部署成本和长期运维复杂度之间找到真正适合自己的 SCA 架构。
七、灵活部署:根据企业安全边界选择合适的FossID架构
不同企业对于源代码、分析数据和外部网络通信的安全要求并不相同,因此SCA部署也很难采用单一模式覆盖所有场景。FossID支持灵活的部署架构,可以根据企业的安全策略、IT环境和运维要求选择不同模式。
对于允许使用云端服务的环境,可以采用云端/SaaS模式;对于要求源代码始终保留在企业内部、但允许经过处理的代码特征与外部知识库进行受控通信的企业,可以采用Hybrid模式,兼顾代码保护与Knowledge Base的持续更新;而对于研发网络完全隔离、任何项目相关信息均不得离开安全域的环境,则可以采用Air-Gapped完全隔离部署,将分析引擎和Knowledge Base全部部署在客户内部。
因此,FossID的部署灵活性并不是简单提供不同"安全等级"的产品版本,而是让企业能够根据自身的安全边界、数据策略和运维条件选择适合的SCA架构,在源代码保护、知识库时效性和部署维护成本之间取得平衡。
| 企业安全边界 | 适合的FossID部署方式 | 核心特点 |
|---|---|---|
| 允许使用云端服务 | Cloud / SaaS云端部署 | 部署和维护相对简单 |
| 源码不能出网,但允许受控KB通信 | Hybrid混合部署 | 源码本地 + Hosted KB |
| 任何项目数据均不能离开隔离域 | Air-Gapped完全网络隔离 | Engine+ KB全部本地 |
参考资料
FossID:5 Reasons You Should Consider an Air-Gapped Deployment of SCA Tools
https://fossid.com/articles/5-reasons-air-gapped-software-composition-analysis/