CN112784290B - 数据导出工具安全性分析方法及系统及数据导出方法 - Google Patents

数据导出工具安全性分析方法及系统及数据导出方法 Download PDF

Info

Publication number
CN112784290B
CN112784290B CN202110119575.5A CN202110119575A CN112784290B CN 112784290 B CN112784290 B CN 112784290B CN 202110119575 A CN202110119575 A CN 202110119575A CN 112784290 B CN112784290 B CN 112784290B
Authority
CN
China
Prior art keywords
data
tool
export
data export
derivation
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.)
Active
Application number
CN202110119575.5A
Other languages
English (en)
Other versions
CN112784290A (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.)
Hubei Chenweixi Chain Information Technology Co ltd
Original Assignee
Hubei Chenweixi Chain Information 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 Hubei Chenweixi Chain Information Technology Co ltd filed Critical Hubei Chenweixi Chain Information Technology Co ltd
Priority to CN202110119575.5A priority Critical patent/CN112784290B/zh
Publication of CN112784290A publication Critical patent/CN112784290A/zh
Application granted granted Critical
Publication of CN112784290B publication Critical patent/CN112784290B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes

Landscapes

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

Abstract

本发明公开了数据导出工具安全性分析方法及系统及数据导出方法,涉及数据处理领域,所述方法包括:获得数据导出工具的源代码或目标代码;分析数据导出工具的源代码或目标代码获得数据导出工具分析结果,数据导出工具分析结果包括:数据导出工具的语法结构是否正确、数据导出工具是否存在非预期的结构、数据导出工具中功能模块之间的有向控制流图和数据导出工具中是否存在孤立功能模块;基于本次数据导出任务的需求和数据导出工具分析结果,判断数据导出工具执行本次数据导出任务是否安全;本发明能够确保导出工具的输入和输出的功能部分没有包含可疑的代码和逻辑,确保数据导出任务的安全可可靠。

Description

数据导出工具安全性分析方法及系统及数据导出方法
技术领域
本发明涉及数据处理领域,具体地,涉及数据导出工具安全性分析方法及系统及数据导出方法。
背景技术
数据的导出是数据处理和信息系统中的常用功能,对于数据导出的安全检测,有很多种方法,包括对导出工具的运行环境设置严格的访问控制策略、导出过程中执行实时动态监测和监控等方法,以确保导出过程的安全运行。但这些方法是在通过外部限制或运行过程中的监测监控来实现,对导出工具本身缺乏严格的检查和校验。
发明内容
针对现有技术中数据导出安全检测缺乏对数据导出工具的检测,本发明提供了据导出工具安全性分析方法及系统及数据导出方法。
为实现上述发明目的,本发明提供了数据导出工具安全性分析方法,所述方法包括:
获得数据导出工具的源代码或目标代码;
分析数据导出工具的源代码或目标代码获得数据导出工具分析结果,数据导出工具分析结果包括:数据导出工具的语法结构是否正确、数据导出工具是否存在非预期的结构、数据导出工具中功能模块之间的有向控制流图和数据导出工具中是否存在孤立功能模块;
基于本次数据导出任务的需求和数据导出工具分析结果,判断数据导出工具执行本次数据导出任务是否安全。
其中,本方法主要是的思路是对数据导出工具的源码或目标代码进行静态功能和逻辑分析,确保它的功能,主要就是输入和输出的功能部分没有包含可疑的代码和逻辑。通过对数据导出工具本身安全性的检测进而来提高数据导出的安全性。
优选的,本方法中对于没有源代码的数据导出工具,反编译数据导出工具获得目标代码。
优选的,本方法采用静态语法分析方式分析数据导出工具的源代码或目标代码。
优选的,本方法具体包括:
判断数据导出工具的源代码或目标代码所使用编程语言的种类;
基于编程语言的种类获得该类型编程语言的语法规则;
使用第一语法分析工具结合对应编程语言的语法规则,利用正则表达式和源代码或目标代码中与输入输出相关的表达式生成符号列表;
使用第二语法分析工具分析符号列表生成语法树,基于语法树判断数据导出工具的语法结构是否正确,以及数据导出工具是否存在非预期的结构。
优选的,本方法还包括:获得数据导出工具中的功能模块,基于功能模块之间的调用和转移关系,生成有向控制流图,有向控制流图中功能模块之间的有向边代表控制流路径,反向边表示有循环调用关系。
优选的,本方法还包括:遍历和判断有向控制流图,如果有向控制流图中存在孤立功能模块,则判断该数据导出工具存在可疑的行为,孤立功能模块为与其它功能模块没有调用关系的功能模块。
优选的,所述基于本次数据导出任务的需求和数据导出工具分析结果,判断数据导出工具执行本次数据导出任务是否安全,具体包括:
若数据导出任务中的操作仅包括输入数据源读取和输出目标写入,且数据导出工具中除输入数据源读取功能模块和输出目标写入功能模块外还包括其他功能模块,则判定该数据导出工具存在可疑或高风险行为;
若数据导出任务中的操作包括有除输入数据源读取和输出目标写入之外的其余操作,且数据导出工具中除输入数据源读取功能模块和输出目标写入功能模块外还包括预设功能模块,若预设功能模块同时满足以下条件则判断该数据导出工具安全,否则判断该数据导出工具存在可疑或高风险行为:
条件1:在该数据导出工具对应的有向控制流图中须存在输入数据源读取到所述预设模块的单向调用关系;
条件2:在该数据导出工具对应的有向控制流图中仅存在与输出目标写入所述预设模块的单向调用关系。
本发明还提供了数据导出方法,所述方法包括:
使用所述的数据导出工具安全性分析方法分析数据导出工具的安全性;
使用通过安全性分析后的数据导出工具从数据源导出数据。
其中,本发明中的数据导出方法通过判断数据导出工具的安全性,克服了传统方法没有考虑到数据导出工具本身安全性的缺陷。
优选的,所述方法还包括:
分析数据源,获得数据源的数据类型,包括:公开数据、专有数据和隐私数据;
对于公开数据,允许数据导出工具存在可疑或高风险行为;
对于专有数据,若数据导出工具存在可疑或高风险行为的,则转交人工或其它方式进一步的判定;
对于隐私数据,若数据导出工具存在可疑或高风险行为的,则禁止该数据导出工具执行本次数据导出任务。
其中,本方法中的数据导出方法除了需要判断数据导出工具的安全性,还包括:对数据导出工具的运行环境设置严格的访问控制策略、导出过程中执行实时动态监测和监控等方法,通过对数据导出工具本身的安全性监测以及考虑到对数据导出工具的运行环境设置严格的访问控制策略、导出过程中执行实时动态监测和监控,使得数据导出安全性考虑全面,包括了数据导出工具本身和外界的影响,使得数据导出安全性更高。
本发明还提供了数据导出工具安全性分析系统,所述系统包括:
获得单元,用于获得数据导出工具的源代码或目标代码;
分析单元,用于分析数据导出工具的源代码或目标代码获得数据导出工具分析结果,数据导出工具分析结果包括:数据导出工具的语法结构是否正确、数据导出工具是否存在非预期的结构、数据导出工具中功能模块之间的有向控制流图和数据导出工具中是否存在孤立功能模块;
判断单元,用于基于本次数据导出任务的需求和数据导出工具分析结果,判断数据导出工具执行本次数据导出任务是否安全。
本发明还提供了一种数据导出工具安全性分析装置,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述数据导出工具安全性分析方法的步骤。
本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现所述数据导出工具安全性分析方法的步骤。
本发明提供的一个或多个技术方案,至少具有如下技术效果或优点:
本发明通过对导出工具的源码或目标代码进行静态功能和逻辑分析,确保导出工具的输入和输出的功能部分没有包含可疑的代码和逻辑,确保数据导出任务的安全可可靠。相比其它安全检测方法,本发明所实现的方法能够在秒级或分钟级的时间内完成,具备高效、低成本的特点,可以与运行时的动态分析方法相结合,加强对数据导出的安全检测和监测,具备广泛的应用推广价值。
附图说明
此处所说明的附图用来提供对本发明实施例的进一步理解,构成本发明的一部分,并不构成对本发明实施例的限定;
图1为数据导出工具安全性分析方法的流程示意图;
图2为数据导出工具安全性分析系统的组成示意图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在相互不冲突的情况下,本发明的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述范围内的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
应当理解,本文使用的“系统”、“装置”、“单元”和/或“模组”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。
如本说明书和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。
本说明书中使用了流程图用来说明根据本说明书的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
实施例一
请参考图1,图1为数据导出工具安全性分析方法的流程示意图,本发明实施例一提供了数据导出工具安全性分析方法,所述方法包括:
获得数据导出工具的源代码或目标代码;
分析数据导出工具的源代码或目标代码获得数据导出工具分析结果,数据导出工具分析结果包括:数据导出工具的语法结构是否正确、数据导出工具是否存在非预期的结构、数据导出工具中功能模块之间的有向控制流图和数据导出工具中是否存在孤立功能模块;
基于本次数据导出任务的需求和数据导出工具分析结果,判断数据导出工具执行本次数据导出任务是否安全。
下面结合具体的例子对本方法进行详细介绍,但本方法并不局限于以下实施方式,本方法包括:
1.对于没有源代码的导出工具,对其执行反编译,获得目标代码;
2.对导出工具的源代码或目标代码进行静态语法分析:
2.1词法分析:使用语法分析工具lex,依据所使用编程语言的种类,比如Java、C/C++、C#、GO、Python等,基于各语言的语法规则,利用正则表达式将所有关键语法,重点是与输入输出相关的表达式生成符号列表;其中,本实施例中还可以采用其他语法分析工具,本发明对语法分析工具的类型不进行限定;
2.2语法分析:利用语法分析工具yacc,将步骤1生成的符号列表进一步生成语法树,以此判断导出工具的语法结构是否正确,以及是否存在非预期的结构;其中,本实施例中还可以采用其他语法分析工具,本发明对语法分析工具的类型不进行限定;
2.3控制流分析:生成有向控制流图,也即不同功能块的调用和转移关系,功能块间的有向边代表控制流路径,反向边表示有循环调用关系。比如导出工具通常分为四个功能块:配置文件读取、控制调度模块、输入数据源读取、输出目标写入。因此控制调度模块到配置文件读取存在单向的控制流;控制调度模块到输入数据源读取和输出目标写入二个功能模块存在单向的控制流路径;输入数据源读取和输出目标写入这二个功能模块存在循环控制流路径;
2.4孤立功能块分析:对步骤2.3的控制流分析结果进行遍历和判定,如果存在与其它功能模块没有调用关系的功能模块,即为孤立功能模块。存在孤立功能模块,则说明该导出工具存在可疑的行为;
3.根据导出任务的需求,结合步骤2的结果进行判定:
3.1如果导出任务只是纯数据导出,也即对源数据本身没有任何额外的分析和处理,导出工具仅仅起到一个数据管道的作用,则如果在2.3的控制流分析结果,除了输入数据源读取、输出目标写入这二个功能型模块外,还存在数据处理和分析模块,则判定该导出工具存在可疑或高风险行为;
3.1如果导出任务需要对源数据本身进行额外的分析和处理,比如格式的规范化、数据的过滤等,则该模块在2.3的控制流分析结果中,其必须存在输入数据源读取到该模块的单向调用关系,并且必须存在且只能存在与输出目标写入模块的单向调用关系,如果不满足这些条件,则判定该导出工具存在可疑或高风险行为;
4.根据源数据的安全等级,比如公开数据、专有数据、隐私数据等,根据步骤的判定结果执行不同的行为:
4.1对于公开数据,可以容忍导出工具存在可疑或高风险行为;
4.2对于专有数据,如果步骤3判断导出工具存在可疑或高风险行为的,则需要交由人工或其它方式进一步的判定,以确保安全;
4.3对于隐私数据,如果步骤3判断导出工具存在可疑或高风险行为的,则禁止该导出工具执行本次数据导出任务。
实施例二
本发明实施例二提供了数据导出方法,所述方法包括:
使用所述的数据导出工具安全性分析方法分析数据导出工具的安全性;
使用通过安全性分析后的数据导出工具从数据源导出数据。
其中,本发明中的数据导出方法通过判断数据导出工具的安全性,克服了传统方法没有考虑到数据导出工具本身安全性的缺陷。
其中,在本发明实施例二中,所述方法还包括:
分析数据源,获得数据源的数据类型,包括:公开数据、专有数据和隐私数据;
对于公开数据,允许数据导出工具存在可疑或高风险行为;
对于专有数据,若数据导出工具存在可疑或高风险行为的,则转交人工或其它方式进一步的判定;
对于隐私数据,若数据导出工具存在可疑或高风险行为的,则禁止该数据导出工具执行本次数据导出任务。
其中,本方法中的数据导出方法除了需要判断数据导出工具的安全性,还包括:对数据导出工具的运行环境设置严格的访问控制策略、导出过程中执行实时动态监测和监控等方法,通过对数据导出工具本身的安全性监测以及考虑到对数据导出工具的运行环境设置严格的访问控制策略、导出过程中执行实时动态监测和监控,使得数据导出安全性考虑全面,包括了数据导出工具本身和外界的影响,使得数据导出安全性更高。
实施例三
请参考图2,图2为数据导出工具安全性分析系统的组成示意图,本发明实施例三提供了数据导出工具安全性分析系统,所述系统包括:
获得单元,用于获得数据导出工具的源代码或目标代码;
分析单元,用于分析数据导出工具的源代码或目标代码获得数据导出工具分析结果,数据导出工具分析结果包括:数据导出工具的语法结构是否正确、数据导出工具是否存在非预期的结构、数据导出工具中功能模块之间的有向控制流图和数据导出工具中是否存在孤立功能模块;
判断单元,用于基于本次数据导出任务的需求和数据导出工具分析结果,判断数据导出工具执行本次数据导出任务是否安全。
实施例三
本发明实施例三提供了一种数据导出工具安全性分析装置,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述数据导出工具安全性分析方法的步骤。
其中,所述处理器可以是中央处理器(CPU,Central Processing Unit),还可以是其他通用处理器、数字信号处理器(digital signal processor)、专用集成电路(Application Specific Integrated Circuit)、现成可编程门阵列(Fieldprogrammablegate array)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的数据,实现发明中数据导出工具安全性分析装置的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等。此外,存储器可以包括高速随机存取存储器、还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡,安全数字卡,闪存卡、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
实施例四
本发明实施例四提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现所述数据导出工具安全性分析方法的步骤。
所述数据导出工具安全性分析装置如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序可存储于一计算机可读存介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码、对象代码形式、可执行文件或某些中间形式等。所述计算机可读取介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器、随机存储器、点载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减。
上述本发明实施例中的技术方案,至少具有如下的技术效果或优点:
本发明通过对导出工具的源码或目标代码进行静态功能和逻辑分析,确保导出工具的输入和输出的功能部分没有包含可疑的代码和逻辑,确保数据导出任务的安全可可靠。相比其它安全检测方法,本发明所实现的方法能够在秒级或分钟级的时间内完成,具备高效、低成本的特点,可以与运行时的动态分析方法相结合,加强对数据导出的安全检测和监测,具备广泛的应用推广价值。
上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本说明书的限定。虽然此处并没有明确说明,本领域技术人员可能会对本说明书进行各种修改、改进和修正。该类修改、改进和修正在本说明书中被建议,所以该类修改、改进、修正仍属于本说明书示范实施例的精神和范围。
同时,本说明书使用了特定词语来描述本说明书的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本说明书至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本说明书的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
此外,本领域技术人员可以理解,本说明书的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改进。相应地,本说明书的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。此外,本说明书的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。
计算机存储介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等,或合适的组合形式。计算机存储介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机存储介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、RF、或类似介质,或任何上述介质的组合。
本说明书各部分操作所需的计算机程序编码可以用任意一种或多种程序语言编写,包括面向对象编程语言如Java、Scala、Smalltalk、Eiffel、JADE、Emerald、C++、C#、VB.NET、Python等,常规程序化编程语言如C语言、Visual Basic、Fortran 2003、Perl、COBOL 2002、PHP、ABAP,动态编程语言如Python、Ruby和Groovy,或其他编程语言等。该程序编码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或服务器上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(LAN)或广域网(WAN),或连接至外部计算机(例如通过因特网),或在云计算环境中,或作为服务使用如软件即服务(SaaS)。
此外,除非权利要求中明确说明,本说明书所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本说明书流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本说明书实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的服务器或移动设备上安装所描述的系统。
同理,应当注意的是,为了简化本说明书披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本说明书实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本说明书对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
针对本说明书引用的每个专利、专利申请、专利申请公开物和其他材料,如文章、书籍、说明书、出版物、文档等,特此将其全部内容并入本说明书作为参考。与本说明书内容不一致或产生冲突的申请历史文件除外,对本说明书权利要求最广范围有限制的文件(当前或之后附加于本说明书中的)也除外。需要说明的是,如果本说明书附属材料中的描述、定义、和/或术语的使用与本说明书所述内容有不一致或冲突的地方,以本说明书的描述、定义和/或术语的使用为准。
最后,应当理解的是,本说明书中所述实施例仅用以说明本说明书实施例的原则。其他的变形也可能属于本说明书的范围。因此,作为示例而非限制,本说明书实施例的替代配置可视为与本说明书的教导一致。相应地,本说明书的实施例不仅限于本说明书明确介绍和描述的实施例。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (9)

1.一种数据导出工具安全性分析方法,其特征在于,所述方法包括:
获得数据导出工具的源代码或目标代码;
分析数据导出工具的源代码或目标代码获得数据导出工具分析结果,数据导出工具分析结果包括:数据导出工具的语法结构是否正确、数据导出工具是否存在非预期的结构、数据导出工具中功能模块之间的有向控制流图和数据导出工具中是否存在孤立功能模块;
基于本次数据导出任务的需求和数据导出工具分析结果,判断数据导出工具执行本次数据导出任务是否安全;
所述基于本次数据导出任务的需求和数据导出工具分析结果,判断数据导出工具执行本次数据导出任务是否安全,具体包括:
若数据导出任务中的操作仅包括输入数据源读取和输出目标写入,且数据导出工具中除输入数据源读取功能模块和输出目标写入功能模块外还包括其他功能模块,则判定该数据导出工具存在可疑或高风险行为;
若数据导出任务中的操作包括有除输入数据源读取和输出目标写入之外的其余操作,且数据导出工具中除输入数据源读取功能模块和输出目标写入功能模块外还包括预设功能模块,若预设功能模块同时满足以下条件则判断该数据导出工具安全,否则判断该数据导出工具存在可疑或高风险行为:
条件1:在该数据导出工具对应的有向控制流图中存在输入数据源读取到所述预设功能模块的单向调用关系;
条件2:在该数据导出工具对应的有向控制流图中存在与输出目标写入所述预设功能模块的单向调用关系。
2.根据权利要求1所述的数据导出工具安全性分析方法,其特征在于,本方法中对于没有源代码的数据导出工具,反编译数据导出工具获得目标代码。
3.根据权利要求1所述的数据导出工具安全性分析方法,其特征在于,本方法采用静态语法分析方式分析数据导出工具的源代码或目标代码。
4.根据权利要求1所述的数据导出工具安全性分析方法,其特征在于:
判断数据导出工具的源代码或目标代码所使用编程语言的种类;
基于编程语言的种类获得该类型编程语言的语法规则;
使用第一语法分析工具结合对应编程语言的语法规则,利用正则表达式和源代码或目标代码中与输入输出相关的表达式生成符号列表;
使用第二语法分析工具分析符号列表生成语法树,基于语法树判断数据导出工具的语法结构是否正确,以及数据导出工具是否存在非预期的结构。
5.根据权利要求1所述的数据导出工具安全性分析方法,其特征在于,本方法包括:获得数据导出工具中的功能模块,基于功能模块之间的调用和转移关系,生成有向控制流图,有向控制流图中功能模块之间的有向边代表控制流路径,反向边表示有循环调用关系。
6.根据权利要求5所述的数据导出工具安全性分析方法,其特征在于,遍历和判断有向控制流图,如果有向控制流图中存在孤立功能模块,则判断该数据导出工具存在可疑的行为,孤立功能模块为与其它功能模块没有调用关系的功能模块。
7.一种数据导出方法,其特征在于,所述方法包括:
使用权利要求1-6中任意一个所述的数据导出工具安全性分析方法分析数据导出工具的安全性;
使用通过安全性分析后的数据导出工具从数据源导出数据。
8.根据权利要求7所述的数据导出方法,其特征在于,所述方法还包括:
分析数据源,获得数据源的数据类型,包括:公开数据、专有数据和隐私数据;
对于公开数据,允许数据导出工具存在可疑或高风险行为;
对于专有数据,若数据导出工具存在可疑或高风险行为的,则转交人工或其它方式进一步的判定;
对于隐私数据,若数据导出工具存在可疑或高风险行为的,则禁止该数据导出工具执行本次数据导出任务。
9.一种数据导出工具安全性分析系统,其特征在于,所述系统包括:
获得单元,用于获得数据导出工具的源代码或目标代码;
分析单元,用于分析数据导出工具的源代码或目标代码获得数据导出工具分析结果,数据导出工具分析结果包括:数据导出工具的语法结构是否正确、数据导出工具是否存在非预期的结构、数据导出工具中功能模块之间的有向控制流图和数据导出工具中是否存在孤立功能模块;
判断单元,用于基于本次数据导出任务的需求和数据导出工具分析结果,判断数据导出工具执行本次数据导出任务是否安全;
所述基于本次数据导出任务的需求和数据导出工具分析结果,判断数据导出工具执行本次数据导出任务是否安全,具体包括:
若数据导出任务中的操作仅包括输入数据源读取和输出目标写入,且数据导出工具中除输入数据源读取功能模块和输出目标写入功能模块外还包括其他功能模块,则判定该数据导出工具存在可疑或高风险行为;
若数据导出任务中的操作包括有除输入数据源读取和输出目标写入之外的其余操作,且数据导出工具中除输入数据源读取功能模块和输出目标写入功能模块外还包括预设功能模块,若预设功能模块同时满足以下条件则判断该数据导出工具安全,否则判断该数据导出工具存在可疑或高风险行为:
条件1:在该数据导出工具对应的有向控制流图中存在输入数据源读取到所述预设功能模块的单向调用关系;
条件2:在该数据导出工具对应的有向控制流图中存在与输出目标写入所述预设功能模块的单向调用关系。
CN202110119575.5A 2021-01-28 2021-01-28 数据导出工具安全性分析方法及系统及数据导出方法 Active CN112784290B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110119575.5A CN112784290B (zh) 2021-01-28 2021-01-28 数据导出工具安全性分析方法及系统及数据导出方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110119575.5A CN112784290B (zh) 2021-01-28 2021-01-28 数据导出工具安全性分析方法及系统及数据导出方法

Publications (2)

Publication Number Publication Date
CN112784290A CN112784290A (zh) 2021-05-11
CN112784290B true CN112784290B (zh) 2022-07-19

Family

ID=75759461

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110119575.5A Active CN112784290B (zh) 2021-01-28 2021-01-28 数据导出工具安全性分析方法及系统及数据导出方法

Country Status (1)

Country Link
CN (1) CN112784290B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116186705A (zh) * 2022-11-17 2023-05-30 北京东方通科技股份有限公司 基于源代码静态分析的软件安全代码分析器及其检测方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100461132C (zh) * 2007-03-02 2009-02-11 北京邮电大学 基于源代码静态分析的软件安全代码分析器及其检测方法
US8181167B2 (en) * 2008-01-09 2012-05-15 Kan Zhao Method and system for presenting and analyzing software source code through intermediate representation
CN100562879C (zh) * 2008-05-16 2009-11-25 浙江大学 一种用于嵌入式处理器功能验证的动态仿真平台方法
CN102945203B (zh) * 2012-10-26 2016-04-13 深圳出入境检验检疫局信息中心 一种用于移动互联网应用的代码安全测试方法
CN103793652A (zh) * 2012-10-29 2014-05-14 广东电网公司信息中心 一种基于静态分析的应用系统代码安全扫描装置
CN103927473A (zh) * 2013-01-16 2014-07-16 广东电网公司信息中心 检测移动智能终端的源代码安全的方法、装置及系统
KR101906004B1 (ko) * 2016-11-29 2018-10-10 한국전력공사 바이너리 코드 기반 임베디드 소프트웨어 취약점 분석 장치 및 그 방법
CN111240982A (zh) * 2020-01-09 2020-06-05 华东师范大学 源代码静态分析方法
CN111240687A (zh) * 2020-01-09 2020-06-05 华东师范大学 源代码静态分析装置

Also Published As

Publication number Publication date
CN112784290A (zh) 2021-05-11

Similar Documents

Publication Publication Date Title
US9715593B2 (en) Software vulnerabilities detection system and methods
US20190205543A1 (en) System and method for java deserialization vulnerability detection
US9747187B2 (en) Simulating black box test results using information from white box testing
CN110414261B (zh) 一种数据脱敏方法、装置、设备及可读存储介质
US8671397B2 (en) Selective data flow analysis of bounded regions of computer software applications
US9292693B2 (en) Remediation of security vulnerabilities in computer software
CN106874758B (zh) 一种识别文档代码的方法和装置
CN118051920B (zh) 一种漏洞验证请求包生成方法、装置、设备及存储介质
CN112784290B (zh) 数据导出工具安全性分析方法及系统及数据导出方法
US8650546B2 (en) Static analysis based on observed string values during execution of a computer-based software application
CN115310087A (zh) 一种基于抽象语法树的网站后门检测方法和系统
CN108446538B (zh) 基于状态、符号执行和单点逻辑的源代码加固方法及装置
CN107368713B (zh) 保护软件的方法和安全组件
WO2021038780A1 (ja) バックドア検査装置、バックドア検査方法、及び非一時的なコンピュータ可読媒体
US9350723B2 (en) Determination and classification of defense measures in web applications
CN114510723B (zh) 一种智能合约权限管理漏洞检测方法及装置
US11995192B2 (en) System for static analysis of binary executable code and source code using fuzzy logic and method thereof
US9088604B1 (en) Systems and methods for treating locally created files as trustworthy
CN112883093B (zh) 基于动态指令流检测的数据导出方法及系统及装置及介质
Zhou et al. LogPruner: detect, analyze and prune logging calls in Android apps
CN112783961B (zh) 基于托管运行的数据导出方法及系统
KR102113966B1 (ko) 분석회피기법 우회 장치, 방법 및 이를 수행하기 위한 프로그램을 기록한 기록매체
CN108446541B (zh) 基于有限状态机和符号执行的源代码加固方法及装置
CN112230935B (zh) 一种应用内的隐私风险检测方法、装置以及设备
CN112597487B (zh) 一种基于.net访问权限管理方法和装置以及设备

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
GR01 Patent grant
GR01 Patent grant