當前位置:
首頁 > 新聞 > 基於USB armory 製作一個USB惡意軟體分析器

基於USB armory 製作一個USB惡意軟體分析器

前一段時間,一位朋友在自己電腦上插入了一個USB,但不巧的是,USB里含有病毒,結果電腦就中毒了……出於好奇和友情,我決定分析一下其中的惡意軟體。於是我用USB armory在我的電腦上建立了一個安全隔離沙箱來分析它。

USB armory是由 Inverse Path 設計的一款開源硬體,它是一款U盤大小的微型計算機,通常受到信息安全人士和計算機極客的喜愛。它可以提供ARM A8 800 MHz CPU和512MB RAM,並且具有足夠的功能來實現各種有趣的滲透測試。

在本文中,我發現的最有趣的功能之一是其安全啟動的功能,稱為HAB(High Assurance Boot),通過它可以更好地將USB armory的作用發揮到極致。有趣的是,上周我還聽到過有一個有關此功能的安全建議。

好了,讓我開始分析吧。假設現在安全啟動中沒有漏洞,利用USB ARMORY我可以將PKI密鑰融合到安全引導中,並且只需更換每個分析目標的microSD卡,另外目標惡意軟體沒有很多方法來實現硬體持久性。

要注意的是,在打造USB分析器時,你還需要一個主機適配器,如果沒有它,你將無法實現最後的目標。

USB armory可以在主機和非主機兩種模式下使用。非主機模式是默認模式,允許你將USB armory插入USB埠,並可通過IP地址進行訪問(使用CDC乙太網模擬實現此功能)。USB armory基本上可以插入任何計算機並將另一台計算機通過它對接上。這種配置對於託管安全數據,某種HSM,安全通訊,TOR路由器,密碼管理器,安全的比特幣錢包等都是很有用的。

而主機模式則是本文要使用的模式,在這個配置中,USB ARMORY是一台獨立的計算機,不過,我可以附加其他USB設備,例如鍵盤,USB顯示器,乙太網或WiFi加密狗等。只要有Linux驅動程序,你就可以將它們附加到USB ARMORY。通過這種方式,構建一個小型安全隔離沙箱的計算機是非常容易的。

由於之前,我曾為旅遊中所連接的WiFi熱點建立過防火牆,其具體想法就是將一個WiFi介面連接到公共網路,另一個WiFi或乙太網加密狗連接到我的個人設備。通過這種方式,你就可以將你的設備與公共網路隔離開來,這樣就避免了潛在的惡意攻擊。除此之外,你還可以輕鬆利用這種方法添加TOR路由和任何其他好玩的功能,比如利用DNS隧道繞過煩人的機場網路等。

所以藉助上面的經驗,我也可以建立基於USB armory的分析器。

硬體要求:

USB ARMORY

USB ARMORY

主機適配器

串列到USB適配器

USB 2.0 / 3.0HUB

JUE130 USB 3.0千兆乙太網適配器

一個或多個4GB + microSD卡兼容性列表

至少有一條micro-USB電纜(用於將主機適配器連接到電源)

電池電源組

軟體要求:

Debian 8.x主機

設計如下:

在這種設計中,電池電源組用於為所有電源供電,但如果能自由移動,則自供電的USB集線器也可以正常工作。 USB ARMORY主機適配器也可以作為USB condom使用(只能充電的數據線),這意味著我可以安全地從普通的USB埠供電,如果需要的話,電池組還可以為USB供電,如果連接的設備太耗電,例如大硬碟,則可能需要額外的電源。 USB ARMORY連接到主機適配器的一端,而USB集線器連接到另一端,剩餘的USB設備則連接到USB集線器。 USB乙太網適配器可以連接到我要複製數據的網路中,以提高防火牆在USB ARMORY網路和我想要訪問的任何網路之間的傳輸安全。

另外,反向路徑和其他Linux發行版有幾個預編譯的安裝映像,它們的默認配置是非主機模式。要啟用這些映像上的主機模式,請參閱本文檔https://github.com/inversepath/usbarmory/wiki/Host-adapter。

我沒有在本次使用預編譯的映像,因為在Linux內核沒有組件支持我買的USB乙太網適配器(雖然製造商提供的驅動程序可用),所以需要我用軟體來進行自定義設置。最近的反向路徑提供了一個Makefile來構建基於Debian的映像(而不是像以前一樣複製和粘貼一系列命令)。

於是,我自定義了一個名為Armory Sandbox的 fork()函數,還給它增加了一些額外的取證軟體包,還有一個Linux內核配置,其中包含了所有必需的驅動程序,例如USB乙太網適配器,還有其他文件系統,例如HFS +。這些配置,都是為了支持我在目標USB設備中找到常見文件系統。如果在實踐中,你還有任何特定要求,就需要生成新的內核配置文件並更新包含的內核配置文件。默認的Armory Sandbox內核配置位於kernel_conf / armorysandbox_linux-4.9.config。如果要更新內核配置,你需要執行以下操作:

KBUILD_BUILD_USER=usbarmory KBUILD_BUILD_HOST=usbarmory ARCH=arm CROSS_COMPILE=arm-none-eabi- make menuconfig

保存配置文件並複製舊配置文件或直接將其保存在內核配置,如果你不這樣做,那麼ARM CPU將為主機(在這種情況下為x86)建配置文件,如果你使用非graphical內核配置模式則更好,這樣就可以使用其他make配置選項。

但在構建自己的映像之前,我還需要在Debian主機中安裝一些所需的軟體來構建根文件系統所需的ARM 交叉編譯器和軟體。

sudo apt-get install bc binfmt-support bzip2 gcc gcc-arm-none-eabi git gnupg make parted qemu-user-static wget xz-utils zip sudo debootstrap

由於Makefile要驗證內核和U-Boot簽名,因此我需要導入GPG密鑰:

現在我就可以交叉編譯ARM目標的代碼。

要開始構建Armory Sandbox映像,首先要將repo複製到Debian主機中:

git clone https://github.com/gdbinit/armorysandbox

編輯Makefile並將你自己的ssh密鑰添加到SSH_KEY變數中。

在實踐中,你可以將默認的Debian鏡像更改為更快的鏡像,只需編輯DEBIAN_MIRROR變數即可。你也可能希望將默認的3500Mb圖像大小設置為變數IMAGE_SIZE。假設用的是4GB的最小microSD卡。如果內存更大,我可以調整分區的大小以後的FAQ。如果你不想調整大小,你可以更改此選項,只不過需要更長的時間才能寫入microSD卡。

默認帳戶是usbarmory,密碼與用戶名相同。你應該更改默認密碼(編輯Makefile,查找CHANGEME字元串)。

下一步就是通過四個步驟完成最終構建原始映像:

1.Debian文件系統和軟體包,

2.Linux內核,

3.U-Boot的

4.將內核和U-Boot安裝到原始映像中。

如果一切順利,你最終得到一個armorysandbox-debian_jessie-base_image-YYYYMMDD.raw映像文件。現在我只需要將映像文件寫入microSD卡:

Linux(使用dmesg驗證目標終端):

sudo dd if=armorysandbox-debian_jessie-base_image-YYYYMMDD.raw of=/dev/sdX bs=1M conv=fsync

Mac OS X(使用diskutil列表驗證目標終端):

sudo dd if=armorysandbox-debian_jessie-base_image-YYYYMMDD.raw of=/dev/rdiskN bs=1m

你不需要關心在microSD卡中分區的問題,此命令將擦除microSD卡中的所有內容,生成的原始映像已包含必要的分區信息。你要做的就是按Enter鍵,仔細檢查目標設備。

dd完成寫入映像後,然後就可以從主機中取出microSD卡,將其插入USB ARMORY。打開USB ARMORY的電源並連接串列控制台,並驗證其是否正確啟動。

默認的IP地址是10.1.0.1/24,沒有任何配置的網關(至少默認情況下我不希望這個設備數據包被傳送到任何地方)。你只需向使用網路的設備添加IP別名即可訪問USB armory沙箱。

Mac OS X:

sudo ifconfig en0 alias 10.1.0.2 255.255.255.0

如果這個網路不行,只需編輯Makefile,然後再通過串口控制台登錄,然後修改/ etc / network / interfaces配置文件即可。

如果要啟用Secure Boot功能,應閱讀Inverse Path安全引導文檔。請記住,由於本文提到的安全問題,此功能目前不太有利用價值,但在某些場景中仍然有用。但具體我無法評估,例如某些惡意軟體/漏洞可能能夠對安全啟動進行攻擊,並以某種方式攻擊我的設置。本文之所以沒有包含這個設置的最大的原因是這個功能涉及永久性和不可逆轉的功能。

要添加軟體包,你需要編輯Makefile並使用qemu-debootstrap命令修改該行。如果你真的需要有問題的程序包,並且無法構建映像,則可以隨時通過apt-get或dpkg添加它們(可以手動上傳它們,也可以將armory連接到Internet)。

當Armory Sandbox完成啟動時,你可以通過串列控制台或SSH登錄,插入任何支持的USB設備,掛載並分析其文件系統,或將其映像到另一台設備上進行分析。完成分析後,你可以放棄microSD,如果你想要真正安全,或者將其擦除並重寫你構建的Armory Sandbox映像的話。就會帶來了一個額外的問題,如何安全地擦除microSD卡?

本文的目的是首先嘗試建立一個隔離的USB分析系統。例如,Circl.lu已經使用Raspberry Pi設備構建了CIRCLean USB Sanitizer。該設備的問題是它嘗試自動將不受信任的文檔轉換為另一種格式,對我來說更重要的是它能使用相同的「隔離」設備訪問感染的USB和好的USB。我更喜歡通過網路來解決問題,因為我可以在隔離設備和台式機之間添加防火牆。此外,我不想自動化任何數據轉換,我只想要一個安全隔離網閘。

點擊展開全文

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 嘶吼RoarTalk 的精彩文章:

惠普印表機爆遠程命令執行漏洞,黑客可任意操縱你的印表機
強大的內網域滲透提權分析工具——BloodHound
美國計算機安全應急響應組:需警惕朝鮮黑客組織「隱藏眼鏡蛇」
控制域名忘記續費,三星數百萬台手機陷入「任人宰割」境地

TAG:嘶吼RoarTalk |

您可能感興趣

MARUI-PlugIn為三維創作軟體Maya、Blender提供VR插
ChachaDDoS惡意軟體分析
針對間諜軟體InvisiMole的RC2CL模塊分析
基於DNS通信的Powershell惡意軟體DNSMessenger分析
Epson和Crestec合作將PORECT AR軟體帶入Moverio系列
賦能軟體定義 SUSE Linux Enterprise 15要做IT轉型的「橋樑」
勒索軟體Kraken Cryptor RaaS分析
讓VR變簡單 MAGIX發布首款VR軟體Photostory Premium VR
Revenge RAT惡意軟體升級版來襲
淺析用於挖掘虛擬幣的惡意軟體變體CoinMiner-FOZU!
Unity為iOS和安卓打造AR開發軟體:AR Foundation
FAUXPERSKY惡意軟體分析
Bashlite IoT惡意軟體更新
惡意軟體利用Windows組件WMI和CertUtil攻擊巴西
最新 Mac 惡意軟體 OSX/CrescentCore 被發現
Vobling為HTC Vive Pro Eye提供眼動追蹤軟體分析工具
開發出CRISPRdisco軟體,對CRISPR/Cas系統進行鑒別和分類
RPA軟體之Automation Anywhere研究
PCB layout用啥軟體比較好?Cadence or AD?
Wacom公開與Magic Leap合作AR創作軟體細節