下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 基于领域相关语言的拒绝服务攻击描述语言设计文章编号:1001-9081(2012)01-0020-05 doi:10.3724/sp.j.1087.2012.00020摘 要:鉴于抗攻击测试对攻击操作可信、可控、有效的基本要求,面向拒绝服务(dos)攻击实现,基于领域相关语言(dsl)的思想,设计简单快速实现测试用例的dos攻击描述语言(dasl)。通过定义攻击元,并基于对样本的分析设计构造语言的领域相关语法元素;利用libnet实现语言的语义功能函数;以antlr为支撑,设计实现语言的解释环境。实验验证表明,利用该语言构建dos攻击,在保证功能有效、过程可控的前提下,能够大幅降低dos攻击
2、开发过程的复杂程度,减少代码编写量,提高开发效率。该语言的建立,确保了抗攻击测试过程中dos攻击操作的基本要求,为实施dos攻击渗透测试的提供了有力保障。关键词:抗攻击测试;领域相关语言;拒绝服务攻击描述语言;原子攻击;攻击元中图分类号: tp393.08 文献标志码:aabstract:considering the basic need of the attack resistance test for trustworthiness, controllability and effectiveness of attack operation, a denial of service (d
3、os) 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 se
4、mantic 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
5、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 unit0 引言基于渗透测试的主机系统抗攻击测试,是一种最为贴近实际的系统安全性分析与检测手段。该方法更侧重于一种对安全问题与安全防护能力
6、的实践性验证和测试衡量,它有效地结合了系统自身状态与外在威胁因素影响,能够对安全隐患、威胁及防护程度进行更为客观实际的反映。抗攻击测试需要大量具有实际攻击意义的攻击工具来支持。为了保证测试过程及结果分析的正确性,要求使用的工具具有可信性、可控性及无附加操作。然而,直接使用网络上现有各类攻击工具,鉴于其开发者的不确定、源码的不公开,对上述具体要求无法保证;而利用c语言等高级编程语言来完全重新开发则是一项复杂繁琐的工程,需要大量的人力和资源保障。为此,一种语法结构简洁易懂,开发编写简单,代码量少,能够快速实现攻击效果的攻击语言,成为抗攻击测试全面推广应用的基本需求。目前,除通用类编程语言外,可用于
7、实现攻击的方式,主要可有nasl(nessus attack scripting language)1、casl(compact application solution language)2、metasploit3等。其中,nasl和casl主要面向入侵检测,关注于模拟攻击特征数据包结构,在攻击调度与控制、分布式处理及应用级实现方面不足,难以应对新攻击形式的出现;metasploit仅是面向缓冲区溢出类攻击的开源架构,其功能依赖于攻击与不同人员提供的数据载荷的配对,对可控与可信性无法保障。本文即基于dsl的基本思想,面向抗攻击测试的具体要求,以构建拒绝服务(denial of service
8、, dos)攻击的专项测试需求为目标,设计了一种脚本语言。1 语言定位与基本设计原则1.1 设计基础与功能定位本语言的设计,以领域相关语言(domain specific language, dsl)思想为基础。dsl是关注特定领域表述有限的一门计算机程序语言。其基本思想是“求专不求全”,不像通用语言如c语言那样目标范围涵盖一切软件问题,而是专门针对某一特定问题的计算机语言4-6。据此,面向抗攻击测试过程中的攻击操作,定位于开发实现测试所需的具体dos攻击,以建立一种代码编写简单、语法结构易懂、开发效率高、代价低的攻击实现方法为目标,来设计本语言,以保障抗攻击测试中使用的dos攻击可信、可控、
9、可用,从而有效支撑抗攻击测试的实施。1.2 设计原则基于抗攻击测试中对攻击实施操作的具体需要,以构建dos攻击实现为目标,该语言的设计要遵从以下原则。1)面向有限表述和领域关注。与通用语言相比,本语言的设计只对针对抗攻击测试领域做有限的支持,不奢求实现通用完整的应用;仅对于建立实现各种符合测试需要的dos攻击,予以完善的支持。2)确保攻击功能性实现、有效。这是语言设计的基本要求,要能够保证用该语言开发出的dos攻击能够实现攻击原理所描述的效果,具有可用性。同时,鉴于抗攻击测试的具体要求,对实现攻击要具有完善的可控性,具有执行强度、执行时间等多种条件可控制。3)支持攻击属性表述,支撑测试需求。语
10、言的设计还要与抗攻击测试整体需求相应,除实现dos攻击功能,还要具有对dos攻击的属性特征的全面描述功能,以便为抗攻击测试方案的建立与测试结果的评估提供有关攻击属性特征描述,对抗攻击测试实施提供支撑。4)设计语法简单易懂,结构灵活。语法设计方面要易于理解,以降低对开发人员的能力要求;开发程序结构灵活,便于调试及更换功能模块以实现不同类型攻击或不同测试需求的控制要求。5)开发过程容易,代码编写量少。语言设计的初衷即是要弥补通用开发语言编写过程的冗长与复杂,因此,语言设计要简洁,应封装各类使用复杂的功能函数,以透明形式为开发用户提供使用,降低开发人员实际编写的复杂程度和所需的代码录入量。6)具有通
11、用性和扩展能力。语言设计要具有适当的扩展功能,能够添加新的语法模块,以能够满足不断出现的新的dos攻击形式的需求;同时,语言的语法设计还要具有一定的通用性,以扩展该语言的使用,建立满足抗攻击测试中各种不同类型攻击实现的局域范围内通用。1.3 dasl定义基于上述分析,采用dsl的思想,将该语言定位于dos攻击的脚本描述语言,并对该语言做如下定义。定义1 dos攻击描述语言(dos attack script language, dasl)。它是一种应用于抗攻击测试领域的,用于建立测试所需dos攻击工具的领域专用脚本语言。该语言用于开发测试需求的各种不同dos攻击,在保证攻击有效性的基础上,实现
12、对攻击过程的全面可控,以支持测试过程的全面可信。2 dasl语法元素设计dasl设计,遵从一般过程,分为语言设计与解释器实现两部分,其中语言设计包括三部分:领域相关语法元素设计、领域无关语法元素设计和具体语义功能函数实现。2.1 领域相关语法元素dasl的领域相关部分语言元素指与dos攻击实现相关的基本动作与操作元素,用以实现攻击的阶段特征和属性描述,它是dasl设计的核心要素,决定了dasl的dos攻击开发能力与描述能力。dasl的领域相关语法元素,采用样本分析的方法确立。为此,提出原子攻击与攻击元的概念,并以攻击元为基本单元,以构建dos原子攻击为目标,建立领域相关语法元素。定义2 原子攻
13、击(atomic attack)。只为实现全部攻击流程中一个目的,对目标单一脆弱性的一次利用,实现一种基本攻击效果的基础、结构完整的攻击功能实现。原子攻击是攻击实现的最小结构单元,不能够再进行拆分,否则将不具有攻击的性质。定义3 攻击元(attack unit)。构造攻击过程中具有独立功能的基本结构单元,是原子攻击实现过程中为了达到单一过程目标的阶段性完整独立的功能步骤。基于样本分析dos攻击的攻击元,共选了取40个典型的dos攻击样本,通过对其实现代码的分析与功能分割,获取了数据操作类、数据包操作类、数据包收发类、网络初始化与销毁类和过程控制类攻击元共30个7。同时,考虑测试评估对攻击属性的
14、描述需求和攻击实现多样化、防探测要求,附加对攻击属性特征进行全面描述的描述语言元素和攻击特征变异类语言元素。增加攻击特征变异类语言元素,是由于现今的常见攻击,其相关特征均已被入侵检测系统或防火墙定义为相应规则,导致常见攻击阻断于入侵检测系统或防火墙,进而无法准确衡量渗透测试的效果和目标设备对相应攻击的抵抗能力。同时,基于重放攻击的原理,有些数据包可直接用来作为攻击数据使用,但其某些敏感部位或时效性结构,如生存时间(time to live, ttl),需要进行修改。因此,面向抗攻击测试,对攻击的特征进行变异处理十分必要,进而需要设计相应的特征变异语言元素。综上分析,nasl设计中,对每个攻击元
15、均映射一个领域相关语法元素与之相应;同时加以测试需求的属性描述与攻击特征变异要求,共构造出7类45个dos攻击的领域相关语法元素,具体参见表1。2.2 领域无关语法元素领域无关语言元素是程序设计语言本身所应固有的,不局限于任何一种或者几种特定应用领域的语法元素,主要表现为各种基本的表达式、及其相关的计算与控制语句的解释,属于可应用于各种程序设计语言的通用语言元素。它是基本语言元素,既与特定具体应用需求无关,又是实现应用需求的基本保障。为保证语言设计的基本功能实现,同时为便于使用与理解,在设计dasl的领域无关语言元素时,参考常用的c语言的基本语法,设计并定义了6类领域无关语法元素,包括标识符、
16、数据类型、运算符等。具体参见表2。2.3 基于libnet的语义功能函数设计针对每一个领域相关语法元素,均设计与其相应的语义功能函数来实现其指定的封装功能,建立用户的透明访问与使用,从而降低用户级代码编写量,简化攻击开发过程的复杂程度。该语义功能函数即为提供用户调用使用的内置函数。通过对各类入侵检测系统预警dos攻击的分析8-9,dos攻击特征的表象,主要反映为各类经过巧妙分析与设计后构造的基础数据包结构,灵活构造与调整各类数据包的特征是开发dos攻击的要求。据此,在实现dasl中所需的数据包相关操作功能函数时,鉴于功能全面、实现灵活的要求,采用了基于网络工具开发包libnet10的调用方式。
17、libnet是一种高层次的应用程序编程接口(application programming interface, api)函数库,提供了全方位,包括ip层和链路层来构造网络数据包的功能。它允许开发者利用之构造并发送各类所需的网络数据包。同时,libnet也提供了对底层网络数据包的构造、修改和发送的高级接口,以满足不同开发层次的要求。该函数库的优点在于,它隐藏了很多底层细节,使开发者不需要再花费大量精力来关注与分析这些烦琐的问题。除可用于构造各种不同协议的数据包外,libnet还可构造任意需求数据内容,不单可以构造固定格式的协议数据,也可以构造任意内容的负载数据,因此该功能也为数据构造类语言元素
18、的实现提供了有利的支撑。为此,在实现数据包构造类和数据构造类语言元素时,有效使用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,/*片偏移;初值
19、: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: inst
20、r_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;arg_decl: | arg_decl_1;arg_decl_1: identifier|identifier , arg_decl_1/*语句结构*/block: instr_list | ;instr_list: instr|instr instr_list/*语句*/instr: simple_instr ; |block|if_block|loop;/*简单语句*/simple_instr : aff|post_pre_incr|func_call|ret|inc|loc|glob|break|continue|/*空语句*/*返回*/ret:return expr|return;/*if语句*/if_bl
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年阳泉市矿区中小学教师招聘笔试参考试题及答案解析
- 2025年和田县中小学教师招聘笔试参考题库及答案解析
- 2025年牙科种植手术服务合同(术后疼痛管理)
- 棒垒球内场训练
- 2025年曲靖宣威市教师招聘考试参考题库及答案解析
- 重度脂肪肝健康宣教
- 2025年上海市浦东新区教师招聘参考题库及答案解析
- 【必做】广东省道路工程检测培训考核历年考试真题库及答案(高频500题)
- 2025年虚拟形象商业化授权协议
- 2025年肥西县中小学教师招聘笔试备考试题及答案解析
- 基础有机化学实验智慧树知到期末考试答案章节答案2024年浙江大学
- 深圳地区分布式光伏电站并网流程
- JJG 621-2012 液压千斤顶行业标准
- 质量管理课程-Weibull分布
- 普华永道品牌管理课件
- 经皮肺穿刺活检术护理查房
- 物业工程部人员服务意识培训
- 统计学基础及其应用总体分布分析
- 戴氏教育集团企业文化
- 植物学第五章第一二节蕨类课件
- 美容皮肤科学智慧树知到答案章节测试2023年西安海棠职业学院
评论
0/150
提交评论