應用程式設計介面(API)可加速推動業務成長,許多企業將各個API視為有潛力提升業務成效的著力點,但也可能是形成安全漏洞的破口,因此應該跳脫網路邊界模型,改用更先進的方法,在每個與API存取點套用安全防護機制。
現在有越來越多的軟體在網路上運作,並透過應用程式設計介面(簡稱API)擷取資料並維持更新,通常藉此能獲得更有效率的工作方式。API作為一項實用工具,可加速推動業務成長,並擁有成千上萬種的應用模式,包括為生鮮雜貨網站擷取集結眾多食譜的檔案、為線上零售商附加安全付款系統,或是為現有的IT基礎架構增設功能等等。
不過,在API愈受歡迎之際,也成了不肖人士眼中的獵物,變成安全威脅的新目標。
如果API有被妥善地管理與設定,便不會產生安全相關的問題(API其實也是完善企業安全防護層中的一大重要元素),但現在多數企業都必須在線上環境中運作,使用的API不見得都有受到企業防火牆保護。這表示過去那種在IT資產周圍建立安全邊界的舊時代已經結束了,企業須正視相關威脅。
企業應將各個API視為有潛力提升業務成效的著力點,但也可能是形成安全漏洞的破口。 機構組織應該跳脫網路邊界模型,改用更先進的方法,在每個與API存取點套用安全防護機制。以下分享五項重要訣竅:
1. 在安全防護與存取便利性之間取得平衡
最滴水不漏的安全防護就是全面封鎖,不讓任何人有進入的機會。然而,如果要讓API提供商業價值,就必須開放API存取資訊與功能,如客戶資料、庫存資訊和舊版應用程式。這表示每個API都可能是存取點,都需要受到保護。
問題在於該如何確保API安全無虞,同時也讓透過這些API建構數位體驗的人員能按需求迅速作業,並且避免採取強壓政策,以及限制嚴格的存取措施,而阻礙創新。
答案就是採用API管理工具調節對於API存取、監控的使用方式,並且將開發人員的註冊、初期設定、驗證和教育程序自動化,但現在很多企業都只針對部分API套用這些預防措施,原因包括採用不對等的API管理方式、受限於期限而走捷徑、認為API非供重複使用即不需要管理,或是多種可能使用情境的整合。這就像是將部分的窗戶上鎖,而大門卻敞開任人進入。正確的做法應該是確保所有API都應該受到妥善的控管。
2. 善用驗證機制讓合適的對象存取資源
受到妥善保護API應同時針對使用者和應用程式提供驗證機制。現行的API安全防護開放標準名為OAuth,這種驗證方式能讓使用者和應用程式取得適當的存取權限,進而存取受保護的資源,而且使用者只須提供一些憑證資料來換取權杖,就能透過該權杖存取API。
不過,OAuth權杖是有範圍限制的,該機制可限制應用程式對使用者帳戶的存取範圍。相較與使用存取限制極低的密碼,這項控管機制可靠多了。此外,權杖本身的範圍和效期限制設定方式也相當簡單。但API團隊還是必須充分瞭解OAuth的功能與最新的驗證最佳實踐,以確保一切安全無虞。
API監控和其他管理功能,也有助於維護API的安全。比方說,某些企業會套用角色型存取權控管(RBAC)等功能,根據內建的使用者類型指派不同層級的API存取權與權限。
3. 利用有效的流量管理功能持續維持掌控
無論是何種API,隨時都有可能受到暴力攻擊。不肖人士可能會利用自動化軟體,連續產生大量的猜測結果,企圖存取受保護的資料,或是透過叫用API讓總處理量超過API當初部署時所設定的負荷量,進而讓後端承受極大的壓力。因此,API團隊必須考慮採用頻率限制與配額功能,進一步提升API的安全性。
頻率限制和配額能保有自家機構數位資產的控管權,同時維護客戶的體驗及隱私。API團隊可透過支援頻率限制的API管理平台設置觸發流量暴增防範機制的門檻,以免讓後端受到意外出現的活動的影響。舉例來說,API團隊可規定所有使用者呼叫API的頻率每秒不得超過500次,或是為各個應用程式分配每天固定的API呼叫量。
4. 透過數據分析與監控功能產生深入分析資訊
連線體驗將實際上可能分散於各個地區、公、私有雲和API供應商的數位資產都串連整合在一起。有效的API管理和安全防護其中一個目標就是以統一的方式控管分散式架構。
如果要確保API計畫健全完善,通常必須仰賴安全團隊和營運團隊進行有效的交接。但如果報表功能無法明確顯示某個情況需要特定的團隊處理而非另一個團隊的這項資訊,可能就很難協助團隊針對安全防護進行有效的合作。 因此,企業不僅得評估API管理平台是否提供監控和數據分析功能,還必須確認這些功能的整合是否真的能夠加快業務問題的解決速度。
就功能層面而言,有效的報表和資訊主頁,就應該提供深入分析資訊概覽,以及細查功能,方便使用者進一步查看更細部的資料。上述功能應該要能讓使用者輕鬆查看流量的變化,包括不同時間間隔的變化情況;查看選定時段內出現的模式;存取變更管理和控管資料的相關資訊;以及查看個別API和個別Proxy的政策設定資料。
5. 別忘了基本工作
定期執行程式碼與安全性審查,不僅能提高在安全漏洞影響客戶前就找到問題的機率,同時也有助於確保API計畫中特定環節產生的安全缺陷都有詳細記錄下來,避免同樣的問題在其他地方重複發生。
此外,許多安全問題都是由API使用者發現。因此,另一項最佳做法就是為使用者建立通報問題的管道、設置專案計畫來開發修正方案並推送至實際工作環境,然後與使用者聯繫,確認問題是否被解決。
結語
在現今這個複雜的環境中,能帶動業務成長的體驗和互動不再全部都位於網路邊界內。相較於躲在防火牆後,然後樂觀地希望不會發生資安問題,如果能根據上述變動採取合適的措施,企業最終可能會享有較高的安全保障。
<本文作者:林書平目前擔任Google Cloud客戶解決方案經理,協助不同規模的企業擬定雲端策略、採行雲端解決方案;加入Google以前,他累積了15年的科技與軟體工程經驗,歷任各種技術與管理職位,包括安全性研發、軟體工程、雲端架構團隊的主管。>