細述機器人程序在API攻擊中扮演的角色
API 可謂是現代應用程序的構建模塊,支撐可組合的企業模型和數字化平臺。隨著更多的組織意識到 API 集成具有的重要性,API 的使用量隨之猛增。
目前,全球使用的公共API和私有API總數估計約為2 億個。由于API如此重要,它們一開始就讓用戶可以快速輕松地訪問數據、資源和功能,攻擊者不可能不注意它們。機器人程序(bot)是攻擊者武器庫中的一種關鍵工具,他們利用機器人程序來策劃API機器人攻擊。
API機器人程序攻擊到底是什么?威脅分子如何使用機器人程序來攻擊API?你又該如何保護API免受機器人程序的攻擊?請耐心讀下去。
API 機器人程序攻擊
在深入研究什么是API機器人程序攻擊之前,不妨先了解機器人程序的基礎知識。
機器人程序是用于機器對機器通信的自主程序。可以對它們進行編程,以便在無需人工干預的情況下執行功能和執行Web請求。它將HTTP流量從IP地址發送到目標系統。僵尸網絡是一堆機器人程序,它們協同工作,可以利用多個IP地址。僵尸網絡的規模從幾百個IP地址到幾千個IP地址不等。
在機器人程序攻擊中,惡意分子利用機器人程序來操縱、欺詐或擾亂目標網站、應用程序、最終用戶或API。機器人程序攻擊最初用于向目標發送垃圾郵件。而今天,它們已變得極其錯綜復雜,可以執行高度模仿人類行為的復雜攻擊。
當這些自動化程序被用來專門攻擊API時,或者當攻擊者利用機器人程序加大API攻擊的規模、影響和復雜度時,這就是API機器人程序攻擊。
為什么機器人程序被用于攻擊API?
通過編程暴露數據、資源和業務邏輯:
多年來,機器人程序一直被用于網絡攻擊。但是當它們用于攻擊API時,為什么令人擔憂?這是由于API旨在連接不同的應用程序,提供對數據和資源等資產的編程訪問,并使多個客戶能夠輕松集成和共享。就其本質而言,它們暴露了高價值的功能和業務邏輯,并使資源容易被發現。因此,它們加大了暴露敏感信息的風險。
缺乏可見性:
API 之所以是機器人程序攻擊的誘人目標,是由于組織對整個生命周期內的API缺乏可見性。API在幕后工作,但這沒有太大幫助。如果你不知道架構中存在API,又該如何審查、管理和保護它們?這就留下了一些易受攻擊的API、影子API、僵尸API、流氓API和配置錯誤的 API。因此,它們通常不如傳統端點來得安全,并急劇加大風險。
再加上機器人程序,災難就會隨時到來。組織可能不知道存在哪些 API、誰在使用它們、它們可以訪問哪些資源以及它們暴露了哪些業務邏輯。但威脅分子利用機器人程序來分析組織的IT架構,并四處尋覓API中的薄弱環節。機器人程序實際上為攻擊者簡化了這個過程。
今天的機器人程序是隱蔽的:
如今機器人程序用于API攻擊,另一個原因是它們極其隱蔽,可以避免被傳統安全工具檢測出來。事實上,如今更復雜的機器人程序也可以避免被更高級的安全工具檢測出來。
比如說,你可能臨時調整了API身份驗證規則,以便在三次登錄嘗試失敗后凍結帳戶。在憑據填充(撞庫)攻擊中,嘗試兩次失敗后,機器人程序就會改用另一個IP地址。使用智能自動化,它們可以在沒有人工干預的情況下完成這一切工作,根據設定的規則和學習能力做出決定。
機器人程序被用來掩護其他攻擊:
API 機器人攻擊通常被攻擊者用作干擾或掩護,以策劃其他類型的API濫用。比如說,攻擊者可能利用僵尸網絡觸發數以千計的安全警報,好讓安全團隊跟進。但他們的目的是在安全團隊調查安全警報時枚舉 ID。
威脅分子之所以利用機器人程序攻擊API,是由于在此過程中提供了無與倫比的速度、靈活性和敏捷性。比如說,無法在不觸發安全防御系統的情況下手動發動撞庫或蠻力攻擊。但機器人程序使蠻力和撞庫攻擊變得快速、簡單且可擴展。
這是表明機器人程序如何幫助攻擊者對API下手的另一個例子。攻擊者可以在未經身份驗證的情況下向端點發送大量API請求,并在短時間內收集大量數據。
傳統工具無力應對現代機器人程序:
面對常規的機器人程序攻擊,傳統的安全工具不盡如人意。但它們在阻止API機器人程序攻擊方面更加無效,原因是它們不是專門針對API設計的。首先,傳統工具無法有效區分機器人程序活動和人類活動,也無法有效區分好的機器人程序活動和壞的機器人程序活動。這嚴重限制了它們保護API遠離基于機器人程序的攻擊的能力。
其次,鑒于機器人程序留下的線索較少、API收集的細節較少,傳統工具無法有效地判斷API調用是惡意的還是合法的。實際上,機器人程序請求的是與瀏覽器攻擊相同的數據。
不同之處在于,API 機器人程序攻擊不提供瀏覽器版本、使用的cookie和設備類型等方面的信息,而傳統工具使用這些信息來檢測機器人程序活動。由于API攻擊是完全虛擬的,機器人程序可以繞過攻擊、在不同的云之間移動、輪換IP地址、使用代理網絡以及做更多的事情來擺脫傳統防御。
業務邏輯缺陷:
開發人員往往使用通用規則集,并使用默認配置的API,而不考慮實際業務邏輯。這帶來了業務邏輯缺陷,機器人程序可以利用這些缺陷造成嚴重破壞,同時通過看似合法的API請求逃避檢測。
針對API的機器人程序攻擊更容易發起:
與針對移動和Web應用程序的機器人程序攻擊相比,針對API的機器人程序攻擊策劃起來容易得多,而且極具成本效益。雖然不同的應用程序需要不同的方法和機器人程序功能,但攻擊者可以使用相同的基礎設施和攻擊機制來攻擊直接的API和Web API。此外,API 使攻擊者能夠更接近核心 IT 基礎設施和關鍵資產。
此外,機器人、僵尸網絡和攻擊工具包很容易租用,而且價格通常很低。因此,攻擊者不需要太多資源或深厚的技術知識就能發起API機器人攻擊。
機器人程序用于API 攻擊的方式有哪些?
1. 偵察:攻擊者利用機器人程序和僵尸網絡來發掘易受攻擊的API端點、測試檢測閾值和分析攻擊面等。
2. 攻擊:機器人程序和僵尸網絡用于攻擊API。一些常見的API機器人程序攻擊包括撞庫攻擊、蠻力攻擊、內容抓取攻擊和注入攻擊等。
3. 規避:在基于API的攻擊中,攻擊者還利用機器人程序和僵尸網絡通過隱蔽行為或制造干擾來規避安全防御系統。
對付API機器人程序的幾種有效方法
收集情報,并為機器人程序針對API的平常行為建立基準。
監控所有入站API請求,以便在偵察階段發現并阻止異常行為。
部署的安全工具應該能夠根據具體情況智能化地允許、阻止、標記或質詢入站流量,無需太多的人為干預。
利用行為和模式分析、工作流驗證和指紋識別技術,有效地區分人類活動、好的機器人程序活動和壞的機器人程序活動。
持續掃描、測試和監控API,尋找是否存在錯誤配置、漏洞和業務邏輯缺陷。
使用零信任策略,加強訪問控制和身份驗證機制。
始終定制API 規則集。