2018年上半年信息安全工程师下午案例题及解析

试题一 阅读下列说明,回答问题1 至问题4,将解答填入答题纸的对应栏内。

【说明】恶意代码是指为达到恶意目的专门设计的程序或者代码。常见的恶意代码类型有特洛伊木马、蠕虫、病毒、后门、Rootkit 、僵尸程序、广告软件。

2017 年5 月,勒索软件WanaCry 席卷全球,国内大量高校及企事业单位的计算机被攻击,文件及数据被加密后无法使用,系统或服务无法正常运行,损失巨大。

问题: 1.1(2 分)

按照恶意代码的分类,此次爆发的恶意软件属于哪种类型?

问题: 1.2(2 分)

此次勒索软件针对的攻击目标是Windows 还是Linux 类系统?

问题: 1.3(6 分)

恶意代码具有的共同特征是什么?

问题: 1.4(5 分)

由于此次勒索软件需要利用系统的SMB 服务漏洞(端口号445)进行传播,我们可以配置防火墙过滤规则来阻止勒索软件的攻击,请填写表1-1 中的空(1)-(5),使该过滤规则完整。

注:假设本机IP 地址为:1.2.3.4,”*”表示通配符。

 

试题一参考答案及解析

【问题1】

参考答案蠕虫病毒

试题解析:WannaCry(又叫Wanna Decryptor)是一种“蠕虫式”的勒索病毒软件,大小为3.3MB,由不法分子利用美国国家安全局(National Security Agency,NSA)泄露的危险漏洞“EternalBlue”(永恒之蓝)进行传播。

当用户主机系统被该勒索软件入侵后,弹出勒索对话框,提示勒索目的并向用户索要比特币。而对于用户主机上的重要文件,如照片、图片、文档、压缩包、音频、视频、可执行程序等几乎所有类型的文件,都被加密的文件后缀名被统一修改为“WNCRY”。目前,安全业界暂未能有效破除该勒索软件的恶意加密行为,用户主机一旦被勒索软件渗透,只能通过重装操作系统的方式来解除勒索行为,但用户重要数据文件不能直接恢复。

【问题2】

参考答案攻击的是Windows操作系统

试题解析:WannaCry主要利用了微软“Windows”操作系统的漏洞,以获得自动传播的能力。

【问题3】

参考答案恶意代码的特点如下:①恶意的目的:②本身是计算机程序:③通过执行发生作用。试题解析:本题考虑恶意代码的定义。

【问题4】

参考答案

(1) *. * .* .*

(2) >1024

(3)445

(4)TCP

(5)*

试题解析:防火墙设置就是关闭外网到内网TCP协议445端口的连接。

试题二 阅读下列说明和图,回答问题1 至问题3,将解答填入答题纸的对应栏内。

【说明】

密码学的基本目标是在有攻击者存在的环境下,保证通信双方(A 和B)之间能够使用不安全的通信信道实现安全通信。密码技术能够实现信息的保密性、完整性、可用性和不可否认性等安全目标。一种实用的保密通信模型往往涉及对称加密、公钥密码、Hash 函数、数字签名等多种密码技术。

在以下描述中,M 表示消息,H 表示Hash 函数,E 表示加密算法,D 表示解密算法,K 表示密钥,SKA 表示A 的私钥,PKA 表示A 的公钥,SKB 表示B 的私钥,PKB 表示B 的公钥,||表示连接操作。

问题: 2.1(6 分)

用户A、B 双方采用的保密通信的基本过程如图1 所示。

 

请问图1 所设计的保密通信模型能实现信息的哪些安全目标?图1 中的用户A 侧的H 和E 能否互换计算顺序?如果不能互换请说明原因:如果能互换请说明对安全目标的影响。

问题: 2.2(4 分)

图2 给出了另一种保密通信的基本过程:

请问图2设计的保密通信模型能实现信息安全的哪些特性?

 

问题: 2.3(5 分)

为了在传输过程中能够保障信息的保密性、完整性和不可否认性,设计了一个安全通信模型

结构如图3 所示:

 

请问图3 中(1),(2)分别应该填什么内容?

试题二参考答案及解析

【问题1】

参考答案可以实现信息M的完整性。

不能互换,先哈希摘要可以减少加密的计算量。

试题解析:A发送M给B,先对M进行哈希,然后对哈希结果进行加密,然后把加密后的哈希结果与消息M一并发出,可见M本身为明文传递;B接收到M和加密后的哈希后,对加密信息进行解密得到H'(M):B对接收到的M做摘要得到H(M)。如果H'(M)=H(M)表明M没有被篡改。所以说,仅保证了M的完整性。

H和E不能互换计算顺序,先哈希摘要可以减少加密的计算量。

【问题2】

参考答案可实现信息安全的保密性、完整性。

试题解析:A发送M给B,先对M消息进行哈希,然后把哈希结果与消息M一并加密,所以确保了M信息的保密性。

B接收到加密信息后解密信息,得到M消息和哈希信息; B对接收到的M做哈希得到H(M)。如果H'(M)=H(M)表明M没有被篡改,确保了完整性。

【问题3】

参考答案

(1)Ek [M||ESKA(H(M))]    (2)PKA

试题解析:发送过程:①对M摘要,即H(M):②对H(M)使用A的私钥SKA签名,即ESKA(H(M));

③合并M和ESKA(H(M)),并使用共享密钥K对M||ESKA(H(M))加密,即Ek [M||ESKA(H(M))]。

接收过程:①使用共享密钥K对接收到的信息解密,得到信息M||ESKA(H(M));②使用A的公钥PKA解密信息ESKA(H(M)),得到H(M):③对M再次进行摘要,得到H'(M);④进行比较,如果H'(M)=H(M)

表明M没有被篡改。

试题三 阅读下列说明,答问题1 至问题3,将解答填入答题纸的对应栏内。

【说明】在Linux 系统中,用户账号是用户的身份标志,它由用户名和用户口令组成。

问题: 3.1(4 分)

Linux 系统将用户名和口令分别保存在哪些文件中?

问题: 3.2(7 分)

Linux 系统的用户名文件通常包含如下形式的内容:

root:x:0:0:root:root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

hujw:x:500:500:hujianwei:/home/hujw:/bin/bash

文件中的一行记录对应着一个用户,每行记录用冒号(:)分隔为7 个字段,请问第1 个冒号(第二列)和第二个冒号(第三列)的含义是什么?上述用户名文件中,第三列的数字分别代表什么含义?

问题: 3.3(4 分)

Linux 系统中用户名文件和口令字文件的默认访问权限分别是什么?

试题三参考答案及解析

【问题1】

参考答案Linux系统将用户名保存在/etc/passwd中。

Linux系统将口令保存在/etc/shadow中。

试题解析:Linux系统中的/etc/passwd文件是用于存放用户密码的重要文件,这个文件对所有用户都是可读的,系统中的每个用户在/etc/passwd文件中都有一行对应的记录。/etc/shadow保存着加密后的用户口令。

【问题2】

参考答案第一个冒号表示口令;第二个冒号表示用户标识号。

第一行第三列的0表示root用户的标识号为0,第二行第三列的1表示bin用户的标识号为1:第三行第三列的500表示hujw用户的标识号为500。

试题解析:/etc/passwd文件中的每一行记录对应着一个用户,每行记录又被冒号分隔为7个字段,其格式为:“用户名:口令:用户ID:用户组ID:注释:主目录:登录Shell”。含义如下:

●用户名:一个用户的唯一标示,用户登录时所用用户名。

●口令:早期Linux密码加密存放在该字段中,每个用户均能读取,存在隐患;现在Linux采用影子密码,存放在/etc/shadow中,只有root用户能查看。

●用户ID:用户ID使用整数表示。值为0表示系统管理员,值为1~499表示系统保留账号,值大于500表示一般账号。

●用户组ID:唯一的标识了一个用户组

●注释:用户账号注释。

●主目录:用户目录。

●登录Shell:通常是/bin/bash

【问题3】

参考答案/etc/passwd和/etc/shadow默认访问权限分别为rw- r--- r---;r---r--- ---。

试题解析:r:读权限;w:写权限:rw:读写权限

试题四 阅读下列说明和C 语言代码,回答问题1 至问题4,将解答写在答题纸的对应栏内。

【说明】

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

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

 

心跳包类型占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; //填充1byte 的心跳包类型

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

memcpy(bp,pl,payload);

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

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

}

}

问题: 4.1(4 分)

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

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

问题: 4.2(5 分)

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

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

问题: 4.3(2 分)

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

问题: 4.4(4 分)

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

试题四参考答案及解析

【问题1】

参考答案

(1)64KB-1。

(2)不必一致。

试题解析:心跳包数据长度字段占2个字节,表示后续数据或者负载的长度。所以心跳包数据长度字段的最大取值为216-1=64KB-1。

【问题2】

参考答案(1)存在“心脏出血”安全漏洞。

(2)该漏洞会造成重要信息泄露。

试题解析:OpnSSL的心跳处理逻辑没有检测心跳包中的长度字段是否和后续的数据字段相符合,攻击者可以利用这一点,构造异常的数据包,来获取心跳数据所在的内存区域的后续数据。这些数据中可能包含了证书私钥、用户名、用户密码、用户邮箱等敏感信息。该漏洞允许攻击者,从内存中读取达64KB的数据。

程序代码中没有计算后续字段的实际长度的部分,可能会出现不一致,本题题目的问法,容易产生歧义。

【问题3】

参考答案(1)黑盒测试。

(2)不存在误报。

试题解析:模糊测试属于软件测试中的黑盒测试,是一种通过向目标系统提供非预期的输入并监视异常结果来发现软件漏洞的方法。模糊测试不需要程序的源代码就可以发现问题。

模糊测试是一种自动化的动态漏洞挖据技术,不存在误报,也不需要人工进行大量的逆向分析工作。

【问题4】

参考答案

(1)能。

(2)可利用黑盒测试方法,向服务器发送特定报文,通过服务器返回数据解析出报文,解析并判断是否存在“心脏出血”漏洞。

试题解析:可利用黑盒测试方法,向服务器发送特定报文,通过服务器返回数据解析出报文,解析并判断是否存在“心脏出血”漏洞。

试题五 阅读下列说明和图,回答问题1 至问题5,将解答写在答题纸的对应栏内。

【说明】

入侵检测系统(IDS)和入侵防护系统(IPS)是两种重要的网络安全防御手段,IDS 注重的是网络安全状况的监管,IPS 则注重对入侵行为的控制。

问题: 5.1(2 分)

网络安全防护可以分为主动防护和被动防护,请问IDS 和IPS 分别属于哪种防护?

问题: 5.2(4 分)

入侵检测是动态安全模型(P2DR)的重要组成部分。请列举P2DR 模型的4 个主要组成部分。

问题: 5.3(2 分)

假如某入侵检测系统记录了如图5所示的网络数据包:

 

图5

请问图中的数据包属于哪种网络攻击?该攻击的具体名字是什么?

问题: 5.4(4 分)

入侵检测系统常用的两种检测技术是异常检测和误用检测,请问针对图中所描述的网络攻击

应该采用哪种检测技术?请简要说明原因。

问题: 5.5(3 分)

Snort 是一款开源的网络入侵检测系统,它能够执行实时流量分析和IP 协议网络的数据包

记录。

Snort 的配置有3 种模式,请给出这3 种模式的名字。

试题五参考答案及解析

【问题1】

参考答案入侵检测技术(IDS)属于被动防护

入侵防护系统(IPS)提供主动防护。

试题解析:入侵检测技术(IDS)注重的是网络安全状况的监管,通过监视网络或系统资源,寻找违反安全策略的行为或攻击迹象,并发出报警。因此绝大多数IDS系统都是被动的。

入侵防护系统(IPS)则倾向于提供主动防护,注重对入侵行为的控制。其设计宗旨是预先对入侵活动和攻击性网络流量进行拦截,避免其造成损失。

【问题2】

参考答案防护、检测、响应、安全策略。

试题解析:P2DR模型是基于静态模型之上的动态安全模型,该模型包含防护、检测、响应三个部分之外,还包含安全策略。

【问题3】

参考答案属于拒绝服务攻击,其名字为SYN flood攻击。试题解析:本题考查拒绝服务攻击的基本原理。

【问题4】

参考答案可采用误用检测技术进行检测。因为SYN flood攻击具有固定的攻击行为,攻击特征明显。

试题解析:异常检测(也称基于行为的检测)是指把用户习惯行为特征存储在特征库中,然后将用户当前行为特征与特征数据库中的特征进行比较,若两者偏差较大,则认为有异常情况发生。误用检测一般是由计算机安全专家首先对攻击情况和系统漏洞进行分析和分类,然后手工编写相应的检测规则和特征模型。误用入侵检测的主要假设是具有能够被精确地按某种方式编码的攻击,并可以通过捕获攻击及重新整理,确认入侵活动是基于同一弱点进行攻击的入侵方法的变种。SYN flood攻击具有固定的攻击行为,攻击特征明显,所以可以使用误用检测的方法进行检测。

【问题5】

参考答案Snort的配置有3种主要模式:嗅探、包记录和网络入侵检测。

试题解析:Snort是基于C语言的入侵检测系统,具有多平台、实时流量分析、网络IP数据包记录等特性。

Snort有三种工作模式:嗅探器、包记录、网络入侵检测模式。嗅探器模式仅仅是从网络上读取数据包并作为连续不断的流显示在终端上。包记录模式把数据包记录到硬盘上。网络入侵检测模式是最复杂的,而且是可配置的,可以让snort分析网络数据流以匹配用户定义的一些规则,并根据检测结果采取一定的动作。

  • 0
    点赞
  • 2
    收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:数字20 设计师:CSDN官方博客 返回首页
评论 1

打赏作者

王至强

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值