Documentation Home
> Trusted Solaris 開発ガイド
Trusted Solaris 開発ガイド
Book Information
はじめに
第 1 章 API とセキュリティポリシーの紹介
オペレーティングシステムの基本機能
データオブジェクト
ファイルシステムオブジェクト
X11 ウィンドウオブジェクト
プロセスオブジェクト
IPC オブジェクト
ネットワーク通信の終端
STREAMS オブジェクト
アプリケーションプログラミングインタフェース (API)
特権
ユーザーの承認
CMW ラベル
プロセス認可上限
マルチレベルディレクトリ
アプリケーション監査
ユーザーデータベースとプロファイルデータベースのアクセス
プロセス間通信
トラステッド X ウィンドウシステム
アプリケーションユーザーインタフェース
ラベルビルダー
システムセキュリティ構成の設定
セキュリティ属性
ファイルシステムのセキュリティ属性とフラグ
プロセスのセキュリティ属性とフラグ
終端間通信のセキュリティ属性
トラステッド X ウィンドウシステムのセキュリティ属性
セキュリティポリシー
任意アクセスポリシー
必須アクセスポリシー
読み取りアクセス
書き込みアクセス
特権を使用する場合
管理アプリケーションとユーザーアプリケーション
ポリシーの運用
ファイルシステムのセキュリティポリシー
任意アクセス
必須アクセス
ファイルシステムのアクセス特権
アクセスチェックが実行される場合
ファイルシステムポリシーの例
機密ラベル
ファイルを開く
ファイルへの書き込み
ファイルの実行
第 2 章 プログラミングインタフェースの概要
システムセキュリティ構成と属性情報
プログラミングインタフェース
システムセキュリティ構成
ファイルシステムのセキュリティ属性
ファイルシステムのセキュリティ属性フラグ
プロセスのセキュリティ属性フラグ
システムセキュリティ構成の照会
ファイルシステムのセキュリティ属性の照会
vfstab_adjunct ファイルからの属性の取得
i ノードからの属性の取得
明示的定数の値
明示的定数の内容
ファイルシステムのセキュリティ属性フラグの取得と設定
プロセスのセキュリティ属性フラグの取得と設定
明示的定数の値
Trusted Solaris 7 のセキュリティ機構
特権と承認
CMW ラベルと認可上限
マルチレベルディレクトリ
アプリケーション監査
ユーザーデータベースとプロファイルデータベース
第 3 章 特権
特権の種類
特権セット
ファイル特権セット
許容セット
強制セット
インタプリタ処理されるファイル
プロセス特権セット
継承可能な特権セット
保存セット
許可セット
有効セット
ユーザー ID の変更
特権を持つアプリケーションの種類
特権名と説明
特権操作
ファイル特権セットの設定
実行可能ファイルのファイル特権セットを保持する
コアファイル
ID の設定
特権のガイドライン
特権ブラケットの使用
シェルエスケープの回避
コマンド行実行の回避
秘密チャネルの除去
データ型、ヘッダーファイル、ライブラリ
単一特権
特権セットの構造
ファイル特権セット
プロセス特権セット
ファイルセットとプロセスセットの操作
特権マクロ
インタフェースの宣言
システムコール
ファイル特権セット
プロセス特権セット
ライブラリルーチン
プロセス特権セット
バイナリと ASCII 間の変換
特権説明テキスト
特権の変換
特権 ID から文字列への変換
文字列から特権 ID への変換
特権 ID の説明テキストの取得
ファイル特権セットの設定と取得
ファイル特権セット用のコマンド
ファイル特権セット用のプログラミングインタフェース
許容される特権の無効化
特権セット構造での特権の表明
特権セットの内容
有効な特権のブラケット化
手順
有効セットのクリア
アプリケーションコードの継続
呼び出しのブラケット化
ブラケット化の例
許可特権のチェック
許可特権の削除
保存特権のチェック
継承可能セットのクリアと設定
プロセスのフォーク
親プロセスの特権セット
システムコールとコード
新しいプロセス特権セット
ファイルの実行
特権セット
システムコール
新しいプロセス特権セット
ユーザー ID の設定
第 4 章 ユーザー承認のチェック
承認の種類
データ型、ヘッダーファイル、ライブラリ
単一の承認
承認セットの構造
承認名と説明
プログラミングインタフェースの宣言
ユーザーの承認
承認 ID
承認セット
承認の説明テキスト
承認 ID のチェック
承認の変換
承認 ID から文字列への変換
文字列から承認 ID への変換
承認の説明テキストの取得
承認セット
文字列から承認セットへの変換
承認セットから文字列への変換
承認セットの解放
第 5 章 ラベル
CMW ラベル
機密ラベル
CMW ラベルの表示
CMW ラベルの取得
プロセスの CMW ラベル
オブジェクト CMW ラベル
特権の必要な操作
バイナリラベルの変換
プロセスラベルの設定
機密ラベルの降格と昇格
機密ラベルの降格
機密ラベルの昇格
ラベルのガイドライン
機密ラベル
必須アクセス制御の回避
機密ラベルの昇格または降格
別の機密ラベルでのプロセスの作成
データ型、ヘッダーファイル、ライブラリ
CMW ラベル
フラグの設定
機密ラベル
バイナリレベル
型の互換性
機密ラベルの範囲
認可範囲
ラベル情報
バナーフィールド
プログラミングインタフェースの宣言
システムコール
ファイルの CMW ラベル
プロセスの CMW ラベル
ファイルシステムのラベル範囲
ライブラリルーチン
CMW ラベルの初期化
CMW ラベルのラベル部
機密ラベルの初期化
レベルの比較
ラベルタイプ
レベルの上下限
ラベルエンコーディングファイル
有効な機密ラベル
認可範囲
バイナリと ASCII 間の変換
バイナリと 16 進間の変換
第 6 章 ラベルのコード例
バージョン文字列の取得
バイナリラベルの初期化と型のチェック
プロセス CMW ラベルの取得
プロセス CMW ラベルの機密ラベル部の設定
ファイル CMW ラベルの取得
ファイル CMW ラベルの機密ラベル部の設定
ファイルシステムのラベル範囲
ファイル CMW ラベルの変更前に範囲を確認する
データをデバイスに出力する前に範囲を確認する
ラベルの関係の確認
2 つのレベル間の関係の確認
CMW ラベル部のアクセス
バイナリレベルの上下限の確認
認可範囲のチェック
ラベルの妥当性検査
ASCII カラー名の取得
ラベルエンコーディング情報
ラベルの変換
バイナリと ASCII
バイナリから ASCII への変換
CMW ラベル
機密ラベルと情報ラベル
ASCII からバイナリと 16 進への変換
CMW ラベル
機密ラベルと情報ラベル
コード例
バイナリと 16 進
通常ルーチンによるバイナリと 16 進変換
再入可能ルーチンによるバイナリと 16 進変換
プリンタバナーの情報
第 7 章 プロセス認可上限
特権を必要とする処理
データ型、ヘッダーファイル、ライブラリ
プロセス認可上限
バイナリレベル
型の互換性
プログラミングインタフェース宣言
システムコール
ライブラリルーチン
初期化
比較
認可上限の型
レベルの上下限
有効な認可上限
バイナリと ASCII 間の変換
バイナリと 16 進間の変換
プロセス認可上限の処理
プロセス認可上限の設定
認可上限構造の初期化
2 つのレベル間の関係の確認
もっとも高いレベルともっとも低いレベルの検索
有効な認可上限
プロセス認可上限の変換
バイナリと ASCII
バイナリと 16 進
通常ルーチン
再入可能ルーチン
第 8 章 マルチレベルディレクトリ
ディレクトリ構造
一時ディレクトリ
シンボリックリンク
装飾名
特権オペレーション
データ型、ヘッダーファイル、ライブラリ
機密ラベル
状態
プログラミングインタフェース宣言
システムコール
SLD 名の取得
MLD 装飾の取得
SLD または MLD の属性情報の取得
MLD の属性フラグの取得
ライブラリルーチン
現在の作業ディレクトリの取得
装飾名の取得
実際のパス名の検索
MLD 名と SLD 名の照会
装飾パス名の使用
ファイルを開く
ファイルの作成
第 9 章 アプリケーション監査
独自のユーザーアクティビティ
特権オペレーション
ヘッダーファイルとライブラリ
宣言と引数の種類
コード例を実行するための事前設定
監査ファイルの設定
監査クラスと監査イベント
監査制御 (プロセスの事前選択マスク)
監査トレール設定の表示
実行可能コードの設定
監査レコードの作成
無効な呼び出しと有効なコードの作成
無効な呼び出し
有効な呼び出し
最小限の監査レコードの作成
トークンの構造
return トークン
情報ラベルを含む監査レコード情報の追加
監査レコードを待ち行列に入れる
事前選択マスクの指定
監査レコードの並行作成
保存領域の使用
サーバー領域の使用と機密ラベルの追加
引数情報
コマンド行引数
特権セット
プロセス間通信の識別子
第 10 章 ユーザーとプロファイルのデータベースエントリへのアクセス
データ型、ヘッダーファイル、およびライブラリ
ユーザーエントリ
プロファイルエントリ
すべての文字列を返す
コマンドとアクションをリンクリストで返す
アクションのリンクリスト
コマンドのリンクリスト
プログラミングインタフェース宣言
ユーザーエントリの取得
ユーザーエントリの列挙
ユーザーエントリに割り当てられた記憶領域の解放
プロファイルエントリの取得
プロファイルエントリの列挙
プロファイルエントリに割り当てられた記憶領域の解放
ユーザーエントリとプロファイルエントリの取得
ユーザーデータベースの出力
プロファイルデータベースの出力
名前を使用してプロファイル文字列を取得する
名前を使用してプロファイルエントリを取得する
コマンド情報
アクション情報
ユーザーデータベースの列挙
第 11 章 プロセス間通信
名前なしパイプ
名前付きパイプ (FIFO)
仮想端末デバイス (PTY)
シグナル
プロセストレース
マップメモリー
System V IPC
通信終端
マルチレベルポート
ソケットと TLI
UNIX アドレスファミリ
インターネットアドレスファミリ
TSIX
RPC
第 12 章 System V のプロセス間通信
特権の必要な処理
必須アクセス制御と所有権制御
必須アクセス制御
データ型、ヘッダーファイル、ライブラリ
ラベル
プログラミングインタフェース宣言
メッセージ待ち行列
セマフォセット
共有メモリー領域
メッセージ待ち行列ラベルの使用
セマフォセットラベルの使用
共有メモリーラベルの使用
第 13 章 トラステッドセキュリティ情報交換ライブラリ
セキュリティ属性
特権の必要な処理
情報ラベルの浮上
同じ機密ラベルで応答する
機密ラベルの変更
セキュリティ属性情報の変更
機密ラベル
情報ラベル
プロセス認可上限
ユーザー ID とグループ ID
特権
データ型、ヘッダーファイル、およびライブラリ
属性の構造
属性の列挙
属性マスク
プログラミングインタフェース宣言
属性マスクの取得
領域の割り当てと解放
データの送受信
セキュリティ属性の取得と設定
セキュリティ属性の確認
1 つのセキュリティ属性のサイズの取得
セキュリティ属性のコピーと複製
セキュリティ属性の比較
セキュリティ属性のクリア
終端属性の取得と設定
拡張セキュリティオペレーションの有効化と無効化
セキュリティ属性の取得と設定
メッセージのセキュリティ属性
通信終端のセキュリティ属性
セキュリティ属性の受信と取得
属性の確認
属性サイズの取得
属性構造のコピーと複製
属性構造の比較
属性構造のクリア
属性マスクの作成
領域の解放
クライアントサーバーアプリケーション
TCP/IP サーバー
TCP/IP クライアント
プログラムの実行
第 14 章 遠隔手続き呼び出し
マップ
シングルレベルマップ
マルチレベルマップ
マルチレベルポート
セキュリティ属性
サーバー
クライアント
ヘッダーファイルとライブラリ
プログラミングインタフェース
クライアントサーバーアプリケーション
ヘッダーファイル
クライアントプログラム
サーバープログラム
遠隔手続き
簡単なアプリケーションの実行例
第 15 章 トラステッド X ウィンドウシステム
セキュリティ属性
セキュリティポリシー
ルートウィンドウ
クライアントウィンドウ
override-redirect ウィンドウ
キーボード、ポインタ、サーバー制御
選択マネージャ
デフォルト資源
ウィンドウ間のデータ移動
特権の必要な処理
資源の設定と削除
入力デバイス
ダイレクトグラフィックスアクセス
ラベルの降格
ラベルの昇格
情報ラベルの浮上の停止
フォントパスの設定
データ型、ヘッダーファイル、およびライブラリ
オブジェクトの種類
オブジェクトの属性
プロパティの属性
クライアントの属性
フラグの設定
CMW ラベル
情報ラベル
認可上限
プログラミングインタフェース宣言
ウィンドウの属性
プロパティの属性
クライアント接続の属性
ウィンドウの CMW ラベル
ウィンドウのユーザー ID
ウィンドウの入力情報ラベル
プロパティの CMW ラベル
プロパティのユーザー ID
ワークステーションの所有者 ID
X ウィンドウサーバーの認可上限と最下位ラベル
トラステッドパスウィンドウ
トラステッドストライプの高さ
多重インスタンス化の情報
X11 ウィンドウのラベルクリッピングインタフェース
Motif アプリケーションの例
ウィンドウ属性の取得
フォントリストによるラベルの変換
ウィンドウの CMW ラベルの取得
ウィンドウの CMW ラベルの設定
ウィンドウのユーザー ID の取得
X ウィンドウサーバーワークステーションの所有者 ID の取得
ソースコード
コピー元のファイル
コンパイルコマンド
コード
ウィンドウのシステム構成の変更
第 16 章 ラベルビルダー
ヘッダーファイルとライブラリ
プログラミングインタフェース
対話形式のユーザーインタフェースの作成
ラベルビルダーの動作
キーボード入力
オプションの選択
「リセット (Reset)」プッシュボタン
「取り消し (Cancel)」プッシュボタン
アプリケーション固有の機能
特権の必要な処理
ルーチンの作成
拡張処理
ModLabelData 構造体
オンラインヘルプ
付録 A プログラマーズリファレンス
マニュアルページ
マニュアルページの要求
マニュアルページの読み取り
共有ライブラリのトラステッド化
デフォルトのトラステッド共有ライブラリの位置
他社またはサイトで作成したアプリケーションが使用する共有ライブラリ
例
ヘッダーファイルの位置
名前の省略
開発、テスト、およびデバッグ
特権デバッグ
スクリプトを使用したファイル特権の割り当て
アプリケーションのリリース
CDE アクションの作成
ソフトウェアパッケージの作成
パッケージファイル
MAC セキュリティ属性
内容
既存のパッケージの編集
新しいパッケージの追加
必須ファイルの作成
オプションのファイルとスクリプトの作成
パッケージの作成
プロトタイプファイル
付録 B Trusted Solaris 7 インタフェースリファレンス
システムセキュリティ構成
ファイルシステムのセキュリティ属性とフラグ
プロセスのセキュリティ属性フラグ
特権
特権マクロ
承認
ラベル
ファイルシステム
ラベルエンコーディングファイル
再入可能なルーチン
レベル
ラベルの型
機密ラベル
情報ラベル
CMW ラベル
ラベルクリッピングインタフェース
認可上限
アプリケーション監査
マルチレベルディレクトリ
データベースアクセス
System V IPC
メッセージ待ち行列
セマフォセット
共有メモリー領域
TSIX
RPC
ラベルビルダー
X ウィンドウシステム
トラステッド streams
システムコール
ドライバ用トラステッドカーネル関数
ライブラリルーチン
索引
数字・記号
A
B
C
D
E
F
G
H
I
L
M
N
O
P
R
S
T
U
V
W
X
あ
う
え
お
か
き
く
け
こ
さ
し
す
せ
そ
た
つ
て
と
な
に
ね
は
ひ
ふ
へ
ほ
ま
み
め
ゆ
よ
ら
れ
ろ
© 2010, Oracle Corporation and/or its affiliates