Closed51

SCS学習記録

akisakis

GuardDuty 自動アーカイブ
https://dev.classmethod.jp/articles/guardduty-automatically-archive-findings/

  • 通常GuardDutyの検知結果がマネジメントコンソールに表示される
  • 検知結果は確認後手動でアーカイブするが、定常的に発生する既知の検知結果を毎回手動でアーカイブするのは面倒
  • フィルタで自動アーカイブを有効にしておくと、そのフィルタの検出結果を自動でアーカイブしてくれる
akisakis

S3イベントを別アカウントに送信する構成

  • 送信元アカウントのEventBridgeで、S3イベントを送信先アカウントのEventBridgeのイベントバスに送信
akisakis

侵入テスト
許可された特定のサービスについては、事前承認なしで侵入テストを実行してよい。

AWS のお客様は、[Permitted Services] (許可されたサービス) の下の次のセクションに記載されているサービスについて、事前の承認なしに AWS インフラストラクチャのセキュリティ評価またはペネトレーションテストを実行できます。

https://aws.amazon.com/jp/security/penetration-testing/

スキャンエンジン

管理コンソールで指定されたサーバやクライアント・NW機器などのIT資産に対して、脆弱性スキャンを行うためのコンポーネントです。

https://support.terilogy.com/hc/ja/articles/360026720712-スキャンエンジン

akisakis

KMSキーにキーマテリアルをインポートする方法

  1. キーマテリアルなしでKMSキーを作成
  • キーマテリアルなしでキーを作成するには、オリジンとして EXTERNAL を指定
  • 作成したキーはPendingImport になり、この状態だと暗号化には使用できない
  1. キー作成後、KMS キーの RSA ラップパブリックキーとインポートトークンをダウンロード
  • ラップパブリックキー: AWS アカウント に固有のパブリックキーでキーマテリアルを安全にインポートするための暗号化を行う
  • インポートトークン: キーマテリアルが正しくインポートされたことを保証するメタデータ
  • 各ラップパブリックキーとインポートトークンのセットは 24 時間有効
  • 24 時間以内にキーマテリアルのインポートに使用しなかった場合、新しいセットのダウンロードが必要
  1. ダウンロードしたパブリックキーと指定したラップアルゴリズムを使用してキーマテリアルを暗号化
  2. キーマテリアルをKMSキーにインポート
  • ラップパブリックキーとインポートトークンをダウンロードしたときに指定した KMS キーにインポートする必要がある
  • キーマテリアルをインポートするとEnable状態になり、暗号化に利用できるようになる

https://docs.aws.amazon.com/ja_jp/kms/latest/developerguide/importing-keys-create-cmk.html
https://docs.aws.amazon.com/ja_jp/kms/latest/developerguide/importing-keys-get-public-key-and-token.html

akisakis

KMSキーにキーマテリアルを再インポートする方法
KMSキーからキーマテリアルを削除してしまった場合に再インポートしたい場合の対処

  1. ラップパブリックキーとインポートトークンをダウンロードする際に、再インポートしたい既存KMSキーを指定
  2. ダウンロードしたパブリックキーと指定したラップアルゴリズムを使用してキーマテリアルを暗号化
  3. 削除したものと同じキーマテリアルを、既存KMSキーに再インポート
akisakis

暗号化コンテキストを用いたKMS暗号化

AWS KMSには暗号化コンテキスト(Encryption Context)という形で追加認証データ(AAD)が組み込まれている。暗号化コンテキストを利用することで、データの秘匿性に加えて、完全性、認証性も担保できる。

https://dev.classmethod.jp/articles/cm-advent-calendar-2015-aws-relearning-key-management-service/#toc-14

KMSキーのIAMポリシーの条件にkms:EncryptionContextを追加すると、暗号化コンテキストの使用を条件にできる。

akisakis

EC2インスタンス間のトラフィックを暗号化する方法

アプリのコードに暗号化ライブラリを組み込み、送信前に暗号化する。

akisakis

CloudWatchエージェントの設定ファイル
エージェントが収集するログファイルのパスを指定する必要がある

akisakis

KMSカスタムキーストア

  • キーストアは暗号化キーを保存する場所
  • デフォルトキーストアにHSMを使用している
  • HSMの管理をさらに強化する場合はカスタムキーストアを使う
  • カスタムキーストアで KMS キーを使用する場合、暗号化のオペレーションは、ユーザーのキーマネージャーが、ユーザーの暗号化キーを使用して実行するため、暗号化キーの可用性と耐久性、および HSM のオペレーションに対するユーザーの責任が増える
  • カスタムキーストアには下記の二種類がある
    • AWS Cloud HSM キーストア
    • 外部キーストア

https://docs.aws.amazon.com/ja_jp/kms/latest/developerguide/custom-key-store-overview.html

akisakis

VPNのルートテーブルの設定

  • Site-to-Site VPNで接続されたVPCのオンプレミスのデータセンター間で通信をしている
  • 各サブネット→データセンター間の通信をする場合、データセンターのCIDRブロックが仮想プライベートゲートウェイを経由するようにルートテーブルを設定する
akisakis

AWS Lambda でのコード署名の設定

  • Lambdaにデプロイされたコードの整合性を署名によって確認できる
  • AWS Signer を使ってデジタル署名されたコードパッケージを作成
  • コードパッケージをデプロイすると、Lambdaによってコードパッケージの検証が入る
  • 署名プロファイル
    • コードパッケージに署名できるユーザーを制御する

https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/configuration-codesigning.html

akisakis

Amazon Inspector

  • EC2インスタンスにインストールしたAmazon Inspector エージェントが取得する情報からセキュリティ評価をする
  • 評価内容は大きく分けて下記の二つ
    • EC2のネットワークアクセス
    • アプリケーションのセキュリティ
  • 評価テンプレートに沿って自動でセキュリティチェック
    • ルールパッケージ: セキュリティチェックのコレクション
    • 評価実行期間
    • 通知の送信先
  • セキュリティチェック内容はAWSが作成したものから選択し、自分で独自の内容は定義できない
  • ホスト評価ルールの例
    • CVE
    • CIS
    • OS構成のベンチマーク
    • セキュリティベストプラクティス
  • 評価ターゲット: Inspectorの評価対象
    • 対象リージョンすべてのインスタンスを含められる
    • 個別にインスタンスを指定したい場合はタグを使う
akisakis

各AWSセキュリティサービスで検知する内容

  • Inspector→EC2の脆弱性検知
  • GuardDuty→AWSアカウント内のセキュリティ検知
  • Macie→S3上の個人情報検知
akisakis

別アカウントへのKMSキーの許可

  • KMSキーを別アカウントに許可することは可能
  • キーポリシーのPrincipalに書く
akisakis

AWS管理キーのキーポリシーは設定できない

akisakis

access-keys-rotatedルールの設定期間

  • アクセスキーの生成後の経過期間を90日間検知可能
  • これ以上の期間はEventBridgeとLambdaを用いる
akisakis

SecurityHubデプロイのポイント

全リージョンと全AWSアカウントを対象にする。

akisakis

SecurityHub ワークフローステータス

検出結果の調査状況を追跡するステータス

ステータスの値

  • 新規(NEW)
  • 通知済み(NOTIFIED)
  • 抑制済み(SUPPRESSED)
  • 解決済み(RESOLVED)
akisakis

BatchUpdateFindingsAPI

SecurityHubの検出結果のフィールドを更新するAPI

akisakis

SecurityHubでは、個別のセキュリティチェックを無効化することが可能

akisakis

GuardDutyに信頼できるIPリストを伝える方法

  • 信頼できるIPリストを記載した構成ファイルをプレーンテキストで作成する
  • 構成ファイルをS3にアップロードする
akisakis

S3にCloudfrontディストリビューションからのみアクセスできるようにする方法

OAI + パブリックアクセスブロック

akisakis

DNSクエリログ

次の DNS クエリをログ記録できます。
指定した Amazon Virtual Private Cloud VPC で発生するクエリ、およびこれらの DNS クエリに対する応>答。
インバウンドの Resolver エンドポイントを使用する、オンプレミスのリソースからのクエリ。
再帰的な DNS 解決にアウトバウンドリゾルバーのエンドポイントを使用するクエリ。
Route 53 Resolver DNS Firewall のルールを使用して、ドメインリストをブロック、許可、またはモニタリングするクエリ。

https://docs.aws.amazon.com/ja_jp/Route53/latest/DeveloperGuide/resolver-query-logs.html

akisakis

Contributor Insights

ログデータを分析し、コントリビューターデータを表示する時系列を作成できます。

システムのパフォーマンスに影響を与えている人や物を判断できます。たとえば、不良ホストを検出したり、最も重いネットワークユーザーを特定したり、エラーを最も多く生成する URL を検索したりできます。

https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/ContributorInsights.html

akisakis

CloudTrailが無効になっていた場合の調査

  • GuardDutyからCloudTrailLoggingDisabledイベントの詳細をDetectiveで調査できる
    • イベントに関連するユーザー名
    • CloudTrailが無効になっている間に発生したアクションを特定できる
akisakis

ECR イメージスキャンニング

  • コンテナイメージ内のソフトウェアの脆弱性をチェックできる
    • 拡張スキャン
      • Inspectorと統合して、自動継続的にスキャンを実行
      • OSとプログラミング言語パッケージの両方の脆弱性をチェック
    • ベーシックスキャン
      • オープンソースのClairプロジェクトのCVEデータベースを使用
      • プッシュ時に自動スキャン
      • 手動スキャンも可

https://docs.aws.amazon.com/ja_jp/AmazonECR/latest/userguide/image-scanning.html

akisakis

IAMユーザーのアクセスキー漏洩時の対応手順

  1. これらの資格情報がアクセスできるリソースを特定し、許可されたアクセスを確認する。
  2. 資格情報を無効化し、アカウントへのアクセスを防ぐ。
  3. 暴露された資格情報を使用して発行された一時的なセキュリティ資格情報を無効化する。一時的な資格情報の有効期限が切れるのを待たず、すぐに無効化する。
  4. 適切なアクセスを回復する。IAM ユーザーを作成するか、長期間有効な AWS 資格情報の代わりに IAM ロールやフェデレーションを使用することを検討。
  5. S3 バケットのログや AWS CloudTrail ログを調べて、発生した可能性のあるアクションを特定する。。

https://aws.amazon.com/jp/blogs/security/what-to-do-if-you-inadvertently-expose-an-aws-access-key/

akisakis

CloudTrailのログをKDSに直接送信することはできない。

このスクラップは6ヶ月前にクローズされました