CN106156348A - 一种数据库对象脚本危险操作的审计方法 - Google Patents

一种数据库对象脚本危险操作的审计方法 Download PDF

Info

Publication number
CN106156348A
CN106156348A CN201610586138.3A CN201610586138A CN106156348A CN 106156348 A CN106156348 A CN 106156348A CN 201610586138 A CN201610586138 A CN 201610586138A CN 106156348 A CN106156348 A CN 106156348A
Authority
CN
China
Prior art keywords
script
user
risky operation
database
risky
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
CN201610586138.3A
Other languages
English (en)
Other versions
CN106156348B (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.)
DBAPPSecurity Co Ltd
Original Assignee
DBAPPSecurity 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 DBAPPSecurity Co Ltd filed Critical DBAPPSecurity Co Ltd
Priority to CN201610586138.3A priority Critical patent/CN106156348B/zh
Publication of CN106156348A publication Critical patent/CN106156348A/zh
Application granted granted Critical
Publication of CN106156348B publication Critical patent/CN106156348B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/217Database tuning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及信息安全技术,旨在提供一种数据库对象脚本危险操作的审计方法。该种数据库对象脚本危险操作的审计方法包括下述步骤:扫描数据库的系统表,获取所有用户编写的数据库对象脚本;将危险操作关键字符表导入到内存中;对脚本根据对象类型、所属用户进行关键字智能匹配分析,判断是否有危险操作;将得出的危险操作结果,根据对象所属的用户和关键字进行危险等级判断,分等级列出有危险操作的脚本所在对象名和行号,形成扫描报告输出。本发明能快速自动发现数据库中所有用户编写的脚本里的危险操作,利用智能匹配以及用户对象识别技术降低漏报误报率;并且用户可以扩展危险操作的范围,自定义关键字。

Description

一种数据库对象脚本危险操作的审计方法
技术领域
本发明是关于信息安全技术领域,特别涉及一种数据库对象脚本危险操作的审计方法。
背景技术
随着信息技术的发展,数据库成了很多企业的核心资产,特别是金融、互联网等企业,数据库一旦出现故障整个企业的业务立刻瘫痪,因此数据库安全越来越受到人们的重视。目前数据库系统越来越先进,功能也越来越强大,人们可以在数据库上开发各种对象供应用程序调用,比如各种存储过程、视图、触发器等,这方便了应用程序的开发,但同时也带来了各种安全问题。由于这些对象运行在数据库服务器上,能直接操作数据库,如果数据库对象开发人员开发时无意或有意的犯错,就可能会在数据库上留下后门或使数据库丢失数据,这些都会对数据库造成巨大的影响。因此对这些对象脚本的安全审计非常重要,但是很多时候由于审计人员经验欠缺或疏忽,这些对象脚本的危险操作不能被全部发现。而且很多时候由于没有审计人员,这些脚本直接写进了数据库。因此必须有方法能快速全面地发现脚本中的危险操作,降低脚本安全审计的难度。
目前常见的数据库安全扫描软件主要检测数据库系统配置风险和数据库软件本身的安全漏洞,分析的都是数据库系统的信息,没有对数据库对象脚本进行分析的功能。
发明内容
本发明的主要目的在于克服现有技术中的不足,提供一种能够发现数据库对象脚本危险操作的方法。为解决上述技术问题,本发明的解决方案是:
提供一种数据库对象脚本危险操作的审计方法,包括下述步骤:
(1)扫描数据库的系统表,获取所有用户编写的数据库对象脚本;
(2)将危险操作关键字符表导入到内存中;
(3)对脚本根据对象类型、所属用户进行关键字智能匹配分析,判断是否有危险操作;具体包括下述子步骤:
步骤D:取步骤(1)返回的一个对象的脚本数据;
步骤E:对步骤D中选取的对象脚本,根据对象的类型选择危险操作关键字符表中不同的关键字(例如类型为VIEW的对象脚本,如果脚本里有INSERT、DELETE、UPDATE关键字就可能是危险操作);
步骤F:对步骤D中选取的对象脚本,根据对象所属用户选择危险操作关键字符表中不同的关键字(例如对象所属的用户是普通用户,如果脚本里包含了对系统表、业务核心表的操作,就可能是危险操作);
步骤G:对步骤D中选取的对象脚本,利用步骤E、步骤F中选取的所有关键字,采用智能匹配方法判断是否包含危险操作(比如:对类型VIEW,可以用\bUPDATE[]+\w*[]+SET的格式进行匹配,\bUPDATE的意思是一个UPDATE单词,像AUPDATE、SETUPDATE就不符合这个格式,能排除;[]+的意思是一个或多个空格;\w*的意思是一个或多个字母或数字或下划线,用来匹配数据库里的一个表名;[]+SET的意思是一个或多个空格后跟单词SET,SET是UPDATE关键字的副关键字);
步骤H:循环执行步骤D、步骤E、步骤F、步骤G,直至完成对步骤(1)返回的所有对象脚本数据进行判断;
(4)将步骤H中得出的危险操作结果,根据对象所属的用户和关键字进行危险等级判断(比如系统管理员创建的对象危险等级高,对数据库权限进行操作的一些关键字危险等级高),根据危险程度(高危、中危、低危),分等级列出有危险操作的脚本所在对象名和行号,形成扫描报告输出。
在本发明中,所述步骤(1)中,获取的数据库对象脚本包括存储过程、视图、触发器等数据库系统中用户能二次开发的对象。
在本发明中,所述步骤(1)具体包括下述子步骤:
步骤A:连接数据库;
步骤B:用SELECT语句获取数据库中各个对象的脚本(以Oracle数据库为例,获取数据库的系统视图All_SOURCE里各个对象的脚本),同时用WHERE语句排除系统的对象,得到用户编写的对象脚本;
步骤C:将步骤B中获得的用户对象脚本列表按对象类型和所属用户区分排序后返回。
在本发明中,所述步骤C中,对用户对象脚本根据类型和所属用户分类,包括下述操作:
操作a:获取一个用户编写的对象;
操作b:根据TYPE字段判断用户对象的类别;
操作c:根据OWNER字段判断对象是属于哪个用户的。
在本发明中,所述步骤(2)中,危险操作关键字符表采用默认的危险操作关键字符表或者自定义的危险操作关键字符表,自定义的危险操作关键字符表是指用户根据自己系统的特点定义新的关键字添加到默认的危险操作关键字符表。
与现有技术相比,本发明的有益效果是:
本发明能快速自动发现数据库中所有用户编写的脚本里的危险操作,利用智能匹配以及用户对象识别技术降低漏报误报率;并且用户可以扩展危险操作的范围,自定义关键字。
本发明采用危险等级区分和脚本定位技术,使用户能快速定位需要及时处理的危险操作。
附图说明
图1为本发明的工作流程图。
具体实施方式
首先需要说明的是,本发明涉及数据库技术,是计算机技术在信息安全技术领域的一种应用。在本发明的实现过程中,会涉及到多个软件功能模块的应用。申请人认为,如在仔细阅读申请文件、准确理解本发明的实现原理和发明目的以后,在结合现有公知技术的情况下,本领域技术人员完全可以运用其掌握的软件编程技能实现本发明,凡本发明申请文件提及的均属此范畴,申请人不再一一列举。
下面结合附图与具体实施方式对本发明作进一步详细描述:
如图1所示,假设要对Oracle10g数据库进行对象脚本危险操作审计,具体包括下述步骤:
步骤A:连接数据库。
步骤B:用SELECT语句获取数据库的系统视图All_SOURCE里各个对象的脚本,同时用WHERE语句排除系统用户的对象,得到用户编写的对象脚本。
步骤C:将步骤B中获得的用户对象脚本列表根据TYPE字段按对象类型排序和根据OWNER字段按所属用户区分排序后返回。
步骤D:定义关键字符表;例如针对VIEW类型的对象脚本,定义\bUPDATE[]+\w*[]+SET、\bINSERT[]+INTO[]+\w*、\bDELETE[]+FROM[]+\w*。
步骤E:将整理好的关键字符表加载到内存中。
步骤F:取步骤C返回的一个对象的脚本数据。
步骤G:对步骤F中选取的对象脚本,根据对象的类型选择不同的关键字;例如类型为VIEW的对象脚本,选择针对性的\bUPDATE[]+\w*[]+SET、\bINSERT[]+INTO[]+\w*、\bDELETE[]+FROM[]+\w*等关键字。
步骤H:对步骤F中选取的对象脚本,根据对象所属用户选择不同的关键字;例如对象所属的用户是普通用户,选择针对性的\bsys.user$\b、\bsys.obj$\b、\bsys.sysauth$\b等关键字。
步骤I:对步骤H选好关键字的对象脚本采用智能匹配的方法判断是否包含危险操作。
匹配方法为:例如对类型VIEW,可以用\bUPDATE[]+\w*[]+SET的格式进行匹配;\bUPDATE的意思是一个UPDATE单词,像AUPDATE、SETUPDATE就不符合这个格式,能排除;[]+的意思是一个或多个空格;\w*的意思是一个或多个字母或数字或下划线,用来匹配数据库里的一个表名;[]+SET的意思是一个或多个空格后跟单词SET,SET是UPDATE关键字的副关键字。
通过这样的智能匹配,可以减少漏报误报,审计出真正的危险操作关键字。以上仅对UPDATE关键字的智能匹配方法做了简单说明,其他的关键字有各自不同的匹配格式,由于数量多,不一一说明。
步骤J:循环执行步骤F、步骤G、步骤H、步骤I,直至完成对步骤C返回的所有对象脚本数据进行判断。
步骤K:将步骤J中得出的危险操作结果根据高危、中危、低危分等级列出,并显示危险操作所在的对象名称和行号,形成扫描报告提供给用户。
最后,需要注意的是,以上列举的仅是本发明的具体实施例。显然,本发明不限于以上实施例,还可以有很多变形。本领域的普通技术人员能从本发明公开的内容中直接导出或联想到的所有变形,均应认为是本发明的保护范围。

Claims (5)

1.一种数据库对象脚本危险操作的审计方法,其特征在于,包括下述步骤:
(1)扫描数据库的系统表,获取所有用户编写的数据库对象脚本;
(2)将危险操作关键字符表导入到内存中;
(3)对脚本根据对象类型、所属用户进行关键字智能匹配分析,判断是否有危险操作;具体包括下述子步骤:
步骤D:取步骤(1)返回的一个对象的脚本数据;
步骤E:对步骤D中选取的对象脚本,根据对象的类型选择危险操作关键字符表中不同的关键字;
步骤F:对步骤D中选取的对象脚本,根据对象所属用户选择危险操作关键字符表中不同的关键字;
步骤G:对步骤D中选取的对象脚本,利用步骤E、步骤F中选取的所有关键字,采用智能匹配方法判断是否包含危险操作;
步骤H:循环执行步骤D、步骤E、步骤F、步骤G,直至完成对步骤(1)返回的所有对象脚本数据进行判断;
(4)将步骤H中得出的危险操作结果,根据对象所属的用户和关键字进行危险等级判断,根据危险程度,分等级列出有危险操作的脚本所在对象名和行号,形成扫描报告输出。
2.根据权利要求1所述的一种数据库对象脚本危险操作的审计方法,其特征在于,所述步骤(1)中,获取的数据库对象脚本包括存储过程、视图、触发器等数据库系统中用户能二次开发的对象。
3.根据权利要求1所述的一种数据库对象脚本危险操作的审计方法,其特征在于,所述步骤(1)具体包括下述子步骤:
步骤A:连接数据库;
步骤B:用SELECT语句获取数据库中各个对象的脚本,同时用WHERE语句排除系统的对象,得到用户编写的对象脚本;
步骤C:将步骤B中获得的用户对象脚本列表按对象类型和所属用户区分排序后返回。
4.根据权利要求3所述的一种数据库对象脚本危险操作的审计方法,其特征在于,所述步骤C中,对用户对象脚本根据类型和所属用户分类,包括下述操作:
操作a:获取一个用户编写的对象;
操作b:根据TYPE字段判断用户对象的类别;
操作c:根据OWNER字段判断对象是属于哪个用户的。
5.根据权利要求1所述的一种数据库对象脚本危险操作的审计方法,其特征在于,所述步骤(2)中,危险操作关键字符表采用默认的危险操作关键字符表或者自定义的危险操作关键字符表,自定义的危险操作关键字符表是指用户根据自己系统的特点定义新的关键字添加到默认的危险操作关键字符表。
CN201610586138.3A 2016-07-21 2016-07-21 一种数据库对象脚本危险操作的审计方法 Active CN106156348B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610586138.3A CN106156348B (zh) 2016-07-21 2016-07-21 一种数据库对象脚本危险操作的审计方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610586138.3A CN106156348B (zh) 2016-07-21 2016-07-21 一种数据库对象脚本危险操作的审计方法

Publications (2)

Publication Number Publication Date
CN106156348A true CN106156348A (zh) 2016-11-23
CN106156348B CN106156348B (zh) 2019-06-28

Family

ID=58060032

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610586138.3A Active CN106156348B (zh) 2016-07-21 2016-07-21 一种数据库对象脚本危险操作的审计方法

Country Status (1)

Country Link
CN (1) CN106156348B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106789949A (zh) * 2016-11-30 2017-05-31 广东欧珀移动通信有限公司 一种语音数据的发送方法、装置及终端

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101751530A (zh) * 2009-12-29 2010-06-23 成都市华为赛门铁克科技有限公司 检测漏洞攻击行为的方法及设备
US20130086677A1 (en) * 2010-12-31 2013-04-04 Huawei Technologies Co., Ltd. Method and device for detecting phishing web page
CN103839008A (zh) * 2014-03-21 2014-06-04 彭岸峰 一句话脚本后门和php变量函数后门免疫安全服务
CN104090941A (zh) * 2014-06-30 2014-10-08 江苏华大天益电力科技有限公司 一种数据库审计系统及其审计方法
CN103455753B (zh) * 2012-05-30 2016-07-13 北京金山安全软件有限公司 一种样本文件分析方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101751530A (zh) * 2009-12-29 2010-06-23 成都市华为赛门铁克科技有限公司 检测漏洞攻击行为的方法及设备
US20130086677A1 (en) * 2010-12-31 2013-04-04 Huawei Technologies Co., Ltd. Method and device for detecting phishing web page
CN103455753B (zh) * 2012-05-30 2016-07-13 北京金山安全软件有限公司 一种样本文件分析方法及装置
CN103839008A (zh) * 2014-03-21 2014-06-04 彭岸峰 一句话脚本后门和php变量函数后门免疫安全服务
CN104090941A (zh) * 2014-06-30 2014-10-08 江苏华大天益电力科技有限公司 一种数据库审计系统及其审计方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106789949A (zh) * 2016-11-30 2017-05-31 广东欧珀移动通信有限公司 一种语音数据的发送方法、装置及终端
CN106789949B (zh) * 2016-11-30 2019-11-26 Oppo广东移动通信有限公司 一种语音数据的发送方法、装置及终端

Also Published As

Publication number Publication date
CN106156348B (zh) 2019-06-28

Similar Documents

Publication Publication Date Title
Aggarwal et al. Detecting duplicate bug reports with software engineering domain knowledge
CA2940760C (en) Intelligent data munging
Li et al. Detecting fake reviews utilizing semantic and emotion model
CN102393840B (zh) 实体卡的实体检测和提取
US8615516B2 (en) Grouping similar values for a specific attribute type of an entity to determine relevance and best values
US20050097364A1 (en) System and method for securing computer system against unauthorized access
CN109952583A (zh) 神经网络的半监督训练
US20110161069A1 (en) Method, computer program product and apparatus for providing a threat detection system
CN103810233A (zh) 内容管理
CN109804363A (zh) 使用通过示例的格式修改的连接
US20100161603A1 (en) Grouping methods for best-value determination from values for an attribute type of specific entity
CN102804147A (zh) 执行abap源代码的代码检查的代码检查执行系统
US20220358493A1 (en) Data acquisition method and apparatus for analyzing cryptocurrency transaction
Zilberman et al. Analyzing group communication for preventing data leakage via email
CN111931488B (zh) 用于验证判断结果准确性的方法、装置、电子设备及介质
CN103810232A (zh) 内容管理
Pittke et al. Spotting terminology deficiencies in process model repositories
CN109783638A (zh) 一种基于半监督学习的用户评论聚类方法
Ayyagari et al. Firm innovation in emerging markets: The roles of governance and finance
Lüders et al. Automated detection of typed links in issue trackers
CN106227812B (zh) 一种数据库对象脚本安全风险的审计方法
CN106156348A (zh) 一种数据库对象脚本危险操作的审计方法
CN116562260B (zh) 一种文本信息处理方法及处理系统
Aoki et al. Verifying security requirements using model checking technique for UML-based requirements specification
Ledru et al. Validation of security policies by the animation of z specifications

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: 310051 No. 188 Lianhui Street, Xixing Street, Binjiang District, Hangzhou City, Zhejiang Province

Applicant after: Hangzhou Annan information technology Limited by Share Ltd

Address before: 310051 15-storey Zhongcai Building, Tonghe Road, Binjiang District, Hangzhou City, Zhejiang Province

Applicant before: Dbappsecurity Co.,ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant