成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Shield——一個防止在macOS上進行進程注入的應用程序

安全
最近有開發人員開發了一個基于Apple的Endpoint Security框架的應用程序(該應用程序的代碼托管在GitHub上),可以防止macOS上的某些進程注入技術。

 最近有開發人員開發了一個基于Apple的Endpoint Security框架的應用程序(該應用程序的代碼托管在GitHub上),可以防止macOS上的某些進程注入技術。但由于開發人員至今仍然沒有獲得生產端點安全性授權,因此無法發布已簽名的版本。如果你想使用它,你至少需要獲得開發端點安全授權。

         [[345086]]

在過去的兩年中,研究人員開始深入研究macOS安全性問題,隨著研究的愈加深入,該研究人員發現除了內存損壞漏洞之外,macOS的首要問題是在其他應用程序的上下文中運行代碼。其原因在于macOS的安全模型(實際上也包括* OS),每個應用程序都有一個權限列表,可授予該應用程序各種權限。如果我們僅使用第三方應用程序,則大多數情況是圍繞沙盒(例如,訪問網絡)或在沒有沙盒的情況下可以做什么,可以訪問哪個隱私(TCC)保護區域,例如攝像機,麥克風,消息等。在TCC的情況下,如果我們不擁有這些權限,即使我們以root身份運行,也無法訪問這些資源或位置。

對于Apple二進制文件,有數百種不同的Apple私有權限是第三方應用程序無法擁有的,例如,它們可以控制對SIP保護區域的訪問或加載內核擴展的能力。

要添加到此列表中,XPC跨進程通信的基本保護之一是控制誰可以與特定XPC服務進行通信的能力,尤其是在其中一個進程具有特權的情況下。對于蘋果公司來說,這通常是通過授權來完成的,而對于第三方而言,這是通過代碼簽名驗證來完成的。在這兩種情況下,如果我們都可以代表XPC客戶端運行代碼,就能夠與特權XPC服務進行通信。

該列表可以不停地進行,鑰匙串有時還根據代碼簽名來控制訪問。

這意味著,如果我們可以向應用程序中注入代碼,則可以獲得其權限,這就是為什么過程注入功能在macOS上受到嚴格控制的原因。蘋果公司在保護自己的應用程序方面做得很好,盡管有時他們也會有疏忽,例如CVE-2019-8805 。

不幸的是,第三方應用程序并不是很好。這就導致了大量的XPC漏洞,這些漏洞通常會允許用戶將其特權升級到root。繞過TCC進行攻擊的場景也很常見,攻擊者可以在攻擊中訪問敏感位置,例如:Microsoft AutoUpdate中的LPE或Zoom程序中的TCC繞過。 

流程注入通常可以歸結為以下3種主要情況:

1.通過環境變量進行dylib注入;

2.dylib劫持或代理;

3.通過任務端口注入Shell代碼:如果Electron應用程序在macOS上變得非常流行,則可以通過在調試模式下運行Electron應用程序或使用Electron特定的環境變量來注入代碼

巧的是本文的作者也是一位Mac用戶,當發現還有攻擊者能夠執行上述操作來發起攻擊時,他就決定編寫一個小型應用程序來防止這些攻擊。

開發過程

隨著KEXT(kext文件是一個Mac OS X內核擴展,常見于Hackintosh。它們通常用于設備驅動程序,運行于系統的核心基底。)的消失,研究人員決定嘗試使用新的Endpoint Security框架。其實必須首先承認,本文的作者不認為自己是開發人員,而且從未真正從事過開發工作,因此可能編寫了拙劣的代碼,盡管如此,開發人員還是盡最大努力創建了一個可靠的應用程序,以確保可以優化代碼。

在這種情況下,我非常地依賴于Patrick Wardle開發的代碼,該代碼是他的Objective-See工具的開源部分。2018年美國國家安全局前雇員、Digita Security首席研究官Patrick Wardle在蘋果最新High Sierra操作系統發現一個關鍵的零日漏洞,允許安裝在目標系統中的惡意應用程序虛擬“點擊”安全提示,獲得內核訪問權限并完全控制電腦。實際上,經過一些修改,研究人員重用了他的過程監控庫和來自LuLu的一些代碼,這對理解如何創建ES(端點安全)代理以及如何將所有內容組合在一起有很大幫助。

另外,研究人員還花了一些時間研究Stephen Davis的Crescendo代碼庫。盡管它是用Swift編寫的,而我是用Objective-C編寫的Shield,但它幫助我了解了ES的其他方面,比如與代理通信,以及如何安裝它,如果我們不把它作為守護進程運行,而是作為系統擴展。

經過多次編碼,研究人員對編碼結果已經足夠滿意了,且已經向公眾發布了。不過研究人員并不有多了解了Objective-C、編碼、用Xcode進行項目制作、用Xcode構建應用程序等知識,從研究人員最初將Shield作為ES守護程序運行的最初計劃,到現在它作為系統擴展(SE)運行,其中包含主要的應用程序邏輯,這也就是進行保護的地方,在菜單欄中有一個幫助程序可以自動運行它的輔助工具,進而通過主要應用程序來控制SE。

目前發布的版本只是測試版,因為只有研究人員對其進行了測試,盡管過去3個月這個測試版本并沒有遇到任何問題,但仍然只有普通用戶權限。不過經過多次努力后,研究人員已經成功地通過代碼注入技術實現了#1和#3,阻止dylib劫持仍然在待開發階段。除此之外,該應用程序還可以防止某些特定的注入。

雖然研究人員嘗試了添加許多注釋,但稍后還會為代碼創建一個文檔,以便其他人更容易參與進來。現在,讓我們看看如何使用這個程序,它能做什么。

使用方法

這個應用程序沒有一個普通的窗口模式應用程序,它只是菜單欄。當我們啟動它時,將看到一個新的菜單欄圖標,以一個點的形式顯示出來。

Shield——一個防止在macOS上進行進程注入的應用程序

點擊它,彈出一些基本控件,如下所示。

Shield——一個防止在macOS上進行進程注入的應用程序

在真正進行實操之前,還需要安裝系統擴展。當我們點擊相關菜單項時,就像安裝新的內核擴展一樣,需要在安全性和隱私權方面獲得批準。一旦獲得批準,它將被加載,但是到目前為止,我不會自動啟動ES客戶端,因此默認情況下它將停止。

如果要卸載代理,則需要點擊相關菜單選項。請注意,它不會刪除應用程序,只會卸載SE。為此,我們需要重新啟動macOS,因為在Catalina中,macOS如果不重新啟動就無法完全刪除SE。

安裝SE后,我們可以通過點擊“開始”或打開首選項并切換“開始/停止”來啟動Endpoint Security客戶端。按鈕的狀態是通過SE刷新的,不過在實操中很少遇到沒有正確執行的情況,但是重新打開首選項有助于 :) bug #1。

Shield——一個防止在macOS上進行進程注入的應用程序

阻止模式意味著,如果它檢測到下一步配置的注入嘗試,它將對其進行阻止。如果環境變量通常在啟動過程時發生,這意味著作為注入目標的過程無法啟動,將被阻止。如果嘗試進行注入,我們將收到一個通知,并將其記錄到/ Library / Application Support / Shield / shield.log。如果我們關閉這個選項,我們仍然會收到警報和日志。

下一個選項是監控Apple二進制文件的能力,目前這是不可更改的,平臺二進制文件將被忽略。造成這種情況的主要原因是,它們會執行大量的task_for_pid調用,僅處理這些操作而沒有任何操作就會增加20%的CPU使用率。現在,這些進程很早就被刪除了,因此我們不會浪費一點CPU使用率。此時,研究人員采用了一個改進邏輯的任務,這樣系統二進制文件也可以被監控。我認為目前這還不是一個大問題,因為如前所述,通常平臺二進制文件都能很好地抵御這些攻擊。

接下來,我們就可以啟用或禁用特定的保護。

撰寫本文時,環境變量注入正在監控以下三個變量中的任何一個是否存在:DYLD_INSERT_LIBRARIES、CFNETWORK_LIBRARY_PATH、RAWCAMERA_BUNDLE_PATH和ELECTRON_RUN_AS_NODE。如果其中任何一個出現,應用程序將不會啟動。我發現這可能會給Firefox帶來某些漏洞。

當一個進程想要獲取另一個任務的端口時,則下一個設置用于task_for_pid調用。這將阻止調試,因為調試器將執行此調用。因此,如果你需要調試,可能需要臨時關閉該選項。

最后一個特定于Electron應用程序,通常,可以使用——inspect命令行參數在調試模式下啟動Electron應用程序,然后向其中注入代碼。至此我們也只是檢查是否存在此參數,如果是,則將阻止該應用程序。

其實有一個選項可以在啟動時自動啟動Shield主應用程序(菜單項),這將安裝和卸載一個標準的登錄項。

要注意的是,由于研發者開發的這個程序還只是一個測試版的程序,因此,其中沒有實現自動運行Endpoint Security客戶端的功能。即使主應用程序在啟動后啟動,你也需要啟動ES客戶端。一旦獲得足夠的用戶反饋,研發者將添加此選項。

所有配置的首選項都保存在/Library/Application Support/Shield/com.csaba.fitzl.shield.preferences.plist中。

本文翻譯自:https://theevilbit.github.io/shield/如若轉載,請注明原文地址:

 

責任編輯:姜華 來源: 嘶吼網
相關推薦

2023-08-01 08:00:00

SQLWeb應用安全

2011-05-11 10:58:39

iOS

2011-03-10 10:45:47

Azure“Hello Worl

2015-11-05 10:16:33

2018-07-30 13:36:13

MacO開源應用程序

2011-03-15 19:45:27

Windows Azu

2023-08-11 07:59:15

2023-05-19 08:49:58

SQLAlchemy數據庫

2010-08-13 13:05:30

Flex應用程序

2011-06-09 09:31:40

Qt 實例

2013-01-11 14:45:43

iOS開發移動應用iPhone

2013-05-13 09:31:29

Web App開發WebApp

2022-10-21 14:21:46

JavaScript筆記技能

2021-12-29 11:53:13

jokerGoogle Play惡意軟件

2011-03-14 14:47:50

2011-03-14 15:14:10

AzureFacebook營銷式應用程序

2011-03-14 15:10:10

AzureFacebook

2020-10-11 20:54:39

Python開發Docker

2023-09-21 08:00:00

ChatGPT編程工具

2021-07-14 17:39:46

ReactRails API前端組件
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中文字幕 视频一区 | 三区四区在线观看 | 亚洲www啪成人一区二区麻豆 | 国产小视频在线 | www日本在线播放 | 日韩精品久久久久 | 久久精品99国产精品日本 | 99在线精品视频 | 中文字幕乱码视频32 | 亚洲人在线观看视频 | 国产乱码精品一区二区三区中文 | 欧美日韩在线免费 | 精品久久久久一区二区国产 | 久久人| 四虎成人免费电影 | 久草视频观看 | 91中文字幕在线观看 | 欧美日韩久久久 | 粉嫩一区二区三区性色av | 免费的色网站 | 成人在线视频一区 | 欧美区在线 | 91久久精品一区二区二区 | 国产高清视频在线观看播放 | 91在线看| 91精品国产综合久久久亚洲 | 在线看成人av | 夏同学福利网 | 欧美网站一区 | 最新免费视频 | 久草在线 | 国产一区二区在线免费 | 亚洲二区视频 | 久久精品视频在线观看 | 嫩草91在线| www日本在线播放 | av网站在线看| 国产精品精品视频一区二区三区 | 波多野结衣一区二区三区在线观看 | 91精品国产91久久久久久丝袜 | 亚洲91视频 |