PowerShell 5.0 & Security

Preview:

Citation preview

PowerShell 5.0 & SecurityInteract x Cloud Samurai 2016 Summer (2016.06.25)

Kazuki Takai

自己紹介

高井一輝 (Takai Kazuki)

某ISP勤務

クラウドサービスの開発、設計、設備維持

Windows Server / System Center / Linux / etc…

System Center User Group Japan (SCUGJ)

Twitter : @zhuky7 / Facebook : kazuki.takai

Blog : http://operationslab.wordpress.com/

2

お話すること・お話しないこと

お話すること

PowerShell 5.0 おさらい

PowerShell 5.0 と Audit

JEA と PAM

Nano Server の Security と PowerShell

お話しないこと

(上記以外の)Windows Server 2016 の新機能に関する PowerShell

個々のコマンドレットの説明

Step-by-Step での構成手順

3

セッションのゴール

PowerShell 5.0 の新機能について、概要がイメージできる

PowerShell のセキュリティに関連したいくつかの機能について概要を把握し、必要な際に利用を検討できる

JEAや PAMを試してみたくなる(もしくは、試したくなくなる?)

4

はじめる前に

本資料の内容は個人的な検証結果に基づきます

所属する会社や組織、マイクロソフト社の公式な見解を記載するものではありません

表記や内容に誤りがあるなど、お気づきの点があれば、facebook等でご連絡いただけると幸いです

この資料では Preview 版の製品、テクノロジーについて記載しています

2016/06 時点の情報をベースにしています

今後のリリースで機能や動作が変更、削除される可能性があります

ご利用は自己責任で!!

5

WMF 5.0 RTM is available !!

Windows Management Framework (WMF) 5.0 / PowerShell 5.0

2015/12/16 に RTM (KB3094174 - KB3094176)

2016/02/24 に RTM (Republishd) (KB3134758 - KB3134760)

2016/03/21 にはMicrosoft Update Catalog で配信開始

Prerequisites

.NET Framework 4.5

WMF 4.0

Incompatible

Exchange Server 2013 / 2010 SP3, Skype for Business (Lync) Server 2015 / 2013 / 2010

System Center 2012 R2 Service Management Automation

6

WMF 5.1

Windows Management Framework (WMF) 5.1 / PowerShell 5.1

Windows Server 2016 の RTMに Built-inされる予定のバージョン

Windows Server 2016 と同時期にWMF としてもリリースされる予定

7

既にWMF 5.0 を展開済みの方は…

おめでとうございます

WMF 5.0 がサポートするシステム(OS)はWMF 5.1 でサポートされます

WMF 5.0 の環境へ、ダイレクトにインストールできます※WMF5.0 に上書きされます(多分)

WMF 5 系のサポートは、WMF 5.1 の更新として提供される予定です

WMF 5.0 はWMF 5.1 のリリース後、4か月間のみサポートされます※critical security issuesについてのみのサポートとなります

WMF5.1 のリリース後、4か月以内にアップデートしてください!!

https://blogs.msdn.microsoft.com/powershell/2016/04/06/windows-management-framework-5-0-updates-and-wmf-5-1/

8

ちなみに…

PowerShell のバージョンについては…

$PSVersionTable

PSVersion Module (PowerShell Gallery)

https://www.powershellgallery.com/packages/PSVersion/1.5

9

PowerShell 5.0 の新機能

Just Enough Administration (JEA)

クラスを使用したカスタムタイプの作成

スクリプトのデバッグに関する様々な改善

Desired State Configuration (DSC)のエンハンス

監査向けの機能改善(Transcript、Logging、メッセージ暗号化)

ソフトウェア・パッケージ管理

モジュールやスクリプトの取得と管理

Information Stream, ODATA Endpoint の作成、スイッチ管理、SIL

その他、様々なコマンドレットの改善

10

Transcriptの改善

PowerShell console host 外の出力も取得可能

PowerShell ISE

PowerShell コンソールから呼び出した外部コマンド

ネスト対応

メタデータ(実行時刻など)の付与

出力先のフォルダー指定が可能

グループポリシーによる設定が可能

Administrative Templates -> Windows Components -> Windows PowerShell ->

Turn on PowerShell Transcription

11

Loggingの改善

スクリプトブロックのトレースログ取得が可能

グループポリシーで設定

Administrative Templates -> Windows Components -> Windows PowerShell ->

Turn on PowerShell Script Block Logging

例えば

エンコードされた文字列を、Expression として実行した場合に、デコード後の実際に実行する(Invokeされる)スクリプトブロックもロギング可能

12

DemoTranscripts

Logging Script Block

13

dc01

srv01 nano01

WS2016 TP5 / AD DS

WS2016 TP5 WS2016 TP5 Nano

CMSコマンドレットの追加

Cryptographic Message Syntax (CMS) cmdlets

RFC5652ベースのメッセージ暗号化、復号化が可能

頑張って .NET Object を生成して操作しなくてもよい

14

Just Enough Administration (JEA)

操作 (Operation) に関する、セキュリティレベルを向上させるための機能

管理者権限を持つユーザーが多すぎるのでは?

必要十分な権限で管理を行う

PowerShell をベーステクノロジーとして利用

PowerShell Remoting

PowerShell Session Configuration / Endpoint

Command visibility & Proxy command

15

JEA と PAM (JIT Admin) の違い

Just Enough Administration (JEA)

管理者が実行可能な操作、範囲を制限する

できることを制限する

Base Technology - PowerShell

Privileged Access Management (Just-in-Time Administration (JIT Admin))

管理者権限に有効期限を設定し、必要なときに(のみ)権限を付与する

できる時間を制限する

Base Technology – Active Directory + MIM 2016 ( + PowerShell )

16

JEA の構成要素

Endpoint (Session Configuration)

PS Remoting の受け口

誰が接続できるのか、接続した後どのような権限で実行するのか、などを定義

実行ユーザー(の所属グループ)を定義しない場合、デフォルトでは Administrators (Domain Admins) グループのメンバーとして実行

Role Capability

Endpointに紐づけられた、具体的な役割(に応じた実行内容)

何ができるのか(何を実行してよいのか)を定義

17

JEA の仕組み18

Operator

PowerShell Client

Target Server

Active Directory

Domain ServicePS Remoting

Endpoint

ACL (Permission)

RunAsUser

Role Capability

Cmdlets

External cmds

Authentication / Authorization

(参考)JEA の構成

現時点 (2015/12/19 時点) では、2種類の方法が利用可能

xJEAモジュールを使用して構成

超簡単!(5分で構成可能)

Windows Server 2016 TP2 の頃から存在する方法(今後は推奨されないかも)

WorkGroup環境でも利用可能(現時点では)

RoleCapabilityと SessionConfiguration を使用して構成

xJEAモジュールを使用する方法より、若干ステップ数が多い

Windows Server 2016 TP4 (PP1) or Windows Server 2012 R2 + WMF 5.0 RTM が必要

xJEAモジュールで実現していたいくつかの機能が PowerShell Core に取り込まれたことにより、xJEAモジュールに依存せず構成可能(今後推奨となる可能性が高い)

19

TP5はこちらの方法(今後はこちら)

RoleCapabilityと SessionConfiguration

による構成

Target Server をドメインに参加

PS Remoting の有効化

ACL 用のユーザー、グループを構成、(必要があれば)実行ユーザーの作成

Role Capability の記述

New-PSRoleCapabilityFile

Session Configurationの記述

New-PSSessionConfigurationFile

記述した Session Configuration を Endpoint として登録

Register-PSSessionConfiguration

20

JEA Helper Tool

PowerShell ベースの GUIツール

Role Capabilityや Session Configurationを GUIで編集、登録

https://blogs.technet.microsoft.com/privatecloud/2015/12/20/introducing

-the-updated-jea-helper-tool/

21

DemoJust Enough Administration

22

Privileged Access Management

Privileged Access Management for Active Directory Domain Services

Just-in-Time Administration (JIT Admin)と呼ばれていたもの

操作 (Operation) に関する、セキュリティレベルを向上させるための機能

普段から(恒常的に)管理者権限を持つ必要はないのでは?

特権アクセスが可能な時間(時間範囲)を制限することで、リスクを低減する

23

PAM動作イメージ

Privileged Access Management for Active Directory Domain Servicesサイトより引用

https://docs.microsoft.com/en-us/microsoft-identity-manager/pam/privileged-identity-management-for-active-directory-domain-services

24

PAMの構成要素

運用ドメイン(通常・現在利用している Active Directory ドメイン)

ADDS (Domain Controller)

要塞ドメイン(PAMを管理・運用するための Active Directory ドメイン)

ADDS (Domain Controller)

PAM Service

Microsoft Identity Manager 2016

PAM Management Module

PowerShell - MIMPAM

25

構成26

PRIVDC

WS2016 TP5

AD DS / DNS

CORPDC

WS2016 TP5

AD DS / DNS

PAMSRVSP

WS2012 R2SharePoint 2013

MIM 2016

CORPWKSTN

WS2016 TP5

PAMSRV

WS2016 TP5

SQL Server 2014

Domain joinDomain join

trust

contoso.localpriv.contoso.local

構成手順(概要)

運用ドメインの構成

要塞ドメインの構成

MIM事前要件の構成(SQL Server, SharePoint)

MIMサービスとポータルの構成(MIM 2016)

ドメイン間の信頼関係の設定

PAM用のアカウント、グループを構成

運用ドメイン側でアカウントを構成した後、要塞ドメインへアカウントをコピー

特権取得リクエストを生成して、必要な期間のみ特権を付与

27

構成手順

完全手動で構成

Configuring the MIM Environment for Privileged Access Management

https://docs.microsoft.com/en-us/microsoft-identity-manager/pam/configuring-mim-environment-for-pam

基本的には手順通り実施すれば構成可能(かなり面倒ではあるが…)

公式の手順は、WS2012 R2ベース(WS2016 TP5 の場合は若干読み替えが必要)

スクリプトを使用して構成

MIM 2016 June CTP(Microsoft Connect から取得)を使用

基本的には設定ファイルを書いてスクリプトを実行するだけ

CTPに添付のドキュメント通りには構成できないところもあるので、随時修正が必要

28

試したい…でもハマりたくない!

MIM 2016 June CTP のスクリプトを使用して、以下のバージョンで構成するとハマりポイントが少ない(はず)

CORPDC – WS2016 TP5 with Desktop EN-US

Forest & Domain functional level – Windows Server 2016 TP

PRIVDC – WS2016 TP5 with Desktop EN-US

Forest & Domain functional level – Windows Server 2016 TP

PAMSVR – WS2012 R2 Full EN-US

SQL Server 2014 Enterprise EN-US

SharePoint 2013 Foundation SP1 EN-US

MIM 2016 June CTP

CORPWKSTN – Windows 8.1 Enterprise EN-US

MIM 2016 June CTP Add-ins and extensions

29

2016/06/25 時点

DemoPrivileged Access

Management

30

Nano Server のセキュリティ

Nano Server はフットプリントを削減、最小のサービスのみ起動

セキュリティリスク削減

Nano Server もドメイン参加可能

アカウント、認証の一元化

Nano Server には gpsvc (Group Policy Client) が無い!

グループポリシーは適用されない!!

31

Nano Server のセキュリティ

Security Cmdlets in Nano Server

セキュリティポリシーおよび監査ポリシーを Nano Server上でリストア

Restore-SecurityPolicy

Restore-AuditPolicy

SecEdit.exe や AuditPol.exeでファイルを生成、または Backup-* を使用

Policy Cmdlets for Nano Server

コンピューターポリシーのインポートとエクスポートが可能

Import-GPRegistryPolicy / Export-GPRegistryPolicy

32

DemoPolicy Cmdlets for

Nano Server

33

dc01

srv01 nano01

WS2016 TP5 / AD DS

WS2016 TP5 WS2016 TP5 Nano

(おまけ)Package Provider

公式の Package Provider が増加

PowerShellGet

NuGet

ContainerImage

NanoServerPackage

WSAProvider

Nano Server の Package 追加やコンテナイメージ(ベースイメージ)の取得に利用可能

34

まとめ

PowerShell 5.0 (5.1) ではセキュリティ関連の機能も追加

Nano Server の主たる管理方法となるなど、重要性は増大

必要なものをピックアップして試しに利用してみる

自環境に適用可能か、有効かは動かしてみないとわからない部分も多い

35

参考資料

Windows Management Framework (WMF) 5.0 RTM Release Notes

Overview

https://msdn.microsoft.com/en-us/powershell/wmf/releasenotes

36

Recommended