API安全的發(fā)展趨勢展望
譯文【51CTO.com快譯】如今,應用程序編程接口(API)已經變得非常流行了。各個企業(yè)的應用開發(fā)都深度依賴于它們之間的相互調用,以支持新產品和服務的按時交付。與此同時,隨著API絕對數量的增加,在互聯網絡上傳遞的數據量也正在呈指數級地增長。
不過,這些海量數據中,往往會包括諸如:用戶詳細信息、電子郵件、以及密碼等敏感且隱私的數據。例如:通過使用Facebook的某些API(請參見:https://developers.facebook.com/docs/graph-api/),您完全可以訪問到大量用戶的照片、位置之類詳細的信息。由于網絡世界用戶之間的不可見性,這些敏感數據很有可能會被非法分子用于多種惡意的用途。因此,我們在日常的應用開發(fā)過程中,應當時刻專注API的安全性,通過安全編碼等技術手段,構建出安全可靠的程序API。
API安全性日益受到關注
根據SmartBear最近進行的一項研究顯示(該研究發(fā)布了API現狀報告,請參見:
https://smartbear.com/resources/ebooks/the-state-of-api-2019-report/):
- 在受訪并給予回應的對象中,有41.2%的人認為:安全性是他們的API所面對的最大技術問題,而且是當務之急。他們希望在自己的軟件產品中不要出現與API安全性相關的漏洞。
- 在被普遍認為需要改善和提高的API相關領域,安全性排名第四。
- 有超過40%的API提供者會使用某種工具,來獲悉當前API的安全態(tài)勢。他們希望能夠快速且全面地發(fā)現潛在的安全漏洞。
目前,API技術已經滲透到了各個行業(yè),乃至各種業(yè)務策略的制定環(huán)節(jié)。其中,最為常見的API當屬REST、SOAP、以及ASYNC API。另外,隨著物聯網的迅速發(fā)展,全新的智能化API也在不斷地涌現。這些API充當了智能設備和互聯網之間的接口作用。那么,到底API是如何做業(yè)務趨勢以及深度融合發(fā)揮作用的呢?通過如下三個方面,我們可窺一斑:
- 為了讓客戶獲得更好的服務體驗,銀行機構正在采用、甚至遷移到API式的敏捷模型中,以實現高效、強適應性的金融安全架構。
- 醫(yī)療保健行業(yè)的從業(yè)人員通過各種可用的API,向患者和客戶提供集成化的醫(yī)療保健服務,并能提高自身產品的互操作性。
- 零售商正在使用API為其客戶提供更加智能化的電子商務平臺,例如:多元化的移動支付應用等。
API安全性的當前狀態(tài)
當前,在互聯網上,每天通過各種API傳輸的大量數據可謂是魚龍混雜。有的是一些公眾性的普通數據,有的則是需要通過加密的機密性數據。因此,應用開發(fā)與維護人員需要和那些看不見的隱形對手進行攻防較量,以確保提前揪出軟件產品中的各種漏洞??偟恼f來,API的安全性隱患主要集中在如下三個方面:
- 授權、認證與審核機制(一般通過訪問控制來應對)。
- 訪問量的負載平衡和速率限制。
- 通信和網絡中的數據隱私問題(一般通過SSL/TLS來應對)。
API的安全展望
根據本人的開發(fā)與項目實施經驗,我大膽地對API的安全性趨勢做出了如下展望,可供您參考與借鑒。
1. DNS安全性(DNSSEC)
在人們運用移動設備訪問各類APP的時候,大多數信息都是以未加密的方式,通過無線網絡進行往復傳輸的,因此它們很容易受到截獲甚至是攻擊。我們需要通過設置SSL或TLS的連接方式,來確保傳輸數據的安全性。當前,最新的TLS版本為1.3,而大多數網站也都能夠通過API的設計,以HTTPS的方式去加密用戶的各類敏感信息。
同時,由于幾乎所有的網絡流量都需要進行標準的DNS查詢,因此DNS成為了眾矢之的,針對DNS的劫持和中間人攻擊時有發(fā)生。此類攻擊通過將網站的入向流量,重定向到偽造的網站處,進而收集到網站用戶的敏感信息,并讓企業(yè)蒙受損失。
與許多互聯網協議相同,DNS系統(tǒng)在設計之初也并未考慮到安全性的相關問題,并且存在著一些設計上的限制。而這些限制在面對技術的快速迭代時,就留下了可乘之機。攻擊者很容易出于惡意目的去劫持DNS的查找請求。例如,他們會將用戶轉發(fā)到分發(fā)惡意軟件、或收集個人信息的欺詐性網站上。
下面是DNS劫持的具體流程:
在上述DNS劫持過程中,攻擊者通過惡意軟件、或是對某些未授權DNS服務器的修改,來將查詢請求重定向到持有其他域名的服務器上。也就是說,您本想訪問www.mybank.com,卻實際上來到了www.notmybank.com,而且自己渾然不知。
DNS安全擴展(DNSSEC,
https://dzone.com/refcardz/introduction-to-dns-security?chapter=1)是針對此類問題而創(chuàng)建的安全協議。DNSSEC協議通過對數據進行數字簽名來保護其有效性,并防止其受到攻擊。為了確保實現安全的DNS查找,此類簽名必須在DNS查找過程的每個順序級別上進行。
2. 聚焦安全的API設計
一提到安全,人們往往想到的是復雜性、甚至是不便。因此,API設計的易用性和可擴展性,才是吸引API開發(fā)人員、乃至用戶的關鍵戰(zhàn)略秘訣。在實踐中,當您開始著手為某個微服務構建公開的API時,就應該認真考慮如何設計API的安全性。
只有在設計之初融入了安全性,特別是用戶隱私方面的管控,才能節(jié)省后續(xù)補救與整改的時間和資源。業(yè)界著名的RestCase API平臺正是通過各種AI和復雜的算法,以方便用戶在設計階段去檢查和驗證自己的API。同時,它能夠給出如何處置API安全性方面的各種建議。
3. 人工智能(AI)驅動的API安全性
目前,在不同的行業(yè),開發(fā)人員通過將系統(tǒng)的API與海量的數據相集成,在計算機視覺、空間位置、嵌入式應用、Web網格、移動文本數據、以及自然語言處理等領域,得到了很好的商業(yè)智能化應用,和對發(fā)展趨勢的預判。通過對于不同實時數據源的持續(xù)檢測與分析,各類應用具備了更快、更智能的響應能力。
與此同時,我們應該利用好豐富的數據資源,運用AI相關的趨勢分析能力,對于調用API的流量進行深度分析,進而偵測到各種歷史攻擊與異常,并通過自動化的修補措施,以防止后續(xù)攻擊的再次發(fā)生。例如,某些針對特定API的DoS攻擊源,會在網絡中掃描并攻擊那些設計方案欠佳,且未對訪問請求實施流速限制的API。有時候,某些API節(jié)點會在算力(computation)上非常消耗資源。例如:那些需要通過哈希算法來進行身份驗證的邏輯。因此,一些經驗豐富的攻擊者,經常會有目的性地利用并向此類節(jié)點發(fā)送垃圾郵件,以拖垮或破壞整個系統(tǒng)。
4. 機器學習(ML)驅動的API安全性
如果說AI主要是用于對攻擊進行智能判斷的話,那么ML則主要能夠用于提取威脅的特征。通過開發(fā)帶有ML功能的智能API,運維人員能夠有效地管理各種具有挑戰(zhàn)性和新出現的威脅模型。運用此類API的安全性,我們將能夠更加準確地識別和標記出各種異常行為,判斷出惡意攻擊的發(fā)展趨勢,以及識別和阻止在多種環(huán)境、及情況下針對API的攻擊行為模式??梢哉f,有了持續(xù)學習功能對于API的加持,我們便可以在無法預知攻擊源、以及預設應對策略的情況下,及時識別出正在發(fā)生的異常行為。
目前,廣泛用于各種API安全方面的機器學習算法,包括:樸素貝葉斯、KNN最近鄰(K-Nearest Neighbors)、決策樹、隨機森林、支持向量機、深度學習、以及神經網絡等。
總結
隨著現代化技術的日新月異,API安全性已日漸成為了網絡應用方面的主要技術需求之一。目前,AI和ML作為有效且智能的工具,已經逐漸被應用到了協議棧的各個層面上,以實現API的全棧安全防護。當然,就下一步發(fā)展趨勢來看,開發(fā)人員需要進一步加大對于API業(yè)務模型、分析能力、技術藍圖、以及合規(guī)性與標準化方面的深入研究與開發(fā)。
原文標題:State of API Security,作者:Guy Levin
【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】