CN106156348B - 一种数据库对象脚本危险操作的审计方法 - Google Patents
一种数据库对象脚本危险操作的审计方法 Download PDFInfo
- Publication number
- CN106156348B CN106156348B CN201610586138.3A CN201610586138A CN106156348B CN 106156348 B CN106156348 B CN 106156348B CN 201610586138 A CN201610586138 A CN 201610586138A CN 106156348 B CN106156348 B CN 106156348B
- Authority
- CN
- China
- Prior art keywords
- script
- risky operation
- database
- user
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/217—Database tuning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition 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 (4)
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字段判断对象是属于哪个用户的。
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 CN106156348A (zh) | 2016-11-23 |
CN106156348B true 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) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106789949B (zh) * | 2016-11-30 | 2019-11-26 | Oppo广东移动通信有限公司 | 一种语音数据的发送方法、装置及终端 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101751530A (zh) * | 2009-12-29 | 2010-06-23 | 成都市华为赛门铁克科技有限公司 | 检测漏洞攻击行为的方法及设备 |
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 | 北京金山安全软件有限公司 | 一种样本文件分析方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102082792A (zh) * | 2010-12-31 | 2011-06-01 | 成都市华为赛门铁克科技有限公司 | 钓鱼网页检测方法及设备 |
-
2016
- 2016-07-21 CN CN201610586138.3A patent/CN106156348B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101751530A (zh) * | 2009-12-29 | 2010-06-23 | 成都市华为赛门铁克科技有限公司 | 检测漏洞攻击行为的方法及设备 |
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 | 江苏华大天益电力科技有限公司 | 一种数据库审计系统及其审计方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106156348A (zh) | 2016-11-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7647645B2 (en) | System and method for securing computer system against unauthorized access | |
Mannhardt et al. | Decision mining revisited-discovering overlapping rules | |
Li et al. | Automatically classifying user requests in crowdsourcing requirements engineering | |
CN102279873B (zh) | 对数据、模式,以及应用程序的统一并发变更 | |
CN101165688B (zh) | 知识系统中资源之间的时间关联方法和系统 | |
Liang et al. | Automatic construction of an effective training set for prioritizing static analysis warnings | |
CN102804147A (zh) | 执行abap源代码的代码检查的代码检查执行系统 | |
CN104508657B (zh) | 用于产生语义标签的介导计算装置和关联的方法 | |
CN113158189B (zh) | 一种恶意软件分析报告生成方法、装置、设备和介质 | |
CN104541297B (zh) | 提供销售预测器spe的可扩展性的方法、系统和介质 | |
US11290325B1 (en) | System and method for change reconciliation in information technology systems | |
Pittke et al. | Spotting terminology deficiencies in process model repositories | |
Rocha et al. | A case-based reasoning system to support the global software development | |
CN106156348B (zh) | 一种数据库对象脚本危险操作的审计方法 | |
CN106227812B (zh) | 一种数据库对象脚本安全风险的审计方法 | |
Hall | Correctness by construction: Integrating formality into a commercial development process | |
Lüders et al. | Automated detection of typed links in issue trackers | |
CN109359481A (zh) | 一种基于bk树的反碰撞搜索约减方法 | |
Jiang et al. | Tapchain: A rule chain recognition model based on multiple features | |
CN107533559A (zh) | 数据结构、用于填充数据结构的模型以及使用数据结构对处理装置进行编程的方法 | |
CA3170100A1 (en) | Text processing method and device and computer-readable storage medium | |
Chandra et al. | Putting the tools to work: How to succeed with source code analysis | |
Jorshari et al. | Extracting security requirements from relevant laws and regulations | |
Cunha et al. | Navigating the Landscape of AI Ethics and Responsibility | |
KR20220065640A (ko) | 자가 지도학습을 통한 데이터 특성 학습 방법 및 가짜 정보 판별 방법 |
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 | ||
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. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |