防范攻击 加强管控 - 数据库安全的16条军规
近日的數(shù)據(jù)安全事故,引發(fā)了很多企業(yè)的普遍關(guān)注,而不少用戶從徹查中確實發(fā)現(xiàn)自己的數(shù)據(jù)庫已經(jīng)被注入,這為大家上了數(shù)據(jù)安全的重要一課。
甚至有的企業(yè)要求停用PL/SQL Developer這一工具,雖然這從制度上關(guān)上了一個門,但是我們知道數(shù)據(jù)庫類似的門如此之多,如何能夠從根本上提升數(shù)據(jù)庫管理的安全,減少數(shù)據(jù)運維風(fēng)險呢?
我曾經(jīng)在《數(shù)據(jù)安全警示錄》一書中總結(jié)了種種數(shù)據(jù)安全風(fēng)險,提出了很多預(yù)防措施和手段,在此整理其中的一些建議供大家參考,當然大家也可以從云和恩墨的安全服務(wù)中獲得幫助。
我在書中提出了數(shù)據(jù)安全的五個緯度,可以基于這五個緯度來梳理企業(yè)的數(shù)據(jù)安全,并據(jù)此建立相應(yīng)的安全防護措施。
在數(shù)據(jù)安全的范疇內(nèi),我們將安全劃分為五大方面,分別是:
軟件安全、備份安全、訪問安全、防護安全、管理安全
在企業(yè)數(shù)據(jù)安全中,這五大方面是相輔相成、互有交叉、共同存在的,下圖是關(guān)于安全的一張思維導(dǎo)圖:
在這五大安全方向中,可能出現(xiàn)兩種性質(zhì)的安全問題,第一,由于內(nèi)部管理不善而導(dǎo)致的數(shù)據(jù)安全問題;第二,由于外部惡意攻擊入侵所帶來的安全安問題。通常我們把安全問題狹義化為后者,這實際上是片面的,在數(shù)據(jù)安全問題上,前者造成的數(shù)據(jù)損失、數(shù)據(jù)損毀,其發(fā)生率和影響度都遠遠超過后者。?
下面我們對數(shù)據(jù)安全的五大方面做一下簡要的分析和探討:
1.軟件安全是指我們選擇的數(shù)據(jù)庫產(chǎn)品、版本是否穩(wěn)定安全;廠商所能提供的補丁集和BUG修正是否及時、基礎(chǔ)硬件與操作系統(tǒng)是否經(jīng)過認證。很多用戶在部署數(shù)據(jù)庫軟件時,僅僅選擇了最容易獲得的初始發(fā)布版本,遺漏了可能已經(jīng)存在的補丁修正,并且在運行維護中并不能夠及時跟蹤軟件更新,也無法獲得BUG信息、補丁修正和安全告警,這就使得軟件本身的很多風(fēng)險隱患得不到修正。如果軟件安全無法保證,數(shù)據(jù)庫安全的基礎(chǔ)也就喪失了。
2.備份安全是指用戶數(shù)據(jù)能否得到及時有效的備份保全,能否在故障災(zāi)難之后獲得及時的恢復(fù)和挽救。在數(shù)據(jù)庫運行期,最為重要的就是備份安全,如果沒有可靠的備份,將數(shù)據(jù)集中起來就只能是等待數(shù)據(jù)災(zāi)難,所以我們將備份安全提升到核心地位,備份以及隨之衍生的容災(zāi)安全等,都是企業(yè)整體數(shù)據(jù)架構(gòu)應(yīng)該考慮的因素。很多企業(yè)在數(shù)據(jù)災(zāi)難之后因為缺乏有效備份而一蹶不振,根據(jù)Gartner 2007年的一份調(diào)查報告顯示,在經(jīng)歷了數(shù)據(jù)完全丟失而導(dǎo)致系統(tǒng)停運的企業(yè)中,有2/5再也沒能恢復(fù)運營,余下的企業(yè)也有1/3在兩年內(nèi)宣告破產(chǎn),由此可見,由于備份安全問題導(dǎo)致的企業(yè)傷害可能遠遠大于黑客攻擊。
3.訪問安全是指用戶數(shù)據(jù)庫的訪問來源和訪問方式是否安全可控。通常數(shù)據(jù)庫系統(tǒng)處于IT系統(tǒng)的核心,其安全架構(gòu)涉及主機、系統(tǒng)、存儲、網(wǎng)絡(luò)等諸多方面,如果沒有明確的訪問控制,缺乏足夠的訪問分析與管理,那么數(shù)據(jù)庫的安全將是混亂和無法控制的。在應(yīng)用軟件使用和訪問數(shù)據(jù)庫時,要正確設(shè)置權(quán)限,控制可靠的訪問來源,保證數(shù)據(jù)庫的訪問安全,唯有保證訪問安全才能夠確保數(shù)據(jù)不被越權(quán)使用、不被誤操作所損害,通常最基本的訪問安全要實現(xiàn)程序控制、網(wǎng)絡(luò)隔離、來源約束等。
4.安全防范是指通過主動的安全手段對數(shù)據(jù)庫通訊、傳輸?shù)冗M行增強、監(jiān)控、防護、屏蔽或阻斷,諸如數(shù)據(jù)加密、審計、數(shù)據(jù)防火墻等技術(shù)都在這一范疇之內(nèi)。我們必須認識到,在IT技術(shù)高度發(fā)展的今天,風(fēng)險是無處不在、層出不窮的,可能我們從未思考過的安全問題,每天都在不斷涌現(xiàn),所以在數(shù)據(jù)庫環(huán)境中采取主動式防護,可以幫助我們監(jiān)控分析和屏蔽很多未知風(fēng)險,已經(jīng)有很多成熟的產(chǎn)品和技術(shù)可以用于安全防范。
5.管理安全是指在企業(yè)數(shù)據(jù)的日常管理維護范疇內(nèi),能否充分保證數(shù)據(jù)安全以及服務(wù)的高可用連續(xù)提供。諸如DBA的維護、文件的管理、參數(shù)或數(shù)據(jù)結(jié)構(gòu)的變更等等都可能引入數(shù)據(jù)風(fēng)險,管理安全要求我們通過規(guī)范、制度以及技術(shù)手段去確保維護管理安全;另外,基于硬件、電力等基礎(chǔ)平臺的故障都可能影響數(shù)據(jù)庫服務(wù)的高可用性,在管理中要通過監(jiān)控手段及時預(yù)警,通過集群、備庫等切換與服務(wù)分擔保障服務(wù)的連續(xù)性。
針對最近爆發(fā)的安全事故,我抽取書中的觀點,總結(jié)提升數(shù)據(jù)庫安全的"16條軍規(guī)"供大家參考,很多朋友也向我們詢問,如何做才能夠徹底防范這類風(fēng)險,我想你可以從以下16條建議中找到答案:
備份重于一切
我曾經(jīng)在總結(jié)的DBA四大守則的第一條就指出,『備份重于一切』,有了有效的備份,即使遭遇災(zāi)難,也可以從容應(yīng)對,對于重要的生產(chǎn)環(huán)境,適當建立備庫進行數(shù)據(jù)保護,查詢分擔,也會減少生產(chǎn)庫的風(fēng)險;
唯一會讓DBA們從夢中驚醒的就是:沒有備份! 所以對于數(shù)據(jù)庫運維來說,第一重要的是做好備份!有備方能無患!
嚴格管控權(quán)限
過度授權(quán)即是為數(shù)據(jù)庫埋下安全隱患,在進行用戶授權(quán)時一定要遵循最小權(quán)限授予原則,避免因為過度授權(quán)而帶來的安全風(fēng)險。本次安全風(fēng)險,如果用戶只具備最低權(quán)限,如不具備DDL權(quán)限,那么也不會遭到風(fēng)險;
明確用戶職責
應(yīng)當明確不同的數(shù)據(jù)庫用戶能夠用于的工作范圍,應(yīng)當使用普通用戶身份的,就絕對不應(yīng)該使用DBA的用戶身份,只有職權(quán)相稱,才能夠避免錯誤,降低風(fēng)險。 即便是擁有管理員職責的用戶,也應(yīng)當遵循以不同身份執(zhí)行不同任務(wù)的習(xí)慣,比如SYS和SYSTEM用戶的使用就應(yīng)當進行區(qū)分和界定;
密碼策略強化
毫無疑問,數(shù)據(jù)庫用戶應(yīng)當使用強化的密碼規(guī)則,確保弱口令帶來的安全風(fēng)險,很多數(shù)據(jù)泄露問題來自弱口令攻擊和提權(quán);
限制登錄工具
明確限制不同工具的使用場景,明確規(guī)定工具的準確來源,或者通過堡壘機等來限制數(shù)據(jù)庫訪問。對于工具也可以做出明確規(guī)則和限制,如限制僅能通過SQL Developer訪問生產(chǎn),PL/SQL Developer工具僅能訪問測試環(huán)境,以減少安全風(fēng)險甚至誤操作風(fēng)險;
禁止遠程DDL
可以限制DDL操作僅能在數(shù)據(jù)庫服務(wù)器本地進行,禁止遠程連接執(zhí)行DDL操作,這一手段在很多公司被嚴格執(zhí)行,如果具備這一規(guī)則,此次的事故可以被直接屏蔽掉;
使用綁定變量
在開發(fā)過程中,嚴格使用綁定變量,綁定變量可以防范SQL注入攻擊,減少數(shù)據(jù)庫安全風(fēng)險;這次安全事故,很多用戶開始猜測是SQL注入,走了很多分析上的彎路;
監(jiān)控監(jiān)聽日志
監(jiān)聽日志記錄了數(shù)據(jù)庫訪問的來源、程序等信息,包括惡意掃描,密碼嘗試等,一定要重視監(jiān)聽日志的作用,并對其進行分析和監(jiān)控,以清楚的匯制數(shù)據(jù)庫訪問圖譜;云和恩墨一直幫助用戶通過監(jiān)聽日志分析來揭示風(fēng)險,白求恩平臺( https://bethune.enmotech.com )為用戶免費提供這一分析緯度的預(yù)警;
數(shù)據(jù)網(wǎng)絡(luò)隔離
數(shù)據(jù)庫的網(wǎng)絡(luò)環(huán)境應(yīng)該一直隱藏在最后端,避免將數(shù)據(jù)庫置于直接的訪問連接之下,由此可以減少數(shù)據(jù)庫的訪問風(fēng)險;
測試和生產(chǎn)隔離
互通就意味著同時可以訪問,也就可能帶來很多意想不到的安全風(fēng)險,企業(yè)應(yīng)當將測試環(huán)境和生產(chǎn)環(huán)境部署于不可互通,或者不可同時訪問的網(wǎng)絡(luò)環(huán)境中,避免因為錯誤連接而發(fā)生的數(shù)據(jù)庫災(zāi)難。 分離部署一方面可以降低誤操作的可能性,也可以屏蔽一些無關(guān)的訪問可能,從而從網(wǎng)絡(luò)鏈路上保證數(shù)據(jù)安全;
密碼差異設(shè)置
有些測試環(huán)境或者非產(chǎn)品環(huán)境是利用產(chǎn)品環(huán)境恢復(fù)得到的,DBA在建立了測試環(huán)境后,就沒有修改數(shù)據(jù)庫用戶的登錄密碼;經(jīng)常性的,DBA也習(xí)慣在所有環(huán)境中設(shè)置通用的密碼;這些習(xí)慣為系統(tǒng)帶來了很多風(fēng)險和不確定性。 我們建議用戶在不同環(huán)境中采用不同的密碼設(shè)置,這是因為一方面產(chǎn)品環(huán)境和測試環(huán)境面對的訪問用戶不同,密碼設(shè)置相同則意味著產(chǎn)品環(huán)境的安全性完全得不到保障;另一方面,DBA登錄到不同的數(shù)據(jù)庫需要使用不同的密碼,這進一步減低了DBA在錯誤的環(huán)境下執(zhí)行命令的可能性。
重要數(shù)據(jù)加密
很多重要的數(shù)據(jù),需要加密存儲,最典型的就是用戶和密碼信息,大量的泄密事件本質(zhì)上是因為缺乏最基本的加密防范,對重要數(shù)據(jù)實施一定的安全防護加密,是應(yīng)當予以適時考慮的安全方面之一;
適時的軟件升級
這里的軟件指數(shù)據(jù)庫軟件,尤其是當Oracle已經(jīng)發(fā)布了安全補丁,已知的安全漏洞被黑客利用,則更可能對數(shù)據(jù)庫產(chǎn)生致命的傷害;
防范內(nèi)部風(fēng)險
不可否認,絕大部分安全問題都來自于企業(yè)內(nèi)部,來自最緊密、最輕易的接觸和訪問,企業(yè)的人員變動,崗位變更,都可能導(dǎo)致數(shù)據(jù)安全問題的出現(xiàn),單存依靠對管理員的信任不足以保障數(shù)據(jù)安全,必須通過規(guī)章、制度與規(guī) 范的約束才能夠規(guī)避安全風(fēng)險。
很多企業(yè)為了便利而舍棄規(guī)范、規(guī)章或者安全限制是得不償失的做法。安全防范應(yīng)當從內(nèi)部做起,從限制約束自我做起,當最緊密相關(guān)的訪問都遵從守則,那么系統(tǒng)的安全性就能夠獲得大幅度的提升。
樹立安全意識
安全問題最大的敵人是僥幸,很多企業(yè)認為安全問題概率極低,不會落到自己的環(huán)境中,所以對于安全不做必要的投入,造成了安全疏忽。所以安全問題最大的敵人是我們自己,安全需要一點一滴的加強,逐步完善,云和恩墨一直幫助核心客戶進行全面的安全評估,制定安全方案,守護數(shù)據(jù)安全。
開始安全審計
以O(shè)racle數(shù)據(jù)庫為例,數(shù)據(jù)庫已經(jīng)提供了很多安全防范的手段和方法,我們建議用戶適當展開安全防范措施,開啟部分任務(wù)審計,定期分析數(shù)據(jù)庫風(fēng)險,由此逐步完善數(shù)據(jù)庫安全。
關(guān)注安全,努力請從今日始。
文章轉(zhuǎn)自數(shù)據(jù)和云公眾號,原文鏈接
總結(jié)
以上是生活随笔為你收集整理的防范攻击 加强管控 - 数据库安全的16条军规的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【nginx】关于Nginx的一些优化(
- 下一篇: PostgreSQL的postmaser