“0.0.0.0”の脅威をVPCフローログから学んでみた
こんにちは!AWS 事業本部コンサルティング部のたかくに(@takakuni_)です。
皆さん、VPC フローログ使ってますか?
VPC フローログは、VPC 内のネットワークインターフェイスで行われたトラフィック情報を取得する機能です。
すでに知ってるよ!って方は、本題まで読み飛ばしていただいて構いません。
ざっくり解説
- ログ取得範囲:「VPC」、「サブネット単位」、「個別の ENI ごと」のどれか
- ログ送信先:「S3」または「CloudWatch Logs」のどちらか
- ログの粒度:「ACCEPT」、「REJECT」、「ALL」のどれか
本題
ざっくりと、VPC フローログについて、ご説明しました。
前置きは長くなりましたが、ここからが本題です。
では、「毎分どれほどの、意図しない IP からアクセスされている」かご存知ですか?
今回は、そんなお話です。
結論
- 今回調べた結果だと毎分 5.7 件、REJECTが検出された
- 惰性で、"0.0.0.0/0"の許可は、ほんとにやめよう!
- 検証でサクッとパブリックアクセスしたい場合は、「マイ IP」機能を使用しましょう
構成図
今回の構成図は、以下の通りです。
- ENI に対して、VPC フローログを設定し、「REJECT」されたログを最大 1 分間隔で取得します。
- 取得したログを 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 フローログを使用してフルオープンの脅威を調べてみました。
正直、こんなにアクセスされているとは思っていなかったです。どのような脅威に晒されているかよく知れました!
以上、AWS 事業本部コンサルティング部のたかくに(@takakuni_)でした!