例如、盤點就是一件麻煩事。
尤其是當單位導入了資訊安全管理系統(ISMS,ISO27001)後,每年需要進行繁重的資訊資產盤點工作,以作為後續風險評鑑所依據。
看到資訊設備分散各處,又必須逐一調查,常常讓人有種看不到終點的感覺。
再者,控制軟體安裝授權數量也頗令人困擾,雖然現在部份比較先進的系統會自建所謂的授權管理伺服器(如、微軟KMS,其實也是它不想讓你多用),但是對大部分軟體而言並無相關功能。
當出現人員流動或臨時任務指派,某段時間內需要在某些電腦佈署某些軟體,
軟體管理人員往往需要精確的計算軟體數量,以方便調度並避免超額安裝,這以往必須自行建檔管理,不過還是很難掌握真實情形。
因為有些神通廣大使用者自己偷偷裝了又不會通報,又或者基於資安考量,單位列出不得私自安裝的軟體黑名單...等,為了能夠落實管理政策,就產生了即時掌握單位軟體使用真實情形的需求。
可能有人會說:「現實情況是稽核者專門查大公司,小咖根本不會抓,這不是庸人自擾嗎?」,我只能說組織風格不同...
基於以上問題,為了讓大家好過一點,小弟著手開發這個「資訊資產盤點系統」。
一、Client端
第一步也就是程式的原型,小弟完成從電腦讀取:主機名稱、登入帳號、網路IP(IPv4、IPv6)、軟體清單等基本功能。
本程式的限制是:所抓取的軟體限於系統登錄檔內登記有案的軟體,也就是在「開始功能表-程式集」、「控制台-新稱/移除程式」可見的軟體。
當使用者電腦上的程式只有單一執行檔,也就是所謂的綠色軟件,目前是看不見滴!
功能雖然不完美,但已可接受,因為綠色軟件通常是一些小程式,而我們比較在意的、需要計算授權的是大型套裝軟體。
第二步是收集調查結果,總不能叫每個使用者自己執行一次,然後把結果Mail過來?!?
於是發展出「自動寄送電子郵件」,不過這樣還不夠好,因為必須自己整理如雪片般飛來的調查結果。
所以出現資料庫版,由程式將結果傳送至遠端的主機,為了確保所寫入資料的完整性,這裡使用了一點資料庫交易機制,讓落落長的軟體清單在傳送時不會漏失。
發展出完整的功能後,該如何讓程式經常執行呢?
一般而言,這類程式通常是以常駐的方式,藏在Windows視窗工具列的右下角,但這並不是防毒軟體,沒必要隨侍在側,只需要在使用者登入時執行一次即可。
於是第三步就是增加支援命令列模式(Command Mode),透過撰寫一行批次指令(.bat),讓我們在使用者登入電腦時,得到那台電腦的組態和軟體清單。
這個機制帶來一下額外的好處,就是當單位的網路IP是以DHCP方式派送動態IP,由於在使用者Windows登入時獲取了最新的有效IP,網管人員可以透過系統作IP查詢。
圖、Windows控制台-新增/移除程式
二、Web端
Web端要做得事情相對簡單,主要是將調查結果以「主機」或以「軟體」方式呈現,就直接看圖吧!
1、主機列表:列出所有被清查的主機清單,可以延伸查詢IP及軟體清單。
圖、系統管理後台-主機列表
支援以「電腦名稱」及「電腦IP」等條件進行搜尋
例如、資訊部門的個人電腦名稱命名都以SIS開頭,所以在[電腦名稱]以SIS為關鍵字作搜尋,就列出所有資訊科的電腦。
圖、以電腦名稱作查詢
查詢IP 192.168.210.23 的電腦
圖、以網路IP作查詢
這台電腦總共有3個IP
圖、IP查詢結果
顯示該電腦之軟體清單,可開關顯示Windows Upadte。
由於Windows Upadte數量眾多,預設不顯示以減少視覺困擾,不過在調查這台電腦是否安裝修補程式時,就很有用了。
圖、開關顯示Windows Upadte
2、軟體列表:列出所有被清查的主機裡頭所安裝的軟體清單,已預設關閉顯示Windows Upadte內容。
圖、系統管理後台-軟體列表
支援以「軟體名稱」下拉式選單及關鍵字方式進行搜尋
例如、以輸入法作關鍵字,調查各輸入法安裝使用情形,再點選[安裝查詢],可檢視有安裝的電腦清單及數量
圖、以「輸入法」為關鍵字作搜尋
下圖為軟體7-Zip 9.20[安裝查詢]的電腦清單
圖、安裝特定軟體(7-Zip)的電腦清單
調查結果:總計安裝軟體高達1200多種,不只是軟體多、版本也多,本單位礙於預算不足,光是輸入法及Office軟體,分批購置的結果就是有許多不同的版本。
眼前Windows XP剛中止支援,接下來就是Windows 7了!
到時要應付個人電腦作業系統版本的數量統計...就只是手上滑鼠的一個點擊! XD
ps.最後,這其實是一個練習,因為小弟不曾開發過這類的程式,
我做的就是選定一個可以實現的目標,在慢慢玩的過程中把它學起來而已。