CN116226859A - 一种针对Meltdown漏洞精准动态分析检测方法和装置 - Google Patents
一种针对Meltdown漏洞精准动态分析检测方法和装置 Download PDFInfo
- Publication number
- CN116226859A CN116226859A CN202211622694.3A CN202211622694A CN116226859A CN 116226859 A CN116226859 A CN 116226859A CN 202211622694 A CN202211622694 A CN 202211622694A CN 116226859 A CN116226859 A CN 116226859A
- Authority
- CN
- China
- Prior art keywords
- vulnerability
- meltdown
- pebs
- instruction
- attack
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 20
- 238000004458 analytical method Methods 0.000 title claims description 19
- 238000000034 method Methods 0.000 claims abstract description 74
- 230000008569 process Effects 0.000 claims abstract description 38
- 238000012544 monitoring process Methods 0.000 claims abstract description 20
- 238000004088 simulation Methods 0.000 claims abstract description 15
- 230000001960 triggered effect Effects 0.000 claims abstract description 15
- 230000002159 abnormal effect Effects 0.000 claims description 8
- 238000005259 measurement Methods 0.000 claims description 8
- 230000003321 amplification Effects 0.000 claims description 4
- 230000008859 change Effects 0.000 claims description 4
- 238000003199 nucleic acid amplification method Methods 0.000 claims description 4
- 238000005036 potential barrier Methods 0.000 claims description 4
- 238000012545 processing Methods 0.000 description 13
- 239000000523 sample Substances 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000007123 defense Effects 0.000 description 1
- 230000008260 defense mechanism Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000011897 real-time detection Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种针对Meltdown漏洞精准动态分析检测方法和装置,至少包括以下步骤:步骤S1:系统内核进程运行PEBS;步骤S2:内核捕捉到由用户进程触发的SegFault信号;步骤S3:在虚拟机审判的单步执行模拟中,判断是否有被标记为符号量的寄存器数值被等比放大预设倍数,且以偏移量的形式参与另一条指令中的基址加变址的寻址操作;步骤S4:判断是否报告一级Meltdown漏洞预警;步骤S5:系统内核进程读取位于内核的环形缓冲器中PEBS的监控数据,判断是否报告二级Meltdown漏洞预警;确认熔断攻击;反之,则确认为非熔断攻击。本发明通过软硬件结合的方式,对Meltdown漏洞进行高精确度的实时入侵行为检测,检测对象为Meltdown漏洞利用在实施时的关键动态特征。
Description
技术领域
本发明涉及一种漏洞动态分析和检测技术领域,尤其涉及一种针对Meltdown漏洞精准动态分析检测方法和装置。
背景技术
随着移动互联网和云计算技术的迅猛发展,越来越多的数据在云环境下进行存储、共享和计算,云环境下的数据安全也逐渐成为学术界以及工业界关注的热点问题。作为基于密码学的隐私保护技术的一种方案,可信执行环境(Trusted executionenvironment,TEE)是基于硬件安全的CPU实现了基于内存隔离的安全计算,可在保证计算效率的前提下完成隐私保护的计算。TEE是一种通过软硬件方法、在计算机硬件中构建一个隔离的安全区域,以保证该区域内部加载的程序和数据在机密性和完整性上得到保护。
但是目前针对TEE的攻击研究方兴未艾,主要针对各具体TEE实现的安全逻辑缺陷、或者利用硬件上存在的一些漏洞、进而发起的侧信道攻击(Side Channel Attacks,SCA)。其中Meltdown漏洞(又称“熔断”漏洞),就利用了现代微体系结构设计中的乱序执行(out-of-order execution)这一硬件加速机制,使得低权限进程可以短暂地获得对高权限内存的“临时”访问并残留下相应的CPU缓存痕迹、进而允许攻击者通过检测缓存痕迹模式实现泄露操作系统中特权数据的目的。为了提高处理性能,现代CPU架构大多都支持乱序执行机制,使得Meltdown漏洞这一无需特殊权限即可利用的弱点影响范围极广、危害特别严重,尤其是可以被用以破坏当前新兴的TEE技术所依赖的基于硬件的安全性基础。因此,信息产业亟需建立对Meltdown漏洞入侵行为的有效的实时检测机制。
为此,我们提出一种针对Meltdown漏洞精准动态分析检测方法和装置。
发明内容
本发明的目的在于提供一种针对Meltdown漏洞精准动态分析检测方法和装置,解决了现有技术中如何基于自动模拟机的Meltdown漏洞实时检测方法,以解决现有针对Meltdown漏洞的防御技术实时性不强、漏报率和鲁棒性均较差的问题。
本发明采用的技术方案如下:
一种针对Meltdown漏洞精准动态分析检测方法,至少包括以下步骤:
步骤S1:系统内核进程运行PEBS,监控内存访问指令所引发的CPU缓存失效事件数据,PEBS将记录到的所述CPU缓存失效事件数据存入位于内核的环形缓冲器内;
步骤S2:内核捕捉到由用户进程触发的SegFault信号,则开启QEMU模拟器进行虚拟机审判,并在所述QEMU模拟器的初始化时将SegFault触发现场的寄存器快照中所有数值为零的寄存器标记为符号量;
步骤S3:在虚拟机审判的单步执行模拟中,判断是否有被标记为符号量的寄存器数值被等比放大预设倍数,且以偏移量的形式参与另一条指令中的基址加变址的寻址操作;
步骤S4:判断是否报告一级Meltdown漏洞预警;
步骤S5:系统内核进程读取位于内核的环形缓冲器中PEBS的监控数据,判断是否报告二级Meltdown漏洞预警;确认熔断攻击;反之,则确认为非熔断攻击。
进一步地,步骤S2中所述虚拟机审判具体为:系统内核进程通过捕获SegFault异常数据获取触发SegFault信号的IP寄存器里的指令线性地址,同时将下一条指令线性地址传输给系统内搭载的QEMU模拟器,从当前位置开始对后续预设数量的指令进行单步执行模拟。
进一步地,步骤S3具体为:在虚拟机审判的单步执行模拟中,观察每一条指令执行结束后的CPU寄存器状态变化,判断是否有被标记为符号量的寄存器数值被等比放大预设倍数,且以偏移量的形式参与另一条指令中的基址加变址的寻址操作,当有,则进入步骤S4;反之,则确认为非熔断攻击。
进一步地,步骤S3中等比放大预设倍数在512-4096倍。
进一步地,步骤S4具体为:当步骤S3中执行的指令总数在Meltdown攻击触发到因SegFault而导致乱序执行结果被回滚时为止所执行的指令总数以内,则停止虚拟机审判;计算当前虚拟机审判最后一步所涉及的基址加变址的寻址操作在预设符号量取值范围内的多个潜在访问地址,并报告一级Meltdown漏洞预警。
进一步地,步骤S5具体为:系统内核进程读取位于内核的环形缓冲器中PEBS的监控数据,在PEBS的监控数据中从最近一条记录开始反向检查是否存在同一条指令多次触发缓存失效事件,当存在,则对所有涉及到该同一指令的PEBS的监控数据所包含的CPU寄存器状态快照进行检查、根据各寄存器数值推断触发该次PEBS记录的指令执行访问地址;当该访问地址在步骤S5中预设符号量取值范围内的多个潜在访问地址的范围内,则报告二级Meltdown漏洞预警;确认熔断攻击;反之,则确认为非熔断攻击。
进一步地,还包括基于TEE的微信任根模块,所述微信任根模块用于任意可信应用在TEE环境内执行时抢先启动,并对部署在系统内核中的防御载荷进行完整性度量,确保防御载荷本身未受到篡改或破坏后再将控制转交至可信应用,当完整性度量出现异常,则所述微信任根模块阻止可信应用的执行并发起警告。
本发明还提供一种针对Meltdown漏洞精准动态分析检测方法装置,包括存储器和一个或多个处理器,所述存储器中存储有可执行代码,所述一个或多个处理器执行所述可执行代码时,用于实现上述任一项所述的一种针对Meltdown漏洞精准动态分析检测方法。
本发明还提供一种计算机可读存储介质,其特征在于,其上存储有程序,该程序被处理器执行时,实现上述任一项所述的一种针对Meltdown漏洞精准动态分析检测方法。
本发明的有益效果至少包括:
1、本发明通过软硬件结合的方式,对Meltdown漏洞进行高精确度的实时入侵行为检测,检测对象为Meltdown漏洞利用在实施时的关键动态特征,无法通过改变攻击策略或混淆漏洞利用代码的予以规避,较之现有相关技术有显著的创新性。
2、本发明支持以TEE为信任根的完整性策略、能够为TEE环境应用提供有效的抗Meltdown攻击能力,增强基于TEE的可信计算体系的总体安全性。
3、本发明检测机制在系统执行过程中没有SegFault发生时仅引入极微小的性能开销,而在SegFault发生时的执行开销同样较小,性能指标显著优于当前主流操作系统所采用的KPTI等被动防御机制。
附图说明
图1为本发明一种针对Meltdown漏洞精准动态分析检测方法的流程示意图;
图2为实施例的流程示意图;
图3为本发明一种针对Meltdown漏洞精准动态分析检测装置的结构示意图。
具体实施方式
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,一种针对Meltdown漏洞精准动态分析检测方法,至少包括以下步骤:
步骤S1:系统内核进程运行PEBS,监控内存访问指令所引发的CPU缓存失效事件数据,PEBS将记录到的所述CPU缓存失效事件数据存入位于内核的环形缓冲器内;
步骤S2:内核捕捉到由用户进程触发的SegFault信号,则开启QEMU模拟器进行虚拟机审判,并在所述QEMU模拟器的初始化时将SegFault触发现场的寄存器快照中所有数值为零的寄存器标记为符号量;
所述虚拟机审判具体为:系统内核进程通过捕获SegFault异常数据获取触发SegFault信号的IP寄存器里的指令线性地址,同时将下一条指令线性地址传输给系统内搭载的QEMU模拟器,从当前位置开始对后续预设数量的指令进行单步执行模拟。
步骤S3:在虚拟机审判的单步执行模拟中,判断是否有被标记为符号量的寄存器数值被等比放大预设倍数,且以偏移量的形式参与另一条指令中的基址加变址的寻址操作;
步骤S3具体为:在虚拟机审判的单步执行模拟中,观察每一条指令执行结束后的CPU寄存器状态变化,判断是否有被标记为符号量的寄存器数值被等比放大预设倍数,且以偏移量的形式参与另一条指令中的基址加变址的寻址操作,当有,则进入步骤S4;反之,则确认为非熔断攻击。
步骤S3中等比放大预设倍数在512-4096倍。
步骤S4:判断是否报告一级Meltdown漏洞预警;
步骤S4具体为:当步骤S3中执行的指令总数在Meltdown攻击触发到因SegFault而导致乱序执行结果被回滚时为止所执行的指令总数以内,则停止虚拟机审判;计算当前虚拟机审判最后一步所涉及的基址加变址的寻址操作在预设符号量取值范围内的多个潜在访问地址,并报告一级Meltdown漏洞预警。
步骤S5:系统内核进程读取位于内核的环形缓冲器中PEBS的监控数据,判断是否报告二级Meltdown漏洞预警;确认熔断攻击;反之,则确认为非熔断攻击。
步骤S5具体为:系统内核进程读取位于内核的环形缓冲器中PEBS的监控数据,在PEBS的监控数据中从最近一条记录开始反向检查是否存在同一条指令多次触发缓存失效事件,当存在,则对所有涉及到该同一指令的PEBS的监控数据所包含的CPU寄存器状态快照进行检查、根据各寄存器数值推断触发该次PEBS记录的指令执行访问地址;当该访问地址在步骤S5中预设符号量取值范围内的多个潜在访问地址的范围内,则报告二级Meltdown漏洞预警;确认熔断攻击;反之,则确认为非熔断攻击。
还包括基于TEE的微信任根模块,所述微信任根模块用于任意可信应用在TEE环境内执行时抢先启动,并对部署在系统内核中的防御载荷进行完整性度量,确保防御载荷本身未受到篡改或破坏后再将控制转交至可信应用,当完整性度量出现异常,则所述微信任根模块阻止可信应用的执行并发起警告。
实施例:由于Meltdown漏洞是硬件加速机制所造成的,使得对该漏洞的利用所使用的攻击代码必须执行一个相对固定的隐蔽信道(covert channel)指令序列,如下所示:
1、movb(%[address]),%%al
2、sh12%%rax
3、movq(%%rbx,%%rax,0x1),%%rbx
其中,上述代码的第1行对address所代指的特权地址进行非法访问,将其中的字节数据放入寄存器al(寄存器rax的低8位);第2行,将rax寄存器值左移12位(扩大4096倍);第3行令非法获取到的特权数据通过寄存器rax、以地址偏移量的形式参与寻址,访问由(rbx+rax)所代指的新目标地址,从而在该目标地址处产生后续可探查的CPU缓存痕迹。尽管上述隐蔽信道的具体寄存器分配(rax、rbx等)可能根据具体编译场景而改变,但该指令序列本身很难通过花指令、冗余代码或其他方式进行代码混淆,这是由于Meltdown漏洞仅在非常有限的CPU周期数内有效,代码混淆将不可避免地造成隐蔽信道代码量过大、无法在如此有限的周期数内执行完毕。Meltdown漏洞的另一个关键特征在于:为了使得被泄露的内存内容可以通过CPU缓存侧信道的手段被探知,前述代码序列中的第3行所访问的目标被设定为一个具有256个页面的探查表(probe table),且取决于Meltdown漏洞所泄露的具体字节内容(0~255)、前述第3行将访问探查表中的对应页面,使得后续使用CPU缓存侧信道检测该探查表时,有且仅有一个页面会得到缓存命中的结果——这意味着:即使攻击者仅使用Meltdown漏洞探查1个字节的特权数据,也必须执行256次CPU缓存侧信道并触发至少255次缓存未命中,且这些侧信道扫描势必与隐蔽信道访问相同的地址范围(即一个由256个内存页面组成的“探测表”)。
具体地,一种针对Meltdown漏洞精准动态分析检测方法,至少包括以下步骤:
步骤S1:系统内核进程运行PEBS,监控内存访问指令所引发的CPU缓存失效事件数据,PEBS将记录到的所述CPU缓存失效事件数据存入位于内核的环形缓冲器内;
在Linux系统内核中新建内核进程,通过该进程运行x86/64指令集所支持的高精度性能检测功能(Precise Event-Based Sampling,PEBS)会将记录到的CPU缓存失效事件数据存入位于内核的ring buffer,而内核进程则可以由此获取到每个具体的PEBS事件所对应的触发进程ID、CPU核心ID、时间戳、和触发指令线性地址,寄存器值等信息,用于后续分析。
步骤S2:内核捕捉到由用户进程触发的SegFault信号,则开启QEMU模拟器进行虚拟机审判,并在所述QEMU模拟器的初始化时将SegFault触发现场的寄存器快照中所有数值为零的寄存器标记为符号量;
所述虚拟机审判具体为:系统内核进程通过捕获SegFault异常数据获取触发SegFault信号的IP寄存器里的指令线性地址,同时将下一条指令线性地址传输给系统内搭载的QEMU模拟器,从当前位置开始对后续预设数量的指令进行单步执行模拟。
对Linux系统内核的SegFault信号进行处理,利用SegFault现场快照捕获触发该信号的进程和线性地址,同时将下一条指令地址传给Linux内搭载的QEMU机器模拟器,从该位置开始对后续一定数量的指令进行单步执行模拟。本发明将该过程称为“虚拟机审判”。
步骤S3:在虚拟机审判的单步执行模拟中,判断是否有被标记为符号量的寄存器数值被等比放大预设倍数,且以偏移量的形式参与另一条指令中的基址加变址的寻址操作;
步骤S3具体为:在虚拟机审判的单步执行模拟中,观察每一条指令执行结束后的CPU寄存器状态变化,判断是否有被标记为符号量的寄存器数值被等比放大预设倍数,且以偏移量的形式参与另一条指令中的基址加变址的寻址操作,当有,则进入步骤S4;反之,则确认为非熔断攻击。
步骤S3中等比放大预设倍数在512-4096倍。
步骤S4:判断是否报告一级Meltdown漏洞预警;
步骤S4具体为:当步骤S3中执行的指令总数在Meltdown攻击触发到因SegFault而导致乱序执行结果被回滚时为止所执行的指令总数以内,则停止虚拟机审判;计算当前虚拟机审判最后一步所涉及的基址加变址的寻址操作在预设符号量取值范围内的多个潜在访问地址,并报告一级Meltdown漏洞预警。
作为一种硬件漏洞,Meltdown攻击在漏洞窗口内仅能执行有限数量的指令,窗口大小可能受到具体硬件性能的影响。设该窗口值(即Meltdown攻击触发到因SegFault而导致乱序执行结果被回滚时为止所执行的指令总数)为N,则若本发明在虚拟机审判过程中观察到步骤4所述现象在N步以内发生(对应Meltdown漏洞的第一个关键特征,即不可混淆的隐蔽信道指令序列),则审判立刻终止。此时,本发明进一步假设该次审判所涉及的符号量之取值范围为0~255,并计算出该次审判最后一步所涉及的(相对)基址加变址寻址操作在这一假定的符号量取值范围前提下的可能地址范围,称为“雷区”。最后,还将报告一级Meltdown漏洞预警。
步骤S5:系统内核进程读取位于内核的环形缓冲器中PEBS的监控数据,判断是否报告二级Meltdown漏洞预警;确认熔断攻击;反之,则确认为非熔断攻击。
步骤S5具体为:系统内核进程读取位于内核的环形缓冲器中PEBS的监控数据,在PEBS的监控数据中从最近一条记录开始反向检查是否存在同一条指令多次触发缓存失效事件,当存在,则对所有涉及到该同一指令的PEBS的监控数据所包含的CPU寄存器状态快照进行检查、根据各寄存器数值推断触发该次PEBS记录的指令执行访问地址;当该访问地址在步骤S5中预设符号量取值范围内的多个潜在访问地址的范围内,则报告二级Meltdown漏洞预警;确认熔断攻击;反之,则确认为非熔断攻击。
若步骤S4报告了一级Meltdown漏洞预警,则通知步骤S1所述内核进程对ringbuffer中保留的PEBS监控数据、从最近一条记录开始反向进行检查,直至观察是否存在同一条内存加载指令反复触发缓存未命中性能事件的情况。一旦发现符合该条件的指令,则本发明对所有涉及相关指令的PEBS记录所包含的CPU寄存器状态快照进行检查、根据各寄存器数值推断触发该次PEBS记录的指令执行可能访问的地址——若潜在访问地址恰好位于步骤S4中虚拟机审判所判定的“雷区”范围内(对应Meltdown漏洞的第二个关键特征,即不可避免的cache侧信道扫描且扫描区域与隐蔽信道共享),则本发明将报告二级Meltdown漏洞预警。
根据上述步骤,经本发明改造的Linux系统内核若捕捉到一级Meltdown漏洞预警,则判断引发该预警的SegFault属于疑似Meltdown漏洞利用的高危行为;如果两个Meltdown漏洞预警均触发,则认为捕捉到了Meltdown漏洞利用的一个实例。
本发明还包括基于TEE的微信任根模块,所述微信任根模块用于任意可信应用在TEE环境内执行时抢先启动,并对部署在系统内核中的防御载荷(如,经过扩展的SegFault处理函数、PEBS监控组件等)进行完整性度量,确保防御载荷本身未受到篡改或破坏后再将控制转交至可信应用,当完整性度量出现异常,则所述微信任根模块阻止可信应用的执行并发起警告。
如下汇编代码实例:
步骤S2:利用perf工具,为系统内核进程运行PEBS,监控内存访问指令所引发的CPU缓存失效事件数据,同时PEBS会将记录到的CPU缓存失效事件数据存入位于内核的环形缓冲器内,以供步骤S5复查;
步骤S2:在上述代码片段中,当运行到代码⑤时,由于访问的[addr]为非法地址,则会触发SegFault信号,且此时该寄存器数值为零。开启QEMU模拟器,并进行初始化操作,具体为将SegFault触发现场的寄存器快照中所有数值为零的寄存器标记为符号量;
步骤S3:开启QEMU的单步执行模拟,当单步执行指令至上述代码片段中的代码⑥时,检测到有被标记为符号量的寄存器数值被等比放大4096倍(左移12位),并将其存入寄存器rax;继续单步执行,当执行指令至上述代码片段中的代码⑧时,检测到该等比放大后的寄存器rax数值,以偏移量的形式进行了基址加变址的寻址操作,即[target+rax],最后将其存入寄存器rbx;
步骤S4:观测QEMU,因步骤S3中执行的指令总数<=Meltdown攻击触发到因SegFault而指令回滚的指令总数,故停止QEMU的虚拟机审判操作;此时计算当前虚拟机审判最后一步所涉及的寻址操作在预设符号量取值范围内的多个访问地址,此处计算结果为address~address+0x32,并将其设置为“雷区”范围。计算完毕后,报告一级Meltdown漏洞预警。
情况一:
步骤S5(1):由于步骤S4中报告了一级Meltdown漏洞预警,系统通知步骤S1所述内核进程对保留的PEBS做数据监控,并自动从最近一条记录开始反向进行检查。当检查到某指令反复触发CPU缓存失效事件后,选定此条指令,并推断出该次PEBS记录的指令执行访问地址为address+0x10,对比步骤S4中的“雷区”范围,可知该潜在访问地址恰好位于该范围内,故可报告二级Meltdown漏洞预警,即确认为熔断攻击。
情况二:
步骤S5(2):由于步骤S4中报告了一级Meltdown漏洞预警,系统通知步骤S1所述内核进程对保留的PEBS做数据监控,并自动从最近一条记录开始反向进行检查。当检查到某指令反复触发CPU缓存失效事件后,选定此条指令,并推断出该次PEBS记录的指令执行访问地址为address+0x33,对比步骤S4中的“雷区”范围,可知该潜在访问地址不位于该范围内,故可知不存在熔断攻击。
与前述一种针对Meltdown漏洞精准动态分析检测方法的实施例相对应,本发明还提供了一种针对Meltdown漏洞精准动态分析检测检测装置的实施例。
参见图3,本发明实施例提供的一种针对Meltdown漏洞精准动态分析检测装置,包括存储器和一个或多个处理器,所述存储器中存储有可执行代码,所述一个或多个处理器执行所述可执行代码时,用于实现上述实施例中的一种针对Meltdown漏洞精准动态分析检测方法。
本发明一种针对Meltdown漏洞精准动态分析检测装置的实施例可以应用在任意具备数据处理能力的设备上,该任意具备数据处理能力的设备可以为诸如计算机等设备或装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在任意具备数据处理能力的设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图3所示,为本发明一种针对Meltdown漏洞精准动态分析检测装置所在任意具备数据处理能力的设备的一种硬件结构图,除了图3所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的任意具备数据处理能力的设备通常根据该任意具备数据处理能力的设备的实际功能,还可以包括其他硬件,对此不再赘述。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本发明实施例还提供一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现上述实施例中的一种针对Meltdown漏洞精准动态分析检测方法。
所述计算机可读存储介质可以是前述任一实施例所述的任意具备数据处理能力的设备的内部存储单元,例如硬盘或内存。所述计算机可读存储介质也可以是任意具备数据处理能力的设备的外部存储设备,例如所述设备上配备的插接式硬盘、智能存储卡(SmartMediaCard,SMC)、SD卡、闪存卡(FlashCard)等。进一步的,所述计算机可读存储介质还可以既包括任意具备数据处理能力的设备的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述任意具备数据处理能力的设备所需的其他程序和数据,还可以用于暂时地存储已经输出或者将要输出的数据。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种针对Meltdown漏洞精准动态分析检测方法,其特征在于,至少包括以下步骤:
步骤S1:系统内核进程运行PEBS,监控内存访问指令所引发的CPU缓存失效事件数据,PEBS将记录到的所述CPU缓存失效事件数据存入位于内核的环形缓冲器内;
步骤S2:内核捕捉到由用户进程触发的SegFault信号,则开启QEMU模拟器进行虚拟机审判,并在所述QEMU模拟器的初始化时将SegFault触发现场的寄存器快照中所有数值为零的寄存器标记为符号量;
步骤S3:在虚拟机审判的单步执行模拟中,判断是否有被标记为符号量的寄存器数值被等比放大预设倍数,且以偏移量的形式参与另一条指令中的基址加变址的寻址操作;
步骤S4:判断是否报告一级Meltdown漏洞预警;
步骤S5:系统内核进程读取位于内核的环形缓冲器中PEBS的监控数据,判断是否报告二级Meltdown漏洞预警;确认熔断攻击;反之,则确认为非熔断攻击。
2.根据权利要求1所述的一种针对Meltdown漏洞精准动态分析检测方法,其特征在于,步骤S2中所述虚拟机审判具体为:系统内核进程通过捕获SegFault异常数据获取触发SegFault信号的IP寄存器里的指令线性地址,同时将下一条指令线性地址传输给系统内搭载的QEMU模拟器,从当前位置开始对后续预设数量的指令进行单步执行模拟。
3.根据权利要求1所述的一种针对Meltdown漏洞精准动态分析检测方法,其特征在于,步骤S3具体为:在虚拟机审判的单步执行模拟中,观察每一条指令执行结束后的CPU寄存器状态变化,判断是否有被标记为符号量的寄存器数值被等比放大预设倍数,且以偏移量的形式参与另一条指令中的基址加变址的寻址操作,当有,则进入步骤S4;反之,则确认为非熔断攻击。
4.根据权利要求3所述的一种针对Meltdown漏洞精准动态分析检测方法,其特征在于,步骤S3中等比放大预设倍数在512-4096倍。
5.根据权利要求1所述的一种针对Meltdown漏洞精准动态分析检测方法,其特征在于,步骤S4具体为:当步骤S3中执行的指令总数在Meltdown攻击触发到因SegFault而导致乱序执行结果被回滚时为止所执行的指令总数以内,则停止虚拟机审判;计算当前虚拟机审判最后一步所涉及的基址加变址的寻址操作在预设符号量取值范围内的多个潜在访问地址,并报告一级Meltdown漏洞预警。
6.根据权利要求1所述的一种针对Meltdown漏洞精准动态分析检测方法,其特征在于,步骤S5具体为:系统内核进程读取位于内核的环形缓冲器中PEBS的监控数据,在PEBS的监控数据中从最近一条记录开始反向检查是否存在同一条指令多次触发缓存失效事件,当存在,则对所有涉及到该同一指令的PEBS的监控数据所包含的CPU寄存器状态快照进行检查、根据各寄存器数值推断触发该次PEBS记录的指令执行访问地址;当该访问地址在步骤S5中预设符号量取值范围内的多个潜在访问地址的范围内,则报告二级Meltdown漏洞预警;确认熔断攻击;反之,则确认为非熔断攻击。
7.根据权利要求1所述的一种针对Meltdown漏洞精准动态分析检测方法,其特征在于,还包括基于TEE的微信任根模块,所述微信任根模块用于任意可信应用在TEE环境内执行时抢先启动,并对部署在系统内核中的防御载荷进行完整性度量,确保防御载荷本身未受到篡改或破坏后再将控制转交至可信应用,当完整性度量出现异常,则所述微信任根模块阻止可信应用的执行并发起警告。
8.一种针对Meltdown漏洞精准动态分析检测方法装置,其特征在于,包括存储器和一个或多个处理器,所述存储器中存储有可执行代码,所述一个或多个处理器执行所述可执行代码时,用于实现权利要求1-7中任一项所述的一种针对Meltdown漏洞精准动态分析检测方法。
9.一种计算机可读存储介质,其特征在于,其上存储有程序,该程序被处理器执行时,实现权利要求1-7中任一项所述的一种针对Meltdown漏洞精准动态分析检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211622694.3A CN116226859A (zh) | 2022-12-16 | 2022-12-16 | 一种针对Meltdown漏洞精准动态分析检测方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211622694.3A CN116226859A (zh) | 2022-12-16 | 2022-12-16 | 一种针对Meltdown漏洞精准动态分析检测方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116226859A true CN116226859A (zh) | 2023-06-06 |
Family
ID=86581407
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211622694.3A Withdrawn CN116226859A (zh) | 2022-12-16 | 2022-12-16 | 一种针对Meltdown漏洞精准动态分析检测方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116226859A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106850582A (zh) * | 2017-01-05 | 2017-06-13 | 中国电子科技网络信息安全有限公司 | 一种基于指令监控的apt高级威胁检测方法 |
CN109858239A (zh) * | 2019-01-16 | 2019-06-07 | 四川大学 | 一种动静态结合的容器内cpu漏洞攻击程序检测方法 |
CN110851836A (zh) * | 2019-10-17 | 2020-02-28 | 天津大学 | 一种面向Meltdown攻击的主动防御方法 |
CN111444509A (zh) * | 2018-12-27 | 2020-07-24 | 北京奇虎科技有限公司 | 基于虚拟机实现的cpu漏洞检测方法及系统 |
KR20210072342A (ko) * | 2019-12-09 | 2021-06-17 | 충남대학교산학협력단 | 소스코드 내 cpu 취약점 탐색 방법 |
-
2022
- 2022-12-16 CN CN202211622694.3A patent/CN116226859A/zh not_active Withdrawn
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106850582A (zh) * | 2017-01-05 | 2017-06-13 | 中国电子科技网络信息安全有限公司 | 一种基于指令监控的apt高级威胁检测方法 |
CN111444509A (zh) * | 2018-12-27 | 2020-07-24 | 北京奇虎科技有限公司 | 基于虚拟机实现的cpu漏洞检测方法及系统 |
CN109858239A (zh) * | 2019-01-16 | 2019-06-07 | 四川大学 | 一种动静态结合的容器内cpu漏洞攻击程序检测方法 |
CN110851836A (zh) * | 2019-10-17 | 2020-02-28 | 天津大学 | 一种面向Meltdown攻击的主动防御方法 |
KR20210072342A (ko) * | 2019-12-09 | 2021-06-17 | 충남대학교산학협력단 | 소스코드 내 cpu 취약점 탐색 방법 |
Non-Patent Citations (2)
Title |
---|
MORITZ LIPP 等: "Meltdown", HTTP://ARXIV.ORG/ABS/1801.01207, pages 1 - 16 * |
百度安全实验室: "详解Meltdown & Spectre攻击", 网络安全和信息化, no. 02, pages 106 - 108 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11777705B2 (en) | Techniques for preventing memory timing attacks | |
Lipp et al. | {ARMageddon}: Cache attacks on mobile devices | |
Bazm et al. | Cache-based side-channel attacks detection through intel cache monitoring technology and hardware performance counters | |
Gruss et al. | Flush+ Flush: a fast and stealthy cache attack | |
TWI512520B (zh) | 偵測對數位電路之攻擊之系統與方法 | |
CN113412483B (zh) | 具有针对地址探测的增加的阻力的计算设备 | |
CN105488388A (zh) | 一种基于cpu时空隔离机制实现应用软件行为监控系统的方法 | |
CN107301082A (zh) | 一种实现操作系统完整性保护的方法和装置 | |
CN106909835A (zh) | 一种基于cpu时空隔离机制实现内核完整性度量的方法 | |
Briongos et al. | Modeling side-channel cache attacks on aes | |
Tong et al. | Cache side-channel attacks detection based on machine learning | |
Zhang et al. | Implicit hammer: Cross-privilege-boundary rowhammer through implicit accesses | |
Deng et al. | Evaluation of cache attacks on arm processors and secure caches | |
CN104731708A (zh) | 一种Shellcode的动态检测方法 | |
CN116226859A (zh) | 一种针对Meltdown漏洞精准动态分析检测方法和装置 | |
Polychronou et al. | Securing iot/iiot from software attacks targeting hardware vulnerabilities | |
Zhou et al. | The final security problem in IOT: Don’t count on the canary! | |
US20160203341A1 (en) | Method and Circuit Arrangement for Protecting Against Scanning of an Address Space | |
Stewin et al. | Poster: Towards detecting DMA malware | |
Xu et al. | Memory Error Detection Based on Dynamic Binary Translation | |
CN116244697A (zh) | 一种面向Meltdown漏洞的实时入侵行为检测方法和装置 | |
CN113646763B (zh) | shellcode的检测方法及装置 | |
KR102183649B1 (ko) | 커널 무결성 검증 장치 및 그 방법 | |
US10691586B2 (en) | Apparatus and method for software self-test | |
CN114692162A (zh) | 处理器攻击检测方法、处理器及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20230606 |
|
WW01 | Invention patent application withdrawn after publication |