黑客怎么入侵数据库「“黑客”入门学习之“数据库安防篇”」
今天给大家普及一下黑客怎么入侵数据库「“黑客”入门学习之“数据库安防篇”」相关知识,最近很多在问黑客怎么入侵数据库「“黑客”入门学习之“数据库安防篇”」,希望能帮助到您。
由于数据的重要价值,"数据库"一直是黑客们最关心的内容,这些年网上也报出了很多黑客攻击数据库的新闻,最为抢眼的数据库勒索事件,通过攻击手段获取数据库服务的权限,然后删除数据,在数据库中插入勒索信息,要求支付比特币以赎回数据。从而直接获取利益。
数据库的价值不用多说,所以作为一名白帽子黑客,一定需要了解数据库这个核心内容,知道恶意进攻的方式,更应该知道防范的手段。
今天就以本篇文章给大家来阐述一下数据库基本简介、常见的数据库安全问题分析以及安全防范手段!
一、 数据库简介
1.1、数据库是什么?
数据库是长期存储在计算机内、有组织的、可共享的数据集合。它不仅包括数据本身,而且包括相关数据之间的联系。数据库技术主要研究如何存储、使用和管理数据。简而言之可视为的——存储电子的处所,用户可以对文件中的数据运行新增、截取、更新、删除等操作。
1.2、数据库的种类
早期比较流行的数据库模型有三种,分别为层次式数据库、网络式数据库和关系型数据库。而在当今的互联网中,最常用的数据库模型主要是两种,即关系型数据库和非关系型数据库。
1.2.1关系型数据库
· 关系型数据库的由来
虽然网状数据库和层次数据库已经很好地解决了数据的集中和共享问题,但是在数据独立性和抽象级别上仍有很大欠缺,而关系型数据库就可以较好地解决这些问题。
· 关系型数据库介绍
关系型数据库模型是把复杂的数据结构归结为简单的二元关系(即二维表格形式)。在关系数据库中,对数据的操作几乎全部建立在一个或多个关系表格上,通过对这些关联表的表格分类、合并、连接或选取等运算来实现数据的管理。
· 关系型数据库表格之间的关系举例
小结:什么是关系型数据库
1、二维的表格;
2、市场占有量较大的位MySQL和Oracle数据库;
3、通过SQL结构化查询语言来存取、管理数据;
4、保持数据一致性方面很强。
1.2.2非关系型数据库介绍
· 非关系型数据库诞生的背景
非关系型数据库也被称为NoSQL数据库,NoSQL的本意是"Not Only SQL",指的是非关系型数据库,而不是"No SQL"的意思(没有SQL语句?),因此,NoSQL的产生并不是要彻底否定关系型数据库,而是作为传统关系型数据库的一个有效补充。NoSQL数据库在特定的场景下可以发挥出难以想象的高效率和高性能。
随着互联网web2.0(以前的基本上是静态网页,而现在是交互的网站)网站的兴起,传统的关系型数据库在应付web2.0网站,特别是对于规模日益扩大的海量数据,超大规模和高并发的微博、微信、SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,例如:传统的关系型数据库IO瓶颈、性能瓶颈都难以有效突破,于是开始出现了大批针对特定场景,以高性能和使用便利为目的的功能特异化的数据库产品,NoSQL(非关系型)类的数据库就是在这样的情景中诞生并得到了非常迅速的发展。NoSQL不将数据的一致性作为重点,或者是作为次重点。
NoSQL是非关系型数据库的广义定义。它打破了长久以来关系型数据库与ACID理论大统一的局面。NoSQL数据存储不需要固定的表结构,通常也不存在连接操作。在大数据存取上具备关系型数据库无法比拟的性能优势。该术语(NoSQL)在2009年初得到了广泛认同。当今的应用体系结构需要数据存储在横向伸缩性上能够满足需求。而NoSQL存储就是为了实现这个需求而诞生的。
· NOSQL非关系型数据库小结:
1、NOSQL不是否定关系数据库,而是作为关系数据库的一个重要补充。
2、NOSQL为了高性能、高并发而生,忽略影响高性能、高并发的功能。
3、NOSQL典型产品Memcached(纯内存),redis(持久化缓存),mongodb(面向文档)
1.2.3 非关系型数据库种类
(1) 键值(Key-Value)存储数据库
键值数据库就类似传统语言中使用的哈希表。可以通过key来添加、查询或者删除数据,因为使用key主键访问,所以会获得很高的性能及扩展性。
键值(Key-Value)数据库主要是使用一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据。Key/value模型对于IT系统来说的优势在于简单、易部署、高并发。
典型产品:Memcached、Redis、MemcacheDB、Berkeley DB
(2) 列存储(Column-oriented)数据库
列存储数据库将数据存在列族(column family)中,一个列族存储经常被一起查询的相关数据。举个例子,如果我们有一个Person类,我们通常会一起查询他们的姓名和年龄,而不是薪资。这种情况下,姓名和年龄就会被放入一个列族中,而薪资则在另外一个列族中。
这部分数据库通常是用来应对分布式存储的海量数据。键仍然存在,但是他们的特点是指向了多个列。这些列是由列家族来安排的。
典型产品:Hbase、Cassandra
(3) 面向文档数据库
文档型数据库的灵感是来自于Lotus Notes办公软件的,而且它同第一种键值存储相类似。该类型的数据模型是版本化的文档,半结构化的文档以特定的格式存储,比如JSON。文档型数据库可以看作是键值数据库的升级版,允许之间嵌套键值。而且文档型数据库比键值数据库的查询效率更高。
面向文档数据库会将数据以文档的形式存储。每个文档都是自包含的数据单元,是一系列数据项的集合。每个数据项都有一个名称与对应的值,值既可以是简单的数据类型,如字符串、数字和日期等;也可以是复杂的类型,如有序列表和关联对象。数据存储的最小单位是文档,同一个表中存储的文档属性可以是不同的,数据可以使用XML、JSON或者JSONB等多种形式存储。
典型产品:MongoDB、CouchDB
(4) 图形数据库
图形数据库允许我们将数据已图的方式存储。实体会被作为定点,而实体之间的关系则会被作为边。比如我们有三个实体,Steve Jobs,Apple和Next,则会有两个"Founded by"的边将Apple和Next连接到Steve Jobs。
图形结构的数据库同其他行列以及刚性结构的SQL数据库不同,它是使用灵活的图形模型,并且能扩展到多个服务器上。NoSQL数据库没有标准的查询语言(SQL),因此进行数据库查询需要制定数据模型。许多NoSQL数据库都有REST式的数据接口或者查询API。
典型的产品有:Neo4J、InfoGrid。
1.3 常用关系型数据库产品介绍
1.3.1 Oracle数据库
Oracle前生叫SDL,由Larry Ellison和另外两个编程人员在1977创办,他们开发了自己的拳头产品,在市场上大量销售,1979年,Oracle公司引入了第一个商用SQL关系型数据库管理系统。Oracle公司是最早开发关系型数据库的厂商之一,其产品支持最广泛的操作系统平台。目前Oracle关系型数据库产品的市场占有率数一数二。
Oracle公司是目前全球最大的数据库软件公司,也是近年业务增长极为迅速的软件提供与服务商。
主要应用范围:传统大企业,大公司,政府,金融,证券等等。
版本升级:Oracle8i,Oracle9i,Oracle10g,Oracle11g,Oracle12c
1.3.2 MySQL数据库
MySQL数据库是一个中小型关系型数据库管理系统,软件开发者为瑞典MySQL AB公司。在2008年1月16号被Sun公司收购,后Sun公司又被oracle公司收购。目前MySQL被广泛地应用在Internet上的大中小型网站中。由于体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多大中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库,甚至国内知名的淘宝网页选择弃用ORACLE而更换为更开放的MySQL。
MySQL数据库主要应用范围:互联网领域、大中小型网站,游戏公司,电商平台等等。
1.3.3 MariaDB
MariaDB数据库管理系统是MySQL数据库的一个分支,主要由开源社区维护,采用CPL授权许可。开发这个MariaDB数据库分支的可能原因之一是:甲骨文公司收购了MySQL之后,有将MySQL闭源的潜在风险,因此MySQL开源社区采用分支的方式来避开这个风险。(CentOS7已经将集成的MySQL替换为了MariaDB)
开发MariaDB数据库的目的是完全兼容MySQL数据库,包括API和命令行,使之能轻松的成为MySQL的代替品。在存储引擎方面,使用XtraDB来代替MySQL的InnoDB。MariaDB由MySQL的创始人Michael Widenius主导开发,他早前曾以10亿美元的价格,将自己创建的公司MySQL AB卖给了SUN,此后,随着SUN被甲骨文收购,MySQL的所有权也落入了Oracle的手中。MariaDB数据库的名称来自MySQL的创始人Michael Widenius的女儿Maria的名字。
MariaDB基于事务的Maria存储引擎,替换了MySQL的MyISAM存储引擎,它使用Percona的XtraDB。这个版本还包括了PrimeBase XT和FederatedX存储引擎。
MariaDB数据库直到5.5八本,均依照MySQL的版本发行。因此,使用MariaDB5.5的人会从MySQL5.5中了解到MariaDB的所有功能。
1.3.4 SQL Server
Microsoft SQL Server是微软公司开发的大型关系型数据库系统。SQL Server的功能比较全面,效率高,可以作为中型企业或者单位的数据库平台。SQL Server可以与Windows操作系统紧密集成,不论是应用程序开发速度还是系统事务处理运行速度,都能得到较大的提升。对于在Windows品台上开发的各种企业级信息管理系统来说,不论是C/S架构还是B/S架构,SQL Server都是一个很好的选择。SQL Server的缺点是只能在Windows系统下运行。
主要应用范围:部分企业电商,使用windows服务器平台的企业。
1.3.5 Access
美国Microsoft公司于1994年推出的微机数据库管理系统。它具有界面友好、易学易用、开发简单、接口灵活等特点,是典型的新一代桌面关系型数据库管理系统。它结合了Microsoft Jet Database Engine和图形用户界面两项特点,是Microsoft Office的成员之一。Access能够存取Access/Jet、Microsoft SQL Server、Oracle,或者任何ODBC兼容数据库的资料。
Access是入门级小型桌面数据库,性能安全性都很一般。可供个人管理或小型网站使用1.3.6 其他数据库
DB2,PostgreSQL,Informix,Sybase等。
1.4 常用的非关系型数据库产品介绍
1.4.1 Memcached(key-value)
Memcached是一个开源的、高性能的、具有分布式内存对象的缓存系统。通过它可以减轻数据库负载,加速动态的Web应用,最初版本由LiveJournal的Brad Fitzpatrick在2003年开发完成。目前全球有非常多的用户都在使用它来构建自己的大负载网站或提高自己的高访问网站的响应速度。注意:Memcache是这个项目的名称,而Memcached是服务器端的主程序文件名。
缓存一般用来保存一些经常被读取的对象或数据(例如,浏览器会把经常访问的网页缓存起来一样),通过缓存来存取对象或数据要比在磁盘上存取快很多,前者是内存,后者是磁盘。Memcached是一种纯内存缓存系统,把经常存取的对象或数据缓存在Memcached的内存中,这些被缓存的数据被程序通过API的方式被存取,Memcached里面的数据就像一张巨大的HASH表,数据以key-value对的方式存在。Memcached通过缓存经常被存取的对象或数据,从而减轻频繁读取数据库的压力,提高网站的响应速度,构建出速度更快的可扩展的Web应用。由于Memcached为纯内存缓存软件,一旦重启所有数据都会丢失,因此,新浪网基于Memcached开发了一个开源项目Memcachedb。通过为Memcached增加Berkeley DB的持久化存储机制和异步主辅复制机制,使Memcached具备了事务恢复能力、持久化数据存储能力和分布式复制能力,Memcachedb非常适合需要在超高性能读写速度、持久化保存的应用场景,但是最近几年逐渐被其他的持久化产品代替,例如redis。
小结:
1、key-value型数据库
2、纯内存数据库,重启丢失数据
3、持久化产品memcachedb(sina)
1.4.2 redis(key-value)
和Memcached类似,redis也是一个key-value型存储系统。但redis支持的存储value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)等。这些数据类型都支持push/pop、add/remove及取交集、并集和差集及更丰富的操作,而这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与Memcached一样,为了保证效率,redis的数据都是缓存在内存中的。区别是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
Redis是一个高性能的key-value数据库。redis的出现,很大程度上补偿了Memcached这类key-value存储的不足,在部分场合可以对关系数据库起到很好的补充作用。它提供了Python,Ruby,Erlang,PHP客户端,使用很方便。
小结:
1、支持内存缓存,这个功能相当于Memcached。
2、支持持久化存储,这个功能相当于Memcachedb,ttserver
3、数据类型更丰富,比其他key-value库功能更强
4、支持主从集群,分布式
5、支持列队等特殊功能。
应用:缓存从存取Memcached更改为redis。
1.4.3 MongoDB(Document-oriented)
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,类似json的bjson格式,因此可以存储比较复杂的数据类型。MongoDB最大的特点就是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。它的特点是高性能、易部署、易使用,存储数据非常方便。
主要功能特性:
1、面向集合存储,易存储对象类型的数据。"面向集合"(Collenction-Orented),意思是数据被分组存储在数据集中,被称为一个集合(Collenction)。每个集合在数据库中都有一个唯一的标识名,并且可以包含无限数目的文档。集合的概念类似关系型数据库(RDBMS)里的表(table),不同的是它不需要定义任何模式(schema)
2、模式自由。模式自由(schema-free),意味着对于存储在MongoDB数据库中的文件,我们不需要知道它的任何结构定义。如果需要,你完全可以把不同结构的文件存储在同一个数据库里。
3、支持动态查询
4、支持完全索引,包含内部对象
5、支持查询
6、支持复制和故障恢复
7、使用高效的二进制数据存储,包括大型对象
8、自动处理碎片,以支持云计算层次的扩展性。
1.4.4 Cassandra(Column-oriented)
Apache Cassandra是一套开源分布式Key-Value存储系统。它最初由Facebook开发,用于存储特别大的数据。Facebook目前在使用此系统。
Cassandra的主要特点就是它不是一个数据库,而是由一堆数据库节点共同构成的一个分布式网络服务,对Cassandra的一个写操作,会被复制到其他节点上去,对Cassandra的读操作,也会被路由到某个节点上面去读取。对于一个Cassandra集群来说,扩展性能是比较简单的事情,只管在集群里面添加节点就可以了。
Cassandra是一个混合型的非关系型数据库,类似于Google的BigTable。其主要功能比Dynimite更丰富,Cassandra最初由Facebook开发,后转变成了开源项目。它是一个网络社交云计算方面理想的数据库。
主要特性:
1、分布式
2、基于column的结构化
3、高伸展性
1.4.5 其他数据库
Hbase,MemcacheDB,BerkeleyDB,Tokyo Tyrant(ttserver)
1.5 数据库系统常见体系架构
1.5.1.集中式结构
概念:所有的程序,包括DBMS、应用程序、与用户终端进行通信的软件等全部集中在一台称为主机的计算机上运行,且所有的数据及其数据处理工作也都在主机中运行。
1.5.2两层客户机/服务器架构
两层C/S架构将数据库应用系统的计算机分为客户机和服务器两类,系统的功能在客户机和服务器之间划分,形成一种客户机请求服务,服务器提供服务的应用系统结构。
两层C/S的特点与优点
特点:两层C/S架构是"肥"客户机/"瘦"服务器结构。
客户机需要配置好几层软件。
如操作系统、网络协议软件、客户机软件及应用程序等
服务器只是单纯的数据库服务器。
优点:
相对于集中式结构,两层C/S架构把程序的功能分离,使得客户端开发集中于数据的显示和分析,数据库服务器则集中于数据的管理,这样不必在每一个新的应用开发中重新对数据库进行编码。
缺点:
维护费用较高。客户端要安装庞大而复杂的应用程序,当网络用户的规模达到一定数量之后,系统的维护量急剧增加,维护应用系统变得十分困难。
系统可靠性降低。一个客户机/服务器系统是由各自独立开发、制造和管理的各种硬件和软件的混合体,其内在的可靠性不如集中式结构的大型机或小型机。
资源利用率不高。用户在本地硬盘 装入大量的软件,但使用的只是其中很少一部分(一般少于10%)。在一个拥有众多"胖"客户机的环境中,这无疑时巨大的浪费。
系统缺乏灵活性。客户机/服务器需要对每一应用独立地开发应用程序,消费了大量的资源,且"胖"客户机的计算模式仍然满足不了日益增长的应用需要。
1.5.3三层数据库应用系统
把数据库应用系统分为逻辑上相对独立的三层,数据库系统的功能分别由三层实现:
数据层负责数据管理和事务处理两个功能。主要由一个或多个数据库管理系统实现。
功能层由客户机中负责业务规则处理的代码分离而来,用一个专门的应用服务器支持,负责业务逻辑功能。改变业务处理规则时,不对表示层产生影响。
表示层仍配置在客户机中 ,实现用户与应用间的对话,如检查用户从键盘等输入的数据,显示应用输出的数据,提供表达逻辑功能。变更用户接口时,只需改写显示控制和数据检查程序,不影响其他两层。检查的内容也只限于数据的形式和值的范围,不包括有关业务本身的处理逻辑。
优点 :
系统灵活性高。把三个层次分别放在各自不同的硬件(计算机)系统上能够适应客户机数目的增加和处理负荷的变动。
降低了系统分析设计的难度,能够使系统结构清晰、分工明确,又利用后期的维护和升级。
缺点:
降低了系统的性能。
增加了系统实现的难度。
组件的生命周期管理,安全管理,多用户访问的事务管理,组件之间的连接和通信,应用的可靠性和可伸缩性。
二、 数据库安全问题分析2.1 常见数据库漏洞
1. 部署问题
数据库陷入危机最普遍的原因就是在开发过程中的。有些公司会意识到优化搜索引擎对其业务获得成功的重要性,但是只有对数据库进行排序的前提下,SEO 才能成功对其优化。尽管功能性测试对性能有一定的保证,但测试并不能预料数据库会发生的一切。因此,在进行完全部署之前,对数据库的利弊进行全面的检查是非常重要的。
2. 离线服务器数据泄露
公司数据库可能会托管在不接入互联网的服务器上,但这并不意味着对基于互联网的威胁完全免疫。无论有没有互联网连接,数据库都有可供黑客切入的网络接口。
3. 错误配置的数据库
有太多太多的数据库都是被老旧未补的漏洞或默认账户配置参数出卖的。个中原因可能是管理员手头工作太多忙不过来,或者因为业务关键系统实在承受不住停机检查数据库的损失。无论原因为何,结果就是这么令人唏嘘。
4. SQL注入
SQL注入不仅仅是最常见的数据库漏洞,还是开放网页应用安全计划(OWASP)应用安全威胁列表上的头号威胁。该漏洞可使攻击者将SQL查询注入到数据库中,达成读取敏感数据、修改数据、执行管理操作乃至向操作系统发出指令等目的。
5. 权限问题
涉及访问权限,数据库面临两大主要问题:
· 员工被赋予超出工作所需的过多权限;
· 合法权限被未授权或恶意使用。
6. 存档数据
与上一条相关,无论出于报复还是利益,员工通过盗取数据库备份获得大量个人资料的事屡见不鲜。
2.2 常见的数据库攻击手段
1.对弱口令或默认用户名/口令的破解
以前的Oracle数据库有一个默认的用户名:Scott及默认的口令:tiger;而微软的SQL Server的系统管理员账户的默认口令是也是众所周知。
当然这些默认的登录对于黑客来说尤其方便,借此他们可以轻松地进入数据库。
Oracle和其它主要的数据库厂商在其新版本的产品中表现得聪明起来,它们不再让用户保持默认的和空的用户名及口令等。但这并不意味着,所有的组织都在较老的数据库中敞开着大门。
Forrester的Yuhanna说,问题是企业拥有15000个数据库,而完全地保护其安全并不容易。有时企业只能保障关键数据库的安全,其它的就不太安全了。现在,较新的数据库强制使你在安装时改变系统管理员账户的默认口令。但较老的数据库版本可能存在着问题。
但即使是唯一的、非默认的数据库口令也是不安全的。Sentrigo的 Markovich 说,你总可以在客户那里找到弱口令和易于猜测的口令。通过强力破解或只试着用不同的组合就可以轻易地找到这种口令。
口令破解工具有很多,并且通过Google搜索或sectools.org等站点就可以轻易地获得,这样就会连接到Cain 、 Abel或John the Ripper等流行的工具。
2.特权提升
有几种内部人员攻击的方法可以导致恶意的用户占有超过其应该具有的系统特权。而且外部的攻击者有时通过破坏操作系统而获得更高级别的特权。
特权提升通常更多地与错误的配置有关:一个用户被错误地授与了超过其实际需要用来完成工作的、对数据库及其相关应用程序的访问和特权。
有时一个企业并没有提供哪些人员需要访问何种资源的良好框架结构,而且通常情况下,数据库管理员并没有从业务上理解企业的数据。这是问题之一。
而且,有时一个内部的攻击者(或者一个已经控制了受害人机器的外部的人)可以轻松地从一个应用程序跳转到数据库,即使他并没有这个数据库的相关凭证也可以如此。一个非特权用户可以试着连接到数据库,只要他可以访问一个系统,如CRM,他就可以用同样的口令通过检查,即使他没有获得此数据库的授权。有些控制并没有实现很好的集中化。
3.利用未用的和不需要的数据库服务和功能中的漏洞
当然,一个外部的攻击者会寻找较弱的数据库口令,看其潜在的受害人是否在运行其Oracle数据库上运行监听程序(Listener)功能。监听程序可以搜索出到达Oracle数据库的网络连接,并可以转发此连接,这样一来就会将用户和数据库的链接暴露出来。
只需采用一些Google hacking攻击,一位攻击者就可以搜索并找到数据库服务上暴露的监听程序。Markovich 说,许多客户并没有在监听程序上设置口令,因此,黑客就可以搜索字符串并找出Web上活动的监听程序。我刚才搜索了一下,发现有一些可引起人们注意的东西,如政府站点。这确实是一个大问题。
其它的特性,如操作系统和数据库之间的钩子可以将数据库暴露给攻击者。这种钩子可以成为达到数据库的一个通信链接。在链接库和编写程序时那将成为与数据库的界面,你就是在将数据库暴露出去,并可能在无认证和无授权的情况下让黑客进入内部。
通常,数据库管理员并没有关闭不需要的服务。他们只是任其开着。这种设计过时且管理跟不上,这是让其发挥实际作用的最简单方法。不需要的服务在基础结构中大摇大摆地存在,这会将你的漏洞暴露在外。
关键是要保持数据库特性的精简,仅安装你必须使用的内容。
4.针对未打补丁的数据库漏洞
Oracle和其它的数据库厂商确实在为其漏洞打补丁。但是单位不能跟得上这些补丁,因此它们总是处于企图利用某种机会的老谋深算的攻击者控制之下。
数据库厂商总是小心翼翼地避免披露其补丁程序所修正的漏洞细节,但单位仍以极大的人力和时间来苦苦挣扎,它会花费人力物力来测试和应用一个数据库补丁。例如,给程序打补丁要求对受补丁影响的所有应用程序都进行测试,这是项艰巨的任务。
5.SQL注入
SQL注入式攻击并不是什么新事物了,不过近来在网站上仍十分猖狂。近来这种攻击又侵入了成千上万的有着鲜明立场的网站。
虽然受影响的网页和访问它的用户在这些攻击中典型情况下都受到了重视,但这确实是黑客们进入数据库的一个聪明方法。数据库安全专家们说,执行一个面向前端数据库Web应用程序的SQL注入攻击要比对数据库自身的攻击容易得多。直接针对数据库的SQL注入攻击很少见。
在字段可用于用户输入,通过SQL语句可以实现数据库的直接查询时,就会发生SQL攻击。也就是说攻击者需要提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据。
除客户端之外,Web应用程序是最脆弱的环节。有些情况下,如果攻击者得到一个要求输入用户名和口令的应用程序的屏幕,而且应用程序并不检查登录的内容的话,他所需要做的就是提供一个SQL语句或者数据库命令,并直接转向数据库。
6.窃取(未加密的)备份磁带
如果备份磁带在运输或仓储过程中丢失,而这些磁带上的数据库数据又没有加密的话,一旦它落于罪恶之手,这时黑客根本不需要接触网络就可以实施破坏。
但这类攻击更可能发生在将介质销售给攻击者的一个内部人员身上。只要被窃取的或没有加密的磁带不是某种Informix或HP-UX 上的DB2等较老的版本,黑客们需要做的只是安装好磁带,然后他们就会获得数据库。
三、 常见的数据库安全防范手段
1、提高数据库的加密系统
对数据库进行加密保护是安全系统中的最后一道保护措施 。数据库的使用与管理功能,主要是将各种数据通过文件的形式实施保存和传输,如果被非法用户入侵,这些数据很容易被盗取、破坏和篡改。所以,在使用数据库的时候,可以建立三层密码提高数据库系统的安全指数。这样如果操作系统外层的密码保护被破解,那么还有数据库中的内层和外层的密码保护 ,这样被入侵的几率就会减小。另外,就算数据库中的信息被盗取或是丢失了,那数据也会因为加密设置,而不被轻易传播和利用。类似结构设置可见下图
2、检测外来入侵的攻击
对数据库进行入侵攻击系统检测设置,主要是为了防止有非法用户进入数据库中,破坏和利用数据。该检测系统主要是对一些没有获得权限访问的异常现象进行识别和检测,通过阻止这些用户的访问来保护数据的信息安全。这样如果是非法用户是没有访问数据库的权利,如此又可以加一道安全屏障。
3、安全认证与访问的控制
想要减少数据信息丢失的情况,可以通过提高用户身份的安全认证,或是对访问进行控制等方式。一般提高用户的安全认证,主要是加强密码设置或是建立指纹认证等,然后把一些重要信息进行入网安全的保护设置,通过保护数据源的方式,来提高数据的完整性和真实性。这是对数据库信息进行双层的安全保护对策, 在数据的加密情况下,数据储存系统可以设置为统一的模型,这样用户可以通过数据的节点进行返回操作,从而实现对原始数据的访问。
4、数据的恢复和备份
对于数据信息的丢失问题,还可以通过数据的备份和恢复来防止丢失造成的损失。 Oracle数据库具备很好的备份功能,它可以通过对数据的不同分类,将数据分为公开数据、核心数据、内部数据等类型,同时也将不同的数据进行备份。 Oracle数据库对信息的备份方式分为逻辑备份和物理备份。根据实际的数据情况,从而选择正确的备份方式,这样就算出现数据破坏和丢失,也可以有应急的对策,通过备份资源恢复数据,减少数据丢失造成的经济损失