**2020年信息安全工程师下午案例真题与答案完整版(下午案例分析)**1、试题一(共14分)
阅读下列说明,回答问题1至问题6,将解答填入答题纸的对应栏内。
【说明】
Linux系统通常将用户名相关信息存放在/etc/passwd文件中,假如有/etc/passwd文件的部分内容如下,请回答相关问题。
security@ubuntu:\~$cat/etc/passwd userl: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文件中每一行代表一个用户,每行记录又用冒号(:)分隔为7个字段,请问Linux操作系统是根据哪个字段来判断用户的?
【问题4】(3分)
根据上述/etc/passwd显示的内容,请指出该系统中允许远程登录的用户名。
【问题5】(2分)
Linux系统把用户密码保存在影子文件中,请给出影子文件的完整路径及其名字。
【问题6】(3分)
如果使用Is-al命令查看影子文件的详细信息,请给出数字形式表示的影子文件访问权限。
解析:
问题1(2分) 口令字文件/etc/passwd是否允许任何用户访问? 答案:允许所有用户读取 解析:/etc/passwd全局可读(权限644),存储用户公开信息,普通用户均可读,加密密码单独存放shadow。 问题2(2分) 根据上述内容,系统权限最低的用户名。 答案:user2 解析:UID规则:0=root超级用户;1~499系统服务账号;≥1000普通用户;user2的UID=1000,是普通用户,权限最低。 问题3(2分)/ect/passwd每行7个冒号分隔字段,系统依据哪个字段识别区分用户? 答案:第三字段UID(用户ID) 解析:用户名仅展示标识,操作系统内核通过唯一UID识别用户身份。 问题4(3分) 指出允许远程登录的用户名。 答案:user1、user2、sync 解析:第7字段为登录shell(/bin/bash、/bin/sync)可登录;/usr/sbin/nologin禁止交互式远程登录。 问题5(2分) 存放加密密码的影子文件完整路径名称。 答案:/etc/shadow 问题6(3分) shadow文件数字权限。 答案:400(或600,主流标准600) 解析:仅root拥有读写权限,普通用户无任何权限。2、试题二(共20分)阅读下列说明,回答问题1至问题8,将解答填入答题纸的对应栏内。
【说明】
密码学作为信息安全的关键技术,在信息安全领域有着广泛的应用。密码学中,根据加密和解密过程所采用密钥的特点可以将密码算法分为两类:对称密码算法和非对称密码算法。此外,密码技术还用于信息鉴别、数据完整性检验、数字签名等。
【问题1】(3分)
信息安全的基本目标包括:真实性、保密性、完整性、不可否认性、可控性、可用性、可审查性等。密码学的三大安全目标C.I.A分别表示什么?
【问题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所述的哪三个安全基本目标?
解析:
问题1(3分) 密码学CIA三大安全目标全称? 答案:保密性(Confidentiality)、完整性(Integrity)、可用性(Availability) 问题2(3分) RSA参数p、q、n、φ(n)、e、d,哪些可以公开? 答案:n、e 解析:p、q为私用大质数;φ(n)、d私有;模数n、加密指数e对外公开为公钥。 问题3(2分) 公钥(55,3),明文m=18,求密文C。 计算:C=m^e mod n=18³ mod5518³=5832,5832 mod55=2答案:2 问题4(2分)公钥n=55,e=3,求私钥d1. 分解55=5×11,p=5,q=112. φ(n)=(5-1)×(11-1)=403. 求d满足3*d mod40=1d=27答案:27 问题5(2分)公钥e与私钥d的数学关系 答案:e × d ≡1mod φ(n)即e、d模欧拉函数φ(n)互为乘法逆元。 问题6(2分)RSA明文m取值限制 答案:明文m必须满足0≤ m<n(m小于模数n) 问题7(3分)能否直接用RSA签名?写出签名公式 答案:可以;签名公式 S=m^d mod n 解析:私钥签名,公钥验证;工程中会先哈希再签名防止攻击,纯数学层面可直接签名。 问题8(3分)RSA签名可实现哪三个安全目标? 答案:保密性、完整性、不可否认性3、试题三【说明】
防火墙作为网络安全防护的第一道屏障,通常用一系列的规则来实现网络攻击数据包的过滤。
【问题1】(3分)
图3-1给出了某用户Widows系统下的防火墙操作界面, 请写出Windows下打开以下界面的操作步骤。
【问题2】(4分)
Smurf拒绝服务攻击结合IP欺骗和ICMP回复方法使大量网络数据包充斥目标系统, 引起目标系统拒绝为正常请求提供服务。请根据图3-2回答下列问题。
(1)上述攻击针对的目标IP地址是多少?
(2) 在上述攻击中, 受害者将会收到ICMP协议的哪一种数据包?
【问题3】(2分)
如果要在Windows系统中对上述Smurf攻击进行过滤设置, 应该在图3-1中“允许应用或功能通过Windows Defender防火墙”下面的选项中选择哪一项?
【问题4】(2分)
要对入站的ICMP协议数据包设置过滤规则,应选择图3-3的哪个选项?
【问题5】(4分)
在图3-4的端口和协议设置界而中,请分别给出“协议类型§”“协议号(U)”“本地端口(L)”“远程端口®”的具体设置值。
解析:
问题1(3分)打开Windows Defender防火墙界面操作步骤 参考答案1. 打开控制面板;2. 找到“系统和安全”分类;3. 点击“Windows Defender防火墙”进入对应界面。 问题2(4分)Smurf攻击抓包截图分析(1)目标IP:192.168.27.255(2)受害者收到ICMP Echo Reply(ping应答)数据包 解析:攻击者伪造目标IP作为源发送广播ping请求,网段所有主机回复应答淹没目标。 问题3(2分)过滤Smurf攻击的配置入口 答案:高级设置 解析:“允许应用或功能通过”下方选项为高级设置,自定义ICMP入站规则。 问题4(2分)创建ICMP过滤规则的选项 答案:端口(O)解析:ICMP属于协议类规则,选择端口分类自定义协议过滤。 问题5(4分)ICMP规则参数配置 协议类型(P):ICMP 协议号(U):1 本地端口(L):所有端口 远程端口(R):所有端口4、试题四(共12分)
阅读下列说明,回答问题1至问题6,将解答填入答题纸的对应栏内。
【说明】
ISO安全体系结构包含的安全服务有七大类,即:①认证服务;②访问控制服务;③数据保密性服务;④数据完整性服务;⑤抗否认性服务;⑥审计服务;⑦可用性服务。
请问以下各种安全威胁或者安全攻击可以采用对应的哪些安全服务来解决或者缓解。请直接用上述编号①~⑦作答。
【问题1】(2分)
针对跨站伪造请求攻击可以采用哪些安全服务来解决或者缓解?
【问题2】(2分)
针对口令明文传输漏洞攻击可以采用哪些安全服务来解决或者缓解?
【问题3】(2分)
针对Smurf攻击可以采用哪些安全服务来解决或者缓解?
【问题4】(2分)
针对签名伪造攻击可以采用哪些安全服务来解决或者缓解?
【问题5】(2分)
针对攻击进行追踪溯源时,可以采用哪些安全服务?
【问题6】(2分)
如果下载的软件被植入木马,可以采用哪些安全服务来进行解决或者缓解?
解析:
问题1(2分)跨站伪造请求(CSRF) 答案:①认证服务 解析:缺少请求身份校验,加强认证抵御CSRF。 问题2(2分)口令明文传输漏洞 答案:③数据保密性服务 解析:加密传输口令,防止窃听泄露。 问题3(2分)Smurf拒绝服务攻击 答案:⑦可用性服务 解析:DoS破坏系统可用,可用性服务保障持续正常访问。 问题4(2分)数字签名伪造攻击 答案:④完整性服务 解析:签名校验数据完整性,篡改/伪造可被识别。 问题5(2分)攻击事后追踪溯源 答案:⑥审计服务 解析:日志审计记录行为,用于溯源取证。 问题6(2分)下载软件植入木马 答案:④完整性服务 解析:校验软件哈希,检测文件被篡改植入恶意代码。5、阅读下列说明和图,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
代码安全漏洞往往是系统或者网络被攻破的头号杀手。在C语言程序开发中,由于C语言自身语法的一些特性,很容易出现各种安全漏洞。因此,应该在C程序开发中充分利用现有开发工具提供的各种安全编译选项,减少出现漏洞的可能性。
【问题1】(4分)
图5-1给出了一段有漏洞的C语言代码(注:行首数字是代码行号),请问,上述代码存在哪种类型的安全漏洞?该漏洞和C语言数组的哪一个特性有关?
【问题2】(4分)
图5-2给出了C程序的典型内存布局,请回答如下问题。
(1)请问图5-1的代码中第9行的变量authenticated保存在图5-2所示的哪个区域中?
(2)请问stack的两个典型操作是什么?
(3)在图5-2中的stack区域保存数撕时, 其地址增长方向是往高地址还是往低地址更高?
(4)对于图5-1代码中的第9行和第10行代码的两个变量,哪个变量对应的内存地
【问题3】(6分)
微软的Visual Studio提供了很多安全相关的编译选项, 图5-3给出了图5-1中代码相关的工程属性页而的截图。请回答以下问题。
(1)请问图5-3中哪项配置可以有效缓解上述代码存在的安全漏洞?
(2)如果把图5-1中第10行代码改为char buffer[4];图5-3的安全编译选项是否还起作用?
(3)模糊测试是否可以检测出上述代码的安全漏洞?
解析:
漏洞代码:
#include"stdafx.h"#include<string.h>#definePASSWORD"123456"intverify_password(char*password){intauthenticated=128;charbuffer[8];authenticated=strcmp(password,PASSWORD);strcpy(buffer,password);//over flowed here!returnauthenticated;}问题1(4分)漏洞类型与成因1.漏洞:栈缓冲区溢出漏洞2.成因:C语言数组不自动做边界长度检查,strcpy无长度限制,超长字符串覆盖栈内存。问题2(6分)程序内存布局(1)authenticated变量存储区域:栈(stack)(2)stack两大操作:压栈push、弹栈pop(3)栈地址增长方向:向低地址生长(4)地址更高变量:authenticated(局部变量先定义,栈地址更高) 问题3(4分)VS编译安全配置(1)缓解栈溢出配置:Enable SecurityCheck(/GS)(2)buffer改为char buffer[4]后,/GS依然生效(GS仅防护溢出,与数组长度无关)(3)模糊测试可以检测该缓冲区溢出漏洞