2020年下半年信息安全工程师下午真题及答案解析
2020年下半年信息安全工程师下午真题及答案解析
试题一(共14分)
阅读下列说明,回答问题1至问题6,将解答填入答题纸的对应栏内。
说明
说明
说明
security@ubuntu:~$cat/etc/passwd
user1:x:0:0:user:/home/user1:/bin/bash
user2:x:1000:1000:ubuntu64:/home/user2:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
【问题1】(2分)
口令字文件/etc/passwd是否允任何用户访问?
【问题2】(2分)
根据上述/etc/passwd显示的内容,给出系统权限最低的用户名字。
【问题3】(2分)
在Linux操作系统中,请指出/etc/passwd文件中的每条记录如何通过七个字段来表示每个用户的信息
【问题4】(3分)
通过分析上述/etc/passwd文件中的相关信息,请确定该系统中允许远程登录的用户名。
【问题5】(2分)
Linux系统将用户的密码存储为一个特殊文件称为"影子文件"(user home directory),其完整路径通常位于根目录下的特定目录中,请告知该用户的密码存储位置及名称。
【问题6】(3分)
对于Ls-al命令而言,请提供表示影子文件访问权限的数字形式。
试题一参考答案与试题解析:
【问题1】参考答案: 允许
试题解析:在Linux系统中,/etc/passwd是一个重要的配置文件,在其中包含了每个用户的主机目录以及其他相关配置信息;由于该文件包含了每个用户的主机目录以及其他相关配置信息;从而使得所有系统用户都能够对该配置文件执行读取操作。
【问题2】参考答案: user2
试题解析:Linux系统中存在用户标识符(username identifier)与群体标识符(group identifier)两种内部标识方式,在此系统架构下有以下重要特征:用户的username标识范围为从0到65535;其中0号位专门用于超级用户root;而1-99号位被系统特意保留以便管理预先配置好的账号;从第100至第499号位则分配给特定的服务账号;最后从第500个位置开始至最大值则分配给普通用户的账号使用情况如下:在本题中只有user2用户的username为1024,在此情况下该账号属于普通用户的范畴;其余所有账号要么属于系统的管理员角色要么属于预先配置好的管理类账号其通常赋予的权限高于普通用户的水平
【问题3】参考答案:UID
试题解析
详细说明
LOGNAME:PASSWORD:UID:GID:USERINFO:HOME:SHELL
每行的头两项是用户名和密文形式设置的口令,随后是用户ID和组ID,接着是系统管理员欲记录于该用户的相关信息,最后两个参数分别为用户的HOME目录路径及登录后执行的Shell环境变量.若这两个参数为空则表示默认情况下分别使用bin目录存放HOME文件并采用bin/sh作为Shell执行环境变量.
用户的唯一标识码(UID)是一个整数,在系统内部管理中使用该码作为身份标识。通常情况下一个 UID 与一个用户名一一对应。若多个用户名共享相同的唯一的 unique\ identifier (UID) ,则在系统内部将它们视为同一个实体但可能拥有不同的密码、不同的主目录以及各自的登录 Shell 环境等配置参数。因此判断用户的身份信息仅凭其唯一的 UID 即可确定。
【问题4】参考答案: user1、user2
试题解析:Shell作为一种命令解释器或特定程序,在用户的终端界面中充当着连接到 Linux 系统的重要入口角色。在 Linux 环境下存在多种不同的 Shell 实现方式, 每一种都拥有其独特的特性。经过分析与配置, 系统管理员可以根据具体情况以及用户的偏好选择适合不同需求的应用程序作为 Shell 设置, 这样可以更好地满足各种操作需求。若不指定任何特定 Shell,默认情况下将采用 bin/sh 作为登录 shell, 此时该字段的值将被设置为 bin/sh 。此外, Linux 系统还提供了一种名为 nologin 的功能选项, 通过这一参数设置可以判断用户的登录权限状态: 当在某用户的配置信息中添加 nologin 选项时, 系统将阻止该用户的直接登录行为, 同时允许其访问诸如 FTP 和 SAMBA 这类远程服务资源
根据题干信息可知,在daemon, sys 和 bin 筮施中有禁止登录标记。值得注意的是,在某些系统中存在名为daemon、bin以及sync等的账户设置,并且这些账户均不得用于远程登录相关服务的账号设置。
【问题5】参考答案: /etc/shadow
在某些Linux系统中,默认情况下密码不再直接存储于passwd文件中,默认情况下密码会被隐藏并存放在/tmp/passwd文件中;为了方便管理与查看历史密码信息,在某些Linux系统中,默认情况下密码会被隐藏并存放在/tmp/passwd文件中;为了方便管理与查看历史密码信息,默认情况下密码会被隐藏并存放在/tmp/passwd文件中;为了方便管理与查看历史密码信息,默认情况下密码会被隐藏并存放在/tmp/passwd文件中;为了方便管理与查看历史密码信息,默认情况下密码会被隐藏并存放在/tmp/passwd文件中
【问题6】参考答案: 400或者000
在Linux系统中,/etc/shadow文件属于敏感文件,在普通用户的存储空间中无法访问其内容。该文件通常由系统管理员维护以记录用户的密码历史信息。/etc/shadow文件的安全性受到严格控制:不可供普通用户访问(default:400),仅限于superuser权限的用户(default:166)。特定版本系统则为000状态(即仅root用户能够读写)。
试题二(共20分)
阅读下列说明,回答问题1至问题8,将解答填入答题纸的对应栏内。
说明
说明
【问题1】(3分)
信息安全的核心要素主要包括:保障数据真实性(Data Integrity)、保护信息机密性(Confidentiality)、实现信息完整性和可达性的双重保障(Security)、确保信息来源的不可否认性(Authenticity)、实现安全性和可靠性的双重保障(Availability)、提供系统易用性和稳定性支持(Usability)以及确保信息安全管理体系的有效运行(Auditability)。在密码学领域中,“C”代表的是数据完整性(Integrity),“I”代表的是信息机密性(Confidentiality),“A”则代表着身份认证(Authentication)。
【问题2】(3分)
RSA公钥密码系统建立在解决大整数因式分解难题的基础上作为一种公开密钥加密技术对于RSA密码中的参数P q n Φ(n) e d哪些参数可以被公开?
【问题3】(2分)
如有RSA密码算法的公钥为(55,3),请给出对小王的年龄18进行加密的密文结果。
【问题4】(2分)
对于RSA密码算法的公钥(55,3),请给出对应的私钥。
【问题5】(2分)
在RSA公钥算法中,公钥和私钥的关系是什么?
【问题6】(2分)
在RSA密码中,消息m的取值有什么限制?
【问题7】(3分)
能否直接采用RSA密码实现数字签名?若可行,请详细说明如何对消息m进行其数字签名的具体步骤;否则,请阐述其不可行的理由。
【问题8】(3分)
上述RSA签名体制可以实现【问题1】所述的哪3个安全基本目标?
试题二参考答案与试题解析:
【问题1】参考答案: 保密性、完整性、可用性
试题解析:保密性(Confidentiality)是指防止未授权访问信息的行为;完整性(Integrity)指的是所有资源仅允许由授权方进行修改操作;可用性(Availability)则意味着在适当的时间内资源能够被授权方所访问。
【问题2】参考答案: n、e
试题解析:基于RSA公钥密码算法的核心理论,在实际应用中通常会先选择两个大素数P和Q,并通过它们生成公开密钥(e, n),随后将P、Q以及φ(n)弃用。随后会将生成好的公开密钥(n, e)进行发布,并将秘密私钥(n, d)予以保密。详细加密过程如下:首先通过P和Q计算出n = p \times q;接着选择一个与φ(n)互质的小整数e;然后确定d满足e \times d ≡ 1 (\mod φ(n))的整数。随后通过公开密钥对明文进行加密得到密文C=Me mod n;最后用秘钥D对密文进行解密得到明文M=Cd mod n。
问题3
改写内容
试题解析:①利用给出的公钥(55,3),得n=55=PQ,因此P、Q分别是5和11,e=3;
②φ(n)=(5-1)*(11-1)=40;
③(ed)mod40=1,即(3d)mod40=1,3d=41时,d非整数,3d=81时,d=27;
④消息m=18,cmemodn=183mod55=5832 mod55=2
【问题4】参考答案: (55,27)
试题解析:根据上分析,可知对应的d=27,对应的私有密钥为(55,27)。
【问题5】参考答案: (ed)modφ(n)=1
试题解析:见问题2解析。
【问题6】参考答案: 消息m取值必须是整数且小于n
试题解析:m必须是整数(字符串可以取ASCI值或Unicode值),且m必须小于n。
问题7
问题7
试题解析:不可以直接使用 RSA 进行数字签名, 因为 RSA 的密钥并没有与用户身份绑定, 也就是没有使用 数字证书 对秘钥进行身份验证。直接使用 RSA 私钥 进行签名有可能被假冒
试题解析:不可以简单地用 RSA 来做 数字签名, 因为 RSA 的公私 密钥并没有与用户的个人 信息绑定, 即使有公 密也没法单独用来 确保私密性, 因此 在不经过 数字认证的情况下 使用 RSA 私 钥来做 签名存在极大的 潜在风险
试题解析:不可将 RSA 简单应用于 数字签名操作, 因为在 RSA 加密中 公开参数并不包含 用户标识信息, 所以无法实现 对密 钥的有效认证, 即使拥有公 密也无法独立保证 秘密性
【问题8】参考答案: 完整性、真实性和不可否认性
试题解析:RSA数字签名机制可以实现消息的不可否认性、真实性、完整性。
试题三(共15分)
阅读下列说明,回答问题1至问题5,将解答填入答题纸的对应栏内。
说明
说明
【问题1】(3分)
图3.1展示了某用户的Windows系统中的防火墙操作界面,请详细说明如何在Windows系统中打开该界面的操作流程。
【问题2】(4分)
通过结合Smurf拒绝服务攻击以及IP欺骗手段配合ICMP应答机制,在目标网络中造成了大量的数据包被注入。这些注入的数据包引发了目标服务器对正常请求响应的暂时性阻断,请根据图3.2回答下列问题。
(1)上述攻击针对的目标IP地址是多少?
(2)在上述攻击中,受害者将会收到ICMP协议的哪一种数据包?
【问题3】(2分)
为了有效应对上述Smurf攻击,在Windows系统中需要对防火墙进行相应的配置和调整。请在图3.1所示的界面中找到并配置相关参数以实现防护功能。
【问题4】(2分)
要对入站的ICMP协议数据包设置过滤规则,应选择图3.3的哪个选项?
【问题5】(4分)
请在图3.3所示的'端口与协议设置界面'中分别配置'协议类型(P)'以及'协议号(U)'参数,并详细说明'本地端口(L)'与'远程端口(R)'的具体设置值。
试题三参考答案与试题解析:
【问题1】参考答案:
通过控制面板->系统和安全->Windows Defender防火墙,可以进入当前界面。
试题解析:题目所示图片中完整给出了防火墙路径。
【问题2】参考答案:
(1)192.168.27.1
(2)ICMP echo reply数据包
试题解析:该Smurf攻击者通过网络公共广播地址以ICMP echo request包的形式发送了信息,并将响应端点设置为受害主机的IP地址。这些主机均会对该请求产生反应,在此过程中导致了大量生成的ICMP echo reply应答数据流量覆盖了目标设备。依据图中所示的信息分析得出,在此次事件中被回送的目标IP被确定为公共广播地址...其性质属于公共广播类型,并且来自本地计算机...由此可推断出,在此次事件中被回送的目标IP被确定为公共广播类型且仅限于本地计算机的所有响应流量都会定向返回到其所在子网内的受攻设备上
【问题3】参考答案: 高级设置
试题解析:在Windows防火墙环境中,无法单独针对SMURF攻击进行拦截配置。必须通过Windows防火墙的高级功能中的定制入口规则来设置相应的防护措施。因此建议选择高级配置选项。
【问题4】参考答案: 自定义
试题解析:对入站的ICMP协议数据包设置过滤规则,只能采用自定义形式。
【问题5】参考答案:
协议类型(P):ICMPv4
协议号(U):1
本地端口(L):所有端口
远程端口(R):所有端口
试题解析:由于ICMP属于网络层协议,并未具备传输层端口号等特性特征。此外,在题目内容可知这一情况是基于该特定版本下的smurf攻击事件出现的。因此,在配置相关参数时只需选择"icmpv4"即可完成设置操作。其中该标准编号为1,并且无需对本地及远程计算机进行任何端口设置操作
试题四(共12分)
阅读下列说明,回答问题1至问题6,将解答填入答题纸的对应栏内。
说明
请各位询问以下多种安全攻击有哪些对应的安全服务可用以应对或处理。
请直接用上述编号①⑦作答。
【问题1】(2分)
针对跨站伪造请求攻击可以采用哪些安全服务来解决或者缓解?
【问题2】(2分)
针对口令明文传输漏洞攻击可以采用哪些安全服务来解决或者缓解?
【问题3】(2分)
针对Smurf攻击可以采用哪些安全服务来解决或者缓解?
【问题4】(2分)
针对签名伪造攻击可以采用哪些安全服务来解决或者缓解?
【问题5】(2分)
针对攻击进行追踪溯源时,可以采用哪些安全服务?
【问题6】(2分)
如果下载的软件被植入木马,请问有哪些安全服务能够来解除影响或减轻其危害?
试题四参考答案:与试题解析:
【问题1】参考答案: ①
试题解析:跨站伪造请求巧妙地利用了Web用户的身份验证漏洞这一技术缺陷,即简单的身份验证机制仅能确保请求来自某个用户的浏览器,却无法完全防止被恶意攻击者窃取敏感信息的行为发生。因此,跨站攻击的主要手段在于对被 intercept 的 request 没有严格的合法性确认这一环节,这可以通过引入认证服务来实现有效的防范措施
【问题2】参考答案: ③
试题解析:由于明文传输的口令可能被攻击者截获,在此情况下会引发对应的用户账户被攻击的风险。为了避免出现明文传输的问题,则应采取数据保密性服务措施,并将口令加密为密文形式以确保其安全性。
【问题3】参考答案: ⑦
试题解析:通过向目标主机发送大量ICMP ECHO_REPLY报文使该系统遭受Smurf攻击的影响;进而可以通过引入可用性服务机制来有效缓解该问题
【问题4】参考答案: ④
试题解析:数字签名能够确保发送者不可否认其真实性,并防止接收者伪造内容;其有效性主要依赖于数据完整性;从而可采取数据完整性服务作为防范措施。
【问题5】参考答案: ⑥
试题解析:该安全技术通过事后追查来实现其功能。其作用主要体现在:首先用于追踪参与执行事件的相关人员;其次通过分析这些信息来发现系统设计和配置上的缺陷,并提升整体系统的安全性;最后配合告警系统对运行中的设备状态进行实时监控。
【问题6】参考答案: ②
试题解析:该系统在访问过程中会预先将访问主体(进程、文件、设备等)与受控对象分别赋予不同的安全级别属性,并基于这些安全级别属性来确定主体是否能执行操作;这种机制有助于防止木马攻击。
试题五(共14分)
阅读下列说明和图,回答问题1至问题3,将解答填入答题纸的对应栏内。
说明
说明
【问题1】(4分)
图5.1提供了一份包含安全缺陷的C语言代码(注:行首数字表示代码行号),请问这段代码存在何种类型的安全缺陷?这些缺陷与C语言数组的相关特性有何关联?
【问题2】(4分)
图5.2给出了C程序的典型内存布局,请回答如下问题。
(1)请问图5.1的代码第9行的变量authenticated保存在图5.2所示的哪个区域中?
(2)请问stack的两个典型操作是什么?
在图5.2所示的stack区域中进行数据存储时,在内存地址增长的方向上是向高地址还是低地址?
针对图5.1代码中第9至第10行的这两个变量,请问哪一个存储的位置更高?
【问题3】(6分)
微软的Visual Studio包含多种安全相关的编译选项设置,在界面中可以选择不同的安全优化模式;图5.3展示了一个具体的操作界面,并附有截图作为参考。请详细说明您遇到的问题或需求。
(1)请问图5.3中哪项配置可以有效缓解上述代码存在的安全漏洞?
(2)如果把图5.1中第10行代码改为char buffer[4],图5.3的安全编译选项是否还起作用?
(3)模糊测试是否可以检测出上述代码的安全漏洞?
试题五参考答案与试题解析:
【问题1】参考答案:
缓冲区溢出漏洞。该漏洞和C语言不对数组进行边界检查的特性有关。
试题解析:C语言未对数组的边界进行检查,并非假定缓冲区有足够的空间。实际上并非如此。这往往会导致缓冲区溢出。缓冲区溢出攻击的根本原因是函数局部变量在栈内存储时是连续排列在一起的。如果程序中没有针对数组越界操作的具体判断,则越界的数组元素可能会干扰栈中的相邻变量、EBP寄存器以及返回地址值。
【问题2】参考答案:
(1)stack区。
(2)入栈、出栈
(3)往低地址方向增长
(4)authenticated
试题解析:
auth属于main函数中的一个局部变量,并存储于stack区域
(2)堆栈的两个典型操作是入栈和出栈。
(3)stack区域保存数据时,其地址增长方向是往低地址增长方向。
在第9行定义的变量authenticated与第10行定义的数组变量buffer均为局部变量,在编译器管理过程中它们都存储在栈区中。然而,在程序执行过程中堆栈的特点使其遵循先进先出的原则:即每当新数据被压入堆栈时随后将被压入堆栈,并且其数据存储区域沿着低地址方向逐步扩展。
各类型的变量在内存中所处的位置如下图所示。
【问题3】参考答案:
(1)Security Check
(2)起作用
(3)能
试题解析:
当编译器被设置为启用Security Check时,在运行期间可以执行缓冲区溢出检测功能。其中/ GS /即表示缓冲区安全检查功能。
在第10行处将代码更改为char buffer[4]时,则会导致程序因调用strcpy(buffer, password)的语句而发生缓冲区溢出现象;这将使得安全编译机制得以发挥作用。
在软件测试领域中, 模糊测试被归类为黑盒测试的一种方法. 这种方法作为发现软件漏洞的一种手段, 其基本原理是向目标系统输入不符合预期的数据, 并观察其产生的异常反应. 这种技术无需深入理解或分析系统的代码结构即可识别潜在的问题. 因此能够识别出存在的缺陷或错误但无法具体定位这些缺陷发生在何处.
