近日的資料安全事故,引發了很多企業的普遍關注,而不少使用者從徹查中确實發現自己的資料庫已經被注入,這為大家上了資料安全的重要一課。
甚至有的企業要求停用pl/sql developer這一工具,雖然這從制度上關上了一個門,但是我們知道資料庫類似的門如此之多,如何能夠從根本上提升資料庫管理的安全,減少資料運維風險呢?
我曾經在《資料安全警示錄》一書中總結了種種資料安全風險,提出了很多預防措施和手段,在此整理其中的一些建議供大家參考,當然大家也可以從雲和恩墨的安全服務中獲得幫助。
我在書中提出了資料安全的五個緯度,可以基于這五個緯度來梳理企業的資料安全,并據此建立相應的安全防護措施。
在資料安全的範疇内,我們将安全劃分為五大方面,分别是:
軟體安全、備份安全、通路安全、防護安全、管理安全
在企業資料安全中,這五大方面是相輔相成、互有交叉、共同存在的,下圖是關于安全的一張思維導圖:
在這五大安全方向中,可能出現兩種性質的安全問題,第一,由于内部管理不善而導緻的資料安全問題;第二,由于外部惡意攻擊入侵所帶來的安全安問題。通常我們把安全問題狹義化為後者,這實際上是片面的,在資料安全問題上,前者造成的資料損失、資料損毀,其發生率和影響度都遠遠超過後者。
下面我們對資料安全的五大方面做一下簡要的分析和探讨:
1.軟體安全是指我們選擇的資料庫産品、版本是否穩定安全;廠商所能提供的更新檔集和bug修正是否及時、基礎硬體與作業系統是否經過認證。很多使用者在部署資料庫軟體時,僅僅選擇了最容易獲得的初始釋出版本,遺漏了可能已經存在的更新檔修正,并且在運作維護中并不能夠及時跟蹤軟體更新,也無法獲得bug資訊、更新檔修正和安全告警,這就使得軟體本身的很多風險隐患得不到修正。如果軟體安全無法保證,資料庫安全的基礎也就喪失了。 2.備份安全是指使用者資料能否得到及時有效的備份保全,能否在故障災難之後獲得及時的恢複和挽救。在資料庫運作期,最為重要的就是備份安全,如果沒有可靠的備份,将資料集中起來就隻能是等待資料災難,是以我們将備份安全提升到核心地位,備份以及随之衍生的容災安全等,都是企業整體資料架構應該考慮的因素。很多企業在資料災難之後因為缺乏有效備份而一蹶不振,根據gartner 2007年的一份調查報告顯示,在經曆了資料完全丢失而導緻系統停運的企業中,有2/5再也沒能恢複營運,餘下的企業也有1/3在兩年内宣告破産,由此可見,由于備份安全問題導緻的企業傷害可能遠遠大于黑客攻擊。 3.通路安全是指使用者資料庫的通路來源和通路方式是否安全可控。通常資料庫系統處于it系統的核心,其安全架構涉及主機、系統、存儲、網絡等諸多方面,如果沒有明确的通路控制,缺乏足夠的通路分析與管理,那麼資料庫的安全将是混亂和無法控制的。在應用軟體使用和通路資料庫時,要正确設定權限,控制可靠的通路來源,保證資料庫的通路安全,唯有保證通路安全才能夠確定資料不被越權使用、不被誤操作所損害,通常最基本的通路安全要實作程式控制、網絡隔離、來源限制等。 4.安全防範是指通過主動的安全手段對資料庫通訊、傳輸等進行增強、監控、防護、屏蔽或阻斷,諸如資料加密、審計、資料防火牆等技術都在這一範疇之内。我們必須認識到,在it技術高度發展的今天,風險是無處不在、層出不窮的,可能我們從未思考過的安全問題,每天都在不斷湧現,是以在資料庫環境中采取主動式防護,可以幫助我們監控分析和屏蔽很多未知風險,已經有很多成熟的産品和技術可以用于安全防範。 5.管理安全是指在企業資料的日常管理維護範疇内,能否充分保證資料安全以及服務的高可用連續提供。諸如dba的維護、檔案的管理、參數或資料結構的變更等等都可能引入資料風險,管理安全要求我們通過規範、制度以及技術手段去確定維護管理安全;另外,基于硬體、電力等基礎平台的故障都可能影響資料庫服務的高可用性,在管理中要通過監控手段及時預警,通過叢集、備庫等切換與服務分擔保障服務的連續性。
針對最近爆發的安全事故,我抽取書中的觀點,總結提升資料庫安全的"16條軍規"供大家參考,很多朋友也向我們詢問,如何做才能夠徹底防範這類風險,我想你可以從以下16條建議中找到答案:
備份重于一切 我曾經在總結的dba四大守則的第一條就指出,『備份重于一切』,有了有效的備份,即使遭遇災難,也可以從容應對,對于重要的生産環境,适當建立備庫進行資料保護,查詢分擔,也會減少生産庫的風險; 唯一會讓dba們從夢中驚醒的就是:沒有備份! 是以對于資料庫運維來說,第一重要的是做好備份!有備方能無患! 嚴格管控權限 過度授權即是為資料庫埋下安全隐患,在進行使用者授權時一定要遵循最小權限授予原則,避免因為過度授權而帶來的安全風險。本次安全風險,如果使用者隻具備最低權限,如不具備ddl權限,那麼也不會遭到風險; 明确使用者職責 應當明确不同的資料庫使用者能夠用于的工作範圍,應當使用普通使用者身份的,就絕對不應該使用dba的使用者身份,隻有職權相稱,才能夠避免錯誤,降低風險。 即便是擁有管理者職責的使用者,也應當遵循以不同身份執行不同任務的習慣,比如sys和system使用者的使用就應當進行區分和界定; 密碼政策強化 毫無疑問,資料庫使用者應當使用強化的密碼規則,確定弱密碼帶來的安全風險,很多資料洩露問題來自弱密碼攻擊和提權; 限制登入工具 明确限制不同工具的使用場景,明确規定工具的準确來源,或者通過堡壘機等來限制資料庫通路。對于工具也可以做出明确規則和限制,如限制僅能通過sql developer通路生産,pl/sql developer工具僅能通路測試環境,以減少安全風險甚至誤操作風險; 禁止遠端ddl 可以限制ddl操作僅能在資料庫伺服器本地進行,禁止遠端連接配接執行ddl操作,這一手段在很多公司被嚴格執行,如果具備這一規則,此次的事故可以被直接屏蔽掉; 使用綁定變量 在開發過程中,嚴格使用綁定變量,綁定變量可以防範sql注入攻擊,減少資料庫安全風險;這次安全事故,很多使用者開始猜測是sql注入,走了很多分析上的彎路; 監控監聽日志 監聽日志記錄了資料庫通路的來源、程式等資訊,包括惡意掃描,密碼嘗試等,一定要重視監聽日志的作用,并對其進行分析和監控,以清楚的彙制資料庫通路圖譜;雲和恩墨一直幫助使用者通過監聽日志分析來揭示風險,白求恩平台( https://bethune.enmotech.com )為使用者免費提供這一分析緯度的預警; 資料網絡隔離 資料庫的網絡環境應該一直隐藏在最後端,避免将資料庫置于直接的通路連接配接之下,由此可以減少資料庫的通路風險; 測試和生産隔離 互通就意味着同時可以通路,也就可能帶來很多意想不到的安全風險,企業應當将測試環境和生産環境部署于不可互通,或者不可同時通路的網絡環境中,避免因為錯誤連接配接而發生的資料庫災難。 分離部署一方面可以降低誤操作的可能性,也可以屏蔽一些無關的通路可能,進而從網絡鍊路上保證資料安全; 密碼差異設定 有些測試環境或者非産品環境是利用産品環境恢複得到的,dba在建立了測試環境後,就沒有修改資料庫使用者的登入密碼;經常性的,dba也習慣在所有環境中設定通用的密碼;這些習慣為系統帶來了很多風險和不确定性。 我們建議使用者在不同環境中采用不同的密碼設定,這是因為一方面産品環境和測試環境面對的通路使用者不同,密碼設定相同則意味着産品環境的安全性完全得不到保障;另一方面,dba登入到不同的資料庫需要使用不同的密碼,這進一步減低了dba在錯誤的環境下執行指令的可能性。 重要資料加密 很多重要的資料,需要加密存儲,最典型的就是使用者和密碼資訊,大量的洩密事件本質上是因為缺乏最基本的加密防範,對重要資料實施一定的安全防護加密,是應當予以适時考慮的安全方面之一; 适時的軟體更新 這裡的軟體指資料庫軟體,尤其是當oracle已經釋出了安全更新檔,已知的安全漏洞被黑客利用,則更可能對資料庫産生緻命的傷害; 防範内部風險 不可否認,絕大部分安全問題都來自于企業内部,來自最緊密、最輕易的接觸和通路,企業的人員變動,崗位變更,都可能導緻資料安全問題的出現,單存依靠對管理者的信任不足以保障資料安全,必須通過規章、制度與規 範的限制才能夠規避安全風險。 很多企業為了便利而舍棄規範、規章或者安全限制是得不償失的做法。安全防範應當從内部做起,從限制限制自我做起,當最緊密相關的通路都遵從守則,那麼系統的安全性就能夠獲得大幅度的提升。 樹立安全意識 安全問題最大的敵人是僥幸,很多企業認為安全問題機率極低,不會落到自己的環境中,是以對于安全不做必要的投入,造成了安全疏忽。是以安全問題最大的敵人是我們自己,安全需要一點一滴的加強,逐漸完善,雲和恩墨一直幫助核心客戶進行全面的安全評估,制定安全方案,守護資料安全。 開始安全審計 以oracle資料庫為例,資料庫已經提供了很多安全防範的手段和方法,我們建議使用者适當展開安全防範措施,開啟部分任務審計,定期分析資料庫風險,由此逐漸完善資料庫安全。
關注安全,努力請從今日始。