西电捷通完整性测试技术与网络安全协议检测系统互操作

摘要 随着网络安全协议定义和实现的复杂化,以及攻击手段、探测技术的不断提高,因协议交互一方出错而引发对端设备异常的情况时有发生。对此“完整性测试技术”正好可以解决这类情况。原因是“完整性测试技术”涵盖了协议报文文法和行为模型,它不仅包括输入数据验证层面,而且还渗透于更深层次的协议功能逻辑层面,是一种更加完备、更为彻底的协议安全与健壮性测试技术。目前这种“完整性测试技术”已在西电捷通所开发/联合开发的多个安全协议检测系统中得到应用,并且彰显出优良的安全防护效果。

关键词  完整性测试技术 网络安全协议检测系统

 

拒绝网络安全协议实现过程中的附加安全风险

无协议,无网络。网络协议作为网络虚拟空间的语法规则,通过规定通信信息采用的格式规则,从而集合网络上所有端口,包括网络服务器、计算机及交换机、路由器、防火墙等设备的互连互通。伴随着网络虚拟空间的发展,人们对于网络安全的需求愈发迫切,网络安全协议由此产生。作为网络协议的一部分,与其它部分相比,网络安全协议不仅文本数量较多,而且涉及技术层面相当复杂,其除了涵盖网络通信本身,还涉及多种密码算法的使用,比如无线局域网安全WAPI协议、有线局域网安全TLSec协议、RFID空口安全TRAIS协议等等。

协议实现过程中存在的主观因素导致“安全风险”增大。网络协议多是以自然语言描述的文本,实现者对于协议文本细节的不同理解以及实现过程中的非形式化因素,都会导致不一致的,甚至错误的协议实现;即便协议实现正确,也不能保证不同的实现彼此之间能够准确无误地通信。而网络安全协议的复杂性,使得协议实现过程和测试过程中,因为主观因素而导致的安全风险成倍增大,如协议文本定义单调递增,实现仅仅是增加或测试仅仅是大于,此时可能会降低安全性或者出现安全漏洞。为了拒绝协议实现过程中主观因素导致的安全风险,较之常规测试手段,我们需要一些更有效、更完备的网络安全协议测试方法。

健壮性测试高效防御人为构造的攻击报文

目前,安全协议测试技术包括四种类型的测试,即(1)一致性测试(Conformance Testing):检测协议实现本身与协议规范的符合程度;(2)互操作性测试(Interoperability Testing):基于某一协议检测不同协议实现间互操作互通信的能力;(3)性能测试(Performance Testing):检测协议实现的性能指标;(4)健壮性测试(Robust Testing):检测协议实现在各种恶劣的环境下运行的能力(如注入干扰报文、通信故障、信道被切断等)。

特别是健壮性测试技术和技术实现近年来越来越多地受到网络安全界的重视和关注。与传统的一致性测试技术相比,它可以更好地防御人为构造的攻击报文。

“完整性测试技术”是网络安全协议检测系统的利器

根据软件或安全协议实现可能受到攻击的三个不同的层面,即输入访问(input access)、输入数据验证(input data validation)、实现的功能(implemented function),采用J.Antunes的模糊测试理论模型,可以将健壮性测试划分为以下三个阶段或者三类:

3.1随机模糊测试(Randomfuzzing);

3.2文法模糊测试(Syntax fuzzing);

3.3综合模糊测试(Synthesizedfuzzing)。

而“完整性测试技术”是一种综合模糊测试的具体实现。根据具体的测试协议对象,“完整性测试技术”可以从如下三个方面设计测试用例。

3.4协议文法验证:选取协议报文的关键字段,随机打乱、人为设计一些错误的赋值,或改变该字段的长度。

3.5防护性编码验证:根据协议报文所使用的算法,破坏协议报文本身的校验和、签名和加密数据等防护验证字段。

3.6协议状态验证:根据协议交互过程中所处状态的不同,设计错误的状态诱导报文。

“完整性测试技术”是网络安全协议检测系统的利器,能够有效甄别网络安全设备在网络安全协议实现层面是否完整,是否能够有效抵抗人为攻击,从而保障网络设备的健壮性,是营造网络安全环境的重要测试手段,是一种更加完备、更为彻底的健壮性测试技术。

目前,西电捷通的多个安全协议检测系统均采用了“完整性测试技术”。这些检测系统在协议标准报文的关键字段中,设计了一簇格式正确,但行为“错误”的程序库;利用该“错误”库的处理逻辑,检测系统可以诱导被测设备完成协议完整性的测试,并根据被测设备的不同响应行为,来判断被测设备在协议实现上是否完备,探查被测设备的工程实现是否藏有缺陷,为网络安全协议测试保驾护航。

资源下载链接为: https://pan.quark.cn/s/22ca96b7bd39 在当今的软件开发领域,自动化构建发布是提升开发效率和项目质量的关键环节。Jenkins Pipeline作为一种强大的自动化工具,能够有效助力Java项目的快速构建、测试及部署。本文将详细介绍如何利用Jenkins Pipeline实现Java项目的自动化构建发布。 Jenkins Pipeline简介 Jenkins Pipeline是运行在Jenkins上的一套工作流框架,它将原本分散在单个或多个节点上独立运行的任务串联起来,实现复杂流程的编排可视化。它是Jenkins 2.X的核心特性之一,推动了Jenkins从持续集成(CI)向持续交付(CD)及DevOps的转变。 创建Pipeline项目 要使用Jenkins Pipeline自动化构建发布Java项目,首先需要创建Pipeline项目。具体步骤如下: 登录Jenkins,点击“新建项”,选择“Pipeline”。 输入项目名称和描述,点击“确定”。 在Pipeline脚本中定义项目字典、发版脚本和预发布脚本。 编写Pipeline脚本 Pipeline脚本是Jenkins Pipeline的核心,用于定义自动化构建和发布的流程。以下是一个简单的Pipeline脚本示例: 在上述脚本中,定义了四个阶段:Checkout、Build、Push package和Deploy/Rollback。每个阶段都可以根据实际需求进行配置和调整。 通过Jenkins Pipeline自动化构建发布Java项目,可以显著提升开发效率和项目质量。借助Pipeline,我们能够轻松实现自动化构建、测试和部署,从而提高项目的整体质量和可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值