热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

OSI模型及其对应下的安全问题

OSI模型及其对应下的安全问题首先,要想了解OSI参考模型下,各层的漏洞。我们先来认识OSI参考模型因为每层模型都有其对应的格式和规则,也就是协议。而协议的指定也是有漏洞的。就像一

OSI模型及其对应下的安全问题

首先,要想了解OSI参考模型下,各层的漏洞。我们先来认识OSI参考模型

image-20211024173408520

因为每层模型都有其对应的格式和规则,也就是协议。而协议的指定也是有漏洞的。就像一直流传的一句话:“没有永久安全的系统,只有没被尚未发现的漏洞”。所以,要先熟悉各层对应的机理和协议。才能更好的把握每层可能出现的漏洞。

 


应用层攻击


针对应用程序的设计漏洞进行的

[1​]  https://www.x-mol.com/paper/1288185784577998848/t 针对应用程序的设计漏洞进行的

逻辑漏洞是由于应用程序逻辑实现中的缺陷导致的,因此应用程序逻辑不是预期的逻辑。这种漏洞模式取决于应用程序的设计和业务逻辑。

商业应用程序中没有针对应用程序逻辑漏洞的特定且通用的模式。在这项研究中,引入了一种名为FINAD的方法,该方法使用活动流图(AFG)来检测应用程序逻辑漏洞,以发现已实现的应用程序与其设计之间的不兼容性。

在这项工作中,AFG首次由活动图(AD)和控制流程图(CFG)组成。对不同常见类型的应用程序逻辑漏洞的研究表明,可以通过对AFG进行静态分析来检测到大多数此类漏洞。FINAD方法独立于语言,并且可以用于任何编程语言的漏洞检测,前提是AD可用,并且可以创建程序的CFG。FINAD for PHP语言的实现显示了其在CVE漏洞数据库中检测已知逻辑漏洞的有效性。


对应用协议漏洞的攻击


SSL 漏洞 ("Heartbleed 漏洞")

[2]  https://blog.51cto.com/u_14857544/2634158 SSL 漏洞 (Heartbleed 漏洞)

SSL标准包括“心跳”选项,该选项为SSL连接一端的计算机提供了一种方法来再次检查线路的另一端是否仍然有人。 此功能很有用,因为某些Internet路由器在空闲时间过长时会断开连接。 简而言之,心跳协议的工作方式如下:

心跳消息分为三个部分:请求确认,简短的随机选择消息(在这种情况下为“banana”)以及该消息中的字符数。 只需假定服务器确认已收到请求,然后将消息鹦鹉化。

Heartbleed***利用了服务器过于信任这一事实。 当有人告诉它消息包含6个字符时,服务器会自动发送回6个字符作为响应。 恶意用户可以利用服务器的轻信:


DNS攻击

DNS 劫持和在途攻击。这些攻击可将网站的入站流量重定向到伪造的站点,从而收集敏感的用户信息并使企业承担主要责任。


防御 DNS 威胁

采用 DNSSEC 协议

[3​]  https://www.cloudflare.com/zh-cn/learning/dns/dns-security/ dns攻击防御

此签名过程类似于人们用笔签署法律文件;此人签署别人无法创建的唯一签名,并且法院专家能够查看该签名并验证文件是否由该人签署的。这些数字签名可确保数据未被篡改。

DNSSEC 在 DNS 的所有层中实施分层数字签名策略。例如,在 “google.com”查找中,根 DNS 服务器将为 .COM 域名服务器签写一个密钥,然后 .COM 域名服务器将为 google.com 的权威性域名服务器签写一个密钥。


钓鱼攻击

通过伪造合法的 Web 站点来试图欺骗 Web 用户以盗取私人信 息。

通常情况下,没有疑心的用户会收到一封听上去很紧急的(并且看起来真实的)电子邮件,告诉他们现在xxxx出现了问题,必 须要立即解决以免帐户中止。

电子邮件中将包括一个 URL,指向一个外观跟实际站点一模一样的 Web 站点。复制合法的电子邮件与 Web 站点很容易,但是随后会更改所谓的后台,也就是接收被收集的数据的目标系统。

该电子邮件提示用户登录到站点并确认一些帐户信息。黑客会接收用户提供的数据,如登录名、密码、信用卡号或社会保险号。


缓冲区溢出

http协议未对请求头部做字节大小限制,导致可以提交大量数据因此可能导致恶意代码被执行。


CSRF

Web应用对某些请求未对来源做验证,导致登录用户的浏览器执行黑客伪造的HTTP请求,并且应用程序认为是受害者发起的合法请求的请求。黑客利用CSRF攻击可以执行一些越权操作如添加后台管理员、删除文章等。


对应用数据的攻击


SQL注入

Web应用未对用户提交的数据做过滤或者转义,导致后端数据库服务器执行了黑客提交的sql语句。黑客利用sql注入攻击可进行拖库、植入webshell,进而入侵服务器。


XSS跨站

Web应用未对用户提交的数据做过滤或者转义,导致黑客提交的Javascript代码被浏览器执行。黑客利用xss跨站攻击,可以构造恶意蠕虫、劫持网站COOKIE、获取键盘记录、植入恶意挖矿js代码。


命令注入

Web应用未对用户提交的数据做过滤或者转义,导致服务器端执行了黑客提交的命令。黑客利用登入注入攻击,可以对服务器植入后门、直接反弹shell入侵服务器。


木马后门

Web应用未对用户提交的数据做过滤或者转义,导致木马代码执行。黑客利用木马后门攻击,可以入侵服务器。


对应用操作系统平台的攻击等

操作系统不同,底层实现的原理不同,所采用的漏洞利用也不同


应用权限的访问控制被攻破


目录遍历

Web应用对相关目录未做访问权限控制,并且未对用户提交的数据做过滤或者转义,导致服务器敏感文件泄露。黑客利用目录遍历攻击,可获取服务器的配置文件,进而入侵服务器。


本地文件包含

Web应用对相关目录未做访问权限控制,并且未对用户提交的数据做过滤或者转义,导致服务器敏感文件泄露。黑客利用本地文件包含漏洞,可以获取服务器敏感文件、植入webshell入侵服务器。


远程文件包含

Web应用未对用户提交的文件名做过滤或者转义,导致引入远程的恶意文件。黑客利用远程文件包含漏洞,可以加载远程的恶意文件,导致恶意代码执行、获取服务器的权限。


身份认证和会话管理被攻破


COOKIE伪造方法

1.跳过浏览器,直接对通讯数据改写。 2.修改浏览器,让浏览器从本地可以读写任意域名COOKIE 3.使用签名脚本,让浏览器从本地可以读写任意域名COOKIE 4.欺骗浏览器,让浏览器获得假的域名


预防方法

1.不要在公共场合登录自己重要的用户名和密码。 2.COOKIE+ip等信息加密。 3.COOKIE+ip+动态。


会话劫持

是一种结合了嗅探和欺骗在内的攻击方法。在一次正常的通信中,攻击者作为第三者参与其中或对数据进行修改。从而干涉两台机器之间的数据传输,例如监听敏感数据、替换数据等。由于攻击者已经介入其中,他能轻易知道双方传输的数据内容,还能根据自己的意愿去左右它。这个“中转站”可以是逻辑上的,也可以是物理上的,关键在于它能否获取到通信双方的数据。


跨站点的执行代码漏洞

在一个服务器下,部署了多个网站,而没有进行权限的隔离。当其中一个站点被攻击者攻破时,从而使得攻击者能横向攻击其他站点。


弹出漏洞

在主流网络浏览器Internet Explorer(IE)、Mozilla/Mozilla Firefox、Opera、Safari、Konqueror中发现的安全漏洞(英文),攻击者可“抢占”著名可靠网站的弹出式窗口,在窗口中显示第三方网站的网页(内容)。

要想“成功地”突破此安全漏洞进行攻击,必须把用户引诱到攻击者的网站。也就是说,(1)首先,在用户的浏览器里显示攻击者的网页;然后(2)在别的浏览器窗口显示可靠网站的网页。在这种状态下,一旦用户信赖的网站上显示了弹出式窗口,(3)就能够在此窗口中显示(并非可靠网站的网页)攻击者指向的网页(右图为Secunia公开的流程图,点击放大)。 如果恶意利用此安全漏洞,攻击者就能进行网络欺诈。比如“在弹出式窗口中显示链接到攻击者网站上的假冒窗口,让用户输入个人信息”


错误处理不当

对于服务器及程序错误处理,没能使用模糊方式,而是使用测试时的正常报错,导致攻击者可以利用报错信息对目标进行漏洞利用


不安全存储

不仅局限于没有对密码等需要保护的字段进行加密之外,还包括加密算法太弱,很容易就可以破解。

如:弱口令,加密算法太弱

首先,对于需要保护的字段一定不能直接存储或输出,需要使用加密算法等。

防御

[4]  https://blog.csdn.net/quiet_girl/article/details/50608959 安全测试之不安全的加密存储

对于已经使用加密算法的字段,一定要注意尽量使用强一些的加密算法,伪随机数等过于简单的算法,也会对网站的安全造成巨大威胁。


高级爬虫

爬虫自动化程度较高可以识别setCOOKIE等简单的爬虫防护方式。


常规爬虫

爬虫自动化程度较低,可以利用一些简单的防护算法识别,如setCOOKIE的方式。


不安全配置管理等

防范手段:

针对服务器的访问控制权限进行严格划分分配,防止管理员权限过大,可以采用基于角色的访问控制策略,保证用户的最小特权化。对服务器系统及时修补补丁,保证信息系统的一个安全状态,并对系统内用户行为和安全事件进行审计记录。

 


表示层

针对表示层的攻击主要是针对格式翻译和数据处理来进行的,攻击方式有Unicode攻击和计算溢出攻击。

防范手段:在系统设计层面,应考虑拥有足够充足的缓冲区,保证数据不会溢出被修改、覆盖。严格而控制服务器上文件和文件夹的权限,对登录用户和后台管理人员的权限进行合理的分配,防止服务器文件和文件夹被非法利用。


会话层

针对会话层的攻击主要是利用或者窃取合法用户的COOKIE和session,然后冒用或者利用合法用户的身份,以达到非法授权访问的目的,其主要攻击目标为攻击COOKIE和token,常见的攻击方式有XSS(跨站脚本攻击)和CSRF(跨站请求伪造)。

防范手段:针对会话层的攻击防范,主要是针对用户登录的COOKIE信息进行利用或盗取。为减少并防止该类攻击事件的发生。首先是应当在用户登录时,可采用双因子的认证方式,确认用户信息,并在cookice设置中启动httponle属性,并在代码层面添加随机产生的token认证,认证用户数据包信息,防止用户身份认证信息被窃取并盗用。


传输层

针对传输层的攻击主要是利用TCP/UDP协议进行攻击,而利用TCP协议攻击主要是利用TCP协议的三次握手机制,向目标主机或者服务器发送大量连接请求但是不对其进行响应,使得占用大量目标服务器主机资源,造成瘫痪的攻击方式,常见的攻击方式由Flooding洪泛攻击、ACK flooding洪范攻击等,而利用UDP的攻击主要是利用流量攻击,使用UDP的不可靠性,大量发送数据包,造成目标拒绝服务的目的,常见的攻击方式有UDP flooding洪泛攻击。

防范手段:在这里也可以通过部署抗DDOS防御系统进行防护,并扩大带宽,对数据包进行筛选、防护。


网络层来看

针对网络层的攻击也是目前互联网上常见的几种主要的攻击方式,如Smurf攻击(通过将回复地址设置为受害网络的广播地址,使用数据包淹没目标主机)、ICMP路由欺骗攻击、IP分片攻击、ping of death(死亡之ping)、IP欺骗伪造攻击,其通性都是通过制造大量的无用数据包,对目标服务器或者主机发动攻击,使得目标对外拒绝服务,可以理解为DDOS或者是类DDOS攻击。

防范手段:可以通过扩大带宽并部署DDOS防御系统来防御拒绝攻击,对于攻击发生过的IP和确认安全的IP,可以通过设置防火墙上IP白名单和黑名单对通信主机的地址进行限制、绑定,防止欺骗行为的发生。


细分:

[5]  https://zhuanlan.zhihu.com/p/27292715 网络层攻击 


Syn-flood

利用TCP建立连接时3次握手的“漏洞”,通过原始套接字发送源地址虚假的SYN报文,使目标主机永远无法完成3次握手,占满了系统的协议栈队列,资源得不到释放,进而拒绝服务,是互联网中最主要的DDOS攻击形式之一。

网上有一些加固的方法,例如调整内核参数的方法,可以减少等待及重试,加速资源释放,在小流量syn-flood的情况下可以缓解,但流量稍大时完全不抵用。防御syn-flood的常见方法有:syn proxy、syn COOKIEs、首包(第一次请求的syn包)丢弃等。


ACK-flood

对于虚假的ACK包,目标设备会直接回复RST包丢弃连接,所以伤害值远不如syn-flood。DDOS的一种原始方式。


UDP-flood

使用原始套接字伪造大量虚假源地址的UDP包,目前以DNS协议为主。


ICMP-flood

Ping洪水,比较古老的方式。


数据链路层

针对数据链路层的攻击常见的是对基于mac地址的伪装欺骗,在数据链路层有两个重要的协议ARP(地址解析协议)和RARP协议(反向地址解析协议),常见的攻击方式就是ARP欺骗(ARP伪装),其攻击原理为攻击者利用自己伪造的mac地址来告诉被攻击者自己是对方想要访问的身份,显而易见这个身份是攻击者自己伪造的,从而欺骗被攻击者将数据流量转发到自己伪造的身份地址上,进而获取数据,达到欺骗的目的。

防范手段:对于系统和通信网络中关键的设备进行ARP地址绑定,可以在Windows中输入arp-s gate-way-ip gate-way-mac固化ARP表,也可以通过安装ARP防护软件-ARPGuard,对ARP信息进行防护。


物理层

针对其网络硬件和基础设施来进行物理破坏或者是强行改变路由器,比如说要去攻击一个公司,就把他们公司的网线剪掉,让他们无法访问外网。

防范手段:保护物理线路的可靠性,对于物理设备的接入采用双线、双设备接入,保证物理线路和物理设备的可靠性,并处于监管的状态。


文章借鉴来源:



  1. https://www.x-mol.com/paper/1288185784577998848/t



  2. https://blog.51cto.com/u_14857544/2634158



  3. https://blog.csdn.net/quiet_girl/article/details/50608959



  4. https://zhuanlan.zhihu.com/p/27292715



  5. https://kamisec.github.io/2017/06/OWASP-top-10-%E5%A4%B1%E6%95%88%E7%9A%84%E8%BA%AB%E4%BB%BD%E8%AE%A4%E8%AF%81%E5%92%8C%E4%BC%9A%E8%AF%9D%E7%AE%A1%E7%90%86/




原文链接:https://www.cnblogs.com/epheseren/p/15456184.html



推荐阅读
  • 新浪微博热搜暂停更新;即刻APP回归;Android 11 Beta版发布 | 科技新闻速递
    为您带来最新的科技资讯,涵盖社交媒体动态、软件更新及行业重大事件。CSDN携手您共同关注科技前沿。 ... [详细]
  • 探讨密码安全的重要性
    近期,多家知名网站如CSDN、人人网、多玩、开心网等的数据库相继被泄露,其中大量用户的账户密码因明文存储而暴露无遗。本文将探讨黑客获取密码的常见手段,网站如何安全存储用户信息,以及用户应如何保护自己的密码。 ... [详细]
  • MySQL Server 8.0.28 升级至 8.0.30 的详细步骤
    为了修复安全漏洞,本文档提供了从 MySQL Server 8.0.28 升级到 8.0.30 的详细步骤,包括备份数据库、停止和删除旧服务、安装新版本以及配置相关环境变量。 ... [详细]
  • 应用链时代,详解 Avalanche 与 Cosmos 的差异 ... [详细]
  • 本文介绍了如何利用HTTP隧道技术在受限网络环境中绕过IDS和防火墙等安全设备,实现RDP端口的暴力破解攻击。文章详细描述了部署过程、攻击实施及流量分析,旨在提升网络安全意识。 ... [详细]
  • 在对WordPress Duplicator插件0.4.4版本的安全评估中,发现其存在跨站脚本(XSS)攻击漏洞。此漏洞可能被利用进行恶意操作,建议用户及时更新至最新版本以确保系统安全。测试方法仅限于安全研究和教学目的,使用时需自行承担风险。漏洞编号:HTB23162。 ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • DedeCMS 6月7日补丁更新后版权链接问题分析与解决
    本文探讨了在安装DedeCMS官方于6月7日发布的最新安全补丁后,出现的版权链接问题。更新完成后,底部自动生成了“Power by DedeCMS”的链接,尽管配置文件中的`cfg_powerby`字段并未包含相关信息。文章详细分析了这一现象的原因,并提供了有效的解决方法,帮助用户快速恢复网站的正常显示。 ... [详细]
  • MySQL作为一款广泛使用的关系型数据库管理系统,在实际应用中,许多用户习惯于使用root账户进行操作,但这会带来显著的安全隐患。本文将详细探讨如何通过创建专用账户和实施严格的权限管理,有效规避以root用户运行MySQL所带来的潜在安全威胁。同时,文章还将提供一系列最佳实践,帮助用户增强数据库的整体安全性。 ... [详细]
  • 在 Axublog 1.1.0 版本的 `c_login.php` 文件中发现了一个严重的 SQL 注入漏洞。该漏洞允许攻击者通过操纵登录请求中的参数,注入恶意 SQL 代码,从而可能获取敏感信息或对数据库进行未授权操作。建议用户尽快更新到最新版本并采取相应的安全措施以防止潜在的风险。 ... [详细]
  • Vulnhub DC3 实战记录与分析
    本文记录了在 Vulnhub DC3 靶机上的渗透测试过程,包括漏洞利用、内核提权等关键步骤,并总结了实战经验和教训。 ... [详细]
  • 2019-2020学年 20174325 叶竞蔚 《网络对抗技术》实验六:Metasploit基础应用
    本实验旨在掌握Metasploit框架的基本应用方法,重点学习三种常见的攻击方式及其实施思路。实验内容包括一次主动攻击(如MS08-067)、一次针对浏览器的攻击(如MS11-050)以及一次针对客户端的攻击(如Adobe漏洞利用)。此外,还包括成功应用一个辅助模块。 ... [详细]
  • 本文介绍了编程语言的基本分类,包括机器语言、汇编语言和高级语言的特点及其优缺点。随后详细讲解了Python解释器的安装与配置方法,并探讨了Python变量的定义、使用及内存管理机制。 ... [详细]
  • 从零开始编译Linux系统:第16章 全新起点
    本章将详细介绍如何从零开始编译一套完整的Linux系统,涵盖关键组件如glibc库的介绍及其重要性。通过本文,读者将了解从源代码构建Linux系统的全过程。 ... [详细]
  • 本文总结了Java初学者需要掌握的六大核心知识点,帮助你更好地理解和应用Java编程。无论你是刚刚入门还是希望巩固基础,这些知识点都是必不可少的。 ... [详细]
author-avatar
手机用户2502923697
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有