软件版本回滚,指项目放弃存在缺陷的新版本,退回使用上一个经过验证的旧版本。在台架测试、实车测试、OTA 灰度发布阶段都有可能触发该操作。很多团队把回滚当作简单的版本替换,直接切回旧的软件包,认为旧版本已经验证通过,不再开展额外分析与记录。但软件退版并不是简单复原,新版本执行过的配置变更、参数修改、安全状态,回滚之后有可能遗留残余状态,带来意料之外的安全隐患。
版本退版回滚场景容易出现几类合规短板。回滚没有作为正式变更来处理,不提交变更请求,不开展影响分析,没有审批记录。忽略新旧版本之间数据库、非易失性存储的参数残留,回滚之后旧软件读取新版本写入的参数,引发异常行为。回滚完成只做简单功能确认,不再复核对应的功能安全机制、网络安全防护逻辑是否正常生效。缺少回滚专项测试,直接沿用旧版本历史测试报告,没有考虑新旧版本交替带来的边界场景。回滚相关的决策、分析、测试记录没有归档,评估审核时拿不出对应证据。
版本回滚属于重大变更,不能当作应急临时操作游离在流程之外,需要纳入 ASPICE SUP.10 变更管理流程,同时完成功能安全与网络安全层面的影响研判。
触发回滚决策时,需要提交正式的变更请求,写明触发退版的缺陷背景、计划退回的目标基线版本。开展变更影响分析,除功能层面之外,重点研判非易失存储、持久化参数、安全密钥、审计日志在回滚之后的状态,评估是否会破坏原有安全目标,是否会产生新的攻击面。如果识别出残余参数会带来风险,需要明确清除参数的处置方案。
完成影响分析之后执行评审,由开发、测试、功能安全、网络安全相关人员共同确认回滚方案可行,审批通过再执行版本回滚操作。回滚之后不能直接复用旧版本全部历史测试结论,需要针对版本交替的边界场景设计专项验证,确认功能安全机制、故障检测逻辑、访问鉴权、加密防护可以正常工作。高安全等级相关组件,要重点确认没有被新版本遗留数据干扰。
全部回滚相关材料,包括变更请求、回滚影响分析、评审记录、专项验证报告统一作为工作产物归档,绑定回滚之后的版本基线。如果回滚之后依旧存在不可完全消除的残余风险,需要记录残余风险说明,完成评审归档。
内部预审阶段,可以把版本回滚场景纳入变更管理的检查范围,重点核查曾经发生过退版的项目基线,确认回滚动作具备完整的变更、分析、验证记录。
旧版本曾经通过验证,不代表回滚操作本身没有风险。将退版回滚正式纳入变更管控,补齐影响分析和专项验证,留存全套过程证据,才能够同时满足 ASPICE、ISO26262、ISO/SAE21434 三套标准的审核要求。
