まえがき
cloudpack 木村(富)です。
本記事はAWS アクセスキー漏洩について案内させていただきます。
<AWS アクセスキー>
アクセスキーは、IAM ユーザーまたは AWS アカウントのルートユーザー の長期的な認証情報です。
<AWS アクセスキー 漏洩問題>
アクセスキーが漏洩しているとAWSから以下のような件名のアラートメールが送付されます。
緊急性は高く早急な対応と対策を実施する必要があります。
・Irregular Activity Detected for Your AWS Access Key for Account AWS Account
・Your AWS Access Key is Exposed for AWS Account
・Unexpected Activity Detected on your AWS Account AWS Account
・Your AWS account is compromised
アクセスキーが漏洩すると悪意ある者がAWSアカウントに侵入し、AWSサービスを不正使用して多額の費用を支払うことになったり、機密情報を盗まれるなど重大なセキュリティインシデントが発生する恐れがあります。
実際に多数の事案が発生しております。
近年、アクセスキー漏洩が増加しておりますので本記事がお役に立ちますと幸いです。
◾️原因
アクセスキーが漏洩する原因ですが様々な要因があります。
以下内容が全てではございませんが参考になりましたら幸いです。
【ソースコードとバージョン管理システムからの漏洩】
●公開リポジトリに誤ってコミットする(発生頻度が高いです)
アクセスキーを含むソースコードをGitHubのような公開バージョン管理システムに誤ってプッシュしてしまう。
こちらは悪意あるボットによって常時スキャンされており、アクセスキーがプッシュされてから数十分で悪用されるケースもあるようです。
●設定ファイルやソースコードにアクセスキーを直接記載する。
AMIやECSのコンテナイメージに直接アクセスキーを記載している。
Terraform等のサードパーティツールに直接アクセスキーを記載している。
例え一時的であってもそれを実行することでログが保存され、このログが漏洩の元になる可能性があります。
【ユーザー環境のセキュリティ不備】
●キーロガーやスパイウェアなどのマルウェアに感染する。
ユーザーが不審なメールやWebサイトへアクセスすることにより感染する可能性があります。
フィッシングサイトによりIDとパスワードが窃取され、AWSアカウントに侵入される。
●不適切な管理
アクセスキーが誰でも読み取れるテキストファイルや保護されていないスプレッドシートに保存されている。
簡単に持ち出し可能な状態にしている。
メールやアプリなどでアクセスキーを共有している。
退職者アカウントを削除しておらず悪用される。
【AWS S3バケットからの漏洩】
●S3バケットのパブリック設定の問題
●S3バケットACL (Access Control List)の設定が「ACL 有効」となっており、適切なACLでない。
こちらも悪意あるユーザーやボットによって狙われています。
AWS S3バケットのパブリックアクセス設定が誰でもアクセスできる状態であり、アクセスキーが含まれたログや設定ファイルがあると情報が漏洩する可能性があります。
以上のような原因が挙げられます。
◾️調査方法
冒頭のAWSからの通知内に漏洩しているIAMユーザーとアクセスキーが記載されていることがあります。(予期せぬアクティビティを疑われ、ない場合もあります)
Githubなどでオンライン公開されている場合はそのURLが記載されていることがあります。
そのため、該当IAMユーザーとアクセスキー、URLからどのように漏洩したか調査してください。
しかしながらオンライン公開されていない場合は漏洩しているIAMユーザーとアクセスキーのみがわかる状態です。(予期せぬアクティビティを疑われている場合は不審なリソースがないか確認してください)
こちらの調査は漏洩したIAMユーザーの用途や利用者に確認してどのような設定(アクセスキーをコードに直接入力したか)、共有(誰かに渡したか)、保存方法(S3や誰でも閲覧できるファイルに保存していないか)などを確認していただくことになります。
上記の原因を参考に調査してください。
◾️対応方法
実際にアクセスキーが漏洩してAWSから通知が送付されると以下のような対応方法が記載されています。
※以下は参考です。実際の通知内容とは異なります。
<1>
アクセスキーが漏洩しているとされるIAMユーザーに「AWSCompromisedKeyQuarantineV2」のIAMポリシーが付与されていることを確認してください。
これはAWS側が機能を抑制するために付与したものになります。
このポリシーの削除は基本的に非推奨です。削除されます場合は以下の後続対応後に利用者様の判断にてお願い致します。
※ポリシー削除は管理者権限を持つユーザー、もしくは「iam:DetachUserPolicy」のアクセス権を持つユーザーで可能です。
Description: Denies access to certain actions, applied by the AWS team in the event that an IAM user's credentials have been compromised or exposed publicly. Do NOT remove this policy. Instead, please follow the instructions specified in the support case created for you regarding this event. (訳) 説明: IAM ユーザーの認証情報が侵害された、または公開された場合に AWS チームによって適用される、特定のアクションへのアクセスを拒否します。 このポリシーは削除しないでください。 代わりに、このイベントに関して作成されたサポートケースに記載されている手順に従ってください。
・AWSCompromisedKeyQuarantineV2
<2>
アクセスキーを置き換えてください。
アクセスキーを置き換える場合は、該当のアクセスキーを削除する前に2つ目の新しいアクセスキーを作成してください。
そして新しいアクセスキーを使用するように設定変更してください。
コンソールアクション「無効化」を選択して該当のアクセスキーを削除せずに無効化してください。
もし、アプリケーション等に問題がある場合は漏洩している該当アクセスキーを再利用できます。
新しいアクセスキーを使用して問題なければ漏洩している該当アクセスキーを削除してください。
問題を解決するためにも最終的に該当アクセスキーの削除が必要になります。
・アクセスキーを更新する
<3>
Cloud Trailログで不要なアクティビティがないか確認してください。
悪意ある者が別途IAMユーザーを作成していないか、関連するパスワード(ログインプロファイル)、アクセスキー、ロール、一時的なセキュリティ認証情報などアカウントに不要なアクティビティがないか確認してください。
間違って必要なアカウント情報を削除しないように十分に注意してください。
<4>
AWSアカウントに不要なAWS利用がないか確認してください。
各サービスページを確認してEC2インスタンス、Lambda関数、EC2スポット入札など不要な利用がないか確認してください。
「請求とコスト管理」でも確認できます。
不要なAWS利用はどのリージョンで行われているかわかりません。必ず全リージョンご確認ください。
<5>
上記<1>~<4>までを確認、実施したらAWS通知に対して対応した内容を記載して返信してください。
・全てのアクセスキーをローテーションした旨
・不正に起動されたリソースの確認と削除した旨
[参考]
AWS アカウントの不正なアクティビティに気付いた場合、どうすればいいですか?
◾️対策
<対策1>
アクセスキーが漏洩しないために予め対策を実施してください。
下記AWSドキュメントにIAM利用のベストプラクティス、アクセスキーの代わりに一時的な認証情報を利用するなどをご検討ください。
・IAM ユーザーのアクセスキーを管理する
・IAMにおけるセキュリティのベストプラクティス
・IAM の一時的なセキュリティ認証情報
アカウントにWeb向けのリソースまたはAPIをお持ちの場合は、既知の侵害タイプからワークロードを保護できるAWS WAFのご利用をご検討ください。
・AWS WAFとそのコンポーネントの設定
また、AWSより防止策として以下のような案内がございます。
<対策2>
意図しない請求をモニタリングするため、以下記載のうち少なくとも2つのサービスについて有効化を推奨されています。
<AWS Budgets>
・AWS Budgets でコストを管理する
<AWS CloudTrail>
・AWS CloudTrail とは何ですか?
<AWS Trusted Advisor>
・Trusted Advisorの推奨事項を使い始める
<AWS Cost Anomaly Detection(コスト異常検出)>
・AWS コスト異常検出
※弊社請求代行サービスをご利用されておられますお客様においてはAWS Cost Anomaly Detection(コスト異常検出)はご利用いただけません。
<対策3>
セキュリティを強化するため、以下記載のうち少なくとも1つのサービスについて有効化を推奨されています。
<MFA>
・AWS IAMにおける多要素認証
<AWS Security Hub>
・AWS セキュリティハブとは何ですか?
<Amazon GuardDuty>
・GuardDutyを使い始める
◾️よくあるお問い合わせ
<どのように調査したら良いかわからない>
調査方法について問い合わせがありますが、具体的な調査方法についてはどのような経路で漏洩したかAWSに問い合わせてもAWS側でもわからないため回答いただけません。
そのため、予めアクセスキーが漏洩しないように対策を実施してください。
何卒、ご了承の程よろしくお願い致します。
<AWSの検知システムについて>
こちらについても問い合わせがあります。
しかしながらAWSに問い合わせしても機密情報のため回答いただけません。
こちらを公表するとそのシステムを回避したり悪用される恐れがあるためとのことですので予めご了承の程よろしくお願い致します。
以上になります。
参考になりましたら幸いです。
あとがき
AWS アクセスキー漏洩ですが、こちらと連動するのがAWS 不正使用です。
AWSアカウントを乗っ取られたり、すぐに気づかれないように普段使用しているリージョンとは別でインスタンスやサービスを使用する行為が発生しています。
数百万円規模の被害も出ています。
またAWS 不正使用されておられますとAWSアカウント自体を停止されることもございますので十分ご注意ください。
運用やセキュリティにご不安がございましたら弊社運用・保守サービスをご検討いただけますと幸いです。
AWS運用・保守サービス