岑鹏瑞 吴玲达 于荣欢 杨 超
(装备学院复杂电子系统仿真实验室 北京 101416)
军用软件库安全管理架构研究*
岑鹏瑞吴玲达于荣欢杨超
(装备学院复杂电子系统仿真实验室北京101416)
分析了我军军用软件管理需求,总结了现阶段软件管理平台架构的一般形式和Apt软件管理机制。结合军用软件三库管理标准对军用软件库软件包分发端进行规划,同时根据军用软件库安全管理的具体需求对军用软件库安全管理架构展开研究,提出了军用软件库安全管理架构层次模型并结合我军体制编成现状对军用软件库服务的拓扑结构进行规划。该架构层次模型可用于从宏观、系统、整体的角度指导我军军用软件库的设计、部署,在保障我军众多军用软件管理分发便利性的同时提高军用软件的安全性上具有现实指导意义。
军用软件管理; 机制; 安全; 架构; 层次模型
Class NumberTP311.5
高技术武器装备是打赢信息化战争的重要保证[1],军用软件作为高技术武器装备的灵魂,是指运行在军用计算机之上的、适合军事领域应用的、能够完成特定功能的计算机软件,既包括直接用于军事服务的民用软件,也包括为了特定军事目的而专门开发的软件[2~3],在信息化战争中发挥着举足轻重的作用。随着军用软件受重视程度不断提高,各国军用软件无论是在数量上还是在质量上都有了进一步发展。在激烈的竞赛中,美国仍处于领先地位,美国的全球指挥控制系统软件2003年升级到6.0版本,国防信息基础设施公共操作环境2008年发展到5.0版本[4]。众多的军用软件,不管是对军用软件的有效管理还是安全管理都提出了严峻挑战,能够高效安全的管理、分发军用软件对军用软件功能的完善、军用软件生态环境的建设和国产平台在军内的推广应用具有重要意义。
随着计算机技术的发展和普及,软件管理形式由复杂繁琐的手动管理方式向自动化、规范化的平台管理模式过度,特别是当需要管理的软件数量众多时,采用平台管理模式能够极大提高软件管理过程中的便利性,在实际应用中发挥着不可替代的作用。当前,民用领域典型的软件库有操作系统发行商维护的Windows应用商店、苹果的Mac App Store、开源操作系统社区维护的软件库以及第三方应用软件公司维护的如360软件管家、腾讯软件管家和百度软件管理等管家类软件库,极大地方便了民用软件使用过程中的软件获取与安装等,给用户提供了更好的体验,软件库在民用领域软件管理过程中的广泛流行,满足了用户对软件使用的需求。但是面对后续发展起来的众多军用软件的管理,由于军用软件安全保密性上的特殊需求,我军对军用软件的管理还停留在人工分发的初级阶段。人工分发方式虽然能够确保军用软件分发过程中软件的安全性,但对军用软件分发的便利性及军用软件的全面推广会是瓶颈。受民用软件管理思想的启发,结合军用软件的发展特点、需求,能否构建军用软件库来为军用软件的管理、分发提供支持,将对提升我军战斗力产生促进作用。考虑到军用软件具有严格的安全性需求,这一点光靠民用软件库对软件包采用的完整性验证、数字签名等软件保护手段无法满足,所以需要结合民用软件库管理模式,从软件存储、获取、传输、验证等方面综合考虑,对军用软件库安全管理架构展开研究很有必要,以便在软件库安全管理架构的系统性指导下进一步设计开发能够满足实际应用需求的军用软件库。我军军用软件在长期发展的过程中,呈现出长生命周期、多版本、安全性要求高及软件版本与武器装备型号严格对应等特点,具体表现如下:
1) 长生命周期:武器装备更新换代频繁,新旧装备并存,装备种类多、服役年限长,这里所说的长生命周期是指军用软件的服役周期长;
2) 多版本:武器装备更新换代频繁,装备种类多,不同装备具有与之适应的控制软件,装备种类多造成了军用软件的多版本;
3) 高安全性:军用软件使用上具有特殊性,涉及的数据、完成的任务具有重要价值,直接关系到战争的胜败、国家的安全等;
4) 软件版本与武器装备型号严格对应:软件通过控制硬件按照特定的机制完成相应的功能,如果软件型号与武器装备型号不符,必然会在使用中产生严重事故。
在军用软件库安全管理架构的构建中,保证软件包安全的同时还需要与军用软件包呈现的上述特点相适应。
2.1软件管理平台架构
一个能够稳定运行的系统由很多软件组成,其中内核是很小的一部分,将所有软件有效的组织起来形成一个高效稳定的系统更是一个复杂的任务,军用操作系统也不例外。从20世纪90年代初第一个基于Linux内核的操作系统诞生始[5],这样一个系统即使对有经验的开发者能够熟练使用和维护也面临极大的挑战,软件包管理系统的出现使得普通用户管理和更新软件成为可能。操作系统应用软件管理的一般形式通常采用集中式的软件库机制,将软件分门别类后存放在软件库(软件池)中,进行有效的组织管理,将软件库置于各镜像服务器中并通过同步技术使服务器中软件库保持基本一致从而为分布在不同地域的使用者择优提供软件获取服务,其原理如图1所示。
图1 操作系统应用软件管理原理图
图2 开源软件库基本框架
操作系统应用软件管理系统采用客户机和服务器(C/S)架构[6],软件管理系统由客户端的软件包管理部分和服务器端的软件包分发部分组成,二者通过协调配合,解决了软件包的分发、安装等问题。服务器端软件包分发部分通过建立维护软件包分发存储池和软件包索引来为客户端获取软件包提供服务,需要由专门的管理人员进行维护;客户端软件包管理部分则通过特定机制在服务器端寻找到所需软件包并对包进行下载、格式解析、安装等相关操作,开源软件库服务基本框架如图2所示。
2.2Apt软件管理机制
Apt作为软件管理过程中典型的客户/服务器系统,在开源操作系统软件管理中占有重要地位[7]。图3对Apt软件管理机制进行了总结,与开源软件库基本框架相适应,Apt作为典型的软件管理工具主要包括服务器端索引文件的生成和客户端相关信息的存储两部分,各组成部分介绍如下:
1) 客户端
· 镜像站点地址:由于网络环境条件的限制,用户不可能从所有镜像站点获取软件包,用来存储当前用户适合访问的镜像站点地址;
· 索引文件:从服务器端下载的索引文件,镜像站点软件包资源清单,供客户端安装、更新软件包时知晓可以从镜像源中请求哪些软件包,便于主机查询,能够避免直接从镜像源搜寻效率低下;
· 软件包信息记录:本地软件包信息数据库,用来记录本机已安装软件包相关信息,为软件包安装、升级、卸载等操作提供所需信息获取支撑;
临时存放待安装软件包:从软件库中下载的软件包安装前临时缓存存放位置,等软件包全部下载结束后再进行安装。
2) 服务器端
· 软件库:各式各样的软件包分门别类的存储在该软件库中,便于对软件包的集中管理;
· 索引文件:镜像站点软件源中软件包资源清单,由对没个软件包的详细描述信息组成,供客户端下载。
图3 Apt软件管理机制
服务器端通过使用Apt包分析工具genbasedir对软件库中存储的.deb包(Linux系统中的一种软件包格式)的包头信息进行分析,以获取软件库中每个软件包的相关信息并进行记录,生成.deb包的索引文件存储供客户端软件下载、安装等相关操作时使用,当软件库中的.deb包有所变动时,需要软件库管理员使用Apt包分析工具genbasedir重新构建.deb包的索引文件;客户端通过对镜像站点地址的存储,以便能够在软件安装过程中快速找到合适的可以获取软件的软件源;索引文件下载并解压存储在客户端/var/lib/apt/lists目录下,能够使客户端通过查询快速检索到需要从软件源中获取的软件包;软件包信息记录便于在应用软件下载安装、升级或者删除等过程中查询相关信息进行比对,安装.deb软件包时,Apt会将软件包中的文件安装到系统指定的位置,还会把这些文件的安装位置和包的信息记录到本地软件包信息数据库中,以便后续操作时查询使用。
Apt下载安装软件包可分为以下五步:
(1)扫描本地索引文件列表,找到最新版本软件包;
(2)进行目标软件包依赖关系检查,找到支撑该软件正常运行的所有软件包;
(3)查询已安装软件包信息数据库,找出需要安装的被依赖软件包;
(4)从软件源所指的镜像站点中按序下载相关软件包,并存在本地临时存放目录下;
(5)解压软件包并依序安装,自动完成应用程序的安装和配置。
以上内容对软件管理平台架构进行了系统归纳并以典型的Apt软件管理工具为例对软件管理平台架构进行了深入剖析,有助于了解软件管理的详细工作过程。在军用软件库的构建中,还需要对服务器软件包分发端进行规划。
2.3软件包分发端规划
上游开发者开发出的软件源码能在不同平台上使用,软件维护人员将上游源码在特定条件下进行打包后并按照规定的命名规则对包命名后用于在特定平台上使用。开源系统在众多软件的管理过程中,采用将软件集中在一起的方式,通过构建维护软件包中央存储库,为用户获取软件包提供来源。这里所说的中央存储库即软件库,软件库中存储着软件源码包和编译后的二进制软件包。软件仓库中的内容是不断变化、不断完善的,已有软件包的新功能特点、新版本以及新的应用程序软件包会被陆续加入。
现有民用软件库中的软件包一般由三部分组成:不稳定版本(Unstable)、测试版本(Testing)和稳定版本(Stable)[8]。当具有新功能的软件包首次入库后,该软件包属于不稳定版本,规定时间过后并期间未发生关键性错误,软件包流转为测试版本,再后来经过众多用户一定时间使用的考验后正式成为稳定版本,这就是软件包在软件库中由不稳定包到稳定包的转化过程。期间软件包每升级为一个高级阶段,并不是复杂的将包从初始阶段删除,而是通过变化软件包对应的阶段指针来完成阶段变化,这样做极大地减少了复制删除等不必要的操作,提高了转化效率。同时,用户在安装应用软件时可以根据实际情况选择库中处于任一阶段的软件包进行安装使用;当用户在软件包使用过程中发现软件缺陷或是漏洞等问题,可以通过Bug跟踪反应给软件库维护人员和软件开发人员以对软件包缺陷进行相应完善。
将开源系统中现阶段民用软件库的规划方式和国军标中军用软件库三库(开发库、受控库和产品库)标准相结合对军用软件库软件包分发端进行规划,如图4所示。其中,软件配置项是由在军用软件生存周期各个阶段活动的产物经审批后得到的,包括文档资料、源代码、目标代码、可执行代码,相关产品等;军用软件开发库是指在军用软件生存周期中,存放软件配置项的集合;军用软件受控库是指在军用软件生存周期中,存放已通过测试或评审且作为阶段性产品的软件配置项的集合;军用软件产品库是指在软件生存周期中,存放已定型且供交付、生产、检验验收的军用软件配置项的集合[9],军用软件库管理服务器端通过军用软件产品库为客户端提供软件包获取服务。
图4 军用软件库软件包分发端
用户可以通过软件管理平台采用Apt软件管理机制从军用软件产品库中获取应用软件进行下载、安装使用等。由于软件在开发过程中难免会产生漏洞或者存在未发现的问题,当用户在使用过程中发现Bug后,可以通过Bug跟踪反馈给软件维护人员进而对软件缺陷进行完善,具体手段可以采用电子邮件等形成向软件库维护人员反应,能够有效解决软件使用过程中存在的问题,完善军用软件的功能。
3.1安全管理需求分析
上述通过对软件管理机制进行剖析,明确了现阶段软件管理平台架构的一般形式,对军用软件库软件包分发端进行了整体规划。而在军用软件库的构建中,考虑到军用软件的特殊性,军用软件库使用过程中涉及的安全问题必须考虑在内,例如怎样保证军用软件分发过程中软件数据的安全性,怎样保证用户能够获取自身权限范围内的软件,怎样保证军用软件版本与武器装备平台的严格对应性等问题,需要对军用软件库安全管理架构进行全方位考虑设计。
军用软件库的安全隐患来源可以归纳为四类实体、两条途径和两处存储,如图5所示。四类实体分别为分散在各处的开发者、管理员、用户和恶意人员;两条途径分别为途经开放网络的开发者上传与用户下载软件过程;两处存储涉及服务器端软件包、索引的存储与客户端已下载安装软件包、索引等相关信息的存储。影响军用软件库安全性的主要因素包括软件包的保密性、完整性、自身安全性与不可抵赖性。
图5 军用软件库安全管理需求分析
为了消除安全隐患,针对应用软件代码本身可以采取的保护措施有水印、加密狗、代码混淆、签名认证及软件加壳、加密等,针对软件库采取的保护措施有综合考虑安全因素设计合理的软件库架构、构建安全性能高的数据传输通道等,具体采用的安全手段可以有:软件包内容需经过加密处理,无权限人员无法获取软件包,即使通过非法手段获取软件包在没有秘钥情况下也无法破译出软件包源代码;应用软件包的内容应该确保管理员最终认定原则,之后的其它任何改动都将被视为破坏原有软件包的完整性;防止恶意开发人员在开发软件包中植入后门等;开发者、管理员依次对软件包进行签名,二次签名的有效用运能够保证软件包来源的可靠性与不可抵赖性。在明确了安全需求后,需要考虑如何将各种安全策略、安全服务和安全技术有效地结合在一起[10],最终形成军用软件库安全管理架构。
3.2安全管理架构层次模型
软件库已经是一个广泛应用在民用软件管理过程中的概念,但是将软件库用于军用软件的集中管理过程中,是一个全新的视角,在其管理架构[11]的宏观设计中除了满足我军军用软件分发的功能需求外还需要考虑军用软件分发过程中安全性方面的特殊需求。通过前面在对我军军用软件特点介绍及军用软件库安全管理需求分析的基础上结合软件管理机制,提出军用软件库安全管理架构层次模型,如图6所示。
该架构层次模型从硬件安全、软件安全、人的安全及业务逻辑安全出发将军用软件库安全管理分为物理安全层、系统安全层、数据安全层、应用安全层和管理安全层,通过在五层上采取相应的安全保护措施来达到保证军用软件库安全的目标。其中管理安全层贯穿于整个架构,从人和管理的角度出发保障军用软件库的安全,包括对开发人员、运维人员和用户的管理以及为了保证软件库安全制定的相关规章制度和标准要求等;物理安全层从硬件的角度出发提供安全的环境、可靠的国产硬件设备及网络等,是军用软件库安全的基础保证,也是其他安全措施得以实施并发挥作用的基础和前提条件;系统安全层主要从基础软件的安全性及冗余角度出发,使用国产基础应用支撑软件,如国产数据库系统等,保证军用软件库的安全性;数据安全层从数据保护技术角度对要保密的软件包等数据进行加密存储、密文传送等,对用户访问数据进行日志审计分析等,是军用软件库安全管理中要保护的目标对象层;应用安全层主要从安全功能机制上对军用软件库采用身份识别、权限控制、密码系统保护等相关措施,功能策略上保证其安全性,同时,软件库功能上有了身份识别、权限控制、版本型号适配和密码系统保护后,能够满足对不同用户使用不同软件权限及软件版本与武器装备平台的严格对应性要求。
图6 军用软件库安全管理架构层次模型
1) 管理安全层:主要涉及军用软件库在正式提供服务过程中对软件开发人员、软件库运维人员以及用户等的严格管理。对软件开发人员应进行严格审核,加强军事现实需求教育与保密性教育,使其开发出的军用软件符合战场实际需求,能够更好地生成战斗力;对运维人员应制定严格的机房准入制度和分工负责制度,运维人员不能够越权操作,未经批准不得随意进入机房等。
2) 物理安全层:主要涉及军用软件库搭建过程中所使用的物理设备的安全,包括物理设备所处环境的安全,能够应对战争打击,增强机房抗打击能力;使用成熟的国产硬件设备,避免不安全的国外硬件产品进入机房,物理设备上保证安全性;构建安全可信的网络环境,保证服务器之间的协同和信息交换的安全性等。
3) 系统安全层:主要涉及军用软件库运行过程中所使用的基础软件的安全性及将系统运行软件故障降到最低,提高系统运行的稳定性,同时通过使用国产基础应用软件构建军用软件库能有效避免使用国外基础软件存在的后门威胁;机房主机采取入侵防御检测技术,随时监测来自外部的可疑攻击,能够有效阻止危险访问;还包括安全域的划分、链路冗余、系统冗余及数据冗余等,从系统安全层上保证军用软件库的安全性。
4) 数据安全层:主要涉及军用软件库相关数据的安全性,包括软件包、软件包信息及软件用户信息等数据。对软件包进行加密存储,软件包在传输过程中采用密文进行传送,秘钥的保存要严格按照成熟的方案标准来执行,有效管理,确保秘钥的安全性;同时对数据要进行保密备份,避免特殊故障导致数据无法恢复,对用户访问日志进行审计分析,及时发现存在的安全危险并采取有效手段。
5) 应用安全层:主要涉及军用软件库在保证软件库安全性上具有的功能,身份识别能够准确识别管理员与用户,为对用户的权限控制和权限分配创造前提条件;混合密码系统保护功能能够保证软件包的私密性,同时对软件包的数字签名能够保证软件包的完整性和其来源的不可否认性;版本型号适配功能能够确保武器系统与软件版本的严格对应性,提高军用软件成功安装概率。
军用软件库作为为我军各相关部门提供军用软件下载安装、更新、卸载等功能服务的应用,其服务的部署相应拓扑结构规划应结合我军现阶段的体制编成进行。军改后,我军新的体制编成由中央军委下设的七个部(厅)、三个委员会和五个直属机构以及主要负责建设管理的五种军种和主要负责作战指挥的五大战区构成。为了能够便利快捷地对各部门提供可靠的军用软件获取途径,结合我军各部门地域划分的特点对软件库机房服务的拓扑结构规划如图7所示。
图7 拓扑结构规划
该拓扑结构将军用软件库服务根据我军各自作战地域的不同划分为东、南、西、北、中和军委机关各部六类运维机房,软件库后台总运维发布端负责新增软件的入库及软件包的更改等,由专门的管理人员进行维护,并且六类运维机房中的相关内容镜像自软件库后台总运维发布端机房。各机房分别为各自管辖的单位部门提供军用软件服务。为了保证机房的安全性,每类运维机房还可以在各自对应辖区内设立备用运维机房,以便紧急情况下能够迅速启用,保证军用软件库服务的可靠性。
军用软件库的安全管理对象主要涉及软件包、软件包信息及相关人员信息,软件包的安全属性包括保密性、完整性、自身安全性与不可抵赖性。为了保证相关信息的安全,在软件库安全管理架构层次模型构建中,综合考虑硬件、软件、数据、功能、管理上存在的安全因素后,能够更好地应对风险挑战。同时,在军用软件库的实际部署中,结合我军现阶段编成体制,制定合适的软件库服务拓扑结构,为我军军用软件的长远发展建设基础环境,对我军武器装备现代化水平的提升具有重要意义。在后续研究中,以上述研究成果为指导,构建军用软件库安全服务原型系统,进一步满足军用软件库安全管理的应用需求。
[1] 陈志昊,陈正捷.外军军用计算机技术发展对陆军武器装备信息化的启示[J].兵工自动化,2009(2):1-5,9.
CHEN Zhihao, CHEN Zhengjie. Study on Development of Army Weapon Equipment Informatization and Military Computer Technology[J]. Ordnance Industry Automation,2009(2):1-5,9.
[2] 赵龙.军用软件产品价格测算研究[D].北京:装备指挥技术学院硕士学位论文,2009.
ZHAO Long. Research on the Price Estimation of Military Software Products[D]. Beijing: Master’s Degree Thesis of Equipment Academy,2009.
[3] 余同辉,李家垒.信息化武器装备与信息化战争[J].兵工自动化,2007,12:99,101.
YU Tonghui, LI Jialei. Information Weapons and Information War[J]. Ordnance Industry Automation,2007,12:99,101.
[4] 吴迤.软件工程发展综述[J].现代雷达,2009,31(4):19-23.
WU Yi. Development Review of Software Engineering[J]. Modern Radar,2009,31(4):19-23.
[5] Koren O. A Study of the Linux Kernel Evolution[J]. Acm Sigops Operating Systems Review,2006,40(2):110-112.
[6] 顾昊,钱晓俊,梁洪亮.开源平台下软件管理技术的研究[J]. 计算机应用研究,2007(8):112-115.
GU Hao,Qian Xiaojun, LIANG Hongliang. Analysis of Software Management in Open Source Platform[J]. Application Research of Computers,2007(8):112-115.
[7] APT工作原理[EB/OL]. http://blog.csdn.net/buguyiqie/article/details/4948661-2009-12-05.
The Working Principle of APT[EB/OL]. http://blog.csdn.net/buguyiqie/article/details/4948661-2009-12-05)
[8] R Nguyen,R Holt. Life and Death of Software Packages:An Evolutionary Study of Debian[C]//Conference of the Center for Advances Studies on Collaborative Research,2013:192-204.
[9] 中国人民解放军总装备部.GJB 5716-2006 军用软件开发库、受控库和产品库通用要求[S]. 北京:总装备部军标出版发行部,2007-06.
The General Equipment Department of PLA. GJB 5716-2006 General Requirements for Military Software Development Libraries,Controlled Libraries,and Product Libraries[S]. Beijing:Department of General Equipment Department of Military Standard Publishing,2007-06.
[10] 曾庆凯,许峰,张有东. 信息安全体系结构[M].北京:电子工业出版社,2010:12.
ZENG Qingkai,XU Feng,ZHANG Youdong. The Architecture of Information Security[M]. Beijing:Electronic Industry Press,2010:12.
[11] 龙涛.开放网格服务架构下的安全策略研究[D].武汉:华中科技大学,2007.
LONG Tao. Research on Security Policies for Open Grid Service[D]. Wuhan: Huazhong University of Science and Technology,2007.
[12] 段继刚.Linux软件管理平台的设计与实现[M].北京:机械工业出版社,2013.
DUAN Jigang. The Development of Software Management Platform on Linux[M]. Beijing:Machinery Industry Press,2013.
Security Management Architecture of Military Software Repository
CEN PengruiWU LingdaYU RonghuanYANG Chao
(Science and Technology on Complex Electronic System Simulation Laboratory, Equipment Academy, Beijing101416)
The requirements of military software management are analyzed,and the general form of software management platform and the Apt software management mechanism are summarized. The software packages distribution ports of military software repository is planned combined with the standards of three repositories management of military softwares.At the same time,according to the specific needs of the security management of military software repository,the security management architecture of military software repository is researched. A hierarchical model of the security management architecture of military software repository is proposed and the topology structure of military software repository services is also planned.This model can be used for the guidance of design of military software repository from macroscopic,system and the overall point of view and has practical significance in the protection of numerous army military softwares in convenience and safety.
military software management, mechanism, security, architecture, hierarchical model
2016年4月6日,
2016年5月29日
核高基国家重大科技专项(编号:2013ZX01045-004) 资助。
岑鹏瑞,男,硕士研究生,研究方向:信息系统技术与应用。吴玲达,女,博士,研究员,博士生导师,研究方向:多媒体信息系统,虚拟现实。于荣欢,男,博士,研究方向:多媒体信息系统与虚拟现实。杨超,男,博士,研究方向:多媒体信息系统与虚拟现实。
TP311.5
10.3969/j.issn.1672-9722.2016.10.023