3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

AWS VPC Traffic Mirroringを使ってFraud監視をスタート!

Posted at

はじめに

  • Splunkを使ったFraud(不正)監視のユースケースは多い
  • 特にWebサービスはECサイトをはじめ、不正ログインまたは**ATO(アカウントテイクオーバー)**のリスクに常にさらされており、2要素認証が完全普及してない状況からも常に被害報告が出ている

スクリーンショット 2020-10-11 14.29.33.png

  • そのような状況で、できうる対策としてアカウント認証の異常パターンをモニタリングすることがポイントになってくる
  • が、モニタリングの仕組みを実現する上で大きな2つの課題をよく耳にする
    • アプリケーションから認証ログが出力されていない
    • 監視ルール作り監視体制が整っていない

Oops...アプリケーションから認証ログが出力されていない

  • 必要なデータがない。これでは監視のスタートにたてない・・・アプリケーションの改修も簡単ではない。
  • そのような状況に対して、本記事ではアプリケーションを改修しないでWeb(http) トラフィックのStreamデータからデータを取り出し、Splunkで分析する方法を以前紹介
  • AWSのVPC Traffic Mirroringを利用して、AWSのEC2インスタンス(webサーバ)に流れるhttpトラフィックをSplunk Streamでキャプチャしました
    • (VPC Traffic MirroringってVPC Flowのことかと思っていたらFlowデータではなかった。)

構成イメージ

スクリーンショット 2020-10-11 15.24.11.png

  • Webサーバを1から作らなくてもWebサーバみたいなログイン認証データが取れるSplunkを使って検証しました
  • AWS MarketPlaceからポチッとインスタンスを2つ作成
    • Nitro世代のm5a.largeのインスタンスを利用。

設定手順(AWS VPC Traffic Mirroring)

  • AWSのVPC Traffic Mirroringの設定方法は以下記事が大変参考になりました
  • 上記Blogを参考にして設定します。補足ポイントを以下に記載
    • VPC Traffic Mirroringを受け取るSplunkサーバには拡張NIC(eth1)をつけて、Traffic MirrorをSplunkサーバのeth1に流す
    • SplunkサーバにアタッチするセキュリティグループのinboundポリシーにUDP port 4789を加える
    • Traffic Filter Policyの設定例(アウトバウンドデータ(webのレスポンスデータ)もミラー対象にしていないとStream分析に支障をきたします)

Inbound
スクリーンショット 2020-10-11 15.18.35.png

Outbound
スクリーンショット 2020-10-11 15.18.40.png

  • Outboundルールはもう少し絞れたら絞ったほうがいいかもしれませんが、Splunk Stream側で分析対象のトラフィックはいかようにも調整できるのでこれでもOKです。

設定手順(Splunk Stream)

  • Splunkには以下Appsをインストール。Stream Appsも以前は1つにまとまっていましたが、最近細かく分けた模様

  • Splunkサーバに以下Appsをすべてインストール

  • Stream Appの初期セットアップ

shell
・パーミション設定
cd /opt/splunk/etc/apps/Splunk_TA_stream
sudo chmod +x ./set_permissions.sh
sudo ./set_permissions.sh

・SplunkサーバにSSHアクセスして以下configを編集し、eth1に入ってくるパケットをstreamのキャプチャ対象にする(デフォルトだとeth0しか見ていない
vi /opt/splunk/etc/apps/Splunk_TA_stream/local/streamfwd.conf 

[streamfwd]
streamfwdcapture.<N>.interfaceRegex = eth1
streamfwdcapture.<N>.offline = false
  • GUIからにhttpプロトコル内の取得フィールドを細かく選択
    • Splunk Streamのいいところ。柔軟に収集したいフィールドを設定できる。
      -スクリーンショット 2020-10-11 15.45.44.png

結果

  • Webサーバに対するhttpトラフィックがキャプチャできています

image.png

  • form_dataにはログインアカウント名とパスワード文字列までばっちり見えます

image.png

  • 少なくともログイン時のアカウント名と認証成功か失敗だけでも見れればOKですね。
    スクリーンショット 2020-10-11 15.56.02.png

  • IDとパスワードは正規表現で後からスキーマ定義(Scheme on the read!!)

SPL
|rex field=form_data "username=(?<user>[^&|^$]+)"
|rex field=form_data "password=(?<password>[^&|^$]+)"

image.png

はまったポイント

  • VPC Traffic Mirroringのフィルター条件にinboundのみ設定
    • Splunk Streamでhttpトラフィックは可視化できるのだが、なぜか実トラフィック発生からindexされるまでに5分近くかかっていた。
    • 不審におもいoutboundも転送対象にした所、数秒以内でログ検索できるようになった。httpレスポンスも見て解析しているので片方だけの解析によって処理が遅くなっていたのだと思われる

次回について

  • せっかく集めたデータを活用するためのAppsを紹介します!

参考記事

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?