反省
被害
AWSのSESを利用され、約5万通のメールが不正に送信され、約10ドルの使用料が発生しました。また、焦ってルート権限のMFA設定時にアプリ(別のアプリ用の番号を選択し続ける)の選択を誤り、余計に焦ることになりました。
頭によぎった過去の悪夢
症状
-
ドメインの登録と削除: 知らないドメインがAWSに登録されていました。至急登録されていたドメインを削除しました(9月13日11時ごろ)
-
IAMユーザーでのログイン失敗: 一旦削除したのでホッとした1時間後、IAMユーザー権限でのログインができなくなり、焦りが増しました(9月13日12時ごろ)
-
ルートユーザーのMFAエラー: ルートユーザーでログインしようとしたところ、MFA認証時アプリで間違った番号を選択し、ログインに失敗し続けさらに焦りが増しました(9月13日12時ごろ)
対応
-
AWSへの連絡: AWSのサポート窓口に連絡を試みましたが、回答が来るを待つ必要があり、不安が募りました(9月13日13時ごろ)
-
別アカウントで問い合わせ: この間にも不正利用されるリスクがあるため家族名義で新たなAWSアカウントを作成し問い合わせを行いましたが、情報提供のみで有効な対応は得られませんでした(9月13日14時ごろ)
- 冷静になり対応: 冷静さを取り戻し、ルートユーザーでのログインを成功させ、IAMユーザーのパスワードとMFAを変更しました。これにより、再度IAMユーザーでのログインが成功しました(9月13日18時ごろ)
教訓
- ログインできないと何もできない: AWSへの問い合わせや操作は、まずログインできなければ始まりません
- 非常時こそ冷静に: 焦りから誤操作を連発してしまいました。非常時こそ冷静に対応することが最も重要で、次回のために手順をメモに残しておくべきだと学びました
追記(9月15日未明)
先日、完全にセキュリティの問題が解決したと思っていましたが、9月15日の深夜に再び問題が発生しました。驚くべきことに、IPアドレスを追跡すると、攻撃者は海外から不正アクセスを試みていることがわかりました。
相手の行動
- アクセスキーを勝手に作成: 攻撃者は私のAWSアカウントで新しいアクセスキーを作成し、悪用を開始しました。
- IAMユーザーの作成: 新しいIAMユーザーを勝手に作成し、さらに悪用できるように準備。
- SESを利用して数万通のメールを送信: 攻撃者はSESを利用して不正メールを大量に送信しようと試みました。
自分の対応
- アクセスキーの削除: 不正に作成されたアクセスキーを即座に削除
- IAMユーザーの削除: 不正に作成されたIAMユーザーも削除。
- SESの設定削除: SESの設定を削除し、不正利用を阻止。
この攻防を数回繰り返すことになりましたが、完全にイタチごっこの状態でした。根本的な解決が必要だと感じ、以下の対策を実施しました。
最終的な対策
-
IAMユーザーのアクセスキーを削除: 自分自身のIAMユーザーのアクセスキーも削除し、これ以上の悪用を防ぎました
-
IAMユーザーのポリシーを最小限に制限: 自分のIAMユーザーに付与していた過剰なポリシーを見直ししました
原因の推測
ルートユーザーの権限は奪われていないため、おそらく攻撃者が利用したのは、IAMユーザーのアクセスキーの流出です。私自身、環境変数の取り扱いには十分注意していたつもりでしたが、どこかで流出してしまった可能性が高いです。
また、IAMユーザーに過剰なポリシー(権限)を付与していたことも、悪用されやすい要因となりました。今回のケースでは、SESのみが悪用されたため、さらに大きな被害には至りませんでしたが、非常に危険な状況でした。
教訓
- 最小権限の原則の徹底
- アクセスキーの定期的なローテーションが重要
- IAMユーザーの過剰な権限付与は非常に危険
まとめ
今回のインシデントを通して、セキュリティ対策の重要性を改めて痛感しました。冷静に対応できたことで被害は最小限に抑えることができましたが、今後はさらに強化されたセキュリティ対策を講じていきます。