4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWS Backup で Vault Lock を使ったランサムウェア対策をやってみた

Last updated at Posted at 2022-06-12

はじめに

前の記事では、S3 にデータを置いたときのランサムウェア対策例を紹介しました。S3 のオブジェクトロック機能を使うことで、既存ファイルの変更や削除の操作を防ぐことが出来、ランサムウェアによる暗号化といった悪意のある操作を予防できます。一言で表現すると、WORM(Write Once Read Many) を使ったランサムウェア対策を紹介しました。

今回は、より多くのサービスに対するバックアップをカバーする AWS Backup を活用したランサムウェア対策を見ていきます。AWS Backup は、複数のサービスをカバーしている、一元化したバックアップサービスです。そもそも、AWS Backup のバックアップ領域は、AWS 側で管理されている領域になるので、ランサムウェアがデータの暗号化を行うことは出来ない仕組みになっています。ただ、権限があればバックアップデータの削除が出来てしまうので、こういった悪意を持ったデータの操作を防ぐために、AWS Backup の Vault Lock の機能を利用して WORM の構成を実現できます。Root ユーザーなどの特権ユーザーでも、バックアップデータの削除が出来ない仕組みを構成できます。

また、ランサムウェアの対策について、AWS が公開している e-book 「Securing your AWS Cloud environment from ransomware」で包括的に説明されています。例えば、バックアップデータを WORM で保護する点に加えて、以下の点も紹介されています。このあたりも合わせて検討されると良いと思います。

  • Amazon VPC でセキュリティグループやネットワーク ACL を使って環境を分離する
  • IAM で割り当てる権限を必要最低限に抑える
  • AWS Backup を使ったバックアップや、AWS Elastic Disaster Recovery を使った復元
  • 脆弱性管理のための Amazon Inspector や、パッチ適用のための AWS Systems Manager Path Manager の利用
  • インシデントの早期発見である Amazon GuardDuty

それでは、AWS Backup を使った、Vault Lock の設定方法を見ていきましょう。

Backup vault の作成

まず、AWS Backup に Vault と呼ばれる領域を作成します。Vault は、AWS アカウント内で暗号化されたストレージの場所であり、バックアップデータを管理できます。

Create Backup vault を押します。

image-20220612125219019.png

名前などを指定して、Create Backup vault を押します。

image-20220612125334376.png

中身が空の Vault が作成できました

image-20220612125421808.png

Vault Lock を有効にする

新たに作成した Vault に対して、Vault Lock を有効化していきます。マネージメントコンソール上だと設定できないので、今回は AWS CLI で設定を進めていきます。

まず、設定前の状態を確認します。

aws backup describe-backup-vault \
		--backup-vault-name Vault_Lock_Test

Locked が false となっており、Vault Lock が無効です。

> aws backup describe-backup-vault \
      --backup-vault-name Vault_Lock_Test
{
    "BackupVaultName": "Vault_Lock_Test",
    "BackupVaultArn": "arn:aws:backup:ap-northeast-1:xxxxxxxxxxxx:backup-vault:Vault_Lock_Test",
    "EncryptionKeyArn": "arn:aws:kms:ap-northeast-1:xxxxxxxxxxxx:key/07fbe28d-899b-46ee-8346-6686161e87a6",
    "CreationDate": "2022-06-12T12:53:39.611000+09:00",
    "CreatorRequestId": "760f920e-c55c-4add-96b8-9fd5ca0d7d91",
    "NumberOfRecoveryPoints": 0,
    "Locked": false
}

Vault Lock を有効化するコマンドを発行します。以下のオプションを指定しています。

  • changeable-for-days : 指定した期間 Vault Lock に関する設定を変更できる。この期間を超えると変更できなくなる。最小でも 3 以上を指定する必要がある。(これを 3 に指定したとしても、バックアップしたオブジェクトは即時データ保護される。)
  • min-retention-days : データを保持する最短期間。これよりも短い期間のバックアップジョブは失敗する。指定しないことも可能。30 を指定しているので、最低でも 30 日間データを保持するバックアップが必要
  • max-retention-days : データを保持する最長期間。これよりも長い期間のバックアップジョブは失敗する。指定しないことも可能。9999 を指定しているので、最大でも 9999 日間のデータを保持するバックアップが必要 (指定しないことの方が多そう)
aws backup put-backup-vault-lock-configuration \
        --backup-vault-name Vault_Lock_Test \
        --changeable-for-days 3 \
        --min-retention-days 30 \
        --max-retention-days 9999

設定されたことを確認します。Lockedtrue になっており、正常に設定されています。

> aws backup describe-backup-vault \
                  --backup-vault-name Vault_Lock_Test
{
    "BackupVaultName": "Vault_Lock_Test",
    "BackupVaultArn": "arn:aws:backup:ap-northeast-1:xxxxxxxxxxxx:backup-vault:Vault_Lock_Test",
    "EncryptionKeyArn": "arn:aws:kms:ap-northeast-1:xxxxxxxxxxxx:key/07fbe28d-899b-46ee-8346-6686161e87a6",
    "CreationDate": "2022-06-12T12:53:39.611000+09:00",
    "CreatorRequestId": "760f920e-c55c-4add-96b8-9fd5ca0d7d91",
    "NumberOfRecoveryPoints": 0,
    "Locked": true,
    "MinRetentionDays": 30,
    "MaxRetentionDays": 9999,
    "LockDate": "2022-06-15T13:26:17.387000+09:00"
}

手動バックアップ開始

これで、Vault Lock の設定が有効化されたので、動作確認してみましょう。AWS Backup 上で手動でバックアップを取得していきます。 (本番構成では、Backup Plan で自動化する方が多いと思います)

Create on-demand backup を押します

image-20220612133948316.png

バックアップ対象、データ保持期間、バックアップ先の Vault を指定します。Vault Lock で最短30日と指定しているので、それよりも短い 1 日でバックアップをするとどうなるか確認してみましょう。

image-20220612134056880.png

バックアップに失敗しました!想定通りですね。

image-20220612134141054.png

今度は、30 日にしてバックアップを開始します。

image-20220612134257053.png

一定時間後、バックアップが完了しました。

image-20220612134952946.png

保護されているか確認

バックアップデータが保護されているか確認するために、削除を試してみます。Vault Lock で保護されているので、失敗するはずです。

image-20220612135047899.png

失敗しました!これで、Vault Lock による WORM モデルを実現することが出来ました。

image-20220612135125578.png

付録 : Backup Plan の作成手順

自動バックアップのための、Backup Plan の作成手順を残しておきます

Create

image-20220612132906148.png

適当に名前を指定

image-20220612133425510.png

バックアップ先の Vault を指定

image-20220612133513273.png

Create Plan

image-20220612133545090.png

バックアップ対象をアサインする

image-20220612133639700.png

バックアップ対象を選択してアサインする

image-20220612133746645.png

検証を通じてわかったこと

参考 URL

AWS Document
https://docs.aws.amazon.com/aws-backup/latest/devguide/vault-lock.html

[アップデート] AWS Backupがボールトのロックをサポートしました
https://dev.classmethod.jp/articles/aws-backup-supports-vault-lock/

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?