事例分析:AWS アクセスキーの漏洩による事故
前回の記事に引き続き、今回の記事ではクラウド事故を引き起こすAWSのセキュリティリスクTOP3のうち第3位:IAMにおける利用を終了したアクセスキーを過去のインシデントを元に深掘りしていきます。
AWS アクセスキーとは
AWSの公式ドキュメント *1 を参考にすると、アクセスキーとはIAMユーザーまたはAWSアカウントのルートユーザーの永続的な認証情報です。認証情報であるため、様々なAWSに関する署名やログインができてしまいます。
過去の事例を説明する前に、アクセスキーの仕組みを説明します。アクセスキーはAccess Key IDとSecret Access Keyで構成されます。例えば、aws cliでプロフィールの作成をする場合は次のようになります。
ちなみに、これはAWSに特化したCTFのようなflawsというものを解く際に使用したものであるため本記事で公開しても問題はありません。
このような設定値をスクリプトに直接記述しているものを、GitHub等に直接アップロードしてしまい不正利用される例も存在します。
それでは不正利用されているケースをご紹介します。
事例: 株式会社ベーシック ferret One に不正アクセス *2
この事例では、不正アクセスを受けた影響でアクセスキーが漏洩し被害が発生しました。漏洩したアクセスキーは従業員27名で共有しており、内1名のPCにマルウェア感染が起きアクセスキーが漏洩しました。
二次被害としては、不正にEC2インスタンスを作成・使用され$1166.55の金額的な被害を受けました。このEC2インスタンスは仮想通貨マイニングシステムで利用されました。アクセスキーの権限的には、個人情報へのアクセスが可能だった模様ですが個人情報の漏洩はなかったそうです。
再発防止策では以下の対応が行われました。
AWS へのアクセスは指定IPアドレスからの接続に限定
AWS アクセスキーの権限を必要最低限に限定
不要なアカウントの棚卸と削除
まとめ
このように、アクセスキーが漏洩する流れはある程度定型化しています。
アクセスキーの漏洩は漏洩という一時被害ではとどまらず、その後の不正利用がもっともインパクトを与えます。被害を抑えるためには以下の方法が考えられます。
アクセスキーを定期的にローテーションする
これにより、侵害されたアクセスキーを用いたアクセスをある程度抑えれますそのアクセスキーを持つアカウントの権限を最小限に設定する
ルートアカウントや管理者権限を持つIAMユーザーのアクセスキーは発行せず、アクセスキーに付与される権限を最小にすることで、さらなる被害を抑えます。また、不要なアクセスキーは削除しましょう
アクセスキーに関する対応ではないですが、MFA認証を導入することで不正なインスタンスの作成・起動に気付ける可能性もあります。
引用資料一覧
1: https://docs.aws.amazon.com/jajp/IAM/latest/UserGuide/idcredentials_access-keys.html
2: https://ferret-one.com/notice/20181220
執筆者
首浦大夢
CloudbaseでSecurity Researcherをしています。趣味でマルウェア解析してます。