在学习记录9里,我简单记录了我对TCP/IP协议栈的理解,我在这篇博客里会写一些关于协议安全的内容。并不复杂,也不高深,这只是我的笔记。
还是根据网络分层模型进行介绍。
接口层
物理层
俗话说得好,最致命的hacker是物理hacker。所有数据在互联网上的传输都是需要介质的。而物理层作为互联网的最底层,它为上层协议提供了基本数据传输的服务。
设备破坏
而对物理层的攻击非常容易理解,诸如干扰无线电,弄断光缆,炸掉服务器等等,攻击者直接破坏网络的各种物理设备。 其主要目的是中断网络。 不过这相对来说也非常困难,在现实中肯定会对关键的网络设备进行各种保护,坚固的机房,严格的安全管理制度等等。
线路侦听
在局域网中,数据传输都是需要通过介质的,因此攻击者可以使用一些装用的设备针对介质对线路进行监听。例如以太网的非屏蔽双绞线,无线信号,在共享介质型网络使用的集线器,中继器等 针对线路侦听,可以将容易被监听的设备替换掉,例如把集线器和中继器等设备置换为交换机;在无线网络中,使用强的认证和加密机制,让窃听者无法把获得的传输信号还原成原始信息。
数据链路层
MAC泛洪
MAC泛洪是利用交换机的漏洞,将正常主机MAC挤出交换机MAC表,把目标受害者的单播变成广播实现窃取数据。 MAC泛洪利用了:
- 交换机MAC表的老化时间
- 交换机的MAC学习机制
- MAC表项的数目限制
- 交换机的转发机制
分析MAC泛洪的作用机制,可以发现填满MAC表是攻击的关键,因此可以配置静态MAC转发表让攻击者无法对MAC表进行改动。还可以限制端口的MAC学习数目限制——你的MAC再多,我这个端口只学习几个,攻击者无法通过一个端口对交换机实施MAC泛洪攻击。
MAC欺骗
针对基于MAC地址的局域网访问控制,攻击者可以将自己的MAC地址更改为受信任的MAC地址,以突破访问控制。
更改实质是网卡驱动程序从系统中读取地址信息并写入网卡的硬件存储器,而不是实际修改网卡硬件ROM中存储的原有地址
可以配置静态MAC表并将端口和MAC绑定。
ARP欺骗
ARP欺骗的原理就是在受害主机发出ARP询问后,在被询问的目标主机前给受害主机应答,将自己的MAC地址给受害主机实现监听,或者提供一个不存在的MAC地址实现断网。 ARP欺骗的预防是一个相对麻烦的工作,它是一种协议天生带来的漏洞,是其不合理设计带来的问题。
网络层
IP欺骗
节点间的信任关系有时会根据IP地址来建立 攻击者使用相同的IP地址可以模仿网络上的合法主机访问关键信息。
IP地址扫描
IP地址扫描,就是确定哪些目标主机确实存活且连接在目标网络上。 可以使用ICMP报文探测目标地址,例如ping命令; 或者使用TCP/UDP报文对一定地址发起连接,看是否有应答报文。
ICMP重定向和不可达攻击
ICMP在网络中传输控制信息,主要功能有报告错误、诊断查询。
ICMP重定向
ICMP重定向报文是用来提示主机改变自己的主机路由从而使路由路径最优化的一种ICMP报文。 由于这个更改路由的ICMP重定向报文是可以伪造的,并且不需要经过一些校验,合法性检查,攻击者可以向受害主机发送报文迫使受害主机更改路由表。 攻击者就可以截获、提取、分析、修改、重放用户的数据包。
ICMP不可达
ICMP不可达攻击同样是利用特殊ICMP报文,告诉受害主机目标不可达,切断网络服务,实现攻击。
Smurf攻击
这种攻击方法结合使用了IP欺骗和ICMP回复方法使大量网络传输充斥目标系统,引起目标系统拒绝为正常系统进行服务。 Smurf攻击通过使用“将回复地址设置成受害网络的广播地址”的ICMP应答请求(ping)数据包,来淹没受害主机,最终导致该网络的所有主机都对此ICMP应答请求做出答复,导致网络阻塞。 这种攻击已经很少见,大多数的网络已经对这种攻击免疫了。
传输层
传输层是一种端对端的通信,如果想在传输层发起攻击,前提就是知道目标主机开放的端口。
端口扫描(Port Scan): 使用软件,向一定范围的主机的特定端口发起连接,根据应答报文判断主机开放了哪些端口,并可以根据这些开放的端口,大致判断启动的服务。
最小化原则: 操作系统、应用系统部署应用时要遵循最小化原则,只装最必要的服务,只开放的必要的端口、尽可能少的端口。实际生产环境中,linux不会预装很多服务,且实际中没有图形化界面,不会随便开放端口,启用服务。
就像防卫城池一样,端口就是城门,我们要开放尽量少的端口,全力防卫这些必须开放的端口——开放的端口越多即可能的漏洞越多。
拒绝服务攻击(Dos攻击)
TCP拒绝服务——SYN Flood攻击 攻击者发送大量的SYN报文给目标主机,造成大量未完全建立的TCP连接,占用被攻击者的连接资源,是被攻击者无法处理正常的连接服务。(SYN报文是TCP连接的第一个报文)
UDP拒绝服务——UDP Flood攻击 攻击者向目标主机发送大量的UDP报文,占用被攻击主机的链路带宽,使其负担过重不能向外正常通信。同时使目标主机处理大量废物报文,浪费硬件资源。
应用层
应用层的协议最多,其攻击方式相当多——利用web应用的漏洞,传播病毒和木马,缓冲区溢出攻击等。 只要是破坏应用的正常使用就达到了攻击的目的。 因此介绍之前学过,有背景知识,容易理解的两种攻击。
DNS劫持和污染
DNS是一种地址解析协议,映射域名和IP地址。
查询域名对应的IP协议的步骤: 1、浏览器查询自己的缓存 2、查询主机DNS缓存 3、询问本地DNS服务器 4、查询根DNS服务器,由根服务器查询顶级DNS服务器 5、不断向下循环,直至找到域名对应的IP,并原路返回IP
DNS劫持就是通过劫持了DNS服务器,通过某些手段取得某域名的解析记录控制权,进而修改此域名的解析结果,导致对该域名的访问由原IP地址转入到修改后的指定IP;
DNS污染是一种让一般用户由于得到虚假目标主机IP而不能与其通信的方法,是一种DNS缓存投毒攻击。
HTTP拒绝服务
HTTP基于TCP协议,相似的,在与服务器建立连接后,保持TCP连接不断开不断发送HTTP请求,通过操控大量的主机进行攻击,消耗服务器资源,使服务器不能提供服务给正常用户。
这些都是网络协议常见的风险,我只介绍了基本的原理和概念,“实践才是最好的老师”
|