2.1 领域相关语法元素 DASL的领域相关部分语言元素指与DoS攻击实现相关的基本动作与操作元素,用以实现攻击的阶段特征和属性描述,它是DASL设计的核心要素,决定了DASL的DoS攻击开发能力与描述能力。DASL的领域相
2.1 领域相关语法元素
DASL的领域相关部分语言元素指与DoS攻击实现相关的基本动作与操作元素,用以实现攻击的阶段特征和属性描述,它是DASL设计的核心要素,决定了DASL的DoS攻击开发能力与描述能力。DASL的领域相关语法元素,采用样本分析的方法确立。为此,提出原子攻击与攻击元的概念,并以攻击元为基本单元,以构建DoS原子攻击为目标,建立领域相关语法元素。
定义2 原子攻击(Atomic Attack)。只为实现全部攻击流程中一个目的,对目标单一脆弱性的一次利用,实现一种基本攻击效果的基础、结构完整的攻击功能实现。原子攻击是攻击实现的最小结构单元,不能够再进行拆分,否则将不具有攻击的性质。
定义3 攻击元(Attack Unit)。构造攻击过程中具有独立功能的基本结构单元,是原子攻击实现过程中为了达到单一过程目标的阶段性完整独立的功能步骤。
基于样本分析DoS攻击的攻击元,共选了取40个典型的DoS攻击样本,通过对其实现代码的分析与功能分割,获取了数据操作类、数据包操作类、数据包收发类、网络初始化与销毁类和过程控制类攻击元共30个[7]。
同时,考虑测试评估对攻击属性的描述需求和攻击实现多样化、防探测要求,附加对攻击属性特征进行全面描述的描述语言元素和攻击特征变异类语言元素。增加攻击特征变异类语言元素,是由于现今的常见攻击,其相关特征均已被入侵检测系统或防火墙定义为相应规则,导致常见攻击阻断于入侵检测系统或防火墙,进而无法准确衡量渗透测试的效果和目标设备对相应攻击的抵抗能力。同时,基于重放攻击的原理,有些数据包可直接用来作为攻击数据使用,但其某些敏感部位或时效性结构,如生存时间(Time To Live, TTL),需要进行修改。因此,面向抗攻击测试,对攻击的特征进行变异处理十分必要,进而需要设计相应的特征变异语言元素。
综上分析,NASL设计中,对每个攻击元均映射一个领域相关语法元素与之相应;同时加以测试需求的属性描述与攻击特征变异要求,共构造出7类45个DoS攻击的领域相关语法元素,具体参见表1。
2.2 领域无关语法元素
领域无关语言元素是程序设计语言本身所应固有的,不局限于任何一种或者几种特定应用领域的语法元素,主要表现为各种基本的表达式、及其相关的计算与控制语句的解释,属于可应用于各种程序设计语言的通用语言元素。它是基本语言元素,既与特定具体应用需求无关,又是实现应用需求的基本保障。为保证语言设计的基本功能实现,同时为便于使用与理解,在设计DASL的领域无关语言元素时,参考常用的C语言的基本语法,设计并定义了6类领域无关语法元素,包括标识符、数据类型、运算符等。具体参见表2。
2.3 基于Libnet的语义功能函数设计
针对每一个领域相关语法元素,均设计与其相应的语义功能函数来实现其指定的封装功能,建立用户的透明访问与使用,从而降低用户级代码编写量,简化攻击开发过程的复杂程度。该语义功能函数即为提供用户调用使用的内置函数。
通过对各类入侵检测系统预警DoS攻击的分析[8-9],DoS攻击特征的表象,主要反映为各类经过巧妙分析与设计后构造的基础数据包结构,灵活构造与调整各类数据包的特征是开发DoS攻击的要求。据此,在实现DASL中所需的数据包相关操作功能函数时,鉴于功能全面、实现灵活的要求,采用了基于网络工具开发包Libnet[10]的调用方式。
Libnet是一种高层次的应用程序编程接口(Application Programming Interface, API)函数库,提供了全方位,包括IP层和链路层来构造网络数据包的功能。它允许开发者利用之构造并发送各类所需的网络数据包。同时,Libnet也提供了对底层网络数据包的构造、修改和发送的高级接口,以满足不同开发层次的要求。该函数库的优点在于,它隐藏了很多底层细节,使开发者不需要再花费大量精力来关注与分析这些烦琐的问题。除可用于构造各种不同协议的数据包外,Libnet还可构造任意需求数据内容,不单可以构造固定格式的协议数据,也可以构造任意内容的负载数据,因此该功能也为数据构造类语言元素的实现提供了有利的支撑。为此,在实现数据包构造类和数据构造类语言元素时,有效使用Libnet,通过封装、透明接口、统一调用等方式,既降低了语言设计的实现难度,又为DoS攻击开发提供了全面的支持。
基于Libnet的IP包和以太网数据帧功能操作函数设计示意如下:
程序前
P_ip_build(data,/*包数据部分*/
ip_src,/*源IP地址*/
ip_dst,/*目的IP地址*/
ip_hl,/*IP报头长度,以4字节为单位;初值:5*/
ip_id,/*数据包ID*/
ip_sum,/*校验和;设置参数,自动计算并填写*/
ip_ttl,/*生存期;初值:64(一般)*/
ip_off,/*片偏移;初值:0*/
ip_len,/*数据包长度,以字节为单位;值:data部分长度+20*/
ip_p,/*协议标识:IP协议*/
ip_tos,/*服务类型;初值:0*/
ip_v,/*IP版本;初值:4*/)
P_ethernet_build(data,/*包数据部分*/
s_haddr,/*源节点硬件地址*/
d_haddr,/*目的节点硬件地址*/
id,/*以太网数据包类型*/)
程序后
2.4 语言的BNF描述
利用巴科斯范式(BackusNaur Form, BNF)对DASL语法进行形式化描述如下:
程序前
start: describe intr_decl_list;
instr_decl_list: instr_decl|instr_decl instr_decl_list;
instr_decl: instr|func_decl;
/*攻击属性特征描述*/
describe: description block;
/*变量声明*/
glob: global arg_decl;
loc: local arg_decl;
/*用户函数声明*/
func_decl: function identifier ′(′ arg_decl ′)′ block; (责任编辑:南粤论文中心)转贴于南粤论文中心: http://www.nylw.net(南粤论文中心__代写代发论文_毕业论文带写_广州职称论文代发_广州论文网)
顶一下
(0)
0%
踩一下
(0)
0%
版权声明:因本文均来自于网络,如果有版权方面侵犯,请及时联系本站删除.