保護敏感數據對付惡意內部人員的九大妙招
有意或無意的內部人員威脅一直都大量存在。在經濟困難時期,其惡尤甚。由于數字信息的激增,將信用卡數據、個人身份信息和知識產權變成現金、財產的手段,以及由此造成的風險都與日俱增。我們不再對受到信任的內部人員竊取敏感數據的行為感到驚奇。企業日益發現,最大的威脅來自內部。
如今,許多企業同意最有價值的IT資產存在于應用程序和數據庫中。多數企業還承認應用程序和數據庫的安全水平最低,這就使其成為系統管理員、數據庫管理員、顧問、合伙人、客戶的惡意活動的首要目標。
本文將探討保護敏感數據免受訪問數據的人員的損害的多種方法。雖然內部威脅難以應對,但只要利用適當的工具,也并非不可能。
一、知道敏感數據存在于哪些數據庫
看一下最近的安全類文章,你會發現解決特定安全問題的居多。原因在于全面安全,即平等地保護一切的觀念過于昂貴,并且不易衡量。雖然這個觀念很容易理解,但確認關鍵的資產卻絕非易事。對于數據庫及其包含的敏感數據而言,尤其如此。此類數據可能是信用卡號、個人身份信息、雇員、醫療記錄、研究報告、業務計劃、絕密文件等。實際上,每家企業都有需要保護的敏感信息,但往往并不知道信息在哪里。
首先需要確認數據庫自身。但此任務未必如像乍看起來那么簡單。面向服務架構(SOA)可能很龐大且復雜。例如,企業可能對包含敏感數據的數據庫進行了某種測試,此外,還有可能存在一些未經驗證的數據庫。
一旦確認了數據庫,對敏感數據進行分類并確認其包含的對象就顯得至關重要了。必須對分類進行驗證,其目的是為了減少一些“似是而非”的情況。驗證過程應當是自動化的,并支持多次執行,而且還要隨著時間的推移而支持可擴展性,并保證準確性。
二、勿輕信本機的數據庫工具
如果是擁有特權的內部人員作案,如數據庫管理員和系統管理員,再相信受到其攻擊的系統的安全信息將毫無意義。如果惡意的內部人員可以訪問數據庫并可能操縱本地的審計日志,這些日志就毫無用處。這就像讓犯罪份子成為現場調查員一樣。因而必須實施責任分離:安全和操作必須分離。不能相信那些存在于受攻擊的數據庫系統中的審計信息或由這種數據庫創建的審計信息。此外,本地的數據庫審計日志還會帶來一些技術問題。例如:
在很多情況下,并沒有啟用本地數據庫審計。
本地審計的啟用靠手工完成,容易出現錯誤;數據庫管理員可能啟用了并不充分的審計。
本地審計會對被審計的服務器帶來高昂的費用。啟用本地審計有可能耗盡數據庫主機資源,影響系統的效率。
不同的數據庫提供了不同的審計功能。在異構環境中對每個數據庫版本和類型啟用審計會耗費大量的資源,因為其輸出是不同的,有可能不完整,而且對于并不精通每種數據庫的人員來說,這種輸出結果也難以解析。
許多數據庫并不能捕獲被變造的SQL查詢。
在捕獲數據庫的審計日志時,應當獨立于數據庫工具:強化責任分離、增強數據庫的性能、確立用戶責任等。
三、監視善意的、惡意的和有特權的用戶
需要訪問敏感數據的用戶也是能夠給這種數據帶來威脅的用戶。設計DMZ、業務流程外包以及SOA等,目的都是為了改善訪問,提高運營效率,促進信息共享等。但事物總有其兩面性。
監視善意人員:懷有惡意的人有可能偽裝成善人。監視內部和外部的好人,特別是那些接觸“敏感數據”的人。
監視惡意人員:這是因為來自不可信的外部人員的多種風險仍然存在,所以你無法在沒有傳統網絡安全控制的情況下就進行操作。但利用這些機制來保護敏感數據并非根本解決之道。網絡安全的根本設計目的并不是為了解決數據安全。
監視特權人員:這是因為這些人掌握著關系到企業存亡的大權。在許多情況下,他們不但負責運營,在很多情況下,還負責安全。頗具諷刺意味的是,特權人員還被要求保障系統的安全。
不管對可信用戶、不可信用戶還是特權用戶,對敏感數據的保護需要時時刻刻地進行。要假設每個人都可以訪問數據,假設每個人都想竊取數據。
由于Web服務器是外部攻擊者用以竊取數據的典型攻擊媒介,傳統的網絡安全控制對于減輕數據攻擊的效率是很低的,需要實施應用程序防火墻來檢測和防止基于Web的攻擊,如SQL注入攻擊、跨站腳本攻擊、cookie投毒、會話劫持等。確保“數據安全”控制能夠監視所有的特權用戶活動,以及應用程序的用戶通信。所實施的控制必須包括事件阻止、警告、報告、審計等。最后,確保這些安全控制獨立于操作人員,從而能夠高效地監視特權用戶對數據的使用。
四、對數據庫的使用進行分析
許多人員認為惡意內部用戶的焦點問題是,用戶在哪里與敏感數據交互。傳統的網絡安全控制,如防火墻(使用簽名匹配方法),專注于檢測和阻止特定的事件,在應對人員和數據時就顯得太簡單了。如果一家企業能夠決定正常的活動是怎樣的,就可以根據用戶活動的源頭(源用戶、源應用程序、源位置)、目的(目標數據庫和數據庫對象)、用戶活動的環境(時間、經常性的用法、成功及失敗的活動等)來對使用情況進行分類。可以檢測缺乏簽名的數據使用的異常情況。一個證明分析的價值的例子是業務邏輯攻擊。業務邏輯攻擊可以使web應用程序的功能用來對付業務,它破壞的是業務邏輯而不是應用程序。
分析應用程序和數據庫的交互也很重要。這樣做可以更好地防御SQL注入攻擊,并確認由于應用程序的設計缺陷而造成的異常數據庫活動。以這種方式分析應用程序還可以揭示:在一個不合適的環境中使用后將會顯得不正常的各種合法應用:
1)在單個設備與多個設備通信時,有可能被看成是惡意軟件的傳播和漫延,而實際上有可能是一臺備份服務器或一臺代理服務器。
2)在非運營時間進行的大量數據傳輸有可能被認為是信息竊取,而實際上有可能是合法的數據庫備份。
3)還可以發現潛在的惡意模式,例如:
過度的文件下載
在可疑的時間發現了用戶活動
非授權用戶企圖訪問保密數據,例如,開發人員試圖訪問人力資源部門的系統
可疑的無效活動(如大量的非法登錄企圖)
分析并不像一次性的掃描。因為應用程序和數據庫屬于連續變化的動態環境,因而對應用程序及數據庫的使用情況進行不斷分析和更新是很重要的,這應當成為一個成熟的數據安全策略的不可缺少的一部分。
五、協調Web應用程序和數據庫之間的活動
監視用戶的全部任務就是跟蹤用戶并讓其為自己的活動負責。確認網絡活動的責任人可能很困難。在使用連接池的多數現代應用程序中,并沒有在本地記錄Web應用程序和數據庫之間的用戶會話。連接池通過再次使用已打開的數據庫連接而不是為每個用戶打開數據庫連接,從而改善了應用程序的性能。雖然應用程序的性能得到了提高,但連接池也掩蓋了每個請求活動的用戶身份,這意味著確實沒有方法可以將數據庫活動與特定用戶關聯起來。
企業可以重新編寫客戶應用程序和數據庫代碼來支持此功能。不過,這是一個昂貴的建議,需要為企業中應用程序和數據庫的每個版本都這樣做,而且增加的代碼可能會帶來漏洞。
Web應用程序和數據庫活動的關系協調必須在這兩者之外實現,而且要獨立于廠商、版本等。以這種方式跟蹤用戶會話可以更好地控制會話記錄,而不會額外地耗用Web和數據庫應用程序的資源,也不會使寶貴的開發資源偏離其它項目。可以在Web應用程序、數據庫之間有效地協調用戶會話,不但可以捕獲查詢,還可以捕獲作為結果而返回的數據。
六、以人類的直覺來強化基于機器的分析
預防性的安全控制的可升級性總是有限的,如果沒有人的分析,純粹從技術中獲得的價值總是有限的。實時的警告一般源自純技術分析得到的結論。報告可以從兩方面來強化這個過程。首先,報告可以更長遠地檢測趨勢,如幾個月都在濫用資源的方式。其次,報告利用人類的直覺來強化基于機器的分析。
對內部人員而言,擁有一套使人能夠根據結果做出結論的簡易而有效的方法是至關重要的。這是因為人可以考慮更多的因素,而不僅僅通過應用程序和數據庫的分析所捕獲的數據。例如,某用戶表現不佳,并且有傳言說他要離開公司到某競爭對手那里去。因為IT安全團隊不可能擁有公司每個人的“全面情況”,因而,這份報告能使公司的各種人員都能使用是很重要的,如非技術經理、人力資源部門、法律部門等。這種由現實分析與應用程序和數據庫的詳細證據的組合,可以生成比單純一個方面更多的精確結果。
【編輯推薦】