CN111399848A - 一种硬编码数据检测方法、装置、电子设备和介质 - Google Patents

一种硬编码数据检测方法、装置、电子设备和介质 Download PDF

Info

Publication number
CN111399848A
CN111399848A CN202010187792.3A CN202010187792A CN111399848A CN 111399848 A CN111399848 A CN 111399848A CN 202010187792 A CN202010187792 A CN 202010187792A CN 111399848 A CN111399848 A CN 111399848A
Authority
CN
China
Prior art keywords
data
hard coded
coded data
sensitive data
information entropy
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.)
Granted
Application number
CN202010187792.3A
Other languages
English (en)
Other versions
CN111399848B (zh
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.)
Apollo Intelligent Connectivity Beijing Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and 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 Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202010187792.3A priority Critical patent/CN111399848B/zh
Publication of CN111399848A publication Critical patent/CN111399848A/zh
Application granted granted Critical
Publication of CN111399848B publication Critical patent/CN111399848B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; Contextual analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3608Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/53Decompilation; Disassembly
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/73Program documentation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Library & Information Science (AREA)
  • Storage Device Security (AREA)

Abstract

本申请公开了一种硬编码数据检测方法、装置、电子设备和介质,涉及信息安全处理技术。其中,所述方法包括:从二进制文件中提取待检测的硬编码数据;确定所述硬编码数据的信息熵值,并根据所述信息熵值确定所述硬编码数据中的目标敏感数据。本申请实施例直接从二进制文件中提取待检测的硬编码数据,不依赖于源码,提高了方法的可行性和实用性,并且通过硬编码数据的信息熵值来确定目标数据中的目标敏感数据,与现有技术相比,提高了硬编码数据检测的效率。

Description

一种硬编码数据检测方法、装置、电子设备和介质
技术领域
本申请涉及计算机技术,具体涉及信息安全处理技术,尤其涉及一种硬编码数据检测方法、装置、电子设备和介质。
背景技术
硬编码是指将数据直接嵌入到程序或其他可执行对象的源代码中的软件开发实践,硬编码数据只能通过编辑源代码和重新编译可执行文件来进行修改,因此敏感数据一旦被写入就很难及时更改,会造成严重的安全问题。
现有技术中,硬编码中敏感数据的检测通常需要基于源代码,并且需要结合人工判断的方式进行检测。然而,厂商一般不会提供源代码供测试方检测,因此依赖源代码的检测方法可行性低,此外,通过人工进判断的检测方法存在检测效率低下的问题。
发明内容
本申请实施例公开一种硬编码数据检测方法、装置、电子设备和介质,可以提高硬编码数据检测的可行性以及检测效率。
第一方面,本申请实施例公开了一种硬编码数据检测方法,包括:
从二进制文件中提取待检测的硬编码数据;
确定所述硬编码数据的信息熵值,并根据所述信息熵确定所述硬编码数据中的目标敏感数据。
上述申请中的一个实施例具有如下优点或有益效果:通过直接从二进制文件中提取待检测的硬编码数据,实现了数据的获取不依赖于源码,提高了方法的可行性和实用性;通过硬编码数据的信息熵值来确定目标数据中的目标敏感数据,与现有技术相比,提高了硬编码数据检测的效率。
另外,根据本申请上述实施例的硬编码数据检测方法,还可以具有如下附加的技术特征:
可选的,从二进制文件中提取待检测的硬编码数据之前,还包括:
根据待检测应用程序的标识信息,确定所述待检测应用程序的安装包;
对所述安装包进行逆向处理,得到所述待检测应用程序的二进制文件用于进行敏感检测。
上述申请中的一个实施例具有如下优点或有益效果:应用程序的敏感数据检测不依赖源代码,而是通过解析应用程序的二进制文件来进行检测,提高了应用程序硬编码检测的实用性和可行性。
可选的,确定所述硬编码数据的信息熵值,并根据所述信息熵值确定所述硬编码数据中的目标敏感数据,包括:
对所述硬编码数据进行筛选,得到候选敏感数据;
确定所述候选敏感数据的信息熵值;
根据所述候选敏感数据的信息熵值,确定所述候选敏感数据中的目标敏感数据。
上述申请中的一个实施例具有如下优点或有益效果:对硬编码数据进行筛选,可以进一步提高硬编码敏感数据的检测效率。
可选的,对所述硬编码数据进行筛选,得到候选敏感数据,包括:
根据业务方自定义的业务方敏感数据种类,生成业务方敏感数据特征;
从所述硬编码数据中,选择与预设的敏感特征库或所述业务方敏感数据特征匹配成功的候选敏感数据。
上述申请中的一个实施例具有如下优点或有益效果:通过根据业务方敏感数据特征以及预设的敏感特征库对硬编码数据进行筛选,能够进一步提高硬编码数据检测的准确度和效率。
可选的,对所述硬编码数据进行筛选,得到候选敏感数据,包括:
根据业务方自定义的业务方安全数据种类,生成业务方安全数据特征;
从所述硬编码数据中,滤除与预设的安全特征库或所述业务方安全数据特征匹配成功的安全数据,且将剩余的硬编码数据作为所述候选敏感数据。
上述申请中的一个实施例具有如下优点或有益效果:通过根据业务方安全数据特征和预设的安全特征库对硬编码数据进行滤除,以获取候选敏感数据,能够进一步提高硬件码数据检测的准确度和效率。
可选的,根据所述信息熵值确定所述硬编码数据中的目标敏感数据,包括:
若任一硬编码数据的信息熵值大于信息熵阈值,则确定该硬编码数据为所述目标敏感数据。
上述申请中的一个实施例具有如下优点或有益效果:通过信息熵对硬编码敏感数据进行检测,无需依赖人工,提高了检测的效率和准确度。
第二方面,本申请实施例还提供了一种硬编码数据检测装置,包括:
提取模块,用于从二进制文件中提取待检测的硬编码数据;
确定模块,用于确定所述硬编码数据的信息熵值,并根据所述信息熵值确定所述硬编码数据中的目标敏感数据。
第三方面,本申请实施例还公开了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如本申请实施例中任一所述的硬编码数据检测方法。
第四方面,本申请实施例还公开了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行如本申请实施例任一所述的硬编码数据检测方法。
本申请实施例的技术方案,通过从二进制文件中提取待检测的硬件编码数据,从而确定硬编码数据的信息熵值,并根据所述信息熵值确定硬编码数据中的目标敏感数据,硬编码数据的获取不依赖源代码,而是直接从二进制文件中解析得到,提高了硬编码数据检测的可行性;通过信息熵值对硬编码数据中的敏感数据进行检测,无需依赖人工,提高了检测效率。
上述可选方式所具有的其他效果将在下文中结合具体实施例加以说明。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是根据本申请实施例公开的一种硬编码数据检测方法的流程图;
图2是根据本申请实施例公开的另一种硬编码数据检测方法的流程图;
图3是根据本申请实施例公开的一种硬编码数据检测装置的结构示意图;
图4是根据本申请实施例公开的一种电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本申请实施例公开的一种硬编码数据检测方法的流程图,本实施例可以适用于对硬编码数据进行检测的情况,典型的,本实施例可以适用于对硬编码数据中的敏感数据进行检测的情况。本实施例方法可以由硬编码数据检测装置执行,该装置可采用软件和/或硬件的方式实现,并可集成在电子设备中。参见图1,本实施例公开的硬编码数据检测方法可以包括:
S101、从二进制文件中提取待检测的硬编码数据。
其中,二进制文件为包含在ASCII及扩展ASCII字符中编写的数据或程序指令的文件。本实施例中,二进制文件可以由java、C++或者C语言等任意编程语言编写生成。
硬编码数据通常表示不变的信息,例如物理常量、版本号和静态文本元素,因此,可以通过对二进制文件进行反编译,提取二进制文件中的常量字符数据作为待检测的硬编码数据。
示例性的,对于二进制文件F,可以通过反编译技术提取该二进制文件F中全部的常量字符数据,将提取到的全部常量字符数据作为待检测的硬编码数据rawDataA={rawdatan},其中n为二进制文件F中常量字符串数据的数量。
可选的,从二进制文件中提取待检测的硬编码数据之前,还包括:根据待检测应用程序的标识信息,确定所述待检测应用程序的安装包;对所述安装包进行逆向处理,得到所述待检测应用程序的二进制文件用于进行敏感检测。
其中,待检测应用程序的标识信息用于对应用程序进行唯一标识,例如标识信息可以为应用程序的程序包名。具体的,通过该标识信息,可以获取待检测应用对应安装路径下的安装包,通过逆向技术或者利用开源逆向工具从安装包提取出对应的二进制文件,进而将上述二进制文件用于敏感检测。
本实施例中,以提取Android(安卓)系统中的应用程序A的待检测硬编码数据为例。首先,从Android系统中获取应用程序A的包名packageNameA,再根据该包名获取对应的Android应用程序包(Android application package,APK)的路径apkPathA,接着根据该路径从Android系统中拉取APK文件apkA,通过APK逆向技术或开源逆向工具从应用程序A的APK文件apkA中提取DEX格式的二进制文件dexA。其中,DEX格式的二进制文件dexA为Android系统中可执行文件的类型,并且该二进制文件dexA不依赖第三方库,通过利用该特定格式的二进制文件进行敏感检测,能够避免获取到的待检测硬编码数据中包含不相关的第三方信息,使得应用程序的敏感数据检测更加准确。
进一步的,将获取的DEX文件dexA通过反编译技术提取二进制文件dexA中全部的常量字符数据,将上述常量字符数据作为应用程序A的待检测硬编码数据rawDataA={rawdatan},其中n为二进制文件dexA中常量字符数据的数量。
S102、确定所述硬编码数据的信息熵值,并根据所述信息熵值确定所述硬编码数据中的目标敏感数据。
其中,信息熵可以表示信息中排除了冗余后的平均信息量,用来检测信息的混乱程度。本实施例中,硬编码数据中的敏感数据通常可以包括明文口令、密码或者身份等用户数据,该类数据的本质特征在于混淆和扩散,因此,硬编码数据中的敏感数据通常会存在较高的信息熵,通过计算硬编数据的信息熵值,可以准确地定位出硬编码数据中存在的敏感数据。
具体的,根据所述信息熵值确定所述硬编码数据中的目标敏感数据,包括:若任一硬编码数据的信息熵值大于信息熵阈值,则确定该硬编码数据为所述目标敏感数据。
其中,信息熵阈值可以为经验值,也可以在积累一定数量的经验值样本之后,通过深度学习确定。本实施例中,通过计算各硬编码数据的信息熵值,将各硬编码数据的信息熵值分别与信息熵阈值进行比较,将大于信息熵阈值的硬编码数据作为硬编码数据中的敏感数据。
进一步的,在根据信息熵值确定硬编码数据中的目标敏感数据之前,可以根据业务方自定义的业务方敏感数据特征以及预设的敏感特征库对硬编码数据进行筛选,也可以根据业务方自定义的业务方安全数据种类以及预设的安全特征库对硬编码数据进行滤除,或者同时采取上述两种实施方式对硬编数据进行初步筛选,以提高硬编码敏感数据的检测效率,具体的筛选方法可以参见后续实施例。
本申请实施例的技术方案,通过从二进制文件中提取待检测的硬件编码数据,从而确定硬编码数据的信息熵值,并根据所述信息熵值确定硬编码数据中的目标敏感数据,硬编码数据的获取不依赖源代码,而是直接从二进制文件中解析得到,提高了硬编码数据检测的可行性;通过信息熵值对硬编码数据中的敏感数据进行检测,无需依赖人工,提高了检测效率。
图2是根据本申请实施例公开的另一种硬编码数据检测方法的流程图,本申请实施例是在上述实施例的基础上,为了进一步提高硬编码数据检测的效率和准确度,对S102进行进一步细化,即对所述硬编码数据进行筛选,得到候选敏感数据;确定候选敏感数据的信息熵值,并根据候选敏感数据的信息熵值,确定所述候选敏感数据中的目标敏感数据。参见图2,该方法具体可以包括:
S201、从二进制文件中提取待检测的硬编码数据。
S202、对所述硬编码数据进行筛选,得到候选敏感数据。
本实施例中,从二进制文件中获取的待检测硬编码数据包含二进制文件中的所有常量字符数据,数量较大,为了提高硬编码数据检测的效率,可以基于一些筛选规则对硬编码数据进行筛选,以精简硬编码数据,从而提高检测效率。
作为一种可选的实施方式,对所述硬编码数据进行筛选,得到候选敏感数据,包括:根据业务方自定义的业务方敏感数据种类,生成业务方敏感数据特征;从所述硬编码数据中,选择与预设的敏感特征库或所述业务方敏感数据特征匹配成功的候选敏感数据。
其中,业务方为检测者,例如车企或者是扫描方。不同的业务方对应的敏感数据种类不同,本实施例中,业务方可以根据自身需求定义业务方敏感数据种类。其中,业务方敏感数据特征可以为业务方敏感数据种类对应生成的正则表达式,预设的敏感特征库为预先根据默认敏感数据种类生成的正则表达式。例如,该预设的敏感特征库中可以包括手机号码的正则表达式。
示例性的,若业务方为车企,那么业务方敏感数据种类可以包括与车企相关的敏感数据以及某些特定的ID数据等。通过将硬编码数据与预设的敏感数据特征库或预设的敏感特征库进行匹配,进而将匹配成功的硬编码数据作为候选敏感数据,能够在提高检测效率的基础上满足不同业务方的使用需求,从而提高了检测方法的实用性。
作为另一种可选的实施例方式,对所述硬编码数据进行筛选,得到候选敏感数据,包括:根据业务方自定义的业务方安全数据种类,生成业务方安全数据特征;从所述硬编码数据中,滤除与预设的安全特征库或所述业务方安全数据特征匹配成功的安全数据,且将剩余的硬编码数据作为所述候选敏感数据。
其中,安全数据种类为非敏感的数据种类。对于不同的业务方而言,安全数据种类也不相同,本实施例中,业务方也可以根据自身需求定义业务方安全数据种类。其中,业务方安全数据特征种类为预先根据默认安全数据种类生成的正则表达式。通过从硬编码数据中,滤除与预设的安全特征库或者业务方安全数据特征匹配成功的安全数据,能够在滤除安全数据种类的同时进一步提高检测效率。
需要说明的是,上述两个可选的实时方式可以组合使用。在组合使用的时候先将硬编码数据与敏感数据特征进行匹配,确定原始硬编码数据;再将上述原始硬编码数据与安全数据特征进行匹配,滤除原始的硬编码数据中的非敏感数据,以得到筛选后的候选敏感数据。
示例性的,若硬编码数据为rawDataA={rawdatan},其中,n为待检测硬编码数据中常量字符数据的数量。具体的筛选过程如下:
首先,获取用户自定义黑名单blackList,该黑名单中包括用户根据自身需求预置的敏感数据种类,进而根据用户自定义黑名单blackList生成黑名单特征匹配指纹FeatureBL
进一步的,结合预设的特征指纹库FeatureFP和黑名单特征匹配指纹FeatureBL生成可疑硬编码模式patternhardcode,根据该可疑硬编码匹配模式patternhardcode对硬编码数据rawDataA中的每一组数据rawdatai,i∈[1,n]进行模式匹配,生成原始硬编码数据rawHardcodeA={rawhardcodek|0≤k≤n},其中,k为硬编码数据rawDataA中与可疑硬编码匹配模式patternhardcode匹配成功的数据。具体的匹配流程如下:
步骤a、设k=0,i=1,执行步骤b。
步骤b、根据可疑编码匹配模式patternhardcode对硬编码数据rawDataA中的数据rawdatai进行模式匹配,若匹配成功,则执行步骤c;否则,执行步骤d。
步骤c、k=k+1,将数据rawdatai插入可疑硬编码数据rawHardcodeA中,即rawhardcodek=rawdatai,0≤k≤i,0≤i≤n,执行步骤d。
步骤d、i=i+1,若i>n,k>0,则执行后续的安全数据滤除步骤;若i>n,k=0,则执行后续信息熵值的判断过程;若i≤n,则继续匹配数据rawdatai,执行步骤b。
经过上述步骤,可以生成原始硬编码数据rawHardcodeF={rawhardcodek|0≤k≤n}。
进一步的,对上述原始硬编码数据进行无效数据滤除,即从该原始硬编码数据中,滤除与预设的安全特征库或所述业务方安全数据特征匹配成功的安全数据,具体的滤除过程如下:
首先获取用户自定义白名单whiteList,该白名单中包含有用户根据自身需求预置的安全数据种类,进而根据用户自定义白名单whiteList生成白名单特征匹配指纹FeatureWL
进一步的,结合无用信息匹配模式Featureuseless和白名单特征匹配指纹FeatureWL生成最终的无用信息匹配模式patternuseless。根据该无用信息匹配模式patternuseless对原始硬编码数据rawHardcodeA进行模式匹配,过滤无用信息,得到经过初步筛选的候选敏感数据filterHardcodeA={filterhardcodem|1≤m≤k},其中m为经过初步筛选生成的候选敏感数据filterHardcodeA中数据的数量,k为原始硬编码数据rawHardcodeA中硬编码数据的数量。具体的滤除过程如下:
步骤e、设m=0,j=1,执行步骤f。
步骤f、根据匹配模式patternuseless对原始硬编码数据rawHardcodeA中每一组数据rawhardcodej,j∈[1,k]进行模式匹配。若匹配成功,则执行步骤g;否则,执行步骤h。
步骤g、m=m+1,将数据rawhardcodej插入初步筛选的硬编码数据filterHardcodeA中,即filterhardcodem=rawhardcodej,1≤m≤k。
步骤h、j=j+1,若j>k,则执行后续信息熵值的判断过程;若j≤k,则继续匹配数据rawhardcodek,执行步骤f。
经过上述匹配和滤除操作,可以得到经过初步筛选的候选敏感数据filterHardcodeA={filterhardcodem|1≤m≤k}。基于一定筛选规则对硬编码数据进行筛选,能够提高监测的准确度和效率。
S203、确定所述候选敏感数据的信息熵值。
本实施例中,在获取到候选敏感数据filterHardcodeA后,需要进一步计算候选敏感数据filterHardcodeA中每一组数据的信息熵值以确定目标敏感数据
S204、根据所述候选敏感数据的信息熵值,确定所述候选敏感数据中的目标敏感数据。
本实施例中,将信息熵值大于信息熵阈值的候选敏感数据作为目标敏感数据,具体,目标敏感数据的确定流程如下:
步骤j、设w=0,y=1,执行步骤P。
步骤p、根据信息熵公式,计算每一组候选敏感数据filterhardcodey,y∈[1,m]的信息熵entropy(filterhardcodey),若entropy(filterhardcodey≥Thr),则执行步骤q,否则执行步骤r,信息熵计算公式如下:
Figure BDA0002414801350000101
其中,p(xi)表示filterhardcodey中字符xi出现的概率,n为filterhardcodey中所有出现字符的种类数目。
步骤q、w=w+1,将数据filterhardcodey插入目标敏感数据hardCodeA中,即hardcodew=filterhardcodey,1≤w≤m。
步骤r、y=y+1,若y>m,则执行后续信息熵值的判断过程;若y≤m,则计算数据filterhardcodey的信息熵,执行步骤p。
经过上述步骤,若生成了的目标敏感数据hardCodeA={hardcodew|1≤w≤m},则对用户输出展示最终结果,并结束整个流程,其中w为信息熵达到阈值的目标敏感数据的数量,m为filterHardcodeA中经过初筛的候选敏感数据的数量;若经过上述步骤没有生成目标敏感数据,则提前结束整个流程,表明待检测的硬编码数据中不存在敏感数据。
本申请实施例的技术方案,通过对硬编数据进行筛选,得到候选敏感数据,进一步提高了检测的效率;通过确定候选敏感数据的信息熵值来确定候选敏感数据中的目标敏感数据,提供了一种自动化检测硬编码数据的方法,该方法能够准确的检测出硬编码数据中的目标敏感数据,可以帮助用户提前排除硬编码潜在的信息泄露风险。
图3是根据本申请实施例公开的一种硬编码数据检测装置的结构示意图,本实施例该装置可采用软件和/或硬件的方式实现,可以执行本申请任意实施例提供的硬编码检测方法,具备执行方法相应的功能模块和有益效果。参见图3,本实施例公开的硬编码检测装置300包括提取模块301和确定模块302,其中:
提取模块301,用于从二进制文件中提取待检测的硬编码数据;
确定模块302,用于确定所述硬编码数据的信息熵值,并根据所述信息熵值确定所述硬编码数据中的目标敏感数据。
可选的,本实施例装置还包括:安装包确定模块,用于根据待检测应用程序的标识信息,确定所述待检测应用程序的安装包;逆向处理模块,用于对所述安装包进行逆向处理,得到所述待检测应用程序的二进制文件用于进行敏感检测。
具体的,确定模块302包括:筛选子单元,用于对所述硬编码数据进行筛选,得到候选敏感数据;信息熵值确定子单元,用于确定所述候选敏感数据的信息熵值;目标敏感数据确定子单元,用于根据所述候选敏感数据的信息熵值,确定所述候选敏感数据中的目标敏感数据。
可选的,所述筛选子单元具体用于:根据业务方自定义的业务方敏感数据种类,生成业务方敏感数据特征;从所述硬编码数据中,选择与预设的敏感特征库或所述业务方敏感数据特征匹配成功的候选敏感数据。
可选的,所述筛选子单元还具体用于:根据业务方自定义的业务方安全数据种类,生成业务方安全数据特征;从所述硬编码数据中,滤除与预设的安全特征库或所述业务方安全数据特征匹配成功的安全数据,且将剩余的硬编码数据作为所述候选敏感数据。
进一步的,所述确定模块302具体用于:若任一硬编码数据的信息熵值大于信息熵阈值,则确定该硬编码数据为所述目标敏感数据。
本申请实施例所公开的硬编码数据检测装置300可执行本申请实施例所公开的任意的硬编码数据检测方法,具备执行方法相应的功能模块和有益效果。本实施例中未详尽描述的内容可以参考本申请任意方法实施例中的描述。
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
如图4所示,是根据本申请实施例的硬编码数据检测方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图4所示,该电子设备包括:一个或多个处理器401、存储器402,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图4中以一个处理器401为例。
存储器402即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的硬编码数据检测方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的硬编码数据检测方法。
存储器402作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的硬编码数据检测方法对应的程序指令/模块(例如,附图3所示的获取模块301和确定模块302)。处理器401通过运行存储在存储器402中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的硬编码数据检测方法。
存储器402可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据用于实现本申请实施例中硬编码数据检测方法的电子设备的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器402可选包括相对于处理器401远程设置的存储器,这些远程存储器可以通过网络连接至用于实现本申请实施例中硬编码数据检测方法的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
用于实现本申请实施例中硬编码数据检测方法的电子设备还可以包括:输入装置403和输出装置404。处理器401、存储器402、输入装置403和输出装置404可以通过总线或者其他方式连接,图4中以通过总线连接为例。
输入装置403可接收输入的数字或字符信息,以及产生与用于实现本申请实施例中硬编码数据检测方法的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置404可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、互联网和区块链网络。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
根据本申请实施例的技术方案,通过从二进制文件中提取待检测的硬件编码数据,从而确定硬编码数据的信息熵值,并根据所述信息熵值确定硬编码数据中的目标敏感数据,硬编码数据从二进制文件中提取得到,无需不依赖于源代码,提高了硬编码数据检测的可行性;通过硬编码数据的信息熵值进行硬编码敏感数据的检测,无需依赖人工,提高了检测效率。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。

Claims (14)

1.一种硬编码数据检测方法,其特征在于,包括:
从二进制文件中提取待检测的硬编码数据;
确定所述硬编码数据的信息熵值,并根据所述信息熵值确定所述硬编码数据中的目标敏感数据。
2.根据权利要求1所述的方法,其特征在于,从二进制文件中提取待检测的硬编码数据之前,还包括:
根据待检测应用程序的标识信息,确定所述待检测应用程序的安装包;
对所述安装包进行逆向处理,得到所述待检测应用程序的二进制文件用于进行敏感检测。
3.根据权利要求1所述的方法,其特征在于,确定所述硬编码数据的信息熵值,并根据所述信息熵值确定所述硬编码数据中的目标敏感数据,包括:
对所述硬编码数据进行筛选,得到候选敏感数据;
确定所述候选敏感数据的信息熵值;
根据所述候选敏感数据的信息熵值,确定所述候选敏感数据中的目标敏感数据。
4.根据权利要求3所述的方法,其特征在于,对所述硬编码数据进行筛选,得到候选敏感数据,包括:
根据业务方自定义的业务方敏感数据种类,生成业务方敏感数据特征;
从所述硬编码数据中,选择与预设的敏感特征库或所述业务方敏感数据特征匹配成功的候选敏感数据。
5.根据权利要求3所述的方法,其特征在于,对所述硬编码数据进行筛选,得到候选敏感数据,包括:
根据业务方自定义的业务方安全数据种类,生成业务方安全数据特征;
从所述硬编码数据中,滤除与预设的安全特征库或所述业务方安全数据特征匹配成功的安全数据,且将剩余的硬编码数据作为所述候选敏感数据。
6.根据权利要求1所述的方法,其特征在于,根据所述信息熵值确定所述硬编码数据中的目标敏感数据,包括:
若任一硬编码数据的信息熵值大于信息熵阈值,则确定该硬编码数据为所述目标敏感数据。
7.一种硬编码数据检测装置,其特征在于,包括:
提取模块,用于从二进制文件中提取待检测的硬编码数据;
确定模块,用于确定所述硬编码数据的信息熵值,并根据所述信息熵值确定所述硬编码数据中的目标敏感数据。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
安装包确定模块,用于根据待检测应用程序的标识信息,确定所述待检测应用程序的安装包;
逆向处理模块,用于对所述安装包进行逆向处理,得到所述待检测应用程序的二进制文件用于进行敏感检测。
9.根据权利要求7所述的装置,其特征在于,所述确定模块包括:
筛选子单元,用于对所述硬编码数据进行筛选,得到候选敏感数据;
信息熵值确定子单元,用于确定所述候选敏感数据的信息熵值;
目标敏感数据确定子单元,用于根据所述候选敏感数据的信息熵值,确定所述候选敏感数据中的目标敏感数据。
10.根据权利要求9所述的方法,其特征在于,所述筛选子单元具体用于:
根据业务方自定义的业务方敏感数据种类,生成业务方敏感数据特征;
从所述硬编码数据中,选择与预设的敏感特征库或所述业务方敏感数据特征匹配成功的候选敏感数据。
11.根据权利要求9所述的方法,其特征在于,所述筛选子单元还具体用于:
根据业务方自定义的业务方安全数据种类,生成业务方安全数据特征;
从所述硬编码数据中,滤除与预设的安全特征库或所述业务方安全数据特征匹配成功的安全数据,且将剩余的硬编码数据作为所述候选敏感数据。
12.根据权利要求7所述的装置,其特征在于,所述确定模块具体用于:
若任一硬编码数据的信息熵值大于信息熵阈值,则确定该硬编码数据为所述目标敏感数据。
13.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-6中任一项所述的硬编码数据检测方法。
14.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求1-6中任一项所述的硬编码数据检测方法。
CN202010187792.3A 2020-03-17 2020-03-17 一种硬编码数据检测方法、装置、电子设备和介质 Active CN111399848B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010187792.3A CN111399848B (zh) 2020-03-17 2020-03-17 一种硬编码数据检测方法、装置、电子设备和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010187792.3A CN111399848B (zh) 2020-03-17 2020-03-17 一种硬编码数据检测方法、装置、电子设备和介质

Publications (2)

Publication Number Publication Date
CN111399848A true CN111399848A (zh) 2020-07-10
CN111399848B CN111399848B (zh) 2023-05-23

Family

ID=71436397

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010187792.3A Active CN111399848B (zh) 2020-03-17 2020-03-17 一种硬编码数据检测方法、装置、电子设备和介质

Country Status (1)

Country Link
CN (1) CN111399848B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112491816A (zh) * 2020-11-12 2021-03-12 支付宝(杭州)信息技术有限公司 业务数据处理方法及装置
WO2022048283A1 (zh) * 2020-09-03 2022-03-10 苏州浪潮智能科技有限公司 一种基于pca的密码硬编码检测方法、装置及介质
CN116346509A (zh) * 2023-06-01 2023-06-27 北京比瓴科技有限公司 一种硬编码凭证检测方法、系统、设备及可读存储介质
US11809847B2 (en) 2022-03-16 2023-11-07 International Business Machines Corporation Hardcoded string detection

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040103147A1 (en) * 2001-11-13 2004-05-27 Flesher Kevin E. System for enabling collaboration and protecting sensitive data
CN101359352A (zh) * 2008-09-25 2009-02-04 中国人民解放军信息工程大学 分层协同的混淆后api调用行为发现及其恶意性判定方法
CA2678095A1 (en) * 2009-09-25 2009-12-02 Ibm Canada Limited - Ibm Canada Limitee Object level compatibility and class resizing utilizing semantic values
US8621237B1 (en) * 2011-06-30 2013-12-31 Emc Corporation Protecting against cryptographic key exposure in source code
CN104933443A (zh) * 2015-06-26 2015-09-23 北京途美科技有限公司 一种敏感数据自动识别与分类的方法
US9336381B1 (en) * 2013-04-08 2016-05-10 Amazon Technologies, Inc. Entropy-based detection of sensitive information in code
US9465942B1 (en) * 2013-04-08 2016-10-11 Amazon Technologies, Inc. Dictionary generation for identifying coded credentials
CN108255490A (zh) * 2016-12-28 2018-07-06 平安科技(深圳)有限公司 一种硬编码的处理方法及装置
CN109101236A (zh) * 2018-07-06 2018-12-28 政采云有限公司 基于规则引擎和maven插件实现的项目依赖管理方法及系统
CN110287700A (zh) * 2019-05-14 2019-09-27 北京邮电大学 一种iOS应用安全分析方法及装置
CN110532165A (zh) * 2019-07-05 2019-12-03 中国平安财产保险股份有限公司 应用程序安装包特性检测方法、装置、设备及存储介质
CN110598411A (zh) * 2019-09-23 2019-12-20 腾讯科技(深圳)有限公司 敏感信息检测方法、装置、存储介质和计算机设备

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040103147A1 (en) * 2001-11-13 2004-05-27 Flesher Kevin E. System for enabling collaboration and protecting sensitive data
CN101359352A (zh) * 2008-09-25 2009-02-04 中国人民解放军信息工程大学 分层协同的混淆后api调用行为发现及其恶意性判定方法
CA2678095A1 (en) * 2009-09-25 2009-12-02 Ibm Canada Limited - Ibm Canada Limitee Object level compatibility and class resizing utilizing semantic values
US8621237B1 (en) * 2011-06-30 2013-12-31 Emc Corporation Protecting against cryptographic key exposure in source code
US9336381B1 (en) * 2013-04-08 2016-05-10 Amazon Technologies, Inc. Entropy-based detection of sensitive information in code
US9465942B1 (en) * 2013-04-08 2016-10-11 Amazon Technologies, Inc. Dictionary generation for identifying coded credentials
CN104933443A (zh) * 2015-06-26 2015-09-23 北京途美科技有限公司 一种敏感数据自动识别与分类的方法
CN108255490A (zh) * 2016-12-28 2018-07-06 平安科技(深圳)有限公司 一种硬编码的处理方法及装置
CN109101236A (zh) * 2018-07-06 2018-12-28 政采云有限公司 基于规则引擎和maven插件实现的项目依赖管理方法及系统
CN110287700A (zh) * 2019-05-14 2019-09-27 北京邮电大学 一种iOS应用安全分析方法及装置
CN110532165A (zh) * 2019-07-05 2019-12-03 中国平安财产保险股份有限公司 应用程序安装包特性检测方法、装置、设备及存储介质
CN110598411A (zh) * 2019-09-23 2019-12-20 腾讯科技(深圳)有限公司 敏感信息检测方法、装置、存储介质和计算机设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
余凯等: "ARM二进制敏感性数据检测方法研究", 《现代电子技术》 *
李登;尹青;林键;吕雪峰;: "基于同源性分析的嵌入式设备固件漏洞检测", 计算机工程 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022048283A1 (zh) * 2020-09-03 2022-03-10 苏州浪潮智能科技有限公司 一种基于pca的密码硬编码检测方法、装置及介质
US11880471B2 (en) 2020-09-03 2024-01-23 Inspur Suzhou Intelligent Technology Co., Ltd. Password hardcoding checking method and apparatus based on PCA, and medium
CN112491816A (zh) * 2020-11-12 2021-03-12 支付宝(杭州)信息技术有限公司 业务数据处理方法及装置
US11809847B2 (en) 2022-03-16 2023-11-07 International Business Machines Corporation Hardcoded string detection
CN116346509A (zh) * 2023-06-01 2023-06-27 北京比瓴科技有限公司 一种硬编码凭证检测方法、系统、设备及可读存储介质
CN116346509B (zh) * 2023-06-01 2023-08-15 北京比瓴科技有限公司 一种硬编码凭证检测方法、系统、设备及可读存储介质

Also Published As

Publication number Publication date
CN111399848B (zh) 2023-05-23

Similar Documents

Publication Publication Date Title
CN111399848A (zh) 一种硬编码数据检测方法、装置、电子设备和介质
KR101337874B1 (ko) 파일 유전자 지도를 이용하여 파일의 악성코드 포함 여부를 판단하는 방법 및 시스템
CN111753701B (zh) 应用程序的违规检测方法、装置、设备和可读存储介质
US11899770B2 (en) Verification method and apparatus, and computer readable storage medium
US20230096921A1 (en) Image recognition method and apparatus, electronic device and readable storage medium
CN111552829B (zh) 用于分析图像素材的方法和装置
CN112632952A (zh) 一种对比文件的方法和装置
CN109753217B (zh) 动态键盘操作方法、装置、存储介质及电子设备
CN111753330A (zh) 数据泄露主体的确定方法、装置、设备和可读存储介质
US20190121968A1 (en) Key generation source identification device, key generation source identification method, and computer readable medium
CN111368128A (zh) 目标图片的识别方法、装置和计算机可读存储介质
CN110880023A (zh) 一种检测证件图片的方法及装置
CN115098877A (zh) 一种文件加解密的方法、装置、电子设备及介质
CN114924959A (zh) 页面测试方法、装置、电子设备和介质
CN114187658A (zh) 一种输入操作的识别方法及设备
Zhou et al. LogPruner: detect, analyze and prune logging calls in Android apps
CN112199731A (zh) 一种数据处理方法、装置及设备
CN113779616A (zh) 用于识别数据的方法和装置
CN112288060A (zh) 用于识别标签的方法和装置
CN112381090A (zh) 确定电话的方法、装置、电子设备和存储介质
CN111240696A (zh) 移动恶意程序相似模块提取方法
CN111414728A (zh) 数值数据展示方法、装置、计算机设备和存储介质
CN110958453A (zh) 图形标识符生成、识别方法、装置、电子设备及存储介质
CN112101281B (zh) 人脸图像的检测方法、装置
KR102662965B1 (ko) 구조화 문서에 대한 인공지능 기반의 악성코드 탐지 장치 및 방법

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
TA01 Transfer of patent application right

Effective date of registration: 20211018

Address after: 100176 101, floor 1, building 1, yard 7, Ruihe West 2nd Road, Beijing Economic and Technological Development Zone, Daxing District, Beijing

Applicant after: Apollo Intelligent Connectivity (Beijing) Technology Co., Ltd.

Address before: 2 / F, baidu building, 10 Shangdi 10th Street, Haidian District, Beijing 100085

Applicant before: BEIJING BAIDU NETCOM SCIENCE AND TECHNOLOGY Co.,Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant