0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Windowsの「整合性レベル(Integrity Level)」を理解して、権限昇格の壁を知る

0
Posted at

はじめに

Windowsで「管理者権限があるのに、なぜかファイルが操作できない」「ブラウザがウイルスに感染してもOS全体が壊れないのはなぜ?」と疑問に思ったことはありませんか?

その答えは、ユーザー権限(SID)とは別に存在する 「整合性レベル(Integrity Level)」 という仕組みにあります。本記事では、この「信頼の格付け」について解説します。

1. 整合性レベル(Integrity Level: IL)とは?

整合性レベルとは、Windowsの強制整合性制御(MIC: Mandatory Integrity Control) という機能の一部です。

一言で言えば、「プロセス(プログラム)がどれだけ信頼されているか」 を示すスコアのようなものです。たとえ同じユーザーが実行していても、プロセスごとにこのレベルが異なります。

2. 主要な5つのレベル

Windowsには主に以下の5つのレベルが存在します。

レベル 名称 主な役割
System システム OSのカーネルやサービス。最高権限。
High 管理者として実行されたプロセス。
Medium 標準ユーザーが実行する通常のアプリ(エクスプローラーなど)。
Low Webブラウザのタブ、サンドボックス化されたアプリ。
Untrusted 非信頼 匿名ログインなど、極限まで制限されたプロセス。

3. 鉄の掟:No-Write-Up(上位への書き込み禁止)

整合性レベルの最も重要なルールは、「低いレベルのプロセスは、高いレベルのオブジェクトを書き換えられない」 ということです。

  • 読み取り: 低いレベルから高いレベルへの読み取りは許可されることが多い。
  • 書き込み: 絶対に禁止。 LowのブラウザがMediumのシステム設定を書き換えることはできません。

これにより、ブラウザに脆弱性があって悪意のあるコードが実行されても、被害をそのサンドボックス内(Low IL)に閉じ込めることができます。

4. 自分のPCで確認してみよう

自分のPCで動いているソフトがどのレベルか、実際に見てみましょう。

タスクマネージャーで見る(GUI)

  1. 「詳細」タブを開く。
  2. 上部の見出し(名前やPIDなど)を右クリック
  3. 「列の選択」 をクリック。
  4. リストから 「整合性」 を探し、チェックを入れてOKを押す。

コマンドで見る(CUI)

現在自分が使っているシェルのレベルを知りたい場合は、以下のコマンドを打ちます。

whoami /groups | findstr Label

procmonで特定のProcess 見る

例えば 'notepad.exe'の整合性

process_monitor_integrity.jpg

5. セキュリティ・ペネトレーションテストへの応用

サイバーセキュリティ(レッドチーミング)の文脈では、この「整合性レベル」をいかに突破するかが鍵となります。

  • UACバイパス: 攻撃者が Medium レベルの権限を手に入れた後、OSの機能を悪用して High(管理者)へ昇格させる手法。
  • サンドボックス回避: Low レベルから Medium 以上の権限を奪取し、システム全体へ干渉を広げる手法。

まとめ

整合性レベルは、現代のWindowsにおいて「ユーザー権限」と同じくらい重要なセキュリティの柱です。

  • 開発者: 自分のアプリが適切なレベルで動いているか意識する。
  • セキュリティ担当者: 攻撃者がどのレベルにいるかを確認し、防御を固める。

この「信頼の境界線」を理解することで、Windowsの防御の仕組みがより深く見えてくるはずです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?