YARAは、マルウェア研究者とセキュリティエンジニアがバイナリパターンを識別し、それに対応するルールを作成するためのツールです。PythonプログラムからYARAを使用するためには、yara-python
というライブラリが必要です。
インストール
YARA-Pythonのインストールは非常に簡単で、pipを使用して行うことができます。
$ pip install yara-python
また、GitHubからソースを取得して自分でコンパイルすることも可能です。
$ git clone --recursive https://github.com/VirusTotal/yara-python
$ cd yara-python
$ python setup.py build
$ sudo python setup.py install
使用方法
以下に、YARA-Pythonを使用してルールをコンパイルし、ファイル、文字列、プロセスをスキャンする例を示します。
import yara
rule = yara.compile(source='rule foo: bar {strings: $a = \"lmn\" condition: $a}')
matches = rule.match(data='abcdefgjiklmnoprstuvwxyz')
print(matches) # [foo]
print(matches[0].rule) # foo
print(matches[0].tags) # ['bar']
print(matches[0].strings) # [$a]
print(matches[0].strings[0].identifier) # $a
print(matches[0].strings[0].instances) # [lmn]
print(matches[0].strings[0].instances[0].offset) # 10
print(matches[0].strings[0].instances[0].matched_length) # 3
このように、YARA-PythonはPythonプログラムからYARAの全機能を利用することを可能にします。.