Windows 10 & 11のセキュリティ関連　自分用メモ書き

# BIOS
有効化するもの

__DMA protection__
Kernel DMA protectionに必要
__IOMMU__
大体すべてに必要
__SVM__
Virtualization-based Securityに必要
__fTPM__
Bitlockerとその他に必要
__Secure boot__
大体すべてに必要
__Modern standby (S0)にする項目__
PCR[7]に必要


# ごった煮


### Virtualization-based Security
https://docs.microsoft.com/ja-jp/windows-hardware/design/device-experiences/oem-vbs
### System Guard Secure Launch and System Management Mode (SMM) protection
https://docs.microsoft.com/ja-jp/windows/security/threat-protection/windows-defender-system-guard/system-guard-secure-launch-and-smm-protection

AMDシステムで使うにはSKINIT packageというものがWindowsに統合されていなければいけない。SKINIT packageは「Secured-core PC（Microsoftが認定したセキュアな量販PC）には入ってるらしい。自作PCで使えないの悲しい。

https://www.microsoft.com/security/blog/2020/09/01/force-firmware-code-to-be-measured-and-attested-by-secure-launch-on-windows-10/

### Kernel DMA Protection
https://docs.microsoft.com/ja-jp/windows/security/information-protection/kernel-dma-protection-for-thunderbolt

https://docs.microsoft.com/ja-jp/windows-hardware/design/device-experiences/oem-kernel-dma-protection
### BitLocker
とても良い記事を書いてくださっています
https://cutxout.hatenadiary.jp/entry/20210708/1625753201
manage-bdeでごにょれる
以下TPMとPIN併用で使うことをベースとする

#### BitlockerとDevice encryption(デバイス暗号化)の違い
デバイス暗号化は簡単化されたBitlockerでHomeエディションでも使える。
デバイス暗号化はMicrosoft accountが必要らしい。
デバイス暗号化は管理ができずに突然回復キーを求められどうしようもなくなる残念仕様らしい。
デバイス暗号化を使う意味はない。

したがってMSINFO32にある「デバイス暗号化のサポート」が失敗してても無視してよい、と思う
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/656367/030dc520-1938-b013-21d0-83bbaf131692.png "デバイスの自動暗号化が失敗した理由: ハードウェア セキュリティ テスト インターフェイスにエラーが発生しました。デバイスはモダン スタンバイではありません, 許可されていない DMA 対応バス/デバイスが検出されました")

#### BitlockerへのDMAからの攻撃
Kernel DMA Protectionを有効にしておけば対策不要らしい。

https://support.microsoft.com/ja-jp/topic/bitlocker-%E3%81%AB%E5%AF%BE%E3%81%99%E3%82%8B-1394-dma-%E3%81%A8-thunderbolt-dma-%E3%81%AE%E8%84%85%E5%A8%81%E3%82%92%E8%BB%BD%E6%B8%9B%E3%81%99%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AE-sbp-2-%E3%83%89%E3%83%A9%E3%82%A4%E3%83%90%E3%83%BC%E3%81%A8-thunderbolt-%E3%82%B3%E3%83%B3%E3%83%88%E3%83%AD%E3%83%BC%E3%83%A9%E3%83%BC%E3%81%AE%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF-bf0ef10b-f563-5cfc-9740-8340b1d86a0c

追記 2023-02-27
https://learn.microsoft.com/ja-jp/windows/security/information-protection/bitlocker/bitlocker-countermeasures

#### グループポリシーで変えたほうがいい項目
__コンピューターの構成-管理用テンプレート-Windowsコンポーネント-BitLockerドライブ暗号化-オペレーティングシステムのドライブ__

+ スタートアップの拡張PINを許可する
+ スタートアップ時に追加の認証を要求する
 + 互換性のあるTPMが装備されていない～ → TPMあれば外す
 + TPM スタートアップの構成 → TPMを許可する
 + TPM スタートアップPINの構成 → TPMでスタートアップPINを要求する
 + TPM スタートアップキーの構成 → 許可しない
 + TPM スタートアップキーとPINの構成 → 許可しない

__コンピューターの構成-管理用テンプレート-システム-トラステッドプラットフォームモジュールサービス__

+ 標準ユーザーのロックアウト期間 → 720分
+ 標準ユーザーごとのロックアウト閾値 → 6回
+ 標準ユーザー全体のロックアウト閾値 → 6回

（効かないという噂有り）


#### TPMを後から有効にする方法

```Powershell:現状
ボリューム C: []
[OS ボリューム]

    サイズ:                 930.87 GB
    BitLocker のバージョン: 2.0
    変換状態:               使用領域のみ暗号化
    暗号化された割合:       100.0%
    暗号化の方法:           XTS-AES 128
    保護状態:               保護はオンです
    ロック状態:             ロック解除
    識別子フィールド:       不明
    キーの保護機能:
        パスワード
        数字パスワード
```

パスワードは　-Password
数字パスワードは　-RecoveryPassword
のことのようなので-Passwordを削除して-TPMAndPINを有効にすればいい
PINにアルファベット使えるようにするにはgpedit.mscでスタートアップの拡張PINを許可するを有効にしておく必要があると思う


### Windows Defender Credential Guard
https://docs.microsoft.com/ja-jp/windows/security/identity-protection/credential-guard/credential-guard-manage

### TPMのPCR

__使用されている PCR バンクを特定するにはどうすればよいですか?__
レジストリに書き込まれている。

https://learn.microsoft.com/ja-jp/windows/security/information-protection/tpm/switch-pcr-banks-on-tpm-2-0-devices

__Firmware protectionにはPCR[7]が必要らしい。__]

https://learn.microsoft.com/ja-jp/windows/security/threat-protection/windows-defender-system-guard/system-guard-secure-launch-and-smm-protection

>注意
>System Guardセキュア起動を有効にするには、プラットフォームは、System Guard、Device Guard、Credential Guard、仮想化ベースのセキュリティに関するすべてのベースライン要件を満たす必要があります。

__Bitlockerは既定でPCR[7]とPCR[11]を使用する。__

https://learn.microsoft.com/ja-jp/windows/security/information-protection/bitlocker/bitlocker-group-policy-settings#about-the-platform-configuration-register-pcr

>PCR 7 測定は、Microsoft Surface RT などのモダン スタンバイ (Always On、Always Connected PC とも呼ばれます) をサポートするシステムに必須のロゴ要件です。 このようなシステムでは、PCR 7 測定とセキュア ブートを備えた TPM が正しく構成されている場合、BitLocker は既定で PCR 7 と PCR 11 にバインドします。

https://learn.microsoft.com/ja-jp/troubleshoot/windows-server/deployment/pcr7-configuration-binding-not-possible

__PCR[7]はモダンスタンバイ(S0 Low Power Idle)が必要らしい。__

S0 Low Power IdleはS3 standby(スリープモード)と同時に有効化できない。変更はUEFI上で行い、変更するには通常はWindowsの再インストールが必要になる。また、最近のマザーボードではS0 Low Power Idleをあまりサポートしていないらしい。(Z690 modern standbyとかで検索)

https://learn.microsoft.com/en-us/windows-hardware/design/device-experiences/modern-standby

https://www.askwoody.com/forums/topic/had-modern-standby-but-it-went-away-when-i-reinstalled-windows/