標籤:

PwnAuth——一個可以揭露OAuth濫用的利器

PwnAuth——一個可以揭露OAuth濫用的利器

來自專欄嘶吼RoarTalk5 人贊了文章

一、簡介

魚叉式網路釣魚攻擊被視為企業最大的網路威脅之一。只需要一名員工輸入自己的憑證或運行一些惡意軟體,整個企業都會受到威脅。因此,公司投入大量資源來防止憑證收集和有效載荷驅動的社會工程攻擊。然而,對於非傳統但卻同樣危險的社會工程——OAuth濫用卻沒有給予足夠重視。在OAuth濫用攻擊中,受害者授權第三方應用程序訪問其帳戶。一旦獲得授權,應用程序不需要憑證就可以訪問用戶的數據,並繞過可能存在的任何雙因素身份驗證。

今天,我發布了PwnAuth,這是一個讓組織和滲透測試人員測試其檢測和響應OAuth濫用社會工程活動能力的平台。在發布該工具時,我們希望提高對這種威脅的認識,提高安全社區檢測它的能力,並為防禦者提供對策。

轉到我們的GitHub開始使用PwnAuth。

二、何為OAuth

OAuth 2.0被描述為「一種開放的協議,允許從Web、移動和桌面應用程序以簡單標準的方法進行安全授權……」它已成為諸如亞馬遜,Google,Facebook和微軟等主要互聯網公司的事實協議,使用它來方便第三方應用程序訪問用戶數據。訪問Microsoft OneDrive輕鬆進行文件共享的應用程序就是一個利用OAuth的應用程序示例。

我們以訪問OneDrive的應用程序為例,在OAuth授權流程中定義一些角色:

應用程序——客戶端

請求訪問的第三方應用程序。在本例中,訪問OneDrive文件的應用程序是「客戶端」。

API——資源

客戶端希望訪問的目標應用程序。在本例中,Microsoft OneDrive API 終端是資源。

資源擁有者

允許訪問其部分帳戶的人員。在本例中,就是你。

授權伺服器

授權伺服器提供資源所有者用來同意或拒絕的介面。伺服器可以與API資源相同,或者是另一個不同的組件。在本例中,Microsoft登錄門戶是「授權伺服器」。

範圍

範圍定義為第三方應用程序請求的訪問類型。大多數API資源將定義應用程序可以請求的一組範圍。這與Android手機應用程序在安裝時請求的許可權類似。在本例中,應用程序可能會請求訪問OneDrive文件和用戶配置文件。

OAuth 2.0提供了幾種不同的授權「許可權類型」,以適應用戶及與之交互的不同應用程序。為了本文的目的,我們對「授權代碼」許可權類型感興趣,該許可權類型由實現OAuth的Web應用程序使用。以下是授權流程示例:

1.創建一個「同意」鏈接,以應用程序的標識和請求的作用域為參數,指示資源所有者訪問授權伺服器。

https://login.microsoftonline.com/auth?response_type=code&client_id=123456789&redirect_uri=https%3A%2F%2Fexample-app.com%2Fcallback&scope=mail.read+offline_access

2.資源所有者將收到授權提示,說明應用程序名稱和請求的範圍。資源所有者可以選擇同意或拒絕此授權請求。

3.同意後,授權伺服器將使用授權碼重定嚮應用程序。

HTTP/1.1 200 OKContent-Type: application/jsonCache-Control: no-storePragma: no-cache {"access_token":"aMQe28fhjad8fasdf","token_type":"bearer","expires_in":3600,"refresh_token":"OWWGE3YmIwOGYzYTlmM2YxNmMDFkNTVk","scope":"mail.read+offline_access"}

4.然後應用程序可以使用授權碼並從授權伺服器請求訪問令牌。訪問令牌可以在設定的時間段內使用,從API資源訪問用戶的數據,而無需資源所有者採取任何進一步的行動。

三、濫用漫延

OAuth應用程序提供了一個理想的載體,攻擊者可以通過它攻擊目標並獲取電子郵件、聯繫人和文件等機密數據。攻擊者可能會創建惡意應用程序,並使用獲取的訪問令牌通過API資源獲取受害者的帳戶數據。訪問令牌不需要知道用戶的密碼,並能繞過雙因素認證。此外,刪除攻擊者訪問權的唯一方法是顯式撤銷對OAuth應用程序的訪問。為了獲得OAuth令牌,攻擊者需要通過社會工程說服受害者點擊「同意鏈接」並同意該應用程序。由於所有受害者交互都位於合法資源提供者(例如Microsoft)擁有的網站上,因此未經訓練的用戶很難區分合法的OAuth應用程序和惡意應用程序。

雖然可能不是此類活動的首例,但在2016年總統選舉期間OAuth濫用首先引起了媒體的關注。FireEye在M-TRENDS 2017 report中介紹了APT28濫用OAuth,獲取美國政客的電子郵件。從那以後,FireEye已經看到這種技術已經蔓延到尋求在Gmail中傳播的商品蠕蟲。

四、PwnAuth

PwnAuth是我寫的一個Web應用程序框架,它使企業更容易測試其檢測和響應OAuth濫用活動的能力。Web應用程序為滲透測試人員提供了一個易於使用的UI,管理惡意OAuth應用程序、存儲收集的OAuth令牌以及與API資源進行交互。通過創建其他模塊,應用程序用戶界面和框架可以很容易地擴展到其他API資源。雖然任何允許OAuth應用程序的雲環境都可以成為目標,但是PwnAuth目前使用一個模塊來支持惡意Office 365應用程序,捕獲OAuth令牌並使用捕獲的令牌與Microsoft Graph API進行交互。Office 365模塊本身可以進一步擴展,但目前提供以下功能:

· 閱讀郵件

· 搜索用戶的郵箱

· 讀取用戶的聯繫人

· 下載消息和附件

· 搜索OneDrive並下載文件

· 代表用戶發送消息

界面設計很直觀和友好。使用PwnAuth的第一步是創建一個Microsoft應用程序。這些信息必須輸入到PwnAuth(圖1)。

圖1:將一個Microsoft App導入PwnAuth

配置完成後,可以使用生成的「授權URL」對潛在受害者進行釣魚。點擊後,PwnAuth將捕獲受害者OAuth令牌供以後使用。圖2顯示的是一個受害者的列表。

圖2:在PwnAuth中列出受害用戶

一旦PwnAuth捕獲了受害者的OAuth令牌,就可以開始訪問他們的數據。例如,使用PwnAuth向受害者的郵箱查詢包含字元串「password」的所有消息(圖3)。

圖3:搜索受害者的郵箱

有關使用的更多信息,請參閱GitHub wiki 。

五、緩解措施

FireEye的技術包括基於網路的簽名以檢測潛在的惡意OAuth許可URL。攻擊者傾向於將某些範圍包含在可檢測到並標記的惡意應用程序中。社會工程培訓的機構可以將OAuth濫用情況添加到其現有計劃中,以更好地向用戶介紹此攻擊向量。此外,企業可以採取措施來限制惡意OAuth應用程序的潛在影響並提高其檢測功能。依據API資源,企業可用的選項差異很大,但通常包括:

· 限制第三方應用程序可以請求的API範圍。

· 在企業中禁用第三方應用具有Cloud App Security的組織可以利用「應用程序許可權」功能查詢和阻止第三方應用程序。。

· 為應用程序實施白名單或黑名單。

· 對所有同意的應用程序查詢企業的用戶。

· 記錄所有用戶同意事件並報告可疑活動。

Office 365特別為管理員提供了一些選項:

· 擁有Cloud App Security的企業可以利用「應用程序許可權」功能查詢和阻止第三方應用程序。

· 管理員可以阻止對第三方應用程序的訪問。

· 管理員可以採取行動,如果他們認為惡意應用程序被授予訪問帳戶的許可權。

· 統一審計日誌記錄用戶何時同意第三方應用程序;但是,特定範圍和應用程序信息未記錄在日誌中。

我創建了一組腳本來幫助管理員在雲環境中搜索惡意OAuth應用程序。目前有一個腳本可以調查Office 365佔用者並計劃添加其他雲環境。

六、總結

OAuth濫用攻擊是一種危險且非傳統的網路釣魚技術,攻擊者可利用此技術獲取企業的機密數據。隨著人們將更多服務遷移到雲中,企業應小心鎖定第三方應用程序的訪問許可權,並確保其監控和檢測策略涵蓋應用程序許可授予。企業和安全專業人員可以使用PwnAuth來測試他們檢測和響應這種新型攻擊的能力。

本文翻譯自:fireeye.com/blog/threat如若轉載,請註明原文地址: 4hou.com/web/11776.html 更多內容請關注「嘶吼專業版」——Pro4hou

推薦閱讀:

嵌入式系統的安全技術分析(一)
Mac 和 OS X 系統適合二進位安全研究人員嗎?
信安入門神級書單 | Mark一下?
Nmap擴展開發(一)
揭秘阻止醫療設備攻擊的5個技巧

TAG:信息安全 |