云安全之访问控制的常见攻击及防御

访问控制攻击概述

访问控制漏洞即应用程序允许攻击者执行或者访问某种攻击者不具备相应权限的功能或资源。

常见的访问控制可以分为垂直访问控制、水平访问控制及多阶段访问控制 (上下文相关访问控制),与其相应的访问控制漏洞为也垂直越权漏洞(普通用户可以访问或执行只有管理员才具有权限访问或执行的资源或功能),水平越权漏洞(某一用户可以访问或执行另一个用户才有权限访问或执行的资源或功能)及多阶段越权漏洞(某个操作可能需要多个步骤,比如银行转账,攻击者可能跳过前面步骤直接执行最后的步骤)

访问控制攻击类型与防御策略

常见的访问攻击类型

  1. 暴力破解
  2. 彩虹表攻击
  3. 网络欺骗攻击
  4. 社会工程学攻击
  5. 嗅探器攻击
  6. 生日攻击

具体攻击类型介绍:

暴力破解

概念:暴力破解攻击是指攻击者通过系统的组合所有可能性(例如登录时用的账户名.密码),尝试所有的可能性破解用户的账户名.密码等敏感信息,攻击者会经常使用自动化脚本组合出正确的用户名和密码。

暴力破解可分为纯粹式暴力破解和字典式暴力破解,一般暴力破解工具都会同时实现这两种暴力破解方式。

常见形式:

字典攻击

字典攻击是攻击者使用一个攻击者认为可能会用在口令中的单词字典,攻击者试图重现这种口令选择的方法,从输入字典中抽出单词并且使用各种变形规则对输入的单词进行处理,用经过变形后的单词进一步匹配目标口令。对于一个成功的字典攻击它需要最原始的单词成为攻击者的输入字典,并且攻击者对字典使用正确的字处理规则。

字典攻击在下面的情况下会失效

1.目标口令的创建规则并不是攻击者猜测的容易受到攻击的规则。比如一些网站、系统推荐的随机口令

2.攻击者输入的字典不够全面不包含目标口令中的基本单词

3.攻击者使用变形规则并没有包含目标口令所使用的规则

彩虹表攻击

概念:彩虹表攻击只是批处理字典攻击的一种具体实现,它的主要特点是“以时间换空间”意思是查表时间变长了,但所需存储空间减少了。一般获取了密码数据后,hacker通常要么穷举密码后将哈希值比对,但耗时长,要么提前生成可能密码与哈希串的对照表并存储后查询但占用空间大。而彩虹表作为一种破解哈希算法的技术,是跨平台的密码破解器。其原理是组合了暴力法和查表法,并在这两者之中取得一个折中,用我们可以承受的时间和存储空间进行破解。

彩虹表的获取

可以自己编程生成彩虹表,也可以使用RainbowCrack或Cain等软件来生成。彩虹表的生成时间与字符集的大小、哈希链的长度成正比,如下图中“7位密码、全部字符集.哈希链长度为2万”的彩虹表大小为32G,本地生成大约需要332天,而从网上下载只需要2个小时左右,主流的彩虹表的大小普遍在100G以上,想要自己生成是几乎不可能的事,因此建议直接从网上下载。

暴力破解和彩虹表攻击的区别与联系

纯粹式暴力破解

是指在要输入密码时,临时按照设定的长度、选定的字符集生成用于测试的密码。

纯粹式暴力破解就好像是地毯式搜索,如果密码在设定的密码集内那么一定是可以找出来的字典暴力破解,就是将出现频率最高的密码保存到文件中,这文件就是字典,暴破时就使用字典中的这些密码去猜解。字典式暴力破解较纯粹式暴力破解,使用了较小的命中率损失节省了较多的时间。

彩虹表攻击

狭义上,彩虹表一般是指以“hash值:原始值”为行组成的文件,如下图所示。彩虹表攻击是指,拿着获取到的hash值通过查询彩虹表找出其原始值的攻击方式。

暴力破解和彩虹表攻击宽泛来说都属于口令破解,但他们使用的场景完全是不一样的.

暴力破解:完全不知道密码----通过系统提供的认证接口不断认证----获取原始口令----处于进入系统前;

彩虹表攻击:已知密码hash值----通过自己的工具及彩虹表不断查找----获取原始口令----处于进入系统后

暴力破解防御

设计安全的验证码(安全的流程+复杂而又可用的图形)在前端生成验证码后端能验证验证码的情况下,对验证码有效期和次数进行限制是非常有必要的,在当前的安全环境下,简单的图形已经无法保证安全了,所以我们需要设计出复杂而又可用的图形;

对认证错误的提交进行计数并给出限制,比如连续5次密码错误,锁定两小时,验证码用完后销毁,这个在上面提到过,能有效防止暴力破解,还有验证码的复杂程度;

必要的情况下,使用双因素认证token是在后端代码中的一组随机生成数,在每次登陆时,会有一组隐藏的随机数加在登录账号和密码上进行验证,从而增强安全性。

彩虹表攻击防御

最有效的方法就是“加盐”即在密码的特定位置插入特定的字符串,这个特定字符串就是“盐”加盐后的密码经过哈希加密得到的哈希串与加盐前的哈希串完全不同,黑客用彩虹表得到的密码根本就不是真正的密码。即使黑客知道了“盐”的内容、加盐的位置,还需要对H函数和R函数进行修改彩虹表也需要重新生成,因此加盐能大大增加利用彩虹表攻击的难度。

网络欺骗攻击

概念:网络欺骗就是通过欺骗使入侵者相信信息系统是有价值的、有可利用漏洞的并且具有一些可攻击窃取的资源(资源是伪造的或者不重要的),将入侵者引向这些错误的资源。增加入侵者的工作量、复杂度、不确定性,使入侵者不知道自己是否有效或成功。而且,它允许防护者跟踪入侵者的行为,并在入侵者之前修补系统的安全漏洞。

常见形式:

ARP欺骗:

ARP(地址解析协议)是在仅知道主机的IP地址时确定其物理地址的一种协议。因为IPV4和以太网的广泛使用。其主要是将IP地址翻译为以太网的MAC地址。但也能在ATM(异步传输)和FDDI(光纤分布式数据接口)IP网络中使用。局域网的网络流通不是根据IP地址进行,而是根据MAC地址进行传输,计算机是根据MAC地址来识别一台机器。区域内A要向主机B发送报文,会查询本地的ARP缓存表,找到B的ip地址对应的MAC的地址后进行数据的传输。如果没有找到B的ip对应的MAC地址,A会广播一条ARP请求报文(携带主机B的IP地址),网上的所有主机都会收到ARP请求,但只有主机B在识别自己的IP地址并向A发送一个ARP响应报文。其中包含B的MAC地址,A接收到B的应答后会更新自己ARP缓存。然后在使用这个MAC地址发送数据。ARP欺骗主要分为单向欺骗和双向欺骗

IP地址欺骗:

IP地址欺骗是指再行动产生的IP数据包为伪造的源P地址,为了冒充其他的系统或者发件人的身份。这是一种入侵的攻击形式。入侵者使用一台电脑上网,借用另一台机器的IP地址,从而冒充另外一台机器和服务器打交道。IP欺骗的实质就是伪造IP,就是让一台计算机扮演另外一台计算机,利用主机之间的信任关系来达到欺骗的目的。如果两台计算机之间的信任关系是基于IP地址建立的,那么就可以使用rlogin命令登录到该主机上,不需要通过任何口令的验证,这就是IP欺骗最根本的理论依据。

IP欺骗的过程如下:先选定目标主机,且其信任模式已被发现,并找到一台被目标主机信任的主机。一旦发现被信任的主机,为了实现伪装,会使其丧失工作能力。因为在攻击者要代替被信任主机过程中要确保真正被信任的主机不能接收任何有效的网络数据,否则就会被拆穿。在被信任主机丧失工作能力以后伪装成为被信任主机,同时建立起与目标主机基于地址验证的应用连接。如果成功可以用一些简单的命令来方式后门,从而进行非授权的操作。

DNS欺骗:

冒充域名服务器,把要查询的IP地址设置成为攻击者的IP地址,用户上网就是能看见攻击者的主页而不是想要查看的网站主页了,这就是DNS欺骗的基本原理,DNS欺骗并不是真正的"黑掉”了对方的网站,只是冒名顶替、招摇撞骗罢了。

电子邮件欺骗:电子邮件欺骗(email spoofing)就是伪造电子邮件头,导致信息看起来是源于某个人或某个地址,而实际上不是真正的源地址。垃圾邮件的发布者通常使用欺骗和恳求的方式尝试让收件人打开邮件,并尽最大可能让收件人回复。

WEB欺骗:

WEB欺骗是一种电子信息欺骗,攻击者在其中创造了整个web世界的一个令人信服但是完全错误的拷贝。错误的web看起来是十分逼真,拥有相同的网页和链接。然而,攻击者控制者错误的web站点,这样受攻击者浏览器和和web之间的所有网络信息就完全被攻击者截获,其工作原理就是一个过滤器。

网络钓鱼攻击

概念:网络欺骗是黑客经常使用的一种攻击方式,也是一中隐蔽性较高的网络攻击方式。这里以网络钓鱼为例,来介绍攻击过程和防御措施。

钓鱼攻击采用多种技术,使一封电子邮件信息或网页的显示同其运行表现出欺骗性差异。以下为些常见的攻击技术:

  • 复制图片和网页设计、相似的域名
  • URL隐藏
  • IP地址
  • 欺骗性的超链接
  • 隐藏提示
  • 弹出窗口
  • 社会工程

网络钓鱼攻击防御

  • 不要轻易在网站上留下自己身份的任何资料,包括手机号、身份证号、银行卡号等.
  • 不要轻易在网上传输自己的隐私资料。不要轻易相信网上的消息,除非得到权威机构的证明;
  • 不要轻易在网站注册时透露自己的真实资料。
  • 如果涉及金钱交易、商业合同、工作安排等重大事项,不要仅仅只通过网络完成,有心的骗子会利用进行欺诈;
  • 不要轻易相信通过电子邮件、网络论坛等发布的中奖信息、促销信息等,除非得到另外途径的证明。
  • 其他网络安全防范措施。一是安装防火墙和防病毒软件,并经常升级;二是注意经常给系统打补丁,堵塞软件漏洞;三是禁止浏览器运行JavaScript和ActiveX代码,四是不浏览未知网站或安装未知软件;五是提高自我保护意识,尽量避免在网吧等公共网站上浏览涉及隐私的网站或者服务。

社会工程学攻击

概念:普通的黑客攻击,一般来说,普通的黑客攻击采用的还是比较传统的方式,最开始是信息采集,就是搜集关于你或者你的公司一切信息,如人员信息了,邮箱服务器后缀名等等。这些都可以运用一些自动化的扫描工具能够搜集完成,完成之后会有一台专门存储这些信息的服务器来记录信息,并且能够和团队的其他人实现信息的分享。下一步就是扫面所有相关系统的漏洞,以便于以后利用。找到漏洞之后再进行下一步的渗透。

这是传统的渗透攻击,那么社会工程学攻击是什么样的呢?比方说,你的电脑系统铜墙铁壁非常完美,所有的漏洞都已打好补丁,没有任何漏洞可以被利用,你肯定以为这样的系统是绝对的安全,完全可以防止黑客的入侵。但是,这时有一个技术就产生了,就是的社会工程学攻击。

社会工程学攻击防御

  • 培训员工:定期对员工进行安全意识培训,教育他们如何识别和应对社会工程学攻击。培训应包括常见的社会工程学技巧,例如利用电子邮件、电话、社交媒体等手段进行欺诈和诈骗。
  • 制定严格的安全政策:制定明确的安全政策和规定,并确保员工了解和遵守这些规定。例如,禁止将敏感信息发送到个人电子邮件或非公司认可的通信渠道中。
  • 建立安全的IT环境:采用安全的加密技术来保护数据和通信。例如,使用强密码、多因素身份验证和加密通信等。
  • 做好用户管理:限制用户权限和访问敏感数据的权限。对于离职员工或承包商,及时撤销其访问权限。
  • 监控和记录:对重要数据和系统进行监控和记录,以便及时发现异常行为和事件。
  • 加强安全审计:定期进行安全审计,确保系统没有漏洞或后门程序。
  • 保护知识产权:制定知识产权政策和规定,以防止公司机密或敏感信息被外部人员获取或利用。
  • 建立应急响应计划:制定应急响应计划以应对社会工程学攻击事件。该计划应包括如何识别、隔离、恢复和追踪攻击者的步骤。
  • 寻求专业帮助:如果您的公司或组织经常受到社会工程学攻击,您可以考虑寻求专业的安全咨询或服务来帮助加强您的安全防御。

嗅探器攻击

概念:嗅探器(sniffer)是利用计算机的网络接口截获目的地为其他计算机的数据报文的一种技术。它工作在网络的底层,把网络传输的全部数据记录下来。 嗅探器可以帮助网络管理员查找网络 漏洞和检测网络性能.嗅探器可以分析网络的流量,以便找出所关心的网络中潜在的问题。

嗅探器攻击防御

在以太网中

尽量在网络中使用交换机和路由器

对在网络中传输的数据进行加密

划分VLAN(虚拟局域网)

布置入侵检测系统(IDS、入侵防御系统IPS)、网络防墙等安全设备强化安全策略,加强员工安全培训和管理工作.

在内部关键位置布置防火墙和IDS,防止来自内部的嗅探

在无线局域网中

禁止SSID广播

对数据进行加密

使用MAC地址过滤,强制访问控制使用定向天线

采取屏蔽无线信号方法,将超出使用范围的无线信号屏蔽

使用无线嗅探软件实时监控无线局域网中无线访问点(AP)和无线客户连入情况

生日攻击

概念:生日攻击是利用概率论中的生日问题,找到冲突的Hash值,伪造报文,使身份验证算法失效

场景假设:

假设要对一个合同文件进行签名,然后把合同文件和签名一起发送给接收者。签名的方法:计算文件的哈希值(m位),然后使用A的私钥对这个哈希值进行加密。接收者使用A的公钥进行解密,然后比较哈希值,这样他就能确认: 接收到的合同文件是A发送的 (因为:可以使用A的公钥对加密的哈希值进行解密)合同文件未被修改过 (因为:解密的哈希值与合同文件的哈希值相同)攻击者B想要伪造份假合同文件,然后发送给接收者,并使接收者仍然相信: 接收到的合同文件是A发送的 (要求:必须能用A的公钥对加密的哈希值进行解密)合同文件未被修改过 (要求:解密的哈希值与合同文件的哈希值相同)。

生日攻击的防御

1.使用安全的哈希算法:安全的哈希算法生成的哈希值有足够多的位数。这样,攻击者在寻找两个具有相同哈希值的文件时就会非常困难

2.加盐:在为文件签名之前,先向文件添加一个随机值,然后计算哈希值,再将文件、签名和随机值一起发送给接收者。这样,攻击者必须找出具有特定哈希值的伪造文件,这非常困难。

3.改动文件:在为文件签名之前,对文件做少许改动。这样,攻击者必须找出具有特定哈希值的伪造文件,这非常困难。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/95874.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++:模板进阶与继承

模板进阶与继承 模板进阶1.非类型的模板参数2.模板的特化2.1特化的概念2.2函数模板特化2.3类模板特化2.4全特化和偏特化2.4.1全特化2.4.2偏特化 3.模板的分离编译3.1同文件分离3.2不同文件下分离 继承1.继承的概念和定义1.1继承的概念1.2继承的定义1.2.1定义格式1.2.2继承关系和…

找不到vcomp100.dll解决教程,一键修复vcomp100.dll丢失问题

vcomp100.dll是一个动态链接库(DLL)文件,。DLL文件是Windows操作系统中的重要组件,它们包含可由多个程序共享的代码和数据。通过使用DLL文件,程序可以实现模块化设计,提高代码的可重用性和可维护性。如果电…

gin 框架的 JSON Render

gin 框架的 JSON Render gin 框架默认提供了很多的渲染器,开箱即用,非常方便,特别是开发 Restful 接口。不过它提供了好多种不同的 JSON Render,那么它们的区别是什么呢? // JSON contains the given interface obje…

2023 年 Web 安全最详细学习路线指南,从入门到入职(含书籍、工具包)【建议收藏】

第一个方向:安全研发 你可以把网络安全理解成电商行业、教育行业等其他行业一样,每个行业都有自己的软件研发,网络安全作为一个行业也不例外,不同的是这个行业的研发就是开发与网络安全业务相关的软件。 既然如此,那其…

linux入门---信号的理解

目录标题 如何理解计算机中的信号如何查看计算机中的信号初步了解信号的保存和发送如何向目标进程发送信号情景一:使用键盘发送信号情景二:系统调用发送信号情景三:硬件异常产生信号情景四:软件条件产生信号 核心转储信号的两个问…

【安鸾靶场】实战渗透

文章目录 前言一、租房网 (150分)二、企业网站 (300分)三、SQL注入进阶 (550分) 前言 最近看到安鸾的靶场有些比较有意思就打了一下午,有一定难度。 一、租房网 (150分) http://106.15.50.112:8031/ 刚打开burp就报了thinkphp的代码执行 直接getshell flag&a…

华为云云耀云服务器L实例评测|基于canal缓存自动更新流程 SpringBoot项目应用案例和源码

前言 最近华为云云耀云服务器L实例上新,也搞了一台来玩,期间遇到各种问题,在解决问题的过程中学到不少和运维相关的知识。 在之前的博客中,介绍过canal的安装和配置,参考博客 拉取创建canal镜像配置相关参数 & …

【Java】HashMap 背诵版

HashMap 背诵版 1. HashMap、Hashtable 和 ConcurrentHashMap 的区别?1.1 线程安全:1.2 继承关系:1.3 允不允许null值: 2. HashMap 的数据结构2.1 什么是hash表?2.2 HashMap 的数据结构 3. 什么是hash冲突,…

Go 复合数据类型之结构体与自定义类型

Go 复合数据类型之结构体与自定义类型 文章目录 Go 复合数据类型之结构体与自定义类型一、类型别名和自定义类型1.1 类型定义(Type Definition)简单示例 1.2 类型别名简单示例 1.3 类型定义和类型别名的区别 二、结构体2.1 结构体介绍2.2 结构体的定义2.…

day-65 代码随想录算法训练营(19)图论 part 04

463.岛屿的周长 分析: 1.陆地的旁边是海面,存在周长2.陆地在边界上,存在周长 思路一:深度优先遍历 1.通过记录访问情况来访问数据 class Solution { public:int direct[4][2]{{0,1},{0,-1},{1,0},{-1,0}};int res0;void dfs(…

集群服务器

文章目录 项目名:实现集群服务器技术栈通过这项目你学到(或者复习到)实现功能编码环境json环境muduo库boost库MySql数据库登录mysql:查看mysql服务开启了没有?mysql的服务器及开发包库chat,表 allgroup friend groupuser offlinemessage user…

从零开始学习线性回归:理论、实践与PyTorch实现

文章目录 🥦介绍🥦基本知识🥦代码实现🥦完整代码🥦总结 🥦介绍 线性回归是统计学和机器学习中最简单而强大的算法之一,用于建模和预测连续性数值输出与输入特征之间的关系。本博客将深入探讨线性…

Mac上protobuf环境构建-java

参考文献 getting-started 官网pb java介绍 maven protobuf插件 简单入门1 简单入门2 1. protoc编译器下载安装 https://github.com/protocolbuffers/protobuf/releases?page10 放入.zshrc中配置环境变量  ~/IdeaProjects/test2/ protoc --version libprotoc 3.12.1  …

Javascript文件上传

什么是文件上传 文件上传包含两部分, 一部分是选择文件,包含所有相关的界面交互。一部分是网络传输,通过一个网络请求,将文件的数据携带过去,传递到服务器中,剩下的,在服务器中如何存储&#xf…

基于SpringBoot的电影评论网站

目录 前言 一、技术栈 二、系统功能介绍 电影信息管理 电影评论回复 电影信息 用户注册 三、核心代码 1、登录模块 2、文件上传模块 3、代码封装 前言 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了电影评…

Pyhon-每日一练(1)

🌈write in front🌈 🧸大家好,我是Aileen🧸.希望你看完之后,能对你有所帮助,不足请指正!共同学习交流. 🆔本文由Aileen_0v0🧸 原创 CSDN首发🐒 如…

Vue中如何进行分布式路由配置与管理

Vue中的分布式路由配置与管理 随着现代Web应用程序的复杂性不断增加,分布式路由配置和管理成为了一个重要的主题。Vue.js作为一种流行的前端框架,提供了多种方法来管理Vue应用程序的路由。本文将深入探讨在Vue中如何进行分布式路由配置与管理&#xff0…

Spring Boot中的@Controller使用教程

一 Controller使用方法,如下所示: Controller是SpringBoot里最基本的组件,他的作用是把用户提交来的请求通过对URL的匹配,分配个不同的接收器,再进行处理,然后向用户返回结果。下面通过本文给大家介绍Spr…

Java方法:重复使用的操作可以写成方法哦

👑专栏内容:Java⛪个人主页:子夜的星的主页💕座右铭:前路未远,步履不停 目录 一、方法的概念1、什么是方法?2、方法的定义3、方法调用的过程 二、方法重载1、重载的概念2、方法签名 在日常生活中…