企業資料庫安全管理規範(全面,實用)

原创 twt社区

【摘要】本文整理了資料庫安全管理的各項要求和注意事項,詳細實用。 供大家參考。

【作者】朱雲峰,系統架構師,主要負責負責IDC基礎設施與資訊安全,擅長雲端原生、安全、監控、架構規劃相關工作。

1.目的
為規範資料庫系統安全使用活動,降低因使用不當而帶來的安全風險,並保障資料庫系統及相關應用系統的安全,並特製定本資料庫安全管理規範。

2.適用範圍
本規範所定義的資料管理內容,特別指存放在資訊系統資料庫中的資料。

本規範適用於資訊系統建置與維運,旨在明確資料庫管理員(DBA)工作職責及資料庫系統中與安全相關的配置項及其使用要求,指導資料庫系統的安裝、配置及日常管理,提升資訊 系統的安全水平。

3.定義
資料庫管理員:亦稱為 DBA ,負責資料庫安裝、調試、使用及日常運維,管理使用者對資料庫的存取權限,增加、刪除、修改資料庫中資料庫物件。

DML(data manipulation language):是SELECT、UPDATE、INSERT、DELETE,就像它的名字一樣,這4個指令是用來對資料庫裡的資料進行操作的語言。

DDL(data definition language):DDL比DML多,主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定義或改變表(TABLE)的結構,資料類型,表之間的連結和約束等 初始化工作上,他們大多在建立表格時使用。

DCL(Data Control Language):是資料庫控制功能。 是用來設定或更改資料庫使用者或角色權限的語句,包括(grant,deny,revoke等)語句。 在預設狀態下,只有sysadmin,dbcreator,db_owner或db_securityadmin等人員才有權力執行DCL。

4.DBA 職責
1、對資料庫系統進行合理配置、測試、調整,最大限度地發揮設備資源優勢,負責資料庫的安全、穩定運作;

2、對所有資料庫系統的配置進行可用性,可靠性,性能以及安全檢查;

3、定期對資料庫系統的可用性,可靠性,性能以及安全的配置方法進行檢查、修訂和完善;

4.負責資料庫系統運作過程中出現的問題及時處理解決;

5.負責資料庫系統的資料一致性與完整性,並協助開發、網路人員做好相關的配置、檢查等工作;

6.負責做好資料庫系統及資料的備份與復原工作;

7.做好數據日常檢查記錄(CheckList表單)准入要求。

DBA 權限及流程
1、DBA依「1001-資訊系統權限申請指南」的規範依紙本流程完成資料庫維運帳號的申請;

2、DBA 資料庫運維帳號綁定使用人員設備及手機號碼,透過簡訊或令牌實現2次驗證。 所有的運維操作透過堡壘機完成,堡壘機記錄並審計 DBA 所有的操作指令;

3.禁止遠端DDL:核心業務系統限制DDL操作僅能在資料庫伺服器本地進行,禁止遠端連線執行DDL操作;

4、DBA 透過查詢分析器執行的資料的變更(包括增加、刪除、重建等)操作需和維運部負責人共同評估後透過紙本流程申請執行。

5.安全管理
安全性是資料庫重要的日常工作,安全管理的主要內容包括帳戶管理和權限管理。 帳戶管理就是在資料庫中應該增加哪些帳戶、這些帳戶應該組合成哪些角色等。 權限管理是物件權限和語句權限的管理。

5.1 網路環境安全
1、資料庫伺服器置於單獨的伺服器區域,任何對這些資料庫伺服器的實體存取應受到控制。

2、資料庫伺服器所在的伺服器區域邊界部署防火牆或其它邏輯隔離設施。

5.2 伺服器安全
1、重要的資料庫伺服器除提供資料存取服務外,不提供任何其它的服務。 如WEB,FTP等。

2.資料庫專用帳戶,賦予帳戶除執行資料庫服務之外的最小權限,sa或是sysdab等權限不能對外開放。

3、目錄及對應文件存取權限進行控制,非管理員不能存取資料庫伺服器上任何目錄如:禁止使用者存取腳本存放目錄。

5.3 資料庫安全
5.3.1 資料庫系統

1.正式生產資料庫系統與開發測試資料庫系統物理分離,確保沒有安裝未使用的資料庫系統組件或模組;

2、資料庫使用者的建立、刪除和更改工作,並做好記錄;

3、資料庫物件儲存空間的建立、刪除和變更工作,並做好記錄;

4、系統的安裝更新、系統設定的變更等要做好維護記錄;

5.確保沒有開啟未使用的資料庫系統服務;

6.資料庫系統安裝必要的升級程序或補丁,升級前做好資料庫備份。

5.3.2 資料保密

嚴禁任何人洩漏資料庫業務關鍵數據,需要業務數據時,必須向資訊總部相關領導提出申請批准後才能對數據進行相關的操作,並做好記錄與日誌。

資料庫安全性設計與管理需依照《資料保護技術規範》、《資料資產管理條例》等製度實施。

5.3.3 帳戶設置

1.資料庫管理員帳號具有最高資料庫管理權限(如:MSSQL的SA或是ORACLE的SYSDBA等),其他人員需要直連存取資料庫或需要具有一定資料庫操作權限,必須向資訊部門相關領導申請,審核通過 後,由資料庫管理員告知使用者權限等信息,其他人員透過業務系統存取資料庫;

2、依照業務需求的權限建立專門的帳號,以區分責任,提高系統的安全性,業務人員必須使用自己的帳號登入資料庫,如JOB,預存程序等執行權限;

3.帳號權限的設定遵從最小化原則,不需求的權限就不能開通。 如查詢資料的人員,只能有某些表的SELECT權限,而不能用UPDATE,DELETE等權限;

4.普通資料庫使用者帳戶與資料庫管理員帳戶分離。

5.3.4 帳戶類型

系統管理員:能夠管理資料庫系統中的所有元件及所有資料庫。

資料庫管理員:能夠管理相關資料庫中的帳戶、物件及資料。

資料庫使用者:只能以特定的權限存取特定的資料庫對象,不具有資料庫管理權限,而大部分都是屬於這個使用者類型。 如業務數據人員。

5.3.5 使用者權限

資料庫帳戶以最小權限原則設定在對應資料庫中的權限。 以下幾種權限:

系統管理權限:包括帳戶管理、服務管理、資料庫管理等。

資料庫管理權限:包含建立、刪除、修改資料庫等。

資料庫存取權限:包括插入、刪除、修改資料庫特定表,視圖,過程,FUNCTION,JOB記錄等。

5.3.6 資料庫對象安全

1.資料檔案安全,對資料檔案存取權限進行控制,如:禁止除專用帳戶以外的其它帳戶存取、修改、刪除資料檔案。

2、刪除不需要的範例資料庫,在允許存在的範例資料庫中嚴格控制資料庫帳戶的權限。

3、刪除或停用不需要的資料庫對象,如表,視圖,過程,函數,觸發器等。

4.敏感資料安全,對於資料庫中的敏感字段,如:口令等,要加密保存。

5.3.7 口令密碼策略

1.資料庫帳戶口令應為無意義的字元組,長度至少八位,且至少包含數字、英文字母兩類字元。 可設定相應的策略強制複雜的口令。

2、必須依安全要求對資料庫管理系統的密碼策略進行設定和調整,以確保口令符合要求。

3、定期或不定期修改資料庫管理員口令,並與第一條相符。

4.帳戶、密碼統一管理,由DBA進行管理,記錄帳戶變及審核。

5.3.8 存取控制

1.在外圍防火牆或其它隔離設施上控制從互聯網到資料庫系統的直接存取。

2、修改資料庫系統預設監聽埠。

3.應用程式的資料庫連線字串中不能出現資料庫帳戶口令明文。

4、禁止未授權的資料庫系統遠端管理訪問,對於已經批准的遠端管理訪問,應採取安全措施增強遠端管理存取安全。

5.3.9 帳戶開通

1、開通帳戶必須先填寫“資訊系統權限申請指南”,經下列流程人員核准通過後,資料庫管理員建立帳號。

2、帳戶權限最小化原則。 開通只需要的權限,做到不同的應用不同的帳戶及專人專帳戶。

3.採用OA帳戶為資料庫開通帳戶的基礎,可追加”_”符號並設定附加欄位(如資源池標記、帳戶所屬組別標記等)。

資料庫帳號申請流程圖

5.3.10 帳戶註銷

1、資料庫管理員收到人員離職通知後,應即時審查該人員是否擁有資料庫存取帳戶;並刪除對應權限。

2、帳戶權限最小化原則。 開通只需要的權限,做到不同的應用不同的帳戶及專人專帳戶。

3.採用OA帳戶為資料庫開立帳戶。

5.3.11 MySQL資料庫特別設置

1.採用叢集配置方案,不得將資料庫設定檔部署於資料庫本機。 設定檔儲存伺服器的資料安全管控等級應為最高。

2.資料庫啟動必須採用遠端呼叫設定檔形式啟動,不得採用命令列啟動,應採用服務調用方式啟動,避免透過系統指令查到設定檔所在伺服器。

3.應對帳戶設定白名單策略,針對特殊業務場景可以進行分時段存取攔截。

5.3.12 SQL Server資料庫特別設置

1、代理帳戶宜採用單獨帳戶設定。

2、新業務超過100萬行資料的表,必須採用分區表形式實現。

3.資料庫必須採用文件組方式實現,每個資料檔不宜超過500GB。

4.tempdb、log與data檔宜硬體IO分離,資源張力至少將tempdb與 log、data檔分離。

5.資料庫系統檔案必須獨立存放於系統碟,且與tempdb、log與data檔案硬體IO分離。

6.應對帳戶設定IP白名單策略,針對特殊業務場景可以進行分時段存取攔截。

7.非演算法應用場景,可設定資源池分散帳戶存取壓力。

8.減少連結伺服器的使用,若必須使用則必須設定帳戶存取限制,不得提供公共連結伺服器存取。

9.DBA預存程序需部署於system庫中,註明sp_dba_前綴,並做好版本控制管理。

10.嚴格控制標記與指標的使用,在滿足效能要求前提下,可將資訊寫入資料庫error日誌中,以便後續對接日誌處理平台進行集中收集處理。

11.資料庫分庫分錶分區等腳本,必須透過備份庫在測試環境執行,評估效率,形成書面報告審議。 執行必須依照新建程式庫/表格/分割區→資料匯入→索引重建→名稱切換方式進行。 涉及視圖操作,完成後必須重新刷新視圖。 分庫分錶分區後,必須建立維護作業,對函數與方案實現自動維護。 正式啟用新的分庫分錶分區前,需要至少2位工作人員對新舊表的資料一致性進行核對,形成書面報告審議,通過後才可啟用。 被分庫分錶分區的原始表,需保留7天。 7天後應將該表轉移至業務歷史資料庫留存至少90天。

12.應監控資料庫預存程序呼叫情況,針對超過10個以上的資料庫並發存取、連結池資源1小時內不被釋放、CPU和Tempdb資源消耗超過總資源的20%的情況,應作出預警。 針對需要特殊保護的業務場景,經產品與維運部門同意,可啟動自動切斷連結設定。

  1. 備份與復原
    1、制定資料庫系統的備份策略,定期對資料庫系統進行備份。 如備份週期,方式等。

2.資料庫備份策略要以高效備份與復原為目標,與作業系統的備份最好地結合,實體備份與邏輯備份結合。

3.必須對備份帳戶的權限嚴格控制,由系統管理員或指定專人負責。

4.妥善存放保管備份媒體(從資料庫匯出的磁碟櫃等),防止非法存取與遺失。

5.本地備份與遠端異地備份結合,以防止本地備份遺失的情況。

6、依重要性對資料庫進行週期或不定期進行復原測試與應及處理。

7.資料庫升級、表格結構變更、資料庫分庫分錶分區、業務核心表變更前必須進行資料備份。 對資料層面重大調整的,應啟動啟動完整日誌或資料備份等資料容災策略。

6.1 備份方式及策略
完全備份:對備份的內容進行整體備份。

增量備份:僅備份相對於上一次備份後新增和修改過的資料。

差異備份:僅備份相對於上一次完全備份之後新增加和修改過的資料。

按需備份:僅備份應用系統所需的部分數據,或臨時需要解決的問題。

1.建立各個應用程式能接受的復原時間和資料備份方式,採取對應的備份策略。

2、結合使用線上備份、邏輯備份和實體備份等多種方式,並且自動方式和手動方式結合。

3.資料備份應依系統狀況及備份內容,採用不同的備份方式及策略,並做好記錄。

6.2 備份要求
1、資料庫的資料要求定時自動備份。

2、建立備份記錄,詳細記錄備份資料資訊。 備份應有明確的檔名,時間點、備份人,備份檔名統一標準。

3、備份文件保存時間可依資料重要程度及有效利用週期確定。

4.備份媒體安全問題,既要確保存放的實體環境,也要避免備份資料的非授權存取。

5、系統管理員和資料庫管理員確定備份策略。

6.備份檔名採用標準格式:資料庫名稱+ 底線+ ISO時間格式(YYYYMMDDHHNNSS,即四週年2位月2位元日2位小時2位分鐘+ 備份的副檔名bak或是trn(日誌檔)) myj_202004011131.trn或是myj_202004011131.bak

7.資料表的備份命名為原表命名_bak_yyyyMMdd形式命名,若為同一天可以追加批次版本_v1,備份資料宜採用bcp形式進行資料匯出與匯入。 備份表生產環境留存期至少7天。 7天後應將該表轉移至歷史資料庫留存至少90天。

6.3 恢復管理
恢復的操作直接影響實際的應用。 恢復操作應嚴格依照一定的操作程序進行,而絕不能由備份系統管理員或某一個應用者進行恢復操作了事。

故障確認。 在進行恢復之前首先應該確認造成故障的原因。 故障的原因非常多,應該分辨是作業系統的故障還是資料庫的故障。 如果是資料庫的故障,不同的資料庫應採用不同的故障分析方法,在完成故障分析後確認需要進行復原作業時,由相應的管理人員提交書面的故障分析報告。

恢復計劃。 系統管理員在確認故障分析報告後應與相應管理者一起制定詳細的恢復計劃,包括應恢復的內容、恢復的時間、恢復的操作步驟、恢復對應用造成的影響等,主管領導應確認恢復對 生產造成的影響,在批准執行恢復前應以相應方式與相關部門進行溝通和通知相關部門進行恢復前的準備工作。

定期備份校驗。 對長期保存的備份進行校驗,防止在需要時備份不可用的情況發生,使用資料庫自帶工具校驗。

  1. 日常檢查表單