Using the Elastic Stack as a SaaS-Based Security Operations Swiss Army Knife | Elastic Blog
ユーザストーリー

Elastic StackをSaaSベースの万能なセキュリティオペレーションとして使用

本記事で、マネージドのElasticsearchは旧称のElastic Cloudで表記されています。現在Elastic Cloudの名称はElasticsearch Serviceとなりました。Amazon Elasticsearch Serviceとは異なるサービスですので、ご注意ください。詳しくは、AWS Elasticsearch比較ページをご覧ください。

RS2社では、セキュリティが業務内容のすべての中核です。包括的な機能を備えた主力製品であるBankWORKSは、デバイストランザクションの取得から最終決裁および元帳の統合まで、すべての支払処理ニーズに対応するエンドツーエンドの統合ソリューションです。そのソフトウェアは、企業の規模や複雑さを問わず、世界中の銀行、処理業者、支払サービスプロバイダーに利用されています。また、RS2社はマネージドサービスとして製品を提供することも行っています。

私たちのチームは、会社のあらゆるビジネスフローにおけるデータの侵害または漏洩のリスクを最小化する責任を負っています。それと同時に、コンプライアンス要件を満たしながら日々の業務に混乱が生じないよう取り組んでいます。

2017年11月には、セキュリティチームを拡張することを計画していました。しかし、新たな雇用の許可を得るためには、その前にインシデントやセキュリティイベントへの対処に関する手作業の一部を軽減する必要がありました。 Elastic Stackとの付き合いはそこから始まりました。

提案から本稼働までの道のり

初期ステージ

私はすでに、他の役職や個人的なプロジェクトでElastic Stackを使用していたため、これをチームに紹介しようと思いました。その豊富な機能セットとスケーラビリティにより、私たちの要件はすべて満たされると考えていました。

RS2で新しい役職に就いた最初の数日間、私は自分のノートPCを使用して仮想マシン上でElasticsearchとKibanaインスタンスを起動し(ここではバージョン6)、VM自体にいくつかのBeats(PacketbeatAuditbeatMetricbeatおよびFilebeat)をインストールし、 すべてのデータを直接Elasticsearchに送信しました。有意なデータをKibanaに取り込むまでの全体のプロセスは約1時間(そのうち40分はOSのISOイメージのダウンロードとインストール)でした。

これを同僚に見せたところ、その同僚は即座に、これが今後採用すべき方法であることに同意したため、実際のデータを使用したテモを作成して経営陣にその有効性を訴えることにしました。そこで、私たちはいくつかのネットワークデバイスと既存のサーバーを含めることにしました。これらは本番環境のネットワークに変更を加える必要のないものであり(異なるBeatおよびLogstashを使用)、またサードパーティとの統合も必要ないものでした。

クラウドの評価

私は以前の役職で、いくつかのサーバーに渡る大規模なElasticデプロイをホストしていました。しかし、Elastic Cloud関連のサービスについてはまったく考えることはありませんでした。RS2社は、クラウドへの性急な移行により、「インフラストラクチャフリーズ」を起こしていました。期限が厳しくリソースも限られていたため、私はElastic Cloudの検討を余儀なくされました。セキュリティのプロフェッショナルである私は懐疑的であり、そのサービスがある程度セキュリティのことを考慮して設計されていることを確かめたいと考えていました。

クラスターを準備し、明らかな脆弱性や欠点が見つからないか確認するために簡易的なセキュリティテストをいくつか行いました。そして以下のことが分かりました。

  • Elasticでは、バックエンドクラウドプロバイダーとしてAWSまたはGCPから選択することができるため、それらのすべてのセキュリティ機能とコンプライアンス認定が継承される。
  • 各クラスターには、各プロバイダーのデフォルトのサブネットではなく、分離されたネットワークが使用される。
  • ElasticsearchとKibanaの両方のURLには最新のTLS設定と暗号文が使用される。
  • Elasticsearchの転送ポートはランダム化される。
  • 各インスタンスのURLも完全にランダム化されるため、顧客名を列挙することは不可能。
  • クラスターIDがないとIPへの直接アクセスはできない。
  • Elastic Stackの最新バージョンとJava8の最新バージョンが使用される。

全体像

クラウドクラスターを準備した後は、データフローを設計する必要がありました。下図はPoCのためのアーキテクチャーの概要を示しています。

略図 - PoCのためのアーキテクチャー

X-Packが利用可能だったため、アラートフレームワークの一部としてWatcherを積極的に使用しました。Watcherは、Watcher webhookアクションを使用してカスタムのSlackbotに統合しました。

デモの準備 – データを活用

最初のステップは、できる限りログのパースとエンリッチを行うことでした。セキュリティのコンテキストでは、エンリッチはインシデントの迅速な解決の鍵となります。分析のための調査時間を大幅に削減できるからです。また、誤検出を除外するのにも役立ちます。私はいくつかのLogstashフィルタープラグインを使用して簡単に実行することができました。さらに、既存のログアーカイブツールに対応するために、複数のLogstash出力をセットアップし、Elasticのクラスターと既存のアーカイブツールに同時にデータを送信するようにしました。

以下は、解析ログに追加されたいくつかのエンリッチオペレーションのリストです。

  • GeoIPデータ(ロケーションとASN)
  • マルウェアIPのルックアップ
  • 許可されたログインのユーザーのルックアップ
  • ユーザーエージェントのパース
  • URLのデコード

これはPoCのためにセットアップされたエンリッチの一部です。本稼働に移してからは、さらに追加しました。

すべてのデータを問題なくパースしたため、上述のエンリッチ機能のいくつかを強調するために、組み込みのダッシュボードとともに操作できるカスタムのダッシュボードを作成しました。以下が、PoCのために開発したカスタムのKibanaダッシュボードのほんの一部の例です(機密データはすべて削除済み)。

Kibana Dashboard 1.jpg

Kibana Dashboard 2.jpg

Kibana Dashboard 3.jpg

Kibana Dashboard 4

さらに、いかに簡単にElasticにデータが追加できるかを示すために、その他の効果的な統合をデモに追加しました。結局のところ、それらは単純に追加のインデックスとなります。 その一例は、有名なサービスである「Have I been Pwned」(Troy Hunt氏作成)との統合です。このサービスは非常に便利なREST APIを提供します。つまり、メールアドレスを入力するだけで、公表されているデータ侵害の犠牲になっているかどうかが分かります。私たちのドメインに関する新たなエントリーあればアラート通知されるように、Watcherを作成しました。

アラート

PoC(後で本稼働環境に使用される)におけるアラートフレームワークの基盤となる考えは、Slackを通じてすべてを実用可能にすることでした。以下が、Slackbot内で使用されたデータの例です。調査のためにアナリストが開始する必要のあるすべてのものが含まれています。使用されたデータは、さまざまなBeatsから収集、およびパースされたネットワークデバイスログをLogstash経由で収集したものです。

データセットには次のものが含まれていました。

  • SMTPリレーログ、認証ログ、ファイアウォールからのパケットフィルターログ
  • パケットレベルのDNSリクエスト(Packetbeatを使用)
  • SSH/SFTPログ(WazuhとFilebeatを組み合わせて使用)
  • プロセスとそれらの状態(Metricbeatを使用)
  • アウトバウンドのネットワークソケットの監視( *nix系システム上でAuditbeatを使用)

以下が、PoCのために開発したSlackbotアラートのほんの一部の例です(機密データはすべて削除済み)。

  • TeamViewer接続アラート

    TeamViewer接続を検出
  • ファイアウォールログインアラート

    RS2 - セキュリティボット - ファイアウォールログインを検出
  • マルウェアアラート

    RS2 - セキュリティボット - マルウェアIPとの通信を検出

成果

言うまでもありませんが、PoCは大きな成功を収め、本稼働への移行の承認を得ることができました。繰り返しになりますが、このPoCをスムーズに実行できた主要なポイントは以下のとおりです。

  • Elastic Cloudとそれに関連するすべてのものがきわめて簡単かつ迅速に使用できる(設定せずにそのままで使用できる統合されたバックアップ、レジリエンシーと高可用性、デプロイの規模に見合ったX-Packバンドル)
  • 任意のデータを取り込み、きわめて迅速に便利で実用可能なものに変換できる機能(PoCはその開始から完了までおよそ丸3日。パース、ダッシュボード、エンリッチ、アラートフレームワークなど、このブログで述べたすべてのタスクを含む)
  • 中断を伴うことなく、それを既存のすべてのプロセスと並行して実行できるという事実

アップデートへの対処

本稼働に移行した数週間後、Elasticによってアップデートがリリースされました。X-Packが付属した大規模なElasticデプロイにアップグレードしていたため、このアップデートがクラウドプラットフォームでどのように実行されるか興味がありました。それは、ドロップダウンメニューで新しいバージョンを選択するだけで済みました。その他のすべては、何の中断も伴わず自動的に実行されました。

まとめ

Elasticの使用は、これで終わるわけではありません。新たに発見された脅威や悪意のあるアクティビティに基づいて臨機応変に、データソース、エンリッチ(ユーザーの休暇データを取得するためにHRシステムと相関させる、ビル内に居る人や、居るべき人または居るべきではない人を確認する物理的アクセスシステムなど)、そしてアラートを絶えず追加しています。また、使用するその他の社内ツールとの統合にも取り組んでいます。

Elasticでのセキュリティ分析の今後に注目しています。Elasticは各アップデートで、アナリストの生活が楽になり、その仕事がより満足度の高いものとなるような追加のコンポーネントをリリースしています。さらに、今後のElastic Cloudのアップグレードも同様に楽しみにしています。RS2社が今後も、セキュリティ分析だけでなく組織全体で、豊富な機能セットから恩恵を受けることに間違いはありません。