觀點

網站外包 權限控管惹禍

2010 / 04 / 28
陳進發
網站外包 權限控管惹禍

使用入口網站,登入屬於自己的帳號、密碼,已經是近年來全球電腦使用者於啟動電腦後必進行的一項例行工作;登入自己的帳號後,可以使用專屬個人化的設定服務,並進行消費或提出屬於您隱私的資料申請(如自然人憑證之所有服務亦屬此範疇),然而使用上述這些服務的同時,你是否曾思考過權限授權的重要性及先後順序的問題?

網路拍賣系統、購物系統、線上金融交易系統等,不勝枚舉之網路金流、購物交易系統,皆需透過一個重要的物件「人」(此處「人」指當事人,非所有操控該系統的人),方能成為一次有效的交易;回到根本來看上述的交易行為,所有活動都是人類原始的交易行為的簡化。

但如何確定是使用者本人呢?相信資訊安全的前輩已經探討過許多資料傳輸連線加密及解密,但本文討論重點並非資料傳輸的安全性,而是授權認證的邏輯判斷、網頁撰寫時的權限判斷及支援的瀏覽器相關問題。

案例1:帳號正確密碼錯誤卻也可登入!?
日前教育部為宣導著作權觀念,並促進書籍資源共享與交流。某政府單位舉辦書籍相關活動。然而該站卻出現嚴重漏洞,導致加入該站的會員個人資料,可在網站上一覽無遺。

從圖1 可以得知該網站已從2005 年9 月28 日運作至現今,該站運作已經4 年,筆者並不清楚該網站是否一開始即使用該授權模式,但若是一直使用原本之授權模式,筆者大膽猜測,此一漏洞早已為人所知。

錯誤1:使用一對一帳號制認證 過於簡單
每個程式設計師都有其獨特之安全認證思考邏輯,但當參與團隊設計時,系統分析師所提供之相關需求則是整個網站的精髓所在,程式設計師必須按照系統分析師所提供之功能需求一一完成;但大多的系統分析師並不會針對細微的登入相關功能模組多加著墨,因為這乃是一個最基礎的程式設計師入門必備能力。

若是當整個授權認證程序有了失誤,那整個網站所有便利管理者進行管理之模組設定,就有如為了非管理者而誤闖進資料森林的一般使用者而安排之便利措施。

從上述例子,是否看出「授權」的重要性了呢?筆者希望你已經知道了。怎樣去安排使用者登入的認證權限分配其實並不難,設計登入界面時,只要抓住一點就是:請確認登入者的帳號與密碼無誤後才能配給權限!

常見的網頁授權模式大略分為以下兩種:

  •  帳號制:
    只要輸入帳號、密碼正確即可登入。
  • IP 制:
    鎖定特殊IP 網路位址,只須確任您的電腦IP 處於授權使用的IP 或IP 範圍,即可使用服務。(註)

前述案例1 網站,其實就只是簡單的「帳號制:一對一認證」部分的判斷出錯,使用者僅輸入對的帳號、輸入了錯的密碼,一樣可以登入(如圖2),個資外洩就是因為這個原因!

錯誤2:忽略非IE 瀏覽器使用者的控管問題
如圖4 所示,正常之授權應該於確認帳號及密碼確認後才給予使用權限,但筆者猜測,該站使用FOR「IE」瀏覽器之JAVASCRIPT 語法,將使用者導回登入頁面,並取消已配給之SESSION,但使用「它牌」瀏覽器使用者,則不會被導回
並取消SESSION,因此,便可以使用該帳號使用者所有可執行之工作。

該站所使用之網頁語言應該是ASP,但該狀況發生原因與是何種網頁程式並無關,另外筆者並不熟該程式語言,且筆者本身並不是IE 的愛用者,因此,每當開啟公部門的網頁時只能以「很痛苦」來形容!但究竟為何有這樣的區別,主因是大多的公部門、金融交易等界面,使用了大量IE 支援的SCRIPT,如VB  SCRIPT、JAVASCRIPT 等,但是這些在非微軟核心的瀏覽器上其實問題很多,就以最簡單的引導換頁(window.location)來討論,上面所提之例子,主要是因為使用了FOR IE 瀏覽器的語法,因此,當遇到非IE 使用者,便會無法引導使用者至清除SESSION 的頁面,導致發生了已經給了授權又無力挽回的局面(如圖3)。

系統分析師於系統規劃初期進行需求分析時,會制定出資料流之行進規則,本文中所提之案例,其程序之瑕疵在於未判斷是否資料正確,僅確認帳號資料即提供權限;另一則是未考量實際瀏覽器種類並非僅有「IE」。

系統於規劃時,需考量不同版本瀏覽器是否會構成威脅,並列出安全性測試相關辦法;當交案時,委託方與承包商需進行驗收測試,除了功能性並需加強安全性之測試。

案例2:搜尋引擎將未設定授權之個資、系統設定公開
不曉得是否曾經在一些搜尋網站上,因為您找的關鍵字而發現一些「特別的」網頁?筆者就曾經透過「孤狗大神」找到某商務網站的漏洞(如圖4)。

該網站所使用的購物車系統是由某網頁設計公司提供,筆者已經透過電話聯繫該公司修正授權的BUG ,在通知對方之前,筆者於今年初即發現該問題,但對方一直未去修正這問題,直至上個月筆者才又發現,該頁面仍然未修正,從發現至通知對方,其間已經有半年左右的時間,直到最近筆者致電通知對方,才修改了部分頁面。

從上段的時間點來估算,使用者的資料公開於未授權即可瀏覽之頁面,最少已經半年了,從系統上線至筆者致電告知之時間,足足有半年以上的時間,這其中仍然是系統測試時間嗎?但仍然是有交易記錄存在,這樣算是已經結案嗎?

近日筆者再上去確認是否已經有修正授權資料,發現已經修正,此乃是一大進步;但是有些資料在Google 大神的CACHE 中其實不容易消失的,該公司的購物車系統研判是使用套裝的網頁修改的,也許是對於套裝網頁軟體的不熟悉,才會出現不必透過登入就可以得到客戶資料的頁面,相信您如果是其客戶,必將考慮更換配合廠商,畢竟這真的是「用錢買不到的知識」!

一個網頁設計公司使用設計好之套件來修改成為「合適」於某企業之商業模式,應該是目前常態,但是其工程師及分析師是否有足夠的系統安全規劃能力?筆者在此不敢持肯定立場!

網站委外開發 安全測試應列入驗收
藉由上述兩個例子,相信若您非資訊人員亦能體會到,簡單的「授權」,竟然是掌握一個資訊網站安全與否的門戶,身為一個資訊從業人員,當更應明白這個問題的重要性。

因此,資訊安全已從常見的網路安全延伸到系統安全;另,作業系統的安全性並非一般使用者或程式設計師能去發現改善的,但常在各大頁面看到被入侵的網路系統其實不完全是作業系統的問題,大多所謂的「個資外洩」途徑並非是作業系統的「漏洞」,而是網頁套件或是程式設計師的經驗不足亦或是程式BUG所導致,這發生的原因究竟是如何呢?沒有公司願意自家設計的頁面有網頁漏洞,但常常發生的原因是,聘請的人員專業度不足,卻趕鴨子上架,不硬撐著也不行,案子在交案的時間壓力下,只能急就章,先有交案的頁面功能出來,待日
後發現問題,再進行修正!

也許是微軟三不五時就更新某一項套件,導致國人對於系統修正不以為意。日前在本文提到的案例1 個資外洩的新聞一登上媒體,受害者在受訪時曾表示,『當初會登錄資料是因為這是政府網頁,就很放心地填個資,沒想到還是外洩了。」在在表示出,對於資訊安全事件層出不窮,國人其實是很失望且無力的。

使用者的信任是電子商務業者的經營動力,而業者經營動力有賴於委外配合的資訊服務廠商(在此不論是否為網頁系統),當資服廠商妥善地讓其系統正常且安全地運作,業者可因此得到使用者的信任,便可在其領域立穩腳步;但若發生了類似個資外流或交易資料外洩等事件,如東X 購物,使用者便會抱持懷疑的心態,因而可能喪失一筆交易。

不過,其實資訊服務廠商也有為難處,筆者些許同學及學弟妹工作於中小型資訊公司,偶有心得交流,普遍得到一個結論就是「業務為上,資訊人員為下」。

其實,資服廠商的企業主應該在業績掛帥與服務品質之間妥善
拿捏。雖然說業務人員會為客戶提供特別服務,如額外幫客戶修改某些資料等,但這樣一來卻增加工程師的工作負擔,除了原本工作之外,需完成這些特別服務,乍看之下並無不妥,但是仔細去思考整個人力分配,就明白工程師也許沒有多餘的時間去管理資訊安全的問題,這樣一來便造成網站資料外洩的事件。

資服業者若想提供客戶「用錢買不到的知識」,應把網站安全品質列入其中,否則若資訊人員無法完善進行安全測試,造成交案後仍然有些問題未完成處理,商家也因無相關資訊安全人員進行驗收測試,便草草結案,待日後發現漏洞等問題時,若合約無註明相關處理辦法,且已逾越保固期間,則可能需另與該系統商洽詢修正之費用,著實是求助無門。一旦網站資料外洩,所損失的客戶信賴才是用錢也換不回的。
註:詳細資料可參考http://db.lawbank.com.tw/Member/general-empower.asp

本文作者任職於大學圖書資訊處