YARA

による署名ベースの検出以前の記事では、STIX、TAXII、およびCybOXを使用して脅威インテリジェンスを共有する方法について説明しました。

サイバー脅威の情報を有効に活用するための重要な要素の一つは、情報が実用的であるか、少なくとも使用可能であることを必要とします。 共有される情報は、お客様の環境に正確で、完全で、関連性がある必要があります。

CybOXは、企業のサイバーセキュリティの運用領域全体および運用領域間のサイバー観測を表すための共通の構造を提供します。 CybOXには、ハッシュ、文字列、またはレジストリキーを含めることができます。 システムを介して提供された情報は、環境内のマルウェアの存在を確認するために使用できます。 YARAはCyBOXを使用する代替手段の1つですが、両者は相互に排他的ではありません。

ヤラとは?

YARAは、マルウェア研究者がマルウェアのサンプルを特定して分類するのを助けるために設計されたツールです。 これは、セキュリティ研究者(および他のすべての人)のためのパターンマッチングスイスアーミーナイフと呼ばれています。 これはマルチプラットフォームであり、コマンドラインインターフェイスまたは独自のPythonスクリプトの両方から使用できます。

このツールを使用すると、マルウェアの署名ベースの検出を行うことができます。

どのように使用しますか?

このメソッドを使用するには、チェックしたいルールとファイルが必要です。 たとえば、コマンドラインから実行するには、次のように使用します。
指定されたルールが指定されたファイルで一致する場合に出力されます。 出力が表示されず、negateオプションを使用していない場合、これはルールが一致していないことを意味します。

いくつかの設定スイッチで起動できます; これらは二つの最も重要です:

  • -n:満たされていないルールのみを印刷します(否定)。
  • -r:ディレクトリを再帰的に検索します。

ルール

ルールは、ブール式で書かれた文字列と何らかの形のロジックのセットです。

三つの異なるタイプの文字列をサポートしています:

  • 生のバイトを定義するのに便利な16進文字列、
  • テキスト文字列、
  • 正規表現。

条件は、通常のプログラミング言語から認識されるブール式です。 これらは、指定された文字列だけでなく、ファイルサイズなどの特殊な組み込み変数、またはルール外で定義した外部変数でも機能します。 条件で使用できる機能を拡張するために、Cuckooなどのモジュールの使用もサポートされています。

良いルールセットを提供すれば、ヤラから最も利益を得るでしょう。 独自のルールを作成するか、別のプロバイダから取得することができます。

自分のルールを書く

自分のルールを書くことは、これらのガイドラインを考慮するとそれほど難しくありません:

  • 一致するために使用する基準は、マルウェアの動作に必要な部分でなければなりません。
  • この基準は、テストされたマルウェアファミリを他のマルウェアファミリと区別するのに十分なものでなければなりません。
  • 基準は、異なるサンプル間で共通するものでなければなりません。

マルウェアを分析し、そこから有用で認識可能なデータを抽出したら、情報をYARA文字列に変換し、何らかの形のロジックと組み合わせることができます。

外部ソースからルールを取得

YARAはウイルス対策ソリューションと同様の署名を使用するため、これらの署名をルールデータベースとして再利用することは理にかなっています。 スクリプトを使用してclamav_to_yara.py、ClamAV署名データベースを独自のルールセットに変換できます。

ルールの別のソースはGithubリポジトリYaraRulesです。 これは、ITセキュリティ研究者のグループによって維持されているGNU-Gplv2ライセンスの下でのルールセットです。 ルールはさまざまなカテゴリに格納されています—アンチデバッグとアンチ可視化技術、悪意のある文書、パッカーなどを検出することを目的としたルール。 -と頻繁に更新されます。 Githubリポジトリを複製することで入手できます。

MISPやThreatConnectなどの一部の脅威インテリジェンス共有プラットフォームもYARAをサポートしています。 これにより、独自に収集した脅威情報に基づいてルールを構築できます。

ルールを自動的に生成

Joe Sandboxのルールジェネレータを使用すると、静的および動的な動作データに基づいてWindows用の署名を作成できます。 無料のオンラインmalware analysis sandboxを使用する場合と同じルールが適用されることに注意してください。 ファイルを外部クラウドサービスにアップロードしている場合、機密ファイルやユーザー資格情報を含むデータを使用して行うべきではありません。

追加のユースケース

ClamAVデータベースを使用可能なルールセットに変換できることを前述しました。 それはまた、他の方法で周りに行きます。 一連の詳細なルールがあるとします。 ClamAVを設定して、提供されたルールを使用してその機能セットを拡張し、YARAをサポートすることができます。 これにより、圧縮されたファイルまたはパックされたファイルのルールを一致させることができます。 VirusTotal private APIには、独自のルールを入力し、一致するサンプルがアップロードされたときにそれらをトリガーする機能もあります。

署名ベースの保護では不十分

署名ベースの保護に頼るだけでは十分ではなくなりました。 攻撃者は、この方法を回避するために使用できる対策を開発しました。 さまざまな暗号化サービス、パッカー、多態性を使用することで、既存の署名と一致しなくなるように十分に異なるマルウェアを簡単に生成できます。 新しい味がピックアップされ、署名が共有される前に、それはその後、いくつかの時間がかかります。

これらの欠点は、署名ベースの検出を時代遅れにするものではありません。 セキュリティコミュニティは新しい脅威指標を共有することに強いので、これらのタイプのツールは依然としてあなたの武器にとって重要な資産

結論

YARAによる署名ベースの検出には限界がありますが、使いやすく、環境内のマルウェアを検出する非常に簡単な方法です。 唯一の脅威保護対策としてそれに頼るのは賢明ではありませんが、簡単な使用を考えると、このツールを見逃しても良い考えではありません。

You might also like

コメントを残す

メールアドレスが公開されることはありません。