この付録では,『Trusted Computer System Evaluation Criteria』 (『Orange Book』とも呼ばれる) でも説明されているように,エンハンスト・セキュリティを使って,C2 レベル以上のセキュリティに見合うようにシステムを構成する方法について説明しています。『Orange Book』のオンライン版は,http://nsi.org/Library/Compsec/orangebo.txt
で提供されています。
Tru64 UNIX は,『Information Technology Security Evaluation Criteria』(ITSEC) に定義されている,F-C2 機能クラスにも適合するように設計されています。
サイトのセキュリティ・ポリシに従い,C2 ネットワーク,および適切な物理的セキュリティを実施してシステムを使用すると,C2 レベルの環境を実現し,既存の Tru64 UNIX セキュリティ・メカニズムとの互換性を確保しながら,ユーザおよびシステムの情報の保護を強化できます。
Tru64 UNIX 製品の最新の評価および認定ステータスについては,当社の営業担当にお問い合わせください。
この付録には,次の情報があります。
セキュリティ・ポリシは,組織内でコンピュータ環境を保守する方法や, 機密情報を管理,保護,および配布する方法を定めた,規則および実施に関する規定です。セキュリティ・ポリシには,次の情報が含まれる必要があります。
セキュリティ・ポリシを保守し変更する手順の文書化。
侵入またはその他のセキュリティ侵害が発生したときにシステム管理者がとる行動の確立。
次の事項を含む,サイトの監査ポリシの決定。
監査対象のユーザ操作。
ローカル定義の監査イベント。
監査ログの格納場所。
監査ログの見直し手順。
認識できないアカウント名 (login_uname
) でログインしようとしたときに監査が必要かどうか。この属性を使うと,プロンプトの表示のタイミングとパスワードの入力がずれた場合も監査ログに記録が残ります。
サービス・アクセス・ポリシの確立 (管理,パスワード)。
システムの
umask
の決定 (022 がシステムの省略時の設定)。
システムおよびサイトのパスワードなど,完全性を確認するスケジュールの確立。
システムの境界の定義と,境界の間のインタフェース (たとえば,telnet
,ftp
) の定義。
磁気メディアのポリシの確立 (特に,リムーバブル・メディアの場合)。
システムにインストールするアプリケーション・ソフトウェアの決定とセキュリティ上の問題の確認。
ユーザのパスワード・ポリシの決定。次のような考慮事項があります。
長いパスワードは解読されにくいが,必然的に書き留めてしまいます。
ユーザが選択したパスワードを使用する場合,そのパスワードを知っているのは 1 人だけです。
機械生成のパスワードは解読されにくいが,覚えるのも困難で,書き留めてしまう可能性があります。
システムのログイン制御の決定。
システムのスタートアップ,シャットダウン,アップグレードの手順の確立。
バックアップおよび回復の手順の確立。
システム管理者 (root アクセス) の決定,および管理者の役割の決定。
「アカウント・マネージャ」プログラムを使ってユーザ・アカウントを作成するための,1 つ以上のセキュア・アカウント・プロトタイプ (ローカル・テンプレート) の確立。
/usr/skel
ディレクトリ内のスタートアップ・ファイルでのセキュア・アカウント・テンプレートの確立。
システム上の各オブジェクトのアクセス制限の決定。
システムのグループの確立。
システム上の各ユーザのアクセス制限の決定。
UID または GID を設定できる,システム上のすべてのプログラムへの参照の記録。
システム上のファイル・システムのエクスポート制限の決定。
システム上のサブジェクトおよびオブジェクトの変更管理手順の確立。
物理的アクセス変更の手順の確立。
システムおよびコンソールの物理的アクセス要件の確立。
ネットワーク構成要素の物理的アクセス要件の確立。
ネットワーク・セキュリティ・ポリシの確立。
システム上で実行されるリモート・アクセス・プログラム (ftp
,telnet
など) の決定。
システムへのアクセス権を持つリモート・システムの決定。
システムおよびサイトのコンソール・パスワード要件の決定。
モデム・ポリシの確立 (認証,着信アクセスおよび発信アクセスの構成を考慮する必要があります)。
「ユーザ・セキュリティ・トレーニング」コースまたはサイトに関するマニュアルの作成。
オペレーティング・システム,データベース,アプリケーション・メニューに対するユーザによるアクセス方法の文書化。
サイトのセキュア・デバイスの決定。
システムを構成した後は,構成ファイルの変更は少なくし,計画的に変更します。システムの定期的なセキュリティ見直し時に,元の構成ファイルと現在のファイルの内容と許可を比較してください。次のファイルのリストを取得してセキュリティ・ポリシに添付することで,基本システムとネットワーク構成を文書化してください。
/usr/skel/.profile /usr/skel/.cshrc /usr/skel/.login /var/yp/<domain>/auto.master /var/yp/<domain>/auto.home /var/yp/<domain>/auto.### /etc/auto.* /etc/auth/* /etc/dumpdates /etc/ethers /etc/exports /etc/fstab /etc/ftpusers /etc/group /etc/hosts /etc/hosts.equiv /etc/inetd.conf /etc/motd /etc/netgroups /etc/passwd /etc/profile /etc/csh.login /etc/logout 使用している場合 /etc/remote /etc/resolv.conf /etc/rc.config /etc/rc.site 省略可能,/etc/rc.config と組み合わせて使用 /etc/screend.config /etc/services /etc/sec/site_events /etc/sec/audit_events /etc/sec/auditd_clients /etc/sec/event_aliases /etc/sec/auditd_cons /etc/sec/audit_loc /etc/securettys /etc/svc.conf /tcb/* /usr/adm/messages /var/spool/uucp/Permissions UUCP を使用している場合 /var/spool/uucp/Systems UUCP を使用している場合 /var/spool/uucp/remote.unknown UUCP を使用している場合 /var/adm/cron/at.allow /var/adm/cron/at.deny /var/adm/cron/cron.allow /var/adm/cron/cron.deny /var/adm/crontab/ これらのディレクトリの任意のファイル /var/tcb/* /var/yp/src/*
『Orange Book』に示されている最小限の C2 システムの要件に従った場合の Tru64 UNIX の構成は次のとおりです。
サイトのセキュリティ・ポリシの要件が満たされるのは,『Site Security Handbook (RFC 1244)』で説明しているとおりに,サイトのセキュリティ・ポリシを確立したときです。セキュリティ・ポリシは,文書化する必要があります。
ユーザは自身のパスワードを変更することができ,パスワードは機械生成されていなければなりません (『Green Book』で推奨)。パスワードの構成についての詳細は,E.3.2 項を参照してください。
ユーザの最後のログインを通知するという要件は,エンハンスト・セキュリティを構成したときに満たされます。
任意アクセス制御の要件は,システムに ACL (アクセス制御リスト) を構成することで満たされます。ACL の構成の詳細については,2.3 節
を参照してください。小規模のシステム (32 ユーザ未満) では,/usr/groups
を使用しないでください。
オブジェクト再利用要件では,xhost
エントリなしでワークステーションを構成する必要があります。
共有メモリの分離を有効にしなければなりません。secconfig
でセグメント共有を無効にするか質問されたときに yes と答えると,分離を有効にできます。
監査サブシステムを構成し,使用できるようにする必要があります。監査サブシステムについては,第 3 章 を参照してください。
トラステッド・コンピューティング・ベース (TCB) の完全性を確認する機能は,サイトのセキュリティ・ポリシに従って,定期的に
fverify
コマンドおよび
authck
コマンドを実行することで実現できます。
Tru64 UNIX ソフトウェア・サブセット (オプションのエンハンスト・セキュリティとドキュメンテーション拡張サブセットを含む) をシステムにインストールした後に,ソフトウェアの構成を開始します。構成中に選択する項目のいくつかは,システムのセキュリティに影響を及ぼします。最大限の実用的なセキュリティがシステムに必要であると仮定して説明します。以降の項では,セキュリティに関して考慮すべき事柄を推奨構成について説明します。
E.3.1 一般的な構成
一般的なシステム構成には次の事項が含まれます。
ディレクトリ
/tmp
,/var/tmp
,および
/var/spool
は,ルート (/
) ディレクトリおよび
/usr
ディレクトリのあるファイル・システム以外に置いてください。
JAVA を有効にして Netscape Navigator を実行しないでください。よく知られている安全なサイトに接続する場合だけ,JAVA を有効にしてください。
できるだけシステムをインターネットに接続しないようにしてください。
E.3.2 secconfig を使用した,エンハンスト・パスワードと認証
サイトのセキュリティ・ポリシに合うように,エンハンスト・パスワード属性を選択します。詳細については A.2.2 項 を参照してください。
次のパスワード属性を使用します (省略時の設定は,/etc/auth/system/default
ファイルに定義されています)。
ユーザ選択または機械生成のどちらかのパスワードを選択し,次のように構成します。
ユーザ選択パスワードの場合 (/etc/auth/system/default
ファイル内に
u_pickpw
フィールドあり),長さの下限を 8 文字 (u_minlen#8
) に設定し,上限を 80 文字 (u_maxlen#80
) に設定します。
機械生成パスワードの場合 (/etc/auth/system/default
ファイル内に
u_pickpw
フィールドなし),長さの下限を 0 文字 (u_minlen#0
) に設定し,上限を 10 文字 (u_maxlen#10
) に設定します。下限の値を 0 にすると,Tru64 UNIX は『Green Book』のアルゴリズムを使用して,パスワードを生成します。
空のパスワードを使えないようにします (u_nullpw@
)。
パスワードの有効期間に 180 日を設定します (u_exp#15724800
)。
アカウントの有効期間に 360 日を設定します (u_life#31449600
)。
パスワード・ヒストリ・ファイルの深さに 9 を設定します (u_pwdepth#9
)。
アカウントがロックされるまでにパスワード入力の再試行回数に 5 を設定します (u_maxtries#5
)。
新規アカウントがロックされるように設定します (u_lock
)。
端末がロックされるまでにログインを試すことができる回数の上限に 10 を設定します (t_maxtries#10
)。
ログインの試行間の遅延に 2 秒を設定します (t_logdelay#2
)。
平凡性チェック (u_restrict
) およびサイトのパスワード制限 (u_policy
) を選択します。
アカウント・マネージャ (dxaccounts
) または
edauth
プログラムを使って,省略時の設定を変更します。
E.3.3 ライブラリ
システム上のライブラリが,攻撃に利用されることがあります。次の方法で,ライブラリを保護します。
secconfig
から入力を求められたときに
yes
と答え,セグメント共有を無効にします。
アクセス許可が正しいこと (所有者以外の書き込み許可なし) と,リンクされたターゲット・ファイルも含め,シェアード・ライブラリ (/usr/shlib/*.so
) の所有者が root であることを確認します。この手順には,ls -lL
を使います。
E.3.4 アカウント・プロトタイプとアカウント・テンプレート
ユーザ・アカウントのスタートアップ・ファイルを作成するためのアカウント・テンプレートは,/usr/skel/.login
,/usr/skel/.cshrc
,および
/usr/skel/.profile
です。
アカウント・プロトタイプ (「ローカル・テンプレート」と呼ばれる) は,アカウント・マネージャ (dxaccounts
) が提供します。プロトタイプでは,個々のユーザ・アカウントのパスワード有効期間およびログイン試行回数などの属性を設定できます。属性値がローカル・テンプレートの中に指定されていない場合は,default
ファイルの値が使用されます。システム単位の省略時の属性値は,/etc/auth/system/default
ファイルに格納されています。システムの省略時設定値は,/usr/tcb/bin/edauth
コマンドを使って設定されます。
ユーザ・アカウントは,次の手順で構成します。
提供された省略時のテンプレートを使って,サイトのセキュリティ・ポリシを反映したアカウント・テンプレートを作成します。
umask
を
/usr/skel/.login
ファイルに設定します (HP の推奨値は,027 です)。
必要に応じて,ユーザに制限付きシェル (Rsh
) を指定します。
各ユーザに,システム上の有効なエントリ・パス (ログイン・シェル) があることを確認します。ユーザの
/home/.profile
から,または
/etc/passwd
ファイル内のエントリからアプリケーションを起動するか,スタートアップ・プログラムを実行してユーザの開始点としてアプリケーションを起動することによって,ユーザを直接アプリケーションの中に入らせることができます。
ユーザの
.profile
ファイルから呼び出されたメニュー・スクリプトによってユーザのアクセスを制限する場合,Ctrl/C およびその他のキーボード割り込みを無視するために,スクリプト・ファイルの先頭に
trap
コマンドを置く必要があります。
監査サブシステムのカーネル・オプションを構成するには,カーネルに監査サブシステムを取り込んで構築しておく必要があります。監査サブシステムを構成するには,カーネルの構築後に
sysman auditconfig
ユーティリティを使います。監査は,次のように構成し,実行してください。
監査ログ (/var/audit/auditlog.nnn
) には,省略時の場所を使います。オーバフローから保護するために,監査ログはルート (/
) および
/usr
以外のファイル・システムに置きます。
/etc/sec/auditd_loc
ファイルを編集して,監査ログ・データのオーバフローに備えて,監査ログの代替格納場所を指定します。
auditd
のメッセージをコンソール (/dev/console
) に送ります。
サイト・ポリシの規定に従って,trusted_events
を監査し,無効なアカウントでログインを試みたユーザの名前をログにとるように監査マスクを設定します。
監査デーモンをコマンド行から開始するには,次のコマンドを使います。
# /sbin/init.d/audit start
監査サブシステムについては,第 3 章
を参照してください。
E.3.6 システムの保全性の確認
システムをリブートしてエンハンスト・セキュリティ・オプションを有効にしたら,fverify
および
authck
プログラムを実行して,システムの保全性を確認します。
E.3.7 ネットワーク・セキュリティの構成
コンピュータ環境を保護するためには,ネットワークを正しく構成することが大切です。ネットワーク構成の手助けとして,次のチェック・リストを利用してください。
NIS (以前はイエロー・ページと呼ばれていた,Network Information Services) を使って root アカウント情報を配布しないでください。詳細については A.6 節 を参照してください。
NIS
を使う場合は,
ypserv
(8)/etc/yp/securenets
ファイルを使います。
ypbind
は,-ypset
オプションや
-ypsetme
オプションを付けずに,-S
フラグを付けて実行します (省略時の指定)。
システムに
uucp
が構成されている場合は,次のようにします。
uucp
アカウントがパスワード制御されており,アクセスが必要なマシンのそれぞれに個別の
uucp
アカウントがあることを確認します。
/var/spool/uucp/Permission
ファイルに有効なエントリだけがあることを確認します。
/var/spool/uucp/Systems
ファイルに有効なエントリだけがあることを確認します。
ファイル転送プロトコル (FTP) が保護されていることを確認し,可能な場合は,匿名 FTP アカウントを用意しないようにします。匿名 FTP を使う必要がある場合は,次のことを確認します。
FTP アカウントの保護パスワード・フィールドにアスタリスク (*) があります。
FTP 用のホーム・ディレクトリ
/usr/ftp
が作成されています。/usr/ftp
ディレクトリの下にサブディレクトリ
/bin
および
/etc
を作成します。
ホーム・ディレクトリ内には,ftp
が所有しているものがありません。
転送ファイルを置いたり,取り出したりするための公開サブディレクトリが,/usr/ftp
ディレクトリ下に作成されています。ユーザ
ftp
は,この公開サブディレクトリに対して書き込みアクセス権だけを持つ。
パスワードなしの
ftp
アカウントだけからなる
~ftp/etc/passwd
ファイルを作成します。
/etc/sia/bsd_matrix.conf
ファイルを
~ftp/etc/sia/matrix.conf
にコピーします。
/sbin/ls
を
~ftp/bin/ls
にコピーします。
ftp
アカウントのログイン・シェルは,/sbin/sink
です。
ワークステーションで DES クッキー・ベースの認証 (省略時の設定)
を使用していることを確認します。詳細については,
dtlogin
(1)
/usr/bin/X11/xhost
を実行したとき,何も報告されてはなりません。出力は次のようにならなければなりません。
# xhost access control enabled, only authorized clients can connect #
システムをインストールして構成した後は,以降の項の作業を行います。
E.3.8.1 リモート・アクセスの umask
サイトのセキュリティ・ポリシに記述されているとおりに,ファイル
/etc/csh.login
,/etc/profile
,および
/etc/init.d/inet
に
umask
エントリを追加します (/etc/init.d/inet
ファイルは,アップデート・インストレーションの際に上書きされるので注意してください)。
E.3.8.2 デバイス
/usr/tcb/bin/dxdevices
を使って,サイトのセキュリティ・ポリシを反映したセキュリティ属性を持つデバイスを作成します。
リモート・ログインのシェル・ファイルを次のように変更して,所有者だけが端末ポートを読み取れるようにします。
/etc/profile
ファイルには,次の内容を追加します。
case "$TERM" in none) ;; *) /usr/bin/setacl -b `/usr/bin/tty` ;; esac
/etc/csh.login
ファイルには,次の内容を追加します。
if ($?TERM) then if ("$TERM" != "none") then /usr/bin/setacl -b `/usr/bin/tty` endif endif
ユーザ・アカウントを次のように作成し,チェックします。
アカウント・マネージャ (/usr/bin/X11/dxaccounts
) を使用するか,以前のシステムから
/usr/users
の部分とその関連ファイルをリストアして,システムのユーザ・アカウントを作成します。
ホーム・ディレクトリがオプション
noexec
,nosuid
,および
nodev
を付けてマウントされていることを確認します。
次のようなコマンドを使って,CDE ユーザに対して自動一時停止機能が有効になっていることを確認します。
# grep extension.lockTimeout \ ~/.dt/sessions/current/dt.resources
ステータスが 0 なら,自動一時停止機能は無効になっています。
/etc/passwd
および
/var/tcb/files/auth.db
データベースを参照して,ユーザのホーム・ディレクトリとパスワードが適切であることを確認します。
ユーザ・アカウントの作成については,『システム管理ガイド』 を参照してください。
root アクセスは慎重に制御し,監視する必要があるため,次の条件が満たされていることを確認します。
システムのインストール後,またはサポート・ベンダがマシンにアクセスした後には,すべてのパスワードを変更します。
パスワード生成方法が漏れるのを防ぐために,ベンダにアクセスを許す前に root パスワードを変更します。
シングルユーザ・パスワード機能が有効になっています。
sulogin
(8)
su
コマンドを使って root になると,監査でログにとられます。
システム上の
setuid 0
または
setgid 0
を実行するプログラムへのアクセスが制限されている (700,710,または 711)。
root または所有者だけが,/var/spool/cron/crontabs
ファイルにアクセス可能です。
root アクセスが特定のログイン・デバイスに制限されているか,ユーザが root アカウントにアクセスするには
su
コマンドを使わなければなりません。詳細については,
securettys
(4)
システム提供の UID のログインが,必要に応じて制限されている (u_lock
フィールドの設定)。推奨される制限は,次の表のとおり。
UID | 推奨するログイン状態 |
root |
制限あり |
daemon |
不可 |
bin |
不可 |
sys |
不可 |
uucp |
制限あり |
nobody |
不可 |
adm |
制限あり |
lp |
不可 |
/etc/svc.conf
ファイルを参照して,NIS 用に適切な構成が設定されていることを確認します。また,NIS を使う場合は,クライアント・マシンおよびサーバのファイル
/etc/rc.config
または
/etc/rc.site
の NIS_DOMAIN 変数に,正しいドメイン名が定義されていることも確認します。
次の表のネットワーク・ファイルが保護されていることを確認します。
ファイル | コメント |
/etc/exports |
エントリの有効性を確認します。できる限り,-root=
オプションを使うのは避けます。指定しているすべてのファイル・システムに対して,-access=<hostname>
および
-ro
オプションを使います。 |
/etc/hosts |
|
/etc/services |
|
/etc/protocols |
|
/etc/inetd.conf |
|
/etc/hosts.equiv |
エントリがローカル・ホストであることを確認します。 |
/etc/ethers |
|
~username/.rhosts
および
~username/.shosts |
これらのファイルを削除するか,-l
フラグを設定してrlogind
と
rshd
を実行します。 |
サイトのセキュリティで重要なのが,環境内のすべての構成要素に関する物理的セキュリティです。以下のようにして物理的セキュリティをチェックします。
システムとそのケーブルが,安全な環境にあることを確認します。
すべてのネットワーク構成要素が物理的に保護されていることを確認します。この構成要素には,ファイル・サーバ,ブリッジ,ルータ,ハブ/コンセントレータ,ゲートウェイ,ターミナル・サーバ,およびモデムがあります。
コンソールのプロンプトで次のコマンドを使って,サイトのポリシに従ってブート・フラグが設定されていることを確認します。
>>> show
システムがコンソール・パスワード機能をサポートしている場合は,この機能が使用されていることを確認します。コンソール・パスワードがサポートされているかどうかについては,ハードウェアのドキュメントで確認してください。
コンソール・ターミナルのファンクション・キーに,ログインやパスワードの情報が設定されていないことを確認します。
モデムに自動切断機能があることを確認します。また,モデムが安全な環境にあることも確認します。
システムで実行しているアプリケーション・ソフトウェアのセキュリティを確保するには,以下の条件を満たしている必要があります。
setuid
プログラムや
setgid
プログラムを制限しています。
root だけが,制御ファイルおよび実行可能ファイルに書き込み可能です。
ファイアウォール製品がインストールされている場合は,ファイアウォールのドキュメントを参照して適切に構成します。
screend
プログラムを実行している場合は,
screend
(8)
トンネリング・ソフトウェアをインストールした場合は,そのドキュメントの記述に従って保護されています。
クラスごとの見直し作業の頻度は,サイトのセキュリティ・ポリシによって決まります。定期的に,以下の作業を行います。
システムとそのアプリケーションをバックアップします。
監査ログをチェックします。
システム・アカウントのログをチェックします。
fverify
および
authck
プログラムを実行し,システムの保全性を確認します。cops
および
tripwire
など,パブリック・ドメイン・プログラムにも,システムの保全性を確認するのに便利なものがあります。
必要で,承認されたプログラムだけがシステムにあることを確認します。
コンパイラを利用できるのが,開発用のシステムだけであることを確認します。
次のコマンドを使って,システムに存在する
setuid
および
setgid
プログラムは,承認された,root 所有のものだけであることを確認します。
# find / \( -perm -4000 -o -perm -2000 \) -ls
/etc/exports
ファイルをチェックし,すべてのエントリが有効であることを確認します。
ユーザ・アカウントを次のようにチェックします。
/etc/passwd
ファイルをチェックし,すべてのアカウントがまだ有効であることを確認します。
次のコマンドを実行して,対応する
/etc/passwd
のエントリのないエンハンスト・プロファイル (prpasswd
エントリ) がないことを確認します。
# /usr/tcb/bin/convuser -dN
ホーム・ディレクトリのアクセス許可が,サイトのポリシに従って設定されていることを確認します。
ユーザのホーム・ディレクトリ内のすべてのファイルを,そのユーザが所有していることを確認します。
各ユーザに,システム上の有効なエントリ・パス (ログイン・シェル) があることを確認します。
ファイル
.rhosts
または
.netrc
内のエントリが適切であることを確認します。.exrc
ファイルおよび
.netrc
ファイルが,ユーザのホーム・ディレクトリだけにあることを確認します。
hosts.equiv
ファイルをチェックして,エントリが有効であることを確認します。
次のファイルのエントリが,システム・パラメータと競合せず,ファイルが 755 のアクセス許可で保護されていることを確認します。
.profile .login .cshrc .kshrc .logout
次のコマンドを使って,ユーザ・マスクがサイトのポリシに合っていることを確認します。
# grep umask /usr/users/*/.*
システムの省略時のマスクは 022 です。
/dev
ディレクトリを参照し,以下のことを確認します。
特殊デバイスのアクセス許可が適切です。
mem
,kmem
,および
swap
などのデバイスへのアクセスが,適切に保護されている (440)。
所有者だけが端末ポートを読み取り可能です。
ユーザが,ユーザの端末デバイスおよびプリンタ以外のデバイスを所有していません。
モデム認証が,意図したとおりに機能していることを確認します。
次のコマンドを使って,異なる UID に対して同じユーザ名を使っていないことを,ローカルの
/etc/passwd
ファイルと NIS とを併せて,確認します。
# ( ypcat passwd ; grep -v '^[-+]' /etc/passwd ) | \ sort -t:-k 1,1 -k 3,3n -u | \ awk -F:'{if (n == $1) {print p; print}; \ n=$1; p=$0}' | \ more
次のコマンドを使って,同じ UID を持つユーザ名がないことを,ローカルの
/etc/passwd
ファイルと NIS とを合わせて,確認します
# ( ypcat passwd ; grep -v '^[-+]' /etc/passwd ) | \ sort -t:-k 3,3n -k 1,1 -u | \ awk -F:'BEGIN {u=-1} {if (u == $3) \ {print p; print}; u=$3; p=$0}' | \ more
次の 2 つのコマンドを使って,すべてのアカウントにローカル・パスワードまたは NIS パスワードがあることを確認します。
# sort -t:-n /etc/passwd | awk -F:'$2 == "" print' # /usr/tcb/bin/edauth -g | sed -f sed_file | egrep -v \ ':u_pwd=[^:]|:u_istemplate:'
sed_file
内のコマンドは次のとおりです。
: top /:\\$/ { N b top } s/:\\/:/g s/:[<tab><space>]*:/:/g s/:[<tab><space>]*:/:/g
次のコマンドを使って,システム上のすべての隠しファイルを確認します。
# find / \( -name '.*' !-name . ! ! -name .. \) -print
次のコマンドを使って,/dev
ディレクトリの外にはデバイス・ファイルが存在しないことを確認します。
# find / \( -type b -o -type c \) -print
次のスタートアップ・スクリプト内のエントリが適切で,ファイルが適切に保護されていることを確認します。
/sbin/inittab /etc/init.d /sbin/rc?.d ? は実行レベル
システム・クラッシュ発生時に
/var/adm/crash
に保存されたデータにアクセスできるユーザが,root
および
adm
だけであることを確認します。
パブリック・ドメインの
crack
プログラムのようなパスワード割り出しプログラムを使って,ユーザのパスワードを特定できないことを確認します。
サイトの物理的セキュリティ・ポリシを確認します。
次のディレクトリのアクセス許可と所有者が,リストされているとおりに設定されていることを確認します。
ディレクトリ | アクセス許可 | 所有者 | グループ |
/ |
755 | root | system |
/bin |
755 | root | system |
/dev |
640 | root または bin | system |
/dev/null |
666 | root | system |
/dev/ttys |
666 | root | system |
/etc |
755 | root | system |
/etc/rc.config |
755 | bin | bin |
/etc/exports |
644 | root | system |
/etc/passwd |
644 | root | system |
/etc/resolv.conf |
644 | root | system |
/etc/screend.config |
755 | root | system |
/etc/sec |
755 | root | system |
/home |
555 | root | system |
/lib |
755 | root | system |
/opt |
755 | root | system |
/sbin |
755 | root | system |
/sys |
755 | root | system |
/tcb |
755 | root | system |
/tmp |
1777 | root | system |
/usr |
755 | root | system |
/usr/bin |
755 | root | system |
/usr/lib |
755 | root | system |
/usr/ucb |
755 | root | system |
/usr/ucb |
755 | root | system |
/var |
755 | root | system |
/var/adm |
755 | root | system |
/var/adm/crash |
700 | root | system |
/var/adm/cron |
755 | root | system |
/var/spool |
755 | root | system |
/var/spool/cron |
755 | root | system |
/var/spool/cron/atjobs |
755 | root | system |
/var/spool/cron/crontabs |
755 | root | system |
/var/spool/cron |
755 | root | system |
/var/tcb |
755 | root | system |
/var/tcb/audit |
755 | root | system |
/var/tcb/bin |
755 | root | system |
/var/tcb/files |
755 | root | system |
次のドキュメントは,セキュアなコンピューティング環境を構築し,保守するのに役立ちます。
『Site Security Handbook (RFC 1244)』。このハンドブックは,インターネット特別技術調査委員会 (IETF) のセキュリティ分野とユーザ・サービス分野が共同で作業を行った,サイト・セキュリティ・ポリシ・ハンドブック・ワーキング・グループが作成したドキュメントです。このドキュメントのオンライン・コピーは,http://www.net.ohio-state.edu/hypertext/rfc1244/toc.html
で提供されています。
Tru64 UNIX 『インストレーション・ガイド』
Tru64 UNIX 『インストレーション・ガイド -- 上級ユーザ編』
『Trusted Computer System Evaluation Criteria』(U.S.
Department of Defense, National Computer Security Center, DoD 5200.28-STD, 1985 年 12 月)。このドキュメントは,そのカバーの色から,『Orange Book』として知られています。このドキュメントは,トラステッド・コンピュータ・システムの開発および評価のための,米国政府の決定的なガイドです。『Orange Book』のオンライン・コピーは,http://nsi.org/Library/Compsec/orangebo.txt
で提供されています。
『Password Management Guideline』( U.S.
Department of Defense, (CSC-STD-002-85), 1985 年 4 月 12 日)。このドキュメントは,そのカバーの色から,『Green Book』として知られています。パスワード・ベースのユーザ認証メカニズムの設計,インプリメント,および使用についての推奨手順を示すことで,『Orange Book』をサポートしています。『Green Book』のオンライン・コピーは,http://www.radium.ncsc.mil/tpep/library/rainbow/CSC-STD-002-85.html
で提供されています。
次のドキュメントは,セキュリティの概念および手順について理解するのに役立ちます。
『Computer Security Basics』 (O'Reilly and Associates, Inc.)。
『Practical UNIX Security』 (O'Reilly and Associates, Inc.)。
『UNIX:Its Use, Control, and Audit』 (249 Maitland Avenue, Altamonte Springs, Florida 32701-4201 の Institute of Internal Auditors Research Foundation にご相談ください)。
次のツールは,セキュア環境の維持に役立ちます。
crack
は,パブリック・ドメインのパスワード・チェック・プログラムです。
tripwire
は,UNIX システム用の保全性モニタです。tripwire
ソフトウェアは,いくつかのチェックサム・ルーチンや署名ルーチンを使って,ファイルの変更を検出し,システムが維持する情報のうち選択されている項目を監視します。このプログラムは,ファイルおよびディレクトリのアクセス許可,リンク,サイズの変更も監視します。
COPS
は,Purdue University の Computer Oracle and Password System パッケージです。COPS は,既知の弱点がシステムにないかチェックし,システム管理者に警告します。場合によっては,COPS が自動的に問題を解決してくれます。
SATAN
は,ネットワークに関連するセキュリティ上のよくある問題をシステム管理者が発見するのに役立つツールです。SATAN は,問題を実際に試すことなく,問題点について報告します。見つかった各種の問題について,SATAN は,問題の説明,どのような影響があるか,および問題に対する解決策を示すチュートリアルを提供します。
次のスクリプトは,ユーザが作成できるツールの例です。このツールは,ログインおよびログアウトの情報を監査ログから抽出します。
#!/usr/bin/ksh -ph # Script to return summary of login/logout activities on the # system since the last time it was run. export PATH=/usr/sbin:/usr/bin:/usr/ccs/bin:/sbin # where this script should run Bdir=/var/adm/local # where to find audit log files Adir=/var/audit Ofile="${Bdir}/lasttime" Nfile="${Bdir}/newtime" Afile="${Bdir}/lastdata" Tfile="${Bdir}/lastmsg" Events="-e trusted_event" umask 077 # ensure the output format we need from date. export LANG=C LC_ALL=C export TZ=:UTC if [ ! -f "${Ofile}" ] then print 700101000001 > "${Ofile}" touch -t 197001010000.01 "${Ofile}" fi date +%y%m%d%H%M%S > "${Nfile}" curfile=$(auditd -q) auditd -dx sleep 20 # give time for compression of the old log while [ -f "$curfile" -a -f "$curfile".Z ] || [ -f "$curfile" \ -a -f "$curfile".gz ] do sleep 2 # wait some more done : > "${Afile}" for af in $(find "$Adir" -name "auditlog.*" -newer "${Ofile}" \ -print | sort) do audit_tool -b -t $(<"${Ofile}") -T $(<"${Nfile}") >> \ "${Afile}" -o -Q $Events "${af}" 2>/dev/null # the suppressed errors are for the {un,}compressed messages done TZ=:localtime if [ -s "${Afile}" ] then audit_tool -B -Q "${Afile}" > "${Tfile}" if [ -s "${Tfile}" ] then Mail -s 'login/out audit summary' root < "${Tfile}" fi fi mv -f "${Nfile}" "${Ofile}" rm -f "${Afile}"
以下は上に示したロギング・スクリプトのための crontab エントリです。
0 9 * * * /var/adm/local/lreport