程序员必看:揭秘脑洞大开的网络攻击技术,从时间到温度的全新视角 网站推广单位排名软件

发布时间 - 2026-01-15 20:40:20    点击率:

(将程序员添加到零距离并了解项目开发。)

粉丝福利:编辑将从今天的消息中选择幸运的朋友,以提供现金红色信封。谢谢您的持续支持!文章结尾见!

大家好,我是。

当涉及到网络攻击技术时,您想到的第一件事是什么?

是DDOS吗?

是SQL注入,XSS吗?

还是堆栈溢出,RCE(远程代码执行)?

这些最常见的网络攻击技术基本上与网络,软件,代码和程序有关。

这很容易理解。计算机网络安全与此无关,它与之有什么关系?

今天,我将向您介绍攻击技术。除此之外,还有一些方法可以开放您的思想。它们可能与各种物理相关的元素有关,例如时间,振动,频率和温度。阅读后,您一定会惊呆的!

这些与传统软件的安全方向不同,但是从其他方面进行的网络攻击,称为侧渠道攻击,也称为侧渠道攻击。

内存冻结

请考虑一个问题:如果计算机突然失去了电源,记忆中的数据会立即消失吗?

每个人都知道,运行计算机时,计算机无法没有此事。程序说明和数据存储在此处,但是您知道存储数据的原理吗?

你看过图片中的黑色东西吗?这就是内存棒存储数据的地方:内存粒子。

内存粒子内部是一个超大尺度的集成电路,并带有密集的存储单元,每个单元都存储了一点:

该单元格中的核心组件是电容器,电容器具有电压。如果电压在一定范围内,则该单元格为1,否则为0。通过无数此类单元,形成了GB级存储空间。

但是您应该知道,在学习物理学后,电容器是不稳定的组件。随着时间的流逝,费用将泄漏。如果不受控制,则记忆棒中的电压最终将变为0,并且内存中的数据将无法准确。

因此,当内存正在运行时,需要计时数据刷新,并为电容器充电。通常,必须最多一次64ms充电一次,以节省数据的准确性。

好的,已经解释了对内存的背景知识,现在我将回到本节开头提到的问题:计算机突然失去了功率,并且内存中的数据是否瞬间消失了?

记忆中的数据由电子组件(例如电容器)携带。它需要时间充电和排放电容器,因此可以大胆地猜测,即使关闭电源,所有数据中的所有数据都需要时间消失。

在国外,有些人有很多想法,并进行了一个实验,以测试记忆棒内部的数据随着电源失效后的时间而消失。

普通数据不方便地观察,因此最直接使用图片。在实验中,将Mona Lisa的图片加载到内存中,然后关闭,然后计算出不同时间后此图片的变化:

可以看出,在电源发电后的5秒钟内,肉眼无法更改图片数据,并且30秒后的影响不大。一分钟后可以隐约可见,但是在5分钟后不会完全可见。

更重要的是,如果温度下降,电容器中的电荷泄漏率将较慢。下表是在正常情况下和冻结情况下测试记忆棒的数据错误率的比较。

如上图所示,红色盒子没有冷冻,蓝色框在负50摄氏度。可以看出,在冻结情况下,一分钟后,数据错误率为0,即使在300秒(5分钟)之后),错误率只是令人惊讶的0.0095%。

因此,已经出现了一种新的攻击方法:使用内存冻结,可以从内存棒中提取数据。

内存中有哪些数据?许多程序的密码键可能存在于内存中,最典型的示例是密码。

您认为如果关闭计算机会安全吗?事实并非如此!

保险丝和幽灵

每个人都应该熟悉断路器和幽灵脆弱性攻击。当他们在2017年爆发时,他们占据了无数媒体的头条新闻,这表明了影响力的范围。

在讲这个漏洞之前,请阅读一个故事。

学习了计算机组成原理的朋友可能知道CPU具有两个重要特征:分支预测和排序执行。

当执行分支机构(例如判决)时,CPU将根据其自己的“经验”进行判断,该分支可以在一段时间内输入该分支,然后提前对此分支执行一些说明。这称为分支预测。

此外,当CPU执行某些指令时,它可能不会在执行下一个指令之前按顺序执行,但可以预先执行一些指令,即CPU认为可以预先执行并且与程序流无关。这被称为阶外执行。

但是CPU认为它可以提前执行,因此可以提前执行吗?执行可能对程序本身的过程没有影响,但是会有任何副作用吗?

让我们先离开这个问题,然后再谈谈。让我们看一下另一个概念:缓存。

CPU执行者需要经常与内存,读取数据或写入数据进行通信。但是,内存响应速度比CPU的速度要慢得多,因此CPU在其中添加了一个缓存,以将您最近要使用的数据放置在此处,以避免每次从内存访问它并提高工作效率。

因此,从内存和缓存读取数据存在时间差异。

正是这样,保险丝和幽灵用来进行系统攻击。

如果您想读取操作系统内核的数据,但是由于系统安全机制,应用程序无法直接访问内核空间,但是此漏洞可以帮助您读取内核空间数据。

首先对以下程序执行数十个次,而传递的X每次少于16。每次,它都进入同一分支,训练CPU,并让其获得一些“经验”,并使它认为<16是执行分支的很高可能性,然后启用级别的执行,并执行指令在分支x <16中提前。

<p style='margin-bottom:15px;color:#555555;font-size:15px;line-height:200%;text-indent:2em;'> <pre data-tool="mdnice编辑器" style="margin-top: 10px;margin-bottom: 10px;border-radius: 5px;box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;"><span style="display: block;background: url("https://mmbiz.qpic.cn/mmbiz_svg/1MLz0YkS76Gic3Eu7P7jmCFjjTQo55ZokD6dykAibtygTCkQqibqfMWZicfKNAY6P88Izbx4WNM27vhRwsz3r1m68JJb7BgtFrp3/640?wx_fmt=svg") 10px 10px / 40px no-repeat rgb(250, 250, 250);height: 30px;width: 100%;margin-bottom: -7px;border-radius: 5px;"></span><code style="overflow-x: auto;padding: 16px;color: #383a42;display: -webkit-box;font-family: Operator Mono, Consolas, Monaco, Menlo, monospace;font-size: 12px;-webkit-overflow-scrolling: touch;padding-top: 15px;background: #fafafa;border-radius: 5px;"><span style="line-height: 26px;"><span style="color: #a626a4;line-height: 26px;">void</span> <span style="color: #4078f2;line-height: 26px;">bad_guy</span><span style="line-height: 26px;">(<span style="color: #a626a4;line-height: 26px;">int</span> x)</span> </span>{<br  /> <span style="color: #a626a4;line-height: 26px;">if</span> (x < <span style="color: #986801;line-height: 26px;">16</span>) {<br  />  temp &= array2[array1[x] * <span style="color: #986801;line-height: 26px;">512</span>];<br  /> }<br  />}<br  /></code></pre></p>

让我们看看。在上面的示例中,分支X &lt;16将通过此数组访问内存。假设X突然有很大的数字,因此通过[X]访问的内存地址将溢出到内核空间。

端外执行的后果将在[x] * 512中预先计算,并访问数组的内容作为下标,然后将内存棒中的内容加载到CPU缓存中。

突然,一个大于16的参数突然出现了,事先执行的指示徒劳无功。

然后,CPU发现这次X大于16,不应来到这个分支。上述工作是徒劳的。

尽管这是浪费时间,但它做了一件事:将与数组的下标相对应的数据从内存到缓存。

目前,您可以依次访问数组的每个元素以了解下标,然后您可以进一步推断该内核空间的值。

然后,不断转换X的输入以了解任何内核地址空间中的数据。

这是断路器和幽灵漏洞的核心思想:通过分支预测 +级别执行 +缓存存储器访问时间差来推断内核数据。

定时攻击

Fuse和Ghost实际上使用CPU访问内存和访问缓存之间的时间差来披露信息,从而实现数据泄漏。换句话说,利用的核心是时间的物理数量。

使用时间的另一种经典攻击方法是定时攻击。

让我给你一个例子。如果您想编写C语言的函数以确定输入密码是否正确,则有人可能会这样写:

<p style='margin-bottom:15px;color:#555555;font-size:15px;line-height:200%;text-indent:2em;'> <pre data-tool="mdnice编辑器" style="margin-top: 10px;margin-bottom: 10px;border-radius: 5px;box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;"><span style="display: block;background: url("https://mmbiz.qpic.cn/mmbiz_svg/1MLz0YkS76Gic3Eu7P7jmCFjjTQo55ZokD6dykAibtygTCkQqibqfMWZicfKNAY6P88Izbx4WNM27vhRwsz3r1m68JJb7BgtFrp3/640?wx_fmt=svg") 10px 10px / 40px no-repeat rgb(250, 250, 250);height: 30px;width: 100%;margin-bottom: -7px;border-radius: 5px;"></span><code style="overflow-x: auto;padding: 16px;color: #383a42;display: -webkit-box;font-family: Operator Mono, Consolas, Monaco, Menlo, monospace;font-size: 12px;-webkit-overflow-scrolling: touch;padding-top: 15px;background: #fafafa;border-radius: 5px;"><span style="line-height: 26px;"><span style="color: #a626a4;line-height: 26px;">bool</span> <span style="color: #4078f2;line-height: 26px;">check_passwd</span><span style="line-height: 26px;">(<span style="color: #a626a4;line-height: 26px;">char</span>* input)</span> </span>{<br  />  <span style="color: #a626a4;line-height: 26px;">bool</span> result = <span style="color: #0184bb;line-height: 26px;">false</span>;<br  />  <span style="color: #a626a4;line-height: 26px;">const</span> <span style="color: #a626a4;line-height: 26px;">char</span>* passwd = <span style="color: #50a14f;line-height: 26px;">"XiaoBaiGe2025"</span>;<br  />  <span style="color: #a626a4;line-height: 26px;">if</span> (input) {<br  />    <span style="color: #a626a4;line-height: 26px;">if</span> (<span style="color: #c18401;line-height: 26px;">strlen</span>(input) != <span style="color: #c18401;line-height: 26px;">strlen</span>(passwd)) {<br  />      <span style="color: #a626a4;line-height: 26px;">return</span> <span style="color: #0184bb;line-height: 26px;">false</span>;<br  />    }<br  />  <br  />    <span style="color: #a626a4;line-height: 26px;">const</span> <span style="color: #a626a4;line-height: 26px;">char</span>* p1 = input;<br  />    <span style="color: #a626a4;line-height: 26px;">const</span> <span style="color: #a626a4;line-height: 26px;">char</span>* p2 = passwd;<br  />    <span style="color: #a626a4;line-height: 26px;">while</span> (*p1 && *p2) {<br  />      <span style="color: #a626a4;line-height: 26px;">if</span> (*p1 == *p2) {<br  />        p1++;<br  />        p2++;<br  />      } <span style="color: #a626a4;line-height: 26px;">else</span> {<br  />        <span style="color: #a626a4;line-height: 26px;">break</span>;<br  />      }<br  />    }<br  />    <br  />    <span style="color: #a626a4;line-height: 26px;">if</span> (*p1 == <span style="color: #50a14f;line-height: 26px;">'\0'</span> && *p2 == <span style="color: #50a14f;line-height: 26px;">'\0'</span>) {<br  />      result = <span style="color: #0184bb;line-height: 26px;">true</span>;<br  />    }<br  />  }<br  />  <br  />  <span style="color: #a626a4;line-height: 26px;">return</span> result;<br  />}<br  /></code></pre></p>

在上述功能中,在正式字符串比较之前,进行长度比较。如果长度不同,则无需比较,节省时间。

但是,这种看似聪明的方法实际上可以为攻击者提供信息参考。

通过输入不同长度的字符串,发现该程序需要不同的时间来验证,并且攻击者可能会猜测真实密码的长度。

在下一个验证过程中,我们开始用位比较字符串的每个位。乍一看,没有错,但是对于同样的问题,如果第一个位错了,则程序很早,如果比较时间相对较长,则意味着密码的前几位数字可能是正确的。

通过这些信息,然后不断尝试,可以在短时间内破解密码。这不是不可思议吗?这是发生的真实情况。

正则表达式

正则表达式广泛用于字符串验证,文本提取,格式和解析等字段。基本上,所有主流编程语言都有相应的程序库。

但是,您是否知道正则表达式的解析引擎如何有效,您知道,如果您通过某些特定的字符串,它可能会使解析引擎陷入巨大的计算陷阱?

正式表达解析引擎的重要流派基于NFA,这是一种状态机器。通过分析引擎的字符分析,状态机可能具有不同的下一个状态。由于每个州都有许多下一个状态,因此解析引擎可能会一直在此链接上移动,直到找到匹配。

例如,“白帽子谈论网络安全”一书中提到的示例:

有这样的正则表达式: ^(a+)+$

如果输入四个字符“ AAAA”,则解析引擎的执行过程如下:

它只有16条路径,可以在短时间内完成。

但是,如果输入字符A增加了大量,则执行路径将急剧增加。

可以看出,随着随后的字符串的长度增加,所花费的时间开始增长2次。如果您输入64个字符a,结果将是什么?

CPU飞行,程序失去了响应,服务拒绝攻击DOS!

出乎意料的是,您只需输入正则表达式字符串即可使服务器失去响应。

总结


# 程序员必看:揭秘脑洞大开的网络攻击技术  # 从时间到温度的全新视角  # 程序员必看  # 揭秘脑洞大开的网络攻击技术  # 这是  # 让我们  # 时间内  # 的是  # 可以看出  # 您的  # 您想  # 都有  # 如果您  # 正则表达式  # 每个人  # 记忆棒  # 您可以  # 失去了  # 情况下  # 我将  # 分钟后  # 编辑器  # 单元格  # 自己的  # 网站SEO优化费用  # 承德网站seo优化  # 陕西营销网站优化  # seo运营教程  # seo推外包服seo  # 开远百度关键词快速排名  # 高端网站建设图文模板  # 果树苗木推广网站  # 忠魁互联seo优化  # 通化抖音seo推荐  # 网站 建设的必要性  # 融水实用的网络推广营销  # 如何关键词seo排名  # 产品营销推广简洁  # 凤冈seo优化公司  # 郑州网站优化找哪家  # 怎么营销公众号文章推广  # 虎门seo矩阵管理系统  # 网站建设专业互赢网络  # 成都seo排名原理 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: SEO导航:助力网站提升流量与排名的必备工具,荣昌建筑网站建设  SEO本站:提升网站流量与排名的秘密武器,荆门专业的抖音seo  SEO用户:如何为您的网站带来持续流量和转化,惠州网站推广哪个好  什么是网站地图?如何制作网站地图及创新互联公司网站特点   SEO数量-如何提升你的网站排名与流量?,射阳seo优化五星服务  SEO客服:如何提升客户体验与业务转化的双赢策略,鄂州网站建设公司教程  淘宝客SEO实战指南,掌握流程,轻松实现流量转化,seo实训系统标题优化  SEO可以改变你的商业未来:如何通过优化提升网站流量和转化率,五粮液营销推广  揭秘SEO优化背后的秘密武器,如何轻松提升网站排名?,大连滨州网站建设推广  探索山西SEO优化公司的奥秘,枣庄化工网站建设招标  沈阳SEO培训,提升网络可见度的关键途径,优化seo 推广  MyFreeMP3与MusicEnc:超干净免费音乐网站,畅享多样歌曲   SEO无限:如何利用SEO技术实现网站流量爆发?,网站建设总监  探索蜘蛛弛软件SEO公司的奥秘,如何让您的网站在搜索引擎中脱颖而出,武汉百度网站优化哪家好  高淳区爱采购,探索乡村振兴的新引擎,打造乡村新名片,寮步整合全网营销推广  福建百度推广的费用高吗?多少钱?,网站建设创意方法  SEO挣钱之道:如何通过SEO实现网络盈利,宁晋网站建设商家  SEO赚钱之路,介绍搜索引擎优化盈利模式,seo外包公司找哪家  详细介绍临朐SEO业务培训,助力企业提升网络竞争力,创业后如何优化网站管理  常德SEO优化流程,助力企业网站提升在线竞争力,什么叫seo粤语  杭州SEO网站优化软件,助力企业互联网营销新篇章,姑苏seo有效吗  长沙SEO教学,如何让你的网站在搜索引擎中脱颖而出?,嘉兴网站建设推广平台  福建百度推广方式如何计费,详细解析与技巧分享,网站建设报价哪家好  从零到一,如何打造个人品牌?,在哪里寻找推广网站信息  探索SEO优化设计的奥秘,提升企业网站在搜索引擎中的排名,seo 搜索技巧  SEO武汉:如何提升武汉地区网站的搜索引擎排名,景区网站建设费用  SEO抢权:如何在竞争激烈的市场中占得先机,正规网站建设口碑好  周末好去处!带娃畅游书海,国家图书馆儿童馆超赞   SEO建站,开启网站优化的全新篇章!,网络营销推广合作方式  介绍SEO关键词优化软件S,助力企业网站排名的利器,泉州seo优化教程  南沙企业搜索SEO优化,助力企业品牌崛起的方法之路,seo网站优化代码  探索SEO优化的奥秘,提升网站排名的关键策略,seo咨询优化  福建百度推广如何寻找客户资源,永宁推广网络营销服务平台  SEO兼职:如何通过SEO兼职实现收入增长与职业突破,濮阳网站建设官网  SEO管家:为您的网站保驾护航的智能SEO助手,网站推广作用有哪些类型  SEO如何通过正确的SEO策略引爆你的流量与排名,西工区seo  合肥SEO优化,提升网站排名的关键策略,seo快排费用知名乐云seo  晋安区SEO服务费介绍,助力企业互联网营销的明智之选,黑猫seo犯法不  SEO王:掌控搜索引擎优化的至高法则,助力企业飞速腾飞,网站动作优化在哪里下载  SEO在国外市场的崛起,影响与启示,广州seo服务推广价格  广州百度推广验证,助力企业打开数字营销新局面,郑州网站建设推广  广东SEO优化创新服务,引领企业互联网营销新潮流,seo如何应对网站风险  SEO优:让网站流量和排名实现飞跃的秘诀,大理哪有企业网站建设  介绍快速SEO优化外包,提升网站排名,抢占市场先机,seo排名公司 吉林  青海SEO优化,打造品牌新高度的秘诀在这片土地,河北省seo关键词排名  广州百度推广难吗?解析其中的秘诀与挑战,天猫营销推广方式分析  广州百度推广岗位,开启互联网营销新机遇,台州网站建设工作室  SEO优化,如何让我的网站在搜索引擎中脱颖而出?,谷歌seo前景排名  SEO结构优化:助力网站提升排名与流量的关键策略,杭州小网站推广哪家好做  广州百度推广为何没有量?深度解析背后的原因与解决方法,网站公司建设中山