白話文解說惡意軟體(malware)偵測技術 - YARA
覺得我們的內容實用嗎? MyApollo 電子報讀者募集中!歡迎訂閱電子報!
不知道大家有沒有想過防毒軟體是怎麼運作的,當我們在進行所謂的系統掃描時,到底是怎麼知道哪些檔案是病毒/惡意軟體,哪些是正常檔案?
本文科普 1 項稱為 YARA 的掃描工具。
使用 YARA 之前,要先撰寫所謂的 YARA rules (當然也有開放原始碼的 YARA rules 可以使用), 也就是將病毒/惡意軟體的特徵碼寫成規則,例如某些惡意軟體會藏一些特殊字串或者位元組在程式之中,只要將這些特殊字串寫成規則,例如:
rule silent_banker : banker
{
meta:
description = "This is just an example"
threat_level = 3
in_the_wild = true
strings:
$a = {6A 40 68 00 30 00 00 6A 14 8D 91}
$b = {8D 4D B0 2B C1 83 C0 27 99 6A 4E 59 F7 F9}
$c = "UVODFRYSIHLNWPEJXQZAKCBGMT"
condition:
$a or $b or $c
}
YARA 在掃瞄檔案的時候,就會檢查檔案是否符合特定規則,也就是上述的 condition: $a or $b or $c
的部分,只要符合規則,就代表這個檔案多半與惡意軟體有關,之所以用「多半」 這個字眼,是因為規則如果寫得不夠好,就有可能產生誤判的情況,這也是為什麼有些防毒軟體有時候會將正常檔案誤判為惡意軟體的原因,因為防毒軟體多半也都使用與 YARA 相似的作法對系統進行掃描。
如果你想製作防毒軟體或者對資安有興趣,那麼 YARA 幾乎是你一定要知道的一項工具!