この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
こんにちは!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_)でした!