
...シンプルで自己完結型のモジュール式ホストベースIOCスキャナ
Spyre は、YARA パターンマッチングエンジンとその他のスキャンモジュールを中心に構築されたシンプルなホストベースIOCスキャナです。このプロジェクトの主な目標は、YARAルールやその他の侵害指標を容易に運用可能にすることです。
ユーザーは独自のルールセットを用意する必要があります。awesome-yara リポジトリでは、利用可能な無料のYARAルールセットの概要が提供されています。
Spyre は、インシデント対応担当者が調査ツールとして使用することを目的としています。いかなる種類のエンドポイント保護サービスに発展することを意図していません。
Spyre の使用は簡単です:
YARAシグネチャを追加します。デフォルト設定では、Spyreはファイルスキャンとプロセススキャン用のYARAルールをそれぞれ filescan.yar と procscan.yar から読み取ります。Spyre にルールファイルを提供するために以下のオプションがあります(この順序で試行されます):
spyre または spyre.exe の場合、spyre.zip を使用します。ZIPファイルの内容は、パスワード infected(AV業界標準)を使用して暗号化し、ウイルス対策ソフトウェアがルールセットをスキャンして悪意のあるコンテンツとして分類し、スキャンを防止するのを防ぐことができます。
YARAルールファイルには include 文を含めることができます。
デプロイし、スキャナを実行します。
レポートと証拠を収集します。
実行時の設定はオプションのファイル spyre.yaml を使用して行われます。
ZIPファイルが Spyre バイナリに追加されている場合、設定やYARAルールなどの他のファイルはこのZIPファイルからのみ読み取られます。それ以外の場合は、バイナリが配置されたディレクトリから読み取られます。
例については、example-configuration/ サブディレクトリを参照してください。
hostname / コマンドラインスイッチ --set-hostname: ログファイルとレポートで使用されるホスト名を明示的に設定します。通常は不要です。
max-file-size / コマンドラインスイッチ --max-file-size: YARAなどの高負荷なファイルスキャンモジュールを使用してスキャンするファイルの最大サイズ。デフォルト: 32MB
proc-ignore-names / コマンドラインスイッチ --proc-ignore: プロセスメモリスキャンモジュールを使用してスキャンされないプロセス名。
paths / コマンドラインスイッチ --path: ファイルスキャンモジュールを使用してスキャンするパス。デフォルト: /(Unix)またはすべての固定ドライブ(Windows)。
report / コマンドラインスイッチ --report: 1つ以上のレポートターゲットを設定します。デフォルト: カレントワーキングディレクトリ内の spyre_${hostname}_${time}.log、プレーン形式。出力形式は ,format=FORMAT を追加することで指定できます。
現在、スキャンモジュールを実装できる3つの領域があります: システムレベルのチェック、ファイルスキャン、プロセススキャン。
以下に、現在実装されているモジュールとサポートされている設定パラメータを示します。
system
eventobj (Windows)
iocsregistry (Windows)
iocswinkernelobj (Windows)
iocsconficker、ブール値: 動的(ホスト/プロセスベース)のConficker IOCをIOCリストに追加するかどうか?(デフォルト: false)findwindow (Windows)
iocsfile
yara
rule-filesfail-on-warnings各モジュールの侵害指標を記述する方法のヒントについては、設定ファイルの例 example-spyre.yaml を参照してください。
YARAはデフォルト設定に加えて、以下の明示的なスイッチ(3rdparty.mk を参照)で構成されています:
--disable-magic--disable-cuckoo--enable-dotnet--enable-macho--enable-dexファイルスキャンでは、以下の変数が定義されます:
filename,filepath,extension,filetype(スキャン中は現在設定されていません)プロセススキャンでは、変数 pid と executable が定義されます。
spyre_collect_limit メタ変数を使用して、一致するファイルから収集する書き込み数を制限したり、ファイルの収集を完全に禁止したりできます。これは、証拠パッケージのサイズを制限し、機密情報の収集を回避するのに役立ちます。
Spyreは、32ビットおよび64ビットのLinuxおよびWindowsターゲット用にビルドできます。
以下のパッケージがインストールされているDebian/busterシステム(またはchroot)上で:
GOROOT が設定されていない場合、Makefileは自動的に最新バージョンを選択します)これは、CIで定期的にテストされているビルド環境を説明しています。
同じビルドが、以下のパッケージがインストールされたFedora 30でも正常に試されています:
すべてがインストールされたら、make と入力するだけです。これにより、musl-libc、openssl、yara のアーカイブがダウンロードされ、ビルドされ、次に spyre がビルドされます。
ベアな spyre バイナリは _build/<triplet>/ に作成されます。
make release を実行すると、サポートされているすべてのアーキテクチャ向けのバイナリを含むZIPファイルが作成されます。
これらのシステムとの互換性はGo 1.11で削除されたため、Go 1.10ツールチェーンが必要です。Go 1.10はGoモジュールをサポートしていないため、サードパーティのGo依存関係をベンダー化する必要があります: 新しいGoバージョンを使用してこれを行い(go vendor を実行)、make を実行する前に GOROOT をGo 1.10ツールチェーンを指すように設定します。
現在、クロスコンパイルはサポートされていません。
システム提供の make は古すぎます(AppleがGPLv3にアレルギーを示したため)。Homebrewの gmake で問題なく動作します。
HACKING.md を参照してください。
Copyright 2018-2020 DCSO Deutsche Cyber-Sicherheitsorganisation GmbH
Copyright 2020-2021 Spyre Project Authors(参照: AUTHORS.txt)
このプログラムはフリーソフトウェアです。あなたはこれを、フリーソフトウェア財団によって発行されたGNU Lesser General Public License(バージョン3、または(あなたの選択により)それ以降のバージョン)の条件の下で再配布または修正することができます。
完全なライセンステキストについてはLICENSEファイルを参照してください。
現在サポートされている形式は以下の通りです:
plain(デフォルト): シンプルな人間が読めるテキスト形式tsjson: Timesketch にインポート可能なJSONドキュメントhostname と time 変数はターゲットファイル名でのみ展開されます。
注: レポートターゲットの設定は、今後のリリースのいずれかで変更される可能性があります。
high-priority / コマンドラインスイッチ --high-priority: デフォルト設定(この設定が無効)では、Spyre はOSスケジューラにCPU時間とI/O操作の優先度を下げるように指示し、通常のシステム操作の妨害を回避します。
コマンドラインスイッチ --loglevel=LEVEL: ログレベルを設定します。有効な値: trace, debug, info, notice, warn, error, quiet。
proc
yara
rule-filesfail-on-warnings