第7回(最終回): セキュリティ

はじめに

最終回となる第7回では、Windows NT 3.1 の セキュリティモデル を解説します。NT は、従来の Windows とは一線を画す「企業利用を前提とした OS」として、設計段階から本格的なセキュリティ機構を組み込んでいました。


1. Windows NT セキュリティの基本思想

Windows NT のセキュリティは、以下の思想に基づいて設計されています。

  • すべてのリソースを オブジェクト として扱う
  • アクセス制御は OS が一元的に判断する
  • アプリケーションを信用しない設計

この思想は、UNIX のパーミッションモデルとは異なる、より汎用的な仕組みを提供しました。


2. オブジェクトベースセキュリティ

2.1 セキュリティ記述子

Windows NT では、

  • ファイル
  • プロセス
  • スレッド
  • 同期オブジェクト

といった すべてのカーネルオブジェクト に、セキュリティ記述子が関連付けられます。

セキュリティ記述子には以下が含まれます。

  • オーナー SID
  • DACL(Discretionary ACL)
  • SACL(System ACL)

3. SID とアクセス制御

3.1 SID(Security Identifier)

SID は、

  • ユーザー
  • グループ

を一意に識別する ID です。

名前ではなく SID を用いることで、

  • 名前変更への耐性
  • ドメイン環境での一貫性

が確保されます。

3.2 アクセスチェック

アクセス要求時、

  1. オブジェクトの DACL を取得
  2. トークン内の SID と照合
  3. 要求されたアクセス権を評価

という手順で可否が判断されます。


4. アクセストークン

4.1 トークンの役割

アクセストークンは、スレッドやプロセスに関連付けられる セキュリティコンテキスト です。

トークンには以下が含まれます。

  • ユーザー SID
  • グループ SID
  • 特権(Privileges)

4.2 特権モデル

  • SeDebugPrivilege
  • SeShutdownPrivilege

など、

「権限」とは別に 特権 という概念を導入した点が NT の特徴です。


5. セキュリティ参照モニタ(SRM)

セキュリティ判断は、

  • セキュリティ参照モニタ(SRM)

というカーネルコンポーネントによって一元的に行われます。

  • アプリケーションは直接判断できない
  • バイパス不可能な設計

これにより、OS 全体のセキュリティ一貫性が保たれます。


6. 監査とログ

6.1 セキュリティ監査

Windows NT は初期から、

  • 成功イベント
  • 失敗イベント

の両方を監査可能でした。

6.2 イベントログ

  • セキュリティログ
  • システムログ

による追跡性は、企業システムでの運用を強く意識したものです。


7. 最終回まとめ

Windows NT 3.1 のセキュリティは、

  • オブジェクトベースの一貫したモデル
  • SID と ACL による柔軟なアクセス制御
  • カーネルによる強制的な判断機構

という特徴を持ち、現在の Windows セキュリティの原型となりました。


連載全体のまとめ

本連載では、Windows NT 3.1 を通じて、

  • アーキテクチャ
  • プロセスとスレッド
  • メモリ管理
  • I/O システム
  • セキュリティ

という OS の根幹を技術者向けに解説してきました。

30年以上前に設計されたこれらの思想は、 現在の Windows 11 に至るまで、確実に受け継がれています。


(完)

コメント

タイトルとURLをコピーしました