##Yaraを使ってみた
Yaraはマルウェア等を検出するために使用できる、パターンマッチングツールです。使い始めるまでの流れを備忘録的にまとめます。
YARA is a tool aimed at (but not limited to) helping malware researchers to identify and classify malware samples. With YARA you can create descriptions of malware families (or whatever you want to describe) based on textual or binary patterns.
Welcome to YARA’s documentation!
https://yara.readthedocs.io/en/v3.8.1/
##Yaraのインストール
Ubuntu18.04で以下のコマンドを実行します。
どのパッケージがなぜ必要かまでは、まだ理解できていません。
#アップデート
sudo apt-get update
sudo apt-get upgrade
sudo apt-get -y install automake libtool make gcc yara python3-yara
#作業用ディレクトリとして/yaraを作成
mkdir yara
cd yara
##Yaraルールの作成
極めて簡単なルールを作成していきます。
検出対象のテストファイルとして、以下のtest.txt
を作成します。(もちろん、ノーマルファイルですw)
This is a test file!
そして、このテストファイルを検出するためのルールをTestRule.yara
として作成します。
要件としては以下にします。
- "This is a test"にマッチすると検出する
- 検出ルール名は"ExampleTestfileRule"
rule ExampleTestfileRule
{
meta:
description = "This is example file"
strings:
$text_string = "This is a test"
$text_binary = {54 68 69 73 20 69 73 20 61 20 74 65 73 74}
condition:
$text_string or $text_binary
}
サンプルをいくつか見ていると、metaの書き方もまちまちですが、お作法的なこともあるんですかね?
このあたりはまた改めて調べてみたいです。
##検出テスト
では、スキャンを実行してみましょう。以下のコマンドを実行します。
yara TestRule.yara test.txt
すると、以下の実行結果が得られ、検出に成功したことがわかりました。
ExampleTestfileRule test.txt
なるほど、「ExampleTestfileRule 」で「test.txt」を検出したってことですね。
##おわりに
Yaraの最初の一歩を踏み出すことができました。これからルールの書き方等勉強していきたいと思います。
##参考文献
YARA’s documentation
https://yara.readthedocs.io/en/v3.8.1/
YARAについて
https://digitaltravesia.jp/usamimihurricane/webhelp/_RESOURCE/MenuItem/another/anotherAboutYARA.html
Yara - くじらとたぬき
http://kmdnet.hatenablog.com/entry/2016/10/24/215353
なにやら(yara) - じゃあ、おうちで学べる
http://syu-m-5151.hatenablog.com/entry/2016/09/15/045006