2021下半年信息安全工程师考试
Categories:
5 分钟阅读
试题一(共 20分)
阅读下列说明和图,回答问题 1 至问题 5,将解答填入答题纸的对应栏内。
【说明】在某政府单位信息中心工作的李工要负责网站的设计、开发工作。为了确保部门新业务的顺利上线,李工邀请信息安全部门的王工按照等级保护 2.0 的要求对其开展安全测评。李工提供网站的网络拓扑图如图 1-1所示。图中, 网站服务器的 IP地址是 192.168.70.140,数据库服务器的IP 地址是 192.168.70.141。

王工接到网站安全测评任务以后,决定在内网办公区的信息安全部开展各项运维工作,王工使用的办公电脑 IP 地址为 192.168.11.2。
【问题 1】(2分)
按照等级保护 2.0的要求,政府网站的定级不应低于几级?该等级的测评每几年开展一次?
【问题 2】(6分)
按照网络安全测评的实施方式,测评主要包括安全功能检测、安全管理检测、代码安全审查、安全渗透、信息系统攻击测试等。王工调阅了部分网站后台处理代码,发现网站某页面的数
据库查询代码存在安全漏洞,代码如下:
1<?php
2if(isset($_GET['Submit'])){
3
4//Retrievedata
5$id=$_GET[‘id’];
6
7$getid=“SELECTfirst_name,last_nameFROMusersWHRERuser_id=’$id’”; 8$result=mysql_query($getid)or die(’
’.mysql_error().’’);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
18ehco’
’19ehco’ID:’.$id.’
Firstname:’$first.’
Surname:’.$last;20 ehco’
’21
22$i++;
23 }
24}
25?>
(1)请问上述代码存在哪种漏洞?
(2)为了进一步验证自己的判断,王工在该页面的编辑框中输入了漏洞测试语句,发起测试。请问王工最有可能输入的测试语句对应以下哪个选项?
A.or 1=1–order by 1 B.1or'1’=‘1’=1orderby1# C.1’or 1=1 order by 1# D.1’and'1’=‘2’order by I# (3)根据上述代码,网站后台使用的哪种数据库系统?
(4)王工对数据库中保存口令的数据表进行检查的过程中,发现口令为明文保存,遂给出整改建议,建议李工对源码进行修改,以加强口令的安全防护,降低敏感信息泄露风险。下面给出四种在数据库中保存口令信息的方法,李工在安全实践中应采用哪一种方法? A.Base64 B.MD5 C.哈希加盐 D.加密存储
【问题 3】(2分)
按照等级保护 2.0的要求,系统当中没有必要开放的服务应当尽量关闭。王工在命令行窗口运行了一条命令,查询端口开放情况。请给出王工所运行命令的名字。
【问题 4】(2分)
防火墙是网络安全区域边界保护的重要技术,防火墙防御体系结构有基于双宿主机防火墙、基于代理型防火墙和基于屏蔽子网的防火墙。图 1-1 拓扑图中的防火墙布局属于哪种体系结构类型?
【问题 5】(8分)
根据李工提供的网络拓扑图,王工建议部署开源的 Snort 入侵检测系统以提高整体的安全检测和态势感知能力。
(1)针对王工建议,李工查阅了入侵检测系统的基本组成和技术原理等资料。请问以下有关 Snort 入侵检测系统的描述哪两项是正确的?(2 分)
A.基于异常的检测系统 B.基于误用的检测系统 C.基于网络的入侵检测系统 D.基于主机的入侵检测系统
(2)为了部署 Snort入侵检测系统,李工应该把入侵检测系统连接到图 1-1网络拓扑中的哪台交换机?(1分)
(3)李工还需要把网络流量导入入侵检测系统才能识别流量中的潜在攻击。图 1-1中使用的均为华为交换机,李工要将交换机网口 GigabitEthernet1/0/2 的流量镜像到部署 Snort 的网口 GigabitEthemet1/0/1 上,他应该选择下列选项中哪一个配置?(2 分)
A.observe-port1interfaceGigabitEthernet1/0/2 interface GigabitEthemet1/0/1
port-mirroringtoobserve-port1inbound/outbound/both B.observe-port 2 interface GigabitEthernet1/0/2
interfaceGigabitEthemet1/0/1
port-mirroringtoobserve-port1inbound/outbound/both C.port-mirroringtoobserve-port1inbound/outbound/both
observe-port1interfaceGigabiEthenet1/0/2 interface GigabitEthenet1/0/1
D.observe-port1interfaceGigabitEthernet1/0/1
interfaceGigabitEthemet1/0/2
port-mirroringtoobserve-port1inbound/outbound/both
(4)Snort 入侵检测系统部署不久,就发现了一起网络攻击。李工打开攻击分组查看,发现很多字符看起来不像是正常字母,如图 1-2 所示,请问该用哪种编码方式去解码该网络分组内容?(1分)
(5)针对图 1-2 所示的网络分组,李工查看了该攻击对应的 Snort检测规则,以更好地掌握
Snort 入侵检测系统的工作机制。请完善以下规则,填充空(a)、(b)处的内容。(2分)
(a) tcpanyany->anyany(msg:“XXX”;content:" (b)";nocase;sid:1106;)
试题一参考答案与试题解析:
【问题1】参考答案:二级;每两年
试题解析:等保 2.0要求关键信息基础设施“定级原则上不低于三级”,测
评分数的要求由 60分提升至 75分以上。但官方教材 499页最下面写了:政府网站的信息安全等级原则上不应低于二级。三级网站每年应测评一次,二级网站每两年应测评一次。所以忠于教材。
【问题2】参考答案:(1)SQL注入漏洞(2)C(3)mysql(4)C
试题解析:(1)在上述代码中可以看到,PHP后台直接从前端获取参数 ID,并且将该 ID用于拼装成一条 SQL语句,这条语句中的 Where部分没有经过任何过滤和条件限制,直接使用了参数 ID,因此这部分代码存在 SQL注入攻击漏洞,
如果考生对 PHP代码不是很熟悉,实际上也可以根据上下文,从(2)的提问以及提供的选项联想到是使用了 SQL注入攻击漏洞。
(2)是对 SQL注入攻击的进一步考察。将用户名设置为 1’or1=1orderby1
#之后,后台执行的 SQL语句就变为:
SELECTfirst_name,last_nameFROMusersWHRERuser_id=‘1’or1=1 order by 1#
由于,1=1恒成立,因此可以做到不用输入正确用户名和密码,就能完全跳过登录验证。因此正确答案选择 C。
(3) 从 PHP代 码 中 可 以 发 现 最 终 执 行 SQL语 句 时 使 用 的 是
mySQL_query($getid),由此可以判断系统所使用的后台数据库是 MySQL。
(4)由题目可知数据库保存口令的数据表存放了明文口令,这是极不安全的。解决的方法是将口令进行哈希加密后再存入数据库,但攻击者知道哈希值后,可以通过查表法倒推出原始的口令。所以这种方式仍然具有较大的安全隐患。为了解决上述问题就是加盐(Salt),就是加随机值。即在口令后面加一段随机值(Salt),然后再进行 Hash运算。
【问题3】参考答案:netstat
试题解析:题目中并没有指定所使用的系统是 Windows、Linux还是 Unix,但是这些操作系统都可以运行 netstat指令,并用不同的参数查看本机开放的所有服务端口。这样也就知道开放了哪些服务。
【问题4】参考答案:基于屏蔽子网的防火墙
试题解析:常见的防火墙体系结构有基于双宿主机防火墙、基于代理型防火增和基于屏蔽子网的防火墙,其典型特点如下。
双宿主主机:以一台双宿主主机作为防火墙系统的主体,分离内外网
屏蔽主机:一台独立的路由器和内网堡鱼主机构成防火墙系统,通过包过滤方式实现内外网隔离和内网保护
屏蔽子网:由 DMZ网络、外部路由器、内部路由器以及堡垒主机构成防火墙系统。外部路由器保护 DMZ和内网、内部路由器隔离 DMZ和内网
从本题给出的拓扑图,可见防火墙、外部路由器、DMZ网络和内部路由器等部分,因此属于屏蔽子网的防火墙。
【问题5】参考答案:(1)B、C (2)交换机1 (3)D (4)URL编码(URLencode) (5)(a)alert (b)union select
试题解析:(1)考查 Snort的基本概念,Snort属于网络型的误用检测系统。 Snort假定网络攻击行为和方法具有一定的模式或特征,将所有已发现的网络政击特征提炼出来并建成入侵特征库,并把搜集到的信息与已知的特征库进行匹配.如果匹配成功,则发现入侵行为。所以(1)选择 B和 C。
(2)为了部署 Snort并对内网的所有网络入侵行为进行有效检测,且减少其他不必要的数据干扰,因此需将 Snort接入到内网的交换机 1上,因此正确答案是交换机 1。
(3)考察华为交换机镜像端口配置命令,作为网络工程师、信息安全工程师,经常要做的一个操作就是在网络中收集信息,并且不能影响网络中正常的业务数据传输,因此需要在交换机上配置镜像端口。华为交换机配置镜像端口的基本步骤是:①定义一个观察端口,也就是 observeport,并给这个接口指定编号,这个端口用于接入搜集信息的设备,②指定一个物理接口作为该观察端口的数据来源。在该物理接口的接口视图下,使用命令 portmirrortoobserveport X完成镜像配置,其中,X是之前创建的观察端口所指定的接口编号。
(4)从软件截获的数据包分析可知,报文中存在大量的%XX 形式的编码,这是一种 URL编码形式,通常称为百分号编码,又称为 URL编码(URLencode)。该编码形式是“%”加上两位的字符(字符可以为 0123456789ABCDEF),代表一个十六进制字节。
(5)考查 Snort的基本规则配置。其中,空(a)表示是 Snort的规则行为,由于需要告警并记录数据,所以空(a)填 alert。空(b)则属于 Snort的规则选项部分,而本题李工目标是发现分组中出现 unionselect关键字,就要触发告警信息,所以(b)指定关键词 union select。
试题二(共 20分)
阅读下列说明,回答问题 1至问题 5,将解答填入答题纸的对应栏内。
【说明】通常由于机房电磁环境复杂,运维人员很少在现场进行运维工作,在出现安全事件需要紧急处理时,需要运维人员随时随地运程开展处置工作。
SSH(安全外壳协议)是一种加密的网络传输协议,提供安全方式访问远程计算机。李工作为公司的安全运维工程师,也经常使用 SSH 远程登录到公司的 Ubuntu18.04 服务器中进行安全维护。
【问题 1】(2分)
SSH协议默认工作的端口号是多少?
【问题 2】(2分)
网络设备之间的远程运维可以采用两种安全通信方式:一种是 SSH,还有一种是什么?
【间题 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,logame=uid=0euid=0tty=sshruser=rhost=192.168.107.130user=humen Jul2309:33:43humensshd[5423]:Failedpasswordforhumenfrom192.168.107.130 port 40231 ssh2
Jul2309:33:43humensshd[5423]:Connectionclosedbyauthenticatinguserhumen 192.168.107.130 port 40231[preauth]
Jul2309:33:43humensshd[5425]:pam_unix(sshd:auth):authenticationfailure; logname=uid=0 euid=0 tty=ssh ruser=rhost=192.168.107.130 user=humen
Jul2309:33:45humensshd[5425]:Failedpasswordforhumenfrom192.168.107.130 port 37223 ssh2
Jul2309:33:45humensshd[5425]:Connectionclosedbyauthenticatinguserhumen192.168.107.130 port 37223 [preauth]
Jul2309:33:45humensshd[5427]:pam_unix(sshd:auth):authenticationfailure;
logname=uid=0euid-0tty=sshruser=rhost=192.168.107.130user=humen
Jul239:33:47humensshd[5427]:Failedpasswordforhumenfrom192.168.107.130 port 41365 ssh2
Jul2309:33:47humensshd[5427]:Connectionclosedbyauthenticatinguserhumen 192.168.107.130 port 41365 [preauth]
Jul 23 09:33:47 humen sshd [5429]:pam_unix(sshd:auth):authentication failure;logname=uid=0euid=0tty=sshruser=rhost=192.168.107.130user=humen Jul 2309:33:49 humen sshd [5429]:Failed password for humen from 192.168.107.130 port 45627 ssh2
Jul2309:33:49 humen sshd [5429]:Connection closed by authenticating user humen 19.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
Jul2309:33:51humensshd[5431]:Failedpasswordforhumenfrom192.168.107.130
port42271ssh2
Jul2309: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 2309:33:53 humen sshd [5433]:Failed password for humen from 192.168.107.130 port 45149 ssh2
Jul2309:33:53 humen sshd [5433]:Connection closed by authenticating user humen 192.168.107.130 port 45149[preauth]
Jul 2309: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)李工怀疑有黑客在攻击该系统,请给出判断攻击成功与否的日志以便李工评估攻击的影响。
【问题 4】(10分)
经过上次 SSH的攻击事件之后,李工为了加强口令安全,降低远程连接风险,考虑采用免密证书登录。
(1)Linux系统默认不允许证书方式登录,李工需要实现免密证书登录的功能,应该修改哪个配置文件?请给出文件名。
(2)李工在创建证书后需要拷贝公钥信息到服务器中。他在终端输入了以下拷贝命令,请说明命令中“>>”的含义。
sshxiaoming@servercat/home/xiaoming/.ssh/id_rsa.pub»authorizedkeys
(3)服务器中的 authorizedkeys文件详细信息如下,请给出文件权限的数字表示。
-rw—— 1rootroot010月 182018’authorizedkeys
(4)李工完成 SSH配置修改后需要重启服务,请给出systemctl 重启 SSH 服务的命令。 (5)在上述服务配置过程中,配置命令中可能包含各种敏感信息,因此在配置结束后应及时清除历史命令信息,请给出清除系统历史记录应执行的命令。
【问题 5】(2分)
SSH之所以可以实现安全的远程访问,归根结底还是密码技术的有效使用。对于 SSH协议,不管是李工刚开始使用的基于口令的认证还是后来的基于密钥的免密认证,都是密码算法和密码协议在为李工的远程访问保驾护航。请问上述安全能力是基于对称密码体制还是非对称密码体制来实现的?
试题二参考答案与试题解析:
【问题1】参考答案: 22
试题解析:安全外壳协议(SSH,SecureShell)是目前较可靠、专为远程登录会话和其他网络服务提供安全性的协议,是创建在应用层和传输层基础上的加密隧道安全协议。SSH基于 TCP协议,端口号是 22。
【问题2】参考答案:VPN
试题解析:教材第 457页:网络设备和管理工作站之间的安全通信有两种方式: 一是使用 SSH;二是使用 VPN。但实际工作中网络设备的安全远程运维通常采用 SSH和基于 Webui管理控制台的 https。
【问题3】参考答案:(1)路径:var/log/;名称:secure
**(2)日志文件包含“Accepted password for humen”,可以判断登录成功。**试题解析:在 linux系统中,安全日志(var/log/secure)存放了验证和授权
方面信息,例如 sshd就会将所有信息记录(其中包括失败登录)在这里。
从系统的日志文件可以看到, 有多条类似“ Jul2309:33:41humen sshd[5431]:Failed password for humen from192.168.107.130 port 42271 ssh2
Jul 23 09:33:41 humen sshd [5431]Connection closed by
authenticatinguserhumen192.168.107.130port42271[preauth]”的日志。从这些日志记录的情况来看是从同一个远程主机 192.168.107.130 同时向
服务器发起 humen用户的多个身份验证请求,并且每个请求的客户端端口不同,说明在该主机上可能启用了某种自动尝试输入密码的程序对 humen 用户的密码进行破解。并且从最后一条日志“Jul23 09:33:41 humen sshd[5435]Accepted password for humen from 192.168.107.130 port 45671 ssh2
Jul 23 09:33:41 humen sshd [5435]:pam_unix(sshd:auth):session openedforuserhumenby(uid=0)"可以看到用户已经测试密码成功,并且成功地建立了连接。说明攻击成功。
【问题4】参考答案:(1)/etc/ssh/sshd_config (2)>>表示向文件中追加内容(3)600(4)systemctl restart sshd (5)history -c
试题解析:(1)由于 Linux系统中默认不允许使用免密登录,因此需要修改
SSHD的配置文件,该文件位于/etc/ssh/sshd_config。
(2)Linux系统中命令中常用的>和>>表示命令的输出重定向到指定的文件。>表示覆盖原文件内容(文件的日期也会自动更新),>>表示追加内容(会另起一行,文件的日期也会自动更新)。
(3)数字权限基本命令格式:chmodabcfile。其中,a、b、c各为一个数字,分别表示 User、Group及 Other的三种角色的权限值。角色的权限值又等于 r、w、x三个子权限值的和,可读时 r=4,可写时 w=2,可读可写时 x=1。因此三种角色的几种权限值如下:
若属性为 rwx,则对应的数字为 4+2+1=7;若属性为 rw-,则对应的数字为 4+2=6;
若属性为 r-x,则对应的数字为 4+1=5。
本题中文件权限为 rw-,root为文件所有者即 user,所以,因此对应的数字权限为:600。
(4)Linux服务管理的两种方式是 service和 systemctl。systemd是 Linux系统最新的初始化系统,作用是提高系统的启动速度,尽可能启动较少的进程,尽可能让更多进程并发启动。systemd对应的进程管理命令是 systemctl。
启动 sshd服务命令:servicesshdstart或者 systemctlstartsshd。停止 sshd服务命令:service sshd stop或者 systemctl stop sshd
重启 sshd服务命令:servicesshdrestart或者 systemctlrestartsshd
(5)history命令可以查看之前在控制台输入过的历史命令,而要清除这些历史命令信息可以使用 history -c命令。
【问题5】参考答案:非对称密码体制
试题解析:Linux中 SSH认证中,使用的是非对称密码体制。当客户端确认 server的公钥指纹后,server端的公钥就会被存放到客户机的用户 home目录里;客户端再次访问时,直接通过密码登录,不需要进行公钥确认。
客户端使用服务端公钥将自己的密码加密后发送给服务端,服务端收到客户端发过来的加密密码后使用服务端私钥进行解密,并将解密出来的密码和
/etc/shadow文件里的用户密码对比。如果相同,则服务端认证成功,则返回登录成功信息,并发送一个随机会话口令给客户端,该口令用于之后两台主机进行数据传输的一个临时会话口令。
试题三(共 20分)
阅读下列说明和图,回答问题 1 至问题 5,将解答填入答题纸的对应栏内。
【说明】域名系统是网络空间的中枢神经系统,其安全性影响范围大,也是网络攻防的重点。李工在日常的流量监控中,发现如图 3-1 所示的可疑流量,请协助分析其中可能的安全事件。
【问题 1】(4分)
域名系统采用授权的分布式数据查询系统,完成域名和 IP地址的解析。李工通过上述流量可以判断域名解析是否正常、有无域名劫持攻击等安全事件发生。
(1)域名系统的服务端程序工作在网络的哪一层?
(2)图 3-1中的第一个网络分组要解析的域名是什么?
(3)给出上述域名在 DNS查询包中的表示形式(16进制)。
(4)由图 3-1可知李工所在单位的域名服务器的 IP地址是什么?
【问题 2】(2分)
鉴于上述 DNS 协议分组包含大量奇怪的子域名,如想知道是哪个应用程序发送的上述网络分组,请问在Windows 系统下,李工应执行哪条命令以确定上述 DNS 流量来源?
【问题 3】(6分)
通过上述的初步判断,李工认为192.168.229.1的计算机可能已经被黑客所控制(CC攻击)。黑客惯用的手法就是建立网络隐蔽通道,也就是指利用网络协议的某些字段秘密传输信息,以掩盖恶意程序的通信内容和通信状态。
(1)请问上述流量最有可能对应的恶意程序类型是什么? (2)上述流量中隐藏的异常行为是什么?请简要说明。
(3)信息安全目标包括保密性、完整性、不可否认性、可用性和可控性,请问上述流量所对应的网络攻击违反了信息安全的哪个目标?
【问题 4】(6分)
通过上述的攻击流分析,李工决定用防火墙隔离该计算机,李工所运维的防火墙是 Ubuntu
系统自带的iptables防火墙。
(I)请问 iptables默认实现数据包过滤的表是什么?该表默认包含哪几条链?
(2)李工首先要在 iptables防火墙中查看现有的过滤规则,请给出该命令。
(3)李工要禁止该计算机继续发送 DNS数据包,请给出相应过滤规则。
【问题 5】(2分)
在完成上述处置以后,李工需要分析事件原因,请说明导致 DNS成为 CC攻击的首选隐蔽传输通道协议的原因。
试题三参考答案与试题解析:
【问题1】参考答案:(1)应用层 (2)www.humen.com (3)7777770568756D656e03636F6D (4)192.168.229.133
试题解析:(1)域名系统的服务端程序在操作系统中通常是一个服务进程,该服务进程是一个应用程序,所以工作在 OSI参考模型的应用层。
(2)从截图的信息中可以看到,第一个网络分组对应的内容是一个标准的 DNS查询, 查询的 A记录是 www.humen.com, 因此可知解析的域名就是www.humen.com。
(3)本题考察字符 ASCI的 16进制表示形式,从图中最下方倒数第三行右半部分的最后 4个字符“hume”,可从左半部分对应位置找到对应的 16进制编码
为“0568756d”,顺序下寻,可得“.humen.com”对应的 16 进制编码为:“0568756d656e03636f6d”。字母与 ASCII编码是顺序对应的,从其他字母的编码,可推导出 w的 16进制编码就为 77。
因此“www.humen.com”对应的代码是 7777770568756D656e03636F6D.
(4)从图中可以看到所有的 DNS请求都是发往 192.168.299.133的,并且对 DNS请求的返回数据包也是从 192.168.229.133发出的,因此 DNS服务器的地址就是 192.168.229.133。
【问题2】参考答案:netstat-b
试题解析:Windows系统下的 netstat命令的参数非常多,其中参数-b可以显示在创建每个连接或侦听端口时涉及的应用程序。
【问题3】参考答案:(1)后门(2)发送大量域名请求DNS服务器进行解析,以期能够导致基于此 DNS服务器解析服务不能正常工作。(3)可用性和可控性
试题解析:CC(Challenge Collapsar)攻击属于 DoS(Denial of Service)攻击的一种,也是通过发送大量的请求数据来导致服务器拒绝服务,是一种连接攻击。本题由图可知用户 192.168.229.1不断以不同的域名请求连接 DNS服务器,从而可能导致 DNS服务器负载过大而宕机,因此流量最有可能对应的恶意程序类型是 DoS攻击。拒绝服务攻击违反的是信息安全可用性和可控性。
【问题4】参考答案:(1)filter;input、forward和 output三条规则链 (2)iptables -L(3)iptables -A INPUT -s 192.168.229.1/32 -p tcp - - dport 53 -j DROP
试题解析:在 iptables中内建的规则表有三个:nat、mangle和 filter。当命令省略[-t table]时,默认的是 filter。这三个规则表的功能如下:
●nat:此规则表拥有 prerouting和 postrouting两个规则链,主要功能是进行一对一、一对多、多对多等地址转换工作(snat、dnat),这个规则表在网络工程中使用得非常频繁。
●mangle:此规则表有 prerouting、forward和 postrouting三个规则链。除了进行网络地址转换外,还在某些特殊应用中改写数据包的 ttl、tos的值等,这个规则表使用得很少。
●filter:这个规则表是默认规则表,拥有 input、forward和 output三个规则链,它是用来进行数据包过滤的处理动作(如 drop、accept或 reject等),通常的基本规则都建立在此规则表中。命令 iptables -L:用于列出某规则链中的所有规则。
【问题5】参考答案:更隐蔽,不易被防火墙和基于http协议的拦截工具所拦截。
试题解析:DNS属于重要服务,大部分互联网的服务和应用依赖于 DNS服务,限制 DNS通信则可能会导致合法服务终端。所以企业防火墙通常配置为允许 UDP端口 53(由 DNS使用)上的所有数据包,即 DNS流量通常允许通过企业防火墙而无需深度检查或状态维护。这使得 DNS协议成为数据泄密的隐蔽通道。尽管 DNS通道速率不高,但仍可以构建隧道,传输 SSH、FTP命令。基于这种方式的攻击,活动可靠且难以跟踪。
试题四(共 15分)
阅读下列说明和图,回答问题 1 至问题 4,将解答填入答题纸的对应栏内。
【说明】近期,按照网络安全审查工作安排,国家网信办会同公安部、国家安全部、自然资源部、交通运输部、税务总局、市场监管总局等部门联合进驻某出行科技有限公司,开展网络安全审查,移动 App 安全检测和个人数据安全再次成为关注焦点。
【问题 1】(4分)
为保护 Android系统及应用终端平台安全,Android系统在内核层、系统运行层、应用框架层以及应用程序层采取了相应的安全措施,以尽可能地保护移动用户数据、应用程序和设备安全。
在 Android 系统提供的安全措施中有安全沙箱、应用程序签名机制、权限声明机制、地址空间布局随机化等,请将上述四种安全措施按照其所在层次分填入表 4-1 的空(1)~(4)。
【问题 2】(6分)
权限声明机制为操作权限和对象之间设定了一些限制,只有把权限和对象进行绑定,才可以有权操作对象。
(1)请问Android系统应用程序权限声明信息都在哪个配置文件中?给出该配置文件名。
(2)Android 系统定义的权限组包括 CALENDAR、CAMERA,CONTACTS,LOCATION、 MICROPHONE、PHONE、SENSORS、SMS、STORAGE。按照《信息安全技术移动互联网应用程序(App)收集个人信息基本规范》,运行在 Android9.0 系统中提供网络约车服务的某出行 App 可以有的最小必要权限是以上权限组的哪几个?
(3)假如有移动应用 A提供了 AService服务,对应的权限描述如下:
1.<permission
android:name="USER_INFO"android:label="readuserinformation"android:description="getuserinformation"android:ProtectionLevel="signature" 6./>7.<service android:name=“com.demo.AService”
android:exported="true"9 android:permission=“com.demo.permission.USER_INFO” 10
如果其他应用B要访问该服务,应该申明使用该服务,将以下申明语句补充完整。
11.«u> android:name=“com.demo.AService”/>
【问题 3】(3分)
应用程序框架层集中了很多 Android 开发需要的组件,其中最主要的就是 Activities、 BroadcastReceiver、Services以及 ContentProviders这四大组件,围绕四大组件存在很多的攻击方法,请说明以下三种攻击分别是针对哪个组件。
(1)目录遍历攻击。 (2)界面劫持攻击。 (3)短信拦截攻击。
【问题 4】(2分)
移动终端设备常见的数据存储方式包括:①SharedPreferences;②文件存储;③SQLite数据库;④ContentProvider;⑤网络存储。
从以上 5种方式中选出Android系统支持的数据存储方式,给出对应存储方式的编号。
试题四参考答案:与试题解析:
【问题1】参考答案:(1)权限声明机制(2)应用程序签名机制 (3)安全沙箱(4)地址空间布局随机化
试题解析:应用程序层安全机制有:接入权限限制、保障代码安全。应用框架层安全机制有:应用程序签名。
系统运行库层安全机制有:网络安全、采用 SSL/TSL加密通信、虚拟机安全。
Linux内核层安全机制有:ACL权限机制、集成的 SELinux模块、地址空间布局随机化等。
【问题2】参考答案:(1)Manifest.xml(2)MICROPHONE、SMS、LOCATION、PHONE、 STORAGE(3)service
试题解析:(1)Android应用的权限主要是在 Manifest.xml中声明,以防止应用程序错误地使用服务、不恰当地访问资源。
(2)按照《信息安全技术移动互联网应用程序(App)收集个人信息基本规范》,网络约车服务的最小必要信息有法律法规允许的个人信息(网络访问日志、手机
号码、用户发布的信息内容、身份认证信息、订单日志、上网日志、行驶轨迹日志、交易信息),实现服务所需的个人信息(账号、口令、位置信息、第三方支付信息、客服沟通记录和内容)。
要能使用基于地理位置应用的服务,需要有 LOCATION权限:要能处理客服相关信息,需要有通话录音和聊天等相关消息,同时还要需要获取手机号码等信息,所以需要 MICROPHONE、PHONE、SMS权限:读取行驶轨迹和日志信息,需要有 STORAGE权限。
(3)当一个应用要使用服务时,必须在应用的清单文件中声明。要声明服务,必须添加<service>元素作为<application>元素的子元素。例如:
<manifest…>
…
<application .. >
serviceandroid:name=".ExampleService"/
…
可将其他属性包括在<service>元素中,以定义一些特性,如启动服务及其运行所在进程所需的权限。android:name属性是唯一必需的属性,用于指定服务的类名。
【问题 3】参考答案: (1)ContentProviders(2)Activities(3)Broadcast Receiver
试题解析:应用程序框架层集中了很多 Android开发需要的组件,其中最主要的就是 Activities、BroadcastReceiver、Services及 ContentProviders。组件之间的消息传递通过 Internet完成。
Activity是用户和应用程序交互的窗口,相当于 Web应用中的网页,用于显示信息。一个 Android应用程序由一个或多个 Activity组成。基于界面劫持攻击主要是针对 Activities。
Service和 Activity类似,但没有视图。它是没有用户界面的程序,可以后台运行,相当于操作系统中的服务。
BroadcastReceiver称为“广播接收者”,接收系统和应用程序的广播并回应。Android系统中,系统变化比如开机完成、网络状态变化、电量改变等都会产生广播。 BroadcastReceiver本质上是一种全局的监听器,用于监听系统全局的广播消息,因此短信拦截攻击是针对 BroadcastReceiver。.
Content Providers 主要用于对外共享数据。应用数据通过 Content Providers共享给其他应用;其他应用通过 ContentProvider对指定应用中的数据进行操作。因此对目录遍历攻击,主要是针对 Content Providers。
【问题4】参考答案:①②③④⑤
试 题 解 析 : Android系 统 提 供 了 五 种 数 据 存 储 方 式 , 分 别 是SharedPreferences、SQLite、ContentProvider和 File。SQLite属于轻量级数据库,支持基本的 SQL语法,属于常用的数据存储方式;SharedPreference本质是一个 xml文件,常用于存储较简单的参数;File是文件存储方法,用于存储大量的数据,但数据更新困难;ContentProvider是 Android系统中所有应用程序共享数据存储的方式;网络方式主要通过网络访问该网络提供的网络服务接口,实现数据的读/写服务(如 WebService数据访问接口)。
