一、[材料型]问答题
试题一(共20分)
阅读下列说明和图,回答问题1至问题5,将解答填入答题纸的对应栏内。
【说明】
在某政府单位信息中心工作的李工要负责网站的设计、开发工作。为了确保部门新业务的顺利上线,李工邀请信息安全部门的王工按照等级保护2. 0的要求对其开展安全测评。李工提供网站所在的网络拓扑图如图1-1所示。图中,网站服务器的IP地址是192.168.70.140,数据库服务器的IP地址是192.168.70.141。
图1-1
王工接到网站安全测评任务以后,决定在内网办公区的信息安全部开展各项运维工作,王工使用的办公电脑IP地址为192.168.11.2。
1、【问题1】(2分)
按照等级保护2. 0的要求,政府网站的定级不应低于几级?该等级的测评每几年开展一次?
参考答案:二级;两年
解析:
根据等级保护2.0的要求,政府网站的定级原则上不应低于三级,但实际情况下可能按照具体的要求和规定进行定级。对于二级等级的测评,一般是每两年开展一次。参考资料中也提到了三级网站每年应测评一次,与题目中的要求相符。因此,答案为二级,每两年测评一次。
2、【问题2】(6分)
按照网络安全测评的实施方式,测评主要包括安全功能检测、安全管理检测、代码安全审查、安全渗透、信息系统攻击测试等。王工调阅了部分网站后台处理代码,发现网站某页面的数据库查询代码存在安全漏洞,代码如下:
1 <?php
2 if(isset($_GET[‘Submit’])) {
3
4 //Retrieve data
5 $id = $_GET[‘id’];
6
7 $getid = ”SELECT first_name, last_name FROM users WHRER user_id = ‘$id’ ”;
8 $result = mysql_query($getid) or die(‘<pre>’ . mysql_error() . ‘<pre>’);
9
10 $num =mysql_numrows($result);
11
12 $i = 0;
13 while($i < $num){
14
15 $first = mysql_result($result, $i, “first_name”);
16 $last = mysql_result($result, $i, “last_name”);
17
18 ehco ‘<pre>’
19 ehco ‘ID: ’ . $id . ‘<br>First name: ’ .$first . ‘<br>Surname: ’ .$last;
20 ehco ‘<pre>’
21
22 $i++;
23 }
24 }
25 ?>
(1)请问上述代码存在哪种漏洞?
(2)为了进一步验证自己的判断,王工在该页面的编辑框中输入了漏洞测试语句,发起测试。请问王工最有可能输入的测试语句对应以下哪个选项?
A. or 1=1--order by 1 B. 1 or ‘1’=‘1’=1 order by 1#
C. l’ or 1=1 order by 1# D. 1'and‘1’=‘2’order by 1#
(3)根据上述代码,网站后台使用的哪种数据库系统?
(4)王工对数据库中保存口令的数据表进行检查的过程中,发现口令为明文保存,遂给出整改建议,建议李工对源码进行修改,以加强口令的安全防护,降低敏感信息泄露风险。下面给出四种在数据库中保存口令信息的方法,李工在安全实践中应采用哪一种方法?
A. Base64 B. MD5 C. 哈希加盐 D. 加密存储
参考答案:(1)SQL注入漏洞 (2)C (3) mysql,,(4) C
解析:
(1)上述代码存在SQL注入漏洞。因为代码直接从前端获取参数ID,并将其用于拼装SQL语句,没有经过任何过滤和条件限制,这可能导致攻击者通过输入特定的字符串来操纵SQL语句,获取不应访问的数据或导致其他未预期的行为。
(2)王工最有可能输入的测试语句是C选项"l’ or 1=1 order by 1#"。这条语句可以使得SQL查询绕过正常的验证机制,因为"or 1=1"总是为真,从而获取用户信息。
(3)根据代码中的mysql_query函数,可以判断网站后台使用的是MySQL数据库系统。
(4)对于数据库中保存口令的信息,应该采用哈希加盐的方法。纯哈希存在被彩虹表攻击的风险,而加盐可以有效地增加攻击者破解哈希的难度,从而提高口令的安全性。
3、【问题3】(2分)
按照等级保护2.0的要求,系统当中没有必要开放的服务应当尽量关闭。王工在命令行窗口运行了一条命令,查询端口开放情况。请给出王工所运行命令的名字。
参考答案:netstat
解析:
按照等级保护2.0的要求,系统当中没有必要开放的服务应当尽量关闭。为了查询端口开放情况,王工在命令行窗口运行的命令名字是netstat。这个命令可以显示网络连接、路由表、接口统计等网络相关信息。在不同的操作系统中,如Windows、Linux或Unix,都可以使用netstat命令,通过不同的参数来查看本机开放的所有服务端口,从而了解哪些服务已经开放。
4、【问题4】(2分)
防火墙是网络安全区域边界保护的重要技术,防火墙防御体系结构主有基于双宿主机防火墙、基于代理型防火增和基于屏蔽子网的防火墙。图1-1拓扑图中的防火墙布局属于哪种体系结构类型?
参考答案:
屏蔽子网的防火墙

本题中可以明显地看到防火墙存在有外部路由器、DMZ网络和内部路由器等部分,因此是属于屏蔽子网的防火墙。
解析:
根据题目中提供的网络拓扑图,可以明显地看到防火墙存在外部路由器、DMZ(隔离区)网络和内部路由器等部分。这种布局结构符合屏蔽子网的防火墙特点。屏蔽子网的防火墙通过在网络中设置多个安全区域,并在区域之间设置控制点,以达到增强网络安全性的目的。因此,图1-1拓扑图中的防火墙布局属于屏蔽子网的防火墙体系结构类型。
5、【问题5】(8分)
根据李工提供的网络拓扑图,王工建议部署开源的Snort入侵检测系统以提高整体的安全检测和态势感知能力。
(1)针对王工建议,李工查阅了入侵检测系统的基本组成和技术原理等资料。请问以下有关Snort入侵检测系统的描述哪两项是正确的?(2分)
A. 基于异常的检测系统 B. 基于误用的检测系统
C. 基于网络的入侵检测系统D. 基于主机的入侵检测系统
(2)为了部署Snort入侵检测系统,李工应该把入侵检测系统连接到图1-1 网络拓扑中的哪台交换机?(1分)
(3)李工还需要把网络流量导入入侵检测系统才能识别流量中的潜在攻击。图1-1中使用的均为华为交换机,李工要将交换机网口GigabitEthernet1/0/2的流量镜像到部署 Snort的网口 GigabitEthernet1/0/1上,他应该选择下列选项中哪一个配置?(2分)
A. observe-port 1 interface GigabitEthernet1/0/2
interface GigabitEthemet1/0/1
port-mirroring to observe-port 1 inbound/outbound/both
B. observe-port 2 interface GigabitEthernet1/0/2
interface GigabitEthemet1/0/1
port-mirroring to observe-port 1 inbound/outbound/both
C.port-mirroring to observe-port 1 inbound/outbound/both
observe-port 1 interfaceGigabiEthenet1/0/2
interface GigabitEthenet1/0/1
D.observe-port 1 interface GigabitEthernet1/0/1
interface GigabitEthemet1/0/2
port-mirroring to observe-port 1 inbound/outbound/both
(4)Snort入侵检测系统部署不久,就发现了一起网络攻击。李工打开攻击分组查看,发现很多字符看起来不像是正常字母,如图1-2所示,请问该用哪种编码方式去解码该网络分组内容?(1分)

图1-2
(5)针对图1-2所示的网络分组,李工查看了该攻击对应的Snort 检测规则,以更好地掌握Snort入侵检测系统的工作机制。请完善以下规则,填充空(a)、(b)处的内容。(2分)
(a) tcp any any -> any any (msg:"XXX";content:" (b) ";nocase;sid:1106;)
参考答案:
(1)B、C
(2)交换机2
(3)D
(4)URL编码(URL,encode)
(5a)alert (5b)union,select
解析:
(1)Snort入侵检测系统是基于网络误用检测的入侵检测系统,因此选项B和C都是正确的描述。基于异常的检测系统描述不符合Snort的特性。
(2)为了全面检测内网的入侵行为,Snort入侵检测系统需要连接到内网的核心交换机上,以便捕获所有的网络流量。根据提供的网络拓扑图,交换机2是内网的核心交换机,因此应该选择连接到这台交换机。
(3)为了将网络流量导入Snort入侵检测系统,需要配置交换机以镜像流量到Snort所在的端口。在华为交换机上,需要首先定义一个观察端口(observe port),然后指定数据来源的物理接口,并配置端口镜像(port-mirroring)到观察端口。选项D中的配置步骤是正确的。
(4)图1-2中显示的网络分组内容包含了许多URL编码的字符,这是一种常见的网络编码方式,用于在URL中传输特殊字符。因此,应该使用URL编码(URL encode)来解码该网络分组内容。
(5)Snort入侵检测系统的规则用于定义哪些网络行为会被视为入侵并触发告警。规则中的空(a)处应填写表示告警的关键词,即"alert"。空(b)处应填写用于触发告警的内容匹配关键词,根据提供的截图,应填写"union select"。
试题二(共20分)
阅读下列说明,回答问题1至问题5,将解答填入答题纸的对应栏内。
【说明】
通常由于机房电磁环境复杂,运维人员很少在现场进行运维工作,在出现安全事件需要紧急处理时,需要运维人员随时随地远程开展处置工作。
SSH(安全外壳协议)是一种加密的网络传输协议,提供安全方式访问远程计算机。李工作为公司的安全运维工程师,也经常使用SSH远程登录到公司的Ubuntu18.04服务器中进行安全维护。
6、【问题1】(2分)
SSH协议默认工作的端口号是多少?
参考答案:
22
解析:
SSH(安全外壳协议)是一种加密的网络传输协议,用于安全地访问远程计算机。它默认工作的端口号是22,这个端口号是基于TCP协议的。
7、【问题2】(2分)
网络设备之间的远程运维可以采用两种安全通信方式:一种是SSH,还有一种是什么?
参考答案:
Stelnet
解析:
网络设备之间的远程运维除了SSH外,另一种常用的安全通信方式是Telnet的升级版Stelnet。Stelnet提供了更高级别的安全性,支持加密和身份验证等功能,适用于远程运维场景中对安全性的高要求。
8、【问题3】(4分)
日志包含设备、系统和应用软件的各种运行信息,是安全运维的重点关注对象。李工在定期巡检服务器的SSH日志时,发现了以下可疑记录:
Jul 22 17: 17: 52 humen systed-logiad [1182] : Waching sytem buttons on/dev/input/evet0 (Power Button)
Jul 22 17: 17: 52 humen systed-logiad [1182] : Waching sytem buttons on/dev/input/evet1(AT Translated Set 2 keyboard)
Jul 23 09: 33: 41 humen sshd [5423] :pam_unix (sshd:auth) authentication failure, Iogame= uid=0 euid=0 tty=ssh ruser=rhost=192.168.107.130 user=humen
Jul 23 09: 33: 43 humen sshd [5423] :Failed password for humen from 192.168.107.130 port 40231 ssh2
Jul 23 09: 33: 43 humen sshd [5423] :Connection closed by authenticating user humen 192.168.107.130 port 40231[preauth]
Jul 23 09: 33: 43 humen sshd [5425] :pam_unix (sshd:auth) :authentication failure; logname= uid=0 euid=0 tty=ssh ruser=rhost=192.168.107.130 user=humen
Jul 23 09: 33: 45 humen sshd [5425] : Failed password for humen from 192.168.107.130 port 37223 ssh2
Jul 23 09: 33: 45 humen sshd [5425] : Connection closed by authenticating user humen192.168.107.130 port 37223 [preauth]
Jul 23 09: 33: 45 humen sshd [5427] : pam_unix (sshd:auth) :authentication failure;logname= uid=0 euid=0 tty=ssh ruser=rhost=192.168.107.130 user=humen
Jul 23 09: 33: 47 humen sshd [5427] : Failed password for humen from 192.168.107.130 port 41365 ssh2
Jul 23 09: 33: 47 humen sshd [5427] :Connection closed by authenticating user humen 192.168.107.130 port 41365 [preauth]
Jul 23 09: 33: 47 humen sshd [5429] : pam_unix (sshd:auth) :authentication failure;logname= uid=0 euid=0 tty=ssh ruser=rhost=192.168.107.130 user=humen
Jul 23 09: 33: 49 humen sshd [5429] : Failed password for humen from 192.168.107.130 port 45627 ssh2
Jul 23 09: 33: 49 humen sshd [5429] :Connection closed by authenticating user humen 192.168.107.130 port 45627 [preauth]
Jul 23 09: 33: 49 humen sshd [5431] : pam_unix (sshd:auth) :authentication failure;logname= uid=0 euid=0 tty=ssh ruser=rhost=192.168.107.130 user=humen
Jul 23 09: 33: 51 humen sshd [5431] : Failed password for humen from192.168.107.130 port 42271 ssh2
Jul 23 09: 33: 51 humen sshd [5431] :Connection closed by authenticating user humen 192.168.107.130 port 42271 [preauth]
Jul 23 09: 33: 51 humen sshd [5433] : pam_unix (sshd:auth) :authentication failure;logname= uid=0 euid=0 tty=ssh ruser=rhost=192.168.107.130 user=humen
Jul 23 09: 33: 53 humen sshd [5433] : Failed password for humen from 192.168.107.130 port 45149 ssh2
Jul 23 09: 33: 53 humen sshd [5433] :Connection closed by authenticating user humen 192.168.107.130 port 45149[preauth]
Jul 23 09: 33:54 humen sshd [5435] :Accepted password for humen from 192.168.107.130 port 45671 ssh2
Jul 23 09: 33: 54 humen sshd [5435] : pam_unix (sshd:auth) : session opened for user humen by (uid=0)
(1)请问李工打开的系统日志文件的路径和名称?
(2)李工怀疑有黑客在攻击该系统,请给出判断攻击成功与否的命令以便李工评估攻击的影响。
参考答案:
(1)路径:/var/log。名称:/var/log/secure
(2)日志文件包含“Accepted password for humnen”的命令可以判断登录成功。
解析:
在Linux系统中,安全日志(/var/log/secure)存放了验证和授权方面的信息。SSH会将所有信息记录在这里,包括失败的登录尝试。从提供的日志中可以看到多次失败的登录尝试和一次成功的登录。成功的登录可以在日志中通过“Accepted password for humen”来判断。因此,如果李工在日志中找到了这样的记录,就可以判断攻击是成功的。
9、【问题4】(10分)
经过上次SSH的攻击事件之后,李工为了加强口令安全,降低远程连接风险,考虑采用免密证书登录。
(1)Linux系统默认不允许证书方式登录,李工需要实现免密证书登录的功能,应该修改哪个配置文件?请给出文件名。
(2)李工在创建证书后需要拷贝公钥信息到服务器中。他在终端输入了以下拷贝命令,请说明命令中“>>”的含义。
ssh xiaoming@server cat/home/xiaoming/.ssh/id_rsa.pub> >authorized_keys
(3)服务器中的authorized_keys文件详细信息如下,请给出文件权限的数字表示。
(4)李工完成SSH配置修改后需要重启服务,请给出systemctl 重启SSH服务的命令。
(5)在上述服务配置过程中,配置命令中可能包含各种敏感信息,因此在配置结束后应及时清除历史命令信息,请给出清除系统历史记录应执行的命令。
参考答案:
(1)/etc/ssh/sshd_config,
(2)>>表示向文件中追加内容
(3)600,
(4)systemctl restart sshd
(5)history -c
解析:
(1)Linux系统中默认不允许使用免密登录,因此需要修改SSHD的配置文件来实现免密证书登录的功能,该文件位于/etc/ssh/sshd_config
。
(2)在Linux系统中,命令中的">“和”>>“符号表示命令的输出重定向到指定的文件。”>“表示覆盖原文件内容,”>>“表示向文件中追加内容。所以在这个问题中,”>>"表示向服务器的authorized_keys文件中追加公钥信息。
(3)关于文件权限的数字表示,可以通过将权限属性转换为数字来得到。在这个问题中,authorized_keys文件的权限为rw- — — ,对应的数字权限为600。
(4)在Linux系统中,可以使用systemctl命令来管理服务。重启SSH服务的命令是:systemctl restart sshd。
(5)在Linux系统中,history命令可以查看之前在控制台输入过的历史命令。要清除这些历史命令信息,可以使用history -c命令。
10、【问题5】(2分)
SSH之所以可以实现安全的远程访问,归根结底还是密码技术的有效使用。对于SSH协议,不管是李工刚开始使用的基于口令的认证还是后来的基于密钥的免密认证,都是密码算法和密码协议在为李工的远程访问保驾护航。请问上述安全能力是基于对称密码体制还是非对称密码体制来实现的?
参考答案:
非对称密码体制
解析:
SSH协议中使用的是非对称密码体制。在Linux中,SSH认证过程中,客户端使用服务端的公钥对密码进行加密后发送给服务端,服务端收到加密的密码后使用其私钥进行解密并与存储的密码进行对比,从而实现认证。这一过程确保了远程访问的安全性。因此,SSH实现的安全能力是基于非对称密码体制来实现的。
试题三(共20分)
阅读下列说明和图,回答问题1至问题5,将解答填入答题纸的对应栏内。
【说明】
域名系统是网络空间的中枢神经系统,其安全性影响范围大,也是网络攻防的重点。李工在日常的流量监控中,发现以下可疑流量,请协助分析其中可能的安全事件。

图3-1
11、【问题1】(4分)
域名系统采用授权的分布式数据查询系统,完成域名和IP地址的解析。李工通过上述流量可以判断域名解析是否正常、有无域名劫持攻击等安全事件发生。
(1)域名系统的服务端程序工作在网络的哪一层?
(2)图3-1中的第一个网络分组要解析的域名是什么?
(3)给出上述域名在DNS查询包中的表示形式(16进制)。
(4)由图3-1可知李工所在单位的域名服务器的IP地址是什么?
参考答案:
(1)应用层
(2)www.humen.com
(3)77,77,77,05,68,75,6D,65,6e,03,63,6F,6D,
(4)192.168.299.133
解析:
(1)域名系统的服务端程序工作在应用层。域名系统是一个基于客户端-服务器架构的系统,客户端通过发送请求到服务器来查询域名和IP地址的映射关系。服务器接收并处理这些请求,然后返回相应的IP地址。这个过程是通过网络协议完成的,而网络协议工作在OSI参考模型的应用层。因此,域名系统的服务端程序也工作在应用层。
(2)根据图3-1中的信息,第一个网络分组要解析的域名是www.humen.com。在DNS查询过程中,客户端会向DNS服务器发送查询请求,请求中包含要查询的域名。从图中可以看到,第一个网络分组对应的是一个标准的DNS查询,查询的域名就是www.humen.com。
(3)域名的DNS查询包表示形式是将域名转换为一系列的16进制代码。在DNS查询包中,域名的表示形式遵循一定的编码规则。根据图中的信息,可以推导出“.humen.com”对应的16进制代码表示形式为77 77 77 05 68 75 6D 65 6E 03 63 6F 6D。其中,“www”对应的16进制代码为77 77 77,“humen.com”的其余部分也按照相同的规则进行编码。
(4)根据图3-1中的信息,所有的DNS请求都是发往IP地址192.168.299.133的,并且对DNS请求的返回数据包也是从该地址发出的。因此,可以判断李工所在单位的域名服务器的IP地址是192.168.299.133。
12、【问题2】(2分)
签于上述DNS协议分组包含大量奇怪的子域名,如想知道是哪个应用程序发送的上述网络分组,请问在Windows系统下,李工应执行哪条命令以确定上述DNS流量来源?
参考答案:
netstat,-b
解析:
在Windows系统下,为了确定DNS流量的来源,即想知道是哪个应用程序发送了包含大量奇怪子域名的DNS协议分组,可以执行netstat -b命令。这个命令可以显示在创建每个连接或侦听端口时涉及的可执行程序,从而可以帮助李工确定DNS流量的来源。
13、【问题3】(6分)
通过上述的初步判断,李工认为192.168.229.1的计算机可能已经被黑客所控制(CC攻击)。黑客惯用的手法就是建立网络隐蔽通道,也就是指利用网络协议的某些字段秘密传输信息,以掩盖恶意程序的通信内容和通信状态。
(1)请问上述流量最有可能对应的恶意程序类型是什么?
(2)上述流量中隐藏的异常行为是什么?请简要说明。
(3)信息安全目标包括保密性、完整性、不可否认性、可用性和可控性,请问上述流量所对应的网络攻击违反了信息安全的哪个目标?
参考答案:
(1)Dos攻击
(2)发送大量无效的DNS请求攻击DNS服务器,导致基于此dns服务器解析应用不能正常工作
(3)可用性和可控性
解析:
(1)根据题目描述,李工认为192.168.229.1的计算机可能已经被黑客所控制的CC攻击。CC攻击是拒绝服务(DoS)攻击的一种,因此,上述流量最有可能对应的恶意程序类型是Dos攻击。
(2)黑客通过发送大量无效的DNS请求攻击DNS服务器,这些请求会使DNS服务器负载过大,无法正常处理正常的DNS解析请求,导致基于该DNS服务器的应用无法正常工作。这是一种异常行为。
(3)信息安全目标包括保密性、完整性、不可否认性、可用性和可控性。上述流量中的攻击行为导致服务器无法提供服务,违反了信息安全的可用性和可控性目标。
14、【问题4】(6分)
通过上述的攻击流分析,李工决定用防火墙隔离该计算机,李工所运维的防火墙是Ubuntu 系统自带的iptables防火墙。
(1)请问iptables默认实现数据包过滤的表是什么?该表默认包含哪几条链?
(2)李工首先要在ipables防火墙中查看现有的过滤规则,请给出该命令。
(3)李工要禁止该计算机继续发送DNS数据包,请给出相应过滤规则。
参考答案:
(1)filter,3,
(2)iptables,-L
(3)iptables -a input,-s 192.168.229.1/32,,,–dport,53,,-j drop
解析:
(1)iptables中用于实现数据包过滤的默认表是filter表,该表包含三个规则链,分别是input、forward和output。这些链用于处理不同类型的数据包,例如input链处理进入系统的数据包,forward链处理路由转发的数据包,output链处理从系统发出的数据包。
(2)查看iptables防火墙中的现有过滤规则,可以使用命令iptables -L。这个命令会列出所有在指定链(如果没有指定链,默认为全部链)中的规则。
(3)要禁止某台计算机继续发送DNS数据包,需要制定相应的过滤规则。在这个情况下,可以使用命令iptables -a input -s 192.168.229.1/32 –dport 53 -j drop。这个规则的意思是,在input链中添加一条规则,源IP地址为192.168.229.1的数据包,目标端口为53(DNS服务的默认端口)的数据包将被丢弃(drop)。这样就可以阻止该计算机继续发送DNS数据包。
15、问题5】(2分)
在完成上述处置以后,李工需要分析事件原因,请说明导致DNS成为CC攻击的首选隐蔽传输通道协议的原因。
参考答案:
更隐蔽,不易被防火墙和基于http协议的拦截工具所拦截。
解析:
由于DNS是重要的网络服务,广泛应用于各种互联网服务和应用,因此很容易被攻击者利用作为隐蔽传输通道协议。企业防火墙通常允许DNS流量通过,而不进行深度检查或状态维护,这使得攻击者可以轻易地通过DNS协议传输数据,而不容易被防火墙或基于HTTP协议的拦截工具所拦截。虽然DNS通道的传输速度可能不如其他协议快,但它可以构建隧道传输SSH、FTP等命令,这使得攻击活动更加隐蔽且难以跟踪。因此,DNS成为CC攻击的首选隐蔽传输通道协议。
试题四(共15分)
阅读下列说明和图,回答问题1至问题4,将解答填入答题纸的对应栏内。
【说明】
近期,按照网络安全审查工作安排,国家网信办会同公安部、国家安全部、自然资源部、交通运输部、税务总局、市场监管总局等部门联合进驻某出行科技有限公司,开展网络安全审查,移动App安全检测和个人数据安全再次成为关注焦点。
16、【问题1】(4分)
为保护 Android 系统及应用终端平台安全,Android 系统在内核层、系统运行层、应用框架层以及应用程序层采取了相应的安全措施,以尽可能地保护移动用户数据、应用程序和设备安全。
在Android 系统提供的安全措施中有安全沙箱、应用程序签名机制、权限声明机制、地址空间布局随机化等,请将上述四种安全措施按照其所在层次分填入表4-1的空(1)~(4)。
表4-1 Android 系统安全系统结构

参考答案:
(1)权限控制机制 (2)应用程序签名机制
(3)安全沙箱 (4)地址空间布局随机化
解析:
根据Android系统安全结构,不同层次采取了不同的安全措施。应用程序层主要关注权限控制机制,确保应用程序的访问权限;应用框架层涉及到应用程序签名机制,验证应用程序的合法性;系统运行层采用安全沙箱来隔离应用程序,保障系统安全;Linux内核层则采用地址空间布局随机化等安全机制,增强系统安全性。参照《信息安全工程师5天修炼》中关于Android系统部分的内容,可以将上述四种安全措施按照其所在层次进行划分。
17、【问题2】(6分)
权限声明机制为操作权限和对象之间设定了一些限制,只有把权限和对象达行绑定,才可以有权操作对象。
(1)请问Android系统应用程序权限信息声明都在哪个配置文件中?给出该配置文件名。
(2)Android系统定义的权限组包括CALENDAR、CAMERA、CONTACTS、LOCATION、MICROPHONE、PHONE、SENSORS、SMS、STORAGE。按照《信息安全技术 移动互联网应用程序(App)收集个人信息基本规范》,运行在Android9.0系统中提供网络约车服务的某某出行App可以有的最小必要权限是以上权限组的哪几个?
(3)假如有移动应用A提供了如下服务 AService,对应的权限描述如下:
1. <permission
2. android:name="USER_INFO"
3. android:label="read user information"
4. android:description="get user information"
5. android: ProtectionLevel="signature"
6. />
7. <service android:name="com.demo. AService"
8. android:exported="true"
9. android:permission="com.demo.permission.USER_INFO"
10. </service>
如果其它应用B要访问该服务,应该申明使用该服务,将以下申明语句补充完整。
1. < android:name="com.demo. AService"/>
参考答案:
(1)Manifest.xml
(2)microphone、SMS、location、phone、storage
(3)service
解析:
(1)Android系统应用程序的权限信息声明都在Manifest.xml配置文件中。这是为了防止应用程序错误使用服务或不恰当地访问资源。
(2)按照《信息安全技术 移动互联网应用程序(App)收集个人信息基本规范》,网络约车服务需要收集个人信息以实现服务,包括法律法规要求的个人信息和实现服务所需个人信息。因此,最小必要权限包括microphone(麦克风,用于通话录音和客服相关信息)、SMS(短信,用于手机号码等通信信息)、location(位置信息,基于地理位置的应用服务)、phone(电话权限,处理客服相关信息)和storage(存储权限,读取形式轨迹和日志信息)。
(3)其他应用B要访问服务AService,必须在应用的清单文件中声明该服务。声明服务的语句应包含android:name属性,用于指定服务的类名。在此情况下,应补充完整的申明语句为:<service android:name=“com.demo.AService” android:permission=“com.demo.permission.USER_INFO”>。
18、【问题3】(3分)
应用程序框架层集中了很多Android开发需要的组件,其中最主要的就是Activities、Broadcast Receiver、Services以及Content Providers这四大组件,围绕四大组件存在很多的攻击方法,请说明以下三种攻击分别是针对哪个组件。
(1)目录遍历攻击:
(2)界面劫持攻击:
(3)短信拦截攻击。
参考答案:
(1)Content Providers(2)Activities (3)Broadcast Receiver
解析:
应用程序框架层在Android开发中集中了多个关键组件,其中包括Activities、Broadcast Receiver、Services和Content Providers。这些组件各有特点,也各自存在安全隐患。
(1)目录遍历攻击:Content Providers组件主要用于对外共享数据,攻击者可以通过目录遍历的方式获取应用内部数据,因此目录遍历攻击主要针对的是Content Providers组件。
(2)界面劫持攻击:Activities是用户和应用程序的交互窗口,攻击者可能会通过劫持Activity界面来欺骗用户或者获取用户输入的信息,因此界面劫持攻击主要针对的是Activities组件。
(3)短信拦截攻击:BroadcastReceiver负责接收系统和应用程序的广播并作出回应。在Android系统中,短信相关的广播也会被BroadcastReceiver接收,因此攻击者可以通过拦截短信相关的广播来实现短信拦截攻击,主要针对的是Broadcast Receiver组件。
19、【问题4】(2分)
移动终端设备常见的数据存储方式包括:
①SharedPreferences;
②文件存储;
③SQLite数据库;
④ContentProvider;
⑤网络存储。
从以上5种方式中选出Android系统支持的数据方式,给出对应存储方式的编号。
参考答案:
① ② ③ ④ ⑤
解析:
Android系统支持的数据存储方式包括SharePreference、SQLite、Content Provider、文件存储和网络存储。这五种方式中,①SharedPreferences用于存储简单的键值对数据,②文件存储用于存储大量的数据,③SQLite数据库用于存储结构化数据并支持基本的SQL语法,④ContentProvider提供了一种在不同应用程序之间共享数据的机制,⑤网络存储则是通过网络提供的存储空间来上传或下载数据。因此,这五种方式都是Android系统支持的数据存储方式。
喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!