题目详情

在客户服务器通信模型中,客户端需要每隔一定时间向服务器发送数据包,以确定服务器是否掉线,服务器也能以此判断客户端是否存活,这种每隔固定时间发一次的数据包也称为心跳包。心跳包的内容没有什么特别的规定,一般都是很小的包。

某系统采用的请求和应答两种类型的心跳包格式如图4-1所示。

中级信息安全工程师,历年真题,《信息安全工程师》案例分析真题汇编

图4-1 协议包格式

心跳包类型占1个字节,主要是请求和响应两种类型;

心跳包数据长度字段占2个字节,表示后续数据或者负载的长度。

接收端收到该心跳包后的处理函数是process_heartbeat(),其中参数p指向心跳包的报文数据,s是对应客户端的socket网络通信套接字。

void process_heartbeat(unsigned char *p, SOCKET s)

{

unsigned short hbtype;

unsigned int payload;

hbtype=*p++; //心跳包类型

n2s(p, payload); //心跳包数据长度

pl=p; //pl指向心跳包数据

if(hbtype=HB_REQUEST){

unsigned char *buffer, *bp;

buffer=malloc(1+2+payload);

*bp++=HB_RESPONSE; //填充1 byte的心跳包类型

s2n(payload, bp); //填充2 bytes的数据长度

memcpy(bp,pl,payload);

/*将构造好的心跳响应包通过socket s返回客户端 */

r=write_bytes(s, buffer,3+payload);

}

}

【问题1】(4分)

(1)心跳包数据长度字段的最大取值是多少?

(2)心跳包中的数据长度字段给出的长度值是否必须和后续的数据字段的实际长度一致?

【问题2】(5分)

(1)上述接收代码存在什么样的安全漏洞?

(2)该漏洞的危害是什么?

【问题3】(2分)

模糊测试(Fuzzing)是一种非常重要的信息系统安全测评方法,它是一种基于缺陷注入的自动化测试技术。请问模糊测试属于黑盒测试还是白盒测试?其测试结果是否存在误报?

【问题4】(4分)

模糊测试技术能否测试出上述代码存在的安全漏洞?为什么?

正确答案及解析

正确答案
解析

【问题1】

(1)心跳包数据长度的最大取值为65535。

(2)必须是一致的。

【问题2】

存在溢出安全漏洞。

接收端处理代码在组装响应包时,心跳包数据长度字段(payload)采用的是客户端

发送的请求包中使用的长度字段,由于心跳包数据长度字段完全由客户端控制,当

payload大于实际心跳包数据的长度时,将导致越界访问接收端内存,从而泄露内存信

息。(2分)

造成的危害:在正常的情况下,response 报文中的data就是request报文中的data

数据,但是在异常情况下,payload 的长度远大于实际数据的长度,这样就会发生内存的

越界访问,但这种越界访问并不会直接导致程序异常,(因为这里直接memcpy后,服务

器端并没有使用copy后的数据,而只是简单的进行了回复报文的填充,如果服务端使用

了copy的数据也许就可能发现问题)这里使用了memcpy函数,该函数会直接根据长度

把内存中数据复制给另一个变量。这样就给恶意的程序留下了后门,当恶意程序给data

的长度变量赋值为65535时,就可以把内存中64KB的内存数据通过Response报文发送

给客户端,这样客户端程序就可以获取到一些敏感数据泄露。

【问题3】

属于黑盒测试;不存在误报。

【问题4】

不能。

因为不会产生异常,模糊测试器就无法监视到异常,从而无法检测到该漏洞。

包含此试题的试卷

你可能感兴趣的试题

问答题

阅读以下关于Web系统架构设计的教述,在答题纸上回答问题1至问题3。

【说明】

某公司拟开发一个智能家居管理系统,该系统的主要功能需求如下:1)用户可使用该系统客户端实现对家居设备的控制,且家居设备可向客户端反馈实时状态;2)支持家居设备数据的实时存储和查询;3)基于用户数据,挖掘用户生活习惯,向用户提供家居设备智能化使用建议。

基于上述需求,该公司组建了项目组,在项目会议上,张工给出了基于家庭网关的传统智能家居管理系统的设计思路,李工给出了基于云平台的智能家居系统的设计思路。经过深入讨论,公司决定采用李工的设计思路。

【问题1】 (8分)

请用400字以内的文字简要描述基于家庭网关的传统智能家居管理系统和基于云平台的智能家居管理系统在网关管理、数据处理和系统性能等方面的特点,以说明项目组选择李工设计思路的原因。

【问题2】 (12分)

请从下面给出的(a) ~ (j) 中进行选择,补充完善图5-1中空(1) ~ (6)处的内容,协助李工完成该系统的架构设计方案。

高级系统架构设计师,历年真题,《系统架构设计师》案例分析真题

(a) Wi-FI

(b) 蓝牙

?驱动程序

(d)数据库

(e)家庭网关

(f)云平台

(g)微服务

(h)用户终端

(i)鸿蒙

(j)TCP/IP

【问题3】 (5分)

该系统需实现用户终端与服务端的双向可靠通信,请用300字以内的文字从数据传输可靠性的角度对比分析TCP和UDP通信协议的不同,并说明该系统应采用哪种通信协议

查看答案
问答题

某医院拟委托软件公司开发一套预约挂号管理系统,以便为患者提供更好的就医体验,为医院提供更加科学的预约管理。本系统的主要功能描述如下:

(a)注册登录

(b)信息浏览

(c)账号管理

(d)预约挂号

(e)查询与取消预约

(F)号源管理

(g)报告查询

(h)预约管理

(i)报表管理

(j)信用管理

【问题1】 (6 分)

若采用面向对象方法对预约挂号管理系统进行分析,得到如图2-1所示的用例图。请将合适的参与者名称填入图2-1中的(1)和(2)处,使用题干给出的功能描述(a)(j),完善用例(3)(12)的名称,将正确答案填在答题纸上。

高级系统架构设计师,历年真题,《系统架构设计师》案例分析真题

【问题2】 (10分)

预约人员(患者)登录系统后发起预约挂号请求,进入预约界面。进行预约挂号时使用数据库访问类获取医生的相关信息,在数据库中调用医生列表,并调取医生出诊时段表,将医生出诊时段反馈到预约界面,并显示给预约人员;预约人员选择医生及就诊时间后确认预约,系统反馈预约结果,并向用户显示是否预约成功。

采用面向对象方法对预约挂号过程进行分析,得到如图2-2所示的顺序图,使用题干中给出的描述,完善图2-2中对象(1),及消息(2)~(4)的名称,将正确答案填在普题纸上请简要说明在描述对象之间的动态交互关系时,协作图与顺序图存在哪些区别?

高级系统架构设计师,历年真题,《系统架构设计师》案例分析真题

【问题3】 (9分)

采用面向对象方法开发软件,通常需要建立对象模型、动态模型和功能模型,请分别介绍这3种模型,并详细说明它们之间的关联关系,针对上述模型,说明哪些模型可用于软件的需求分析?

查看答案
问答题

阅读以下关于数据库设计的叙述,在答题纸上回答问题1至问题3。

【说明】

某医药销售企业因业务发展,需要建立线上药品销售系统,为用户提供便捷的互联网药品销售服务、该系统除了常规药品展示、订单、用户交流与反馈功能外,还需要提供当前热销产品排名、评价分类管理等功能。通过对需求的分析,在数据管理上初步决定采用关系数据库(MySQL)和数据库缓存(Redis)的混合架构实现。

经过规范化设计之后,该系统的部分数据库表结构如下所示。

供应商(供应商ID,供应商名称,联系方式,供应商地址);

药品(药品ID,药品名称,药品型号,药品价格,供应商ID);

药品库存(药品ID,当前库存数量);

订单(订单号码,药品ID,供应商ID,药品数量,订单金额)。

【问题1】 (9分)

在系统初步运行后,发现系统数据访问性能较差。经过分析,刘工认为原来数据库规范化设计后,关系表过于细分,造成了大量的多表关联查询,影响了性能。例如当用户查询商品信息时,需要同时显示该药品的信息、供应商的信息、当前库存等信息。

为此,刘工认为可以采用反规范化设计来改造药品关系的结构,以提高查询性能。修改后的药品关系结构为:

药品(药品ID,药品名称,药品型号,药品价格,供应商ID,供应商名称,当前库存数量) ;

请用200字以内的文字说明常见的反规范化设计方法,并说明用户查询商品信息应该采用哪种反规范化设计方法

【问题2】 (9分)

王工认为,反规范化设计可提高查询的性能,但必然会带来数据的不一致性问题。请用200字以内的文字说明在反规范化设计中,解决数据不一致性问题的三种常见方法,并说明该系统应该采用哪种方法。

【问题3】 (7分)

该系统采用了Redis来实现某些特定功能(如当前热销药品排名等),同时将药品关系数据放到内存以提高商品查询的性能,但必然会造成Redis和MySQL的数据实时同步问题。

(1) Redis的数据类型包括String、 Hash、 List、 Set和ZSet等,请说明实现当前热销药品排名的功能应该选择使用哪种数据类型。

(2)请用200字以内的文字解释说明解决Redis和MySQL数据实时同步问题的常见方案

查看答案
问答题

某公司拟开发一套机器学习应用开发平台,支持用户使用浏览器在线进行基于机器学习的智能应用开发活动。该平台的核心应用场景是用户通过拖拽算法组件灵活定义机器学习流程,采用自助方式进行智能应用设计、实现与部署,并可以开发新算法组件加入平台中。在需求分析与架构设计阶段,公司提出的需求和质量属性描述如下:

(a)平台用户分为算法工程师、软件工程师和管理员等三种角色,不同角色的功能界面有所不同;

(b)平台应该具备数据库保护措施,能够预防核心数据库被非授权用户访问;

(c)平台支持分布式部署,当主站点断电后,应在20秒内将请求重定向到备用站点;

(d)平台支持初学者和高级用户两种界面操作模式,用户可以根据自己的情况灵活选择合适的模式;

(e)平台主站点宕机后,需要在15秒内发现错误并启用备用系统;

(f)在正常负载情况下,机器学习流程从提交到开始执行,时间间隔不大于5秒;

(g)平台支持硬件扩容与升级,能够在3人天内完成所有部署与测试工作;

(h)平台需要对用户的所有操作过程进行详细记录,便于审计工作;

(i)平台部署后,针对界面风格的修改需要在3人天内完成;

(j)在正常负载情况下,平台应在0.5秒内对用户的界面操作请求进行响应;

(k)平台应该与目前国内外主流的机器学习应用开发平台的界面风格保持一致;

(l)平台提供机器学习算法的远程调试功能,支持算法工程师进行远程调试。

在对平台需求、质量属性描述和架构特性进行分析的基础上,公司的架构师给出了三种候选的架构设计方案,公司目前正在组织相关专家对平台架构进行评估。

【问题1】 (9分)

在架构评估过程中,,质量属性效用树(utility tree)是对系统质属性进行识别和优先级排序的重要工具。 请将合适的质量属性名称域入图1-1中(1)、(2)空白处,并从题干中的(a)-(i)中选择合适的质量属性描述,填入(3)-(6)空白处,完成该平台的效用树。

高级系统架构设计师,历年真题,《系统架构设计师》案例分析真题

【问题2】 (16分)

针对该系统的功能,赵工建议采用解释器(interpreter)架构风格,李工建议采用管道过滤器(ppe-and-hlter)的架构风格,王工则建议采用隐式调用(implicit invocation)架构风格。请针对平台的核心应用场景,从机器学习流程定义的灵活性和学习算法的可扩展性两个方面对三种架构风格进行对比与分析,并指出该平台更适合采用哪种架构风格

查看答案
问答题

某项目进入详细设计阶段后,项目经理为后续活动制定了如图2所示的网络计划图,图中的“△”标志代表开发过程的一个里程碑,此处需进行阶段评审,模块1和模块2都要通过评审后才能开始修复。

高级信息系统项目管理师,历年真题,《信息系统项目管理师》案例分析真题

项目经理对网络图中的各活动进行了成本估算,估计每人每天耗费的成本为1000元,安排了各活动的人员数量并统计了模块1、模块2的开发和测试活动的工作量(如表2所示),其中阶段评审活动不计入项目组的时间和人力成本预算,如表2所示。

高级信息系统项目管理师,历年真题,《信息系统项目管理师》案例分析真题

[问题1] (3分)

请计算该项目自模块开发起至模块测试全部结束的计划工期。

[问题2] (10分)

详细设计完成后,项目组用了11天才进入阶段评审。在阶段评审中发现:模块1开发已完成,测试尚未开始;模块2的开发和测试均已完成,修复工作尚未开始,模块2的实际工作量比计划多用了3人?天。

(1)请计算自详细设计完成至阶段评审期间模块1的PV、EV、AC,并评价其进度和成本绩效。

(2)请计算自详细设计完成至阶段评审期间模块2的PV、EV、AC,并评价其进度和成本绩效。

[问题3] (8分)

(1)如果阶段评审未作出任何调整措施,项目仍按当前状况进展,请预测从阶段评审结束到软件集成开始这一期间模块l、模块2的ETC(完工尚需成本)(给出公式并计算结果)。

(2)如果阶段评审后采取了有效的措施,项目仍按计划进展,请预测从阶段评审结束到软件集成开始这一期间模块1、模块2的ETC(完工尚需成本)(给出公式并计算结果)。

[问题4] (4分)

请结合软件开发和测试的一般过程,指出项目经理制定的网络计划和人力成本预算中存在的问题。

查看答案

相关题库更多 +