ARTICLE · 1226223
等级保护建设:安全建设管理—外包软件开发
等级保护安全建设管理中的“外包软件开发”建设要求解析 ——基于信息系统建设逻辑理解软件供应链安全、第三方开发管理与源代码安全治理 |
在网络安全等级保护制度中,外包软件开发是安全建设管理的重要控制要求,也是近年来网络安全监管越来越关注的重点内容。等级保护要求:“应在软件交付前检测其中可能存在的恶意代码;应保证开发单位提供软件设计文档和使用指南;应保证开发单位提供软件源代码,并审查软件中可能存在的后门和隐蔽信道。”这一要求体现了现代网络安全治理中的软件供应链安全(Software Supply Chain Security)和第三方风险管理(Third-Party Risk Management)理念,即软件虽然由第三方开发,但网络安全责任始终属于责任单位,不能因为软件是外包开发,就将网络安全责任转移给开发商。
从信息系统建设的角度来看,目前绝大多数政务系统、企业业务系统、互联网平台都采用外包开发模式。责任单位提出业务需求,由软件开发公司负责系统设计、程序开发、测试部署以及后续维护。然而,软件代码掌握在第三方手中,如果缺乏有效监管,责任单位实际上无法确认系统内部是否存在安全漏洞、恶意代码、后门程序或供应链风险。因此,等级保护特别提出外包开发管理要求,其核心目的就是建立"开发在外部、控制在本单位、责任归责任单位"的管理机制。
近年来,大量重大网络安全事件均与软件供应链有关。SolarWinds供应链攻击、3CX软件供应链事件、MOVEit漏洞事件、XZ Utils后门事件等国际典型案例充分说明,攻击者越来越倾向于通过开发商、开源组件、更新程序或软件发布渠道植入恶意代码,再借助软件更新进入大量目标单位。因此,现代网络安全已经从保护信息系统本身,逐步发展为保护整个软件供应链生态。
等级保护首先要求,在软件交付前检测其中可能存在的恶意代码。这意味着责任单位不能直接将开发单位交付的软件部署到生产环境,而应建立交付验收机制,对软件开展全面安全检测。检测内容通常包括恶意代码扫描、病毒扫描、木马检测、WebShell检测、恶意脚本检测、数字签名验证、软件完整性校验以及软件成分分析(Software Composition Analysis,SCA)等,确保交付的软件不存在明显安全风险。
现代软件检测已经不仅局限于传统杀毒软件,而是逐步采用静态代码分析(SAST)、动态应用安全测试(DAST)、软件成分分析(SCA)、二进制分析、容器镜像扫描以及SBOM(Software Bill of Materials,软件物料清单)等技术,对软件进行更加全面的供应链安全分析。例如,通过SBOM可以识别系统使用了哪些第三方组件、哪些开源框架以及是否存在已知漏洞,为后续漏洞管理提供依据。
等级保护进一步要求,开发单位提供完整的软件设计文档和使用指南。这意味着外包交付的不应只有可执行程序,而应交付完整的软件资产。软件设计文档通常包括需求说明书、总体架构设计、详细设计、数据库设计、接口设计、安全设计、部署文档、配置说明、系统维护手册、应急恢复方案、升级说明以及用户操作指南等。
这些文档不仅方便后续运行维护,更重要的是保障责任单位真正掌握系统,而不是长期依赖开发商。一旦开发单位退出合作、停止服务甚至倒闭,责任单位仍能够依据完整文档开展自主维护、安全整改、漏洞修复和等级保护建设,实现系统可持续运行。
同时,设计文档也是等级保护测评、安全审计、风险评估以及监督检查的重要依据。监管部门越来越强调系统"可维护、可管理、可持续",而不是形成长期依赖厂商的"黑盒系统"。
等级保护最具中国特色的一项要求,是开发单位应提供软件源代码,并审查其中可能存在的后门和隐蔽信道。这体现了我国网络安全建设强调自主可控(Controllable)和可验证(Verifiable)的重要理念。
源代码是软件的根本。没有源代码,责任单位无法真正了解系统内部实现机制,也无法独立修复漏洞、开展代码审计、验证安全功能,更无法判断软件是否存在后门程序或恶意逻辑。因此,对于自主建设的重要业务系统、政务系统以及关键信息基础设施,合同中通常应明确约定源代码交付要求,并建立源代码托管(Source Code Escrow)或源代码资产管理制度。
现代代码审计不仅关注传统漏洞,更重点关注是否存在以下供应链安全风险:
- 是否存在硬编码账号、默认口令或调试接口;
- 是否存在隐藏管理账户或超级管理员后门;
- 是否存在未经授权的数据导出功能;
- 是否存在远程控制、远程下载或远程执行能力;
- 是否存在隐蔽通信通道(Covert Channel);
- 是否调用未经授权的外部服务器;
- 是否存在非法收集、传输用户数据行为;
- 是否存在时间触发、条件触发等隐藏逻辑;
- 是否集成来源不明的第三方SDK或开源组件;
- 是否存在长期未修复的高危漏洞。
其中,后门(Backdoor)通常指开发人员故意保留的隐藏访问方式,可绕过正常身份认证直接控制系统;隐蔽信道(Covert Channel)则是利用系统正常通信机制建立未授权的信息传输路径,使攻击者能够秘密交换数据、传递控制指令或泄露敏感信息。这类问题普通功能测试往往难以发现,因此必须通过源代码审计、逆向分析、安全测试以及运行监测等方式综合识别。
随着人工智能辅助开发和大量开源软件的广泛应用,软件供应链安全管理不断扩展。现代开发项目通常大量引用Maven、NPM、PyPI、Docker Hub等第三方组件,如果缺乏统一管理,可能引入大量未知风险。因此,责任单位不仅应要求开发单位交付源代码,还应交付第三方组件清单(SBOM)、依赖关系、许可证信息以及漏洞管理方案,确保整个软件供应链透明可控。
现代软件外包管理还强调全过程管理,而不仅是最终验收。责任单位应参与需求评审、安全设计评审、开发过程检查、安全测试、代码审计、上线验收以及后续漏洞修复,建立贯穿整个软件生命周期的监督机制,而不是等软件开发完成后再进行一次安全检查。
近年来,国家越来越强调供应链安全管理。《中华人民共和国网络安全法》《中华人民共和国数据安全法》《中华人民共和国关键信息基础设施安全保护条例》《网络产品安全漏洞管理规定》等法律法规均要求责任单位加强网络产品和软件供应链安全管理,落实主体责任。对于政务系统、重要行业信息系统以及关键信息基础设施,软件外包开发已经成为监督检查的重要内容。
国际标准同样高度关注软件供应链安全。美国NIST发布《Secure Software Development Framework(SSDF)》,要求软件开发全过程落实安全控制;NIST SP 800-161提出网络安全供应链风险管理(C-SCRM)框架;ISO/IEC 27036专门规范供应商关系安全管理;OWASP SAMM、OWASP ASVS以及微软SDL均强调第三方软件安全治理。近年来,美国发布的《Executive Order 14028》更进一步要求软件供应商提供SBOM,提高软件供应链透明度。
等级保护测评对于外包软件开发,并不仅检查是否签订开发合同,而是重点关注软件供应链安全管理是否真正建立。测评通常检查是否制定外包开发管理制度;是否签订网络安全和保密协议;是否要求交付设计文档和源代码;是否开展恶意代码检测;是否开展代码审计、安全测试和漏洞扫描;是否建立软件验收制度;是否建立版本管理制度;是否保留源代码托管、交付清单、测试报告、安全检测报告、漏洞整改记录以及验收资料等证据材料。
从信息系统建设全过程来看,外包软件开发管理贯穿整个生命周期。在采购阶段,应将安全要求写入招标文件和合同;开发阶段,应监督安全开发过程;测试阶段,应开展代码审计和安全测试;上线阶段,应完成恶意代码检测和安全验收;运行阶段,应持续开展漏洞管理、安全更新、版本管理和供应链风险监测;系统退役阶段,还应完成源代码归档、软件资产交接以及数据安全处置,实现软件供应链全过程安全管理。
因此,等级保护中的外包软件开发,本质上是在解决"如何确保第三方开发的软件真正安全、可信、可控、可持续维护,并建立责任单位能够掌握软件核心资产和供应链风险的管理体系"这一核心治理问题。一个成熟的外包软件开发管理体系,应形成合同约束、安全开发、文档交付、源代码交付、安全检测、代码审计、供应链透明、全过程监督、持续维护、责任可追溯的软件供应链安全治理机制,使责任单位真正掌握软件控制权,而不是仅拥有软件使用权,为等级保护制度、数据安全治理、关键信息基础设施保护以及数字化建设提供安全、可信、可持续的软件基础。
安全物理环境
安全通信网络
安全区域边界
安全计算环境
安全管理中心
安全管理制度
安全管理机构















































































