屋良ルール? Yaraルールを使ってみた。

投稿者: | 10月 5, 2023

yaraルールを勉強してみる。自分の友人に屋良さんという人がいるが、最初yaraルールと聞いた時に、屋良さんのマイルールなのかと思ってしまった。そんな気難しい人ではないんだが。。。

 

閑話休題

 

yaraルールは、一般的には、マルウェアの検知で使われる。ただし、マルウェアがわからない限り、ルールの作りようもなく、あくまでもファイルを見ているだけなので、振る舞い検知までできない。簡単にいうとユーザ定義の定義ファイルのエントリと言える。

なので、作りっぱなしとか更新しないというのはありえないと思う。

WindowsからサクッとUbuntuを起動して試してみた。WSLは神である。

インストール

apt -y install yara

 

作業ディレクトリの作成

mkdir -p yara
cd yara

 

単純なテキストファイルでのテスト

cat <EOF> test.txt
This is a test file!
EOF

 

このテキストファイルを検出できるyaraファイルの作成

cat << 'EOF' > test.yara
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
}
EOF

 

検出テスト

yara test.yara test.txt

無事検出されるはず。

 

Eicarのテスト

eicarの入手

wget https://secure.eicar.org/eicar.com

 

Eicarのyaraファイルの作成

cat << 'EOF' > eicar.yara
rule eicar {
  meta:
        description = "This is example file"

  strings:
      $message = "EICAR-STANDARD-ANTIVIRUS-TEST-FILE!"
        $leading_bytes = {58 35 4f 21 50 25 40 41}

  condition:
      $message or $leading_bytes
}
EOF

 

Eicarの検出テスト

yara eicar.yara eicar.com

無事検出されるはず。

 

ルールの作成はこちら

https://yara.readthedocs.io/en/stable/writingrules.html

 

Clamavでyaraファイルを使ってみる

apt install -y clamav clamav-daemon
systemctl stop clamav-freshclam
fresh clam

これはもちろんひっかかる

clamscan -l scan.log ~/yara/eicar.com

 

これは単なるテキストなのでひっかからない

clamscan -l scan.log ~/yara/test.txt

 

yaraファイルをclamavのデータベースに入れてみる

cp test.yara /var/lib/clamav/
chown clamav:clamav /var/lib/clamav/test.yara

 

今度は引っかかるようになる

clamscan -l scan.log ~/yara/test.txt

これでもひっかかる

clamscan -l scan.log --database=test.yara ~/yara/test.txt

 

Yaraルールに対応していると何が便利かというと、自分で作ったモジュールも引っかかるようになってくれる。

 

というわけで夜中のお勉強でした。。。

コメントを残す