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、資料庫管理者收到人員離職通知後,應即時審查該人員是否擁有資料庫通路賬戶;并把對應權限删除。
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%的情況,應作出預警。針對需要特殊保護的業務場景,經産品與運維部門同意,可啟動自動切斷連結設定。
6. 備份與恢複
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 恢複管理
恢複的操作直接影響到實際的應用。恢複操作應嚴格按一定的操作程式進行,而絕不能由備份系統管理者或某一個應用者進行恢複操作了事。
故障确認。在進行恢複之前首先應該确認造成故障的原因。故障的原因非常多,應該厘清是作業系統的故障還是資料庫的故障。如果是資料庫的故障,不同的資料庫應采用不同的故障分析方法,在完成故障分析後确認需要進行恢複操作時,由相應的管理人員送出書面的故障分析報告。
恢複計劃。系統管理者在确認故障分析報告後應與相應管理者一起制定詳細的恢複計劃,包括應恢複的内容、恢複的時間、恢複的操作步驟、恢複對應用造成的影響等,主管上司應确認恢複對生産造成的影響,在準許執行恢複前應以相應方式與有關部門進行溝通和通知有關部門進行恢複前的準備工作。
定期備份校驗。對長期儲存的備份進行校驗,防止在需要時備份不可用的情況發生,使用資料庫自帶工具校驗。
7. 日常檢查表單
本文作者:朱雲峰 來源:芯芯之火可以燎原
CIO之家 www.ciozj.com 微信公衆号:imciow