王楠
摘 要:操作系统的安全性缺陷分析与检测对保证计算机系统安全尤其是对于大范围应用计算机操作系统的金融业具有非常重要的意义。本文研究基于操作系统源程序的静态分析技术,探究将静态分析应用于金融系统安全问题及操作系统安全性缺陷分析系统对应程序的实现路径。
关键词:静态分析;操作系统;缺陷发现;技术应运
中图分类号:F830.31 文献标识码:B 文章编号:1674-0017-2014(11)-0091-03
在全球信息化浪潮的影响下,随着计算机及互联网技术应用范围的扩大及应用程度的加深,网络基础设施的建设、信息资源的开发正在吸引各行各业的重视。可以说信息化正在渗透到各个领域,直接关系到现代社会的运行和发展,特别是随着金融电子化的不断深入,在计算机几乎渗透到银行各个部门和业务处理全过程的现实情况下,银行业的信息安全问题已越来越引起人们的高度关注。
一、金融系统计算机操作风险的状况及原因
(一)软、硬件开发安全级别低。计算机软件是用户与硬件之间的接口界面,主要包括计算机程序及其文档,按照用途可分为系统软件和应用软件两大类。系统软件是指为管理、控制和维护计算机及外部设备,以及提供计算机与用户界面等的软件,如操作系统、各种语言处理程序、数据库管理系统等。应用软件主要用于解决一些实际的应用问题,如管理软件等。现有应用软件系统软件设计重功能轻安全,软件设计选用语言和数据库考虑安全性能少,以至软件投入运行后暴露出诸多安全隐患。如数据库呈开放状态,易于打开,应用系统软件存在安全“BUG”等。这类现象在金融会计电子化不断发展阶段开发的系统更为明显,且这些软件系统还在持续的更新换版之中。快速的软件升级周期,会造成问题软件的出现,操作系统和应用程序出现新的攻击漏洞;同时,在硬件选型上考虑安全性能的比较少,主要侧重硬件功能和价格的考察,缺乏金融系统的统一的硬件选型。
(二)计算机系统缺乏安全性实践。因计算机系统本身软件、硬件及网络等缺陷而造成风险。引起此类风险的因素分别有:系统的复杂性,多个异构网络互联起来的大型网络,增加了网络确认的难度,降低了对网络安全信任度;资源共享使更多用户有机会存取数据,提高了存取控制的复杂度;网络的广泛可存取性,使网络的边界具有不确定性,未知的、未经控制的恶意攻击,给网络安全构成了严重威胁;在文件经过多个节点传送过程中,存在存取控制的安全性问题;在网络中从一个节点到另一个节点存在多条路径,因用户无报文周游的控制权,报文的传输安全便成问题,加大了计算机的操作风险。
(三)系统软硬件设备的安全缺陷。网络系统的安全缺陷,是计算机互联的固有特征,由于网络的资源和信息是被共享的,它们必然有可能因人的恶意或偶然原因遭受破坏、更改或泄露。需要在要保护的信息与可能危害网络服务和信息(无意或恶意)的人之间设立实际和虚拟的屏障,限制网络资源和信息的访问自由度,达到降低信息安全风险的目标。就金融系统计算机网络而言,设备功能失效本来可以通过提高系统的可靠性来解决,设备冗余、负载均衡和备份等技术也能够解决这类物理和工程的可靠性问题,但由于认真科学的分析、深思熟虑的设计以及全面严谨的测试能不够,使系统在一定程度上不具备足够高的可靠程度,不能很好地使网络信息被破坏几率降到最小或被破坏的信息能接近完整地恢复。
(四)应用平台的安全存在隐患。应用平台是指建立在网络系统之上的应用服务软件,如数据库服务器、电子邮件服务器、WEB服务器等。目前,各种服务器管理系统本身的安全等级要达到与操作系统安全等级相当的级别,特别是数据库服务器,应具有对主体(人、进程)识别和对客体(数据表、数据分片)进行标注,划分安全级别和范畴,实现由系统对主、客体之间的访问关系进行强制性控制的能力还不足;口令使用方式限制和对有关数据库安全的事件进行跟踪、记录、报警和处理的能力等安全特征存在明显漏洞。由于应用平台的系统非常复杂,除了要求应用服务器具备自身的安全服务外,通常还要采用其它多种技术手段,来增强应用平台的安全性。但是目前存在的隐患,对应用系统要利用应用平台提供的服务来保证基本安全,如通信内容安全、通信双方的认证和审计等,缺乏安全支撑平台,根据服务接口、协议在应用程序中开发调用这些服务的模块都有一定程度的技术影响。
此外,微软公司自2014年期停止对Windows XP操作系统的支持服务。目前金融业各级机构计算机终端,尤其是业务网和办公网终端,仍大量使用Windows XP,在运行中,新的系统漏洞需要新的补丁进行修复,但随着Windows XP停止安全更新,新的安全漏洞将无法得到补丁修复。
二、静态分析方法的特点及局限性
(一)静态分析方法的特点。静态分析作为一类高效的程序分析方法,受到越来越多的重视。当用户给出语言的抽象语义以后,该类方法能够自动发现满足所有可能(不一定实际存在)执行状态的软件属性。静态分析方法,能够非常快地完成对源代码的检查且检查者不需要了解程序的实现方式,不需要掌握运行和部署情况,故非常适合自动化的程序源程序缓冲区溢出检查。其特点是安全可靠(可以在代码部署运行前消除软件代码中的安全缺陷)、高效快速(整个过程可以自动完成且只需要很短的时间)、不需要检查者参与(检查者只需要执行检查程序,不需要事先了解目标代码的设计及实现细节即可完成对目标代码的检查,甚至能够一次完成针对多个文件/目录进行检查)、能够较全面的覆盖系统代码(静态检测工具可避免开发及测试人员手工检查程序源代码或动态分析程序时因一些人为因素漏掉不明显的漏洞,能够根据提供的先验知识完整的对所有源程序进行检查)。
(二)静态分析方法的优越性。作为一类高效的程序分析方法,静态分析技术一直是编译技术的核心,受到越来越多的重视。当用户给出语言的抽象语义以后,该类方法能够自动发现满足所有可能(不一定实际存在)执行状态的软件属性。相对于传统的人工代码审查技术以及动态测试、形式化验证方法来说,具有自动遍历检查、分析快速、并且可以检验无穷状态系统的优点。
静态分析框架如图1所示。大多数情况下,静态分析的输入都是源程序代码,只有极少数情况会使用目标代码。静态分析越来越多地被应用到程序优化、软件安全性缺陷检测等领域。
(三)静态分析方法的局限性。静态分析技术的类别有词法分析和语法分析、静态切片、图形化方法等。从实现方法来说,最简单的静态检测技术是使用与UNIX平台下的grep类似的软件工具,检索源代码中可能存在的不安全的相关库函数的调用。其局限性为:误报率高(不论是关键词还是特征检测方式,均是根据以往的经验提炼出来的,这就必然会带来是否适合当前项目,是否有效等问题。为尽量适用所有项目,一般的静态分析都会带有一个很大的特征库或词典,这些库是不断扩充的,带来的结果就是检测的误报率非常高)、结果集大(同样,因为字典或特征集比较大,故检测的结果集必然很大,对于产生的这个结果集,使检测人员容易麻痹,即所谓的“狼来了”的效应,并且设计检测的规则集或词典是比较困难的)、针对性不强(静态分析方法,重点是分析代码的“特征”,关心的是程序的实现特性,而不关心程序的功能,故不会有针对性的进行检查,更不会有针对功能及程序结构的分析)。
三、应用安全性缺陷分析技术的路径
(一)基于约束特征匹配的安全性缺陷分析技术的主要思想是将静态分析方法应用到安全漏洞的检测任务中,用整数约束问题来表述安全性缺陷检测问题,并运用图论技术构造一个有效的算法来求解这些整数约束。操作系统直接管理计算机信息资源,所以操作系统的安全是整个信息系统安全的基础。没有操作系统安全,就不可能真正解决数据库安全、网络安全和其它应用软件的安全问题。针对静态分析方法的局限性,以缓冲区溢出缺陷检测为例,在基于操作系统源代码静态分析方法的基础上,提出一种根据整数范围限制分析的方法改进而来的新方法,称之为基于约束特征匹配的安全性缺陷分析技术,其能够提高传统静态分析的准确性和效率,为确保操作系统的安全提出解决路径。
(二)构建安全性缺陷数据库。操作系统安全性缺陷分析系统可以通过对可执行程序的分析理解,挖掘操作系统的脆弱点,为修补、反制及利用等相应安全措施提供线索和依据,最终达到增强操作系统的可控性,提高系统的主动防护、信息对抗能力的目的。可以对一个特定程序的安全脆弱点从多方面进行分类,从程序的用户群体、程序的数据访问、程序的作用范围、脆弱点的触发条件、脆弱点的执行类型、脆弱点的生命周期等多个角度关联分析脆弱点特征,建立针对不同操作系统的脆弱点数据库,实现对脆弱点数据库的综合管理。同时,鉴于目前大部分应用系统在操作系统为Windows XP的计算机终端上具有良好的兼容性表现的现实,在高版本的操作系统环境,可同步对现有应用系统进行兼容性改造,确保终端操作系统升级不影响现有应用系统安全运行。
(三)有效利用安全性缺陷技术。源代码的安全性缺陷利用和验证是通过构造验证用例,对安全性缺陷进行模拟攻击,可以验证安全性缺陷检测结果的有效性以及评估安全性缺陷的威胁程度。如构造一个测试用例,当kadmind启动并运行时,对其运行进程的附着,然后再启动认证服务前端程序kadmin。发现通过运行测试用例,可以导致kadmind的拒绝服务。可搭建一个远程攻击环境,在网络中,由一台攻击主机向kerberos认证服务器发起远程攻击。当使用上述验证用例进行攻击时,可以成功利用该脆弱点渗透入Kerberos认证服务器中。
(四)实现安全性缺陷检测功能。操作系统安全性缺陷分析系统可以实现灵活部署,最大限度地保障系统的安全。构建专门针对不同系统脆弱点数据库,能够对内核模块,设备驱动和安全认证程序进行脆弱点扫描,检查系统是否存在已知安全性缺陷问题,显示扫描后结果。程序安全性缺陷检测是能够实现自动检测和发现源代码中的存在安全缺陷的系统函数,给出统计结果。针对疑似脆弱点,结合静态解析,流视图分析和安全性缺陷利用验证等功能,对疑似脆弱点进行进一步的分析和验证,利用流视图精简技术生成专门针对可疑函数的调用关系图,帮助安全分析人员对疑似脆弱点进行准确的判定。
(五)应用操作系统安全性缺陷分析系统。在不同检测实验中,原型系统均能良好地工作。不同程序的安全性缺陷数量,其中低等级安全性缺陷是不会发生溢出的安全性缺陷,仅提示程序员分析时需要注意;高等级安全性缺陷则是非常可能发生溢出的脆弱点,需要引起特别关注。为此,在了解操作系统安全性缺陷分析系统的若干特性的基础上,操作系统安全性缺陷分析系统基本满足针对操作系统的安全检测和防护需求,能够对操作系统的核心程序、系统结构进行软件理解,从而发现系统的安全问题,并且能够对发现的安全问题进行分析和验证,为进一步针对操作系统安全性缺陷实施的修补、反制及利用等安全措施提供了有力支持。
针对存量计算机终端操作系统问题,建议通过适当方式协商微软公司购买XP至WIN7/WIN8升级包或WIN7/WIN8安装包,下发分支机构使用,解决原有计算机终端操作系统的安全性问题。
参考文献
[1]安喜锋,李伟华,薛静.操作系统安全机制复合行为模型掘取技术研究[J].计算机应用研究,2009,(1):314-316。
[2]孔德光,郑烇,陈超,帅建梅,朱明,戴威.基于数据融合的源代码静态分析漏洞检测技术[J].小型微型计算机系统,
2008,(6):1109-1112。
[3]宋明秋,王磊磊,于博.基于生命周期理论的安全漏洞时间风险研究[J].计算机工程,2011,(1):131-133。
[4]王凯,孔祥营.软件静态分析工具评析[J].指挥控制与仿真,2011,(2):109-111。
[5]张林,曾庆凯.软件安全漏洞的静态检测技术[J].计算机工程,2008,(12):157-159。
Software Security Flaws Static Analysis Technology and Its Application in Financial Industry Based on the Constraint Feature Matching
WANG Nan
(Yangling Sub-branch PBC, Yangling Shaanxi 712100)
Abstract:With the rapid development of internet, problems of the information security are emerging, and attack activities of viruses and malicious code bring huge threats to the computer system. Besides the hacker attack, that there exist the security flaws in the computer and software systems, especially in the process of design, development and maintenance of the operating system are main causes. Therefore, the security flaws analysis and testing of the operating system is of significance to ensure the safety of the computer system especially for the financial industry which widely uses the computer operating system. Based on the static analysis technology of the operating system source code, the paper explores the application of the static analysis to the financial system security and the implementation path of corresponding programs of the security flaws analysis system of the operating system.
Keywords: static analysis; operating system; flaw finding; technology application
责任编辑、校对:杨振峰
[4]王凯,孔祥营.软件静态分析工具评析[J].指挥控制与仿真,2011,(2):109-111。
[5]张林,曾庆凯.软件安全漏洞的静态检测技术[J].计算机工程,2008,(12):157-159。
Software Security Flaws Static Analysis Technology and Its Application in Financial Industry Based on the Constraint Feature Matching
WANG Nan
(Yangling Sub-branch PBC, Yangling Shaanxi 712100)
Abstract:With the rapid development of internet, problems of the information security are emerging, and attack activities of viruses and malicious code bring huge threats to the computer system. Besides the hacker attack, that there exist the security flaws in the computer and software systems, especially in the process of design, development and maintenance of the operating system are main causes. Therefore, the security flaws analysis and testing of the operating system is of significance to ensure the safety of the computer system especially for the financial industry which widely uses the computer operating system. Based on the static analysis technology of the operating system source code, the paper explores the application of the static analysis to the financial system security and the implementation path of corresponding programs of the security flaws analysis system of the operating system.
Keywords: static analysis; operating system; flaw finding; technology application
责任编辑、校对:杨振峰
[4]王凯,孔祥营.软件静态分析工具评析[J].指挥控制与仿真,2011,(2):109-111。
[5]张林,曾庆凯.软件安全漏洞的静态检测技术[J].计算机工程,2008,(12):157-159。
Software Security Flaws Static Analysis Technology and Its Application in Financial Industry Based on the Constraint Feature Matching
WANG Nan
(Yangling Sub-branch PBC, Yangling Shaanxi 712100)
Abstract:With the rapid development of internet, problems of the information security are emerging, and attack activities of viruses and malicious code bring huge threats to the computer system. Besides the hacker attack, that there exist the security flaws in the computer and software systems, especially in the process of design, development and maintenance of the operating system are main causes. Therefore, the security flaws analysis and testing of the operating system is of significance to ensure the safety of the computer system especially for the financial industry which widely uses the computer operating system. Based on the static analysis technology of the operating system source code, the paper explores the application of the static analysis to the financial system security and the implementation path of corresponding programs of the security flaws analysis system of the operating system.
Keywords: static analysis; operating system; flaw finding; technology application
责任编辑、校对:杨振峰