[資訊安全]資安常發生的原因

[資訊安全]資安常發生的原因

加入一個禮拜了,也該來發表一下資訊安全相關的文章囉,以下陳列資訊安全常發生的原因,分成造成資安的人員與資安問題的分類:

image

Project Manager:專案經理人最常常犯的錯誤應該主要是為了趕上交貨時間。

Developer:初入門的開發者最常犯的是SQL Injection,然後是XSS。

System Administrator:這部分最常犯的錯誤就是給予應用程式過高的執行權限,例如DB部分明明只要read/write權限,確使用sa權限;Web Application明明只要IUSR權限,卻給Administrator權限,這些都是很大的危險。

其實一般的系統,大部分Developer跟System Administrator都是同一群人,往往為了系統開發方便,會忽略了資訊安全的問題。

image

沒有驗證輸入的資料:這部份可以參考我之前的一篇文章,[Software architecture]穩守資料正確性-格式檢查

破壞證據:這邊所謂的證據其實就是認證機制,最常見的其實是字典攻擊法,這個攻擊蠻常見的,我們在一些網站註冊時,系統可能會要求你的密碼要符合一定的複雜程度才安全,這主要也是用來防範字典攻擊法。

破壞授權機制:這有點類似冒名的機制,當你將IIS的匿名帳號設定成Administrator時,駭客是很有機會以IIS當跳板在你的Server上放入木馬,並透過木馬來竊取Server上的資訊,運氣差一點的可能連整個DB資料都被竊取了。

系統管控不當:這比較偏向人為因素了,一般可以進入公司機密資料管制後台都需要經過特定人事的核可,但有時會為了方便請代理人或秘書代為處理,這就可能造成機密資料外洩。

敏感性資料外洩:這可能原因很多,系統管制不當或者系統設計不良都有可能造成。

Session管控不當:只要駭客能竊取到你的SessionID,他就可以跟你共用同一個Session,透過共用Session與分析response/request中的內容,將很有機會竊取到你的個人機密資料。

不當的加密法與密碼管制:加密演算法太簡單或者金鑰複雜度不足,這都很可能被使用暴力法破解密碼。

竄改參數:這部分就沒什麼好說了,當我們將QueryString的內容直接拿來使用時,而未經過驗證,確實很可能被輕易的入侵,最簡單的例子,透過QueryString傳遞採購單的單號,傳過來後直接撈出該筆採購單資料,如果在程式中沒有再多做一次權限判定,那每個人都可以隨意的看到每一筆資料,這啟不奇怪。

不當的例外處理:這個問題實在很大,程式開發人員有時可能認為直接將錯誤訊息拋出來會對解決問題有幫助,但你可有想過當我們把一個意外拋出,而user可以很簡單的模擬這個例外訊息,搭配到呼叫堆疊,他很有可能看到你系統中的漏洞(例如SQL Injection),透過攻擊這個漏洞來達到侵入系統,或者讓你的系統停止服務,都是很有可能的,所以當我們處理例外時,必須要考量例外需記錄,但不可直接拋到UI上給user這個原則。

差勁的稽核與log機制:一般當問題發生時,我們往往希望透過稽核機制與log內容來分析出問題發生的原因,例如資料庫的資料全被刪除了,我們除了要解決系統的問題外,也很需要知道是誰做了這件事情,這時候稽核機制就很重要了,從稽核與log記錄中去追蹤問題的起源,這對下次的防範會很有幫助,如果沒有的話,連追蹤都很難追囉。

 

資安的問題其實環環相扣,專案時程壓力、經驗不足、過度自信都常常是問題發生的原因,如果要知道系統中有哪些漏洞,有許多工具可以協助,其中我用過最強的應該是AppScan了,不過它真的太貴了。

游舒帆 (gipi)

探索原力Co-founder,曾任TutorABC協理與鼎新電腦總監,並曾獲選兩屆微軟最有價值專家 ( MVP ),離開職場後創辦探索原力,致力於協助青少年培養面對未來的能力。認為教育與組織育才其實息息相關,都是在為未來儲備能量,2018年起成立為期一年的專題課程《職涯躍升的關鍵24堂課》,為培養台灣未來的領袖而努力。