OWASP公布2017年最新的十大資安風險候選版,兩個新增的風險都與使用API帶來的風險相關。

圖片來源: 

iThome

不管是政府或民間企業,如果要驗證各種網路服務(Web)的資安風險時,都會直接參考OWASP(The Open Web Application Security Project ,開放網路應用程式安全專案)歸納出的前十大網路資安風險(OWASP Top 10),在今年4月下旬,OWASP釋出2017年OWASP前十大資安風險候選版(Release Candidate)並對外公開徵詢意見,預計在今年七月或八月,將會釋出正式版。

面對2017年版的OWASP前十大資安風險,兩個新上榜的資安風險都與API的安全性相關。資安業者戴夫寇爾執行長翁浩正表示,目前有許多企業開發時,經常使用各種開發框架(Framework),或者是讓前後端分離、加速團隊研發速度,甚至是許多手機App也都是呼叫各種API的情況下,都大量使用各種API,但API相關的安全措施卻沒有因為使用量大而作的更好、有更多關注,反而讓這些沒有受到完善保護的API成為駭客攻擊的目標。

翁浩正指出,從臺灣許多網站受駭的案例中也發現,API伺服器一直是資安防護措施相當脆弱的環節,但是從OWASP釋出最新版的前十大資安風險中可以判斷,未來API面臨的各種風險都是需要關注的新興威脅。

OWASP強調,API安全性是未來應該關注的資安風險之一

OWASP是一個由全球超過4萬名義工共同參與的非營利組織,主要是針對各種網頁安全漏洞提出各種研究成果。最早的前十大網路資安風險是在2003年釋出,並在2004年及2007年陸續做小幅度的修正改版。一直到2010年推出OWASP前十大資安風險的正式版本,才真正從風險的角度歸納最嚴重的網路漏洞,當時這種以風險為角度的漏洞歸納方式仍不普及,但這種以風險為出發點的作法,則一直延續到2013年版以及今年釋出的2017年候選版。

各種不安全的軟體潛藏於金融產業、醫療產業、國防產業、能源產業及各種關鍵基礎設施中,而各種現代快速的軟體開發方式,也再加上現在有許多新興技術的採用,不論是雲端運算、容器技術(Container)或者是API的介接使用等,或者是新興的軟體開發流程,像是DevOps或者是敏捷開發(Agile)等,甚至是大量使用第三方函式庫或開發框架使用等,都使得開發者更難以快速且精準的發現相關的軟體資安風險。

因此,在2017年新版OWASP釋出的十大資安風險中,其中兩項新增的風險,包括應用程式與API攻擊防護不足(Insufficient Attack Protection)以及API未受防護(Underprotected APIs),則都特別強調除了網頁應用程式之外,許多開發者經常使用的API的安全性,也都是未來需要持續關注的資安風險之一。

API使用頻率高,但相對應的安全保護措施不足

翁浩正表示,從他觀察到許多網站遭到駭客入侵時候,許多使用者所擁有的API伺服器,其實相關的安全防護措施都是非常脆弱的,加上現在許多開發者為了加速開發速度,已經習慣採用各種開發框架,也有許多手機App的開發,後端就是呼叫許多已經開發的API使用,這也使得API使用的量比以往大很多。但問題在於,「API使用的量雖然增多,但相對應的資安防護措施卻沒有隨之加強,也使得API經常成為駭客的攻擊目標。」他說。

翁浩正進一步解釋,以常見的手機App開發過程中,許多App開發業者會選擇將App加殼以確保App的安全性,但有趣的是,App背後所使用的各種API卻沒有任何保護措施,這也使得手機App的加殼一點意義都沒有,因此,他也建議,許多開發者都應該要明確知道自己的需求,有助於進一步防護。

至於駭客如何入侵API伺服器,翁浩正歸納指出,通常駭客會攻擊分析App或者是側錄相關的網路封包,了解API的呼叫進入點,接下來,駭客就可以透過各種攻擊手法,例如SQL Injection或者是RCE(遠端執行控制)等方式,直接取得API伺服器甚至是資料庫的權限,這些都是駭客經常用於攻擊API伺服器的方式。

也因此,翁浩正認為,對API伺服器的保護其實和一般的網站保護措施都是一樣的,重點在於相關的防護措施能否真正落實,例如,是否可以針對所有輸入值做相關的保護、檢查或過濾,甚至於是否可以確認呼叫API的使用者(或App)都是獲得許可的合法使用者等,這些作法都可以進一步避免未知來源惡意呼叫API。

以目前來看,翁浩正指出,API安全大致可以分成兩類,第一類是API濫用,第二類是API攻擊。所謂的API濫用指的就是,使用者(或App)可以去呼叫API大量取得資料(例如客戶的電子郵件);而API攻擊就是塞入像是SQL Injection的攻擊語法去攻擊API伺服器,藉此取得相關的主機權限。

以OWASP新上榜的API攻擊防護不足(Insufficient Attack Protection)或者是API未受防護(Underprotected APIs)的資安風險為例,其實講的就是,當伺服器遇到攻擊行為的時候,能否偵測並且有效應對,例如,當發現外部有人正在掃描攻擊時,使用者是否可以針對這些攻擊「感知」並且做到「阻擋」。

翁浩正也坦言,過去在協助許多客戶在進行網站安全防護時,就經常發現,駭客就是利用許多API伺服器的漏洞入侵使用者的網站。但他認為,嚴格說來,API伺服器也是網站安全重要的一環,資安風險和一般網站一樣高,都不應該忽略。

OWASP前三名是老調重彈,多年資安老問題

從這次OWASP點出的十大資安風險可以看到,前三大資安風險和2013年版的前三名是一模一樣,分別是:Injection(注入攻擊)、無效身分認證和Session管理(Broken Authentication and Session Management )和跨站腳本攻擊( Cross-Site Scripting,XSS)。

翁浩正表示,這是的前三項資安風險其實都是老調重彈,但他認為,像是SQL Injection的資安風險,當越來越多人直接採用框架開發時,就得進一步分析,為什麼還有這麼高的比例是SQL Injection呢?他進一步解釋,除了框架本身有漏洞外,其他的問題還包括:有修補程式但使用者卻沒有立即更新;第三方套件或者是外掛程式(Plugin)有漏洞,例如Wordpress的外掛;另外就是使用錯誤的寫法拼湊SQL語法等,都可能造成SQL Injection的風險。

他也認同OWASP這次把2013年版中,很容易被誤解的 Insecure Direct Object References 和 Missing Function Level Access Control,合併成為2017年版的無效的存取控管(Broken Access Control)。他表示,從OWASP的調整可以發現,未來的資安風險更強調攻擊的應對和感知能力,已經不試過往單純的漏洞修補而已,「畢竟,漏洞是找不完的,企業的重點永遠在於如何快速感知、快速應變。」他說。

至於,強調設定必須注意安全的「不安全的組態設定」(Security Misconfiguration),和開發習慣不好所導致的「敏感資料外洩」(Sensitive Data Exposure ),在在都表示使用者針對主機端的作業系統控管和開發習慣不好,翁浩正解釋,這也意味著,開發者重視應用程式開發的安全性,也必須進一步兼顧系統面的設定安全性,才能夠更全面的降低資安風險。

 另外,像是跨站請求偽造(Cross-Site Request Forgery,CSRF)也是老問題,翁浩正認為,這也表示使用者並沒有採用一些更新技術去做攻擊防禦;使用已有漏洞的元件(Using Components with Known Vulnerabilities)  表示大家使用套件、框架的習慣不好,並沒有做到即時更新。

翁浩正表示,從OWASP歸納的十大資安風險中可以發現,許多使用者對於安全的認知還是太表面,例如,知道跨站腳本攻擊(XSS)會跳出警告訊息(Alert),但更多人反而是去過濾這些警告訊息,倒因為果,並沒有去探究漏洞本質後再提出相對應的防禦措施的作法是沒有用的;當然,加上黑箱的滲透測試方式,也有助於提高安全性。當然,他也同意,導入安全的軟體開發生命週期(SSDLC)有助於強化好的開發習慣,有些人也會在SSDLC納入主機部署管理原則,關鍵在於,主機安全也是重要的安全議題,不可以忽略。

熱門新聞

Advertisement