五原則四實(shí)踐,REST API安全性請(qǐng)謹(jǐn)記
云原生和微服務(wù)架構(gòu)等技術(shù)的流行讓API受到越來(lái)越大的重視。那么當(dāng)應(yīng)用程序開始上云,各項(xiàng)需求都可以通過(guò)云服務(wù)滿足的情況下,應(yīng)用程序,尤其基于云端API的應(yīng)用程序的安全問題該如何解決?
延伸閱讀,點(diǎn)擊鏈接了解 Akamai API Security
表現(xiàn)層狀態(tài)轉(zhuǎn)移(REST,Representational State Transfer)這種軟件架構(gòu)風(fēng)格最早可追溯到計(jì)算機(jī)科學(xué)家Roy Fielding于2000年發(fā)布的一篇博士論文。在此后多年里,REST API(有時(shí)也稱為RESTful API)逐漸發(fā)展成為一種非常流行的API架構(gòu)模型,多用于Web和移動(dòng)應(yīng)用,以及企業(yè)對(duì)企業(yè)應(yīng)用和企業(yè)內(nèi)部系統(tǒng)。
雖然很多實(shí)現(xiàn)也用了其他API方法(如SOAP、GraphQL和gRPC),但REST API因?yàn)橐子趯?shí)現(xiàn)而獲得了最廣泛的使用。REST API設(shè)計(jì)非常便于現(xiàn)代前端框架使用,因此成為Web應(yīng)用、移動(dòng)應(yīng)用以及許多內(nèi)部和企業(yè)間API實(shí)現(xiàn)的熱門選擇。
REST API安全性五大原則
盡管REST API能以高度安全和彈性的方式實(shí)施,但有些基本的API安全標(biāo)準(zhǔn)對(duì)任何實(shí)施都至關(guān)重要。
在REST API設(shè)計(jì)中構(gòu)建安全性的五大原則是:
- 始終使用TLS加密
- 實(shí)施完善且可擴(kuò)展的身份驗(yàn)證和授權(quán)模型
- 不要在URL中包含敏感信息
- 嚴(yán)格定義允許的RESTful API請(qǐng)求和響應(yīng)
- 實(shí)施持續(xù)的API發(fā)現(xiàn)功能
始終使用TLS加密
與其他類型的敏感HTTP流量一樣,對(duì)RESTful API使用TLS可以確保API消費(fèi)者與API端點(diǎn)間的所有通信都經(jīng)過(guò)加密。這對(duì)于REST API安全和Web應(yīng)用程序安全同樣重要,因?yàn)橛纱水a(chǎn)生的HTTP流量包括敏感的身份驗(yàn)證詳細(xì)信息,如密碼、API密鑰或令牌。
實(shí)施完善且可擴(kuò)展的身份驗(yàn)證和授權(quán)模型
可以使用許多不同技術(shù)來(lái)管理對(duì)REST API的訪問。最常用的技術(shù)是API密鑰和安全令牌。但密鑰和令牌的管理可能是一種相當(dāng)復(fù)雜的工作。
這往往會(huì)導(dǎo)致無(wú)意中出現(xiàn)REST API安全漏洞。通過(guò)與兼容OAuth 2.0的身份管理提供商集成來(lái)進(jìn)行身份驗(yàn)證和發(fā)放訪問令牌,可降低這種風(fēng)險(xiǎn)。集中式API網(wǎng)關(guān)也可用于規(guī)范和保護(hù)REST API安全方法。
不要在URL中包含敏感信息
在URL中包含敏感信息(包括用戶憑據(jù)、密鑰或令牌),這是一種常見的REST API設(shè)計(jì)缺陷。即便在使用TLS的情況下,攻擊者也很容易發(fā)現(xiàn)這些信息。API請(qǐng)求數(shù)據(jù)路徑上的各種服務(wù)器和網(wǎng)絡(luò)設(shè)備也會(huì)經(jīng)常記錄URL,如果URL中包含敏感信息,就會(huì)導(dǎo)致進(jìn)一步的數(shù)據(jù)泄漏。
嚴(yán)格定義允許的RESTful API請(qǐng)求和響應(yīng)
我們需要假定攻擊者會(huì)試圖以惡意或無(wú)意的方式使用API。因此,切勿默認(rèn)信任RESTful API請(qǐng)求。要采取的最重要步驟之一是:驗(yàn)證任何參數(shù)或?qū)ο蟮母袷?、長(zhǎng)度和類型等屬性。
我們還應(yīng)該嚴(yán)格管理REST API可提供的響應(yīng)類型。例如,響應(yīng)應(yīng)僅限于明確允許的內(nèi)容類型,如GET、PUT和POST。
實(shí)施持續(xù)的API發(fā)現(xiàn)功能
即便是遵守REST API安全最佳實(shí)踐的企業(yè),也可能會(huì)被正常流程之外實(shí)施的影子API或尚未退役的遺留基礎(chǔ)設(shè)施中被遺忘的僵尸API打個(gè)措手不及。因此,實(shí)施持續(xù)的企業(yè)級(jí)API發(fā)現(xiàn)功能至關(guān)重要。
保障為所有API維持完整清單的最佳方法是從所有可用的API活動(dòng)信息源收集數(shù)據(jù),這些信息源包括:
- API網(wǎng)關(guān)
- 內(nèi)容交付網(wǎng)絡(luò)
- 云提供商日志
- 日志管理系統(tǒng)
- 編排工具
分析這些數(shù)據(jù)以獲取API活動(dòng)的證據(jù),可確保安全團(tuán)隊(duì)了解整個(gè)企業(yè)使用的所有API。發(fā)現(xiàn)任何意外的REST API后,都可以通過(guò)應(yīng)用適當(dāng)?shù)腞EST API最佳實(shí)踐來(lái)停止使用,或?qū)⑵浼{入正式清單。
四大高級(jí)REST API安全最佳實(shí)踐
在REST API設(shè)計(jì)中實(shí)施一套基礎(chǔ)安全標(biāo)準(zhǔn)是必不可少的第一步,但僅靠這些步驟并不能保證應(yīng)用程序完全安全。許多攻擊者已經(jīng)開發(fā)出了規(guī)避REST API基本安全措施的高級(jí)技術(shù)。畢竟,并不是每次REST API安全攻擊都以攻破Web應(yīng)用程序基礎(chǔ)架構(gòu)為目。
在許多情況下,攻擊者只是希望以非故意的方式使用API功能來(lái)訪問敏感數(shù)據(jù)并獲得競(jìng)爭(zhēng)優(yōu)勢(shì)。這些活動(dòng)可能來(lái)自可信來(lái)源,如已獲準(zhǔn)訪問REST API的客戶或合作伙伴。憑證、密鑰和令牌也可能被竊取或劫持,從而使攻擊者在我們的基線REST API安全標(biāo)準(zhǔn)之外推進(jìn)類似活動(dòng)。
為了獲得更完善的保護(hù),防止這些更復(fù)雜的API濫用方式,我們可以使用以下四種高級(jí)REST API安全最佳實(shí)踐:
- 使用云收集大量REST API安全數(shù)據(jù)集
- 將行為分析應(yīng)用于REST API數(shù)據(jù)
- 為開發(fā)和運(yùn)營(yíng)團(tuán)隊(duì)提供有關(guān)REST API使用情況的見解
- 開展積極主動(dòng)的REST API威脅獵捕活動(dòng)
使用云收集大量REST API安全數(shù)據(jù)集
許多第一代API安全技術(shù)都是在企業(yè)內(nèi)部運(yùn)行的。因此它們的作用僅限于分析非常短的活動(dòng)窗口,之后API數(shù)據(jù)就會(huì)被丟棄。這種方式的效果極為有限,因?yàn)樵S多類型的API濫用活動(dòng)都是在數(shù)周甚至數(shù)月內(nèi)以低速緩慢的方式進(jìn)行的。將API活動(dòng)數(shù)據(jù)發(fā)送到云端,就能積累獲得API詳細(xì)信息所需規(guī)模的數(shù)據(jù),存儲(chǔ)時(shí)間跨度可達(dá)一個(gè)月或更長(zhǎng)。這為更復(fù)雜的分析技術(shù)打開了大門。
將行為分析應(yīng)用于REST API數(shù)據(jù)
一旦掌握了大量有意義的REST API活動(dòng)信息,我們還可以利用云計(jì)算的計(jì)算規(guī)模來(lái)執(zhí)行行為分析。增強(qiáng)REST API安全策略的第一種方法是識(shí)別相關(guān)實(shí)體,從而獲得更多背景信息。實(shí)體可能包括用戶以及有意義的業(yè)務(wù)流程。
有了這些上下文,我們就可以確定API的正常使用模式。在此基礎(chǔ)上,可以進(jìn)一步分析以檢測(cè)異常。這種類型的異常檢測(cè)是發(fā)現(xiàn)濫用的最佳方法,尤其是當(dāng)濫用來(lái)自經(jīng)過(guò)驗(yàn)證的用戶時(shí)。
為開發(fā)和運(yùn)營(yíng)團(tuán)隊(duì)提供有關(guān)REST API使用情況的見解
保護(hù)企業(yè)免受REST API安全漏洞侵害的最佳方法之一是完全避免這些漏洞。與開發(fā)人員和運(yùn)營(yíng)人員共享有關(guān)RESTful API使用和濫用情況的信息,將有助于企業(yè)在開發(fā)和實(shí)施流程的早期就采用更好的REST API安全實(shí)踐,實(shí)現(xiàn)“向左轉(zhuǎn)”。
開展積極主動(dòng)的REST API威脅獵捕活動(dòng)
不要等到REST API濫用升級(jí)為嚴(yán)重安全事件時(shí)才采取行動(dòng)。積極主動(dòng)地調(diào)查REST API使用情況并查找濫用企圖(即使沒有成功),這有助于我們發(fā)現(xiàn)REST API安全實(shí)踐中的薄弱環(huán)節(jié)。
檢查API使用活動(dòng)也是發(fā)現(xiàn)REST API安全漏洞的有效方法。在攻擊者利用這些漏洞之前找到并消除它們,是增強(qiáng)REST API安全態(tài)勢(shì)的最有效方法之一。
總結(jié)
Akamai已幫助大量全球知名的企業(yè)實(shí)施了基礎(chǔ)和高級(jí)REST API安全最佳實(shí)踐。從API發(fā)現(xiàn)到行為分析,再到托管的威脅獵捕服務(wù),我們的方法將幫您加快REST API安全工作的步伐。
—————————————————————————————————————————————————
如您所在的企業(yè)也想要進(jìn)一步保護(hù)API安全,
點(diǎn)擊鏈接了解Akamai的解決方案