CN107944278A - 一种内核漏洞检测方法及装置 - Google Patents

一种内核漏洞检测方法及装置 Download PDF

Info

Publication number
CN107944278A
CN107944278A CN201711310966.5A CN201711310966A CN107944278A CN 107944278 A CN107944278 A CN 107944278A CN 201711310966 A CN201711310966 A CN 201711310966A CN 107944278 A CN107944278 A CN 107944278A
Authority
CN
China
Prior art keywords
loophole
doubtful
machine code
kernel
function
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.)
Pending
Application number
CN201711310966.5A
Other languages
English (en)
Inventor
刘天
张建新
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Qihoo Technology Co Ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Qihoo Technology Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201711310966.5A priority Critical patent/CN107944278A/zh
Publication of CN107944278A publication Critical patent/CN107944278A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明实施例提供一种内核漏洞检测方法及装置,所述方法包括:获得疑似漏洞函数;获取所述疑似漏洞函数当前对应的第一机器码;将所述第一机器码与预先存储的机器码库进行比对,判断所述疑似漏洞函数是否存在缺陷;如果确定所述疑似漏洞函数存在缺陷,确认所述内核存在内核漏洞;否则,确认所述内核不存在内核漏洞。如此,通过判断疑似漏洞函数是否存在缺陷的方式来确定内核是否存在内核漏洞,无需构造疑似内核漏洞的输入参数,能够同时提高检测内核漏洞的速度和准确度。

Description

一种内核漏洞检测方法及装置
技术领域
本发明涉及计算机安全领域,尤其涉及一种内核漏洞检测方法及装置。
背景技术
内核是操作系统的核心,负责管理系统的进程、内存、设备驱动程序、文件和网路系统等,决定着系统的性能和稳定性。在内核出现内核漏洞时,如果该内核漏洞被非法分子利用,很可能就会出现数据丢失或篡改、用户隐私泄露等问题,从而,容易导致给用户带来经济、精神损失。为了防止内核漏洞被恶意利用,通常需要不定期的检测内核漏洞,以便开发人员及时修复。
目前,传统的内核漏洞检测方法主要是在内核疑似出现内核漏洞后,就会获得对应的疑似漏洞函数,然后,通过对该疑似漏洞函数构造所需的输入参数来触发漏洞代码执行,以便确定内核是否存在内核漏洞。但是,在执行上述内核漏洞检测方法的过程中,发明人发现现有技术中至少存在如下问题:对于疑似漏洞函数的输入参数比较复杂的情况,如某些输入参数里边包含几个、几十个、甚至是几百个子项的时候,很难构造出一个合理的输入参数来触发到疑似漏洞代码执行,此时,就无法检测出该内核漏洞是否存在,使得内核漏洞的检测不够准确。
发明内容
有鉴于此,本发明实施例提供一种内核漏洞检测方法及装置,主要目的在于在检测内核漏洞时无需构造疑似内核漏洞的输入参数,能够有效提高检测内核漏洞的准确度。
为达到上述目的,本发明实施例主要提供如下技术方案:
第一方面,本发明实施例提供一种内核漏洞检测方法,所述方法包括:获得疑似漏洞函数;获取所述疑似漏洞函数当前对应的第一机器码;将所述第一机器码与预先存储的机器码库进行比对,判断所述疑似漏洞函数是否存在缺陷;如果确定所述疑似漏洞函数存在缺陷,确认所述内核存在内核漏洞;否则,确认所述内核不存在内核漏洞。
第二方面,本发明实施例提供一种内核漏洞检测装置,所述装置包括:获得单元、第一获取单元、判断单元以及确认单元,其中,所述获得单元,用于获得疑似漏洞函数;所述第一获取单元,用于获取所述疑似漏洞函数当前对应的第一机器码;所述判断单元,用于将所述第一机器码和预先存储的机器码库进行比对,判断所述疑似漏洞函数是否存在缺陷;所述确认单元,用于如果确定所述疑似漏洞函数存在缺陷,确认所述内核存在内核漏洞;否则,确认所述内核不存在内核漏洞。
第三方面,本发明实施例提供一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述内核漏洞检测方法。
第四方面,本发明实施例提供一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述内核漏洞检测方法。
本发明实施例提供的一种内核漏洞检测方法及装置,在获得疑似漏洞函数后,就可以获取疑似漏洞函数当前对应的第一机器码,然后,将第一机器码和预先存储的机器码库进行比对,来判断疑似漏洞函数是否存在缺陷;最后,如果确定疑似漏洞函数存在缺陷,则可以确认内核存在内核漏洞;如果确定疑似漏洞函数不存在缺陷,则可以确认内核不存在内核漏洞。这样,在内核疑似出现内核漏洞时,由于是通过判断疑似漏洞函数是否存在缺陷的方式,来确认内核漏洞是否存在的,就无需构造疑似内核漏洞的输入参数来触发漏洞代码执行,那么,就不会出现输入参数构造失败或者构造有误导致无法确认内核是否存在内核漏洞的情况,从而,能够有效提高检测内核漏洞的准确度和速度。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例一中的内核漏洞检测方法的流程示意图;
图2示出了本发明实施例二中的内核漏洞检测装置的结构示意图;
图3示出了本发明实施例三中的内核漏洞检测设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
实施例一
本发明实施例提供一种内核漏洞检测方法,该内核漏洞检测方法可以应用于各种需要进行内核漏洞检测的场合,如恶意代码分析、漏洞挖掘、实时监控应用安全漏洞、监控网站后门、拦截恶意请求等。
图1为本发明实施例一中的内核漏洞检测方法的流程示意图,参见图1所示,该内核漏洞检测方法包括:
S101:获得疑似漏洞函数;
具体地,在内核疑似出现内核漏洞时,表明内核可能存在内核漏洞,也可能不存在内核漏洞,此时,就可以获得对应的疑似漏洞函数。也就是说,该疑似漏洞函数可能会触发内核漏洞,也可能不会触发内核漏洞。当该疑似漏洞函数能够触发内核漏洞时,该疑似漏洞函数就是该内核漏洞所对应的真正的漏洞函数。
在本发明其它实施例中,为了获得疑似漏洞函数,S101可以包括:在内核疑似出现内核漏洞时,获得告警数据;将告警数据中携带的问题函数确定为疑似漏洞函数。
在实际应用中,由于不可控制的输入变量进入到内核执行流程中的某个疑似漏洞函数,如危险函数、自定义函数等时,可能会触发内核疑似出现内核漏洞,此时,就会生成对应的告警数据,内核会通过该告警数据来指示内核处于非正常状态,内核疑似出现了内核漏洞。此时,内核为错误运行状态,该告警数据所警示的内核漏洞可能是真实存在的,也可能是不存在,需要进一步去检测。这样,在内核疑似出现内核漏洞时获得了告警数据以后,为了判断内核是否存在内核漏洞,就可以将告警数据中携带的问题函数确定为疑似漏洞函数,从而,就获得了疑似漏洞函数。
在实际应用中,为了便于自动确认内核漏洞的真实性、或者便于用户、开发人员等修复漏洞等,告警数据可以包括:告警时间、告警级别、问题函数、问题类型、问题参数、状态位、SERVER数据以及告警分析处理建议等信息。
当然,还可以通过其它方式,基于告警数据来获取对应的疑似漏洞函数,如根据告警数据中所指示的问题参数,查找调用该问题参数的问题函数,然后,将该问题函数确定为所需的疑似漏洞函数。这里,本发明实施例不作具体限定。
在本发明另一实施例中,在S101之前,上述内核漏洞检测方法还可以包括:获取内核非疑似出现内核漏洞时所对应的二进制文件;将内核所对应的二进制文件中的所有二进制代码确定为预先存储的机器码库。
在实际应用中,为了获得预先存储的机器码库,可以获取内核正常运行,即内核非疑似出现内核漏洞,也就是内核未出现内核漏洞时,该内核所对应的二进制文件,然后,由于该二进制文件存储有内核中所有函数的正常运行时的二进制代码,因此,可以将内核所对应的二进制文件中的所有二进制代码确定为预先存储的机器码库。从而,通过该预先存储的机器码库,就能够在内核疑似出现内核漏洞时,来判断疑似漏洞函数是否有缺陷,以便进一步确定内核是否存在内核漏洞。
在实际应用中,获取内核未出现内核漏洞时所对应的二进制文件的时机,即生成预先存储的机器码库的时机,可以是在第一次编译内核源代码,获得内核所对应的二进制文件,也可以是在每一次更新内核源代码,重新编译内核源代码,获得内核所对应的二进制文件后,当然,还可以在其它内核正常运行的时候,这里,本发明实施例不做具体限定。
S102:获取疑似漏洞函数当前对应的第一机器码;
这里,第一机器码是指在内核疑似出现内核漏洞时,该疑似漏洞函数的二进制代码。
具体地,在内核运行的过程中,如果内核疑似出现了内核漏洞,为了确认疑似漏洞函数是否有缺陷,就会获取疑似漏洞函数当前所对应的第一机器码。
在具体实施过程中,获取疑似漏洞函数对应的第一机器码的方法,可以且不限于包括以下两种方法。
第一种方法,根据疑似漏洞函数对应的函数地址和函数大小,来获取疑似漏洞函数对应的第一机器码。
这里,该函数地址是指疑似漏洞函数的二进制代码所在的存储区域的首地址(也可以称为起始地址)。函数大小是指该疑似漏洞函数的二进制代码所在的存储区域的大小,可以为该疑似漏洞函数的二进制代码所占的内存空间的大小。
在具体实施过程中,为了获取疑似漏洞函数当前对应的机器码,上述S102可以包括:基于疑似漏洞函数的函数名,获取疑似漏洞函数对应的函数地址以及函数大小;基于函数地址和函数大小,从疑似漏洞函数当前所在的二进制文件中,获取疑似漏洞函数对应的第一机器码。
具体地,在获得了疑似漏洞函数以后,就可以根据该疑似漏洞函数的函数名,获取到该疑似漏洞函数在内存中的函数地址以及该疑似漏洞函数的函数大小,然后,就可以从该疑似漏洞函数当前所在的二进制文件中,从该函数地址开始,读取该函数大小对应的代码,这样,就可以获得疑似漏洞函数对应的第一机器码。
这里,疑似漏洞函数当前所在的二进制文件是指内核疑似出现内核漏洞时,内核所对应的二进制文件。
第二种方法,根据疑似漏洞函数对应的函数地址和疑似漏洞函数的下一个函数的函数地址,来获取疑似漏洞函数对应的第一机器码。
这里,疑似漏洞函数的下一个函数的函数地址是指疑似漏洞函数的下一个函数二进制代码存储区域的首地址。
在实际应用中,疑似漏洞函数的函数名能够表示该疑似漏洞函数二进制代码存储区域的首地址,该疑似漏洞函数的下一个函数的函数名能够表示该下一个函数二进制代码存储区域的首地址,因此,在获得了告警数据对应的疑似漏洞函数以后,就可以根据该疑似漏洞函数的函数名,获取到该疑似漏洞函数在内存中的函数地址,并获取该疑似漏洞函数的下一个函数的函数名,然后,根据该下一个函数的函数名来获取该下一个函数的函数地址,最后,将存储区域中该疑似漏洞函数的函数地址至该下一个函数的函数地址之间的代码块,确定为该疑似漏洞函数对应的第一机器码。这样,就获取到该疑似漏洞函数对应的第一机器码。
当然,除了上述两种方法外,还可以采用其它方法获取疑似漏洞函数对应的第一机器码,如通过疑似漏洞函数的首地址、和末地址(也可以称为终地址),来获取疑似漏洞函数对应的第一机器码。这里,本发明实施例不做具体限定。
S103:将第一机器码与预先存储的机器码库进行比对,判断疑似漏洞函数是否存在缺陷;
具体地,在内核疑似出现内核漏洞时,获得了疑似漏洞函数对应的第一机器码后,为了判断该疑似漏洞函数是否为真正的漏洞函数,以便确定内核是否真正存在内核漏洞,就可以通过将第一机器码与预先存储的机器码库进行比对的方式,来确定疑似漏洞函数是否存在缺陷。如果确定疑似漏洞函数存在缺陷,表明该疑似漏洞函数为漏洞函数,可以触发内核漏洞,此时,执行S104A,确认内核存在内核漏洞;如果确定疑似漏洞函数不存在缺陷,表明该疑似漏洞函数并非是漏洞函数,而是正常函数,不会触发内核漏洞,此时,执行S104B,确认内核不存在内核漏洞。
S104A:确认内核存在内核漏洞;
S104B:确认内核不存在内核漏洞。
在具体实施过程中,将第一机器码和预先存储的机器码库进行比对,判断疑似漏洞函数是否存在缺陷的方法,可以且不限于包括以下两种方法。
第一种方法,通过将疑似漏洞函数对应的当前机器码,即第一机器码与疑似漏洞函数对应的历史机器码,即第二机器码进行比较,来判断该疑似漏洞函数是否存在缺陷。
在本发明其它实施例中,上述S102可以包括:从预先存储的机器码库中,获取疑似漏洞函数对应的第二机器码;判断第一机器码与第二机器码是否相同;如果第一机器码与第二机器码相同,确定疑似漏洞函数不存在缺陷;否则,确定疑似漏洞函数存在缺陷。
这里,第一机器码是指在内核疑似出现内核漏洞时所获取的疑似漏洞函数的当前机器码。第二机器码是指在内核非疑似出现内核漏洞,即内核并未出现内核漏洞时所获取的疑似漏洞函数的历史机器码。
在实际应用中,内核由很多的函数组成,在内核正常运行时,每个函数会按照预设的代码来运行,来实现每个函数各自对应的功能。但是,在内核出现内核漏洞时,该内核漏洞对应的疑似漏洞函数就不会按照预设的代码来运行,而是会改变程序原有正常的行为,而去运行本不该运行的代码,从而,实现其它功能。因此,在实际应用中,在内核疑似出现内核漏洞时,如果内核是真的出现了内核漏洞,此时,由于内核是存在内核漏洞的,疑似漏洞函数对应的第一机器码与疑似漏洞函数在内核非疑似出现内核漏洞时对应的第二机器码是有很多不同的,如函数长度不同、指令内容不同、字符串特征不同、栈空间不同等。
在具体实施过程中,上述判断第一机器码与第二机器码是否相同的步骤,可以包括:对第一机器码进行特征分析,获得第一机器码的二进制特征;对第二机器码进行特征分析,获得第二机器码的二进制特征;如果第一机器码的二进制特征与第二机器码的二进制特征相同,确定第一机器码与第二机器码是相同的;否则,确定第一机器码与第二机器码是不相同的。
这里,二进制特征可以为指令长度,也可以为指令内容,当然,还可以为其它,如字符串特征、栈空间等,这里,本发明实施例不做具体限定。
具体地,为了便捷地判断第一机器码和第二机器码是否相同,可以分别对第一机器码和第二机器码进行特征分析,获取第一机器码和第二机器码各自对应的二进制特征,如果第一机器码的二进制特征与第二机器码的二进制特征是相同的,则可以确定第一机器码与第二机器码是相同的;相应地,如果第一机器码的二进制特征与第二机器码的二进制特征是不相同的,则可以确定第一机器码与第二机器码是不相同的。
当然,除了通过比较第一机器码和第二机器码的二进制特征的方法,还可以采用其它方法,如通过逐条比较第一机器码和第二机器码中的代码语句的方式,来确定两者是否相同。这里,本发明实施例不做具体限定。
第二种方法,通过在预先存储的机器码库中,能不能查找到与第一机器码相匹配的第三机器码,来判断该疑似漏洞函数是否存在缺陷。
在本发明其它实施例中,上述S102可以包括:在预先存储的机器码库中查找第一机器码;如果在预先存储的机器码库中查找到与第一机器码相匹配的第三机器码,表明第一机器码与预先存储的机器码库是相匹配的,此时,可以确定疑似漏洞函数不存在缺陷,从而,也就可以确认内核存在内核漏洞;如果在预先存储的机器码库中并未查找到与第一机器码相匹配的第三机器码,表明第一机器码与预先存储的机器码库是不匹配的,此时,可以确定疑似漏洞函数存在缺陷,从而,也就可以确认内核不存在内核漏洞。
当然,除了上述两种方法外,还可以采用其它方法来判断疑似漏洞函数是否有缺陷。这里,本发明实施例不做具体限定。
至此,便完成了进行内核漏洞检测的过程。
由上述内容可知,本发明实施例所提供的内核漏洞检测方法,在获得疑似漏洞函数后,就可以获取疑似漏洞函数当前对应的第一机器码,然后,将第一机器码和预先存储的机器码库进行比对,来判断疑似漏洞函数是否存在缺陷;最后,如果确定疑似漏洞函数存在缺陷,则可以确认内核存在内核漏洞;如果确定疑似漏洞函数不存在缺陷,则可以确认内核不存在内核漏洞。这样,在内核疑似出现内核漏洞时,由于是通过判断疑似漏洞函数是否存在缺陷的方式,来确认内核漏洞是否存在的,就无需构造疑似内核漏洞的输入参数来触发漏洞代码执行,那么,就不会出现输入参数构造失败或者构造有误导致无法确认内核是否存在内核漏洞的情况,从而,能够有效提高检测内核漏洞的准确度和速度。
实施例二
基于同一发明构思,作为对上述方法的实现,本发明实施例提供了一种内核漏洞检测装置,该装置实施例与前述方法实施例对应,为便于阅读,本装置实施例不再对前述方法实施例中的细节内容进行逐一赘述,但应当明确,本实施例中的装置能够对应实现前述方法实施例中的全部内容。
图2为本发明实施例二中的内核漏洞检测装置的结构示意图,参见图2所示,该内核漏洞检测装置20包括:获得单元201、第一获取单元202、判断单元203以及确认单元204,其中,获得单元201,用于获得疑似漏洞函数;第一获取单元202,用于获取疑似漏洞函数当前对应的第一机器码;判断单元203,用于将第一机器码和预先存储的机器码库进行比对,判断疑似漏洞函数是否存在缺陷;确认单元204,用于如果确定疑似漏洞函数存在缺陷,确认内核存在内核漏洞;否则,确认内核不存在内核漏洞。
在本发明实施例中,判断单元,用于从预先存储的机器码库中,获取疑似漏洞函数对应的第二机器码;判断第一机器码与第二机器码是否相同;如果第一机器码与第二机器码相同,确定疑似漏洞函数不存在缺陷;否则,确定疑似漏洞函数存在缺陷。
在本发明实施例中,判断单元,还用于对第一机器码进行特征分析,获得第一机器码的二进制特征;对第二机器码进行特征分析,获得第二机器码的二进制特征;如果第一机器码的二进制特征与第二机器码的二进制特征相同,确定第一机器码与第二机器码是相同的;否则,确定第一机器码与第二机器码是不相同的。
在本发明实施例中,第一获取单元,用于基于疑似漏洞函数的函数名,获取疑似漏洞函数对应的函数地址以及函数大小;基于函数地址和函数大小,从疑似漏洞函数当前所在的二进制文件中,获取疑似漏洞函数对应的第一机器码。
在本发明实施例中,获得单元,用于在内核疑似出现内核漏洞时,获得告警数据;将告警数据中携带的问题函数确定为疑似漏洞函数。
在本发明其它实施例中,该内核漏洞检测装置还包括:第二获取单元以及确定单元,其中,第二获取单元,用于获取内核非疑似出现内核漏洞时所对应的二进制文件;确定单元,用于将内核所对应的二进制文件中的所有二进制代码确定为预先存储的机器码库。
上述内核漏洞检测装置包括处理器和存储器,上述获得单元、获取单元、判断单元以及确认单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
上述处理器可由中央处理器(Central Processing Unit,CPU)、微处理器(MicroProcessor Unit,MPU)、数字信号处理器(Digital Signal Processor,DSP)、或现场可编程门阵列(Field Programmable Gate Array,FPGA)等实现。
存储器可能包括计算机可读介质中的非永久性存储器,随机存储器(RandomAccess Memory,RAM)和/或非易失性内存等形式,如只读存储器(Read Only Memory,ROM)或闪存(Flash RAM),存储器包括至少一个存储芯片。
基于同一发明构思,本发明实施例提供一种存储介质,其上存储有程序,该程序被处理器执行时实现上述内核漏洞检测方法。
基于同一发明构思,本发明实施例提供一种处理器,处理器用于运行程序,其中,程序运行时执行上述内核漏洞检测方法。
在实际应用中,该内核漏洞检测装置可应用于终端中。终端可以以各种形式来实施。例如,本发明中描述的终端可以包括诸如手机、平板电脑、笔记本电脑、掌上电脑、个人数字助理(Personal Digital Assistant,PDA)、便捷式媒体播放器(Portable MediaPlayer,PMP)、导航装置、可穿戴设备等移动终端,以及诸如数字TV、台式计算机、服务器等固定终端。
实施例三
基于同一发明构思,本发明实施例提供一种内核漏洞检测设备。图3为本发明实施例三中的内核漏洞检测设备的结构示意图,参见图3所示,该内核漏洞检测设备30包括:存储器301、处理器302以及存储在存储器301上并可在处理器302上运行的计算机程序303,处理器执行程序303时实现以下步骤:获得疑似漏洞函数;获取疑似漏洞函数当前对应的第一机器码;将第一机器码与预先存储的机器码库进行比对,判断疑似漏洞函数是否存在缺陷;如果确定疑似漏洞函数存在缺陷,确认内核存在内核漏洞;否则,确认内核不存在内核漏洞。
在本发明实施例中,上述处理器执行程序时还可实现以下步骤:从预先存储的机器码库中,获取疑似漏洞函数对应的第二机器码;判断第一机器码与第二机器码是否相同;如果第一机器码与第二机器码相同,确定疑似漏洞函数不存在缺陷;否则,确定疑似漏洞函数存在缺陷。
在本发明实施例中,上述处理器执行程序时还可实现以下步骤:对第一机器码进行特征分析,获得第一机器码的二进制特征;对第二机器码进行特征分析,获得第二机器码的二进制特征;如果第一机器码的二进制特征与第二机器码的二进制特征相同,确定第一机器码与第二机器码是相同的;否则,确定第一机器码与第二机器码是不相同的。
在本发明实施例中,上述处理器执行程序时还可实现以下步骤:基于疑似漏洞函数的函数名,获取疑似漏洞函数对应的函数地址以及函数大小;基于函数地址和函数大小,从疑似漏洞函数当前所在的二进制文件中,获取疑似漏洞函数对应的第一机器码。
在本发明实施例中,上述处理器执行程序时还可实现以下步骤:在内核疑似出现内核漏洞时,获得告警数据;将告警数据中携带的问题函数确定为疑似漏洞函数。
在本发明实施例中,上述处理器执行程序时还可实现以下步骤:获取内核非疑似出现内核漏洞时所对应的二进制文件;将内核所对应的二进制文件中的所有二进制代码确定为预先存储的机器码库。
本发明实施例还提供了如下方案:
A1、一种内核漏洞检测方法,所述方法包括:
获得疑似漏洞函数;
获取所述疑似漏洞函数当前对应的第一机器码;
将所述第一机器码与预先存储的机器码库进行比对,判断所述疑似漏洞函数是否存在缺陷;
如果确定所述疑似漏洞函数存在缺陷,确认所述内核存在内核漏洞;否则,确认所述内核不存在内核漏洞。
A2、根据A1所述的方法,所述将所述第一机器码与预先存储的机器码库进行比对,判断所述疑似漏洞函数是否存在缺陷,包括:
从所述预先存储的机器码库中,获取所述疑似漏洞函数对应的第二机器码;
判断所述第一机器码与所述第二机器码是否相同;
如果所述第一机器码与所述第二机器码相同,确定所述疑似漏洞函数不存在缺陷;否则,确定所述疑似漏洞函数存在缺陷。
A3、根据A2所述的方法,所述判断所述第一机器码与所述第二机器码是否相同,包括:
对所述第一机器码进行特征分析,获得所述第一机器码的二进制特征;
对所述第二机器码进行特征分析,获得所述第二机器码的二进制特征;
如果所述第一机器码的二进制特征与所述第二机器码的二进制特征相同,确定所述第一机器码与所述第二机器码是相同的;否则,确定所述第一机器码与所述第二机器码是不相同的。
A4、根据A1至A3任一项所述的方法,所述获取所述疑似漏洞函数当前对应的第一机器码,包括:
基于所述疑似漏洞函数的函数名,获取所述疑似漏洞函数对应的函数地址以及函数大小;
基于所述函数地址和所述函数大小,从所述疑似漏洞函数当前所在的二进制文件中,获取所述疑似漏洞函数对应的第一机器码。
A5、根据A1所述的方法,所述获得疑似漏洞函数,包括:
在所述内核疑似出现内核漏洞时,获得所述告警数据;
将所述告警数据中携带的问题函数确定为所述疑似漏洞函数。
A6、根据A1所述的方法,在所述获得疑似漏洞函数之前,所述方法还包括:
获取所述内核非疑似出现内核漏洞时所对应的二进制文件;
将所述内核所对应的二进制文件中的所有二进制代码确定为所述预先存储的机器码库。
B7、一种内核漏洞检测装置,所述装置包括:获得单元、第一获取单元、判断单元以及确认单元,其中,
所述获得单元,用于获得疑似漏洞函数;
所述第一获取单元,用于获取所述疑似漏洞函数当前对应的第一机器码;
所述判断单元,用于将所述第一机器码和预先存储的机器码库进行比对,判断所述疑似漏洞函数是否存在缺陷;
所述确认单元,用于如果确定所述疑似漏洞函数存在缺陷,确认所述内核存在内核漏洞;否则,确认所述内核不存在内核漏洞。
B8、根据B7所述的装置,所述判断单元,用于从所述预先存储的机器码库中,获取所述疑似漏洞函数对应的第二机器码;判断所述第一机器码与所述第二机器码是否相同;如果所述第一机器码与所述第二机器码相同,确定所述疑似漏洞函数不存在缺陷;否则,确定所述疑似漏洞函数存在缺陷。
B9、根据B8所述的装置,所述判断单元,还用于对所述第一机器码进行特征分析,获得所述第一机器码的二进制特征;对所述第二机器码进行特征分析,获得所述第二机器码的二进制特征;如果所述第一机器码的二进制特征与所述第二机器码的二进制特征相同,确定所述第一机器码与所述第二机器码是相同的;否则,确定所述第一机器码与所述第二机器码是不相同的。
B10、根据B7至B9任一项所述的装置,所述第一获取单元,用于基于所述疑似漏洞函数的函数名,获取所述疑似漏洞函数对应的函数地址以及函数大小;基于所述函数地址和所述函数大小,从所述疑似漏洞函数当前所在的二进制文件中,获取所述疑似漏洞函数对应的第一机器码。
B11、根据B7所述的装置,所述获得单元,用于在所述内核疑似出现内核漏洞时,获得所述告警数据;将所述告警数据中携带的问题函数确定为所述疑似漏洞函数。
B12、根据B7所述的装置,所述装置还包括:第二获取单元以及确定单元,其中,所述第二获取单元,用于获取所述内核非疑似出现内核漏洞时所对应的二进制文件;所述确定单元,用于将所述内核所对应的二进制文件中的所有二进制代码确定为所述预先存储的机器码库。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、只读光盘(Compact Disc Read-Only Memory,CD-ROM)、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,RAM和/或非易失性内存等形式,如ROM或Flash RAM。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机可读存储介质可以是ROM、可编程只读存储器(Programmable Read-Only Memory,PROM)、可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,EPROM)、电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性随机存取存储器(Ferromagnetic Random Access Memory,FRAM)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(Compact Disc Read-Only Memory,CD-ROM)等存储器;也可以是快闪记忆体或其他内存技术、CD-ROM、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息;还可以是包括上述存储器之一或任意组合的各种电子设备,如移动电话、计算机、平板设备、个人数字助理等。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (10)

1.一种内核漏洞检测方法,其特征在于,所述方法包括:
获得疑似漏洞函数;
获取所述疑似漏洞函数当前对应的第一机器码;
将所述第一机器码与预先存储的机器码库进行比对,判断所述疑似漏洞函数是否存在缺陷;
如果确定所述疑似漏洞函数存在缺陷,确认所述内核存在内核漏洞;否则,确认所述内核不存在内核漏洞。
2.根据权利要求1所述的方法,其特征在于,所述将所述第一机器码与预先存储的机器码库进行比对,判断所述疑似漏洞函数是否存在缺陷,包括:
从所述预先存储的机器码库中,获取所述疑似漏洞函数对应的第二机器码;
判断所述第一机器码与所述第二机器码是否相同;
如果所述第一机器码与所述第二机器码相同,确定所述疑似漏洞函数不存在缺陷;否则,确定所述疑似漏洞函数存在缺陷。
3.根据权利要求2所述的方法,其特征在于,所述判断所述第一机器码与所述第二机器码是否相同,包括:
对所述第一机器码进行特征分析,获得所述第一机器码的二进制特征;
对所述第二机器码进行特征分析,获得所述第二机器码的二进制特征;
如果所述第一机器码的二进制特征与所述第二机器码的二进制特征相同,确定所述第一机器码与所述第二机器码是相同的;否则,确定所述第一机器码与所述第二机器码是不相同的。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述获取所述疑似漏洞函数当前对应的第一机器码,包括:
基于所述疑似漏洞函数的函数名,获取所述疑似漏洞函数对应的函数地址以及函数大小;
基于所述函数地址和所述函数大小,从所述疑似漏洞函数当前所在的二进制文件中,获取所述第一机器码。
5.根据权利要求1所述的方法,其特征在于,所述获得疑似漏洞函数,包括:
在所述内核疑似出现内核漏洞时,获得所述告警数据;
将所述告警数据中携带的问题函数确定为所述疑似漏洞函数。
6.根据权利要求1所述的方法,其特征在于,在所述获得疑似漏洞函数之前,所述方法还包括:
获取所述内核非疑似出现内核漏洞时所对应的二进制文件;
将所述内核所对应的二进制文件中的所有二进制代码确定为所述预先存储的机器码库。
7.一种内核漏洞检测装置,其特征在于,所述装置包括:获得单元、第一获取单元、判断单元以及确认单元,其中,
所述获得单元,用于获得疑似漏洞函数;
所述第一获取单元,用于获取所述疑似漏洞函数当前对应的第一机器码;
所述判断单元,用于将所述第一机器码和预先存储的机器码库进行比对,判断所述疑似漏洞函数是否存在缺陷;
所述确认单元,用于如果确定所述疑似漏洞函数存在缺陷,确认所述内核存在内核漏洞;否则,确认所述内核不存在内核漏洞。
8.根据权利要求7所述的装置,其特征在于,所述判断单元,用于从所述预先存储的机器码库中,获取所述疑似漏洞函数对应的第二机器码;判断所述第一机器码与所述第二机器码是否相同;如果所述第一机器码与所述第二机器码相同,确定所述疑似漏洞函数不存在缺陷;否则,确定所述疑似漏洞函数存在缺陷。
9.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行如权利要求1至6任一项所述的内核漏洞检测方法。
10.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行如权利要求1至6任一项所述的内核漏洞检测方法。
CN201711310966.5A 2017-12-11 2017-12-11 一种内核漏洞检测方法及装置 Pending CN107944278A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711310966.5A CN107944278A (zh) 2017-12-11 2017-12-11 一种内核漏洞检测方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711310966.5A CN107944278A (zh) 2017-12-11 2017-12-11 一种内核漏洞检测方法及装置

Publications (1)

Publication Number Publication Date
CN107944278A true CN107944278A (zh) 2018-04-20

Family

ID=61946556

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711310966.5A Pending CN107944278A (zh) 2017-12-11 2017-12-11 一种内核漏洞检测方法及装置

Country Status (1)

Country Link
CN (1) CN107944278A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112395616A (zh) * 2019-08-15 2021-02-23 奇安信安全技术(珠海)有限公司 漏洞处理的方法、装置及计算机设备
CN113051571A (zh) * 2019-12-27 2021-06-29 中国移动通信集团湖南有限公司 一种误报漏洞的检测方法、装置及计算机设备
CN113139190A (zh) * 2020-01-17 2021-07-20 Oppo广东移动通信有限公司 程序文件检测方法、装置、电子设备及存储介质
CN114168203A (zh) * 2020-09-10 2022-03-11 成都鼎桥通信技术有限公司 双系统运行状态控制方法、装置和电子设备
CN115033892A (zh) * 2022-08-10 2022-09-09 北京安普诺信息技术有限公司 一种组件漏洞分析方法、装置、电子设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101359351A (zh) * 2008-09-25 2009-02-04 中国人民解放军信息工程大学 针对恶意行为的多层语义标注及检测方法
US20120011493A1 (en) * 2010-07-08 2012-01-12 Microsoft Corporation Binary code change vulnerability prioritization
CN105678169A (zh) * 2015-12-30 2016-06-15 西安胡门网络技术有限公司 一种二进制程序漏洞挖掘方法和系统
CN105868108A (zh) * 2016-03-28 2016-08-17 中国科学院信息工程研究所 基于神经网络的指令集无关的二进制代码相似性检测方法
CN107229563A (zh) * 2016-03-25 2017-10-03 中国科学院信息工程研究所 一种跨架构的二进制程序漏洞函数关联方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101359351A (zh) * 2008-09-25 2009-02-04 中国人民解放军信息工程大学 针对恶意行为的多层语义标注及检测方法
US20120011493A1 (en) * 2010-07-08 2012-01-12 Microsoft Corporation Binary code change vulnerability prioritization
CN105678169A (zh) * 2015-12-30 2016-06-15 西安胡门网络技术有限公司 一种二进制程序漏洞挖掘方法和系统
CN107229563A (zh) * 2016-03-25 2017-10-03 中国科学院信息工程研究所 一种跨架构的二进制程序漏洞函数关联方法
CN105868108A (zh) * 2016-03-28 2016-08-17 中国科学院信息工程研究所 基于神经网络的指令集无关的二进制代码相似性检测方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
徐威扬等: "一种跨指令架构二进制漏洞搜索技术研究", 《信息网络安全》 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112395616A (zh) * 2019-08-15 2021-02-23 奇安信安全技术(珠海)有限公司 漏洞处理的方法、装置及计算机设备
CN112395616B (zh) * 2019-08-15 2024-01-30 奇安信安全技术(珠海)有限公司 漏洞处理的方法、装置及计算机设备
CN113051571A (zh) * 2019-12-27 2021-06-29 中国移动通信集团湖南有限公司 一种误报漏洞的检测方法、装置及计算机设备
CN113139190A (zh) * 2020-01-17 2021-07-20 Oppo广东移动通信有限公司 程序文件检测方法、装置、电子设备及存储介质
CN114168203A (zh) * 2020-09-10 2022-03-11 成都鼎桥通信技术有限公司 双系统运行状态控制方法、装置和电子设备
CN114168203B (zh) * 2020-09-10 2024-02-13 成都鼎桥通信技术有限公司 双系统运行状态控制方法、装置和电子设备
CN115033892A (zh) * 2022-08-10 2022-09-09 北京安普诺信息技术有限公司 一种组件漏洞分析方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
US11042647B1 (en) Software assurance system for runtime environments
CN107944278A (zh) 一种内核漏洞检测方法及装置
CN104685510B (zh) 识别应用程序是否是恶意程序的方法、系统及存储介质
US8776239B2 (en) In-development vulnerability response management
US11218510B2 (en) Advanced cybersecurity threat mitigation using software supply chain analysis
US10002068B2 (en) Test case reduction in application binary interface (ABI) compatibility testing
CN111488578A (zh) 现代应用程序的连续漏洞管理
US8635602B2 (en) Verification of information-flow downgraders
CN107657177A (zh) 一种漏洞检测方法及装置
US8572747B2 (en) Policy-driven detection and verification of methods such as sanitizers and validators
US11550569B2 (en) Discovering and remediating hidden secrets in code files
CN112733158B (zh) Android系统漏洞检测方法、电子设备及存储介质
US20200320202A1 (en) Privacy vulnerability scanning of software applications
US11349658B2 (en) Blockchain data processing method, apparatus, and device
US10387288B2 (en) Interactive analysis of a security specification
CN104239801B (zh) 0day漏洞的识别方法以及装置
CN109446011A (zh) 一种硬盘的固件安全测试方法、装置及存储介质
US10761837B2 (en) Annotations in software development
CN108197495A (zh) 应用程序中敏感信息的保护方法及装置
Malavolta et al. Engineering mobile apps for disaster management: The case of COVID-19 apps in the Google Play Store
CN116881173B (zh) 接口参数的检测方法、装置、电子设备和计算机可读介质
US11500985B1 (en) Static and dynamic correlation of software development pipeline events
CN111625784B (zh) 一种应用的反调试方法、相关装置及存储介质
US11693651B1 (en) Static and dynamic correlation of software development pipeline events
US11960880B2 (en) Systems and methods for remediation of software configuration

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20180420

RJ01 Rejection of invention patent application after publication