专业信息安全工程师网站|培训机构|服务商(2021信息安全工程师学习QQ群:327677606,客服QQ:800184589)

软题库 培训课程
当前位置:信管网 >> 信息安全工程师 >> 案例分析 >> 文章内容
2018上半年信息安全工程师下午案例分析真题试题四与答案
来源:信管网 2018年05月31日 【所有评论 分享到微信
点击进入:2018上半年信息安全工程师真题专题(综合知识、案例分析)
2018上半年信息安全工程师下午案例分析真题试题四与答案
阅读下列说明和c语言代码,回答问题1至问题4,将解答写在答题纸的对应栏内。
【说明】
在客户服务器通信模型中,客户端需要每隔一定时间向服务器发送数据包,以确定服务器是否掉线,服务器也能以此判断客户端是否存活,这种每隔固定时间发一次的数据包也称为心跳包。心跳包的内容没有什么特别的规定,一般都是很小的包。
某系统采用的请求和应答两种类型的心跳包格式如图4-1所示。

心跳包类型占1个字节,主要是请求和响应两种类型;
心跳包数据长度字段占2个字节,表示后续数据或者负载的长度。
接收端收到该心跳包后的处理函数是process_heartbeat(),其中参数p指向心跳包的报文数据,s是对应客户端的socket网络通信套接字。

【问题1】(4分)
(1)心跳包数据长度字段的最大取值是多少?
(2)心跳包中的数据长度字段给出的长度值是否必须和后续的数据字段的实际长度一致?
【问题2】(5分)
(1)上述接收代码存在什么样的安全漏洞?
(2)该漏洞的危害是什么?
【问题3】(2分)
模糊测试(fuzzing)是一种非常重要的信息系统安全测评方法,它是一种基于缺陷注入的自动化测试技术。请问模糊测试属于黑盒测试还是白盒测试?其测试结果是否存在误报?
【问题4】(4分)
模糊测试技术能否测试出上述代码存在的安全漏洞?为什么?

信管网参考答案:

【问题1
(1)65535
(2)否
【问题2】
存在溢出安全漏洞。
接收端处理代码在组装响应包时,心跳包数据长度字段( payload)采用的是客户端发送的请包中使用的长度字段,由于心跳包数据长度字段完全由客户端控制,当payload大于实际心跳包数据的长度时,将导致越界访问接收端内存,从而泄露内存信造成的危害:在正常的情况下, response报文中的data就是 request报文中的data息。(2分)
数据,但是在异常情况下, payload的长度远大于实际数据的长度,这样就会发生内存的越界访问,但这种越界访问并不会直接导致程序异常,(因为这里直接 memcpy后,服务器端并没有使用copy后的数据,而只是简单的进行了回复报文的填充,如果服务端使用了cpy的数据也许就可能发现问题)这里使用了 memcpy函数,该函数会直接根据长度把内存中数据复制给另一个变量。这样就给恶意的程序留下了后门,当恶意程序给data的长度变量赋值为65535时,就可以把内存中64KB的内存数据通过 Response报文发送给客户端,这样客户端程序就可以获取到一些敏感数据泄露
【问题3】
黑盒,没有误报
【问题4】
不能。
因为不会产生异常,模糊测试器就无法监视到异常,从而无法检测到该漏洞

扫码关注公众号

温馨提示:因考试政策、内容不断变化与调整,信管网网站提供的以上信息仅供参考,如有异议,请以权威部门公布的内容为准!

信管网致力于为广大信管从业人员、爱好者、大学生提供专业、高质量的课程和服务,解决其考试证书、技能提升和就业的需求。

信管网软考课程由信管网依托10年专业软考教研倾力打造,官方教材参编作者和资深讲师坐镇,通过深研历年考试出题规律与考试大纲,深挖核心知识与高频考点,为学员考试保驾护航。面授、直播&录播,多种班型灵活学习,满足不同学员考证需求,降低课程学习难度,使学习效果事半功倍。

相关内容

发表评论  查看完整评论  

推荐文章