vvun91e0n · 2015/12/23 11:13
前幾日,看了乙份報告,是美國網路安全公司bit9發布的:《2015: the most prolific year for os x malware》
報告主要的內容就是說說2023年os x平台惡意軟體的情況。bit9的研究團隊進行了10周的分析研究,分析了1400個惡意軟體樣本。給出了下面這張圖,可見,2023年惡意軟體樣本數量是前5年惡意樣本數量之和的5倍。這估計要亮瞎蘋果公司的眼。mac越來越火。也越來越不安全了。
報告指出的重點有:
現在惡意軟體的啟動方式(persistence mechanisms)使用傳統unix技術的越來越少,基本沒有了。大部分惡意軟體使用os x提供的新的啟動機制了。
感染持續增長,但是惡意軟體的複雜度卻不是太高。
主要的啟動方式有7種。
由於os x平台上惡意軟體多樣性不如windows平台,所有相對的檢測方法就簡單一些,因為需要需要檢查的地方比windows平台的要少。
接下來就來談談這啟動的事,看看是哪7種**是黑客所喜歡的:
如上7種**你知道幾種(大神就自動飄過)。
其實這兩種啟動方式可以一起介紹。啟動方式基本相同,只是有些區別而已。
從圖中可以看到daemons和agents都是由launchd程序啟動的。
建立乙個daemons或agent是非常簡單的,就是建立乙個普通的二進位制可執行檔案。然後將自己的屬性列表檔案(.plist)放置到daemons或agent的配置目錄中:
目錄用途
/system/library/launchdaemons
系統本身的守護程式
/library/launchdaemons
第三方程式的守護程式
/system/library/launchagents
系統本身的**程式
/library/launchagents
第三方程式的**程式,這個目錄通常為空
~/library/launchagents
使用者自有的launch**程式,是有對應的使用者才會執行
將此.plist
檔案拷貝到/library/launchagents
目錄(拷貝之後的檔案擁有者為root),就可以在重啟後,自動啟動計算器。
可以使用
#!bash
sudo plutil -lint /path/to/com.test.plist
複製**
來檢測plist檔案格式是否有問題。
plist中主要的字段和它的含義:
cron job是乙個隨unix而來的啟動機制。在os x中已經不被推薦使用。蘋果公司推薦使用launchd命令來完成計畫任務。但是os x仍然支援cron。那黑客們當然不會嫌棄。
cron可以用來在設定的時刻執行乙個命令或是指令碼。如果惡意軟體是python編寫的,可以直接執行python命令。
crontab可以直接讀取檔案作為輸入來配置:
如圖 用crontab載入文字persist
儲存文字內容為:
該配置為每分鐘執行open命令開啟計算器。
上圖為檔案格式,多個任務可以分多行給出,可以用#進行注釋。
[email protected]在os x 10.10上測試開機啟動計算器沒有成功!用時間間隔來啟動時可以的。
可以用crontab引數
login items是蘋果公司對需要開機執行的應用程式推薦的啟動方式。
有兩種使用login item的方式:
使用shard file list。
使用service management framework。針對sandbox效能的程式[link]。
第一種方式:
使用第一種方式啟動的login items在系統偏好設定->使用者和群組》登入項裡面可以檢視並設定
在這個介面可以新增,刪除登入項。
另外就是通過程式來新增:
#!bash
lssharedfilelistitemref item = lssharedfilelistinsertitemurl(loginitems, klssharedfilelistitemlast, null, null, url, null, null);
cfrelease(item);
cfrelease(loginitems);
複製**
有的惡意軟體就是利用**新增login item的方式來實現自啟動的。
第二種方式:
使用login item的程式如果是用了沙盒技術就會因為許可權問題無法使用第一種方式了。必須使用service management framework。要求有兩個程式:乙個主程式乙個helper程式。helper程式存放在主程式的contents/library/loginitems
目錄下。主程式在執行時呼叫smloginitemsetenabled()
函式來設定helper程式為自啟動程式。具體可以參考[link]
[link]。
這是蘋果公司不推薦的啟動方法。但是在現在版本中還沒有失效。
乙個startup item是乙個特殊的檔案。可以在系統boot程序中得到執行。
建立過程如下:
1,建立目錄
startupitems存放在以下兩個路徑下:
2,生成執行程式或指令碼
程式或指令碼必須和目錄名一樣,可執行檔案需要獲得root許可權。
一般使用shell script,因為其建立和更新更為簡單。
下圖是乙個例子:
開機啟動後系統會自動向指令碼給出start作為引數。「$1」 表示傳給該指令碼的第乙個引數
startservice(), stopservice(), restartservice()
當可執行檔案接收到的引數為start,stop或者restart時,執行相對應的函式。
3,建立startupparameters.plist
在目錄中建立該檔案startupparameters.plist
是乙個屬性列表。
關於plist中主要的字段
可以參考:
二進位制感染實現駐留。
原理和windows系統下的pe檔案感染一樣。修改二進位制檔案獲取執行許可權執行自己的**。
因為os x允許未簽名的二進位制檔案執行。所以該方法依然有效。且感染的方式多種多樣。其中最簡單的就是修改入口點了。通過修改mach-o檔案的load commands。新增新的segment來實現**的注入感染。
針對啟動項的檢測,bit9的報告針對企業和個人給出了建議。
這裡給大家介紹下針對個人mac的檢測方法。
除了手動針對啟動項的位置進行檢測外,你當然還可以用用指令碼。不過推薦乙個不錯的工具
該工具自動掃瞄9中啟動方式。
讀者可以利用此工具來進行乙個快速的檢測。
該工具的作者還開發了一款啟動項動態監控軟體
可以動態的攔截啟動項的新增。大家不妨試試。
mac osx的開機啟動配置 www.tanhao.me/talk/1287.h…
在sandbox沙盒下實現程式的開機啟動 www.tanhao.me/pieces/590.…
軟體文件編寫那些事
對於文件的編寫,你了解多少呢?下面描述了一些我不知道的問題,看看你知道嗎?一 總體來說,每乙個文件在目錄和引言之間,都要有乙個變更記錄表 當然,變更記錄表的形式不固定,可以自己設計,但是主要的幾項不能丟掉,如 修改記錄,變更時間,修改人,驗收人 等。在文件的編寫時,你的文件標題是 系統設計文件嗎 還...
什麼是惡意軟體分析?定義和概述惡意軟體分析過程
惡意軟體分析是了解惡意軟體如何運作以及給定惡意軟體的任何潛在影響的過程。惡意軟體 可以根本不同,知道惡意軟體可以具有許多功能是必要的。這些可能以病毒,蠕蟲,間諜軟體和特洛伊木馬的形式出現。每種型別的惡意軟體在使用者不知情或未授權的情況下收集有關受感染裝置的資訊。用於惡意分析的案例 計算機安全事件管理...
Scrum那些事 什麼是Scrum
在上面已經展示了scrum框架的核心成員 3355 這裡再解釋一下 courage 勇氣 需要有擁抱變化的勇氣。commitment 承諾 團隊成員為合理的目標做出承諾並確保成功。在scrum中我們把目標在每個sprint中切分,通過每個sprint的成功來並確保整體的成功。focus 關注 清楚定...