OSI七层模型
数据发送时,先从应用层发送数据传到物理层,再由物理层接收数据传到应用层
物理层
处在最底层(硬件),实际上就是布线、光纤、网卡和其它用来把两台网络通信设备连接在一起的东西,只负责线路两端的通信维护。可以理解成家里迁宽带,那就是物理层。比如办公室里面动不动断网,说不定是有人椅子弄到了宽带导致网络问题,这是属于物理层
物理层的主要功能是利用物理传输介质为数据链路层提供物理连接,以便透明的传送比特流
数据链路层
数据链路层的主要功能接收来自物理层的位流形式的数据,并封装成帧,传送到网络层;同样,也将来自网络层的数据帧,拆装为位流形式的数据转发到物理层;并且,还负责处理接收端发回的确认帧的信息,以便提供可靠的数据传输
意思就是做身份识别,确认要发送的目标,,在一条有可能出差错的物理连接上,进行几乎无差错的数据传输,也就是差错控制(用纠错码和检测码)
攻击:
常见的是对基于mac地址的伪装欺骗,在数据链路层有两个重要的协议ARP(地址解析协议)和RARP协议(反向地址解析协议),常见的攻击方式就是ARP欺骗(ARP伪装),其攻击原理为攻击者利用自己伪造的mac地址来告诉被攻击者自己是对方想要访问的身份,显而易见这个身份是攻击者自己伪造的,从而欺骗被攻击者将数据流量转发到自己伪造的身份地址上,进而获取数据,达到欺骗的目的
防御:
对于系统和通信网络中关键的设备进行ARP地址绑定,可以在Windows中输入arp-s gate-way-ip gate-way-mac固化ARP表,也可以通过安装ARP防护软件对ARP信息进行防护
网络层
在计算机网络中进行通信的两个计算机之间可能会经过很多个数据链路,也可能还要经过很多通信子网。网络层的任务就是选择合适的网间路由和交换结点, 确保数据及时传送。网络层将数据链路层提供的帧组成数据包,包中封装有网络层包头,其中含有逻辑地址信息(源站点和目的站点地址的网络地址)
这三层主要任务是数据通信
第三层网络层负责 IP地址,第二层数据链路层则负责 MAC地址,因此一个主机会有一个MAC地址,而每个网络位置会有一个专属于它的IP地址
IP地址(Internet Protocol Address)
用于标识网络中的设备,分为IPv4(如
192.168.1.1
)和IPv6(如2001:0db8:85a3::8a2e:0370:7334
)MAC地址(Media Access Control Address)
用于标识网络接口卡(NIC),是一个唯一的硬件地址,格式为
00:1A:2B:3C:4D:5E
IP地址相当于家庭住址(可变)
MAC地址相当于身份证号码(固定)
攻击:
Smurf攻击(通过将回复地址设置为受害网络的广播地址,使用数据包淹没目标主机)、ICMP路由欺骗攻击、IP分片攻击、ping of death(死亡之ping)、IP欺骗伪造攻击,其通性都是通过制造大量的无用数据包,对目标服务器或者主机发动攻击,使得目标对外拒绝服务,可以理解为DDOS或者是类DDOS攻击
防御:
可以通过扩大带宽并部署DDOS防御系统来防御拒绝攻击,对于攻击发生过的IP和确认安全的IP,可以通过设置防火墙上IP白名单和黑名单对通信主机的地址进行限制、绑定,防止欺骗行为的发生
传输层
传输层主要任务是向用户提供可靠的端到端的差错和流量控制,保证报文的正确传输
传输层等同于一个中间人,互相传话,判断数据(传递内容)是否正确,正确的话发送到网络层
攻击:
主要是利用TCP/UDP协议进行攻击,而利用TCP协议攻击主要是利用TCP协议的三次握手机制,向目标主机或者服务器发送大量连接请求但是不对其进行响应,使得占用大量目标服务器主机资源,造成瘫痪的攻击方式,常见的攻击方式由Flooding洪泛攻击、ACK flooding洪范攻击等,而利用UDP的攻击主要是利用流量攻击,使用UDP的不可靠性,大量发送数据包,造成目标拒绝服务的目的,常见的攻击方式有UDP flooding洪泛攻击
防御:
可以通过部署抗DDOS防御系统进行防护,并扩大带宽,对数据包进行筛选、防护
会话层
会话层的任务就是组织和协调两个会话进程之间的通信(建立通信连接),并对数据交换进行管理
它提供包括访问验证和会话管理在内的建立和维护应用之间通信的机制。如服务器验证用户登录便是由会话层完成的
攻击:
利用或者窃取合法用户的cookie和session,然后冒用或者利用合法用户的身份,以达到非法授权访问的目的,其主要攻击目标为攻击cookie和token,常见的攻击方式有XSS(跨站脚本攻击)和CSRF(跨站请求伪造)
防御:
针对会话层的攻击防范,主要是针对用户登录的cookie信息进行利用或盗取。为减少并防止该类攻击事件的发生。首先是应当在用户登录时,可采用双因子的认证方式,确认用户信息,并在cookice设置中启动httponle属性,并在代码层面添加随机产生的token认证,认证用户数据包信息,防止用户身份认证信息被窃取并盗用
表示层
表示层对上层数据或信息进行变换以保证一个主机应用层信息可以被另一个主机的应用程序理解。表示层的数据转换包括数据的加密、压缩、格式转换等
比如说我们进行渗透测试的时候,有时候需要编码。提取出来的时候再解码。那是因为防止计算机识别错误,导致内容不完整或者丢失。这时候就可以进行编码
攻击:
主要是针对格式翻译和数据处理来进行的,攻击方式有Unicode攻击和计算溢出攻击
防御:
系统设计层面,应考虑拥有足够充足的缓冲区,保证数据不会溢出被修改、覆盖。严格而控制服务器上文件和文件夹的权限,对登录用户和后台管理人员的权限进行合理的分配,防止服务器文件和文件夹被非法利用
应用层
应用程序能够从网络上请求使用哪种类型的服务,并且规定了在从应用程序接收消息或向应用程序发送消息时,数据所必须采用的格式,也就是可以请求一些什么协议,例如http协议
攻击:
主要是针对应用程序的设计漏洞进行的对应用协议漏洞的攻击、对应用数据的攻击、对应用操作系统平台的攻击等。其方法包括未经审查的WEB方式的信息录入、应用权限的访问控制被攻破、身份认证和会话管理被攻破、跨站点的执行代码漏洞、缓存溢出漏洞、弹出漏洞、错误处理不当、不安全存储、拒绝服务、不安全配置管理等
防御:
针对服务器的访问控制权限进行严格划分分配,防止管理员权限过大,可以采用基于角色的访问控制策略,保证用户的最小特权化。对服务器系统及时修补补丁,保证信息系统的一个安全状态,并对系统内用户行为和安全事件进行审计记录
参考: