作者:Erez Yalon
翻譯及整理:叡揚資訊 資訊安全事業處
現今網路攻擊持續利用具有弱點的人員、流程和技術圖利。他們的運作模式已經不限於「傳統」目標。似乎一切都在他們攻擊的範圍內,沒有人能百分之百倖免於惡意攻擊的侵害。儘管企業正朝著正確的方向努力,阻止已知的攻擊手法,但很快地新的手法就會被揭露出來。隨著開發習慣改變,開始運用大量的API,因此API也成為新一代的攻擊標的。事實上,最新的報告指出,到了2022年API濫用將是企業網站資料洩露的主因。全球API大幅增長,也由於全球API大幅增長,API的運用將如同潘朵拉盒子般成為攻擊者的秘境。由此可見,API的保護變得日益重要。
儘管API的安全性概念仍十分新穎,但藉由API所進行的攻擊卻非如此。多年以來,多數企業的網路與網際網路應用系統一直遭受類似的威脅。企業必須更加重視行動應用系統、API和後端伺服器,以免遭受已知常見攻擊手法的襲擊。在討論目前API所面臨的相關風險之前,首先我們必須確切了解它們之所以獨特和脆弱的原因。
API應用程式與傳統應用程式截然不同。舉例來說,過去使用者/訪客透過瀏覽器訪問網頁伺服器,而多數的「資料處理」都是在伺服器端執行的。隨著科技與日俱進,新出廠的設備配有更高規格的CPU、更大記憶體容量、更高頻寬與速度,使得使用者端設備多樣化,且功能大幅提升。如下圖所示,許多邏輯運算由後端伺服器執行轉變到前端(即使用者端設備)。
在圖中,我們可以看到在下方的現今應用程式架構中,伺服器僅藉由API作為提供運算資料的角色;如此真正的運算即在使用者端的設定進行的,使用者端並非伺服器本身,說明如下。舉例來說,很多人應該還記得早期使用智慧型手機操作傳統訂機票網站的困擾。人們打開手機上的瀏覽器,試圖進入航空公司網站,但所呈現的畫面很顯然是為電腦而非小型智慧型手螢幕所設計,所以客戶體驗並不好。因此,公司開始更新網站格式,讓智慧型手機瀏覽時更方便。儘管這麼做能改善客戶體驗,但瀏覽和完成機票預訂仍相當麻煩。
為了解決這些問題,航空公司、飯店、汽車租賃公司開始開發專屬的行動應用程式。如今人們已經不再需要仰賴航空公司行動版網頁來預訂航班,而可下載並安裝航空公司的行動應用程式,直接在程式上面預訂航班。行動應用程式的API使用究竟與傳統網頁有什麼不同?當使用者使用航空公司的行動應用程式,程式會呼叫與後端伺服器進行互動的API,以檢索航班時刻表、空位、價格、座位等資料。同時,應用程式與使用者進行互動,讓使用者可以設定旅行日期、出發地、目的地、座位以及購買選項。在這種情況下,行動應用程式在智慧型手機上幾乎已完成所有航班預訂的程序,而瀏覽器則無用武之地。即使整體改善了使用智慧型手機的航班預訂體驗,但隨之延伸出一個問題:API是否像瀏覽器應用程式一樣易受網路攻擊?
不幸的是,API與瀏覽器應用程式相似,也非常容易受到高度攻擊。API的安全問題確實有隱憂。但是由於API 暴露行動應用程式的底層架構、使用者狀態通常由客戶端應用程式維護和監控,以及每一個HTTP請求中發送的參數增加(object IDs, filters, etc.)等因素,部分API安全性問題比較特別。在多數情況下,這些問題導致的漏洞可以分為以下三種類別:
由於威脅範圍不斷擴大,再加上整個產業對API的使用與日俱增,本篇作者與Salt Security的研究負責人Inon Shkedy一起率先提倡OWASP API Security Top 10 Project。本計畫希望幫助企業、開發人員和AppSec團隊更了解API面臨的風險。也是這個計畫如此重要的主因。根據OWASP官方網站,「在今日,API是應用程式的基礎。從銀行、零售、運輸到物聯網、自動駕駛和智慧城市,API是現代智慧手機、SaaS和網頁應用程式上關鍵的一環。此外,客戶與合作夥伴間的服務和內部應用程式也有API的身影。本質上,API暴露了應用程式邏輯和敏感資訊,如:個人資料(PII),也因此,API已漸漸成為攻擊的目標。如果API不安全,創新服務是無法實現的。」
OWASP APISecurity Project旨在開發、發佈和追蹤企業使用API面臨的十大風險,類似OWASP TOP 10(網頁應用程式十大安全風險)。從未最小權限原則到系統記錄與監控不足,該列表總結企業所面臨的關鍵API風險,同時還提供可能的攻擊情境範例和如何應對這些威脅的建議。請注意,現在十大列表在「意見徵求」階段,歡迎各界在9月25日之前審閱並提供意見。
接下來我們將探討API十大安全風險,以及應對這些問題的解決措施。簡單來說利用API來增強業務產品,簡化營運,改善客戶體驗並增加收入需要長期投入並了解攻擊者可以從何處發動攻擊。企業必須重視與解決這些問題,否則將面臨嚴重的後果。
GSS資安電子報0173期【解析OWASP API Security Top 10 - Part 1】
GSS資安電子報0174期【解析OWASP API Security Top 10 - Part 2】
Erez Yalon帶領Checkmarx安全研究小組。身為一名獨立的安全研究人員,他擁有豐富的防禦和攻擊經驗,能提供寶貴的知識和技能。Erez Yalon負責Checkmarx的漏洞檢測技術,發揮過去多種編碼語言方面的開發實力。