一、[材料型]问答题
试题一(共14分)
阅读下列说明,回答问题1至问题6,将解答填入答题纸的对应栏内。
【说明】Linux系统通常将用户名相关信息存放在/etc/passwd文件中,假如有/etc/passwd文件的部分内容如下,请回答相关问题。
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: l: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、【问题1】(2分)
口令字文件/etc/passwd是否允任何用户访问?
参考答案:【问题1】参考答案,,允许
解析:
口令字文件/etc/passwd允许任何用户访问。因为这是一个系统用户配置文件,存储了所有用户的宿主目录、shell等信息,所以所有用户都可以对此文件执行读(r)操作。但请注意,虽然可以读取文件,但并不意味着任何用户都可以修改或访问其中的加密口令字段,因为该字段是被加密处理的。
2、【问题2】(2分)
根据上述/etc/passwd显示的内容,给出系统权限最低的用户名字。
参考答案:user2
解析:
在Linux系统中,用户和组的权限是通过用户ID(UID)和组ID(GID)来区分的。通常,UID为0的是超级用户root,具有系统最高权限。在给出的/etc/passwd文件内容中,我们可以看到user2的UID是1000,这是一个普通用户的UID范围(通常在100到65535之间),而其他用户的UID要么是系统管理员(如user1),要么是系统保留的账号(如daemon、bin、sys等)。因此,根据这些信息,我们可以推断user2是权限最低的用户。
3、【问题3】(2分)
在Linux中,/etc/passwd文件中每一行代表一个用户,每行记录又用冒号(:)分隔为7个字段,请问Linux操作系统是根据哪个字段来判断用户的?
参考答案:
UID
解析:
在Linux系统中,/etc/passwd文件用于存储用户相关信息,每一行代表一个用户,每行记录由冒号分隔为7个字段。这7个字段分别表示:登录名、加密口令、用户标识号(UID)、组标识号(GID)、用户信息、主目录和默认shell。
判断用户身份的是用户标识号(UID),它是一个整数,系统内部用它来标识用户。因此,Linux操作系统是根据UID字段来判断用户的。
4、【问题4】(3分)
根据上述/etc/passwd显示的内容,请指出该系统中允许远程登陆的用户名。
参考答案:,user1、user2
解析:
根据题目中的/etc/passwd文件内容,我们可以看到每一行代表一个用户的信息,其中最后一列表示该用户的默认shell。在这个系统中,只有user1和user2的默认shell是可以远程登录的,因为他们的shell设置为/bin/bash。其他用户如daemon、bin和sync等,它们的shell设置为不允许登录的shell(如/usr/sbin/nologin),因此不允许远程登录。所以,该系统中允许远程登录的用户名是user1和user2。
5、【问题5】(2分)
Linux系统把用户密码保存在影子文件中,请给出影子文件的完整路径及其名字。
参考答案:/etc/shadow
解析:
在Linux系统中,用户密码不再直接保存在/etc/passwd文件中,而是保存在一个名为/etc/shadow的专门文件中。这是为了增强系统的安全性。在/etc/passwd文件中,密码字段通常使用"x"来占位。实际的加密密码存储在/etc/shadow文件中,该文件具有特定的权限设置,只有系统管理员可以访问。
6、【问题6】(3分)
如果使用ls -al命令查看影子文件的详细信息,请给出数字形式表示的影子文件访问权限。
参考答案:640或者600或者400或者000
解析:
使用 ls -al
命令查看影子文件的详细信息时,影子文件的访问权限可以用数字形式表示。根据说明,/etc/shadow
文件通常的权限是 640 或 600 或 400。这意味着文件所有者有读写权限(6),而组用户只有读权限(4),其他用户没有任何权限(0)。在某些系统版本中,权限可能设置为 000,表示只有 root 用户可以读写这个文件。因此,正确答案是 640、600、400 或 000。选项 A、B、C 和 D 中的任何一个或组合都可能是正确答案,具体取决于系统的实际配置。
试题二(共20分)
阅读下列说明,回答问题1至问题8,将解答填入答题纸的对应栏内。
【说明】密码学作为信息安全的关键技术,在信息安全领域有着广泛的应用。密码学中,根据加密和解密过程所采用密钥的特点可以将密码算法分为两类:对称密码算法和非对称密码算法。此外,密码技术还用于信息鉴别、数据完整性检验、数字签名等。
7、【问题1】(3分)
信息安全的基本目标包括:真实性、保密性、完整性、不可否认性、可控性、可用性、可审查性等。密码学的三大安全目标C、I、A分别表示什么?
参考答案:保密性、完整性、可用性
解析:
根据密码学在信息安全领域的应用,其三大安全目标分别代表保密性、完整性和可用性。保密性确保信息仅被合法用户访问,不泄露给非授权用户;完整性指所有资源只能由授权方或以授权方式进行修改,确保数据在传输或存储过程中不被破坏或篡改;可用性指所有资源在适当的时候可以由授权方访问,即确保信息系统在任何需要的时候都能够正常运行,为用户提供服务。
8、【问题2】(3分)
RSA公钥密码是一种基于大整数因子分解难题的公开密钥密码。对于RSA密码的参数p、q、n、φ(n)、e、d,哪些参数是可以公开的?
参考答案:n、e
解析:
在RSA公钥密码算法中,公开密钥由两个参数构成,分别是n和e。其中,n是两个大素数p和q的乘积,是公开的;e是与φ(n)互质的数,也是公开的。因此,RSA公钥密码中可以公开的参数是n和e。
9、【问题3】(2分)
如有RSA密码算法的公钥为(55,3),请给出对小王的年龄18进行加密的密文结果。
参考答案:2
解析:
RSA密码算法的公钥为(55,3),其中55为模数n,3为公钥的一部分e。根据RSA算法原理,我们需要找到两个质数P和Q,使得它们的乘积等于n。在这个例子中,我们可以假设P=5和Q=11(或其他两个乘积为55的质数组合)。然后,使用公钥e和n对消息进行加密。对于消息m(小王的年龄18),使用公钥加密的公式是:c = m^e mod n。将m=18,e=3,n=55代入公式,计算得到密文c = 18^3 mod 55 = 5832 mod 55 = 2。因此,对小王的年龄18进行加密的密文结果是2。
10、【问题4】(2分)
对于RSA密码算法的公钥(55,3),请给出对应的私钥。
参考答案:(55,27)
解析:
RSA密码算法是一种非对称密码算法,其公钥和私钥是一对大整数。对于给定的公钥(55,3),根据RSA算法的原理,我们需要找到与公钥配对的私钥。私钥是一个二元组,其中第一个数值与公钥的第一个数值相同,为55;第二个数值是通过计算公钥中两个数的逆操作来得到,此处为模逆元,即公钥中的第二个数(即3)关于公钥中的第一个数(即55)的模逆元。计算得到模逆元为27(因为3的模逆元在模55意义下为27)。因此,对应的私钥为(55,27)。
11、【问题5】(2分)
在RSA公钥算法中,公钥和私钥的关系是什么?
参考答案:(ed)mod ϕ(n)=1
解析:
RSA公钥算法是一种非对称加密算法,公钥和私钥在其中的关系是基于模逆运算和欧拉函数建立的。在生成公钥和私钥的过程中,首先选取两个大素数p和q,计算它们的乘积n。然后选择一个与欧拉函数ϕ(n)互质的数e作为公钥的一部分。接着,计算e的模逆元d,这个d就是私钥的一部分。公钥和私钥都包含模数n,但私钥还包括解密密钥d。公钥用于加密信息,而私钥用于解密信息。公钥和私钥之间的关系是通过满足特定条件的数学关系建立的,以确保信息的加密和解密过程能够正确进行。
12、【问题6】(2分)
在RSA密码中,消息m的取值有什么限制?
参考答案:消息m取值必须是整数且小于n
解析:
在RSA密码中,消息m的取值必须满足两个条件:一是m必须是整数,这意味着如果消息是字符串形式,需要将其转换为整数,例如可以取字符串的ASCII值或Unicode值;二是m必须小于n,这是为了保证加密和解密的正确性。因此,答案中提到的“消息m取值必须是整数且小于n”是正确的。
13、【问题7】(3分)
是否可以直接使用RSA密码进行数字签名?如果可以,请给出消息m的数字签名方法。如果不可以,请给出原因。
参考答案:不可以直接使用RSA进行数字签名,因为RSA的密钥没有与用户的身份进行捆绑,有可能被假冒。
解析:
数字签名是为了确认信息的来源和完整性,需要保证签名的密钥与发送方的身份绑定。而RSA密码算法虽然可以用于加密和解密,但其密钥并没有与用户的身份进行绑定,因此不能直接用RSA密码进行数字签名。如果直接使用RSA私钥进行签名,那么任何人只要获得该私钥都可以进行签名,这样就无法保证签名的真实性和安全性。因此,通常需要使用数字证书等机制对RSA密钥进行身份验证,确保密钥与用户的身份绑定,从而实现安全的数字签名。
14、【问题8】(3分)
上述RSA签名体制可以实现【问题1】所述的哪3个安全基本目标?
参考答案:完整性、真实性和不可否认性
解析:
根据题目描述,RSA签名体制可以实现信息完整性、真实性和不可否认性这三个安全基本目标。通过RSA签名,可以确保信息在传输过程中没有被篡改,即信息的完整性;可以确认信息的发送方是真实的,即信息的真实性;同时,签名可以作为发送方对信息内容进行签署的证据,确保发送方无法否认自己发送的信息,即不可否认性。因此,答案选A。
试题三(共15分)
阅读下列说明,回答问题1至问题5,将解答填入答题纸的对应栏内。
【说明】防火墙作为网络安全防护的第一道屏障,通常用一系列的规则来实现网络攻击数据包的过滤。
15、【问题1】(3分)
图3.1给出了某用户Windows系统下的防火墙操作界面,请写出Windows下打开以下界面的操作步骤。
图3.1
参考答案:通过控制面板->系统和安全->Windows Defender 防火墙,可以进入当前界面。
解析:
根据题目描述和提供的图片,Windows系统下的防火墙操作界面可以通过控制面板进入,然后依次点击系统和安全,再点击Windows Defender 防火墙,即可打开防火墙操作界面。这是打开Windows系统下防火墙操作界面的标准步骤。
16、【问题2】(4分)
Smurf拒绝服务攻击结合IP欺骗和ICMP回复方法使大量网络数据包充斥目标系统,引起目标系统拒绝为正常请求提供服务。请根据图3.2回答下列问题。

图3.2
(1)上述攻击针对的目标IP地址是多少?
(2)在上述攻击中,受害者将会收到ICMP协议的哪一种数据包?
参考答案:
(1)192.168.27.1
(2)ICMP echo reply 数据包
解析:
Smurf攻击是一种拒绝服务攻击,它通过结合IP欺骗和ICMP回复方法使大量网络数据包充斥目标系统。在这种攻击中,攻击者向网络广播地址发送ICMP echo request包,并将回复地址设置成受害主机的地址。网络中的其他主机都会对这个请求包做出回应,导致大量ICMP echo reply应答数据包发送给受害主机,使其遭受攻击。
(1)根据图中的信息,发送的ICMP回送请求包对应的目标地址是192.168.27.255(一个广播地址),而源主机的地址是192.168.27.1。因此,攻击针对的目标IP地址是192.168.27.1。
(2)由于网络中的主机对ICMP echo request包做出回应,产生的应答数据包是ICMP echo reply数据包。因此,受害者将会收到ICMP协议的echo reply数据包。
17、【问题3】(2分)
如果Windows系统中对上述Smurf攻击进行过滤设置,应该图3.1中“允许应用或者功能通过Windows defender 防火墙”下面的选项中选择哪一项?
参考答案:高级设置
解析:
在Windows防火墙中,无法直接通过简单的勾选选项来过滤Smurf攻击。Smurf攻击是一种网络攻击方式,需要通过更高级的设置来进行过滤。因此,在“允许应用或者功能通过Windows Defender防火墙”下面的选项中,应该选择“高级设置”,以便进行更详细的配置和自定义规则来过滤Smurf攻击。
18、【问题4】(2分)
要对入站的ICMP协议数据包设置过滤规则,应选择图3.3的哪个选项?

图3.3
参考答案:自定义
解析:
根据说明,防火墙通过一系列规则实现网络攻击数据包的过滤。对于入站的ICMP协议数据包设置过滤规则,通常需要自定义规则以适应特定的网络安全需求。因此,应选择图3.3的自定义选项来设置针对入站ICMP协议数据包的过滤规则。
19、【问题5】(4分)
在图3.3的端口和协议设置界面中,请分别给出“协议类型(P)”和“协议号(U)”,“本地端口(L)、“远程端口(R)”的具体设置值。
参考答案:
协议类型(P):ICMPv4
协议号(U):1
本地端口(L):所有端口
远程端口(R):所有端口
解析:
由于ICMP协议是一个网络层协议,不具备传输层的端口号等特性,因此在设置防火墙规则时,针对ICMP协议的规则,不需要设置本地端口和远程端口。对于图3.3的端口和协议设置界面中,协议类型应选择ICMPv4,协议号应为1。
试题四(共12分)
阅读下列说明,回答问题1至问题6,将解答填入答题纸的对应栏内。
【说明】ISO安全体系结构包含的安全服务有七大类,即:①认证服务;②访问控制服务;③数据保密性服务;④数据完整性服务;⑤抗否认性服务;⑥审计服务;⑦可用性服务。
请问以下各种安全威胁或者安全攻击可以采用对应的哪些安全服务来解决或者缓解。
请直接用上述编号①~⑦作答。
20、【问题1】(2分)
针对跨站伪造请求攻击可以采用哪些安全服务来解决或者缓解?
参考答案: ①
解析:
跨站伪造请求攻击主要是利用了对请求的身份真实性没有严格验证,因此可以通过认证服务来解决或缓解。认证服务主要用于确认用户身份,确保请求是用户自愿发出的,从而防止跨站伪造请求攻击。
21、【问题2】(2分)
针对口令明文传输漏洞攻击可以采用哪些安全服务来解决或者缓解?
参考答案:③
解析:
口令明文传输漏洞攻击可以通过数据保密性服务来解决或缓解。由于口令明文传输可能导致口令被攻击者截获,从而造成安全隐患。因此,采用数据保密性服务可以将口令加密,使口令变成密文,从而保护口令的安全。
22、【问题3】(2分)
针对Smurf攻击可以采用哪些安全服务来解决或者缓解?
参考答案:⑦
解析:
Smurf攻击是一种利用ICMP协议进行网络攻击的方式,其主要目的是让目标主机被大量的ICMP echo reply报文所淹没,从而影响其正常运行和服务。针对这种攻击,可以采用可用性服务来缓解,确保网络在受到攻击时仍能提供一些基本的服务功能。因此,针对Smurf攻击,可以采用⑦可用性服务来解决或者缓解。
23、【问题4】(2分)
针对签名伪造攻击可以采用哪些安全服务来解决或者缓解?
参考答案:④
解析:
签名伪造攻击主要针对数据的完整性进行攻击,因此可以采用数据完整性服务来缓解。数字签名具有发送方不能抵赖、接收方不能伪造的能力,所以针对签名伪造攻击,应采用数据完整性服务来解决或缓解。
24、【问题5】(2分)
针对攻击进行追踪溯源时,可以采用哪些安全服务?
参考答案:⑥
解析:
针对攻击进行追踪溯源时,可以采用的安全服务是审计服务。安全审计是一种事后追查的安全技术,通过审计可以追查执行事件的当事人,明确事故责任,并结合告警模块对系统状态进行实时监控。因此,在ISO安全体系中,审计服务是用于解决或缓解攻击追踪溯源问题的主要手段。
25、【问题6】(2分)
如果下载的软件被植入木马,可以采用哪些安全服务来进行解决或者缓解?
参考答案:②
解析:
木马攻击是一种访问控制问题。当系统面临木马攻击时,可以通过访问控制服务来防止或缓解。具体地,系统可以事先为访问主体(如进程、文件、设备等)和受控对象分配不同的安全级别属性,然后依据这些安全级别属性来决定主体是否能够进行访问。这种方式可以有效地防止木马攻击,保护系统的安全。因此,对于问题6,如果下载的软件被植入木马,可以采用访问控制服务(编号为②)来进行解决或缓解。
试题五(共14分)
阅读下列说明和图,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】代码安全漏洞往往是系统或者网络被攻破的头号杀手。在C语言程序开发中,由于C语言自身语法的一些特性,很容易出现各种安全漏洞。因此,应该在C程序开发中充分利用现有开发工具提供的各种安全编译选项,减少出现漏洞的可能性。
26、【问题1】(4分)
图5.1给出了一段有漏洞的C语言代码(注:行首数字是代码行号),请问,图中代码存在哪种类型的安全漏洞?该漏洞和C语言数组的哪一个特性有关?

参考答案:缓冲区溢出漏洞。该漏洞和C语言不对数组进行边界检查的特性有关。
解析:
在给出的代码中,存在一个明显的缓冲区溢出漏洞。由于C语言本身不会自动对数组进行边界检查,程序员需要自己确保数组操作不会越界。如果数组越界,可能会导致缓冲区溢出,进而破坏程序的正常运行。攻击者可以利用这种漏洞执行恶意代码或执行其他非法操作。因此,在C语言程序开发中,应该充分利用现有开发工具提供的各种安全编译选项,减少出现这种漏洞的可能性。
27、【问题2】(4分)
图5.2给出了C程序的典型内存布局,请回答如下问题。
(1)请问图5.1的代码第9行的变量authenticated保存在图5.2所示的哪个区域中?
(2)请问stack的两个典型操作是什么?
(3)在图5.2中的stack区域保存数据时,其地址增长方向是往高地址还是往低地址增长方向?
(4)对于图5.1代码中的第9行和第10行代码的两个变量,哪个变量对应的内存地址更高?
参考答案:
(1)stack区。
(2)入栈、出栈
(3)往低地址方向增长
(4)authenticated
解析:
(1)根据说明,图5.1中的变量authenticated是局部变量,而局部变量通常存放在stack(栈)区中,因此该变量保存在图5.2所示的stack区域中。
(2)stack(栈)的两个典型操作是入栈和出栈。入栈操作是将数据压入栈顶,出栈操作是从栈顶弹出数据。
(3)在图5.2中的stack区域保存数据时,其地址增长方向是往低地址方向增长,即新分配的内存地址低于之前分配的内存地址。
(4)对于图5.1代码中的第9行和第10行代码的两个变量,由于它们都是局部变量,因此都存放在栈区。而堆栈的特点是先进后出,且地址增长方向是往低地址增长。由于authenticated先进入堆栈,所以其对应的内存地址更高。
28、【问题3】(6分)
微软的Visual Studio提供了很多安全相关的编译选项,图5.3给出了图5.1中代码相关的工程属性页面的截图。请回答以下问题。
图5.3
(1)请问图5.3中哪项配置可以有效缓解上述代码存在的安全漏洞?
(2)如果把图5.1中第10行代码改为char buffer[4],图5.3的安全编译选项是否还起作用?
(3)模糊测试是否可以检测出上述代码的安全漏洞?
参考答案:
(1)Security Check
(2)不起作用
(3)能
解析:
(1)根据说明和题目描述,代码安全漏洞特别是缓冲区溢出是C语言程序开发中常见的问题。在图5.3中,Security Check或GS选项是为了检查缓冲区溢出而设置的。启用此选项后,编译器可以帮助检查并减少缓冲区溢出的风险,从而缓解上述代码存在的安全漏洞。
(2)如果将图5.1中的第10行代码改为char buffer[4],这仍然是一个小的缓冲区,容易受到溢出攻击。Visual Studio的Security Check(GS)选项主要针对大于一定大小的缓冲区,对于较小的缓冲区,如本题中的buffer[4],可能无法提供足够的保护。因此,即使改变了数组大小,Security Check(GS)选项仍然不起作用。
(3)模糊测试是一种软件测试技术,它通过向目标系统提供非预期的输入来检测软件中的漏洞。这种方法不需要理解代码的具体实现,就能发现潜在的安全问题。因此,模糊测试可以检测出上述代码的安全漏洞。但需要注意的是,模糊测试只能发现漏洞,不能确定问题在代码中的具体位置。
喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!