漏洩したシークレットの無効化とローテーション
侵害されたキーを無効にし、安全に置き換えを発行します。
「漏洩したシークレットの無効化とローテーション」はCoddyKit上の無料Cloud & IT Cert Prepレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCloud & IT Cert Prep学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cloud & IT Cert Prepコースには全4レッスンが含まれています。
迅速かつ慎重に行動する
認証情報の漏洩が確認されたら、迅速さが重要です。ただし、手順の順序も同じく重要です。何に依存しているかを先に把握せずにキーを突然無効化すると、本番環境を停止させるおそれがあります。
理想は、正規のワークロードを稼働させたまま攻撃者を締め出すことです。あらかじめ訓練した一連の手順を一度で実行できる状態を目指します。
削除する前に無効化する
漏洩したアクセスキーに対する最初の操作は、削除ではなく無効化です。キーのステータスを Inactive に設定すれば、直ちに使用できなくなります。
今はキーを(無効な状態で)残しておくことで、CloudTrail でのフォレンジックな相関分析に利用できます。削除するのは、調査が完了してからです。
aws iam update-access-key \
--access-key-id AKIAEXAMPLE \
--status Inactive新しいキーにローテーションする
正規の用途で使用している場合、ローテーションとは、新しいアクセスキーを発行し、古いキーを使用しているすべての場所を更新してから、侵害されたキーを無効化することです。
この順序で行えば、新しい認証情報を有効にしてから古いキーを停止できるため、停止を回避できます。必ず新しいキーでアプリケーションが動作することを先に確認してください。
アクティブなセッションを取り消す
長期的なキーを無効化しても、そのキーがすでに発行した一時的な認証情報までは無効になりません。ロールの場合は IAM のセッションの取り消し機能を使用します。この機能は、トークン発行のカットオフ時刻に基づく拒否ポリシーをアタッチします。
これにより、その時刻より前に開始されたすべてのアクティブなセッションが無効になり、攻撃者の手元にある認証情報を一気に使えなくできます。
すべての使用箇所を見つける
ローテーションの前に、シークレットがどこに存在するかを把握します。CloudTrail で、そのキーを使用したサービスと IP を確認できます。
シークレットが多くの場所にハードコードされていることこそ、ハードコードが危険な理由です。すべての利用箇所を洗い出せば、ローテーションによって忘れられたシステムが壊れたり、シークレットのコピーが残って使われ続けたりするのを防げます。
Secrets Manager のローテーション
AWS Secrets Managerは、データベースのパスワードや API キーなどのシークレットを保存し、Lambda 関数を使ってスケジュールに従い自動的にローテーションできます。
自動ローテーションにより、漏洩したシークレットが有効な期間を短くできます。また、アプリケーションは古くハードコードされたコピーを保持するのではなく、実行時に最新の値を取得できます。
依存関係を忘れない
1つの漏洩した認証情報から、別の認証情報まで解除されることがあります。攻撃者がキーを使ってデータベースを読み取った場合、そのデータベースのパスワードも侵害されている可能性があります。
依存先のシークレットもローテーションします。連鎖を考え、攻撃者が触れた可能性のあるすべてのシークレットを、露出したものとして扱い、交換する必要があります。
隔離ポリシー
AWS が露出を検出すると、ユーザーにAWSCompromisedKeyQuarantineV2をアタッチすることがあります。これにより、高リスクの操作を拒否しながら調査を続けられます。
単にこのポリシーをデタッチして終わりにしないでください。これは、無効化、ローテーション、レビューという実際の修復を、まだ自分で完了する必要があることを示すフラグです。
実行された操作をレビューする
ローテーションによって今後の悪用は止められますが、過去の被害は元に戻りません。CloudTrail を使って、侵害された認証情報が実行したすべての操作を一覧にします。
不正な変更をロールバックします。不正に作成された IAM ユーザーを削除し、バックドア用のキーを削除し、攻撃者が作成したリソースを破棄します。封じ込めとクリーンアップは、別々に必要な手順です。
次の被害を防ぐ
復旧後は、将来のリスクを減らします。長期的なキーをロールベースの一時認証情報に置き換え、シークレットの自動ローテーションを有効にし、CI/CD パイプラインにシークレットスキャンを追加します。
最も強力な対策はアーキテクチャによるものです。漏洩する静的なシークレットが存在しなければ、攻撃者が見つけるものも存在しません。
連絡して記録する
記録が完了するまで、修復は終わりではありません。どの認証情報をローテーションしたか、攻撃者が何を行ったか、何をロールバックしたかを記録します。
ランブックに記載された関係者に通知し、規制対象のデータが露出した場合は、情報漏洩の通知義務に従います。明確な記録は、インシデントを教訓に変え、後の監査にも対応できるようにします。
クイックチェック
最初に行うべき操作を選択してください。
まとめ
漏えいした認証情報に対処するには、アクセスキーを無効化してフォレンジック調査用に保持し、停止時間を発生させずに新しいキーへローテーションし、すでに発行された一時認証情報を無効にするためにアクティブなロールセッションを取り消します。まず、利用しているすべてのサービスやアプリケーションを特定し、攻撃者が到達した可能性のある下流サービスのシークレットをローテーションして、CloudTrail から悪意のある変更をロールバックします。自動ローテーションにはSecrets Managerを使用し、再発防止のためにロールベースの一時認証情報へ移行します。
よくある質問
「漏洩したシークレットの無効化とローテーション」レッスンは無料ですか?
はい。「漏洩したシークレットの無効化とローテーション」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cloud & IT Cert Prepコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cloud & IT Cert Prepコースには全4レッスンが含まれています。
「漏洩したシークレットの無効化とローテーション」で何を学びますか?
侵害されたキーを無効にし、安全に置き換えを発行します。 ブラウザで直接実行するハンズオンコードでCloud & IT Cert Prepを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Cloud & IT Cert Prepを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのCloud & IT Cert Prepは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「漏洩したシークレットの無効化とローテーション」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このCloud & IT Cert Prepレッスンでコードを書いて実行できますか?
はい。すべてのCloud & IT Cert Prepレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- アクセスキー漏洩の兆候
- 漏洩したシークレットの無効化とローテーション
- 侵害されたEC2インスタンスの隔離
- フォレンジックのためのボリュームのスナップショット取得