簡介
本文檔介紹如何在Windows上使用ClamAV sigtool.exe建立自定義檢測 — 高級。
關於高級自定義檢測
高級自定義檢測類似於傳統的防病毒簽名,但它們由使用者編寫。為了檢測惡意軟體和其他基於檔案的威脅,ClamAV依靠簽名來區分乾淨和惡意/不需要的檔案。ClamAV簽名主要基於文本,並且符合與給定檢測方法相關聯的一個特定於ClamAV的簽名格式。這些簽名可以檢查檔案的各個方面,並且具有不同的簽名格式。一些可用的簽名格式包括:
· MD5簽名
·基於MD5、PE部分的簽名
·基於檔案主體的簽名
·擴展簽名格式(偏移、萬用字元、正規表示式)
·邏輯簽名
·圖示簽名
ClamAV專案以CVD(ClamAV病毒資料庫)檔案的形式分發特徵碼集合。CVD檔案格式提供數位簽章的容器,該容器封裝簽名,並確保惡意第三方無法修改簽名。此特徵碼集由Cisco Talos主動維護,並可使用ClamAV隨附的freshclam應用程式進行下載
為什麼選擇ClamAV
我們使用ACD來匹配使用SHA256雜湊無法檢測的複雜檢測/檔案屬性,如下例所示:
基於主體的簽名內容格式
ClamAV以十六進位制格式儲存所有基於正文(基於內容)的簽名,ClamAV YARA規則支援除外。 十六進位制簽名是指將惡意軟體主體片段轉換為十六進位制字串,可以使用各種萬用字元進行額外擴展。
邏輯簽名允許使用邏輯運算子以擴展格式組合多個簽名。它們可以提供更詳細和更靈活的模式匹配。
擴展簽名格式是ClamAV基於主體的簽名的最基本型別,因為原始的.db資料庫格式被棄用。
擴展訊號允許指定超出已有十進位制內容的其他資訊,例如檔案「目標型別」、病毒偏移量或引擎功能級別(FLEVEL),從而使檢測更加可靠
網路釣魚簽名
當顯示文本是不同於實際URL的域的URL時,ClamAV可以檢測看起來可疑的HTML連結。遺憾的是,公司通常會簽約Web服務,並使用HTML連結顯示文本使其看起來像公司網站的連結。由於這種做法很常見,ClamAV只對經常成為網路釣魚攻擊目標的特定網站進行網路釣魚檢查
位元組碼簽名
Bytecode Signatures是一種通過編寫C代碼來解析檔案提取各個階段的樣本內容來執行更複雜匹配的方法。
基於容器後設資料的簽名
ClamAV 0.96允許建立通用特徵碼,以匹配儲存在滿足特定條件的不同容器型別中的檔案。簽名格式為:
VirusName:ContainerType:ContainerSize:FileNameREGEX:
FileSizeInContainer:FileSizeReal:IsEncrypted:FilePos:
Res1:Res2[:MinFL[:MaxFL]]
其中,對應的欄位為:
VirusName:簽名匹配時顯示的病毒名稱。
ContainerType:包含目標檔案的檔案型別。舉例來說:
CL_TYPE_ZIP、
CL_TYPE_RAR、
CL_TYPE_ARJ、
CL_TYPE_MSCAB、
CL_TYPE_7Z,
CL_TYPE_MAIL、
CL_TYPE_POSIX_TAR、
CL_TYPE_OLD_TAR、
CL_TYPE_CPIO_OLD,
CL_TYPE_CPIO_ODC,
CL_TYPE_CPIO_NEWC,
CL_TYPE_CPIO_CRC
等等。
本文檔重點介紹雜湊簽名。
注意:為ClamAV建立簽名的最簡單方法是使用檔案雜湊校驗和,但是此方法只能用於防範靜態惡意軟體。
注意:請注意,本文檔中的資訊可能會隨較新版本的ClamAV而更改。請始終與ClamAV的官方指南進行聯系和驗證。
有關簽名格式的更多資訊,請訪問:ClamAV網站
這些特徵碼編譯成下載到終端的檔案中。若要建立高級自定義檢測,請轉到Outbreak Control > Advanced。按一下Create Signature Set建立新的高級自定義檢測集,為其指定一個名稱,然後按一下Create。
建立「高級自定義檢測」集後,按一下「編輯」,即可看到「新增特徵碼」連結。輸入您的簽名的名稱,然後按一下「建立」。
列出所有簽名後,選擇從簽名集中構建資料庫。如果意外新增了您不想要的簽名,可以按一下「刪除」將其刪除。
警告:每次新增或刪除簽名時,都必須按一下「從簽名集中生成資料庫」
注意:為檔案建立高級自定義檢測時,該檔案需要快取一小時。如果將檔案新增到高級自定義檢測集中,則快取時間必須到期才能使檢測生效。例如,如果在未知檔案快取5分鐘之後新增高級自定義檢測,則檢測在另外55分鐘內不會生效。
如何使用sigtool.exe建立自定義檢測 — 高級
第1步:首先我們需要導航到ClamAV網站下載來獲取Sigtool
在這種情況下,我下載ZIP包clamav-1.1.0.win.x64.zip
第2步:將檔案解壓縮到首選位置。我用的是C:/ClamAV
請注意突出顯示的資料夾和檔案。
clamscan.exe — 用於掃描檔案和/或目錄中的病毒的命令列工具。與clamdscan不同,clamscan不需要運行的clamd例項即可運行。相反,clamscan會建立一個新引擎,並在每次運行時將它載入到病毒資料庫中。它會掃描在命令列中指定的檔案和/或目錄,建立掃描報告並退出。
sigtool.exe — 用於建立和格式化簽名並寫入*.hdb檔案的工具。hdb副檔名引用基於雜湊的簽名。sigtool引入libclamav,並提供執行clamscan在幕後執行的任務的快捷方式。在寫入簽名或嘗試獲取有關可能導致FP或效能問題的簽名的資訊時,這些命令非常有用。
VirusVault - 這是我自己的資料夾,建立該資料夾的目的是刪除要為其建立自定義簽名的檔案。
VirusRV.hdb — 此檔案包含帶格式的簽名。我將此檔案命名為VirusRV,但您可以使用任何有意義的名稱。
第3a步:啟動CMD行,然後導航到之前解壓縮ClamAV的位置。
步驟3b 執行此行。
C:\ClamAV>sigtool —md5 location-of-the-custom-file > name-of-the-output-file.hdb
您可以更改名稱(預設情況下,sigtool使用檔案的名稱),並將其放入*.hdb檔案中。單個資料庫檔案可以包含任意數量的簽名。為了在clamscan/clamd每次啟動時自動載入資料庫,只需將資料庫檔案複製到本地病毒資料庫目錄(例如/usr/local/share/clamav)即可。
C:\ClamAV>sigtool --md5 C:\ClamAV\VirusVault\TestVirusRV.exe > VirusRV.hdb
這會為名為TestVirusRV.exe的檔案建立簽名,然後將簽名寫入名為VirusRV.hdb的檔案
註:如果您想要根據SHA值建立簽名,則相應的檔案將儲存為*.hsb
C:\ClamAV>sigtool --md5 C:\ClamAV\VirusVault\TestVirusRV.exe > VirusRVsha256.hsb
注意:基於雜湊的簽名不得用於文本檔案、HTML以及模式匹配之前在內部預處理的任何其他資料。如果在這種情況下您確實想使用雜湊簽名,請運行帶有 — debug和 — leave-temps的clamscan,並為保留在/tmp中的預處理檔案建立簽名。請記住,一旦目標檔案中的單個位元組發生更改,雜湊簽名將停止匹配。此處可找到更多信息
以下sigtool標誌對於簽名編寫特別有用:
—md5 / —sha1 / —sha256:生成MD5/SHA1/SHA256雜湊並計算檔案大小,將兩者作為格式正確的.hdb/.hsb簽名輸出
簽名名稱
ClamAV簽名只能使用字母數字字元、短劃線(-)、點(.)、下劃線(_)來分隔單詞。切勿使用空格、撇號、冒號、分號或引號。
在官方簽名資料庫中找到的ClamAV簽名名稱通常使用以下格式:
{platform}.{category}.{name}-{signature id}-{revision}
第三方資料庫中的命名規則各不相同。您可以在此處找到用於命名正式資料庫簽名的Cisco-Talos指南。
提示:如果要對位於您先前在我的案例中建立的目錄中的檔案建立多個簽名,請使用萬用字元運行命令。在本例中,我的運行方式為:
C:\ClamAV>sigtool —md5 C:\ClamAV\VirusVault\ wildcard\ > VirusRV.hdb
C:\ClamAV>sigtool --md5 C:\ClamAV\VirusVault\*\ > VirusRV.hdb
哪項針對目錄VirusVault中的每個檔案建立了簽名
步驟4:運行以下命令驗證簽名。
C:\ClamAV>clamscan -d VirusRV.hdb C:\ClamAV\VirusVault\TestVirusRV.exe
若要驗證所有簽名,可以再次使用萬用字元掩碼。
C:\ClamAV>clamscan -d VirusRV.hdb C:\ClamAV\VirusVault\*\
第5步:開啟新建立的*.hdb檔案並複製建立的簽名,然後導航到Outbreak Control > Advanced下的安全終端控制台,然後點選Edit,您可以看到Add Signature鏈接。
第6步:確保按一下「從簽名集生成資料庫」,然後將新的自定義檢測應用到策略。
第7步:在終端上同步您的策略,並使用手動掃描測試您的新簽名。您可以看到如下所示的結果。
手動掃描
安全終端控制檯中的檢測
活動已展開
在Secure Endpoint Console中儲存簽名的要求
如果只有MD5雜湊並且不知道檔案的大小,您仍然可以建立特徵碼集,但您必須使用以下規則:
A: MD5不能包含所有大寫字母
正確的MD5雜湊:
5b852928a129d63dc5c895bd62cf2ab7
MD5雜湊不正確:
5B852928A129D63DC5C895BD62CF2AB7
安全端點控制檯中出現「所有大寫字母」錯誤
B:命名必須使用大寫字母,大寫字母可以是您自己的名稱。
正確名稱:
Dm-launcher.msi
名稱不正確:
dm-launcher.msi
C:可以使用萬用字元表示大小,但必須使用:73表示最小FLEVEL
正確萬用字元:
5b852928a129d63dc5c895bd62cf2ab7:*:dm-launcher.msi:73
不正確的萬用字元:
5b852928a129d63dc5c895bd62cf2ab7:*:dm-launcher.msi
安全終結點控制檯中所有小寫名稱都出現錯誤,未指定FLEVEL
注意:大小未知的雜湊簽名 — ClamAV 0.98還新增了對於大小未知但雜湊為的雜湊簽名的支援。使用具有特定大小的簽名要高效得多,因此使用此功能時要小心謹慎。對於這些情況,可以在大小欄位中使用「*」字元。為確保與舊版ClamAV的良好向後相容性,這些特徵碼的最低功能級別必須是73或更高。使用萬用字元大小而不使用此級別集的簽名會因格式不正確而被拒絕。