Windowsのセキュリティ機能

Windows Defenderから転送)

本稿ではWindowsのセキュリティ機能(ウィンドウズのセキュリティきのう)について記述する。本稿ではMicrosoft Windows本体のみならず、Active DirectoryWSUSなどWindowsと連携するサーバソフト等が提供するセキュリティ機能も説明するものとする。

Windowsにおけるアカウント

アカウントの種類

Windowsには以下の種類のアカウントがある:

名称概要
ユーザアカウントユーザのアカウント
コンピュータアカウントドメインに参加している各マシンのアカウント
サービスアカウントサービスを起動するのに用いられるOSにビルトインされたアカウント[1]。「SYSTEM」(Administratorsと同じレベルの権限)、「LOCAL SERVICE」(一般ユーザと同じレベルの権限)「NETWORK SERVICE」(一般ユーザと同じレベルの権限)など[1]
グループアカウント複数のユーザアカウントを束ねたグループに対するアカウント。グループアカウントを別のグループアカウントのメンバーにする事も可能[2]

これらのアカウントの情報の表示や設定は以下のコマンドで実行可能である:

コマンド概要
net userユーザーアカウントの情報の表示・設定[3]
net accountsユーザーアカウントのサインインやパスワードの要件の表示・設定[3]
net groupグループアカウンの情報の表示・設定[3]
net localgroupグループアカウンの情報の表示・設定(ローカルアカウント(後述)のみ)[3]

アカウントの識別方法

SIDとGUID

Windowsの全てのユーザアカウント、コンピュータアカウント、グループアカウントのように認証やアクセス制御の対象となる主体の事をセキュリティプリンシパルといい、WindowsのセキュリティプリンシパルにはSID(Security Identifier、セキュリティ識別子)GUID(Globally Unique Identifier、グローバル一意識別子)という2つの固有識別子が割り振られている[4]

SID、GUIDはいずれもユーザアカウントを識別するためのものだが、以下のような特徴と違いがある。まずSIDはActive Directoryドメイン(後述)で一意な識別子でアクセス制御などに使われる[5]。SIDはユーザ名やコンピュータ名を変更してもSIDは変更されない。また異なる2つのマシンで同一のユーザ名のアカウントを登録した場合、それら2つのマシンのアカウントのSIDは互いに異なる。

しかしユーザの所属するドメインが変更になった場合はSIDも変更になる[5]。そこでドメインが変更になってもアカウントを一意に識別できるように作られたのがGUIDである[5]

アクセストークンとUID

各ユーザアカウントには、ユーザアカウントのSID、ユーザが属しているグループ(達)のSID、アクセス制御情報等を記述したアクセストークンが割り振られている[6]

ネットワーク経由でアクセスしてくるユーザーに対しては、アクセス トークンの代わりにUID (User IDentifier、ユーザー識別子)が用いられる。アクセストークンの全情報をネットワークに流すのはセキュリティ上危険なので、アクセストークンから必要情報のみを抜き出したUIDを用いるのである。

ユーザアカウントの分類

権限による分類

ユーザアカウントはそのアカウントが持つ権限により、以下の2つに分類される:

  • User:標準ユーザ
  • Administrator:特権ユーザ

User、AdministratorはそれぞれUsersグループ、Administratorsグループに属している。なおWindows XPにはこの他にPower Userという区分が存在したが、Windows 7以降は廃止された[7]

またマシンを他のユーザに貸したりするときのためのGuestアカウントがあるが[8]、Guestアカウントはセキュリティ上危険な事もあり、Windows 7以降はデフォルトでGuestアカウントはオフになっている[8]

Active Directory(後述)ではこれらの他に

  • Domain Administrator:ドメイン管理者
  • Enterprise Adiminstator:フォレスト管理者

がある。

Windows 10ではユーザアカウントに家族という概念が導入されており、家族のアカウントには、保護者お子様がある[9]。保護者アカウントはお子様アカウントのPC 使用時間の制限、閲覧ウェブページの制限、アプリやゲームの年齢制限の設定、利用履歴の確認といったペアレンタルコントロールを行う事ができる[10]

アカウント管理場所による分類

以下のように分類できる:

名称概要アカウント情報の保管場所
ローカルアカウント個々のマシンで管理しているアカウント[2]個々のマシンのSecurity Accounts Manager(SAM)データベース[2]
ドメインアカウントActive Directoryのドメインで管理しているアカウント[2]Active DirectoryのActive Directoryデータベース[2]

Windows 10以降は、マイクロソフトのシングルサインオンウェブサービスであるMicrosoft アカウントを使って自分が所有するマシンにサインインする事が可能になった[11]

マシンをまたがるアカウント管理・ファイル共有

小規模なネットワークではワークグループの機能を使う事により、マシンをまたがるアカウント管理・ファイル共有を行う事ができる。大規模なネットワークであればディレクトリサービスActive Directoryで一括管理する必要がある。

ワークグループ

ユーザ名を用いてアカウント管理を行う仕組みである。すなわち、あるマシンから別のマシンのリソースにアクセスする(例:エクスプローラーにパス名を打ち込んでファイルやフォルダにアクセスする)場合、アクセス元のマシンとアクセス先のマシンで同一のユーザ名が登録されており、しかもアクセス先に登録されているパスワードを打ち込めばアクセスが許可される[12]

クライアントWindowsではワークグループはユーザ数が20以下(Windows 7)ないし10以下(それ以前)の場合しか利用できない[12]。WindowsサーバやNASを使えばこの制限はない[12]

ワークグループはTCP/IPベースのNetBIOSにより通信を行っている[12]。古いバージョンのWindowsではNetBEUIベースのNetBIOSでも通信できた[12]

利用方法

Windows 10の場合、ワークグループの機能を使うには、「システムのプロパティ」でワークグループ名を事前に設定しておく必要がある[13][14]。複数のマシンを同一のワークグループに置くには各マシンで同一のワークグループ名を登録する必要がある[13]。同一のワークグループに属している場合のみファイル共有が可能である。なお同一のワークグループ内にあるマシンのコンピューター名は互いに異なっている必要がある[13]

さらに「ネットワークと共有センター」の「共有オプション」で「ネットワーク探索を有効にする」をチェックし、必要に応じ「ファイルとプリンターの共有を有効にする」もチェックする[13]

ゲストアカウント

リソース公開側のマシンがゲストアカウントを許可していれば、ユーザ名がなくともパスワードだけ知っていればアクセスできる[12]。特にパスワードを空に設定すれば誰でもアクセスできるようになるが、セキュリティ上危険である[12]

参考:ホームグループネットワーク

Windows 7で導入された新しい形態のワークグループネットワークであるが[15]、Windows 10 (Version 1803) 以降では削除されている[16]

参考:Windows NTドメインネットワーク

NTドメインという単位でマシンやアカウントなどを管理する仕組み[17]。ユーザアカウント、グループアカウント、システムポリシーが利用可能[15]。「ドメインコントローラー(DC)」と呼ばれるサーバーでユーザアカウントやグループアカウントを一括管理しており[15]、DCに(ユーザないしグループ)アカウントがNTドメイン内でどのような権限(書き込み権限、読み込み権限など)を持つかを一度登録すればNTドメイン内の全てのマシンでこの登録情報が共有される[15]。このためワークグループと違い、個々のマシンにユーザ登録する必要はない。

ただし、NTドメインやアカウント管理に階層構造がない事やアカウント数に上限があるといった欠点がある[15]

Active Directoryが登場したこともあり、Windows 2000以降は新規にNTドメインが利用される事はほとんどなくなった[17]

Active Directory

Active Directory(以下、AD)はユーザ、グループ、およびコンピュータアカウントを管理するディレクトリサービスである。マイクロソフトはソフトウェアとしてADを提供しているのみならず、Azure Active Directory(Azure AD)としてクラウド提供もしている[18]

ADはこれらのアカウントをActive Directoryドメイン(略してADドメイン、あるいは単にドメイン)としてまとめられる[19]。さらに複数のドメインをツリー型の階層構造を持つドメインツリーとしてまとめられ[19]、ドメイン・ツリー同士を結び合わせたフォレストを作る事ができる[19]。Windows Server 2003以降ではフォレスト間の信頼関係(クロスフォレスト信頼)も設定可能である[19]

企業を例に取ると、例えば以下のように上記分類を利用できる[19]

  • ドメイン:部署
  • ドメインツリー:関西支社といった拠点
  • フォレスト:企業全体

各ドメインはドメインコントローラーというサーバで管理できる[20]。ドメインコントローラーの主な役割は、ユーザアカウントを管理し、ユーザが自身の端末にログオンする際ADが管理しているユーザアカウント情報と照らし合わせてログオン認証することと[20]、アカウントに特権・権利を認可する事である。

各ドメイン内のアカウントはOU(Organizational Unit、組織単位)という単位でまとめる事ができ、さらにOU内にOUをいれるなど階層的な管理も可能である[19][21]。なお、OU毎に別の管理者を割り当て管理委任する事も可能である[19]

レプリケーション

1つのドメインに複数のドメインコントローラーを設置してレプリケーションを行う事でドメインコントローラーの可用性や信頼性を向上する事ができる。なお、レプリケーションはマルチマスタである。

信頼関係

  • ドメイン内のアカウントの信頼関係はドメインコントローラーが制御する。
  • 同一ドメイン・ツリー内の各ドメイン間には双方向かつ推移的な信頼関係が結ばれる[22]。よってドメイン・ツリー内の他ののドメインのリソースへもアクセス可能になる[22]
  • 同一フォレスト内の各フォレストツリーも双方向かつ推移的な信頼関係が結ばれている[22]
  • フォレスト間の信頼(クロスフォレスト信頼)は、一方向の信頼関係も双方向の信頼関係も築ける[23]。また信頼関係は推移的にも非推移的にもできる[23]。なおデフォルトは双方向かつ推移的な信頼である[23]。ただし、ドメインコントローラーのレプリケーションがフォレストをまたいで行われる事はない。

アクセス制御と監査

Windowsではファイルシステム、ファイル共有、プリンター、レジストリ、グループポリシー、サービス、WMIなど[24]様々な箇所にアクセス制御を導入している。

NTFSのDACL

Windowsの標準ファイルシステムの一つである[25]NTFSではDACL(Discretionary Access Control List、随意アクセス制御[注 1])というアクセス制御機構を導入している[24]。これはTCSECC2レベルセキュリティ(=コモンクライテリア・ISO/IEC15408のEAL3に対応)を実現するために導入されたものである[24]

NTFS DACLはリソースの所有者が任意にアクセス権を規定できるアクセス制御方式(任意アクセス制御方式)で、具体的にはファイルやフォルダの「プロパティ」から「セキュリティ」を選択する事でアクセス制御を設定できる[24]

アクセス制御は複数のACE(Access Control Entry)からなっており[24]、各ACEは以下の4つの項目の組み合わせとして記述される[27]

項目概要
プリンシパルどのアカウントをアクセス制御するか
制御内容どんな行為をアクセス制御するか
種類「許可」するのか「拒否」するのか
適用先どのリソースにアクセス制御を適用する

制御内容

「制御内容」として選択可能なのは以下の14種類である:「フォルダーのスキャンとファイルの実行」、「フォルダーの一覧/データの読み取り」、「属性の読み取り」、「拡張属性の読み取り」、「ファイルの作成/データの書き込み」、「フォルダーの作成/データの追加」、「属性の書き込み」、「拡張属性の書き込み」、「サブフォルダーとファイルの削除」、「削除」、「アクセス許可の読み取り」、「アクセス許可の変更」、「所有権の取得」、「同期」[27]

なお、アクセス制御設定画面の「簡易表示」では制御内容として「フルコントロール」、「変更」、「読み取りと実行」、「フォルダーの内容の一覧表示」、「読み取り」、「書き込み」があるが、これらは前述した14項目の組み合わせとして定義される[27]。例えば「読み取り」は「フォルダーの一覧/データの読み取り」、「属性の読み取り」、「拡張属性の読み取り」、「アクセス許可の読み取り」、「同期」の5項目を全て「許可」にし、それ以外の9項目を全て「拒否」にするという設定である[27]

適用先

「適用先」に関しては、ACEを定義するのがファイルの場合はそのファイル自身が選択肢としてあるだけだが、ACLを定義するのがフォルダである場合は、そのフォルダに属するファイルやサブフォルダにACEの制御が継承されるか否かを決める必要がある。

ACEの継承関係は以下の3つのフラグでより規定される[27]

略称名称(英語)名称(日本語)意味
OIObject Inheritオブジェクト継承ACEを定義したフォルダに属するファイルにACEが継承される
CIContainer Inheritコンテナ継承ACEを定義したフォルダに属するサブフォルダにACEが継承される
IOInherit Only継承のみACEを定義したフォルダ自身にはACEは適用されないが、そこに属するファイルやサブフォルダにはACEが継承される

フラグが3つあるので、組み合わせは8通りあるが、フラグIOのみ立っているのは無意味なので、実際はこれを除いた7通りが選択肢となる。フォルダの「プロパティ」>「セキュリティ」で表示されるGUIベースのAECの設定では、この7通りの選択肢が以下のように表示される[27]

適用先表記フラグでの表記
このフォルダー、サブフォルダーおよびファイル(OI)(CI)
サブフォルダーとファイルのみ(OI)(CI)(IO)
このフォルダーとサブフォルダー(CI)
サブフォルダーのみ(CI)(IO)
このフォルダーとファイル(OI)
このフォルダーのみ(無し)
ファイルのみ(OI)(IO)

なお、アクセス権を全て拒否したとしても、そのリソースの所有者とCREATE OWNERグループのメンバーはそのリソースのアクセス権を変更できる。

cacls、icacls、Get-ACLのようなCUIベースのコマンドの場合は、前述したOI、CI、IO以外にさらに2つのフラグが表示される[27]

略称名称(英語)名称(日本語)意味
NPNo Propagate Inherit継承伝搬の禁止NPが立っているとCIが立っていても孫フォルダに継承は伝搬しない
IInhereted継承されたアクセス権上位フォルダから継承されたアクセス権に対して表示されるフラグ

その他のアクセス制御

  • 共有フォルダ(SMB・CIFSによるファイル共有)ではNTFS DACLとは別のACLにより共有アクセスのアクセス権を制御しており[28]、このACLで付与されたアクセス権を共有アクセス権という[28]。共有アクセス権は「共有フォルダのプロパティ>共有>詳細な共有」で設定可能[29]。共有アクセス権とNTFS DACLのアクセス権が競合している場合は両者とも許可の場合のみアクセスが許可される[28]
  • Windows Server 8では任意アクセス制御であるDACLの他に強制アクセス制御であるCentral Access Policy(集約型アクセス ポリシー)が実装されている[30]
  • AzureではAzure RBACというロールベースアクセス制御が導入されている[31]

WebDAV

WebDAV(Web-based Distributed Authoring and Versioning、ウェブダブ)はマイクロソフトが開発したHTTP拡張で、「ファイル システムなどの格納媒体を HTTP 接続で使用可能にする、HTTP 1.1 規格の拡張機能」[32]で、WebサーバIISなどに実装されている[32]。WebDEVでは以下のアクセス権を設定できる:

  • ディレクトリおよびファイルとそのプロパティの検索[32]
  • ディレクトリおよびファイルとそのプロパティの作成、変更、削除、および参照[32]
  • ファイルおよびディレクトリのカスタム プロパティの保存および検索[32]
  • 共同作業環境でのファイルのロック[32]

AD環境のアクセス制御

AD環境ではグループアカウントを利用してアクセス制御を行うので、まずグループアカウントの種別について述べた後、AD環境のアクセス制御の基本方針である「AGUDLP」について述べる。

グループアカウントの分類

グループアカウントには個々のマシンで管理するローカルグループと、Active Directoryで管理されるセキュリティグループとがあり、これらに加えて配布グループというメールアプリケーションでメールの配布先を指定したりする為のグループの種類がある[33]。なおドメイングループと配布グループはActive Directoryに関するグループの種類であるので、ドメインアカウントしかグループメンバーに出来ない[33]

セキュリティグループと配布グループはその有効範囲によってドメインローカルグループグローバルグループユニバーサルグループに分かれる[33]。ドメインローカルグループはドメイン内でのみ参照可能である。これに対しグローバルグループとユニバーサルグループはいずれも他のドメイン、ドメインツリー、フォレスト全体から参照可能であるが、グローバルグループはメンバー追加に制限があり、追加できるのは同一ドメインのアカウントやグローバルグループのみである[33]。ユニバーサルグループにはそのような制限はない[33]

AGUDLP

AGUDLPはAD環境においてロールベースアクセス制御を行うためのマイクロソフト推奨の方針である。ここでAGUDLPはAccount(アカウント)、Grobal group(グローバルグループ)、Universal group(ユニバーサルグループ)、Domain Local group(ドメインローカルグループ)、Permission(パーミッション)の頭文字を集めたもので、これらを以下のように用いるとよいと推奨している[34][35]

頭文字分類使い方
Aアカウント各ユーザにアカウントを割り振る
Gグローバルグループ「開発部門管理職」のように企業の実組織の構造に従ったグローバルグループを作り、そこにユーザのアカウントを所属させる
Uユニバーサルグループグローバルグループは、そのグローバルグループを作成したドメインからしかメンバーを追加できないので、それ以外のドメインからもメンバーを追加したい場合は1つ以上のグローバルグループを含むユニバーサルグループを作成する
DLドメインローカルグループ「ソースコードフォルダへの書き込み権限保持者グループ」のように、権限毎にドメインローカルグループを作り、そのドメインローカルグループにグローバルグループやユニバーサルグループを所属させる
Pパーミッション各ドメインローカルグループに書き込み権限や読み込み権限などのパーミッションを与える。

規模がより小さい企業では上述したA、G、U、DL、Pを全て用意する必要はなく、AUP、AGLP、AGDLPなどにする[36]

監査

Windowsではユーザやプロセスの振る舞いを監査するため、監視者が予め指定した行為をユーザが行った場合には監査ログに記述する事ができる[37]

何を監査ログに書き込むのかは管理者が監査ポリシーとして事前にしてする必要がある。監査ポリシーは

コンピュータの構成\Windows の設定\セキュリティの設定\ローカル ポリシー \監査ポリシー

で閲覧・設定が可能である[38]。監査ポリシーに記述可能なイベントとしては

  • アカウントログオンイベント[38]
  • アカウント管理イベント[38]
  • Active Directoryのオブジェクトへのアクセスイベント[38]
  • ポリシー変更[38]
  • 特権変更[38]
  • プロセス追跡[38]
  • システムイベント[38]

Active Directoryでは監査ポリシーはSACL(システムアクセス制御リスト)として記述される[38]

認証とID連携

Window 10へのサインイン方法

Window 10には以下の4通りのサインイン方法がある[39]

方法概要
パスワード入力通常のパスワード認証
PIN暗証番号(4 桁~64 桁)の入力により認証
ピクチャ パスワードパスワード用に指定した画像の上で、パスワードとして指定したジェスチャ(ドラッグやタップ)を行う事で認証
Windows Hello端末搭載の顔認証用のカメラや指紋認証リーダーと連携した生体認証

上記4種類のサインインのうち、PINは個々の端末にしか保管されない為、PINが漏洩しても攻撃者がユーザになりすまして他のPCからMicrosoft アカウントにサインインする事はできない[39]

またサインインの際、事前に指定した携帯電話やメール アドレスに送信されるセキュリティコードを入力する2 段階認証もできる[39]

Active Directoryにおける認証

Active Directoryはユーザ認証としてケルベロス認証[注 2]NTLM認証が利用可能である[42]。ただし、NTLMは(バージョン1、2双方とも)認証プロトコルそれ自身がセキュリティ上脆弱である事が知られているので、その利用は推奨されない[43]。クライアント端末がWindows 7以降であればケルベロス認証に対応しているのでNTLM認証を停止可能である。

Azure ADは多要素認証にも対応している[18]

シングルサインオン

Active Directoryによるシングルサインオン

Active Directoryはケルベロス認証により、ドメイン内のシングルサインオンを実現する。ドメイン連携の仕組みやADFS(Active Directoryフェデレーションサービス)というを使えば、ドメインの垣根を超えてシングルサインオンが可能になる[44]

Azure ADの場合はSAMLOpenID Connectなどでシングルサインオンを実現している[45]

Azure ADはシングルサインオン機能のよりマイクロソフトを含む各社のクラウドアプリケーションと連携可能で、Azure AD経由でアクセス可能なクラウドアプリケーションは2000種類以上ある(2016年現在)[18]

またWindow 10では事前にAzure ADにアカウントを登録しておくと、ユーザが端末にサインインしたときに透過的にAzure ADからも認証され、Azure ADの連携サービスにシングルサインオンできる[46]

Microsoft アカウントによるシングルサインオン

Microsoft アカウント(マイクロソフトアカウント、以前は Microsoft Wallet[47]Microsoft Passport[48].NET PassportMicrosoft Passport NetworkWindows Live ID)は、

にログインするためのシングルサインオンWebサービスである。OpenIDFIDO2をサポートしている。

Microsoft Identity Manager(MIM)

AD環境のAGUDLPではグループ管理が煩雑になる事を踏まえて作られたユーザープロビジョニングサービス[49]。「ID統合」を行うためのサービスで[50]、特に「「IDのライフサイクル管理を行う」ことで、管理者の作業・監査における省力化を目的」[50]としている。下記のように、何度か名称が変更されている[50]

略称正式名称
MIISMicrosoft Identity Integration Server2003
ILMIdentity Lifecycle Manager2007
FIMForefront Identity Manager2010
MIMMicrosoft Identity Manager2016

ポリシー管理・ポリシー制御

Windowsにおける権限

Windowsにおけるユーザ権限は、シャットダウンやバックアップなどマシン全体に関わる権限である特権とローカルログインなど個々のユーザに関する権限である権利に分かれる。

ユーザの特権・権利はsecpol.msc(ローカル セキュリティ ポリシー)の「ユーザー権利の割り当て」から確認でき、グループポリシー(後述)はgpmc.msc(グループポリシーの管理)の「ユーザー権利の割り当て」から確認できる[11]

ローカルセキュリティポリシー

各マシンローカルなセキュリティ設定はローカルセキュリティポリシーと呼ばれ、secpol.mscツールを使えばアカウントに対してどのような特権・権利が与えられているかを確認できる[2][51]

グループポリシー

ADではグループポリシーという機能を用いて各ユーザアカウントの各端末における特権・権利を一括で設定できる[21]。グループポリシーの管理はgpmc.mscツールを用いて管理できる[2]

各グループポリシーはGPO(グループポリシーオブジェクト)とリンクからなる[21]。GPOにはユーザアカウントや端末に認可(ないし禁止)したい特権・権利を指定し、リンクはGPOを適用するOUを指定する[21]。ユーザアカウントからなるOUやコンピュータアカウントからなるOUをリンクに指定する事で、ユーザや端末の特権・権利を一括で設定できる。

GPOとしては例えば以下のものが設定可能である[52]

設定概要
セキュリティ周りの設定後述
ソフトウェアの配布Windowsインストーラを利用したソフトウェアの自動的にかつ一律なインストールなど[52]
スタートアップなどのスクリプトコンピュータの起動時、終了時などのスクリプト実行[52]
Internet Explorerの設定セキュリティ・ゾーンとドメインのマッピングの定義、「お気に入り」へのリンクの追加・削除など[52]
フォルダのリダイレクト各コンピュータのローカルなフォルダをファイル・サーバ上のフォルダへリダイレクト[52]

セキュリティ周りでは例えば以下のものが設定可能である:

  • ファイルやレジストリのアクセス権などの設定[52]
  • パスワードポリシーの設定[53]
  • ローカルへのパスワード保存やパスワードキャッシュ保存の禁止[53][54]
  • アカウントロックポリシーの設定[53]
  • 管理者グループメンバーの制限[53]
  • ファイヤーウォールの受信ポート制御[54]
  • シャットダウン時のページファイルの削除[54]
  • サインイン時の利用規約の表示[54]

グループポリシーはGPMCというツールで管理する事ができる[55]

セキュリティポリシーテンプレート

なお、Windows ServerにはセキュリティポリシーテンプレートというGPOの雛形が

%SystemRoot%\Security\Templates

に複数置いてあるので、必要に応じてテンプレートの中身を書き換えて自組織の環境用にカスタマイズした上でテンプレートをGPOに読み込む事で容易にポリシーを設定できる[56][57]

AppLocker

AppLockerはアプリケーションの実行の許可・不許可を設定できるツールである。具体的には、「「実行可能ファイル(EXE)」「Windowsインストーラ・ファイル」「スクリプト」「DLL」の各カテゴリに対して、それぞれ「ファイルのパス」「ハッシュ値」「発行元(デジタル署名)」を設定し、これに「許可」「拒否」「例外」という3種類のルールが適用できる」[58]。「AppLockerによるプログラムの実行制御は、ローカル・セキュリティ・ポリシーかグループ・ポリシーを使って行う」[58]

またApplockerでは「規則の実施」か「監査のみ」を選ぶことができ、前者を選ぶと実行の許可・不許可がAppLockerにより制御されるが、後者を選んだ場合には、AppLockerは実行を制御せず、実行結果がログに記載されるのみである[59]

Security Compliance Toolkit

Security Compliance Toolkitはマイクロソフト内外の専門家のフィードバックに基づいてベストプラクティスをまとめたセキュリティベースラインで[60]、マイクロソフトが過去に公開していたベストプラクティス集Security Compliance Managerを置き換えるものである[61]。各セキュリティ分野別の推奨設定がスプレッドシート形式で記載されており[60]、分析テスト機能を使うと必要なGPO、テンプレート、クライアントインストールスクリプトが入手できる[60]

またSecurity Compliance Toolkitのページから、マイクロソフトのポリシーアナライザツールや、ローカルWindowsポリシーを管理する「Local Group Policy Object Utility」もダウンロードできる」[60]

暗号化

BitLocker

BitLockerはディスク全体を暗号化することができるセキュリティ機能。他のPCにディスクを接続されても、中身を読むことはできない。コンピューターにTrusted Platform Module(TPM)が搭載されていれば、それを使用して暗号化を行う。BitLocker To GoはUSBメモリなどのリムーバブル・ディスクの暗号化を行える。

Encrypting File System

Encrypting File System(EFS)NTFSバージョン3.0で追加された機能で[62]ファイルシステムレベルでの暗号化を提供する。この技術はコンピューターに物理的にアクセスする攻撃者から機密データを保護するために、ファイルの透過的暗号化を実現する。

DPAPI

Cryptographic API

Security Support Provider Interface

Host Guardian Service

セキュアなブートプロセス

Window 10では下記の仕組みによりブートキットやその他ルートキットに感染するのを防いでいる:

名称概要
セキュアブートマシンがファームウェアを読み込む際、ファームウェアに付いている署名を検証し、ファームウェアがブートローダーを読み込む際、ブートローダーに付いている署名を検証する事で、ブートキットの感染を検出する仕組み[63]UEFITPMを利用[63]
トラストブートセキュアブート終了後[64][注 3]、windows 10 カーネルのデジタル署名を検証し[63]、Windows 10 カーネルがブート ドライバー、スタートアップ ファイル、ELAM (後述)を含むWindows スタートアッププロセスの他の全てのコンポーネントを検証する仕組み[63]
起動時マルウェア対策(ELAM)「Early Launch Anti-Malware」の略[64]。マイクロソフト以外のブートドライバーとアプリケーションを読み込む前に(マイクロソフトの、もしくはそれ以外の)マルウェア対策ドライバーを読み込み[63]、ブートドライバーが事前に登録されたリストにあるか否かをチェックする[63]


メジャーブートファームウェア、ブートローダー、ブート ドライバー等マルウェア対策アプリの前に読み込まれるもの全てのハッシュ値をUEFI ファームウェアがTPMに格納[63]。構成証明サーバーから送られてきた署名鍵を用いてTPMがUEFIのログに署名した上で[63]ログやハッシュ値をサーバに送る[63]。これらを利用してサーバ側でPC の正常性を客観的に評価[63]

アンチウイルスソフトウェア

Microsoft Defender

Microsoft Defenderはその内容が時とともに変化したが、2018年現在はマイクロソフトがWindows向けに提供するセキュリティ機能のシリーズ名で[65]、下記のものを含んでいる[65]

名称概要
Windows Defender Security Centerセキュリティ関連のクライアントインターフェース[66]
Windows Defender ウィルス対策マルウェア対策ソフト
Windows Defender OfflineブータブルCD/DVD、またはUSBフラッシュドライブにマルウェア駆除用のシステムをインストールし、Windows起動中に検出や削除ができないマルウェアに対処するために提供されている。
Windows Defender Smart Screen既報告済の悪意のある可能性のあるサイトにアクセスしようとしたり悪意のある可能性のあるファイルをダウンロードしようとしたりすると警告する[67]
Windows Defender Firewallパーソナルファイアウォール
Windows Defender Exploit Guard[68]Exploit Protectionデータ実行防止(DEP)ASLR、SEHOP(Structured Exception Handling Overwrite Protection、構造化例外処理の上書き保護)[69]EMETの後続[69]
ASR(Attack Surface Reduction、攻撃表面の縮小)「Office ベースやスクリプトベース、電子メールベースの脅威をブロックし、マシンにマルウェアが侵入することを」防ぐ[70]
ネットワーク保護「Windows Defender SmartScreenを使って、デバイスから信頼されていないホストやIPへのアウトバウンドプロセスをブロック」[70]
フォルダー アクセスの制御「信頼されていないプロセスによる、保護されたフォルダーへのアクセスをブロック」[70]する事によるランサムウェア対策[70]
Windows Defender Device Guard後述
Windows Defender Application Control「ユーザーの実行が許可されるアプリケーションと、システム コア (カーネル) で実行されるコードを制限することによって」[71]、「ファイルベースのマルウェア (.exe、.dll など) 」[71]の脅威を軽減
Windows Defender Credential Guard後述
Windows Defender Application Guard「Microsoft Edge または Internet Explorer のいずれかから非信頼サイトを表示すると、Microsoft Edge では分離された Hyper-V 対応コンテナーに含まれるサイトが」開く[72]
Windows Defender Advanced Threat ProtectionEDR(Endpoint Detection and Response)[73]

Microsoft Security Essentials

2009年9月29日~2020年1月14日にWindows XP, Vista, 7向けに提供していたアンチウイルスソフトウェア。

VBS(Virtualization-Based Security)

VBS(Virtualization-Based Security、仮想化ベースのセキュリティ)は仮想化基盤Hyper-Vを利用したハイパーバイザーベースのセキュリティ技術で[74]、Windows Defender System Guardともいう[75]。ハイパーバイザーが通常のWindows OS自身を1つの仮想マシンとして実行し、それとは別にもう一つの仮想マシンVSM(Virtual Secure Mode)を実行する。Windows OSとVSMはハイパーバイザーレベルで分離されている為、Windows OS側の特権が攻撃者に乗っ取られても、VSM側は乗っ取られない[74]

そこでVBSではVSMにWindows OS自身よりも高い特権レベルを要求する操作を割り振っており、Windows OS、VSMの特権レベルをそれぞれVTL 0、VTL 1という(VTLはVirtual Trust Levelの略)[76]。(リングプロテクションと違い、数字が大きいほど特権レベルが高い事に注意[76])。

VTL 0、VTL 1はリングプロテクションのRing 0、Ring 3とは独立した特権レベル概念であり、VTLが0か1か、リングプロテクションレベルが0か3かの組み合わせで計4つの特権レベルがある事になる[76][77]

WindowsではVBSを使うことで以下の3つのセキュリティ機能を実現している[74][76][78]

名称概要
Credential GuardActive Directoryの資格情報を管理するセキュリティ認証サブシステム(Local Security Authority Subsystem Service : LSASS)をVSM側で実行し、さらに暗号化鍵をTPM(ない場合はUEFI)で保護する事で、Windowsの特権が攻撃者に取られても、Pass-the-Hash攻撃などで資格情報が窃取されないようにする[74][79]
Device Guardアプリケーションやデバイスドライバのホワイトリスト機能[79]。アプリケーションやデバイスドライバに正当な署名が付いている事を確認した上でこれらを実行する[80]。「グループポリシーの「コードの整合性ポリシーを展開する」を使って、あらかじめ指定したアプリケーションだけしか動作しないように設定」する事も可能[80]。カーネルモードで動くバイナリをチェックする「カーネルモードのコードの整合性(Kernel Mode Code Integrity:KMCI)」とユーザーモードで動くバイナリをチェックする「ユーザーモードのコードの整合性(User Mode Code Integrity:UMCI)」からなっている[79]。 Windows Storeで配布されているアプリケーションは配布段階で署名が必須である[80]。またPKIを用意して既存のアプリケーションに署名を行ってもよい[80]
仮想TPM仮想マシンでTPMを利用するための技術で[74]、ソフトウェアベースでTPMを実現するためTPM対応プロセッサを必要としない[81]

Windows 10 Fall Creators Update(バージョン1709)ではDevice Guardに代わる機能としてWindows Defender Application Guard(WDAG)が導入されている[75][82]。WDAGと並び、AppLockerもWindowsが持つもう一つのアプリケーションホワイトリスト機能であるが、両者はいわば補完関係にある[83]。WDAGは自組織にとって可能な制限レベルに対してのみ強制すべきで、それより低いレベルに関してはAppLockerによる保護で補完する[83]

更新プログラムの適用

マイクロソフトでは、自社が提供するWindowsMicrosoft Officeなどのソフトウェア更新プログラム(パッチ)、およびデバイスドライバダウンロードと更新を行うためサービスであるWindows Updateを提供している。

個人用の端末の場合には、マイクロソフトが提供するWindows Updateのサイトから直接更新プログラムを入手するが、企業などではWSUSという中間サーバを社内に立て、WSUSが代表してマイクロソフトから更新プログラムを取り寄せ、各社員の端末はWSUSから更新プログラムを取り寄せる構成にするケースも多い。このような構成を取る目的は、企業の側が社員のPCにおける更新プログラムの適用状況を把握したり、マイクロソフトからの更新プログラムのダウンロードによる通信帯域の圧迫を避けたりする事にある。

Window UpdateやWSUSはバックグラウンドでBITS(Background Intelligent Transfer Service、バックグラウンド インテリジェント転送サービス)という仕組みを用いている。これはアイドル中のネットワーク回線の帯域幅を使用し、非同期にマシン間のファイル転送を行う事を可能にする。

WSUS

WSUS(読みはダブルサス。Windows Server Update Services、ウィンドウズサーバーアップデートサービス)は、更新プログラムやデバイスドライバなどの適用制御用のサーバアプリケーションである。

クライアントPCは、グループポリシーまたはレジストリによって指定されたWSUSサーバに対して、指定された時間間隔(既定値は約22時間間隔)でアクセスしてローカルにダウンロードし、「自動更新」コンポーネントに表示する。なおダウンロードのタイミングは指定できない。

またユーザがクライアントPCにログインしていなくても更新プログラムのダウンロードや適用を行うよう設定可能である。

更新プログラムの適用が完了すると、クライアントPCは適用ステータスをWSUSサーバ(グループポリシー設定での名称は「イントラネット統計サーバ」)に報告する。WSUSサーバでは、このステータス報告をもとに更新プログラムやクライアントPCごとのレポートを作成する。

更新プログラムのダウンロードはBackground Intelligent Transfer Service (BITS) が実行しており、利用可能なネットワーク帯域に応じて回線がパンクしないように、また更新データの配布によって回線を独占し、ネットワークが使用不可になるような状況にならないように、通信量が自動的に調整される。

更新プログラムの承認

WSUS管理者は、管理コンソール上で更新プログラムをどのように配布するか制御する事ができる。配布を許可する場合、更新プログラムに対して「承認」の作業を行う事が必要になる。WSUS 2.0 (SP1) においては、承認には以下の4つの状態がある。

名称概要
インストール更新プログラムをクライアントPCがインストールする事を許可する承認状態である。
検出のみ更新プログラムの存在は公開するが、更新プログラムのダウンロードや適用は許可しない承認状態
削除更新プログラムの削除(アンインストール)を強制する承認状態
拒否検出を拒否する承認状態。「拒否」にした更新プログラムはWSUSの管理コンソールにおいても通常は表示されなくなる。

クライアントPCのグループ分け

WSUSでは、クライアントPCを「コンピュータ・グループ」という任意の管理グループに分類して、グループ毎に更新プログラムの承認を行う事が可能である。コンピュータ・グループの登録とグループ分けは、管理画面で管理者が手動で行うか、グループポリシーまたはレジストリによってクライアントPCに対して設定することで行う。

コンピュータ・グループによって、きめ細かな更新プログラムの適用管理が可能になる。例えば、更新プログラムをまず適用試験用のPCに適用して評価を行い、安全を確認した後に一般のクライアントPCに対して配布する、といった適用制御が容易に可能になる。

レポート

クライアントPCから報告されるステータス情報やWSUSサーバ自身のステータス情報を元に、WSUS 3.0 (SP1) では、以下のレポートを作成できる:

名称概要
更新レポート更新プログラム毎に、クライアントPCの適用状況を表示。更新の状態の概要、更新の詳細な状態、更新の状態(表形式)が含まれる
コンピュータレポートクライアントPC毎に、更新プログラムの適用状況を表示。コンピュータの状態の概要、コンピュータの詳細な状態、コンピュータの状態(表形式)が含まれる
同期レポートWSUS 3.0サーバの、過去のMicrosoft Updateとの同期結果についてレポート

クラス

以下の種類の更新プログラムを配布する事ができる(2008年7月末日現在)。

  • Feature Packs : 新しく公開された機能。通常は時期リリース製品に含まれる。
  • Service Packs
  • セキュリティ問題の修正プログラム : 製品のセキュリティホールを修正する更新プログラム。
  • ツール : ユーティリティ類
  • ドライバ : デバイスドライバ
  • 更新 : 重要性が低く、セキュリティに関連しない不具合を修正するための更新プログラム。
  • 修正プログラム集 : 複数のホットフィックスやセキュリティ修正プログラムなどを集約した更新プログラム。
  • 重要な更新 : 重要性が高く、セキュリティに関連しない不具合を修正するための更新プログラム。
  • 定義自動更新プログラム : Windows DefenderやForefront Client Securityなどの定義ファイル。

バックアップ、復元

バックアップ

Windowsにはバックアップを取る方法がいくつかある。

  • Windowsにはデフォルトでファイルのバックアップの機能が備わっている。例えばWindow 10では「更新とセキュリティ」の「バックアップ」を選択する事でバックアップが可能になる。この際バックアップしたいフォルダ全てを一覧から選択し、バックアップ先のドライブを選択する。
  • こうしたファイルごとのバックアップとは別にシステムイメージを作成する機能も備わっているが、Windows 10 バージョン1709 Fall Creators Updateからは非推奨の機能になった[84]
  • Windows Server 2008以降にはWindows Server Backupというバックアップ機能が標準で装備されており、そのコマンドラインインターフェースとしてwbadmin.exeが提供されている。(wbadmin.exeはクライアントWindowsにもデフォルトで入っている為、一部制限があるもののクライアントでもwbadmin.exeを使ったバックアップが可能)。
  • Azureを契約していれば、Azure Backupの機能を使う事でMicrosoft Cloudのデータ [85]、およびオンプレミスのWindows ServerやWindows Clientのデータ[86]をバックアップできる。

復元

Windowsには「システムの復元」という機能が備わっており、システムに不具合が生じたとき、過去に作成した復元ポイントまでシステムの状態を巻き戻す事ができる。「システムの復元」で復元されるのは具体的には、OSの重要ファイル、レジストリ、設定、アプリケーションやデバイスドライバの追加・変更などである[87]

またWindows 10の「更新とセキュリティ」には「このPCを初期状態に戻す」という機能がついており、初期状態にリセットできる。

著作権保護・情報保護

Information Rights Management

IRMは、デジタル著作権管理(DRM)の一種であり、機密情報を不正アクセスから保護する技術である。情報の暗号化や選択的機能拒否機能を使うことができ、企業の電子メールMicrosoft Word文書、 ウェブページなどの文書へのアクセスを制限し、許可されたユーザーのみが閲覧、編集することができるようにする。Microsoft Officeなどの対応ソフトウェアを使うことで、情報を作成、表示、編集、配布できる権限を情報毎に個別に設定することができる技術である。

Active Directory Rights Management Services

Windows Serverの機能であるInformation Rights Management (IRM)を利用するためのサーバソフトウェア。AD RMSと省略する。AD RMSはWindows Server 2003で新規に実装された。

PlayReady

Protected Media Path

Azure Information Protection

Windows Information Protection

その他

Control flow guard

CFI(Control-Flow integrity)技術の一つ[88][89][90]。インストラクション ポインタの制御を奪う攻撃に対策するため、「コンパイル時にIndirect Call(call eaxなど)を精査して、正当な呼び出しだけを「ホワイトリスト化」したうえで、呼び出し先アドレスにチェックするための関数を挿入する」[91]

Dynamic Lock

ユーザが所有しているスマートフォンとBluetoothをあらかじめペアリングしておくと、Bluetoothの電波強度を測り、ユーザ(が持っているスマートフォン)がPCから離れるとおよそ1分後に、自動で画面ロックがかかる[92]

関連項目

脚注

注釈

出典

参考文献