見出し画像

しくじり先生ーAWS個人アカウントに不正アクセスされて$800請求された話

他人事だと思っていた「AWSアカウントが不正アクセスされてXX万円の請求がきた」なんてブログの話の当事者に僕がなってしまった話です。

かつての僕同様、個人アカウントへの不正アクセスが他人事だと思っている方にむけて不正アクセスされた経緯を書きます。

■不正アクセスされた経緯

2021/9/23 21:00頃 自分の操作ミスで意図せずgithubにAWSシークレットキーが記載されたファイルをアップロード
          
          アップロード後、githubとAWSからgithub上でAWSシークレットキーが検出された旨のメールが送られてくる。
          このAWSシークレットキーの文字列が分かれば、誰でも僕のAWSアカウントを使い放題。
          一瞬動揺する。が、キーを無効化すれば問題ないと分かっていたのですぐ冷静を取り戻す。

2021/9/23 21:21頃 公開したAWSキーを無効化&キー情報をgithub上から削除

          冷静に対処できたと一安心。
          引き続きAWSを使って作業する必要があったため新規にAWSキーを発行した。

2021/9/23 21:25頃 新しいAWSキーを作成

2021/9/23 21:51頃 またまた自分の操作ミスで、新規に作成したAWSキー情報を再びgithubに公開

          githubの操作に慣れておらず、2回同じミスをしてしまう。これが不正アクセスされるきっかけになる。
          再びgithubから警告メールが飛んでくる。さすがに焦ってくる。

2021/9/23 21:52頃 間違って公開したキー情報をgithub上から削除

          この時、自分のAWSキーをつかった作業を継続したかったため、新規AWSキーを無効化しないままにしてしまう。
          github上からキー情報を削除すれば、問題ないんじゃないか?と思ってしまったのかもしれない。。
          ちなみに、githubにキーが公開されたことをAWS側が検知すると、AWSキーの利用権限に制限がかかる。
          この仕様によってread権限のAPIしか発行できなくなるのだが、AWSの作業を行うために自分でこの制限を削除してしまった。。

2日後

2021/9/25 17:00-19:30 不正アクセス

          100個ぐらいのEC2インスタンスを2時間だけ起動された。仮想通貨のマイニングにでも利用されたんだと思う。
          ちなみに、この時点で不正アクセスをうけたことには僕は気づいていない。

2021/9/25 20:48頃 AWSカスタマーサポートから普段と異なるアクティビティが検出された旨のメール連絡が入る

          メールを確認したが、不正アクセスをうけたことには気づかず。
          とりあえず、AWS側の指示通りrootユーザのパスワードを変更した。

2021/9/25 21:00頃 rootユーザのパスワード変更

翌日

2021/9/26 9:00頃 AWS使用料金が見たことない数字になってることに気づく

         僕は毎朝9:00頃にAWS利用料金をLINEに飛ばすよう設定しているため、この時点で不正アクセスされたことに気づいた。
         が、github上のキー情報は削除していたためなぜ不正アクセスをうけたのか理解できなかった。

2021/9/25 10:30頃 AWS側へカスタマーサポートのポータル画面経由で自身の対応状況を伝える

          自身の対応状況を確認してるときに、新規作成したAWSキーの無効化対処をせず放置してることに気づく。

2021/9/26 10:31頃 再度rootユーザのパスワード変更&新規AWSキーを無効化

以降、無効化した2つのAWSキーを削除したり、不正アクセスをうけて作成された大量のEC2インスタンスを削除したり等、AWSカスタマーサポートからの指示通り対応を進めました。

AWSとのやりとりの中で、不正アクセスで発生した料金の返金処理ができないかも問い合わせました。

[追記]EC2インスタンス削除コマンド

# インスタンス削除保護の無効化
for i in $(
aws ec2 describe-instances \
--query 'Reservations[*].Instances[].InstanceId' \
--output text
); do
 aws ec2 modify-instance-attribute \
 --instance-id ${i} \
 --no-disable-api-termination
done

# インスタンス削除
for i in $(
aws ec2 describe-instances \
--query 'Reservations[*].Instances[].InstanceId' \
--output text
); do
 aws ec2 terminate-instances \
 --instance-ids ${i}
done

■不正アクセス原因

githubに公開してしまったAWSキーを無効化せず、利用可能な状態で放置したこと。github上からキー情報がかかれたファイルを削除するだけでは意味がない

キー公開から不正アクセスまで1日半のタイムラグがあったため、すみやかにAWSキーを無効化すれば不正アクセスされることはなかった。


■不正アクセスされないためには

以前の僕みたいに、不正アクセスされる原因や必要な対処方法を曖昧に理解している状態だと、いつか問題が起きる可能性が高いです。
AWSを個人利用される方はセキュリティ事故に関する事例や対策方法の記事を読んでください。
また、AWSカスタマーサポートから来たメールは、流し読みしちゃだめです。


■返金処理について

最終的には、不正アクセスをうけてEC2複数台を2時間起動した料金+EBS,NWもろもろの料金含め返金処理していただくことができました。
毎月の利用料金が300円程度なので、過去の利用状況を考慮して返金額を調整いただけたようです。

請求額合計:91,981円(税込み)
返金額合計:91,685円(税込み)

ただし、返金処理のメッセージには以下の一文が含まれていました。
"As part of the AWS Customer Agreement, customers are responsible for all activities that occur under their accounts."
不正アクセスだろうと責任は利用者にあるって契約書には書いてるからね、、と

AWSさんに足向けて寝れないっす。

よろしければサポートお願いします!頂いたサポート費は、執筆活動に使わせて頂きます。