台北市資訊局在9日獲警局通報員工薪資資料外洩後,緊急在10分鐘關閉薪資發放管理系統展開調查,但外洩事件隔天引起媒體大篇幅報導,紛紛擔心7萬員工薪資資料都曝光,資訊局在11日上午對外召開記者會說明事件始末,因為15年老系統的設計盲點,導致搜尋工具取得報表下載網址而釀災,資訊局也澄清,只有190筆報表連結外洩,而非媒體披露的全北市員工規模。為何這個15年前開發的薪資發放管理舊系統,不敵現在化搜尋工具技術的演進呢?我們特別專訪臺北市資訊局局長李維斌,深入剖析這起事件的發生關鍵,及臺北市資訊局後續的資安對策。
外洩190筆北市府薪資報筆連結,免登入就可下載報表內容
臺北市政府的「薪資發放管理系統」是由資訊局自行開發設計和維護的系統,主要是臺供臺北市政府136個機關、252個學校以及臺北市議會總共389各單位使用,主要是由出納人員負責薪資發放、考績、年終獎金以及其他帳款發放的業務。也因為牽涉範圍包含全部臺北市政府正職和約聘以及公立學校的人員,媒體報導薪資資料外洩時,也引起一陣恐慌。
李維斌表示,在1月9日資訊局接獲通報知道有疑似資料外洩事件後,先將薪資發放管理系統緊急下線,後來再觀察的確沒有其他資料陸續外洩後,暫時確認有找對資料外洩的源頭。
他說,資訊局便在1月10日緊急通報資通安全會報,當初因為以為只有內湖分局的資料外洩,認為是特例,所以初步判定唯一、二級的資安事件,只不過,後來進一步追查發現,除了內湖分局外,還有像是工務局等單位薪資資料外洩;而外洩資料除了薪資、獎金、員工薪轉帳戶外,也可以看到有一些是身分證字號。因為有牽涉個資外洩,資安會報建議將資安等級提高為三級。臺北市資訊局並於1月11日上午召開記者會對外說明。
從雅虎引擎搜尋頁面上發現的受駭單位其實不少,目前從搜尋引擎的網頁暫存快取頁面可以發現,受駭單位包括:臺北市建管處、中山堂管理所、臺北市公務人員訓練處、臺北市內湖區公所、臺北市文山區健康服務中心、臺北市政府交通局、臺北市政府地政局等單位,都可以查到不同月份的員工薪津清冊。
到底外洩的資料是什麼?李維斌指出,目前臺北市資訊局調查的結果,大約有190筆的薪資報表的連結外洩,不過每筆報表的受影響人數並不確定,但可以確定的是,臺北市府員工的薪資資料庫並沒有外洩。
李維斌進一步解釋,這些外洩的資料其實是由出納人員製作的當月薪資報表,以往只有各單位特定人員,有權連上這個放在DMZ區的薪資發放管理系統,輸入帳號密碼後,可以調閱內網員工薪資資料做成當月薪資報表後,報表完成會就會產生一個報表連結,有這個報表連結的人就可以下載該份薪資報告。
他也說,以往資訊局把有這個報表連結的人,視為是內部人士才可能有這個連結,所以,以前是有連結的人,可以直接下載該檔案,「這是一個內部系統存取權限設定錯誤的案例,才會造成此次薪資報表連結外洩的資安事件。」他進一步解釋,這是一種所謂的商業邏輯錯誤(Business Logic Fault),是一種作業流程或程式邏輯出現的錯誤,目前用工具的弱點掃描(Vulnerability Assessment )並無法檢測出這類的漏洞,依賴人工的滲透測試(Penetration Test)才比較有機會找到這類的弱點,但往往需要長時間、高頻率的檢測,也高度仰賴滲透測試工程師的功力,難度相當高。
薪資管理系統老舊難躲搜尋高效能,強制下載檔案需再輸入帳號密碼
臺北市資訊局也進一步調查發現,該份外洩的薪資報表連結只有在雅虎搜尋引擎上才找得到,其他包括Google搜尋以及百度搜尋都查不到相關資料。據推測,極有可能是有權製作薪資報表人員的電腦不慎安裝雅虎搜尋的工具列,因為這些工具列會記錄個人的瀏覽記錄,而雅虎將個人瀏覽記錄與公開搜尋結果混在一起,才造成一般人可以透過雅虎搜尋引擎,找到臺北市政府部分局處的員工薪資報表連結並下載。
「臺北市薪資管理系統是15年前打造的系統,當年使用ASP開發,為了便利各機關使用,也把系統放在DMZ區,各機關登上這個系統就可以開始製作報表。」李維斌表示,這個系統非常老舊,15年來都只能編列維護費用,當初因為VPN太難使用,也沒有採用VPN連網存取的設計,但隨著搜尋技術的進步,即便資訊局已經在robots.txt的語法中寫「disallow all」限制搜尋引擎的爬蟲,不要將該內部系統做搜尋結果的目錄索引,但事實證明,仍很難避免地讓該系統曝露在可以被部分搜尋引擎搜尋到的風險中。
李維斌表示,第一時間將薪資發放管理系統下線後,為了確保資料安全,再度上線時,則多了一到存取權限控管,即便有了報表連結,若要下載該份資料時,必須再度輸入帳號密碼後才能下載。此外,從目前網路上都連不上這個薪資管理發放系統來看,資安專家表示,北市府資訊局在網路防護上也做了緊急處置,從防火牆先檔下所有外部存取的連線,未來將可以統計機關IP再行開放。
北市府將陸續汰換老舊資訊系統,強化市府資訊安全
李維斌表示,不只是薪資發放管理系統老舊,迄今已經上線15年,許多早期的系統架構加上沒有納入資安考量,許多老舊系統都是市府資安的未爆彈,不知道什麼時候又可能再度發生類似的資安事件。
但他也說,依照臺北市政府的狀況,已經無法只是維修老舊系統,掃除這些資安地雷,所以,今年資訊局已經比去年多編列大概6千萬元的預算,希望逐步汰換一些已經是高風險的老舊系統。李維斌表示,臺北市議會已經通過資訊局預算,今年比去年新增2,314萬元,資訊局確認優先汰換老舊的薪資發放管理系統,其他預計汰換的系統還包括2005年打造的臺北市單一登入的入口網等。
除了資訊局逐步汰換老舊系統換,資安專家認為,目前市府已經限制從外部網路連上薪資系統(orgsalary.taipei.gov.tw),不論是設白名單、限制特定IP存取,或者是先暫時從防火牆斷所有外網連線都是有效損害控管的方式,但是若要進一步確認這些薪資檔案遭到多少人下載成功,要可以查看薪資網站的日誌記錄,查看只要有連到該網站的外部IP,而且有下載相關文件成功的紀錄,可以試圖從Log記錄分析這些薪資報表資料的外洩程度。
資安專家表示,北市府遇到的資安事件其實是常見的Google Hacking手法,利用搜尋引擎找尋系統的漏洞手法,主要是有很多的網頁程式寫法不夠安全,也可能是知道內部網址,搜尋到網站的目錄或檔案等資料,甚至可能找到管理者或伺服器的帳號密碼等,也會找到一些網站設定檔,透過這些資料的分析拼圖,就可以入侵某個網站的伺服器。
因此,資安專家建議,要避免內部系統被網路爬蟲(Web Crawler)爬走,必須要設置相對應的安全措施與授權方式,如果這個提供內部使用的系統網站必須和提供外部服務的網站放在同一臺伺服器上,也必須設定嚴格的存取控制權限(ACL),只允許白名單的來源存取相關資源。