星期二, 9月 09, 2014

特權帳號管理

大概是在三四年前,因為和 CA 的配合,我開始接觸到「特權帳號管理」這一塊領域。

一般來說,我們的系統大致上可以把使用者的帳號切割成兩個部分:
1. 一般使用者帳號
2. 系統管理者帳號

通常,我們在公司裡面談的資訊安全,有80%是針對「一般使用者」來進行管理,但是對於特權帳號這部分卻疏於管控。

為什麼會說疏於管控?我經常到客戶那邊協助處理 IT 的問題 (不管是系統類的或是應用程式開發類的錯誤),我總是需要一組擁有「足夠權限」的帳號,讓我進行問題的診斷。

這時候該如何取得該帳號與密碼來登入系統?通常就是直接問承辦人,然後他就會跟你講帳號密碼(還好我是個善良的人,不然這些系統啟不落入我的掌控之中!)。接著,我就可以使用這組帳號密碼登入系統,胡作非為。

近年來,這些安全的意識高漲,所以到客戶那邊要取得這些帳號密碼的資料也變的比較麻煩了。以我們公司最大的客戶來講,現在你去維護他們家的系統,帳號密碼由他們敲,你在操作的同時他們的員工必須陪同在旁邊,跟你 pair programming (就是監視你是不是有真的胡作非為)。

如果他們是以學習的角度,來觀察我做了什麼,那對於他們可能是有價值的。如果,只是來監視我,那這樣就顯得很浪費資源。

談到這裡,有一些IT的需求就逐漸浮現:
1. 企業不希望外部的維護工程師知道我系統管理者的帳號密碼,所以要有人幫我管理密碼或者是幫我敲密碼
2. 當他人登入我的系統時,我們可以監控其一舉一動,了解登入者進入系統中做了哪些操作

在這上面,CA 使用 ControlMinder 的 Shared Account Management 模組,就是針對上述需求而設計的產品。

該產品讓使用者透過入口網站,來控管共用使用者(系統管理者)的管理權限,也提供使用者自動登入 (資料庫,作業系統,網路設備等)機制,防止密碼外洩。針對臨時的存取者,該產品也提供申請,審核的機制。

針對應用程式中常見的 Shared Account Management 問題,例如:程式碼中將資料庫的密碼寫死在設定檔或應用程式伺服器上。導致開發人員知道資料庫系統的帳號密碼,使資料庫內的資料暴露在可能被取走的風險中。因此,CA ControlMinder 模組也提供各種與既有程式整合的方式,包括 .NET, Java 等 (我也處理過 C++, PHP, ASP, VB, CScript 等程式語言的整合案例)。藉由上述方式,可以解決第 1 項需求。

而第 2 項需求的部分,則由 ControlMinder 產品整合 ObserveIT 來解決。透過整合 ObserveIT 的套件,當使用者使用 ControlMinder 上的自動登入功能時,就可以啟動錄影功能,將使用者登入系統後所做的事情錄製下來。

很多人看完這個功能後的問題就是那不是會耗費很大量的磁碟空間?ObserveIT 使採用差異化錄影的技術來節省錄製檔案的空間。所謂的差異化錄影,就是說當我們有進行動作時,畫面才會被存下來。如果登入後,讓畫面停在那邊不動,則 ObserveIT 僅會儲存一個畫面,藉此降低影像儲存的資料量。

透過上述軟體系統的協助,可以解決特權帳號管理的問題,並能確實留下他人進入系統的操作記錄,作為後續稽核及問題追蹤的重要證據。

沒有留言: