Abstract:
Considering the basic need of the attack resistance test for trustworthiness, controllability and effectiveness of attack operation, a Denial of Service (DoS) Attack Script Language (DASL) was designed based on Domain Specific Language (DSL), which could be used to develop DoS attacks simply, quickly and conveniently. In this article, attack unit was defined, the domain specific syntactic was constructed based on the analysis of attack samples, the semantic function was realized based on LIBNET, and the interpreter of DASL was designed on the basis of ANTLR. The experimental results show that, attacks developed by DASL were effective and controllable. And DASL can lower the complexity of development, reduce the amount of code to write, increase the efficiency of development and provide powerful support for DoS penetration testing.
Key words: attack resistance test; Domain Specific Language (DSL); Denial of Service (DoS) Attack Script Language (DASL); atomic attack; attack unit
0 引言
基于渗透测试的主机系统抗攻击测试,是一种最为贴近实际的系统安全性分析与检测手段。该方法更侧重于一种对安全问题与安全防护能力的实践性验证和测试衡量,它有效地结合了系统自身状态与外在威胁因素影响,能够对安全隐患、威胁及防护程度进行更为客观实际的反映。
抗攻击测试需要大量具有实际攻击意义的攻击工具来支持。为了保证测试过程及结果分析的正确性,要求使用的工具具有可信性、可控性及无附加操作。然而,直接使用网络上现有各类攻击工具,鉴于其开发者的不确定、源码的不公开,对上述具体要求无法保证;而利用C语言等高级编程语言来完全重新开发则是一项复杂繁琐的工程,需要大量的人力和资源保障。
为此,一种语法结构简洁易懂,开发编写简单,代码量少,能够快速实现攻击效果的攻击语言,成为抗攻击测试全面推广应用的基本需求。目前,除通用类编程语言外,可用于实现攻击的方式,主要可有NASL(Nessus Attack Scripting Language)[1]、CASL(Compact Application Solution Language)[2]、Metasploit[3]等。其中,NASL和CASL主要面向入侵检测,关注于模拟攻击特征数据包结构,在攻击调度与控制、分布式处理及应用级实现方面不足,难以应对新攻击形式的出现;Metasploit仅是面向缓冲区溢出类攻击的开源架构,其功能依赖于攻击与不同人员提供的数据载荷的配对,对可控与可信性无法保障。
本文即基于DSL的基本思想,面向抗攻击测试的具体要求,以构建拒绝服务(Denial of Service, DoS)攻击的专项测试需求为目标,设计了一种脚本语言。
1 语言定位与基本设计原则
1.1 设计基础与功能定位
本语言的设计,以领域相关语言(Domain Specific Language, DSL)思想为基础。DSL是关注特定领域表述有限的一门计算机程序语言。其基本思想是“求专不求全”,不像通用语言如C语言那样目标范围涵盖一切软件问题,而是专门针对某一特定问题的计算机语言[4-6]。
据此,面向抗攻击测试过程中的攻击操作,定位于开发实现测试所需的具体DoS攻击,以建立一种代码编写简单、语法结构易懂、开发效率高、代价低的攻击实现方法为目标,来设计本语言,以保障抗攻击测试中使用的DoS攻击可信、可控、可用,从而有效支撑抗攻击测试的实施。
1.2 设计原则
基于抗攻击测试中对攻击实施操作的具体需要,以构建DoS攻击实现为目标,该语言的设计要遵从以下原则。
1)面向有限表述和领域关注。与通用语言相比,本语言的设计只对针对抗攻击测试领域做有限的支持,不奢求实现通用完整的应用;仅对于建立实现各种符合测试需要的DoS攻击,予以完善的支持。
2)确保攻击功能性实现、有效。这是语言设计的基本要求,要能够保证用该语言开发出的DoS攻击能够实现攻击原理所描述的效果,具有可用性。同时,鉴于抗攻击测试的具体要求,对实现攻击要具有完善的可控性,具有执行强度、执行时间等多种条件可控制。
3)支持攻击属性表述,支撑测试需求。语言的设计还要与抗攻击测试整体需求相应,除实现DoS攻击功能,还要具有对DoS攻击的属性特征的全面描述功能,以便为抗攻击测试方案的建立与测试结果的评估提供有关攻击属性特征描述,对抗攻击测试实施提供支撑。
4)设计语法简单易懂,结构灵活。语法设计方面要易于理解,以降低对开发人员的能力要求;开发程序结构灵活,便于调试及更换功能模块以实现不同类型攻击或不同测试需求的控制要求。
5)开发过程容易,代码编写量少。语言设计的初衷即是要弥补通用开发语言编写过程的冗长与复杂,因此,语言设计要简洁,应封装各类使用复杂的功能函数,以透明形式为开发用户提供使用,降低开发人员实际编写的复杂程度和所需的代码录入量。6)具有通用性和扩展能力。语言设计要具有适当的扩展功能,能够添加新的语法模块,以能够满足不断出现的新的DoS攻击形式的需求;同时,语言的语法设计还要具有一定的通用性,以扩展该语言的使用,建立满足抗攻击测试中各种不同类型攻击实现的局域范围内通用。
1.3 DASL定义
基于上述分析,采用DSL的思想,将该语言定位于DoS攻击的脚本描述语言,并对该语言做如下定义。
定义1 DoS攻击描述语言(DoS Attack Script Language, DASL)。它是一种应用于抗攻击测试领域的,用于建立测试所需DoS攻击工具的领域专用脚本语言。该语言用于开发测试需求的各种不同DoS攻击,在保证攻击有效性的基础上,实现对攻击过程的全面可控,以支持测试过程的全面可信。
2 DASL语法元素设计
DASL设计,遵从一般过程,分为语言设计与解释器实现两部分,其中语言设计包括三部分:领域相关语法元素设计、领域无关语法元素设计和具体语义功能函数实现。 (责任编辑:南粤论文中心)转贴于南粤论文中心: http://www.nylw.net(南粤论文中心__代写代发论文_毕业论文带写_广州职称论文代发_广州论文网)