文/陳軍
南京市人力資源和社會保障應用系統數據庫開發人員擁有合法的訪問身份(如數據庫口令)能直接進入數據庫,甚至是生產庫進行訪問操作,當前在訪問渠道上各類安全措施(例如防火墻、VPN、甚至堡壘機等)對此類人員是很難達到預期的安全控制效果的。南京人社信息系統各應用系統開發人員用于數據庫訪問及操作的主要工具為PL/SQL Developer,此軟件在中文破解的過程中部分版本被注入勒索病毒,此類病毒具有很長的潛伏期且不易被發現,病毒一旦爆發,會造成如被清空數據庫等非常嚴重的后果。南京市人力資源和社會保障應用系統內部操作人員(如開發人員和運維人員)的安全管理主要還是以制度規范管理為主,缺乏技術管控手段,很難有效的遏制違規違法的數據庫操作行為。因此,為進一步強化市人社應用系統數據庫運維安全的管控力度,加強對內部操作人員日常對數據庫開發及運維操作過程的可視監控。
筆者結合自身近20年的應用系統及數據庫管理經歷擬設計南京市人力資源和社會保障應用系統及數據庫安全管控軟件,支持全程監控、管理相關人員對數據庫的后臺操作,做到全程留痕,減少人社數據資源安全隱患,從而為市人社應用系統的數據資源的安全提供堅實有力的保障。一方面對內部人員通過違規違法操作數據庫謀取私利等行為起到有效的震懾作用,達到“不能做、不敢做”的效果;另一方面,通對開發和運維人員開庫操作腳本的日積月累,形成數據庫運維的知識庫,提升數據庫運維效率,降低對固定開發及運維人員的依賴。
設計用于數據庫訪問及開發運維的核心功能,進行數據庫的各項日常操作(如各類DDL、DML 操 作,對TABLE、VIEW、SYNONYMS、FUNCITON、PROCEDURE、PACKAGE、TRIGGERS、SEQUENCES、JOBS 等數據庫對象的創建、編譯操作)支持根據權限的設定實現開發及運維人員能進行特定數據庫操作(如KILL 等),使運維人員通過此平臺就能完成日常的數據庫運維工作,而不是通過第三方工具。
設計數據庫運維管控監控、分析功能,在不影響運維人員工作前提下,將運維及開發人員所有對數據庫的操作,都進行結構化的登記處理,并細化到每一次操作終端的計算機名稱、IP 地址等身份信息;同時采用實名制注冊、登記,并且有完整的權限管理程序,用于對每個使用人員的權限進行控制。通過對開庫執行過程中部分特殊指令(如DROP、TRUNCATE等命令),在實際執行前予以預警提示,以防誤操作。
在日常的應用系統數據庫運維執行過程中,通過應用系統及數據庫安全管控軟件對所有的執行節點操作進行全過程監控,將所有事項構造成完整的業務鏈,進行結構化處理后形成知識條目,經過長期的不斷積累,形成完備的數據為運維知識庫,幫助應用系統管理方能快速掌握應用系統數據庫運維;對同類型的系統數據庫運維工單,能精確定位歷史處理案例,從而極大提升運維的工作效率及安全。
數據庫對象管理主要實現對市人社應用系統數據庫對象的創建、編輯、維護等功能,用于管理當前用戶下所有的數據庫對象,包括各種函數、過程、包、包體、表、視圖、同義詞、觸發器、序列等。每種數據庫對象分為兩個程序進行操作設計:一是只有查看對象及其腳本的功能;二是在此基礎上,增加編輯功能,包括新增、或刪除,并且任何修改、刪除操作,系統應都會自動備份編輯前的所有腳本。從而方便進行授權,可以對操作人員只授予查詢權限,以防止誤操作。
開庫管理功能在不影響運維人員工作的前提下,對運維人員數據庫開庫行為進行監控、分析,對所有數據庫操作進行結構化登記處理。另外通過與運維平臺一期信息協調單、求管理系統無縫對接,實現應用系統運維閉環管理,避免無授權數據庫開庫行為。
此程序實現外來數據導入功能,支持EXCEL、CSV 等文件格式。在文件導入過程中,支持目標表字段勾選、裝載文件功能。另外,可以根據實際要自行選擇要導入的列及行,可以將不要導入的列或行的勾選去掉。同時也支持通過拖拽方式調整此區域的列順序,保證其順序與要導入的表的字段順序一致。在導入數據量較大(>=10000)的情況下,支持中間分步提交功能。
數據庫用戶管理主要實現對應用系統數據庫用戶的登記和管理等功能,通過對數據庫用戶的注冊、管理及授權,運維人員便可通過此平臺訪問對應的數據庫用戶,進行日常的開庫處理等工作,避免直接將數據庫密碼暴露給運維人員,杜絕了因運維人員流失后,導致數據庫密碼的泄露的風險。支持數據庫用戶注冊功能,由管理員操作(一般為DBA 或者管理人員、安全人員),進行數據庫用戶注冊,注冊人員同時可以獲得該用戶的使用權限,其他人員要通過授權處理。支持數據庫用戶變更功能,對已經注冊的數據庫用戶,可通過此功能進行相關連接信息的變更。另外,對于變更數據庫密碼,要提供具有修改數據庫密碼權限的用戶,否則只修改登記注冊的信息,而不能直接連接數據庫用戶的密碼本身。密碼支持自動生成或自己設定兩種模式。
支持數據庫用戶注銷功能,在安全管控平臺中注銷已經注冊的數據庫用戶,用戶注銷后,所有操作人員均不能再通過管控平臺選擇、使用該數據庫用戶。通過與南京人社市人社信息系統統一門戶系統的對接,實現數據庫運維機構、人員、登錄密碼等信息的獲取。支持數據庫用戶權限分配功能,對已經注冊的數據庫用戶,可以對運維人員進行權限分配,包括授權(打鉤)及回收權限(取消打鉤)兩種功能;同時要支持無限分級授權。另外,還支持限制用戶執行部分危險命令的功能,可以通過配置的方式進行增減。
用戶中心支持系統操作人員的個性化設置功能,例如常用功能快捷鍵設置等。
另外,支持查詢所有平臺用戶執行的腳本,包括通過數據庫對象管理下的各個模塊、開庫管理下的各個應用所執行的腳本;支持查詢當時執行腳本時的終端信息(包括IP、MAC、電腦名稱等)、運維工單信息、執行時所影響到的記錄數等,并能通過多個條件進行組合查詢、精準定位。
系統管理功能主要用于對平臺的菜單功能進行管理,包括系統菜單管理、角色管理、功能授權以及對運維人員在此平臺的登錄情況、腳本執行情況的監控、查詢等。對整個平臺的應用程序進行管理,包括程序的新增、修改、刪除等,實現整個平臺應用程序的動態管理、有效擴展。支持新程序發布功能,既包括對新增程序的發布,也可支持對已有程序更新版本后的發布。新程序一旦發布后,所有終端在運行此程序時,可以自動更新并運行,確保整個系統應用版本的一致性。角色權限管理:支持對系統進行角色權限管理,包括新建、變更角色,實現角色與具體應用的關聯,方便進行后續人員應用的授權。
支持對平臺用戶進行授權管理,通過將具體角色授權給平臺用戶,使得用戶能獲得具體菜單功能,從而進行系統操作。系統登錄情況查詢:支持對系統登錄情況的查詢功能,可以詳細查看運維人員使用此平臺時的登錄及退出情況。
南京市人力資源和社會保障應用系統及數據庫安全管控軟件是市人社信息化建設的一個重要組成部分,為市人社信息系統應用系統數據庫的安全運行提供堅實的保障。因此,要站在人社信息化全局的高度,進行統一規劃、統一管理、有序實施。應用系統及數據庫安全管控軟件設計應做到結構模塊化、程序結構化、數據格式標準化、代碼統一化,各種文檔資料規范化。系統設計應充分考慮應用系統及數據庫安全管控軟件功能需求多變的特性,易于進行功能擴充,以保障系統使用的長期性和可擴展性。設計系統用戶界面簡單明了,功能區域一目了然,菜單層級和歸類設計規范合理,符合數據庫運維日常操作流程,具有人性化特點,筆者認為通過使用市人力資源和社會保障應用系統及數據庫安全管控軟件在后續的應用系統數據庫運維工作中可以有效地減輕操作人員的工作量,提高工作效率,有效增強系統的安全性,填補人社領域應用系統及數據庫安全管控技術手段空白,具有較高的社會效益和經濟效益。