2021年下半年软考信息安全工程师下午案例题及解析

软考信息安全工程师考试中,下午的案例分析是您能否通过考试的关键,案例能通过则整体通过概率就很高,因为从21年考试来看,上午的基础知识考得很简单,下午的案例很难。

 

和软考文科类考试不一样,信安的案例不是靠背靠记,或者瞎写把卷子写满就能过的,会就是会,不会就是不会,所以打好基础,建立自己的知识体系很重要,至强老师有多年网络安全从业经验,同时熟悉软考的特点,大家有信安考试相关的疑难问题都可以进行咨询。

试题一(共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

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.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-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分)

(5)针对图1-2所示的网络分组,李工查看了该攻击对应的Snort检测规则,以更好地掌握Snort入侵检测系统的工作机制。请完善以下规则,填充空(a)、(b)处的内容。(2分)

(a) tcp any any->any any (msg:"XXX";content:"  (b)  ";nocase; sid:1106;)

试题一参考答案与试题解析:

【问题1】参考答案:二级;每两年

试题解析:等保2.0要求关键信息基础设施“定级原则上不低于三级”,测评分数的要求由60分提升至75分以上。政府站群系统属于关健信息基础设地,所以定级应不低于三级、依据《信息安全等级保护管理办法》(公通字2007 43号文)第三级信息系统应当每年至少进行一次等级测评。

但教材上第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=1 order by1#之后,后台执行的SQL语句就变为:

SELECT first_name,last_name FROM users WHRER user_id='1'or 1=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编码(URL encode)

(5)(a)alert  (b)union select

试题解析:(1)考查Snort的基本概念,Snort属于网络型的误用检测系统。Snort假定网络攻击行为和方法具有一定的模式或特征,将所有已发现的网络政击特征提炼出来并建成入侵特征库,并把搜集到的信息与已知的特征库进行匹配.如果匹配成功,则发现入侵行为。所以(1)选择B和C。

(2)为了部署Snort并对内网的所有网络入侵行为进行有效检测,且减少其他不必要的数据干扰,因此需将Snort接入到内网的交换机1上,因此正确答案是交换机1。

(3)考察华为交换机镜像端口配置命令,作为网络工程师、信息安全工程师,经常要做的一个操作就是在网络中收集信息,并且不能影响网络中正常的业务数据传输,因此需要在交换机上配置镜像端口。华为交换机配置镜像端口的基本步骤是:①定义一个观察端口,也就是observe port,并给这个接口指定编号,这个端口用于接入搜集信息的设备,②指定一个物理接口作为该观察端口的数据来源。在该物理接口的接口视图下,使用命令port mirror to observe port X完成镜像配置,其中,X是之前创建的观察端口所指定的接口编号。

(4)从软件截获的数据包分析可知,报文中存在大量的%XX形式的编码,这是一种URL编码形式,通常称为百分号编码,又称为URL编码(URL encode)。该编码形式是“%”加上两位的字符(字符可以为0123456789 ABCDEF),代表一个十六进制字节。

(5)考查Snort的基本规则配置。其中,空(a)表示是Snort的规则行为,由于需要告警并记录数据,所以空(a)填alert。空(b)则属于Snort的规则选项部分,而本题李工目标是发现分组中出现union select关键字,就要触发告警信息,所以(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=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 2309: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 239: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 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

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)李工怀疑有黑客在攻击该系统,请给出判断攻击成功与否的日志以便李工评估攻击的影响。

【问题4】(10分)

经过上次SSH的攻击事件之后,李工为了加强口令安全,降低远程连接风险,考虑采用免密证书登录。

(1)Linux系统默认不允许证书方式登录,李工需要实现免密证书登录的功能,应该修改哪个配置文件?请给出文件名。

(2)李工在创建证书后需要拷贝公钥信息到服务器中。他在终端输入了以下拷贝命令,请说明命令中“>>”的含义。

ssh xiaoming@server cat/home/xiaoming/.ssh/id_rsa.pub>>authorized keys

(3)服务器中的authorized keys文件详细信息如下,请给出文件权限的数字表示。

-rw-------1 root root 0 10月18 2018'authorized keys

(4)李工完成SSH配置修改后需要重启服务,请给出systemctl重启SSH服务的命令。

(5)在上述服务配置过程中,配置命令中可能包含各种敏感信息,因此在配置结束后应及时清除历史命令信息,请给出清除系统历史记录应执行的命令。

【问题5】(2分)

SSH之所以可以实现安全的远程访问,归根结底还是密码技术的有效使用。对于SSH协议,不管是李工刚开始使用的基于口令的认证还是后来的基于密钥的免密认证,都是密码算法和密码协议在为李工的远程访问保驾护航。请问上述安全能力是基于对称密码体制还是非对称密码体制来实现的?

试题二参考答案与试题解析:

【问题1】参考答案:  22

试题解析:安全外壳协议(SSH,Secure Shell)是目前较可靠、专为远程登录会话和其他网络服务提供安全性的协议,是创建在应用层和传输层基础上的加密隧道安全协议。SSH基于TCP协议,端口号是22。

参考答案:VPN

【问题2】试题解析:教材第457页:网络设备和管理工作站之间的安全通信有两种方式,一是使用SSH,二是使用VPN。

【问题3】参考答案:(1)路径:var/log/;名称:secure

(2)日志文件包含“Accepted password for humen”,可以判断登录成功。

试题解析:在linux系统中,安全日志(var/log/secure)存放了验证和授权方面信息,例如sshd就会将所有信息记录(其中包括失败登录)在这里。

从系统的日志文件可以看到,有多条类似“Jul23 09:33:41 humen sshd[5431]:Failed password for humen from192.168.107.130 port 42271 ssh2

Jul 23 09:33:41 humen sshd [5431]Connection closed by authenticating user humen192.168.107.130 port 42271[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 opened for user humen by (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)数字权限基本命令格式:chmod  abc  file。其中,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服务命令:service sshd start或者systemctl start sshd。

停止sshd服务命令:service sshd stop或者systemctl stop sshd

重启sshd服务命令:service sshd restart或者systemctl restart sshd

(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】参考答案:(I)filter;input、forward和output三条规则链

(2)iptables -L  (3)iptables -a input-s 192.168.229.1/32 -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

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要访问该服务,应该申明使用该服务,将以下申明语句补充完整。

11.<          android:name="com.demo.AService"/>

【问题3】(3分)

应用程序框架层集中了很多Android开发需要的组件,其中最主要的就是Activities、

BroadcastReceiver、Services以及Content Providers这四大组件,围绕四大组件存在很多的攻击方法,请说明以下三种攻击分别是针对哪个组件。

(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 .. >

<service  android:name=".ExampleService"/>

...

</application>

</manifest>

可将其他属性包括在<service>元素中,以定义一些特性,如启动服务及其运行所在进程所需的权限。android:name属性是唯一必需的属性,用于指定服务的类名。

【问题3】参考答案:(1)Content Providers(2)Activities(3)Broadcast Receiver

试题解析:应用程序框架层集中了很多Android开发需要的组件,其中最主要的就是Activities、Broadcast Receiver、Services及Content Providers。组件之间的消息传递通过Internet完成。

Activity是用户和应用程序交互的窗口,相当于Web应用中的网页,用于显示信息。一个Android应用程序由一个或多个Activity组成。基于界面劫持攻击主要是针对Activities。

Service和Activity类似,但没有视图。它是没有用户界面的程序,可以后台运行,相当于操作系统中的服务。

BroadcastReceiver称为“广播接收者”,接收系统和应用程序的广播并回应。Android系统中,系统变化比如开机完成、网络状态变化、电量改变等都会产生广播。      BroadcastReceiver本质上是一种全局的监听器,用于监听系统全局的广播消息,因此短信拦截攻击是针对BroadcastReceiver。.

Content Providers主要用于对外共享数据。应用数据通过Content Providers共享给其他应用;其他应用通过Content Provider对指定应用中的数据进行操作。因此对目录遍历攻击,主要是针对Content Providers。

【问题4】参考答案:①②③④⑤

试题解析:Android系统提供了五种数据存储方式,分别是SharedPreferences、SQLite、Content Provider和File。SQLite属于轻量级数据库,支持基本的SQL语法,属于常用的数据存储方式;SharedPreference本质是一个xml文件,常用于存储较简单的参数;File是文件存储方法,用于存储大量的数据,但数据更新困难;ContentProvider是Android系统中所有应用程序共享数据存储的方式。网络方式主要通过网络访问该网络提供的网络服务接口,实现数据的读/写服务(如WebService数据访问接口)。如大家在学习中遇到问题,欢迎通过邮件2976033@qq.com留言给作者,以便共同探讨。

  • 5
    点赞
  • 26
    收藏
  • 打赏
    打赏
  • 4
    评论
©️2022 CSDN 皮肤主题:数字20 设计师:CSDN官方博客 返回首页
评论 4

打赏作者

王至强

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值