计算机等级考试三级信息安全技术章节习题4
四、网络安全
简述 TCP/IP 协议架构的层次架构和各层包含的主要协议
- 物理和数据链路层
- 网络层:TCP/IP 体系结构最重要的一层,IP 协议族是网路层的基础协议包括用于路由选择的
RIP
、OSPF
等路由协议,用于数据传输的 IP 协议,用于网络管理的 SNMP 协议,用于故障诊断的 ICMP 协议。 - 传输层:TCP 协议提供端到端可靠数据传输,UDP 协议提供端到端不可靠传输。
- 应用层:文件传输协议 FTP ,超文本传输协议 HTTP ,简单邮件传输协议 SMTP/POP3 ,域名系统 DNS ,远程终端登录协议 Telnet ,简单网络管理 SNMP 等。
简述 ARP 协议欺骗的原理
ARP 协议主要完成从 IP 地址到 MAC 地址的转换,主机中的 ARP 缓存表都有更新机制,每台主机在收到 ARP 数据包时就会更新自己的 ARP 缓存表。ARP 欺骗的原理就是恶意主机伪装并发送欺骗性的 ARP 数据包,致使其他主机收到欺骗性的 ARP 数据包后,更新其 ARP 缓存表,从而建立错误的 IP 地址与 MAC 地址的对应关系。
简述 ICMP 协议的功能
Internet 控制报文协议(Internet Control Message Protocol , ICMP)主要的作用是在 TCP/IP 网路中发送出错和控制消息,允许主机或网络设备报告差错或异常情况,从而提供一个错误侦测与反馈机制
主要功能是差错报告和查询
简述 TCP 协议的三次握手过程
- A 主机向 B 主机发送
SYN=1
的数据包,希望建立同步连接,数据包序号SEQ=X
,A 进入SYN_SENT
状态 - B 收到数据包,同意建立连接,返回数据包
SYN=1 , ACK=1
,数据包序号SEQ=Y
,确认号X+1
,B 进入SYN_RECV
状态 - A 收到返回的数据包,确认建立连接,发送数据包
ACK=1
,数据包序号SEQ=Y+1
,确认号Y+1
,A 、B 进入ESTABLISHED
状态,TCP 连接成功
请求包 SYN
应答包 ACK
说明 TCP 全连接扫描、TCP SYN 扫描和 TCP FIN 扫描的原理和不同之处
- TCP 全连接扫描:利用 TCP 协议三次握手原理来探测目标主机的网络端口是否处于打开状态。都尝试与目标主机建立正常的 TCP 三次握手的全连接。如果能建立起三次握手,则说明三次握手所连接的目标主机的端口是打开的,所有扫描过程容易被检测出来。
- TCP SYN 扫描:半连接扫描,利用前两次握手,降低了被发现的可能,同时提高了扫描性能。
- TCP FIN 扫描:发送 FIN 标识位为 1 的数据包给目标主机,若目标主机端口是开放的,则丢弃此包,不进行回应,若未开放,则返回一个 RST 标识位为 1 的数据包。由于不采用 TCP 三次握手连接方法,扫描行为更加隐秘,也称秘密扫描。这种方法适用于 UNIX 操作系统主机,有些操作系统(Windows NT)不论端口是否打开都回复 RST 这种方法就不适用了。
简述网络漏洞扫描和主机漏洞扫描的区别
- 网络漏洞扫描:网络漏洞扫描工具针对网络中的主机和网络设备,发送漏洞探测数据包进行漏洞的扫描,模拟攻击技术扫描出具体的漏洞类型,扫描工具中的漏洞脚本库中包含大量漏洞的模型攻击脚本或代码。网络漏洞扫描工具无法通过网络扫描没有网络服务功能的应用软件的漏洞
- 主机漏洞扫描,主机漏洞扫描工具通过检测本机安装的操作系统和应用软件系统版本信息和补丁安装情况根据自身数据库中保留的最新补丁信息进行比较,判断是否存在某些为打补丁的漏洞
介绍基于 DNS服务器的欺骗技术原理
欺骗目标是 DNS 服务器。攻击者首先向 DNS 服务器发送域名对应 IP 地址的查询请求, DNS 服务器在没有此域名的条件下会向更高级别的 DNS 服务器上传查询请求。此时,攻击者可以 伪造更高级别 DNS 服务器返回的 DNS 应答包 ,告知此 DNS 服务器要查询域名的 IP 地址,这个 IP 地址往往被设置为攻击者自己服务器的 IP 地址。被欺骗的 DNS 服务器收到 DNS 应答数据包后,将域名和对应的虚假 IP 地址记录到自身缓存中,当网络中有查询此域名时,就从缓存中找到虚假 IP 地址返回给用户,使用户访问的虚假 IP 地址对应的攻击者的服务器
说明网站挂马的概念及原理
网站中的网页被攻击者恶意修改后,添加了可以触发并下载恶意程序链接以及恶意程序代码和脚本
挂马的前提是入侵网站服务器,具有网站中网页的修改权限,攻击者对网站中的网页进行修改,通过 iframe 内嵌框架、跨站脚本链接等内嵌链接机制,将恶意链接添加到网页中。恶意网页是被攻击者篡改或恶意构建的其他网站的网页,在恶意网页中往往被攻击者挂载了含有漏洞利用代码的文件或脚本,文件和脚本在用户访问恶意网页时会自动下载并执行,用户计算机中浏览器及插件漏洞会被利用并导致文件和脚本中指向或包括的木马病毒自动被下载和运行
说明 Dos 攻击的3种实现方式
- 利用目标主机自身存在的拒绝服务型漏洞进行攻击
- 耗尽目标主机 CPU 和内存等计算机资源的攻击
- 耗尽目标主机网络带宽攻击
介绍 SYN-Flood 攻击的原理
攻击者向目标主机发送第一次 SYN 握手请求数据包,伪造了此数据包的源 IP 地址为不存在或网络不可达的一个 IP 地址,地址不存在或网络不可达,所以没用第三次握手的响应数据包,主机就要等一段时间后才丢弃未完成的连接,这会占用一定的 CPU 和内存资源,攻击者通过大量伪造的 SYN 数据包,形成大量的半开连接,直至资源耗尽
介绍 ACK-Flood 攻击的原理
利用握手过程,在发送 SYN 数据包给目标主机之前,将该数据包的源地址和目标地址都设置成目标主机的 IP 地址。这会导致目标主机向自己的 IP 地址响应 SYN+ACK 数据包,结果又向自己发送 ACK 消息并创建一个空连接,每个空连接都会保留至超时,当这样的连接数量很多时,系统资源将会被耗尽
介绍应用层脚本洪水攻击的原理
应用层 DoS 攻击是脚本洪水攻击,攻击者利用代理服务器对 Web 服务器发送大量的 HTTP Get 请求,如果目标服务器的动态 Web 服务器,大量的 HTTP Get 请求主要是查询动态网页,这些请求会给后台的数据库服务器制造极大负载直至无法正常响应,从而使正常用户的访问也无法进行了
针对动态脚本页面的网站服务器,脚本洪水攻击的效果很明显,由于这些网站大量前端脚本程序会调用后台数据库。而针对静态页面的网站服务器,由于不会调用后台数据库中的数据,攻击效果就不明显。由于脚本洪水攻击需要和网站服务器建立正常的 TCP 连接,因而会暴露攻击者的 IP 地址
举例说明 SQL 注入的原理
Web应用程序在接收到用户的请求参数后,如果咩有对请求参数进行严格的过滤或检查,而直接将用户的请求参数作为拼接 SQL 语句的一部分进行解释执行,则攻击者就可以通过构造一段 SQL 代码片段作为请求参数提交给 Web 应用程序,从而使这段 SQL 代码得到后台数据库程序的解释执行,使攻击者能查询操作后台数据库
举例说明跨站脚本攻击的原理
利用网站程序对 Web 页面中输入的数据过滤不严格或未做过滤的漏洞,攻击者往 Web 页面中恶意脚本代码,当用户浏览页面时,使用户的浏览器会自动加载并执行页面中插入的恶意脚本代码,从而实现在用户浏览器中显示攻击者的恶意脚本、控制用户浏览器或窃取用户资料的目的
<? php
$user=$_GET['user'];
echo "Hello" .$user;
?>
如果用户提交请求 xxx.com/xss.php?user=<scropt>alert(/xss/)</scropt>
代码将被返回给客户端比嗯执行后显示在浏览器中
- 反射型 XSS :非持久型跨站脚本攻击,向用户发送带有恶意攻击脚本的一个 URL 连接
- 存储型 XSS :持久型跨站脚本攻击, XSS 保存在服务器端(如攻击者将恶意数据嵌入到博客或BBS 社区的帖子内容中,用户查看对应的博客或帖子时,其中的攻击脚本将被执行)
- DOM-based XSS :基于文档对象模型的跨站脚本攻击,通过 JavaScript 脚本动态修改 DOM 结构,进而导致XSS 漏洞
解释说明跨站请求伪造攻击的概念及原理
跨站请求伪造攻击(Cross Site Request Forgery,CSRF)属于伪造客户端请求,让用户访问攻击者构造的网页,执行网页中的恶意脚本,伪造用户的请求,对用户有登录权限的网站空间实施攻击。通过攻击者的站点对用户可登录的站点发起的攻击,而且攻击脚本利用的是伪造的用户请求,因此被称为跨站点请求伪造攻击。
当用户通过用户名和口令完成对目标 Web 应用服务器的登录验证后,用户的浏览器会存储登录验证后由 Web 应用服务器返回给浏览器的会话认证信息,即 Cookie 数据。用户针对该 Web 应用服务器的 HTTP 请求,用户的浏览器都会自动通过保存的 Cookie 通过验证,而不用输入用户名和口令。
攻击者可以在自己控制网站的页面中编写对用户的 Web 应用空间发起的伪造 HTTP 表单的恶意代码,然后诱骗用户浏览攻击者构造的页面,执行页面中嵌入的恶意代码。恶意代码在受害用户不知道的情况下,通过保存在用户浏览器中的 Cookie 通过用户 Web 应用空间的验证后,以用户的身份执行 HTTP 表单请求操作,泄漏 Web 应用中用户的敏感数据或是篡改 Web 应用中的相关数据。
解释说明木马的端口反弹技术
木马的服务端程序从内网主动发起对外连接请求,连接到外网木马的客户端。反弹式木马是服务端主动发起连接请求,而客户端是被动的等待连接,木马服务端通过设置固定的客户端 IP 地址和连接端口,直接回连木马的客户端程序。还有动态 IP 地址的木马客户端,利用一台被控制的代理服务器保存每次改变后的客户端的 IP 地址和待连接的端口,木马服务端每次启动时,先连接代理服务器获取客户端的动态 IP 地址和端口信息
说明防火墙的 NAT 原理
网络地址翻译技术(Network Address Translation , NAT)能将单位内网只用的内部 IP 地址翻译为合法的公网 IP 地址,这使内网使用内部 IP 地址的计算机无线变动也能与外网连接。
NAT 将内部 IP 地址翻译为公网 IP 地址。当外部公网响应的数据包返回给 NAT 后,NAT 再将其翻译为内网 IP 地址发给内网的主机,从而实现内网主机与外网的正常通信,解决了 IPv4 地址不足的问题。同时因为外网主机只能看到数据包来自 NAT 翻译后的公网 IP 地址,而看不到内网主机的内部 IP 地址,所以 NAT 可保护及隐藏内网计算机。
说明防火墙的包过滤技术和动态检测技术的区别
内外网之间传输的数据包按照某些特征事先设置一系列的安全规则(或安全策略)进行过滤或筛选。包过滤防火墙检查每一条规则。如果发现数据包中的信息与某规则相符,则允许或拒绝这个数据包穿过防火墙进行传输。如果没有规则能符合,则防火墙会使用默认规则。一般情况默认规则就是要求防火墙丢弃该包
状态检测技术也称动态包过滤技术,不像包过滤防火墙仅靠设置静态的包过滤规则来镜像数据包的过滤拦截,而是增加对数据包连接状态变化的额外考虑。防火墙的核心部分建立数据的连接状态表,对在内外网间传输的数据包以会话角度进行检测,利用状态表跟踪每一个会话状态,记录有用的信息以帮助识别不同的会话
和包过滤防火墙相比,状态检测防火墙动态记录连接的各种状态,可以在连接终止后及时阻断后续连接,防止伪造流量通过;可有效阻止更多伪造网络地址的 DoS 攻击,而且不用为了大量的正常访问请求而长久地开放大量端口。
说明入侵检测系统和入侵防御系统功能的区别
入侵检测系统(Intrusion Detection System , IDS)工作在计算机网络系统中的关键节点上,通过实时收集和分析计算机网络或系统中的信息来检查是否出现违反安全策略的行为和是否存在入侵的迹象,进而达到提示入侵、预防攻击的目的。是对防火墙有益的补充,它对网络和主机行为进行检测,提供内部攻击、外部攻击和误操作的实施监控,增强了网络的安全性。入侵检测系统可以实现事前警告、事中防护和事后取证。
入侵防御系统(Intrusion Prevention System , IPS)作为一种在线部署的产品,能够提供主动的、实时的防护,其设计目标在与准确监测网络流量,自动分析对各类网络攻击行为,并对应用层的威胁和攻击进行实时阻断,而入侵检测系统只是在监测到恶意流量的同时或之后才简单地告警。
入侵防御系统的检测技术和入侵检测系统是相似的,可以在网络层、传输层和应用层进行攻击行为的检测和防御。和入侵检测系统在网络中旁边部署不同的是,入侵防御系统是通过直接串联到网络链路中实现其防御功能的。当入侵防御系统接收到外部数据流量时,如果检测到数据包中的攻击特征,就会自动地将此数据包丢掉或采取措施将攻击源阻断,从而将攻击数据包挡在网络边界之外。
说明防火墙和入侵防御系统功能的区别
防火墙位于可惜和不可信网络间,通过检测和过滤网络交换的信息,达到保护内部可信网络的目的
入侵防御系统采用串联方式部署在网络中,实现网络层、传输层和应用层的全面检测和拦截,具有拦截恶意流量、实现对传输内容的深度检测和安全防护、对网络流量检测的同时进行过滤等功能
介绍 PKI 中基于数字证书的信任链传递关系原理
公共密钥基础设施(Public Key Infrastructure , PKI)
证书认证机构(Certificate Authority , CA)
证书注册机构(Registration Authority , RA)
证书办法系统(Certificate Distribution System , CDS)
通过真实的数字证书来相信网络用户身份的真实性是通过信任链的传递关系来保证的。证书是由证书认证机构颁发的,证书认证机构颁发证书之前要对申请证书者的身份进行确认,只有经过身份核实的才签发证书。且证书中含有证书认证机构的数字签名。如果证书中的信息被篡改,则可通过证书认证机构公钥验证出来。在可以信任证书认证机构的条件下,证书认证机构又信任证书拥有者,因此给证书拥有者颁发来数字证书。如果能验证数字证书是真实的没有被篡改过,则借由这个信任链的传递关系就可以通过真实的数字证书确认并相信在数字证书中证书拥有者的身份。简而言之,证书拥有者可以通过数字证书向网络系统中的其他实体证明自己的身份。
介绍 SSL 协议的连接过程
- 客户端发送 ClientHello 请求
- 服务器发送 ServerHello 消息
- 如果服务器请求客户端提供证书,客户端将发送 Certificate 消息,将数字证书发给服务器,服务器对该证书进行验证
- 服务器证书发给客户端后,客户端对服务器的证书进行验证
- 客户端与服务器端根据
pre_master_secret
以及客户端与服务器的随机数组各自独立计算出会话密钥和 MAC 密钥 - 客户端和服务器彼此间交换各自的握手完成信息