1、基本概念
-
数据库是以一定方式储存在一起,可供多个用户共享,具有极小冗余度,与应用程序彼此独立的数据集合。
-
数据库攻击是指攻击者针对数据库通过网络攻击手段实施口令入侵、提权攻击、数据窃取、系统控制、拒绝服务等活动,以达到获取机密数据或者进行网络渗透的目的
2、攻击手段
-
数据库口令入侵
-
通常安装完毕的数据库系统,默认开放超级用户,并且设置了默认口令。管理员需要为其设置强度更高的密码,并限制用户登录地址。
-
针对数据库口令入侵的攻击方式,从本质上讲,就是通过口令猜解去获取数据库账户的合法权限
-
包括基于字典的口令破解和暴力穷尽破解
-
基于字典的口令破解:基于字典的口令破解针对性更强,效率更高,但是成功的关键在于字典文件的质量
-
攻击者在字典这个有限域下,获取数据库的账户和口令,尝试与数据库产生连接
-
-
暴力穷尽破解:暴力穷尽破解的覆盖率更高,但是耗时更长
-
攻击者根据实际情况指定账户和口令可能使用的字符集和最大长度,再通过交叉组合的方式,在字符空间内遍历取值,逐一与数据库尝试连接,最终确定正确的账户及口令
-
-
-
-
常用工具
-
Hydra
-
它基于网络服务协议构造攻击数据,覆盖了众多常见的网络服务,也提供了针对MSSQL、MySQL和Oracle等数据库的口令破解功能,其最大的特点是支持协议多,且具备持续破解的功能
-
-
Medusa
-
这是一个可用于多协议破解的程序,可同时对多个主机进行大规模并行破解,效率较高,Medusa同样支持对Mysql、MSSQL和PostgreSQL等数据库的口令破解
-
-
Burpsuite
-
这是基于Java开发的Web应用程序集成平台,可通过数据嗅探的方式获取到数据库登录数据报文的格式,并且指定字典或者字符集动态替换其中的账户及口令数据后发送给服务器
-
-
-
拖库与撞库攻击
-
拖库
-
拖库原本为导出数据库数据的口语表达,但针对数据库攻击的频繁出现,拖库也被用来泛指通过网络攻击手段或者社会工程学来窃取数据库信息的黑客活动
-
拖库的流程
-
-
-
撞库
-
攻击者将拖库收集到的或者互联网已泄露的用户口令信息生成字典表,以此去尝试登录其他网站的活动
-
大多数用户为了方便记忆和使用,将所有网站账号口令设置为相同,一个网站账号口令的泄露意味着其他网站的账户也被窃取
-
撞库的流程
-
-
-
-
SQL注入攻击
-
由于Web程序员在编写代码的时候,没有对用户输入数据的合法性进行验证,直接将其提交给数据库执行。攻击者可以提交数据库查询代码以获得内部存储数据,也可以提交删除数据的SQL语句或者利用数据库存储过程执行系统命令,从而进行数据破坏或者网络渗透
-
攻击者在用户名或者密码处提交了1‘or’1‘=’1‘这样的账户和口令,会是什么结果呢?结果就是SQL语句的条件变成了恒为真,因此就可以绕过验证逻辑顺利登录
-
-
SQL注入攻击的攻击效果与数据库类型和数据库用户权限紧密相关
-
对于企业级的用户还可以进行系统命令执行、文件管理、网络探测、代理转发、进程管理、注册表管理、数据窃取等操作
-
3、数据库攻击的防御
-
定期对数据库进行漏洞扫描,包括弱口令扫描,并且及时更新安全补丁
-
对敏感机密数据进行加密保存,即使攻击者窃取数据以后也无从知晓其含义
-
在数据库服务器前面串联数据库防火墙,实现数据库访问行为控制、危险操作阻断和可疑行为审计
-
Web服务器端安装Web应用防火墙,在Web应用端对Web脚本攻击进行防御
-
安装数据库安全审计系统,监视并记录对数据库服务器的各类操作行为