NoSQL薄弱的安全性會給企業帶來負面影響 。Imperva公司創始人兼CTO Amichai Shulman如是說。在新的一年中,無疑會有更多企業開始或籌劃部署NoSQL。方案落實后就會逐漸發現種種安全問題,因此早做準備才是正確的選擇。 作為傳統關系型數據庫的替代方案,NoSQL在查詢中并不使用SQL語言,而且允許用戶隨時變更數據屬性。此類數據庫以擴展性良好著稱,并能夠在需要大量應用程序與數據庫本身進行實時交互的交易處理任務中發揮性能優勢,Couchbase創始人兼產品部門高級副總裁James Phillips解釋稱:NoSQL以交易業務為核心。它更注重實時處理能力并且擅長直接對數據進行操作,大幅度促進了交互型軟件系統的發展。Phillips指出。其中最大的優勢之一是能夠隨時改變(在屬性方面),由于結構性的弱化,修改過程非常便捷。 NoSQL最大優勢影響其安全性 NoSQL的關鍵性特色之一是其動態的數據模型,Shulman解釋道。我可以在其運作過程中加入新的屬性記錄。因此與這種結構相匹配的安全模型必須具備一定的前瞻性規劃。也就是說,它必須能夠了解數據庫引入的新屬性將引發哪些改變,以及新加入的屬性擁有哪些權限。然而這個層面上的安全概念目前尚不存在,根本沒有這樣的解決方案。 根據Phillips的說法,某些NoSQL開發商已經開始著手研發安全機制,至少在嘗試保護數據的完整性。在關系型數據庫領域,如果我們的數據組成不正確,那么它將無法與結構并行運作,換言之數據插入操作整體將宣告失敗。目前各種驗證規則與完整性檢查已經比較完善,而事實證明這些驗證機制都能在NoSQL中發揮作用。我們與其他人所推出的解決方案類似,都會在插入一條新記錄或是文檔型規則時觸發,并在執行過程中確保插入數據的正確性。 Shulman預計新用戶很快將在配置方面捅出大婁子,這并非因為IT工作人員的玩忽職守,實際上主要原因是NoSQL作為一項新技術導致大多數人對其缺乏足夠的知識基礎。Application Security研發部門TeamSHATTER的經理Alex Rothacker對上述觀點表示贊同。他指出,培訓的一大問題在于,大多數NoSQL的從業者往往屬于新生代IT人士,他們對于技術了解較多,但往往缺乏足夠的安全管理經驗。 如果他們從傳統關系型數據庫入手,那么由于強制性安全機制的完備,他們可以在使用中學習。但NoSQL,只有行家才能通過觀察得出正確結論,并在大量研究工作后找到一套完備的安全解決方案。因此可能有90%的從業者由于知識儲備、安全經驗或是工作時間的局限而無法做到這一點。 NoSQL需在安全性方面進行優化 盡管Phillips認同新技術與舊經驗之間存在差異,但企業在推廣NoSQL時加大對安全性的關注會起到很大程度的積極作用。他認為此類數據存儲機制與傳統關系類數據庫相比,其中包含著的敏感類信息更少,而且與企業網絡內部其它應用程序的接觸機會也小得多。 他們并不把這項新技術完全當成數據庫使用,正如我們在收集整理大量來自其它應用程序的業務類數據時,往往也會考慮將其作為企業數據存儲機制一樣,他補充道。當然,如果我打算研發一套具備某種特定功能的社交網絡、社交游戲或是某種特殊web應用程序,也很可能會將其部署于防火墻之下。這樣一來它不僅與應用程序緊密結合,也不會被企業中的其它部門所觸及。 但Rothacker同時表示,這種過度依賴周邊安全機制的數據庫系統也存在著極其危險的漏洞。一旦系統完全依附于周邊安全模型,那么驗證機制就必須相對薄弱,而且缺乏多用戶管理及數據訪問方面的安全保護。只要擁有高權限賬戶,我們幾乎能訪問存儲機制中的一切數據。舉例來說,Brian Sullivan就在去年的黑帽大會上演示了如何在完全不清楚數據具體內容的情況下,將其信息羅列出來甚至導出。 而根據nCircle公司CTO Tim ‘TK’ Keanini的觀點,即使是與有限的應用程序相關聯,NoSQL也很有可能被暴露在互聯網上。在缺少嚴密網絡劃分的情況下,它可能成為攻擊者窺探存儲數據的薄弱環節。因為NoSQL在設計上主要用于互聯網規模的部署,所以它很可能被直接連接到互聯網中,進而面臨大量攻擊行為。 其中發生機率最高的攻擊行為就是注入式攻擊,這也是一直以來肆虐于關系類數據庫領域的頭號公敵。盡管NoSQL沒有將SQL作為查詢語言,也并不代表它能夠免受注入式攻擊的威脅。雖然不少人宣稱SQL注入在NoSQL這邊不起作用,但其中的原理是完全一致的。攻擊者需要做的只是改變自己注入內容的語法形式,Rothacker解釋稱。也就是說雖然SQL注入不會出現,但JavaScript注入或者JSON注入同樣能威脅安全。 此外,攻擊者在籌劃對這類數據庫展開侵襲時,也很可能進一步優化自己的工具。不成熟的安全技術往往帶來這樣的窘境:需要花費大量時間學習如何保障其安全,但幾乎每個IT人士都能迅速掌握攻擊活動的組織方法。因此我認為攻擊者將會始終走在安全部署的前面,Shulman說道。遺憾的是搞破壞總比防范工作更容易,而我們已經看到不少NoSQL技術方面的公開漏洞,尤其是目前引起熱議的、以JSON注入為載體的攻擊方式。 NoSQL安全性并非其阻礙 然而,這一切都不應該成為企業使用NoSQL的阻礙,他總結道。我認為歸根結底,這應該算是企業的一種商業決策。只要這種選擇能夠帶來吸引力巨大的商業機遇,就要承擔一定風險,Shulman解釋道。但應該采取一定措施以盡量弱化這種風險。 舉例來說,鑒于數據庫對外部安全機制的依賴性,Rothacker建議企業積極考慮引入加密方案。他警告稱,企業必須對與NoSQL相對接的應用程序代碼仔細檢查。換言之,企業必須嚴格挑選負責此類項目部署的人選,確保將最好的人才用于這方面事務,Shulman表示。當大家以NoSQL為基礎編寫應用程序時,必須啟用有經驗的編程人員,因為客戶端軟件是抵擋安全問題的第一道屏障。切實為額外緩沖區的部署留出時間與預算,這能夠讓員工有閑暇反思自己的工作內容并盡量多顧及安全考量多想一點就是進步。綜上所述,這可能與部署傳統的關系類數據庫也沒什么不同。 具有諷刺意味的是,近年來數據庫應用程序在安全性方面的提升基本都跟數據庫本身沒什么關系,nCircle公司安全研究及開發部門總監Oliver Lavery如是說。
創新互聯公司專注于綿陽網站建設服務及定制,我們擁有豐富的企業做網站經驗。 熱誠為您提供綿陽營銷型網站建設,綿陽網站制作、綿陽網頁設計、綿陽網站官網定制、小程序開發服務,打造綿陽網絡公司原創品牌,更為您提供綿陽網站排名全網營銷落地服務。
一款合格的大數據安全審計產品須符合以下特性:
實現對非關系型數據庫的監控:大數據的數據來源復雜,數據格式繁多,不僅有傳統的結構性數據(Oracle,SQLServer等),還有非結構型數據(Hbase,MongoDB,Caché等),BAAS全面支持非結構化數據庫NOSQL的審計,實現大數據庫全面的監控與審計。
全面支持第三方工具對大數據庫行為的監控:由于大數據的結構區別于傳統的數據庫(如ORACLE,SQL等),如果要做到真正的安全管控,就要支持對Hive、Pig、Mahout等工具的使用進行安全監控。產品對于第三方的工具或系統通過NO SQL語言訪問數據庫的行為進行監控。
支持的數據庫類型:大數據平臺下數據庫:Hadoop平臺下的HBase、MongoDB、Caché等,傳統數據庫:如 Oracle、MS-SQL 、DB2、MYSQL、Caché DB、 Sybase 、POSTGRESQL、達夢、人大金倉等
實時海量檢索:對所有存儲的海量信息進行索引,根據任意關鍵字檢索到所有相關信息,高效處理能力;專業級測試儀、構造模擬現場報文進行壓力、性能測試,保障大數據下的性能要求。
動態實時可視化監測:將數據的各個屬性值以多維數據的形式表示,可以從不同的維度觀察數據,從而對數據進行更深入的觀察和分析及定位。
監測異常行為:對大量的歷史日志與安全信息進行機器學習與算法分析來偵測出異常行為模式和隱藏的威脅,無論是外部APT攻擊,還是內部人員泄密
實時告警:提供了多種方式來自動進行告警,可以根據告警級別,實時發送短信、郵件、SNMP等方式給相關負責人,方便事故及時處理。
海量數據統計分析報表:昂楷BAAS針對大數據平臺分布式文件系統(如HDFS)下存儲的海量數據,在數據交互過程中進行實時分析并生成各類統計報表,如:會話行為:登錄成功失敗報表、用戶訪問情況報表等;SQL行為:訪問失敗報表、表對象訪問情況報表等;政策性報表:等級保護報表等;還可針對客戶需求自由定制報表。
mysql服務器自身沒有提供審計功能,但是我們可以使用init-connect + binlog的方法進行mysql的操作審計。由于mysql binlog記錄了所有對數據庫長生實際修改的sql語句,及其執行時間,和connection_id但是卻沒有記錄connection_id對應的詳細用戶信息。在后期審計進行行為追蹤時,根據binlog記錄的行為及對應的connection-id 結合 之前連接日志記錄 進行分析,得出最后的結論。
1. 設置init-connect
1.1 創建用于存放連接日志的數據庫和表
create database accesslog;
CREATE TABLE accesslog.accesslog (`id` int(11) primary key auto_increment, `time` timestamp, `localname` varchar(30), `matchname` varchar(30))
1.2 創建用戶權限
可用現成的root用戶用于信息的讀取
grant select on accesslog.* to root;
如果存在具有to *.* 權限的用戶需要進行限制。
這里還需要注意用戶必須對accesslog表具有insert權限
grant select on accesslog.* to user@’%’;
1.3 設置init-connect
在[mysqld]下添加以下設置:
init-connect=’insertinto accesslog.accesslog(id, time, localname, matchname)
values(connection_id(),now(),user(),current_user());’
------注意user()和current_user()的區別
log-bin=xxx
這里必須開啟binlog
1.4 重啟數據庫生效
shell /etc/init.d/mysql restart
2. 記錄追蹤
2.1 thread_id確認
可以用以下語句定位語句執行人
Tencent:~ # mysqlbinlog --start-datetime='2011-01-26 16:00:00'
--stop-datetime='2011-01-26 17:00:00' /var/lib/mysql/mysql-bin.000010
| grep -B 5 'wsj'
COMMIT/*!*/;
# at 767
#110126 16:16:43 server id 1 end_log_pos 872 Query thread_id=19 exec_time=0 error_code=0
use test/*!*/;
SET TIMESTAMP=1296029803/*!*/;
create table wsj(id int unsigned not null)
--
BEGIN
/*!*/;
# at 940
#110126 16:16:57 server id 1 end_log_pos 1033 Query thread_id=19 exec_time=0 error_code=0
SET TIMESTAMP=1296029817/*!*/;
insert into wsj(id) values (1)
--
BEGIN
/*!*/;
# at 1128
#110126 16:16:58 server id 1 end_log_pos 1221 Query thread_id=19 exec_time=0 error_code=0
SET TIMESTAMP=1296029818/*!*/;
insert into wsj(id) values (2)
2.2 用戶確認
thread_id 確認以后,找到元兇就只是一條sql語句的問題了。
mysql select * from accesslog where id=19;
+----+---------------------+---------------------+-----------+
| id | time | localname | matchname |
+----+---------------------+---------------------+-----------+
| 19 | 2011-01-26 16:15:54 | test@10.163.164.216 | test@% |
+----+---------------------+---------------------+-----------+
1 row in set (0.00 sec)
數據庫安全審計主要用于監視并記錄對數據庫服務器的各類操作行為,通過對網絡數據的分析,實時地、智能地解析對數據庫服務器的各種操作,并記入審計數據庫中以便日后進行查詢、分析、過濾,實現對目標數據庫系統的用戶操作的監控和審計。它可以監控和審計用戶對數據庫中的數據庫表 、視圖、序列、包、存儲過程、函數、庫、索引、同義詞、快照、觸發器等的創建、修改和刪除等,分析的內容可以精確到SQL操作語句一級。它還可以根據設置的規則,智能的判斷出違規操作數據庫的行為,并對違規行為進行記錄、報警。由于數據庫安全審計系統是以網絡旁路的方式工作于數據庫主機所在的網絡,因此它可以在根本不改變數據庫系統的任何設置的情況下對數據庫的操作實現跟蹤記錄、定位,實現數據庫的在線監控,在不影響數據庫系統自身性能的前提下,實現對數據庫的在線監控和保護,及時地發現網絡上針對數據庫的違規操作行為并進行記錄、報警和實時阻斷,有效地彌補現有應用業務系統在數據庫安全使用上的不足,為數據庫系統的安全運行提供了有力保障。
一、數據庫安全審計主要功能包括:
· 實時監測并智能地分析、還原各種數據庫操作。
· 根據規則設定及時阻斷違規操作,保護重要的數據庫表和視圖。
· 實現對數據庫系統漏洞、登錄帳號、登錄工具和數據操作過程的跟蹤,發現對數據庫系統的異常使用。
· 支持對登錄用戶、數據庫表名、字段名及關鍵字等內容進行多種條件組合的規則設定,形成靈活的審計策略。
· 提供包括記錄、報警、中斷和向網管系統報警等多種響應措施。
· 具備強大的查詢統計功能,可生成專業化的報表。
二、數據庫安全審計主要特點
· 采用旁路技術,不影響被保護數據庫的性能。
· 使用簡單,不需要對被保護數據庫進行任何設置。
· 支持SQL-92標準,適用面廣,可以支持Oracle、MS SQL Server、Sybase、Informix等多類數據庫。
· 審計精細度高,可審計并還原SQL操作語句。
· 采用分布式監控與集中式管理的結構,易于擴展。
· 完備的"三權分立"管理體系,適應對敏感內容審計的管理要求。