JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
Solaris のシステム管理 (セキュリティサービス)     Oracle Solaris 10 8/11 Information Library (日本語)
search filter icon
search icon

ドキュメントの情報

はじめに

パート I セキュリティーの概要

1.  セキュリティーサービス (概要)

パート II システム、ファイル、およびデバイスのセキュリティー

2.  マシンセキュリティーの管理 (概要)

3.  システムアクセスの制御 (作業)

4.  デバイスアクセスの制御 (作業)

5.  基本監査報告機能の使用方法 (作業)

6.  ファイルアクセスの制御 (作業)

UNIX アクセス権によるファイル保護

ファイルの監視と保護を行うコマンド

ファイルとディレクトリの所有権

UNIX ファイルアクセス権

特殊なファイルアクセス権 (setuidsetgid、 スティッキービット)

setuid アクセス権

setgid アクセス

スティッキービット

umask のデフォルト値

ファイルアクセス権を設定するモード

アクセス制御リストによる UFS ファイルの保護

UFS ファイルの ACL エントリ

UFS ディレクトリの ACL エントリ

UFS ACL を制御するコマンド

実行可能ファイルを原因とするセキュリティーへの悪影響を防止する

ファイルの保護 (作業マップ)

UNIX アクセス権によるファイルの保護 (作業マップ)

ファイル情報を表示する方法

ローカルファイルの所有者を変更する方法

ファイルのグループ所有権を変更する方法

ファイルアクセス権を記号モードで変更する方法

ファイルアクセス権を絶対モードで変更する方法

特殊なファイルアクセス権を絶対モードで変更する方法

ACL による UFS ファイルの保護 (作業マップ)

ファイルに ACL が設定されているかどうかを検査する方法

ファイルに ACL エントリを追加する方法

ACL をコピーする方法

ファイルの ACL エントリを変更する方法

ファイルから ACL エントリを削除する方法

ファイルの ACL エントリを表示する方法

セキュリティーリスクのあるプログラムからの保護 (作業マップ)

特殊なファイルアクセス権が設定されたファイルを見つける方法

プログラムが実行可能スタックを使用できないようにする方法

7.  自動セキュリティー拡張ツールの使用 (手順)

パート III 役割、権利プロファイル、特権

8.  役割と特権の使用 (概要)

9.  役割によるアクセス制御の使用 (手順)

10.  役割によるアクセス制御 (参照)

11.  特権 (手順)

12.  特権 (参照)

パート IV 暗号化サービス

13.  Oracle Solaris の暗号化フレームワーク (概要)

14.  Oracle Solaris の暗号化フレームワーク (手順)

15.  Oracle Solaris 鍵管理フレームワーク

パート V 認証サービスと安全な通信

16.  認証サービスの使用 (手順)

17.  PAM の使用

18.  SASL の使用

19.  Oracle Solaris Secure Shell の使用 (手順)

20.  Oracle Solaris Secure Shell (参照)

パート VI Kerberos サービス

21.  Kerberos サービスについて

22.  Kerberos サービスの計画

23.  Kerberos サービスの構成 (手順)

24.  Kerberos エラーメッセージと障害追跡

25.  Kerberos 主体とポリシーの管理 (手順)

26.  Kerberos アプリケーションの使用 (手順)

27.  Kerberos サービス (参照)

パート VII Oracle Solaris 監査

28.  Oracle Solaris 監査 (概要)

29.  Oracle Solaris 監査の計画

30.  Oracle Solaris 監査の管理 (手順)

31.  Oracle Solaris 監査 (参照)

用語集

索引

実行可能ファイルを原因とするセキュリティーへの悪影響を防止する

セキュリティーのバグの多くは、デフォルトで読み取り権、書き込み権、および実行権が設定された実行可能スタックで発生します。実行可能スタックには実行権が割り当てられていますが、ほとんどのプログラムは実行可能スタックがなくても正しく機能します。

noexec_user_stack 変数を使うと、スタックを実行可能として割り当てるかどうかを指定できます。この変数は、Solaris 2.6 から利用可能です。デフォルトでは、この変数は 0 に設定されるため (64 ビットアプリケーションを除く)、 プログラムは ABI に準拠して動作します。この変数が 0 以外の値に設定された場合、システムはシステム中のすべてのプロセスのスタックに読み取り権と書き込み権のマークを付けますが、実行権のマークは付けません。

この変数が設定されている場合、プログラムがスタック上でコードを実行しようとすると SIGSEGV シグナルが送信されます。このシグナルが送信されると、通常、プログラムはコアダンプして終了します。このようなプログラムは、違反しているプログラム名、プロセス ID、 およびプログラムを実行した実ユーザー ID を含む警告メッセージも生成します。次に例を示します。

a.out[347] attempt to execute code on stack by uid 555 

メッセージは、syslog kern 機能が notice レベルの設定されているときに、syslog デーモンによってログに記録されます。このログへの記録は、デフォルトで syslog.conf ファイルに設定されていて、メッセージがコンソールと /var/adm/messages ファイルの両方に送信されることを意味します。詳細は、syslogd(1M) および syslog.conf(4) のマニュアルページを参照してください。

syslog メッセージは、潜在的なセキュリティーの問題を調べるときに役立ちます。また、このメッセージは、この変数を設定したために正しく動作しなくなった、実行可能スタックに依存するプログラムを確認するのにも役立ちます。メッセージを記録しない場合、システム管理者は、/etc/system ファイルで noexec_user_stack_log 変数を 0 に設定します。メッセージが記録されなくなりますが、SIGSEGV シグナルは送られるので、実行中のプログラムはコアダンプを生成して終了します。

mprotect() 関数を使用すれば、プログラムのスタックが実行可能であることを明示的にマーク付けできます。詳細は、mprotect(2) のマニュアルページを参照してください。

ハードウェアの制限のため、実行可能スタックの問題を捕えて報告する機能は、ほとんどの x86 ベースシステムで利用できません。AMD64 プロダクトファミリ内のシステムであれば、実行可能スタックの問題を捕えて報告できます。