SQLServer安全性專題一:簡介
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來增強安全性
信任,但監控
包括防禦侵入、防毒軟體和反流氓軟體等
深度防禦
包括:
使用者意識
客戶端安全
網路安全
伺服器安全
邊界安全
最小許可權
只賦予任務所需的最小許可權即可。
相關文章
- 001.SQLServer高可用簡介SQLServer
- mssql sqlserver 索引專題SQLServer索引
- [轉載]SQLServer之檢視簡介SQLServer
- Web 應用安全性: HTTP簡介WebHTTP
- mssql sqlserver update delete表別名用法簡介SQLServerdelete
- TensorFlow系列專題(三):深度學習簡介深度學習
- 簡單介紹SQLserver中的declare變數用法SQLServer變數
- mssql sqlserver updatetext關鍵字應用簡介說明SQLServer
- mssql sqlserver 關鍵字 GROUPING用法簡介及說明SQLServer
- Sqlserver儲存引擎體系結構簡介_Part1SQLServer儲存引擎
- HTML 標題簡介HTML
- SQLServer約束介紹SQLServer
- tkinter簡介(一)
- mssql sqlserver text資料型別專題說明SQLServer資料型別
- 專案中使用SVN簡介
- python教程(一)·簡介Python
- 一、群集的簡介
- ElasticSearch基本簡介(一)Elasticsearch
- CNopendata·PPP專案資料簡介
- ZooKeeper分散式專題(一) -- zookeeper安裝以及介紹分散式
- RocketMQ 實戰(一) - 簡介MQ
- Varnish(一)簡介與原理
- ET8.1(一)簡介
- 一份 Markdown 簡介
- Flutter教程(一) Flutter簡介Flutter
- spark簡單介紹(一)Spark
- kafka之一:kafka簡介Kafka
- Android Studio專案目錄結構簡介Android
- 簡單介紹 Vue 3.0 專案建立Vue
- 《IT專案經理進階之道》簡介
- c# 反射專題—————— 介紹一下是什麼是反射[ 一]C#反射
- 企業如何簡單地統一安全性和合規性
- Redis那些事(一) — Redis簡介Redis
- Instruments使用指南(一)--- 簡介
- shell程式設計—簡介(一)程式設計
- Puppeteer筆記(一):Puppeteer簡介筆記
- 傲視Kubernetes(一):Kubernetes簡介
- Redis 知多少 (一)---Redis 簡介Redis
- Unity學習系列一簡介Unity