4.1 数据库相关知识
数据库技术是信息系统的核心技术之一,是一种计算机辅助管理数据的方法,研究如何组织和存储数据以及高效地获取和处理数据。数据库技术是通过研究数据库的结构、存储、设计、管理及应用的基本理论和实现方法,并利用这些理论来实现对数据库中数据的处理、分析和理解的技术。数据库技术是研究、管理和应用数据库的一门软件科学。
数据库技术是现代信息科学与技术的重要组成部分,是计算机数据处理与信息管理系统的核心。数据库技术研究和解决了计算机信息处理过程中大量数据有效地组织和存储的问题,在数据库系统中减少了数据存储冗余、实现了数据共享、保障了数据安全,可以高效地检索数据和处理数据。
4.1.1 数据库基础知识
数据库技术产生于20世纪60年代末70年代初,其主要目的是有效地管理和存取大量的数据资源。数据库技术主要研究如何存储、使用和管理数据。数年来,数据库技术和计算机网络技术的发展相互渗透、相互促进,已成为当今计算机领域发展迅速、应用广泛的两大领域。数据库技术不仅应用于事务处理,并且进一步应用到情报检索、人工智能、专家系统和计算机辅助设计等领域。
数据管理技术是对数据进行分类、组织、编码、输入、存储、检索、维护和输出的技术。数据管理技术的发展大致经过了以下三个阶段:人工管理阶段、文件系统阶段和数据库系统阶段。
数据模型是现实世界在数据库中的抽象,也是数据库系统的核心和基础。数据库理论领域中最常见的数据模型主要有层次模型、网状模型和关系模型3种。
● 层次模型(Hierarchical Model)。层次模型使用树形结构来表示数据及数据之间的联系。
● 网状模型(Network Model)。网状模型使用网状结构表示数据及数据之间的联系。
● 关系模型(Relational Model)。关系模型是一种理论最成熟、应用最广泛的数据模型。在关系模型中,数据存放在一种称为二维表的逻辑单元中,整个数据库又是由若干个相互关联的二维表组成的。
数据库与学科技术的结合将会建立一系列新数据库,如分布式数据库、并行数据库、知识库和多媒体数据库等,这将是数据库技术重要的发展方向。许多研究者都将多媒体数据库作为研究的重点,把多媒体技术和可视化技术引入多媒体数据库将是未来数据库技术发展的热点和难点。
许多研究者从实践的角度对数据库技术进行研究,提出了适合应用领域的数据库技术,如工程数据库、统计数据库、科学数据库、空间数据库和地理数据库等。这类数据库在原理上也没有多大的变化,但是它们却与一定的应用相结合,加强了系统对有关应用的支撑能力,尤其在数据模型、语言和查询方面。部分研究者认为,随着研究工作的继续深入和数据库技术在实践工作中的应用,数据库技术将朝着专门应用领域发展。
4.1.2 数据库典型攻击方法
黑客进行一次数据攻击只需不到10s,因此,对于数据库管理员来说很难发现数据被入侵。数据库的典型攻击方法有6种:口令入侵、特权提升、漏洞入侵、SQL注入、窃取备份和DDoS软件攻击。
1.口令入侵
以前的Oracle数据库有一个默认的用户名Scott和默认的口令tiger,其他数据库系统也大多有默认口令,黑客借此可以轻松地进入数据库。Oracle和其他主要的数据库厂商在其新版本的产品中对其进行弥补,不再让用户保持默认的和空的用户名及口令。但即使是唯一的、非默认的数据库口令也是不安全的,通过暴力破解就可以轻易地找到弱口令。
2.特权提升
特权提升通常与管理员错误的配置有关,如一个用户被误授予超过其实际需要的访问权限。另外,拥有一定访问权限的用户可以轻松地从一个应用程序跳转到数据库,即使他并没有这个数据库的相关访问权限。黑客只需要得到少量特权的用户口令,就可以进入数据库系统,然后访问读取数据库内的任何表,包括信用卡信息和个人信息。
3.漏洞入侵
当前,正在运行的多数Oracle数据库中,有至少10~20个已知的漏洞,黑客们可以利用这些漏洞进入数据库。虽然Oracle和其他的数据库都为其漏洞做了补丁,但是很多用户并没有给他们的系统漏洞打补丁,因此这些漏洞常常成为黑客入侵的途径。其他数据库系统也一样,不同的版本有不同的安全漏洞。
4.SQL注入
SQL注入攻击是黑客对数据库进行攻击的常用手段之一。随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于程序员的水平及经验参差不齐,相当大一部分程序员在编写代码时,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些需要的数据,这就是所谓的SQL Injection,即SQL注入。SQL注入是从正常的WWW端口访问,而且表面看起来与一般的Web页面访问没什么区别,所以市面上的防火墙都不会对SQL注入发出警报,如果管理员没有查看IIS日志的习惯,可能被入侵很长时间都不会发觉。
5.窃取备份
如果备份硬盘在运输或仓储过程中被窃取,而这些硬盘上的数据库数据又没有加密,黑客根本不需要接触网络就可以实施破坏了。通过窃取备份实施的攻击主要是由于管理员对备份的介质疏于跟踪和记录。
6.DDoS软件攻击
数据库多数表现为CPU利用率为100%时的连接数比较多,同时服务器一般还可以满足继续使用(如正常登录),只是比较慢。黑客用傀儡肉鸡对数据库攻击的一种模式。