数据库漏洞安全防护技巧

数据库漏洞的存在有多种方式,由于每一个现实的场景由多维组合而成,因此数据库漏洞对应也可以从不同角度归类划分 。这种分类将更有利于我们掌握对每种漏洞的防护技术 。
数据库安全实验室主要从以下九个角度对数据库漏洞进行分类介绍:‍‍‍‍
【数据库漏洞安全防护技巧】‍‍1.从漏洞作用范围划分
‍‍‍‍远程漏洞:攻击者可以利用并直接通过网络发起对数据库攻击的漏洞 。这类漏洞危害极大,攻击者能随心所欲的通过此漏洞危害网络上可辨识的数据库 。此类漏洞为黑客利用漏洞的主力 。
‍‍‍‍‍‍本地攻击:攻击者必须在本机拥有访问权限的前提下才能发起攻击的漏洞 。比较典型有本地权限提升漏洞,这类漏洞在数据库中广泛存在,能让普通用户获得最高管理员权限 。‍‍
‍‍‍‍2. 从漏洞危害等级划分
‍‍‍‍漏洞危害等级主要按照CVE的评分来划分,分为三个档次:0-3(LOW);4-6(MEDIUM)、7-10(HIGH) 。洞的危害等级划分是根据一个漏洞对数据库造成什么影响来划分的 。对数据库的响的机密性、安全性、可用性影响越大威胁等级越高,反之危险等级越低 。举例说明:
CVE-2006-1705危险等级是低 。它对数据库系统文件无任何影响,可能会导致数据库某些配置文件被修改,对数据库运行无任何影响 。
CVE-2006-1871危险等级是中 。它只是很可能造成某些信息泄露,有可能导致数据库某些配置文件被修改,可能导致数据库性能下降或小几率出现断链接 。
CVE-2006-3702危险等级是高 。它可以导致所有数据库系统文件泄露,数据库完全被破坏,可能导致数据库彻底宕机 。
‍‍3. 从受影响系统划分
‍‍‍‍现有的操作系统多种多样,并且每种系统对应多个版本 。操作系统主要分为以下五类:dos 系统、windows 系统、unix 系统、linux 系统和其他操作系统 。由于漏洞注入点地址和操作系统具体版本有着直接的关系,所以需要按照操作系统的具体版本来划分 。以oracle为例,由于不同的操作系统对缓冲区溢出的防守机制不同,导致这类漏洞基本不存在跨平台的可能 。‍‍
‍‍4.从漏洞的危害范围划分
‍‍‍‍‍‍漏洞危害是指漏洞被利用后造成的各种危害 。本文的危害是指对数据库的直接危害或利用数据库对其他系统造成的危害 。这些危害可以分为三类:
‍‍‍‍‍‍危害数据库自身,这类漏洞主要是对数据库自身进行攻击 。这类漏洞在下文中的“5. 从黑客入侵数据库的技术划分”一节中有详细讲解 。
‍‍‍‍危害数据库所在服务器,这类漏洞通过数据库对服务器进行攻击 。其中手段可分为:通过pl/SQL运行OS命令、通过JAVA运行OS命令、直接通过任务调度程序运行OS命令、使用ALTER SYSTEM运行OS命令,在oracle的某些版本中可以利用oracle编译本地pl/SQL应用程序的方式来运行OS命令 。
‍‍危害数据库所在系统的文件系统,这类漏洞通过数据库对服务器上的文件系统做攻击 。其中手段可分为:使用 UTL_FILE包访问文件系统、用JAVA访问文件系统、利用操作系统环境变量访问文件系统 。
危害数据库所在网络上的其他平台,这类漏洞通过数据库对网络上的其他数据库和服务进行入侵 。
‍‍5. 从黑客入侵数据库技术划分
‍‍‍‍‍‍5.1 SQL注入
‍‍‍‍‍‍SQL本文说所的SQLSQL注入不是web端的,而是针对数据库自身的SQLSQL注入漏洞 。两者差异很大 。pl/SQL注入的思想非常简单,
‍‍‍‍在正常的sql语句中通过嵌入、注释、转义符等手段加入针对数据库漏洞或数据库设置缺陷的畸形字符串或其他畸形输入 。通过单次或多次这种畸形输入逐步获取数据库中更高权限,最终获取数据库中敏感信息或直接夺取数据库DBA权限 。进而可能对数据库所在的网络环境和本地服务器造成危害 。
‍‍手段具体分为:
代码注入 。代码注入攻击多在支持多条SQL语句执行的数据中存在 。它是通过黑客在正常语句中加入恶意EXECUTE命令完成攻击的 。
函数调用注入 。函数调用注入是代码注入的变体,但确是整个SQL注入的核心 。它利用数据库存在漏洞将恶意语句注入其中 。具体手法分为:
注入select /delete/insert/update语句
注入函数
注入匿名pl/SQL块
游标注入
利用触发器
lateral提权技术


推荐阅读