自学黑客(网络安全),一般人我劝你还是算了吧(自学网络安全学习路线--第七章 数据库安全)【建议收藏】

一、自学网络安全学习的误区和陷阱

1.不要试图先成为一名程序员(以编程为基础的学习)再开始学习
我在之前的回答中,我都一再强调不要以编程为基础再开始学习网络安全,一般来说,学习编程不但学习周期长,而且实际向安全过渡后可用到的关键知识并不多

一般人如果想要把编程学好再开始学习网络安全往往需要花费很长时间,容易半途而废。而且学习编程只是工具不是目的,我们的目标不是成为程序员。建议在学习网络安全的过程中,哪里不会补哪里,这样更有目的性且耗时更少

在这里插入图片描述

2.不要把深度学习作为入门第一课

很多人都是冲着要把网络安全学好学扎实来的,于是就很容易用力过猛,陷入一个误区:就是把所有的内容都要进行深度学习,但是把深度学习作为网络安全第一课不是个好主意。原因如下:

【1】深度学习的黑箱性更加明显,很容易学的囫囵吞枣

【2】深度学习对自身要求高,不适合自学,很容易走进死胡同

在这里插入图片描述

3.不要收集过多的资料

网上有很多关于网络安全的学习资料,动辄就有几个G的材料可以下载或者观看。而很多朋友都有“收集癖”,一下子购买十几本书,或者收藏几十个视频

网上的学习资料很多重复性都极高而且大多数的内容都还是几年前没有更新。在入门期间建议“小而精”的选择材料,下面我会推荐一些自认为对小白还不错的学习资源,耐心往下看

在这里插入图片描述

二、学习网络安全的一些前期准备

1.硬件选择

经常会问我“学习网络安全需要配置很高的电脑吗?”答案是否定的,黑客用的电脑,不需要什么高的配置,只要稳定就行.因为黑客所使用的一些程序,低端CPU也可以很好的运行,而且不占什么内存.还有一个,黑客是在DOS命令下对进行的,所以电脑能使用到最佳状态!所以,不要打着学习的名义重新购买机器…

2.软件选择

很多人会纠结学习黑客到底是用Linux还是Windows或者是Mac系统,Linux虽然看着很酷炫,但是对于新人入门并不友好。Windows系统一样可以用虚拟机装靶机来进行学习

至于编程语言,首推Python,因为其良好的拓展支持性。当然现在市面上很多网站都是PHP的开发的,所以选择PHP也是可以的。其他语言还包括C++、Java…

很多朋友会问是不是要学习所有的语言呢?答案是否定的!引用我上面的一句话:学习编程只是工具不是目的,我们的目标不是成为程序员

(这里额外提一句,学习编程虽然不能带你入门,但是却能决定你能在网络安全这条路上到底能走多远,所以推荐大家自学一些基础编程的知识)

3.语言能力

我们知道计算机最早是在西方发明出来的,很多名词或者代码都是英文的,甚至现有的一些教程最初也是英文原版翻译过来的,而且一个漏洞被发现到翻译成中文一般需要一个星期的时间,在这个时间差上漏洞可能都修补了。而且如果不理解一些专业名词,在与其他黑客交流技术或者经验时也会有障碍,所以需要一定量的英文和黑客专业名词(不需要特别精通,但是要能看懂基础的)

比如说:肉鸡、挂马、shell、WebShell等等

三、自学网络安全学习路线

在这里插入图片描述

在这里插入图片描述

重点内容
数据库的安全特性
数据库的访问控制
数据库的完整性保护
数据库备份与恢复
SQL Server的访问控制

在这里插入图片描述

一、数据库安全概述

在这里插入图片描述

1、数据库的安全特性

数据库系统的安全机制主要有:
存取管理
存取管理是一套防止未授权用户访问数据库的方法、机制,目的在于控制数据的存取,并防止非授权用户对数据库的访问。

安全管理
安全管理指采取何种安全机制实现数据库操作管理权限分配,通常分为集中控制、分散控制两种方式。

数据库加密
数据库加密主要包括:库内加密(以一条记录或记录的字段值为操作单位进行加密)、库外加密(以包含数据库结构和内容的整个数据库为操作单位进行加密)、硬件加密。

存取管理
存取管理技术包括用户身份认证技术和存取控制技术两方面。 用户身份认证技术包括用户身份验证和用户身份识别技术。存取控制包括数据的浏览控制和修改控制。
浏览控制是为了保护数据的保密性,而修改控制是为了保护数据的正确性和提高数据的可信性。在数据资源共享的环境中,存取控制就显得非常重要。
存取控制限制了访问者和程序可以进行的操作,通过存取控制可以防止安全漏洞隐患。DBMS中对数据库的存取控制是建立在操作系统和网络安全机制的基础之上的。

安全管理
安全管理指采取何种安全管理机制实现数据库管理权限分配。安全管理分集中控制和分散控制两种方式。集中控制由单个授权者来控制系统的整个安全维护,分散控制则采用不同的管理程序控制数据库的不同部分来实现系统的安全维护。集中控制的安全管理可以更有效、更方便实现安全管理。
安全管理机制可采用数据库管理员、数据库安全员、数据库审计员各负其责,相互制约的方式,通过自主存取控制、强制存取控制实现数据库的安全管理。数据管理员必须专门负责每个特定数据的存取,DBMS必须强制执行这条原则,应避免多人或多个程序来建立新用户,确保每个用户或程序有唯一的注册账户来使用数据库。安全管理员能从单一地点部署强大的控制、符合特定标准的评估,以及大量的用户账号、口令安全管理任务。
数据库加密
对于一些重要部门或敏感领域的应用,仅有存取管理、安全管理是难以充分保证数据的安全性的,有必要对数据库中存储的重要数据进行加密处理,以强化数据存储的安全保护。
数据加密是防止数据库中数据泄露的有效手段,与传统的通信或网络加密技术相比,由于数据保存的时间要长得多,对加密强度的要求也更高。
由于数据库中数据是多用户共享,对加密和解密的时间要求也更高,以尽量避免对系统性能的影响。
在这里插入图片描述

二、数据库中的数据保护

1、数据库中的访问控制
数据库的访问控制(Access Control)是通过某种途径允许或限制用户访问能力及范围的一种方法。访问控制的目的是使用户只能进行经过授权的相关数据库操作。

访问控制系统一般包括:主体(Subject):发出访问操作、存取要求的主动方,通常指用户或用户的某个进程。客体(Object):被调用的程序或欲存取的数据。

安全访问政策:一套规则,用以确定一个主体是否对客体拥有访问能力。

数据库访问控制方式分为:自主访问控制、强制访问控制和基于角色的访问控制三种方式。
自主访问控制 (DAC,Discretionary Access Control)

DAC是基于用户身份或所属工作组来进行访问控制的一种手段。具有某种访问特权的用户可以把该种访问许可传递给其他用户。

DAC允许使用者在没有系统管理员参与的情况下对他们所控制的对象进行权限修改,这就造成信息在移动过程中其访问权限关系会被改变。例如,用户A可将其对目标O的访问权限传递给用户B,从而使原来对O没有访问权限的B可以访问O。
强制访问控制 (MAC,Mandatory Access Control)
MAC对于不同类型的信息采取不同层次的安全策略。MAC基于被访问对象的信任度进行权限控制,不同的信任度对应不同的访问权限。

MAC给每个访问主体和客体分级,指定其信任度。MAC通过比较主体和客体的信任度来决定一个主体能否访问某个客体,具体遵循以下两条规则:
其一,仅当主体的信任度大于或等于客体的信任度时,主体才能对客体进行读操作,即所谓的“向下读取规则”;
其二,仅当主体的信任度小于或等于客体的信任度时,主体才能对客体进行写操作,即所谓的“向上写入规则”。
基于角色的访问控制
(RBAC,Role-Based Access Control)
RBAC中,引入角色(Role)这一重要概念。所谓角色,就是一个或一群用户在组织内可执行操作的集合。角色可以根据组织中不同的工作任务创建,然后根据用户的职责分配角色,用户可以轻松地进行角色转换。
RBAC根据用户在组织内所处的角色进行访问授权与控制。只有系统管理员有权定义和分配角色。用户与客体无直接联系,只有通过角色才享有该角色所对应的权限,从而访问相应的客体。

RBAC的主要优点在于授权管理的便利性,一旦一个RBAC系统建立起来后,主要的管理工作即为分配或取消用户的角色。RBAC的另一优点在于系统管理员在比较抽象的层次上控制访问权限,与企业通常的业务管理相类似。

2、数据库加密

数据库的加密一般通常分为三种方式: 

库外加密:库外加密乃针对文件I/O操作或操作系统而言。数据库管理系统与操作系统的接口方式有三种:一是直接利用文件系统的功能;二是利用操作系统的I/O模块;三是直接调用存储管理。

库内加密:从关系数据库的对象组成出发,可考虑库内加密的思想。关系型数据库的关键术语有:表、记录、字段,可以针对这几方面形成对应的加密方法。

硬件加密:硬件加密是指在物理存储器与数据库系统之间加上一层硬件作为中间层,加密和解密的工作都由添加的硬件完成。

3、数据库完整性保护

数据库的完整性是指数据库中数据的正确性和相容性。
例如,某包含学生信息的数据库中:学生的学号必须唯一,不能与其他人重复;性别只能是男或女;本科学生年龄的取值范围为14-30的整数;学生所在的系必须是学校已开设的系。

需要注意区分的是,数据库的完整性和安全性是数据库安全保护的两个不同方面。
数据库的安全性用于保护数据库防止恶意的破坏和非法的存取,数据库的完整性用于保护数据库以防止合法用户无意中造成的破坏,即防止数据库中存在不符合语义的数据,或者说防止数据库中存在不正确的数据。
数据完整性约束

●域完整性。对表字段取值进行约束,规定一个给定域的有效入口,包括数据类型、取值范围、格式、精度等的规定。实现域完整性可以通过“Check约束”、Foreign约束”、“Default约束”、“Not Null约束”等来实施。

●实体完整性。以表记录为单位进行约束,规定一个表中的每一行必须是唯一的。数据库设计者需要指定一个表中的一列或一组列作为它的主键,表中的每行必须含有一个唯一的主键。主键不能为空值,且不能与表中已有行的主键值相同。可以通过列的Identity属性、主键约束、惟一性约束等来实现。

●参照完整性。在关系数据库中,实体与实体之间的关联同样采用关系模式来描述,通过引用对应实体的关系模式的主键,来表示对应实体之间的关联。参照完整性约束又称为引用完整性约束,是指两个表的主键和外键的数据要对应一致。可以通过“外键约束”、“触发器”、“存储过程”等来实施。

●用户定义完整性。以上三种数据完整性约束能够实现数据库中大部分数据完整性,但某些约束条件不能用它们来实现。例如,入学时间不能晚于毕业时间。实现诸如此类的数据完整性保护,需要开发者自己通过创建存储过程和触发器、规则等来实现。
在这里插入图片描述

三、数据备份与恢复

1、数据库备份

数据库备份方法有四种:

完全数据库备份
增量数据库备份
事务日志备份
及数据库文件与文件组备份

数据库备份的原理在于建立数据冗余。
建立冗余数据的方式是进行数据转储和登记日志文件。
数据转储在时间上可分为静态转储、动态转储,在空间上可分为海量转储和增量转储。
完善的数据库备份,应做好充分的准备工作,包括以下内容:

确定备份频率。
确定备份内容。
确定使用的介质。
确定备份负责人。
确定联机备份或脱机备份。
确定是否使用硬件备份。
确定备份存储地点。
确定备份存储的期限。

2、数据库恢复

数据库恢复,就是把数据库由存在故障的状态转变为无故障状态的过程。

根据出现故障的原因,数据库恢复分为实例恢复、介质恢复两种类型。

实例恢复是当数据库实例出现失效后,数据库系统进行的恢复。

介质恢复是当存放数据库的介质出现故障时所做的恢复。
装载(Restore)物理备份与恢复(Recover)物理备份是介质恢复的手段。
装载物理备份是将备份考回到磁盘,恢复物理备份是利用重做日志(即Redo日志,物理备份的一部分)修改磁盘上的数据文件(物理备份的另一部分),从而恢复数据库的过程。如下图所示。

在这里插入图片描述

根据数据库的恢复程度,可将数据库恢复方法分为两种类型:完全恢复、不完全恢复。

完全恢复。指将数据库恢复到失效时的状态。这种恢复是通过装载数据库备份,再合并所有的Redo日志实现的。

不完全恢复。将数据库恢复到数据库失败前的某一时刻数据库的状态。这种恢复是通过装载数据库备份,再合并部分Redo日志实现的。不完全恢复是在完全恢复无法实现,或不需要完全恢复时进行的恢复操作。导致完全恢复无法实现的典型原因是,部分Redo日志损坏,使得恢复操作无法继续。
在这里插入图片描述

四、SQL Servre数据库安全机制

1、SQL Server安全体系

操作系统级别的安全防护。
SQL Server级别的安全防护。
SQL Server数据库级别的安全防护。
SQL Server数据库对象级别的安全防护。
在这里插入图片描述

2、SQL Server身份认证

SQL Server有三种身份认证模式,即Windows身份认证模式、SQL Server身份认证模式、混合模式。

Windows身份认证模式。Windows身份认证模式是指SQL Server服务器通过使用Windows当前登录用户的权限来控制用户对SQL Server服务器的登录及访问权限。这种模式也称为集成身份认证模式。

SQL Server身份认证模式。SQL Server身份认证模式要求用户必须输入有效的SQL Server登录用户名、口令。这个登录账号独立于操作系统的用户账号。

混合模式。这种模式下,如果用户在登录时提供了SQL Server的登录用户名口令,则系统将使用SQL Server身份验证对其进行验证。如果没有提供SQL Serverd 登录帐号或请求进行Windows身份验证,则使用Windows身份验证对其进行验证。

3、SQL Server访问控制

SQL Server的访问控制机制采用的RBAC方式。

NIST(National Institute of Standards and Technology,美国国家标准与技术研究院)颁布的标准RBAC模型由4个部件模型组成,这4个部件模型分别是:
基本模型RBAC0(Core RBAC)
角色分级模型RBAC1(Hierarchal RBAC)
角色限制模型RBAC2(Constraint RBAC)
统一模型RBAC3(Combines RBAC)

RBAC模型如下图
在这里插入图片描述

4、SQL Server访问审计

数据库安全审计系统是通过对网络数据的采集、分析、识别,实时监控网络中数据库的所有访问操作,发现各种违规数据库操作行为,及时报警,实现数据库安全事件的准确跟踪定位,保障数据库系统安全。

根据美国国防部TCSEC/TDI标准中关于安全策略的要求,数据库审计是数据库系统达到C2级以上安全级别必不可少的一项功能。

数据库安全审计系统首先收集来自用户的事件,当用户进行数据库访问操作时,采集器根据审计数据字典,判断其数据库访问行为是否为审计事件,当数据库访问事件满足审计报警记录条件时,分析器则向管理人员发送报警信息并把用户对数据库的所有操作自动记录下来,存放在审计日志中。

数据库安全审计系统的实现有两种方式:
依靠数据库系统自身具备的审计功能;
使用独立的数据库审计系统。

第二种方式的部署结构如下图所示。通常,采用独立的数据库审计系统效果更好,且对数据库系统的运行效率等影响较小,但独立的数据库审计系统价格都比较昂贵。在经费等条件不允许的情况下,可采用数据库系统自身具备的审计功能来实现数据库审计。

在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智慧云工具箱

你的鼓励将是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值