“0.0.0.0”の脅威をVPCフローログから学んでみた

2022.02.28

こんにちは!AWS事業本部コンサルティング部のたかくにです。

皆さん、VPC フローログ使ってますか?

VPCフローログは、VPC内のネットワークインターフェイスで行われたトラフィック情報を取得する機能です。 既に知ってるよ!って方は、本題まで読み飛ばしていただいて構いません。

ざっくりと解説

  • ログ取得範囲:「VPC」、「サブネット単位」、「個別のENIごと」のどれか
  • ログ送信先:「S3」または「CloudWatch Logs」のどちらか
  • ログの粒度:「ACCEPT」、「REJECT」、「ALL」のどれか

本題

ざっくりと、VPC フローログについて、ご説明しました。

前置きは長くなりましたが、ここからが本題です。

では、「毎分どれほどの、意図しないIPからアクセスされている」かご存知ですか?

今回は、そんなお話です。

結論

  • 今回調べた結果だと毎分5.7件、REJECTが検出された
  • 惰性で、"0.0.0.0/0"の許可は、ほんとにやめよう!
  • 検証でサクッとパブリックアクセスしたい場合は、「マイIP」機能を使用しましょう

構成図

今回の構成図は、以下の通りです。

  1. ENIに対して、VPC フローログを設定し、「REJECT」されたログを最大1分間隔で取得します。
  2. 取得したログをCloudWatch Logsに送信し、10分間のREJECT数を調べます。

いざ実践

ご自身で実施される場合は、以下の注意点にお気をつけください。

  • 全てのリソースを同じリージョン内で作成すること
  • ENIとセキュリティグループは同じVPC内で作成すること

CloudWatch Logsロググループの作成

CloudWatch管理コンソールから、「ロググループ」を選択し、ロググループの作成を行います。

保持期間は、念のため「1日」に設定し、検証終了後に削除します。

IAMロールの作成

CloudWatch Logsへ、VPC フローログを送信するには、「IAMロール」が必要です。

公式ドキュメントを参考に、IAMロールを作成します。

セキュリティグループの作成

インバウンドルールが無いセキュリティグループを作成します。

セキュリティグループは、後のENIにアタッチを行います。

ENIの作成

パブリックサブネットに、ENIを作成します。

VPCフローログも有効にしておきます。

EC2の作成

EC2インスタンスを作成します。

作成したセキュリティグループ、ENIをアタッチして、EC2インスタンスを起動します。

今回、ログインすることはないので、キーペアも設定不要です。

ログの確認

画面右上の時間で「直近10分間」を検索対象に、CloudWatch Logs Insightsで検索すると、57レコードが検索結果として表示されました...

毎分、5.7回も不明なIPからアクセスされていることになります。

とても怖いですね。

どんなポート使っているの?

堂々の「22番」がトップで使われていました。(約33%)

次点で、0番ポート(約15.8%)、Redisで使用する6379ポート(約10.5%)などさまざまなポートを使用してアクセスされていました。

参考

まとめ

今回は、VPC フローログを使用してフルオープンの脅威を調べてみました。

正直、こんなにアクセスされているとは思っていなかったです。どのような脅威に晒されているかよく知れました!

以上、コンサルティング部のたかくにでした!