開發二進位文件靜態快速分析工具(續)

2020-12-18 酷扯兒

本文轉載自【微信公眾號:MicroPest,ID:gh_696c36c5382b】,經微信公眾號授權轉載,如需轉載與原文作者聯繫

幾個月前,寫了這個「二進位文件靜態快速分析工具」,框架已經搭建完成,一直在添磚加瓦之中,加入了一些功能,讓一鍵式成為靜態分析的「傻瓜式」自動化操作,還是給大家一睹為快吧。

「目前按照可擴充式進行搭建,一直以來都有將python納入其中的想法,但考慮到python的庫非常討厭,在不同人的機器上部署程度不同,安裝下載吧有時出現下載不下來的情況,處理起來受環境因素影響較大,所以遲遲沒有動手將python加入其中。這也制約了這個工具的構建程度。」,這是當時寫下的一段設想,到目前為止,依然沒有形成一個成熟的想法,因為python實在是太麻煩了,對環境的依賴太大,還是沒能想到一個好的方法。

現在這塊的做法我認為有兩類,「一是公司應該是做成沙箱的樣式,底層直接各種Hook、監控網絡行為、註冊表之類的吧;二是基於二進位惡意樣本的深度學習(這個非常感興趣),將正負樣本按1:1的比例轉換為圖像。將訓練好的圖像分類模型作為遷移學習的輸入,在GPU集群中進行訓練。我們同時訓練了標準模型和壓縮模型,對應不同的客戶需求(有無GPU環境)。基於二進位文件的深度學習無需沙箱環境,深度學習模型記住的是病毒二進位文件中的有效特徵,而不是特徵碼,所以具有更好的通用性。在實際測試中,即使一個月不更新模型,對新衍生的病毒樣本也有較高的識別能力。」

我的理念是,將這個靜態分析工具做成Docker,可以嗎

1、最初時的雛形:

萌生想法那一刻到搭建完框架,並有了最初的三個功能;

2、現在的模樣:

已經形成了幾大模塊,主要是對二進位文件進行「靜態分析、文件頭、資源節、可疑串、編譯器、安全區鏈、惡意軟體軟體」等檢測工作。

3、實例效果:

選取一個實驗材料中的例子,

截圖很長,內容很多,要慢慢放大了看,才能看到其中的內容。通過對樣本的分析結果來看,分析提取出來的數據較為精準。抽取出的內容,可直接查看,也可供導出,可以說基本達到了預期的效果,給我的分析工作省了不少力氣。

靜態分析其實在惡意軟體的分析過程中還是非常重要的一個環節,但一直以來都是簡單化的處理,散兵作戰,沒有形成自動化,一方面是加殼的存在讓靜態分析成為了鏡中月水中花;二是還是不太重視靜態分析的發展,草草了事。總體來說,靜態分析的缺點還是比較明顯的,至多也是利弊各半吧,在實際工作中還是要綜合把握為好。

基於深度學習的這種檢測,我還是不具備條件的,以後碰到這方面的人再請教吧。

對於要做成Docker的想法,慢慢醞釀吧,軟體的功能還在增加中,讓靜態分析成為一鍵式分析。

相關焦點

  • PHP 二進位打包工具 phiwrapper 發布 1.0 版本
    phiwrapper 是一個用於打包胖「二進位」的工具phiwrapper可以通過batsh使得同一文件包含不同平臺的二進位,可以在不同平臺運行:例如,使用phiwrapper打包 Windows 的 PHP PE 二進位和,linux的ELF二進位以及php代碼,在Windows下可以雙擊運行file.bat文件開啟服務,linux下可以用sh
  • Linux elf文件混淆加密工具
    ELF 全稱 「Executable and Linkable Format」,即可執行可連結文件格式,目前常見的Linux、 Android可執行文件、共享庫(.so)、目標文件( .o)以及Core 文件(吐核)均為此格式。
  • 二進位小總結
    計算機中通過高低電平表示1或者0,這樣就可以表示一個二進位的數值。一個1或者0表示的數值位稱為一個bit,而計算機中存儲和傳輸數據的最小單位是一個字節(byte)也就是8個bit,所以說計算機所有計算本質上都是基於二進位。在計算機中,我們可以使用1個或者多個字節存儲一個數,但無論是多少個字節,其大小肯定是固定的,同時其所能表示的數值的範圍也是固定的。
  • 大跌眼鏡:python print竟然不能輸出二進位內容
    前幾天收到一個朋友的私信,他使用python開發cgi程序(這個方向實在是比較冷門),在讀取png文件並輸出的時候,遇到了讓人無法理解的兩個bug,小編花了一上午的時間,各種查資料,終於幫他解決了問題。朋友們若是有程序方面的問題也可以私信小編的哦,小編有空的時候一定會幫忙解決的。
  • FireEye紅隊工具失竊事件跟進分析
    1.概述 安天CERT利用FireEye的開源虛擬機測試套件CommandoVM線索與公開的規則對樣本庫進行掃描篩選,梳理了一些疑似FireEye的失竊工具並結合情報對工具進行初步分類:基於開源項目的工具、基於內置Windows二進位文件的工具(利用白文件實現免查殺功能的工具)、FireEye
  • 基於netX90晶片實現PROFINET從站開發(二)
    本文為大家介紹netX90作為基於STM32的配套晶片,實現PROFINET從站開發。生成硬體配置二進位文件         netX90作為配有主CPU的通訊處理器時,不在啟用其內部idpm,而是通過SPI的方式連接到主機,所以在硬體配置中有不同,需選擇hardware_config_spm.xml生成二進位硬體配置文件,如下圖所示:          3.
  • 如何用Git工具發現和解決開發項目中的痛點
    在日常開發和項目管理過程中往往不可避免地存在很多痛點。如果能及時發現和解決掉這些問題,可以極大提高開發我們的開發效率和減輕項目的技術債務,減少項目風險。很多減輕技術債務的工具都是預防性的。比如編譯器,lint,靜態分析工具等。
  • V (Vlang) 首個主要版本 0.2 發布,安全快速可編譯的靜態語言
    部分更新亮點 通過啟用-autofree參數對 compile-time 內存進行管理(計劃在 0.3 中默認啟用) 提供對 iOS 和 Android 的早期支持 引入 IO 流 引入 channel 和 lock 引入內聯結構體 (Struct embedding) 支持通過 GitHub Actions 自動構建和部署 Linux/Windows/macOS 的 V 二進位文件
  • 命令行工具開發:如何快速實現命令行提示?
    阿里妹導讀:對於稍微複雜一些的命令行工具,命令行的提示功能必不可少。那麼對於不同語言的開發者,有沒有一種簡單快捷的實現方式呢?本文分享一種快速實現的方法,使用YAML文件定義命令行工具的使用規範,再通過工具自動生成各種shell的命令行提示腳本,最後分享一些至關重要的命令行解析器。
  • RION——一種快速、緊湊、通用的數據格式
    字節欄位用於「非結構化」二進位數據。例如,如果需要在RION中嵌入音頻或視頻文件(或者任何其它類型的文件或二進位數據),可將其嵌入字節欄位中。這樣可以高效傳輸二進位數據。布爾型欄位可將值表示為true或false。正整型和負整型表示正整數和負整數。正整型是編碼的,只包含有效字節。
  • gf-cli v0.7.4 發布,GoFrame 開發工具鏈
    大家好啊,GoFrame框架隆重推出了開發工具鏈項目,該工具鏈通過CLI命令行工具提供,工具開源項目地址:
  • 亞信安全:從FireEye紅隊攻擊工具洩漏事件看"立體化"防禦
    紅隊被盜工具分為四類:1. 基於開源項目的工具:這些紅色團隊工具是開源工具的略微修改版本,佔比35%。2. 基於內置Windows二進位文件的工具:這些工具使用稱為LOLBIN(不落地二進位文件)的內置Windows二進位文件,佔比8.3%。
  • 亞信安全:從FireEye紅隊攻擊工具洩漏事件看「立體化」防禦
    基於開源項目的工具:這些紅色團隊工具是開源工具的略微修改版本,佔比35%。 2. 基於內置Windows二進位文件的工具:這些工具使用稱為LOLBIN(不落地二進位文件)的內置Windows二進位文件,佔比8.3%。 3.
  • 《武士零》機器人二進位彩蛋怎麼樣 二進位彩蛋介紹
    導 讀 在武士零一下中機器人二進位彩蛋究竟怎麼樣呢?相信不少小夥伴們都是非常好奇的,那麼想了解的話下面就讓我們一起來看一下吧~!
  • 遊戲修改大法 16進位要了解_應用_電腦愛好者
    相對於二進位的0,1,它可以在較短的代碼內更多的信息,比如255擁16進位寫成FF,二進位就要寫成11111111(不用數了,是8個1)。顯然16進位用來一些表達一些複雜設置、大型數字更方便。這裡要注意三個問題,首先是10進位的轉換,我們可以使用https://tool.lu/hexconvert/等在線轉換工具。
  • 二進位中 1 的個數(劍指 Offer 題解Java版)
    二進位中 1 的個數題目連結題目描述思路一. 利用Integer類的bitCount()二.二進位中 1 的個數題目連結NowCoder題目描述任意給定一個32位無符號整數n,求n的二進位表示中1的個數,比如n = 5(0101)時,返回2,n = 15(1111)時,返回4這也是一道比較經典的題目了
  • 《少女前線》二進位密碼怎麼破解 二進位密碼破解答案
    導 讀 逆向坍塌麵包房行動二進位密碼是什麼?
  • c編譯器so easy,gcc c編譯器生成、使用動靜態庫
    本質上來說庫是一種可執行代碼的二進位形式,可以被作業系統載入內存執行。由於windows和linux的平臺不同(主要是編譯器、彙編器和連接器的不同),因此二者庫的二進位是不兼容的。我們通常使用的gcc –o 是將.c源文件編譯成為一個可執行的二進位代碼(-o選項其實是制定輸出文件文件名,如果不加-c選項,gcc默認會編譯連接生成可執行文件,文件的名稱有-o選項指定),這包括調用作為GCC內的一部分真正的C編譯器(ccl),以及調用GNU C編譯器的輸出中實際可執行代碼的外部GNU彙編器(as)和連接器工具(ld)。
  • 這10個安全測試工具,優秀且免費
    有不少開發人員覺得安全測試是最難以實現自動化的部分,其實這主要是由於沒有找到合適的工具來進行測試。今天給大家介紹10個易用、開源且免費的安全測試工具,希望能夠對你有幫助。除了安全測試人員會使用它,開發人員也會用它來加固自己的代碼。4、Excercise in a BoxExcercise in a Box是在線工具,可以用它來測試自己的網絡是否容易遭受到攻擊。
  • 進位轉換器下載_進位轉換器手機版下載_進位轉換器安卓版免費下載...
    進位轉換器 系統安全 大小: 7.52MB