JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
Oracle Solaris 11 セキュリティーサービス開発ガイド     Oracle Solaris 11.1 Information Library (日本語)
このドキュメントの評価
search filter icon
search icon

ドキュメントの情報

はじめに

1.  Oracle Solaris の開発者向けセキュリティー機能 (概要)

Oracle Solaris の開発者向けセキュリティー機能の概要

システムセキュリティー

アドレス空間配置のランダム化 (ASLR)

デバッグと ASLR

ネットワークセキュリティーアーキテクチャー

2.  特権付きアプリケーションの開発

3.  PAM アプリケーションおよび PAM サービスの記述

4.  GSS-API を使用するアプリケーションの記述

5.  GSS-API クライアント例

6.  GSS-API サーバー例

7.  SASL を使用するアプリケーションの記述

8.  Oracle Solaris 暗号化フレームワークの紹介

9.  ユーザーレベルの暗号化アプリケーションの記述

10.  Oracle Solaris 鍵管理フレームワークの紹介

A.  開発者のためのセキュアコーディングガイドライン

B.  C ベース の GSS-API プログラム例

C.  GSS-API リファレンス

D.  OID の指定

E.  SASL ソースコード例

F.  SASL リファレンス

用語集

索引

ドキュメントの品質向上のためのご意見をください
簡潔すぎた
読みづらかった、または難し過ぎた
重要な情報が欠けていた
内容が間違っていた
翻訳版が必要
その他
Your rating has been updated
貴重なご意見を有り難うございました!

あなたの貴重なご意見はより良いドキュメント作成の手助けとなります 内容の品質向上と追加コメントのためのアンケートに参加されますか?

システムセキュリティー

システムのセキュリティーに関して、Oracle Solaris OS はプロセス特権を提供します。「プロセス特権」は、特権付きアプリケーションへのアクセス許可を行う際に、スーパーユーザーベースの UNIX 標準モデルに対する代替技術として使用できます。システム管理者は、特権付きアプリケーションへのアクセスを許可する一連のプロセス特権をユーザーに付与します。そうしたユーザーは、スーパーユーザーにならなくても、特権付きアプリケーションを使用できます。

特権を使用すれば、システム管理者は、システムセキュリティーをオーバーライドする権限をユーザーに与える際に、完全なスーパーユーザー権限ではなく制限された権限を与えることができます。したがって、新しい特権付きアプリケーションを作成する開発者は、UID が 0 かどうかを検査するのではなく、特定の特権の有無を検査する必要があります。第 2 章特権付きアプリケーションの開発を参照してください。

きわめて強固なシステムセキュリティーを実現するために、Oracle Solaris OS には Trusted Extensions 機能が提供されていますが、この機能についてはこのドキュメントでは扱いません。Trusted Extensions 機能を使用すれば、システム管理者は、特定のユーザーだけがアクセスできるアプリケーションやファイルを指定できます。詳細は、『Trusted Extensions Developer’s Guide 』および『Trusted Extensions ユーザーズガイド』を参照してください。

Oracle Solaris が提供する公開 Solaris セキュリティーインタフェースは、次のとおりです。

アドレス空間配置のランダム化 (ASLR)

ASLR は、スタック、ライブラリ、brk ベースのヒープといったプロセスのアドレス空間の主要部分の開始アドレスをランダム化する、Oracle Solaris システムの機能です。デフォルトでは、ASLR は ASLR を要求するように明示的にタグ付けされているバイナリに対して有効になります。次のコマンドは、ASLR のステータスに関する情報を提供します。

% sxadm info
EXTENSION        STATUS                   CONFIGURATION 
aslr             enable (tagged-files)    enable (tagged-files)   

新しく作成されるオブジェクトに ASLR 要求のタグを付けるには、ld(1) コマンドの -z オプションを使用します。使用法は次のとおりです。

ld -z aslr[=mode]

modeenable または disable に設定できます。mode が指定されていない場合は、enable と見なされます。

次の例は、ASLR を有効にして実行可能ファイルを作成するための -z オプションの使用法を示しています。

% cat hello.c
#include <stdio.h>
int
main(int argc, char **argv) 
{ 
  (void) printf("Hello World!\n");
  return (0);
}

% cc hello.c -z aslr

ASLR タグ付けは、オブジェクトの動的セクションのエントリによって実現され、elfdump(1) で調べることができます。

% elfdump -d a.out | grep ASLR
[28]  SUNW_ASLR   0x2   ENABLE

elfedit(1) コマンドを使用して、既存のオブジェクトの ASLR 動的エントリを追加または変更することができます。

% cc hello.c
% elfedit -e 'dyn:sunw_aslr enable' a.out
% elfdump -d a.out | grep ASLR
[29]  SUNW_ASLR  0x2  ENABLE
% elfedit -e 'dyn:sunw_aslr disable' a.out
% elfdump -d a.out | grep ASLR
[29]  SUNW_ASLR   0x1  DISABLE

あるプロセスに対する ASLR 要求は、そのプロセスの起動時に確立され、プロセスが起動したあとは変更できません。このため、ASLR タグ付けは、プロセスのプライマリ実行可能オブジェクトに対してのみ意味を持ちます。

pmap(1) ユーティリティーを使用して、プロセスのアドレスマッピングを調べることができます。ASLR が有効になっている実行可能ファイルのマッピングを調べる場合、スタック、ライブラリマッピング、および brk ベースのヒープに使用される具体的なアドレスは、呼び出しのたびに異なります。

システムのデフォルト ASLR のデフォルト動作を制御するには、sxadm(1) コマンドを使用します。ASLR を無効にするように明示的にタグ付けされたバイナリは、sxadm によって確立されたシステムのデフォルト動作よりも優先されます。

デバッグと ASLR

アドレス空間のランダム化はデバッグ時に問題になることがあります。一部のデバッグ状況では、プログラムを繰り返し呼び出す場合に同じアドレスマッピングを使用する必要があります。次のいずれかの方法で、ASLR を一時的に無効にすることができます。

詳細は、sxadm(1M) のマニュアルページおよび 『Oracle Solaris 11 セキュリティーガイドライン』の第 2 章「Oracle Solaris セキュリティーの構成」を参照してください。