原文:SQL Server安全性专题一:简介

一、 安全威胁与法则

1、 安全定义

2、 安全威胁

3、 安全法则



安全定义:

在SQLServer环境中,安全性可以认为是【数据保护】。包括:

 数据只能被已授权的用户访问。

 数据被安全地存储。

 数据要被安全地传输。

 数据可恢复

以下是详解:

1、 数据只能被已授权的用户访问:

必须使用一个强身份验证机制去确保数据被安全地访问。从2000开始(以前的没用过),允许SQL登录及Windows认证登录。其中Windows身份验证更为安全。

2、 数据被安全地存储:

首先要保证数据文件被安全地存放在文件系统中。安全的文件系统要求用户被授权后才能访问其任何文件。NTFS格式的文件系统能提供内置的和外接驱动系统足够的安全性。Storage Area Networks(SANs)系统同样能提供高安全性。

3、 数据要被安全地传输:

对于数据安全传输的问题,要考虑的其中一点是SQLServer和请求应用程序之间的路径安全。要时刻记住请求应用程序未必就是终端用户系统(各类Windows操作系统)。很多请求应用程序是另一个服务器。对此,数据传输都需要加密。对于网络环境(不管有线无线,特别是无线),加密是唯一的安全保障。

4、 数据可恢复:

对于某些攻击者,只希望你丢失数据,对此,不许做好备份并保证备份存储的安全。





为安全目的的数据分类:

数据的安全性根据企业的发展而有所变化。所有数据都有其价值,但是在安全分类时,必须有所侧重。可以通过以下步骤获取分类信息:

 通过问卷来确定信息的价值。

 对于每类信息,作出合适的应用。

 对于每类的安全分类,作出适当的安全方案来保护。



以下在安全性中有所作用的安全方案:

 Firewalls(防火墙)(63%)

 Antivirus(杀毒软件)(59%)

 Encryption(加密)(46%)

 VPNs(虚拟专用网络)(45%)

 Strong Passwords(强密码策略)(40%)

 Spam filtering(垃圾邮件过滤)(35%)

 E-Mail security(电子邮件安全)(34%)



安全理论:

为什么经常会受到攻击?80%的公司来自于内部人员,比如有个员工受到某种刺激,有可能就会报复,这时候你的安全策略是否足够。不管来自于谁的攻击,足够的安全策略都是需要的。对于攻击者,无论其攻击程度如何,都必须严阵以待。



真实世界中的安全:

每一个组织都需要处理信息、网络和系统安全。你必须使用一些方法来保护,包括:

1、 授权

2、 认证

3、 账号

4、 加密等等必要措施。



对于网络系统,必须使用授权和认证来确保只有指定的人才能管理设备。

对于数据库系统安全,你需要确保基于应用系统的代码安全。对此,需要整理出一份安全检查列表,并定时检查。



安全威胁

威胁、漏洞和使用漏洞利用。

理解威胁、漏洞和使用漏洞利用首先要评估网络安全。

1、威胁:指对系统的单独、一组、环境甚至潜在损害。威胁分成两部分:蓄意和无意的。

蓄意威胁:包括所有人的意愿想去做的行为。

无意威胁:一些只有上帝才知道什么时候会发生的行为。如电击、台风等不可抗拒的情况。一些人为的“错误”行为也包含在这部分。

2、漏洞:指系统或者对象(系统的一部分或者它的一个依赖实体)的一个弱点。

需要从硬件、软件层面去分析,硬件方面可以通过供应商获得,软件方面就需要做充分的测试。

3、 漏洞利用:通过特定方法是漏洞暴露并利用。

攻击者通过下面步骤尝试进入系统:

3.1、在网络中扫描的设备。

3.2、扫描这些设备。

3.3、发现正在运行的服务的版本。

3.4、研究漏洞。

3.5、发布针对一个或多个漏洞的攻击。

通过这些步骤,你可以使用很多工具来实现你的攻击。但作为计算机从业人员,不应该随意攻击别人。



攻击目标一:Windows Server:

Windows/Linux操作系统是攻击重点之一,因为它的重要性及使用广泛性。如果攻击者能渗透甚至毁灭Windows Server,对SQL Server的使用将是严重的打击。攻击方法有:

 使用已知漏洞。

 使用配置中的错误。

 使用运行中的服务。

攻击者可以通过各种方法,如扫描引擎、查找论坛等方式,找到已经漏洞。一些网站也提供这些信息:

http://www.microsoft.com/security/

http://milw0rm.com/

http://zone-h.org/

http://hackerwatch.org/

http://secunia.com/advisories/product/

作为DBA,应该不时地到这些地方查看在你所使用的硬件、操作系统和应用程序中的漏洞。并且深入研究SQLServer方面的漏洞。

配置错误攻击可以通过使用【强密码策略】来避免。但是,这一步需要一个团队来协助。因为每个技术都需要在配置中能够适合安全策略。



使用Microsoft Baseline Security Analyzer(MBSA):

在安装了SQLServer的操作系统中使用MBSA是一个好的开始,可以使用以下步骤实现:

1、 使用管理员登录Windows Server

2、 登录网站并下载对应版本操作系统的软件,然后安装。同时注意,要选择对应的语言。http://www.microsoft.com/downloads/details.aspx?familyid=B1E76BBE-71DF-41E8-8B52-C871D012BA78&displaylang=en

3、 安装MBSA,并选择默认安装路径。

4、 打开MBSA,然后扫描默认计算机名。根据计算机的配置不同,程序可能要运行几秒到几分钟。

有很多服务无论使用什么方法都是不安全的。比如telnet等。所以,除非支持SSH甚至更高级别的安全方案,否则不要使用telnet。无线热点和旧的网络也是具有不安全性。



使用认证系统:

认证系统是用于验证用户ID和允许授权用户访问资源。认证系统基于【证书】。

证书包含以下类型:

Something you know:包含密码和PINs(个人识别号)

Something you have:包含key、smart cards、甚至RFID(无线射频识别)条。

Something you Are:包含生物体的特征,如指纹、视网膜、甚至体重。

Windows Server支持以上三中证书。

认证系统可被弱协议、弱凭证等破解。

30位的小写密码组合就有254,186,582,832,900,000,000,000,000,000,000,000,000种。需要400万*10的4次方年才能破译。这对攻击是没有任何价值。



加密

对于敏感数据,必须加密。加密操作通常在两个地方实现:传输和存储。

对于传输加密,由于容易影响性能,需要权衡。但在无线环境中,数据的安全性就显得很重要,特别是密码程度不足的时候。

对于存储加密,很多存储攻击实际上是认证攻击。



攻击目标二:SQL Server

SQLServer服务本身就是一个重要的攻击点。由于SQL 登录仅仅是密码登录,没有什么安全性可言。需要关闭SQLServer非必须的服务。可以通过以下网站查看漏洞:

http://www.microsoft.com/technet/security/Bulletin/MS09-004.mspx

http://www.microsoft.com/technet/security/bulletin/ms08-040.mspx



攻击目标三:网络

如果网络不安全,客户端和服务器都很容易被攻击

有线网络

可以通过端口来攻击,较为安全但已经越来越少的方式是“拨号连接”。

要重点防御:1433端口。



无线网络

这步相关知识太多,不在这里详解。



攻击目标四:客户端

客户端往往是容易被忽略的攻击目标。客户端容易被攻击的地方是SQL Injection(sql注入)、IIS/Apache、浏览器



当然,最容易的其中一种攻击就是利用社交关系!!!





安全法则:

在具有良好的配置以后,需要考虑一些法则性的问题:

 良好的设计是开端

 信任,但要监控

 深度防御

 最小权限原则



良好的设计是开端

你所设计的系统必须首先是安全的。你的系统必须对必要的性质和功能开放,这种系统也叫:Closed-to-open 系统,在网络部分,最少三个方面需要考虑:

 网络设计与安全性

 安全方案的边界

 连通性方案



网络设计与安全性

安全性必须在系统或者网络中设计开始时就被考虑进去。安全设计包括创建系统和实现层级来保护有价值的信息。



安全方案的边界

在Internet和DMZ(非军事化区域)中创建防火墙是比较好的方法。

连通性方案

可以使用VLANs来增强安全性



信任,但监控

包括防御侵入、杀毒软件和反流氓软件等



深度防御

包括:

 用户意识

 客户端安全

 网络安全

 服务器安全

 边界安全



最小权限

只赋予任务所需的最小权限即可。

SQL Server安全性专题一:简介的更多相关文章

  1. 第十三周翻译:SQL Server安全级别1:SQL Server安全性概述

    SQL Server安全级别1:SQL Server安全性概述 源自:Stairway to SQL Server Security Level 1: Overview of SQL Server S ...

  2. [转]SQL Server 安全性概論與無法刪除資料庫使用者的解決辦法

    經常有人來問我特定 SQL Server 資料庫裡的使用者無法刪除的問題,這問題其實跟 SQL Server 的安全性架構有很大關係,解決這個問題當然還是瞭解觀念的重要性大於知道如何解決問題.除了講解 ...

  3. SQL SERVER 安全性体系

    主体和安全实体 在 SQL Server 2008中,“主体”就是可以访问受保护资源且能获得访问资源所需权限的任何个人.组或流程.与旧版 SQL Server 一样,可以在 Windows 中定义主体 ...

  4. SQL Server数据库代码指令简介

    这些是比较常用的命令操作,事先声明,这些命令是不区分大小写的,我按照我的课本来总结用法和知识点,无用的章节自动省略. 没有一点数据库知识基础的可以等我录制视频,不然可能看不懂,视频链接:http:// ...

  5. SQL Server游标+延迟执行简介

    在项目测试中,我们可能会使用批量生成数据来测试程序的性能. 这里讲一个我遇到的问题,由于我们批量生成数据时基本上是瞬间完成,所以GETDATE()函数获得的时间基本上也是一样的,而我们又要求生成每条数 ...

  6. 1 sql server 中cursor的简介

    1.游标的分类 游标共有3类:API服务器游标.Transaction-SQL游标和API客户端游标. 2 API服务器cursor共有如下几种 静态游标的完整结果集将打开游标时建立的结果集存储在临时 ...

  7. SQL Server数据库存在判断语句及系统表简介 转

    Transact-SQL Exists Sentences--判断数据库是否存在IF EXISTS(SELECT * FROM master.sysdatabases WHERE name=N'库名' ...

  8. SQL Server数据库存在判断语句及系统表简介

    Transact-SQL Exists Sentences--判断数据库是否存在IF EXISTS(SELECT * FROM master.sysdatabases WHERE name=N'库名' ...

  9. [转]细说SQL Server中的加密

    简介 加密是指通过使用密钥或密码对数据进行模糊处理的过程.在SQL Server中,加密并不能替代其他的安全设置,比如防止未被授权的人访问数据库或是数据库实例所在的Windows系统,甚至是数据库所在 ...

随机推荐

  1. Android如何做到应用程序图标隐藏,由第三方程序启动

    在你App的AndroidManifest.xml中,将启动页做如下修改 <intent-filter> <action android:name="android.int ...

  2. [LeetCode]题解(python):118 Pascal&#39;s Triangle

    题目来源 https://leetcode.com/problems/pascals-triangle/ Given numRows, generate the first numRows of Pa ...

  3. Prim和Kruskal求最小生成树

    Prim: 算法步骤: 1.任意结点开始(不妨设为v1)构造最小生成树: 2.首先把这个结点(出发点)包括进生成树里, 3.然后在那些其一个端点已在生成树里.另一端点还未在生成树里的所有边中找出权最小 ...

  4. C#WPF做FTP上传下载获取文件列表

    Xaml.cs: using Microsoft.Win32;using System;using System.Collections.Generic;using System.IO;using S ...

  5. EF6 在原有数据库中使用 CodeFirst 总复习(三、重建迁移)

    本来原来学的时候,挺顺利的,没想到再次使用,还是遇到很多问题,导致更新失败,所以,只能重建迁移,免得看着乱乱的. 一.删除迁移,将数据恢复到(一)结束状态 1.删除文件夹 2.删除表 3.删除列 4. ...

  6. sql知识点的积累和使用过的例子

    越来越发现自己的sql方面的知识的欠缺,所以只能放低姿态一点一点的学了 一 游标和charIndex的使用. 游标我一直没用过,以前只是在同事们写的存储过程里见过,但是一直没看明白(可是我就是比较笨吧 ...

  7. ASP.NET和支付宝合作开发第三方接口的注意事项

    最近公司和支付宝合作开发第三方接口的项目,这里把过程中需要注意的地方说明一下: 前提:一般来说单个银行不接收个人或私企开通支付接口.因此,和第三方支付公司合作,签订合约开放接口就是通行的做法. 流程: ...

  8. 转:为什么要使用NoSQL

    为什么要使用NoSQL NoSQL在2010年风生水起,大大小小的Web站点在追求高性能高可靠性方面,不由自主都选择了NoSQL技术作为优先考虑的方面.今年伊始,InfoQ中文站有幸邀请到凤凰网的孙立 ...

  9. SLAM+语音机器人DIY系列:(四)差分底盘设计——5.底盘PID控制参数整定

    摘要 运动底盘是移动机器人的重要组成部分,不像激光雷达.IMU.麦克风.音响.摄像头这些通用部件可以直接买到,很难买到通用的底盘.一方面是因为底盘的尺寸结构和参数是要与具体机器人匹配的:另一方面是因为 ...

  10. HDU6397

    HDU6397用小于n的m个数组成k,求方案数mod 998244353如果没有n的限制,直接用隔板法求就可以因为m个数中可以为0,所以不妨先都放上一个1,转化成不能为0的m个数来凑k+m,即C(k+ ...