基于网络流量的安全可达性推理方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2018年
软 件
2018, V ol. 39, No. 4
基金项目: 江苏省重大研发计划(BE2017100);赛尔下一代互联网创新项目(NGII20160122);中兴通讯产学研合作论坛合作项目 (2016ZTE04-11)
作者简介: 孙哲(1984-),副总,工程师,研究方向为通信网络安全;巫中正(1986-),工程师,研究方向为:有线网络。
通讯联系人: 李千目(1979-),教授,研究方向为:数据挖掘。
基于网络流量的安全可达性推理方法
孙 哲1,巫中正2,李千目3
(1. 江苏中天科技软件技术有限公司,江苏 南通 226009;2. 中兴通讯股份有限公司 南京研发中心,
江苏 南京 320100;3. 南京理工大学 计算机科学与工程学院,江苏 南京 210094)
摘 要: 目前,随着信息技术的发展和全球化,网络入侵等黑客事件频繁发生。
网络安全形势日益严峻,各大
机构都试图通过各种安全评估方式评估自身网络的安全性。
然而,对于大规模复杂网络的安全评估工作消耗的人力物力巨大,而且效果不理想。
目前的安全分析工具通常只分别检查单独的防火墙,路由器或主机,不能全面分析整体网络安全。
本文基于Data log 逻辑查询语言对目标网络的安全元素进行建模,包括漏洞声明、机器配置、网络配置以及用户主体信息。
同时,也定义了推导规则和安全策略。
安全策略则是指管理员允许的数据访问和修改行为,而推导规则对分析结果有直接影响。
本文提出三种基于攻击谓词的攻击形式,涵盖了攻击者的大部分攻击行为。
提出了主机访问控制列表概念,用于控制主机之间的连通性。
通过定义安全策略,给出了判定用户行为是否为攻击行为的准则。
关键词: 多源异构;网络流量;信息安全
中图分类号: TP391 文献标识码: A DOI :10.3969/j.issn.1003-6970.2018.04.008
本文著录格式:孙哲,巫中正,李千目. 基于网络流量的安全可达性推理方法[J]. 软件,2018,39(4):36-43
Security Accessibility Reasoning Method Based on Network Traffic
SUN Zhe 1, WU Zhong-zheng 2, LI Qian-mu 3
(1. Jiangsu ZhongTian Software Corporation, Nantomg 226009; 2. ZhongXing Telecommunication Equipment Corporation,
Nanjing R & D Center, Nanjing 320100; 3. School of Computer science and Engineering,
Nanjing University of Science and Technology, Nanjing 210094)
【Abstract 】: At present, with the development of information technology and globalization, frequent hacking inci-dents such as cyber intrusion occur. With the increasingly serious network security situation, all major agencies try to evaluate the security of their own networks through various security assessment methods. However, the man-power and resources consumed for the safety assessment of large-scale and complex networks are huge and the re-sults are not satisfactory. Current security analysis tools typically only examine individual firewalls, routers, or hosts, and cannot fully analyze overall network security. The security elements of the target network are modeled based on the Data log logical query language, including vulnerability statements, machine configuration, network configura-tion, and user body information. At the same time, it also defines the derivation rules and security policies. The se-curity strategy refers to the data access and modification behavior permitted by the administrator, while the deriva-tion rules have a direct impact on the analysis result. This paper presents three forms of attacks based on attack predicates, covering most of the attackers attack. Proposed the concept of host access control list, used to control the connectivity between the hosts. By defining the security strategy, the criterion of determining whether the user be-havior is aggressive is given.
【Key words 】: Multi-source heterogeneous; Network traffic; Information security
孙 哲等:基于网络流量的安全可达性推理方法
37
《软件》杂志欢迎推荐投稿:cosoft@
0 引言
在工控异构接入的网络领域,构建攻击图,需要考虑所有网络协议层,得出计算网络主机之间的可达性条件,为攻击行为和攻击路径建模,并设计一个有效的方法来计算数量庞大的攻击可能的路径。
这个计算过程应该被系统地描述,以便以后的研究人员能够以结构化的方式改良特定领域的攻击图生成形式。
可达性分析阶段主要研究目标网络的网络可达性条件,简单来说,就是确定两个给定的主机是否可以访问对方,两个主机的哪个应用程序可以访问对方,哪个协议可以用于两个主机之间的交流等。
网络主机之间的可达性条件主要是用一个可达性矩阵表示,其中行和列代表每个网络主机。
可达性矩阵中的值可以是一个布尔值,表示对应的两个主机之间存在可达性(可访问性),也可以是一些复杂的数据结构。
可达性矩阵可以用来表示任何类型的主机之间的连接:物理、网络、传输或应用程序级别。
其空间复杂度取决于网络中主机数量的平方。
可达性矩阵或图所表示的主机之间的联系条件,可以作为利用相应漏洞的前提条件。
一般在建立攻击图核心机制之前,就应该完成可达性分析,分析的结果将作为生成攻击图的依据,通过特定算法,导入攻击图核心机制构建过程。
其中,建立目标网络可达条件的通用模型,并根据可达条件寻找最优分组是极为重要的。
因为这可以有效减少在生成可达性矩阵时造成的冗余信息。
同时,通过有效分组,降低了构建攻击图核心机制过程中的遍历次数,从而能够提高攻击图的生成速度。
对于入侵检测预防系统而言,即使有一个或多个漏洞被入侵防御签名抑制,但是这并不意味着攻击者不能利用这些漏洞攻击目标网络。
总会有一种针对这些漏洞的利用方式没有被阻塞。
因此我们需要更为复杂的基于权威数据库的交叉检测签名技术。
如果他们使用特定的机器学习异常检测算法,处理入侵检测/防御系统配置会更加困难。
因为异常复杂的配置选项会影响这些算法的检测能努力。
关于目标网络的主机间信任关系,它们被存储在自定义格式的应用程序中,这也加大了处理难度。
还有一些像数据库表、cookies 以及密码文件之类的信息存储介质,它们往往包含了一些关于应用程序的敏感用户信息,这些信息可能与包含它们的介质完全无关。
例如,一个数据库服务器应用程序
包含的数据库表可能存储着网页应用程序的用户凭证。
因此,数据源也是决定网络主机之间可达性条件的重要因素之一。
数据源会由于特定软件的安装或修改发生变化。
同时,不同数据源的数据格式也没有一个标准格式。
本文主要设计了攻击图生成过程的可达性分析技术,作为输入信息的建模与处理环节,它对攻击图生成结果有着直接的影响。
首先,对需要建模的网络安全元素给出了定义,包括漏洞声明、机器配置、网络配置以及用户主体信息,它们涵盖了初始输入信息(网络拓扑信息和漏洞信息)的主要内容。
还有两项定义分别是推导规则和安全策略,这两项内容是自定义生成的,推导规则规定了逻辑推理系统分析模型数据时所遵循的逻辑准则,安全策略则是指管理员允许的数据访问和修改行为,由推理系统得出的所有可能的行为一旦违背安全策略,就会被视为潜在的攻击行为。
重点研究和提出了用于推理过程的数据建模以及推理方式,包括推理规则、主机访问控制列表、安全策略、绑定信息和分析策略。
其中主机访问控制条目表示两个机器之间的连通性信息,绑定信息分为用户主体绑定和数据绑定,主体绑定规定了不同身份用户的权限级别,数据绑定显示了网络中虚拟资产(如项目文件)的保存目录。
分析策略分为攻击模拟和方案判定两个阶段,攻击模拟表示攻击者能够做出的数据访问和修改操作,方案判定依据安全策略判断每个攻击模拟是否违反规定,将所有违反安全策略的攻击模拟以及它的前置条件导入分析结果文件,以树状结构显示。
1 可达性分析设计
可达性分析主要需要目标网络拓扑信息和漏洞信息结合,并依据攻击模式库和ICAT 漏洞数据库匹配攻击行为,将符合攻击模式的潜在攻击找出来,得出安全威胁信息,如表1为可达性分析需要的信息。
本文使用逻辑推理的方式,将信息和规则输入推理引擎,得出推理结果即潜在攻击。
表1 可达性分析需要的输入信息
Tab.1 Input information for accessibility analysis
信息 来源 是否自动
脆弱性
漏洞扫描工具 是 脆弱性利用规则 攻击模式库 是 脆弱性利用结果 ICAT 数据库
是 网络拓扑信息 拓扑扫描工具 是 主机访问控制列表
配置文件
否
第39卷 第4期 软 件
38
《软件》杂志欢迎推荐投稿:cosoft@
本质上,与典型的算法匹配攻击行为不同,本文的可达性分析可以看做一种逻辑查询过程,它能大大减少计算时间,降低时间复杂度。
为了让逻辑推理系统能识别目标网络拓扑信息和漏洞信息,首先需要使用逻辑语言对输入信息进行建模。
1.1 目标网络建模
目标网络建模目的是根据输入的拓扑信息和漏洞信息,将网络中各种安全要素模型化表示,方便匹配攻击模板,为后续的攻击图生成工作做铺垫。
需要定义的安全要素主要包括:漏洞声明,主机配置,网络配置,绑定,推理规则以及安全策略,如表2所示。
本文依据Datalog 子句作为各个元素模型化的标准。
表2 安全要素分类
Tab.2 Classification of security elements
名称
表示
属性
漏洞声明 VulExists ()
主机类型,漏洞编号,漏洞程序
主机配置 networkService ()
主机类型,服务程序,协议,端
口号,用户
网络配置 Hacl ()
起始主机,目标主机,协议,目
标端口号 主体 hasAcount () 主体标识,资源,权限级别 推理规则 execCode () 攻击者,主机,权限变动 安全策略 allow ()
权限级别,行为,资源
定义 1 漏洞声明。
声明表示本机上是否存在某种漏洞。
正式的脆弱性规范大多由OVAL (Open Vulnerability Assessment Language )表示。
将它转化为Datalog 子句:vulExists(webServer ,‘CAN-2002-0392’,httpd)。
这个子句的意思是,漏洞扫描器识别了一个在webServer 上的漏洞,漏洞ID 为’ CAN-2002-0392’,漏洞存在于服务程序httpd 中。
然而,关于如何利用漏洞以及利用漏洞之后达到的效果,OVAL 没有做出正式规范。
因此,我们需要漏洞数据库ICAT 来为我们提供关于漏洞效果的信息。
同样的,我们将ICAT 的数据信息转化为Datalog 子句,属性依次是漏洞编号,漏洞类型和漏洞利用效果:vulProperty(‘CAN-2002-0392’,remoteExploit ,privilegeEscalation)。
这个字句说明,上述漏洞可以让一个远程攻击者在所有程序权限下执行任意代码。
定义2 主机配置。
OVAL 扫描器一样可以用来提取主机上的设置参数。
例如,它可以提取一个服务程序的信息。
我们将它转化为Datalog 子句:networkService (webServer ,httpd ,TCP ,80,apache)。
这个子句表示,程序httpd 作为用户apache 在机器webServer 上运行,并使用TCP 协议在端口80上侦听。
定义 3 网络配置。
本文将网络配置(路由器和防火墙)抽象为主机控制列表(HACL ),可以通过防火墙管理工具提取相关信息。
hacl(internet ,webServer ,TCP ,80)是一个HACL 示例条目,它允许TCP 流量从网络流向webServer 上的端口80。
定义 4 主体。
每种用户身份所拥有的系统权限也有区别。
主体绑定将身份符号映射到网络主机上的用户帐户。
用户应该定义主体绑定:hasAccount(user ,projectPC ,userAccount).
管理员应该定义主体绑定:hasAccount(sys-Admin ,webServer ,root).
定义 5 推理规则。
在多级攻击中,漏洞的语义和不同操作系统类型会影响攻击者的每个攻击行为。
一个推理规则中,第一行为结论,剩下的表示达成结论所需的条件,例如:
execCode(Attacker ,Host ,Priv) :- vulExists(Host ,VulID ,Program),
vulProperty(VulID ,remoteExploit ,privEscala-tion),
networkService(Host ,Program ,Protocol ,Port ,Priv),
netAccess(Attacker ,Host ,Protocol ,Port),malicious(Attacker).
这段子句显示若运行在Host 上的Program 包含了一个可长途操作的漏洞,该漏洞的利用效果是权限晋升,这个bug 程序运行的权限是Priv ,同时监听Protocol 和Port 。
那么,攻击者可以通过网络访问服务,攻击者可以在Priv 权限下的机器上执行任意代码。
此规则可以应用于与模式匹配的任何漏洞。
定义 6 安全策略。
一项安全策略表示某个主体对数据拥有访问权限。
任何没有明确允许的内容都是禁止的。
安全策略示例:
allow(Everyone ,read ,webPages). allow(systemAdmin ,write ,webPages).
孙 哲等:基于网络流量的安全可达性推理方法
39
《软件》杂志欢迎推荐投稿:cosoft@
由于Datalog 是Prolog 语言的子集,所以可以将编码信息直接装载到一个Prolog 环境下并执行。
本文使用XSB 编码环境,因为它能支持Prolog 程序的嵌入执行。
嵌入是一种动态编程的形式,能够避免重复计算,这刚好能满足前文提到的单调性假设原则,从而降低攻击图生成的时间复杂度和空间复杂度。
此外,嵌入提供了完整的声明式逻辑编程,因为规则的顺序不会影响执行的结果。
安全分析框架如图1所示。
OVAL 扫描器在每台机器上运行并输出漏洞报告和相关的配置参数。
扫描结果,网络配置(用HACL 表示),推论规则和管理员定义的安全策略被加载到XSB 环境中。
图1 基于目标网络模型的可达性分析框架 Fig.1 Reachability analysis framework based
on target network model
1.2 漏洞规范设计
安全漏洞的具体描述由两部分组成:一是如何识别系统中存在的漏洞,二是漏洞对系统的影响。
识别规范仅用于扫描机器,而效果说明则用于推理过程。
目前,漏洞信息数据库已经将这些信息规范化,并以机器可读的格式提供这些信息。
开放漏洞评估语言(OVAL )是一种用于对指定机器配置检测的基于XML 的语言。
当发现新的软件漏洞时,OVAL 定义可以指定如何检查机器中漏洞的存在。
然后,将OVAL 定义提供给兼容OVAL 的扫描器,该扫描仪将执行特定的测试并报告结果。
目前,Windows ,Red Hat Linux 和Solaris 平台可以使用OVAL 漏洞定义。
符合OVAL 标准的扫描器可用于Windows 和Red Hat Linux 平台。
如表3所示,使用最新的OVAL 定义文件在一台机器上运行了OVAL 扫描程序,发现若干漏洞。
表3 某台机器的漏洞列表
Tab.3 A list of holes in a machine
OVAL ID
CVE ID
OVAL2819 CAN-2004-0427 OVAL2915 CAN-2004-0554 OVAL2961 CAN-2004-0495 OVAL3657 CVE-2002-1363
除了生成发现的漏洞列表之外,OVAL 扫描器还可以在系统特征模式中输出详细的机器配置信息。
其中一些信息对推理多级攻击很有用。
例如,服务程序监听的协议和端口号,结合以HACL 表示的防火墙规则和网络拓扑,有助于确定攻击者是否可以将恶意数据包发送给易受攻击的程序。
本文中用到的机器配置的推理谓词,如表4所示。
表4 推理谓词列表 Tab.4 Reasoning predicate list
表示形式
含义
networkService(Host ,Program ,Protocol ,Port ,Priv) networkService 描述服务程序监听的端口号和协议,以及程序在机器上的用户特权。
如果
同一个服务器在多个端口和协议下监听,则由多个networkService 语句描述。
clientProgram(Host ,Program ,Priv) clientProgram 描述客户端程序执行后的权限。
setuidProgram(Host ,Program ,Owner) setuidProgram 在系统及其所有者上指定一个setuid 可执行文件 filePath(H ,Owner ,Path) filePath 指定文件系统中特定路径的所有者
nfsExport(Server ,Path ,Access ,Client) nfsExport 描述了NFS 服务器上文件系统的哪一部分被导出到客户端 nfsMountTable(Client ,ClientPath ,Server ,
ServerPath)
nfsMountTable 描述了客户端机器上的NFS 安装表项
可以从OVAL 的网站上找到有关这些漏洞的详细信息。
例如,错误OVAL2961的OVAL 描述是:Linux 内核2.4和2.6中的多个未知漏洞允许本地用
户获得特权或访问内核内存,...
这个非正式的简短描述显示了漏洞的影响:如何利用漏洞及其可能造成的后果。
如果一个机器可
第39卷 第4期 软 件
40
《软件》杂志欢迎推荐投稿:cosoft@
读的数据库提供了一个bug 的效果信息,比如bug 2961只能在本地利用,那么就可以得出一个结论:如果所有的本地用户都是可信的,那么这个网络在面对远程攻击者是安全的。
遗憾的是,OVAL 不以机器可读格式提供有关漏洞影响的信息。
幸运的是,ICAT 数据库从两个方面分类了脆弱性的影响,可利用的范围和后果:
A. 可利用的范围:本地,远程
B. 利用后果:保密性损失,完整性损失,拒绝服务和特权升级
本地攻击要求攻击者在主机上已经有一些本地访问权限,而远程攻击则没有这个要求。
两个最常见的利用后果是特权升级和拒绝服务。
目前所有的OVAL 定义都有相应的ICAT 条目(两者可以通过CVE ID 进行交叉引用),本文将OVAL 和ICAT 合并到单个数据库中。
将上述ICAT 数据库中的分类转换为Datalog 子句:vulProperty(‘CVE-2004- 00495’,localExploit ,privEscalation).
2 可达性推理方法设计
可达性分析框架中的推理规则被声明为Datalog 子句。
在Datalog 的形式中,变量是一个以大写字母开头的标识符,常数以小写字母开头。
XSB 推理环境中的句子形式为Horn 子句:
L 0:- L 1,…,L n
这句话表示,如果L1,…,Ln 为真,那么L0也为真。
式子的左边被称为头,右边被称为主体。
一个没有主体的子句被称为事实,而有主体的句子被称为规则。
(1)利用规则
execCode (P ,H ,UserPriv )指示主体P 可以在机器H 上执行具有UserPriv 特权的任意代码。
netAccess (P ,H ,Protocol ,Port )表示主体P 可以通过协议将数据包发送到机器H 上的端口上。
对脆弱性的影响分类展现了它的利用方式以及利用后果。
本章第1小节已经列举了一个远程利用服务程序的规则。
以下是关于客户端程序重用漏洞的利用规则:
execCode(Attacker ,Host ,Priv) :-
vulExists(Host ,VulID ,Program),
vulProperty(VulID ,remoteExploit ,privEscala-tion),
clientProgram(Host ,Program ,Priv), malicious(Attacker).
规则的主体规定:1)Program 容易受到远程攻击;2)Program 是具有Priv 权限的客户端软件; 3)Attacker 来自于恶意用户可能存在的网络。
攻击的结果是攻击者可以使用权限Priv 来执行任意代码。
利用本地特权升级漏洞的规则如下:
execCode(Attacker ,Host ,Owner) :- vulExists(Host ,VulID ,Prog),
vulProperty(VulID ,localExploit ,privEscala-tion),
setuidProgram(Host ,Prog ,Owner), execCode(Attacker ,Host ,SomePriv),
malicious(Attacker).
在这个漏洞利用规则中,先决条件execCode 要求攻击者首先访问机器Host 。
攻击的结果是攻击者可以获得setuid 程序所有者的特权。
在本文的模型中,Linux 内核既是以root 身份运行的网络服务,又是由root 拥有的setuid 程序。
也就是说,通过内核中的特权晋级漏洞(本机或非本地)的结果是攻击者取得root 权限。
目前,ICAT 数据库没有提供对于利用后果是保密性损失或完整性损失的漏洞信息。
ICAT 统计数据显示,84%的漏洞被标记为特权升级或仅被标记为拒绝服务,实际上,特权升级漏洞是多级攻击中最常见的攻击目标。
基于Datalog 查询的可达性分析框架,一个重要特点是能够推理多级攻击。
在推理出一个确定的潜在攻击后,推理引擎能够发现攻击者可能会如何进一步入侵系统。
例如,下面的规则描述如果攻击者P 能够以Owner 的特权访问机器H ,那么他可以拥有Owner 拥有的任意访问文件的权限。
accessFile(P ,H ,Access ,Path) :- execCode(P ,H ,Owner), filePath(H ,Owner ,Path).
另一方面,若是攻击者可以篡改Owner 路径下的文件,他可以获得Owner 的权限。
这是因为木马程序可以通过修改执行二进制文件注入系统,然后Owner 在不小心执行木马程序之后,攻击者就能获得Owner 权限:
execCode(Attacker ,H ,Owner) :- accessFile(Attacker ,H ,write ,Path), filePath(H ,Owner ,Path), malicious(Attacker).
孙 哲等:基于网络流量的安全可达性推理方法
41
《软件》杂志欢迎推荐投稿:cosoft@
对于网络文件系统来说,一些多级攻击甚至能够通过正常的软件行为达到入侵目的。
例如,目前NFS 文件共享系统在许多机构中被广泛使用,这为攻击者提供了入侵契机。
攻击者在可以与NFS 服务器通信的计算机上获得root 权限,然后根据文件服务器的配置,攻击者能够访问服务器上的任何文件。
accessFile(P ,Server ,Access ,Path) :- malicious(P),
execCode(P ,Client ,root),
nfsExportInfo(Server ,Path ,Access ,Client),hacl(Client ,Server ,rpc ,100003).
hacl(Client ,Server ,rpc ,100003)是主机访问控制列表的一个实例,它指定Client 可以通过NFS (一个编号为100003的RPC (远程过程调用)协议)与Server 交谈。
安全策略规定每个主体可以访问什么数据。
每个主体和数据都有一个符号名称,每份政策声明都是这种形式:
allow(Principal ,Access ,Data).
参数可以是常量或变量(变量以大写字母开头,可以匹配任何常量)。
以下是一个示例策略:
allow(Everyone ,read ,webPages). allow(user ,Access ,projectPlan). allow(sysAdmin ,Access ,Data).
这段策略表示Everyone 可以阅读webPages ,user 可以访问projectPlan ,sysAdmin 可以访问任意数据。
任何未正式声明的内容都是不被允许的。
解析算法分为两个阶段:攻击模拟和方案检测。
在攻击模拟阶段,所有可能的数据访问都可能是由于多阶段和多主机的攻击行为引起的。
以下为Datalog 实现程序:
access(P ,Access ,Data) :- dataBind(Data ,H ,Path), accessFile(P ,H ,Access ,Path).
也就是说,如果Data 存储在路径Path 下的机器H 上,并且主体P 可以访问该路径下的文件,则P 可以访问Data 。
由于XSB 的嵌入机制保证每个事实只计算一次,所以攻击模拟阶段的复杂度是多项式的。
在方案检测阶段,将攻击模拟阶段输出的数据访问元组与给定的安全策略进行比较。
如果出现策略之外的数据访问元组,则说明存在恶意入侵行为。
以下Prolog 程序执行策略检查:
policyViolation(P ,Access ,Data) :- access(P ,Access ,Data), not allow(P ,Access ,Data).
3 实验分析
如图2所示,本次实验使用的网络拓扑结构分为三个子网,包含两个防火墙,一个文件服务器,一个网页服务器,一个工作站,攻击者的初始位置位于Internet 。
DMZ
Internal
webServer
workStation
projectPlan
FileServer
图2 网络环境实例
Fig.2 Network environment instance
实验网络由两个防火墙分隔出三个区域互联网(internet ),隔离区(dmz )和内网(internal )。
管理员拥有网络服务器(webserver ),工作站(work-Station )和文件服务器(fileserver )的管理权。
内部用户如果有资源请求,有权使用工作站。
这个网络环境的主机访问控制列表如表5所示。
下列Datalog 子句描述了网络中的三台服务器配置信息如表6所示:
fileServer 通过NFS 协议为webServer 和workstation 提供文件服务。
workStation 由许多主机构成的,这些主机由管理员统一管理,而且系统内软件配置也相同。
管理员在fileServer 上的/export/ share 目录下设置了应用程序二进制文件的集合,方便在每台主机上安装应用,这些二进制文件通过NFS 协议导出到workStation 。
fileServer 目录/export/ www 中的内容被导出到webServer 。
第39卷 第4期 软 件
42
《软件》杂志欢迎推荐投稿:cosoft@
表5 访问控制列表 Tab.5 Access control list
描述信息
含义
hacl(internet ,webServer ,tcp ,80) Internet 可以通过tcp 协议访问webServer 的80端口 hacl(webServer ,fileServer ,rpc ,100003) webServer 可以通过NFS (网络文件系统,一个编号为100003的RPC
(远程过程调用)协议)访问fileServer
hacl(webServer ,fileServer ,rpc ,100005)
webServer 可以通过mountd (安装协议,一个编号为100005的RPC (远程过程调用)协议)访问fileServer
hacl(fileServer ,AnyHost ,AnyProtocol ,AnyPort) fileServer 可以任意访问内网主机 hacl(workStation ,AnyHost ,AnyProtocol ,AnyPort) WorkStation 可以任意访问内网主机 hacl(H ,H ,AnyProtocol ,AnyPort)
同子网下的任意主机可互相访问
表6 服务器配置信息
Tab.6 Server configuration information
描述信息
含义
networkService(webServer ,httpd ,tcp ,80,apache) 服务程序httpd 在webServer 上监听tcp 协议和80端口,它的权限级别是
apache 默认权限
nfsMount(webServer ,’/www’,fileServer ,’/export/www’)通过mountd 协议响应webServer 的安装请求,返回fileServer 的安装列表’/export/www’到’/www’目录中
networkService(fileServer ,nfsd ,rpc ,100003,root)
服务程序nfsd 在fileServer 上监听NFS 协议请求,它的权限级别是root
networkService(fileServer ,mountd ,rpc ,100005,root)服务程序mountd 在fileServer 上监听mountd 协议请求,他的权限级别是root nfsExport(fileServer ,’/export/share’,read ,workStation)
通过NFS 协议,workStation 可以从fileServer 的’/export/share’路径下读取
文件
nfsExport(fileServer ,’/export/www’,read ,webServer)通过NFS 协议,webServer 可以从fileServer 的’/export/www’路径下读取文件nfsMount(workStation ,‘/usr/local/share’,fileServer ,‘/export/share’)
通过mountd 协议响应workStation 的安装请求,返回fileServer 的安装列表
‘/export/share’到/usr/local/share’目录中
本文使用Nessus 作为漏洞扫描工具,对目标网络进行扫描后,将漏洞信息转化为Datalog 子句结果如表7所示。
表7 漏洞信息列表
Tab.7 Vulnerability information list
描述信息
含义
vulExists(workStation ,
’CAN-2004-0427’,kernel) workStation 内核存在id 为CAN-2004-0427的漏洞
vulExists(workStation , ’CAN-2004-0554’,kernel) workStatio 内核n 存在id 为CAN-2008-0554的漏洞
vulExists(workStation , ’CAN-2012-0495’,kernel) workStation 内核存在id 为CAN-2012-0554的漏洞
vulExists(webServer , ’CVE-2002-0392’,httpd)
webServer 的httpd 服务程序存在id 为CVE-2002-0392的漏洞
vulExists(fileServer , ’CAN-2013-0252’,mountd) fileServer 的mountd 服务程序存在id 为CAN-2003-0252的漏洞
虽然实际上workStation 有三个漏洞,但三个漏洞是仅限本地利用的内核漏洞。
由于只有受信任的用户才能访问这些主机,所以攻击者无法在这三个
漏洞上做文章。
而CVE-2002-0392和CAN-2013-0252这两个漏洞均为远程可执行漏洞,并且它们的执行后果为权限升级。
CVE 的英文全称是“Common Vulnerabi-lities & Exposures ”,而以CAN 为前缀的漏洞表示它还未被CVE 编辑委员会,但也会对公众开放。
将ICAT 数据库中信息转化为Datalog 子句如表8所示。
表8 漏洞功能列表
Tab.8 Vulnerability function list
描述信息
含义
vulProperty(’CVE-2002-0392’,remoteExploit ,privEscalation)Id 为CVE-2002-0392的漏洞
属于远程可执行漏洞,利用结
果为权限提升 vulProperty(’CAN-2013-0252’,remoteExploit ,privEscalation)Id 为CAN-2013-0252的漏洞属于远程可执行漏洞,利用结
果为权限提升
XSB 推理引擎结合上述输入信息执行搜索,找出所有潜在违反安全策略的操作,将得出的结果以。