powershell-security-hardening について
Windows 管理者やセキュリティチーム向けに、PowerShell の設定と自動化スクリプトの保護を支援するスキルです。最小権限、JEA、ログ監査、セキュリティベースラインを扱います。
主な機能
- 01PowerShell の実行制御と言語制限の設定
- 02Just Enough Administration の導入
- 03スクリプトログと監査の有効化
- 04自動化用認証情報の保護
- 05CIS/STIG セキュリティベースラインの適用
活用シーン
- 01企業の PowerShell 環境の強化
- 02運用自動化向け JEA の設定
- 03スクリプト実行の監査と不審な動作の監視
- 04スクリプトと認証情報のセキュリティ方針策定
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ 404kidwiz/ claude-supercode-skills --skill powershell-security-hardeningインストール後、Claude Code で/powershell-security-hardeningを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/security_baseline.mdsigning_guide.mdscripts/configure_script_block_logging.ps1enforce_execution_policy.ps1security_hardening_wrapper.tssetup_constrained_mode.ps1sign_module.ps1詳細
PowerShell のセキュリティ強化
目的
Windows のセキュリティ強化と PowerShell のセキュリティ構成に関する専門知識を提供します。自動化スクリプトの保護、Just Enough Administration(JEA)の実装、最小権限の徹底、エンタープライズ向けセキュリティベースラインへの準拠を専門とします。
使用する場面
- PowerShell のセキュリティポリシーを構成する
- Constrained Language Mode を実装する
- Just Enough Administration(JEA)を設定する
- PowerShell のログ記録と監査を有効にする
- 自動化で使用する認証情報を保護する
- CIS/STIG ベースラインを適用する
- PowerShell を悪用した攻撃から保護する
- 実行ポリシーを実装する
クイックスタート
このスキルを呼び出す場面:
- PowerShell 環境を強化する
- JEA または Constrained Language Mode を実装する
- PowerShell のログ記録を構成する
- 自動化で使用する認証情報を保護する
- セキュリティベースラインを適用する
呼び出さない場面:
- 一般的な Windows 管理 →
/windows-infra-adminを使用 - PowerShell の開発 →
/powershell-7-expertを使用 - Active Directory のセキュリティ →
/ad-security-reviewerを使用 - ネットワークセキュリティ →
/network-engineerを使用
判断フレームワーク
Security Requirement?
├── Script Execution Control
│ ├── Basic → Execution Policy
│ └── Strict → AppLocker/WDAC
├── Language Restriction
│ └── Constrained Language Mode
├── Privilege Reduction
│ └── JEA (Just Enough Administration)
└── Auditing
└── Script Block Logging + Transcription
主なワークフロー
1. PowerShell のログ記録の設定
- GPO を使用してスクリプトブロックのログ記録を有効にする
- 主要なモジュールのモジュールログ記録を有効にする
- 安全な場所にトランスクリプションを保存するよう構成する
- 保護されたイベントログの転送を設定する
- 不審なパターンに対するアラートを作成する
- サンプルスクリプトを使用してログ記録をテストする
2. JEA の構成
- ロール機能ファイルを定義する
- 許可するコマンドレットとパラメーターを指定する
- セッション構成を作成する
- JEA エンドポイントを登録する
- 制限付きユーザーアカウントでテストする
- ロールの割り当てを文書化する
3. Constrained Language Mode
- アプリケーションの要件を評価する
- AppLocker/WDAC ポリシーを作成する
- 信頼されていないスクリプトに対して CLM を有効にする
- 必要なスクリプトを許可リストに登録する
- アプリケーションの機能をテストする
- 回避の試みを監視する
ベストプラクティス
- すべてのシステムでスクリプトブロックのログ記録を有効にする
- 完全な管理者権限の代わりに JEA を使用する
- 認証情報はスクリプトではなく、安全な保管庫に保存する
- マルウェア検出に AMSI を適用する
- AllSigned ポリシーを使用して、署名済みスクリプトを実行する
- PowerShell の使用ログを定期的に監査する
アンチパターン
| アンチパターン | 問題 | 正しい方法 |
|---|---|---|
| スクリプト内の認証情報 | 漏えいのリスク | SecretManagement の保管庫 |
| ログ記録の無効化 | 可視性の欠如 | すべてのログ記録を有効にする |
| 実行ポリシーの回避 | セキュリティ対策の形骸化 | AppLocker/WDAC |
| 自動化に完全な管理者権限を使用 | 過剰な権限 | 最小限の権限で JEA を使用 |
| AMSI の無視 | マルウェアを検知できない | AMSI を有効な状態に保つ |
コメント
Markdown 対応