AWS不正利用から反省したプライベートのセキュリティ意識

# はじめに
個人で持っていたAWSのrootユーザーが乗っ取られ、不正利用されました。その結果約70万円ほどの請求があったものの、AWSサポートとやりとりの結果免除いただけました。

内心かなり焦っていたものの、先人の方々の記事に励まされ、対処自体は落ち着いて行動できたように思います。（そんなことがないに越したことはありませんが、）同じような被害に遭った方のためと自身のセキュリティ啓発の意味も兼ねて、今回の経緯を記事にしたいと思います。

# 発覚から初期対応まで

## 気づいたきっかけ
私のAWSアカウントは1年前に資格勉強のため開設した個人アカウントでした。そのため普段は利用しておらず、無償利用期間も終了が近かったため、すべてのリソースを削除して入れていた設定もすべて削除していました。当然利用額は毎月0円でした。

しかしそんなアカウントにこんな件名と本文のメールが届きました。（17:50ごろ（気づいたのは20時前））
```
【件名】
Action Required: Irregular activity in your AWS account
【本文】
Your AWS Account may be compromised.
Please review the following notice and take immediate action to secure your account. 
〜以下略〜
```
あれ？これは勘違いならいいけど、、、

とりあえずAWSへログイン、サポートケースを見に行きました。

## サポートケース確認
サポートケースを確認するとなぜか解決済みになっていました。

あれ？やっぱり勘違いなのか？

でも念の為先ほどのメールの中身を確認しました。
```
【メールの中身要約】
あなたのAWSアカウントが侵害されているかもしれないからアカウントに制限をかけました。
制限を解除するには次に案内することを実施してください。

もしあなたのアカウントが安全で侵害されていないならサポートケースを通してコンタクトしてください。

Step1:
rootアカウントのPWを変更してください。
Step2:
CloudTrailログを確認して不正なログがないか確認してください。
そして覚えのないIAMユーザー、ロール、ポリシーがある場合は削除してください。
Step3:
身に覚えのない使用履歴がないか確認してください。
- CloudTrailログ
- 請求
- コストエクスプローラー

EC2インスタンス,EC2スポットリクエスト、Lambdaなどの使用を確認してください。
```

Step1を実施し、Step2でCloudTrailログを確認しているときに「Run Instance」というログがあることに気づきました。

え、やられてる、、、
ということは解決済みにしたのは攻撃者か！

## 作成されていたインスタンスを全て消す
急いでEC2ダッシュボードを見に行くと起動中インスタンスが50ほど。片っ端から終了させていきます。
これで一安心、サポートへ連絡しようと思いましたが、その前にもう一度CloudTrailからログ確認し、EC2インスタンス以外に不正利用されているものがないか確認しました。

よし、大丈夫。。。
**ん？東京リージョン？CloudTrailってグローバルのサービスじゃないの？**

ということは、、、

**EC2グローバルビューで確認した結果、全3リージョンで500インスタンスほど起動**していました。これらも片っ端から終了。有効化されていた全リージョンのCloudTrailをざっと確認し、EC2インスタンスのイベント以外ないことを確認しました。

## 英語でサポートケースに返信
ここまでやってから英語で以下のような内容でサポートケースを再オープン、返信しました。（21:50ごろ）
```
rootアカウントが侵害されていました。
案内のあったStep1から3を実施、複数リージョンにあったEC2インスタンスを終了させました。

このサポートケースが終了されていましたが、私の操作ではありませんでした。
そのため、再オープンして返信しています。
```

:::note warn
この時点ではまだ請求ダッシュボードで利用額の確認ができませんでした。請求ダッシュボードへ反映されるのには時間差がありますので、請求額を確認してなかったからといって安心しないでください。
:::

# AWSサポートからの案内に従って対応
## 自分の対処モレ部分について案内をもらう
こんな案内をもらえました。自分のアカウントの状況を見ていただけるんですね。（22:50ごろ）
```
Step1:
Spotインスタンスリクエスト終了完了していますか？このドキュメントを参考に終了させてください。
Step2:
このロールを作成しましたか？もしそうでないなら削除してください。「AWSServiceRoleForEC2Spot」
```
すぐに対処して返信しました。（23:35ごろ）
```
すべてのEC2インスタンスの終了、スポットインスタンスリクエストのキャンセル、AWSServiceRoleForEC2Spotロールの削除、完了しました。
```
この後は以下のような返信が来たため、ひとまず一旦本日の対応は終えました。(翌2:20ごろ)
```
協力ありがとう。
サービスチームあなたのアカウント制限は取り払うように依頼しました。
なにかアップデートがあったらすぐ連絡しますね。
```
:::note info
ちなみに「アカウント制限はこの件すべて終わるまでそのままにしておいて構わない」と伝えたところ、「課金チームへ協力依頼するためには制限は取り除く必要がある」と返信がありました。
:::

## アカウントの追加設定を依頼される
課金チームへ不正利用額の調査を依頼するための前提条件として、以下の対応をすることを求められました。(6日後13:20ごろ)
```
1. コスト利用率の監視のため、以下から最低２つのサービスをセットアップする必要があります。

- 予算の設定
- 請求アラートの設定
- cloudtrailの永続化
- WAFの設定
- Trusteed Advisorの設定

2. セキュリティベストプラクティスから最低一つセットアップする必要があります。

- MFAの設定
- セキュリティハブの設定
- GuardDutyの設定

3. 上記からどれを実施したかサポートケースへ知らせること。
4. AWSの利用規約と責任共有モデルの説明を読んだことを知らせること。
```
１と２については無償で利用できるもの（予算の設定、請求アラートの設定、MFAの設定）を対処して連絡しました。(６日後14:30ごろ)

以下の返信があったため、あとは待つだけとなりました。(６日後18:25ごろ)
```
対応ありがとう。
課金チームへ不正利用額の調査を依頼しました。
アップデートがあれば連絡しますね。
```

## プライベートのセキュリティ意識の変化
CloudTrailのログからrootアカウントが侵害されたのは明らかでしたが、MFAを設定していなかったとはいえ、それなりに強力なパスワードを設定していたため、なぜ破られた(or 漏洩した)のか疑問でした。
が、この不正利用の翌日に**PWもろとも個人情報が漏洩してしまった**ニュースが入ってきました。ばっちり対象ユーザーです。パスワードの使い回しをしてしまっていたため、これの所為かと納得しました。

漏洩してしまったものは仕方ないのと、自分のセキュリティ設定の脆弱さも自覚していたため、急いで対処を始めました。
具体的には以下です。
- サイトのパスワードは使い回しをやめ、複雑なパスワードを設定しiCloudに覚えさせたものを利用する。
    - 漏洩したとしても被害を最小限に抑えるため
- MFAを設定できるサイトは全て設定する。
    - 漏洩してもログインさせないため
- GoogleやFacebookなどのアカウントでSSOできるものはそちらでログインする。
    - そもそもパスワードを登録するサイトを減らすため

## ついに免除の連絡がくる
不正利用発生から8日後、待望の連絡が来ました。(8日後17:35ごろ)
めちゃくちゃ安堵しました。
```
AWS利用規約では顧客アカウントで生じたすべてのアクティビティに対して責任があります。これはすべての支払いに対してもそうです。
今回限りの対処としてXXXXUSDを返金します。
これは７営業日以内にあなたのカードや銀行口座へ返金されます。
```

# まとめ
まずはAWSサポートの方には丁寧に対応いただき、そして免除してくださり本当に感謝です。これからはセキュアにAWSアカウントを運用していくことを心に刻みました。

一方、今回の件は大きく２つの学びを得ました。

## AWS不正利用への対処
不正利用されてしまったとき、基本的には最初のアラートメールに記載がある通りですが、以下の太字の点に注意して対処していくのが良いと思いました。

1. CloudTrailログを**全リージョン分確認**して、心当たりのないログを片っ端から確認していく。
    - リソースの消し忘れの防止
1. ログから判明した不正利用されているリソースを片っ端から終了していく。**（全リージョン確認）**
1. **英語で**サポートへ返信する。
    - 英語の方が対応が早いと思われる。

ここまでやったらあとはサポートの案内に従って冷静に対処です。必要なことは案内してくれます。

## セキュリティ意識
これまで会社ではかなりセキュリティに気をつかった生活をしていましたが、**プライベートとなると１段、２段くらい意識が低かった**ことは否めません。その結果、危うく大損害を被るところでした。
個人情報の漏洩は、インターネットで便利な生活を享受している以上、どこかでは発生してしまうものと考え、より**リスクを下げるような行動をとることが大切**だと思いました。
具体的には上の繰り返しになりますが、以下を徹底しようと思いました。
- サイトのパスワードは使い回しをやめ、複雑なパスワードを設定しiCloudに覚えさせたものを利用する。
- MFAを設定できるサイトは全て設定する
- GoogleやFacebookなどのアカウントでSSOできるものはそちらでログインする

# 参考
今回の対処にあたり励まされた記事です。
[AWSが不正利用され300万円の請求が届いてから免除までの一部始終](https://qiita.com/AkiyoshiOkano/items/72002409e3be9215ae7e)
[AWSが不正利用されて合計60万円の請求が免除されるまでの一連の流れ](https://techmemo.jp/aws-unauthorized-use/)
[【AWS不正利用】1日で20万円以上の請求が届いてから免除されるまで](https://qiita.com/ichihara-development/items/4d1d82f55b69369ba7bc)