BinaryAlert

サーバーレスのリアルタイムおよびレトロアクティブなマルウェア検出
1,149
執筆者オースティン・バイアーズ (@mimeframe)、ダイモン・グリーヴス

サーバーレスのリアルタイムおよびレトロアクティブなマルウェア検出

Build Status Coverage Status Documentation Status

BinaryAlert はオープンソースのサーバーレス AWS パイプラインです。S3 バケットにアップロードされたファイルが、設定可能な YARA ルールセットですぐにスキャンされます。一致が検出されるとすぐにアラートが発報され、インシデント対応チームは、脅威が拡散する前に脅威を迅速に封じ込めることができます。

機能

  • Amazon Web Services(AWS)で構築: BinaryAlert をデプロイするために必要なのは AWS アカウントだけです。
  • YARA の幅広いサポート: 独自の YARA ルールを追加するか、サードパーティのリポジトリから自動的にクローンを作成します。
  • リアルタイム: BinaryAlert(S3 バケット)にアップロードされたファイルは、すぐに分析用にキューイングされます。
  • サーバーレス: すべての計算は Lambda 関数によって処理されます。サーバーを管理する必要がないため、セキュリティが強化され、自動的にスケーリングできます。
  • Infrastructure as Code: インフラストラクチャ全体が、Terraform 構成ファイルで記述されています。そのため、誰でも 1 つのコマンドで BinaryAlert を数分でデプロイできます。
  • レトロアクティブな分析: YARA ルールセットを更新すると、BinaryAlert がファイルコーパスの全体をレトロアクティブにスキャンして、新しい一致を検出します。
  • 簡単に設定可能: BinaryAlert の設定は、単一の Terraform 変数ファイルで管理されます。
  • 高品質のコード: Python3 で記述されており、ユニットテストとコーディング規範を使用して、クリーンで信頼性の高いコードベースを確保しています。
  • 低コスト: AWS の請求額は、分析されるファイルの数のみによって決まります。

アーキテクチャ

BinaryAlert Architecture

  1. 組織はファイルを集めて、BinaryAlert S3 バケットに配信します。対象となるファイルには、実行可能バイナリ、メールの添付ファイル、ドキュメントなどが含まれます。
  2. S3 バケットにアップロードされたすべてのファイルは、すぐに分析用にキューイングされます。
  3. ディスパッチング Lambda 関数は 1 分ごとに実行され、ファイルをバッチにグループ化し、数十のアナライザーを並行して呼び出します。
  4. 各アナライザーは、事前にコンパイルされた YARA ルールのリストを使用してファイルをスキャンします。
  5. YARA の一致は DynamoDB に保存され、アラートは SNS トピックに送信されます。Airbnb では StreamAlert を使用してこれらのアラートをディスパッチしていますが、他の組織は代わりにメールまたはその他のサポートされている SNS サブスクリプションを使用してアラートを利用できます。
  6. レトロアクティブな分析の場合、バッチング Lambda 関数は S3 バケット全体を再び分析されるようにキューイングします。
  7. 設定可能な CloudWatch アラームは、BinaryAlert のコンポーネントが異常な動作をしている場合にトリガーされます。これにより、YARA 一致アラートに使用されているものとは異なる SNS トピックに通知されます。