知識マップ: PowerShellの実行ポリシーとスクリプト署名 ── 「Bypassで蓋をする」運用から卒業する実務ガイド
記事「PowerShellの実行ポリシーとスクリプト署名 ── 「Bypassで蓋をする」運用から卒業する実務ガイド」の主張を、概念と関係(エッジ)に分解した知識グラフの全体です。各関係には根拠・確認日・確度が付いています。
PowerShellの実行ポリシーはセキュリティ境界ではなく安全装置で、複数のスコープを持ち、グループポリシーの設定がすべてに優先します。RemoteSignedはインターネット由来を示すZone.Identifier(Mark of the Web)が付いた未署名スクリプトだけをブロックし、内容を確認できればUnblock-Fileで印を除去して通せます。より厳格なAllSignedやスクリプト配布時の署名にはコード署名証明書が必要で、Set-AuthenticodeSignatureとタイムスタンプサーバーの指定により、証明書の期限切れ後も署名を有効に保てます。自己署名証明書を各端末の信頼ストアへ配れば配布は可能ですが、その証明書自体が信頼の起点になるため秘密鍵の漏えいリスクを引き受けることになり、常用のBypass指定はグループポリシー管理下では効かず安全装置を放棄する運用になります。
flowchart LR
accTitle: PowerShellの実行ポリシーとスクリプト署名の知識マップ
accDescr: 実行ポリシーのグループポリシーによる優先、RemoteSignedとZone.Identifier(Mark of the Web)の関係、Unblock-Fileによるブロック解除、コード署名証明書によるSet-AuthenticodeSignatureとタイムスタンプ、自己署名証明書配布のリスクの関係を示す図
execution_policy["PowerShell実行ポリシー"]
code_signing_cert["コード署名証明書"]
powershell["PowerShell"]
group_policy["グループポリシー"]
bypass_policy["Bypassポリシー"]
remotesigned_policy["RemoteSignedポリシー"]
zone_identifier["Zone.Identifier(Mark of the Web)"]
alternate_data_stream["代替データストリーム(ADS)"]
unblock_file["Unblock-File"]
admin_rights["管理者権限"]
allsigned_execution_policy["実行ポリシーAllSigned"]
set_authenticodesignature["Set-AuthenticodeSignature"]
code_signing_timestamp["コード署名のタイムスタンプ"]
cert_drive["Cert:ドライブ"]
self_signed_cert["アドホックな自己署名証明書"]
trusted_publisher_store["信頼された発行元ストア"]
trust_anchor_risk["信頼の起点の悪用リスク"]
task_scheduler["タスクスケジューラの無人実行"]
powershell -->|"利用する"| execution_policy
execution_policy -.->|"で構成できる"| group_policy
bypass_policy -.->|"両立しない"| group_policy
remotesigned_policy -->|"利用する"| zone_identifier
zone_identifier -->|"に保存される"| alternate_data_stream
unblock_file -->|"防止する"| zone_identifier
execution_policy -.->|"前提とする"| admin_rights
allsigned_execution_policy -->|"前提とする"| code_signing_cert
remotesigned_policy -.->|"前提とする"| code_signing_cert
set_authenticodesignature -->|"利用する"| code_signing_cert
set_authenticodesignature -.->|"利用する"| code_signing_timestamp
code_signing_cert -.->|"に保存される"| cert_drive
self_signed_cert -.->|"前提とする"| trusted_publisher_store
self_signed_cert -.->|"原因になり得る"| trust_anchor_risk
self_signed_cert -->|"に保存される"| cert_drive
powershell -->|"利用する"| unblock_file
powershell -->|"利用する"| set_authenticodesignature
bypass_policy -->|"用いるのは非推奨"| task_scheduler
概念間の関係(全18件)
図と同じ関係を文章でも列挙します。表示している文と機械可読な意味データ(RDFa)は同じ要素に載っています。確度が「確立した関係」のものは直接の関係として、「条件付きの関係」のものは成立条件つきの言明(rdf:Statement)として表現しています。
- PowerShellはPowerShell実行ポリシーを利用します。
- PowerShell実行ポリシーはグループポリシーで構成できます。
- Bypassポリシーはグループポリシーと両立しません。
- RemoteSignedポリシーはZone.Identifier(Mark of the Web)を利用します。
- Zone.Identifier(Mark of the Web)は代替データストリーム(ADS)に保存されます。
- Unblock-FileはZone.Identifier(Mark of the Web)を防ぎます。
- PowerShell実行ポリシーは管理者権限を前提とします。
- 実行ポリシーAllSignedはコード署名証明書を前提とします。
- RemoteSignedポリシーはコード署名証明書を前提とします。
- Set-AuthenticodeSignatureはコード署名証明書を利用します。
- Set-AuthenticodeSignatureはコード署名のタイムスタンプを利用します。
- コード署名証明書はCert:ドライブに保存されます。
- アドホックな自己署名証明書は信頼された発行元ストアを前提とします。
- アドホックな自己署名証明書は信頼の起点の悪用リスクの原因になることがあります。
- アドホックな自己署名証明書はCert:ドライブに保存されます。
- PowerShellはUnblock-Fileを利用します。
- PowerShellはSet-AuthenticodeSignatureを利用します。
- Bypassポリシーをタスクスケジューラの無人実行に用いることは推奨されません。
主要概念の定義
機械可読データ
このページはサイトの知識グラフ(_data/knowledge/)から自動生成されています。誤りの指摘はお問い合わせからお願いします。