2018年上半年软件水平考试(中级)信息安全工程师下午(应用技术)真题试卷
试题五
阅读下列说明和图,回答问题1至问题5,将解答写在答题纸的对应栏内。
【说明】
入侵检测系统(IDS)和入侵防护系统(IPS)是两种重要的网络安全防御手段。IDS注重的是网络安全状况的监管,IPS则注重对入侵行为的控制。
1.网络安全防护可以分为主动防护和被动防护,请问IDS和IPS分别属于哪种防护?
IDS:被动防护,IPS主动防护。
解析: 本题综合考查考生的网络协议分析、基本的网络扫描技术、入侵检测技术的掌握和运用能力。
入侵检测系统(IDS)大都是通过攻击的签名来实现攻击检测,属于被动防护,而IPS可以根据预先设定的安全策略,对流经的每个报文进行深度检测(协议分析追踪、特征匹配、流量统计分析、事件关联分析等)发现隐藏于网络中的攻击,属于主动防护。
2.入侵检测是动态安全模型(P2DR)的重要组成部分。请列举P2DR模型的4个主要组成部分。
安全策略(Policy),安全防护(Protection),检测(Detection),响应(Response)。
解析: P2DR是一种动态网络安全模型,P2DR模型由四个主要部分组成:安全策略(Policy)、保护(Protection)、检测(Detection)和响应(Response)。PPDR模型是在整体的安全策略的控制和指导下,综合运用防护工具(如防火墙、身份认证、加密等)的同时,利用检测工具(如漏洞评估、入侵检测系统)了解和评估系统的安全状态,通过适当的响应将系统调整到一个比较安全的状态。保护、检测和响应组成了一个完整的、动态的安全循环。
3.假如某入侵检测系统记录了如图5一1所示的网络数据包。
拒绝服务攻击,SYN flooding(洪泛)。
解析: 从图5-1中可以看出,数据包都是SYN请求建立分组,源IP地址都是随机的,是典型SYN泛洪攻击,其目的就是消耗网络资源,实现拒绝服务。
4. 入侵检测系统常用的两种检测技术是异常检测和误用检测,请问针对图中所描述的网络攻击应该采用哪种检测技术?请简要说明原因。
误用检测;该攻击有很明确的攻击特征和模式,适合采用误用检测。
解析: 异常检测是指根据非正常行为(系统或用户)和使用计算机非正常资源来检测入侵行为。其关键在于建立用户及系统正常行为轮廓(Profile),检测实际活动以判断是否背离正常轮廓。
误用检测又称为基于特征的检测,基于误用的入侵检测系统通过使用某种模式或者信号标示表示攻击,进而发现同类型的攻击。
显然针对上述攻击,根据SYN分组特征模式,应该采用误用检测来检测攻击。
5.Snort是一款开源的网络入侵检测系统,它能够执行实时流量分析和IP协议网络的数据包记录。
snon的配置有3种模式,请给出这3种模式的名字。
嗅探,包记录,网络入侵检测。
解析:Snort有三种工作方式,分别是嗅探器、数据包记录器和网络入侵检测系统。
1.嗅探(Snort从网络上读出数据包并将其显示在控制台上)
2.数据包记录器(将数据包记录在硬盘上)
3.网络入侵检测系统NIDS(最复杂,可配置,允许Snort匹配用户自定义的数据集,并根据检测结果执行一定的动作)
试题四
阅读下列说明和C语言代码,回答问题1至问题4,将解答写在答题纸的对应栏内。
【说明】
在客户服务器通信模型中,客户端需要每隔一定时间向服务器发送数据包,以确定服务器是否掉线,服务器也能以此判断客户端是否存活。这种每隔固定时间发一次的数据包也称为心跳包。心跳包的内容没有什么特别的规定,一般都是很小的包。
某系统采用的请求和应答两种类型的心跳包格式如图4—1所示。
6.(1)心跳包数据长度字段的最大取值是多少?
(2)心跳包中的数据长度字段给出的长度值是否必须和后续的数据字段的实际长度一致?
(1)65535
(2)否
解析: 本题是综合考查考生对网络协议分析、代码安全审计以及代码安全测试技术掌握程度的题目。
根据协议字段说明,心跳包数据长度字段为2个字节,就是16位,因此其最大值为216一1=65535。
通过题目给出的代码分析可知,代码是直接从数据包中提取长度字段的,而且没有对数据包的实际长度进行计算,因此实际长度和数据包中给出的长度并不要求一致,这也是该代码漏洞的根本原因。
7.(1)上述接收代码存在什么样的安全漏洞?
(2)该漏洞的危害是什么?
存在溢出安全漏洞。
接收端处理代码在组装响应包时,心跳包数据长度字段(payload)采用的是客户端发送的请求包中使用的长度字段,由于心跳包数据长度字段完全由客户端控制,当payload大于实际心跳包数据的长度时,将导致越界访问接收端内存,从而泄露内存信息。
造成的危害:在正常的情况下,response报文中的data就是request报文中的data数据,但是在异常情况下,payload的长度远大于实际数据的长度,这样就会发生内存的越界访问,但这种越界访问并不会直接导致程序异常,(因为这里直接meffcpy后,服务器端并没有使用copy后的数据,而只是简单的进行了回复报文的填充,如果服务端使用了copy的数据也许就可能发现问题)这里使用了memcpy函数,该函数会直接根据长度把内存中数据复制给另一个变量。这样就给恶意的程序留下了后门,当恶意程序给data的长度变量赋值为65535时,就可以把内存中64KB的内存数据通过Response报文发送给客户端,这样客户端程序就可以获取到一些敏感数据泄露。
解析: 分配的butier是根据数据包给出的长度字段来分配的,并在memcpy函数实现内存数据拷贝,因此有可能越界读取额外的内存数据,造成信息泄露。
8. 模糊测试(Fuzzing)是一种非常重要的信息系统安全测评方法,它是一种基于缺陷注入的自动化测试技术。请问模糊测试属于黑盒测试还是白盒测试?其测试结果是否存在误报?
黑盒,没有误报。
解析: 模糊测试不需要源代码,是一种黑盒测试技术。通过往被测试程序发送或者注入各种数据,如果被测试程序出现异常,说明程序确实是存在问题的,不会有误报。
9. 模糊测试技术能否测试出上述代码存在的安全漏洞,为什么?
不能。
因为不会产生异常,模糊测试器就无法监视到异常,从而无法检测到该漏洞。
解析: 上述代码存在的信息泄露漏洞在模糊测试过程中,不管用什么样的数据包长度去测试,被测代码都是正常运行,没有出现异常情况,因此也就无法判断是否有漏洞,所以模糊测试无法测试出该代码存在的漏洞。
试题三
阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
在Linux系统中,用户账号是用户的身份标志,它由用户名和用户口令组成。
10. Linux系统将用户名和口令分别保存在哪些文件中?
/etc/passwd
本文档预览:3600字符,共7413字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载