このページではシステム整合性レベル (IL、IntegrityLevel)について説明します。システム整合性レベルとは、悪意のあるプログラムによりシステムが破損、乗っ取られることを防ぐ機能です。悪意のあるプログラムは中レベルか低レベルでプロセスが起動するため、原則システムの重要なファイル、レジストリにアクセスできません。(アクセスするには権限の昇格が必要)。権限の昇格はユーザの明確な承認が必要のため、悪意のあるプログラムが何かおかしな動きをするとユーザは気が付き操作を許可しません。
・低レベルプロセスから高プロセスへのアクセスが不可。
・中レベル、低レベルのプロセスはHKEY_LOCAL_MACHINE レジストリ の変更など禁止されている。よって UAC 機能により権限を昇格する必要がある。
レベル 概要 システム 一番高いレベル。ユーザ(administrators含む)はこの"システム"レベルとしてプロセスを起動できない。
高 管理者権限のレベル。C:\Program Files、C:\Windows、HKEY_LOCAL_MACHINE レジストリなど重要なシステムファイルに書き込みが可能。(CドライブにOSがインストールされている場合)
中 一般的な権限のレベル。自分自身のユーザプロファイルやHKEY_CURRENT_USER レジストリなどにアクセスが可能。
低 低信頼のレベル。デフォルトで低レベルはiexplorer.exe(インターネットエクスプローラ)のみ(*)。Temporary Internet Files\LowやHKEY_CURRENT_USER\Software\Microsof\Internet Explorer\Rowregistry などへの書き込みが可能。
(*)インターネットエクスプローラの保護モードが有効の場合、低レベル動作する。保護モードはデフォルトで有効。よってIEが悪意のあるサイトを閲覧しても、システムが破損される可能性が低くなる。
【ポイント】ユーザが実行するアプリは原則、“中レベル”としてプロセスが起動される。よってHKEY_LOCAL_MACHINE レジストリなどへの書き込みは不可能。UAC機能による権限昇格で高レベルに移動してからHKEY_LOCAL_MACHINEレジストリに書き込み。
システム整合性が効かないケース
システム整合性が機能しないのは以下のケースです。
・ビルドインの administrator でログオンしている場合
・UAC機能が無効化(レベル4)されている場合 (参考:UACに関して)
ビルドインのadministratorとはOSインストール時にすでに作成されているデフォルトの管理者アカウントです。(Windows 7などでは初期設定で既に無効化されています)。
一般的には ビルドインadministratorでは作業せず(無効化してしまう)、新規にadministratorを作成して作業を行います。
参考:ビルドインアカウントを使用しない理由