编码指针一致性

访客3年前黑客资讯645

控制流被劫持进攻是当今比较流行的拒绝服务攻击之一,包含ROP、JOP这些。相对的减轻、防御措施则包含数据信息实行维护DEP、栈维护、详细地址随机化ASLR、控制流一致性CFI这些。之上对策是大伙儿较为普遍和常见的,也是有很多人 写了很多的类似文章开展剖析。如今我觉得给大伙儿详细介绍非常少有些人谈及的一种防御措施——编码指针一致性CPI,期待对大伙儿有所裨益,疏漏之处,还请大伙儿吝惜指正。

CPI即code-pointer integrity,是由Volodymyr Kuznetsov(可译者库兹涅佐夫,很带劲是否有,强烈推荐大伙儿去看一看他的视頻,那英文更带劲)等于2014年明确提出的一种防御力控制流被劫持进攻的体制。核心内容是将过程占有的运行内存区划为缓冲区(safe region)和常规区(regular region),并根据硬件配置(也是有手机软件 *** ,但不常见)对2个地区干了隔离。缓冲区只有储放比较敏感指针和元数据(metadata,用于叙述比较敏感指针偏向目标的值,详细地址上末地,及其分派的时钟频率id,如下图所显示),另外对缓冲区的浏览要不是在编译程序时证实安全性的,要不是根据运作时安全大检查的。对常规区的浏览沒有一切独特之处。

运行内存系统分区如下图所显示:

例如下列这一段编码:

在CPI体制下,相匹配的过程在运行内存中应该是那样的:

CPI假定 *** 攻击早已有充足强劲的工作能力,她们:

对过程运行内存有彻底的决策权,但不可以改动代码段

能够对随意详细地址(代码段外的)开展读写能力

不可以干预程序流程载入

那样的假定早已大大的看低了 *** 攻击的工作能力,另外也可以确保编码插桩的开展和地区隔离的执行。

在落实措施时,是根据下列流程来开展的:

对源代码开展静态数据剖析

静态数据剖析时可能对比较敏感指针开展鉴别。假如一个指针的种类是比较敏感的,那麼这一指针便是比较敏感的。比较敏感种类关键包含:

偏向涵数的指针

偏向比较敏感种类的指针

有组员是比较敏感种类的复合型种类(建筑结构或数组)

泛型指针(void*, char*, 在界定建筑结构或类之前就申明的指针)

客户自定的比较敏感种类 (如储存有电脑操作系统UID信息内容的建筑结构)

全部在编译程序或运作是隐式形成的编码指针(回到详细地址,C 虚函数表,setjmp缓存文件)

此外,全部对比较敏感指针开展实际操作的指令也必须被鉴别,关键包含:

解引入

指针计算

分派或增加内存

因为比较敏感指针种类里包括char*那样的泛型指针,因此静态数据剖析的时候会看低静态数据指针总数,为了更好地降低花销,CPI将做为libc字符串函数主要参数和偏向变量定义的char*指针觉得不是比较敏感的。

二.编码插桩

编码插桩的目地取决于:

确保全部比较敏感指针储存在缓冲区

运作时建立和传送这类指针的有关元数据

解引入时查验元数据

插桩时可能在缓冲区和常规区都分派室内空间给比较敏感指针,但另外只有有?个是合理的。那样做可以处理运行内存合理布局更改产生的兼容问题,另外也可以防止相近void*那样的指针的敏感度发生改变产生的难题。那样的计划方案可以依照指针在常规区的偏移来测算其在缓冲区的相对详细地址。

静态数据剖析全过程中早已找到对比较敏感指针开展实际操作的指令,插桩可能对其开展目的性的改变,建立新的或是是立即延用以前现有的元数据。在其中,对比较敏感指针开展载入和储存的指令可能由CPI模式定义的指令替代以将比较敏感指针从缓冲区取下或是是存进缓冲区。call指令和ret指令的维护可能根据安全性栈(safe stack)来开展。

比较敏感指针的每一次解引入都需要开展插桩,便于在运作时查验元数据来检验该指针是不是安全性。泛型指针在缓冲区和常规区都占据运行内存,要不是比较敏感指针,则将其元数据中的末地设定为超过上界,这样一来,浏览元数据时便会评定为非法访问,进而变为浏览常规区开展相对实际操作。

下列是插桩全过程中出示的一部分接口函数:

三.隔离缓冲区

执行隔离的具体办法是与系统架构图有关的。关键有:

x86-32构架

在这里构架下,CPI取决于硬件配置段维护,促使缓冲区只有根据特殊、专用型的段存储器浏览,事实上是将该存储器作为程序流程装车器来应用。考虑到以下编码精彩片段:

隔离后具体指令变成:

这里应用gs存储器来执行隔离,而syscall指令通常还要浏览该存储器,因此CPI改变指令,禁止使用了有关实际操作。

x86-64构架

此构架下段维护已没法确保,但仍能够根据信息内容掩藏进行隔离,由于常规区中的详细地址不容易偏向缓冲区(不然便是比较敏感指针),信息内容也就不容易泄漏(创作者觉得这是一个客观事实,但趣味的是,这实际上仅仅一个不一直创立的假定)。该构架下48bit(Linux核心将x86-64的过程详细地址室内空间界定为“48 bit – 1 protect page”)的详细地址室内空间还可以保证避免 暴力破解密码, *** 攻击在尝试破译以后程序流程很有可能会奔溃(它是此外一个创作者觉得是客观事实的假定)。

相关文章

于洋王晓理

羽球女双消极比赛中国羽毛球队再次坐到了火山口,继奥运前林丹疯狂退赛惹风波后,这次再曝疑似打假球消极放水,中国羽毛球队可谓烦得不可开交!北京时间8。 谁都希望自己国家的队伍可以在决赛中会师,那么在规则可...

物流周报:顺丰寻约40亿美元贷款、传京东顺丰等竞购希杰荣庆

据彭博新闻社报导,顺丰控股已经与金融机构商谈一笔约40亿美金的借款,以用以企业并购。知情人人员称,借款的经营规模并未最后明确,顺丰快递或挑选根据别的方法筹资一些资产。有知情人人员称,顺丰控股的股权融资...

网站备案需要什么?网站备案最新要求

网站备案需要什么?网站备案最新要求

网站备案需要什么(网站备案最新要求)备案时您需要提交备案主体及相关负责人的证件资料,对应管局会核查您提交的资料是否满足备案要求。备案前建议您参考本文准备好所需要的资料,提高备案信息填写及提交的效率。...

电影黑客系列之追踪黑客(黑客技术电影)

电影黑客系列之追踪黑客(黑客技术电影)

本文目录一览: 1、有那些经典的关于黑客的电影 2、关于黑客的电影有哪些 ,多说点!! 3、关于黑客的电影都有哪些? 有那些经典的关于黑客的电影 1.《战争游戏》WarGames(1983)...

哪里你找的黑客,全国黑客网模拟器

一、哪里你的怎么找黑客 1、接单黑客因为袭击米特尼克赢得了地狱黑客的称号。哪里你的全国模拟器不幸的是,许多记者和作家倾向于错误地利用黑客作为黑客来激怒真正的黑客。人才哪里接单黑客这是1995年美国第一...

欧莱雅眼霜适合什么年龄

欧莱雅眼霜使用的年龄跨度比较大,在使用的女性有二十几岁的年轻肌肤使用,也有四十几岁的熟龄肌肤使用,总之,适合自己肌肤的才是最好的。 欧莱雅眼霜适...