AIX セキュリティー・ツール - Bruno Kerouanton

AIX セキュ リ テ ィ ー ・ ツール
IBM
pSeries,
RS/6000, SP/Cluster
ご使用の pSeries システムのセキ ュ
リ テ ィ ーを カ ス タ マ イズする
IBM、
、 IBM 以外、 および フ リ ー
ウ ェ アのセキ ュ リ テ ィ ー ・ ツール
を活用する
セキ ュ リ テ ィ ーへの新
し いア プ ローチ を学ぶ
Abbas Farazdel
Marc Genty
Bruno Kerouanton
Chune Keat Khor
ibm.com/redbooks
SG88-6704-00
(英文原典 : SG24-5971-00)
International Technical Support Organization
AIX セキ ュ リ テ ィ ー ・ ツール
IBM ^ pSeries,
RS/6000, SP/Cluster
2002 年 1 月
お願い !
本書、および本書で記述されている製品をご使用になる前に、付録 D、「特記事項」(211 ページ ) を必
ずお読みください。
本マニュアルに関するご意見やご感想は、次の URL からお送りください。今後の参考にさせていただき
ます。
http://www.ibm.com/jp/manuals/main/mail.html
なお、日本 IBM の発行のマニュアルはインターネット経由でもご購入いただけます。詳しくは
http://www.ibm.com/jp/manuals/ の「ご注文について」をご覧ください。
(URL は変更になる場合があります)
原典 :
SG24-5971-00
International Technical Support Organization
Additional AIX Security Tools on
IBM ^ pSeries,
IBM RS/6000, and SP/Cluster
発行 :
日本アイ・ビー・エム株式会社
担当 :
ナショナル・ランゲージ・サポート
第 1 刷 2002.1
© Copyright International Business Machines Corporation 1997, 2000. All rights reserved.
Translation@Copyright IBM Japan 2002
目次
ま えが き . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi
このレッドブックを作成したチーム . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xii
ご意見をお寄せください . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii
第 1 章 は じ めに . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1
セキュリティー・フレームワーク - 概要 . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2
セキュリティー・フレームワーク - 計画 . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3
セキュリティー・フレームワーク - アーキテクチャー . . . . . . . . . . . . . 6
1.4
セキュリティー・フレームワーク - 実装 . . . . . . . . . . . . . . . . . . . . . . . . 7
1.5
セキュリティー・フレームワーク - モニター . . . . . . . . . . . . . . . . . . . . . 8
1.6
セキュリティー・フレームワーク - 事故応答 . . . . . . . . . . . . . . . . . . . . 10
1.7
次のステップ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
第 2 章 フ ァ イ ア ウ ォ ール . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.1
ファイアウォールに関する誤解 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2
ファイアウォールのタイプ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2.1
静的パケット・フィルター・ファイアウォール . . . . . . . . . . . . . . 15
2.2.2
サーキット・レベル・ファイアウォール . . . . . . . . . . . . . . . . . . . 15
2.2.3
アプリケーション層 ( プロキシー ) ファイアウォール . . . . . . . . 16
2.2.4
動的パケット・フィルター・ファイアウォール . . . . . . . . . . . . . . 16
2.2.5
さまざまなタイプの比較 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3
ファイアウォールの設計 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.3.1
ファイアウォールの基本設計 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.3.2
非武装地帯 (DMZ : DeMilitarized Zone) を備えた
ファイアウォール . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.3.3
コンパートメント化されたファイアウォール環境の設計 . . . . . . 21
2.4
堅牢なファイアウォール . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.5
AIX のファイアウォール . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
第 3 章 Check Point FireWall-1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.1
FireWall-1 のフィーチャー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.2
FireWall-1 用の補足ソフトウェア . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.3
FireWall-1 の安全性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.3.1
システム起動時の脆弱性の解決 . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.3.2
FireWall-1 ログの管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.3.3
FireWall-1 デフォルト構成の安全性 . . . . . . . . . . . . . . . . . . . . . . . 29
3.3.4
役に立つルール・ベースの作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.3.5
接続の表示 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.3.6
他の防御メカニズムの使用可能化 . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.4
Check Point FireWall-1 が使用するポートのリスト . . . . . . . . . . . . . . . . 43
© Copyright IBM Corp. 2000
iii
第 4 章 IBM Secureway Firewall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.1
IBM Secureway Firewall のフィーチャー . . . . . . . . . . . . . . . . . . . . . . . . 47
4.2
IBM Secureway Firewall 用の補完ソフトウェア . . . . . . . . . . . . . . . . . . 48
4.3
ファイアウォールの強化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.4
NetworkSecurity Auditor (NSA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.4.1
NSA のインストール . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.4.2
NSA の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
4.4.3
NSA 出力の解釈 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
第 5 章 リ モー ト ・ ア ク セ スのセキ ュ ア . . . . . . . . . . . . . . . . . . . . . . . . . . 59
5.1
セキュア・シェル (ssh) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
5.1.1
SSH の入手 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
5.1.2
SSH1 と SSH2 の間の違い . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
5.1.3
SSH の重要な概念 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
5.1.4
AIX への OpenSSH のインストール . . . . . . . . . . . . . . . . . . . . . . . . 65
5.1.5
SSH1 を使用した OpenSSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
5.1.6
SSH2 を使用した OpenSSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
5.1.7
他の、便利な SSH デーモン構成オプション . . . . . . . . . . . . . . . . . 75
5.1.8
SSH2 OpenSSH と SSH.Com との間の SSH2 の
インターオペラビリティー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
5.1.9
PC 用の SSH クライアント . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
5.1.10 SSH を持つことの意味 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
5.1.11 SSH の代替 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
5.2
TCP Wrapper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
5.2.1
TCP Wrapper の入手とインストール . . . . . . . . . . . . . . . . . . . . . . . 78
5.2.2
TCP Wrapper の構成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
5.2.3
TCP Wrapper の追加セキュリティー・フィーチャー . . . . . . . . . . 82
第 6 章 ポー ト お よ びネ ッ ト ワー ク のスキ ャ ン . . . . . . . . . . . . . . . . . . . . . 83
6.1
fping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
6.1.1
fping の入手とインストール . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
6.1.2
fping の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
6.1.3
ping スイープに対するプロテクション . . . . . . . . . . . . . . . . . . . . . 88
6.2
ネットワーク・マッパー (NMAP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
6.2.1
nmap の入手とインストール . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
6.2.2
Nmap の使用方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
6.2.3
ポート・スキャナーに対するプロテクション . . . . . . . . . . . . . . . 94
6.3
Security Administrator's Integrated Network Tool (SAINT) . . . . . . . . . . . 94
6.3.1
SAINT の入手とインストール . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
6.3.2
SAINT の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
6.4
PortSentry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
6.4.1
PortSentry の入手とインストール . . . . . . . . . . . . . . . . . . . . . . . . . . 99
6.4.2
PortSentry によって提供される防御策 . . . . . . . . . . . . . . . . . . . . . 103
iv
AIX セ キ ュ リ テ ィ ー ・ ツ ール
リスト・オープン・ファイル (lsof) . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
6.5.1
lsof のインストール . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
6.5.2
lsof の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
6.6
侵入の検出 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
6.5
第 7 章 シ ス テムお よ びデー タ の保全性 . . . . . . . . . . . . . . . . . . . . . . . . . 109
7.1
Tripwire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
7.1.1
Tripwire の入手とインストール . . . . . . . . . . . . . . . . . . . . . . . . . . 111
7.1.2
Tripwire の構成と使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
7.1.3
Tripwire の構成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
7.1.4
構成に関するコメント . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
7.1.5
Tripwire はいつ実行すべきか . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
7.1.6
Tripwire の代替 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
7.2
John the Ripper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
7.2.1
John the Ripper の入手とインストール . . . . . . . . . . . . . . . . . . . . . 120
7.2.2
John the Ripper の構成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
7.2.3
John the Ripper の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
7.3
Pretty Good Privacy (PGP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
7.3.1
PGP の基本 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
7.3.2
PGP の入手とインストール . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
7.3.3
PGP の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
7.3.4
秘密鍵のプロテクト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
7.4
MD5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
7.4.1
ダウンロードの保全性の確認 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
第 8 章 AIX の保護 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
8.1
概説 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
8.2
ステップ 1: 不必要なサービスの除去 . . . . . . . . . . . . . . . . . . . . . . . . . 141
8.2.1
/etc/inittab からのエントリーの除去 . . . . . . . . . . . . . . . . . . . . . . . 142
8.2.2
/etc/rc.tcpip からのエントリーの除去 . . . . . . . . . . . . . . . . . . . . . . 144
8.2.3
/etc/inetd.conf からのエントリーの除去 . . . . . . . . . . . . . . . . . . . . 148
8.3
ステップ 2: 残りのサービスの構成の強化 . . . . . . . . . . . . . . . . . . . . . . 153
8.3.1
Domain Name System (DNS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
8.3.2
Network File System および Network Information Service . . . . . . 168
8.3.3
シンプル・メール転送プロトコル (SMTP) . . . . . . . . . . . . . . . . . 175
8.3.4
シンプル・ネットワーク管理プロトコル (SNMP) . . . . . . . . . . . 180
8.3.5
単純ファイル転送プロトコル (TFTP) . . . . . . . . . . . . . . . . . . . . . 181
8.3.6
X11 の保護 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
8.3.7
ファイル転送プロトコル (ftp) . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
8.3.8
SOCKS を使用した TCP サービスのプロテクト . . . . . . . . . . . . . 186
8.4
ステップ 3: 適切なネットワーク (no) オプションの設定 . . . . . . . . . . 186
8.4.1
SYN アタックに対するプロテクション . . . . . . . . . . . . . . . . . . . . 187
8.4.2
ブロードキャストのプロテクション . . . . . . . . . . . . . . . . . . . . . . 187
v
8.4.3
IP ルーティング・オプション . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
ステップ 4: ユーザー・アカウントの規定を強める . . . . . . . . . . . . . . 189
8.5.1
不要デフォルト・アカウントの除去 . . . . . . . . . . . . . . . . . . . . . . 189
8.5.2
ユーザー属性の設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
8.5.3
root の保護 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
8.5.4
その他の属性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
8.6
ステップ 5: 強力なパスワード・ポリシーのセットアップ . . . . . . . . 194
8.6.1
ユーザー・パスワード属性の変更 . . . . . . . . . . . . . . . . . . . . . . . . 194
8.6.2
パスワード・クラッカー・ユーティリティー . . . . . . . . . . . . . . 197
8.7
ステップ 6: その他のセキュリティー・ツールのインストール . . . . 197
8.8
ステップ 7: ログのモニター、監査証跡、およびシステム動作 . . . . . 200
8.8.1
システム・ログのモニター . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
8.8.2
監査の使用可能化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
8.8.3
ファイルおよびディレクトリーのモニター . . . . . . . . . . . . . . . . 202
8.8.4
cron と at ジョブのモニター . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
8.5
付録 A NSA スキ ャ ン ・ オ プ シ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
付録 B fping を使用 し てネ ッ ト ワー ク を スキ ャ ン す る ために
使用 さ れる ス ク リ プ ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
付録 C AIX パスワー ド ・ フ ァ イ ル を マージす る ス ク リ プ ト . . . . . . . . . . . 209
付録 D 特記事項 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
付録
E.1
E.2
E.3
E.4
E 関連資料 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
IBM レッドブック . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
IBM レッドブックのコレクション . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
その他の資料 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
参照 Web サイト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
IBM レ ッ ド ブ ッ ク の入手方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
索引 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
vi
AIX セ キ ュ リ テ ィ ー ・ ツ ール
図
図 1.
図 2.
図 3.
図 4.
図 5.
図 6.
図 7.
図 8.
図 9.
図 10.
図 11.
図 12.
基本的なファイアウォールの設計 ........................................................................................
DMZ を備えたファイアウォール ..........................................................................................
コンパートメント化されたファイアウォール ....................................................................
Properties Setup の Security Policy タブ ..................................................................................
Properties Setup の Services タブ .............................................................................................
Properties Setup の Log and Alert タブ ....................................................................................
実用的なルール・ベース ........................................................................................................
Properties Setup 画面の SYNDefender タブ ............................................................................
IP スプーフィングのセットアップ ........................................................................................
NAT を使用している IP スプーフィング .............................................................................
高速モード TCP ........................................................................................................................
SAINT メイン・ページ ...........................................................................................................
17
19
22
30
33
34
36
39
40
42
43
97
vii
viii
AIX セキ ュ リ テ ィ ー ・ ツール
表
表 1.
表 2.
表 3.
表 4.
表 5.
表 6.
表 7.
NAT を使用していない場合の Valid Addresses ................................................................... 41
NAT を使用している場合の Valid Addresses ........................................................................ 41
Freeware OpenSSH ファイル・セット ................................................................................... 65
BIND の AIX バージョン ...................................................................................................... 157
sendmail の AIX バージョン .................................................................................................. 175
AIX アカウント属性 .............................................................................................................. 190
パスワード設定の推奨値 ...................................................................................................... 195
ix
x
AIX セキ ュ リ テ ィ ー ・ ツール
ま えがき
デジタル経済では、情報は、もっとも重要な資産の 1 つです。オンライン店舗の
場 合 で も、イ ン タ ー ネ ッ ト を ベ ー ス に し た 複 雑 な 商 品 取 引 の 場 合 で も、
e-commerce が発展できるか否かは、情報のセキュアな伝達に依存します。
ファイアウォールからオペレーティング・システムの強化まで、このレッドブッ
クでは、
ユーザーの IBM RS/6000 および IBM ^ pSeries のセキュリティー
環境の強化に使用できるさまざまなツールと技法について説明します。使用して
いるアプローチは、外側から内側へ、トップからボトムへ、です。外側の世界か
らよく見え、ネットワークの外縁にあるサーバーから始めて、機密データが収め
られているイントラネットの内部にあるサーバーに移動します。そのようなサー
バーの説明では、トップにあるアプリケーション層から始めて、ボトムにある
ネットワーク層に行きます。その途上で、ユーザー環境のセキュリティーの強化
に役立つ、いますぐ使用可能なサード・パーティーのソフトウェア、AIX および
PSSP と一緒に提供される標準ソフトウェアのモディフィケーション、および、
さまざまな技法の組み合わせなどについて説明します。
本書は、セキュリティーのレッドブックの次の三部作の 3 番目のレッドブックで
す。
• AIX 4.3 Elements of Security Effective and Efficient Implementation, SG24-5962
• Exploiting RS/6000 SP Security: Keeping It Safe, SG24-5521
• 本書
他と同様、本書は、すべて RS/6000 SP、すべて RS/6000 スタンドアロン、また
はその両方が混在する場合のサーバー環境の管理および保護を担当する IT ( 情
報技術 ) の専門家を主な対象にしています。読者は、少なくとも、AIX および、
SP 環境における、PSSP に精通していることを前提にしています。
このレッドブックでカバーしている主題には以下のものが含まれます。
• ファイアウォール
• セキュア・リモート・アクセス
• ネットワーク・マッピングおよびポート・スキャン
• システム保全性
• AIX の保護
© Copyright IBM Corp. 2002
xi
こ のレ ッ ド ブ ッ ク を作成 し た チーム
このレッドブックは、International Technical Support Organization, Austin Center の
専門家のチームによって作成されました。
Abbas Farazdel は、ITSO, Poughkeepsie Center の SP システム・ストラテジス
ト、テクニカル・コンサルタント、そしてシニア・プロジェクト・マネージャー
です。ITSO に 1998 年 に 参加 す る前、Dr. Farazdel は、IBM Dallas の Global
BusinessIntelligence Solutions (GBIS) グループで、データ・ウェアハウジング・ア
ンド・データ・マイ二ング・ソリューションのインプリメンテーション・マネー
ジャ ー とし て、また IBM Thomas J. Watson ResearchCenter の Scientific and
Technical Systems and Solutions (STSS) グループで、ハイパフォーマンス・コン
ピューティング・スペシャリストとして、勤務していました。Dr. Farazdel は、計
量量子化学の Ph.D. および計量物理学の M.Sc. の学位を University of
Massachusetts から授与されています。
Marc Genty は、コロラド州、Boulder の Western Geoplex Service Delivery Center
で IBM Global Services に勤務しているマネージメント・インテグレーションの専
門家です。これまでの 10 年間 UNIX 環境で仕事を行っており、RS/6000 認証上
級テクニカル・エクスパート (CATE) です。氏は、製造学の BS 学位を Colorado
State University から授与されています。氏の専門分野には、UNIX、AIX、RS/6000
SP、HACMP、および DCE/DFS が含まれています。氏は、現在 Boulder のグロー
バル Web アーキテクチャー (GWA) AIX アーキテクチャーのチーム・リーダーで
す。また、氏は、ブック、ExploitingRS/6000 SP Security: Keeping It Safe, SG24-5521
の共著者です。
Bruno Kerouanton は、フランスの Sysicom に勤務するシステムおよびセキュ
リティー・エンジニアです。氏は、AIX および RS/6000 SP システム管理および
サポートについて 4 年間の経験があります。氏は、RS/6000 認証上級テクニカ
ル・エクスパート (CATE) です。また、氏は、CheckPoint Firewall-1/VPN につい
て CCSA と CCSE の認証を持っています。氏の専門分野には、侵害テストおよ
びアーキテクチャー設計を含む、ネットワークおよびシステム・セキュリティー
が含まれています。
Chune Keat Khor は、IBM シンガポールの IT 可用性のスペシャリストです。氏
は、電気工学士として National University of Singapore を卒業後、1998 年に IBM
に入社しました。氏は、AIX 認証上級テクニカル・エクスパート (CATE) で、
Check Point CCSA と CCSE の認証を授与されています。
このプロジェクトに対して多大の貢献をされたことを次の方々に感謝申し上げ
ます。
xii
AIX セキ ュ リ テ ィ ー ・ ツ ール
IBM Boulder
Tom Kleespies, Jeff Quaintance
IBM Poughkeepsie
Chris Derobertis, Larry Parker
ご意見を お寄せ く だ さ い
読者の皆様のご意見はたいへん貴重です。
できるだけ皆様のお役に立つレッドブックをお届けしたいと考えております。本
書や他のレッドブックに関するご意見をお待ちしております。
オンライン評価用紙をご利用ください (http://www.redbooks.ibm.com/ にありま
す )。
xiii
xiv
AIX セキ ュ リ テ ィ ー ・ ツ ール
第 1 章 は じ めに
"e-commerce の成否は、何にもまして、機密トランザクションの機密性と個人
レコードのプライバシーがネットワークによって守られているということが、
人々によって信頼されているか否かにかかっている。"
IBM 会長、ルー・ガースナー、1996 年 12 月、インターネット・
ワールド
デジタル経済では、情報は、もっとも重要な資産の 1 つです。オンライン店舗の
場 合 で も、イ ン タ ー ネ ッ ト を ベ ー ス に し た 複 雑 な 商 品 取 引 の 場 合 で も、
e-commerce が実現できるか否かは、情報のセキュアなフローに依存します。
IBM は、これまで、セキュリティーについて真剣に取り組んできており、セキュ
ア・システムの設計と実装に豊富な経験を持っています。この経験を使用し、
オープン・スタンダードに基づくサービスを活用する IBM RS/6000、および、新
規の IBM ^ pSeries サーバーによって完全なセキュリティー・パッケージ
が提供され、ユーザーは、フレキシブルで使用し易い方法で企業のシステム全体
を管理することができます。
この レッ ドブッ クで 説明さ れて いる AIX 4.3 と 一緒 に出 荷され るセ キュ リ
ティー資料には、以下のものがあります。
• AIX 4.3 Elements of Security Effective and EfficientImplementation、SG24-5962
また、PSSP 3.2 の資料には、以下のものがあります。
• Exploiting RS/6000 SP Security: Keeping It Safe、SG24-5521
このレッドブックの目的は、ご使用の AIX 4.3 または PSSP 3.2 ( あるいは両方 )
の環境のセキュリティをさらに強化するために使用できるセキュリティー・ツー
ル (IBM または IBM 以外のツール ) と技法についての情報を提供することにあり
ます。本書で説明するツールの多くは、インターネットからダウンロードして使
用することができます。
1.1 セキ ュ リ テ ィ ー ・ フ レームワー ク - 概要
本書では、はじめに、セキュリティーのフレームワークについて説明します。
ユーザーのセキュリティー環境は、もっともセキュリティーの弱いリンクを基に
決まります。したがって、セキュリティーは、計画からアーキテクチャー、実
装、継続的なサポートまでの全体論的な視点で見ることが非常に重要です。
セキュリティ・フレームワークを説明したあとで、セキュリティーを実装するの
に使用するツールと技法の一部を説明します。フレームワークでは、ユーザーが
使用するツールと技法およびその使用方法についての概要と方向を示します。
© Copyright IBM Corp. 2002
1
本 書 で と る セ キ ュ リ テ ィ ー の ア プ ロ ー チ は ト ッ プ ダ ウ ン で す。典 型 的 な
eBusiness 環境のトポロジーは、以下のように構造化されています ( インターネッ
ト・サイドから見た場合 )。
• 境界ルーター
• 外部ファイアウォール
• 非武装地帯 (DMZ) 内の公開サーバー
• DMZ 内の専用ネットワーク
• 内部ファイアウォール
• 専用内部サーバー
• 専用内部ネットワーク
また、各サーバーをトップダウンに見ると、以下のものがあります。
• アプリケーション・ソフトウェア
• オペレーティング・システム
• ネットワーク ( ハードウェアおよびソフトウェア )
• 物理サーバーとネットワーク・メディア
セキュリティ・フレームワークを構築するときには、環境の中の各エレメントお
よび各エレメントの中の各層を考慮することが必要です。
セキュリティー・フレームワークを構築するステップおよび、構造体を埋め込む
ステップは以下のようになります。
1. 計画 - このステップで全体的なセキュリティー・ポリシーおよびゴールを定
義します。多くの組織では、このステップは企業レベルで行われ、ほとんど
の場合、すでに完了しているはずです。
2. アーキテクチャー - このステップでは、計画フェーズで定義された要件を満
たすように環境を設計します。
3. 実装 - ここでは、アーキテクチャー・フェーズで設計したことを実際に構築
します。
4. モニター - 環境が運用されるようになった後は、継続的にモニターを行って、
アタックされ易い個所の有無およびアタックされたか否かをつねに調べる必
要があります。このフェーズは、上記のすべてのフェーズへのフィードバッ
ク・ループになります。ここで見つかった問題は、その解決のために、上記
のフェーズのいくつかを必ず通らなければなりません。
2
AIX セキ ュ リ テ ィ ー ・ ツ ール
5. 機能不良に対する応答 - これは、ぜひ避けたいと願うフェーズです。しかし、
最悪の事態に備えて準備をしておかなければならないフェーズです。この
フェーズで作業しなければならない最悪のときは、アタックが実際に起こっ
たときです。アタックにどのように応答するかを最初に時間をかけて考慮し
ておくと、実際にアタックが発生した場合でも、十分に安心が得られます。
この時間を “ 心の平安 ” フェーズと考えることができます。
この章では、すべてのフェーズについて説明し、ご自分の組織のために作業を進
めるときに考慮すべき事項についてのアイデアを提供します。セキュリティーの
計画とアーキテクチャーについては、良い資料がたくさんあります。本書の
フォーカスは、主に、セキュリティーの実装、モニター、および、問題に対する
応答にあります。本書は、この章の冒頭で述べた他の 2 冊のセキュリティー・
レッドブックと同シリーズの資料であることを念頭に入れておいてください。本
書を通して必要に応じてこれら 2 冊の資料を参照しますが、これは、これらの資
料に入っている詳細説明の重複記載を避けるためです。
1.2 セキ ュ リ テ ィ ー ・ フ レームワー ク - 計画
このフェーズの目的は、組織の全体的なセキュリティー・ゴールとポリシーを定
義することです。このフェーズで答えが必要な質問には以下のものがあります。
• セキュリティーはどれだけ必要か
• セキュリティーにはどれだけ費用がかけられるか
• 敵の本質は何か
最初の 2 つの質問は相互に依存しています。一般的に、多くのセキュリティーを
必要とするほど、費用も多く必要になります。ここは、80/20 ルールが適用され
るもう 1 つの場所です。費用をあまりかけなくてもかなりの程度のセキュリ
ティーを実施することができます (20 パーセントの費用で 80 パーセントのセ
キュリティー ) が、本当にハイ・セキュリティーが必要な場合は、かなりのプレ
ミアムを払うことを覚悟しなければなりません (80 パーセントの追加費用で 20
パーセントのセキュリティー )。
また、セキュリティーのために割り振る費用の額でプロテクトしようとしている
資産の価値も測る必要があります。たとえば、何かが起こった場合でも容易に再
構成できる DMZ 内のサーバーには、機密情報を収用している内部データベー
ス・サーバーが必要とするセキュリティーと同じレベルのセキュリティーを必要
としません。
しかし、考慮しなければならない無形の財産もあります。公開 Web サーバーに
は機密情報が入っていない場合でも、会社や組織の評判が傷つけられたときのダ
第 1 章 は じ めに
3
メージは多大なものがあります。永い年月をかけてつちかった評判も、失うとき
には瞬時に失われます。
最後に、計画は現実的なものでなければなりません。精密なセキュリティーの
ゴールとポリシーを立案するのは大いに結構ですが、それをサポートするスタッ
フの予算で裏打ちされていなければなりません。通常、システム管理者やネット
ワーク管理者は、システムを稼働し保守するのに精一杯です。必要に応じて、別
のセキュリティー・チームをつくることを考慮する必要があります。少なくと
も、現在のシステム管理者またはネットワーク管理者のチーム内にセキュリ
ティー・リーダーを追加することを検討してください。
" 敵を知り己を知れば、百戦恐るるに足らず。"
孫子の兵法
セキュリティー計画の大きな部分は、脅威の評価です。外側からのアタックは、
我々がよく耳にするものですが、内側からのアタックこそより頻繁に発生し、そ
の性質上当然の理由により、騒がれることも稀です。計画では、これらの両方を
考慮する必要があります。
敵を理解するのに役立つ出発点は、Hacking Exposed: Network Security Secrets
and Solutions という本に書かれています。詳細な実例の記述に導かれて、読者は
アタッカーと同じように考えることができます。著者は、この本で、ターゲット
をねらうアタッカーが使用する代表的な方法について述べています。そのステッ
プは以下のようなものです。
1. ターゲットの捕捉と情報の収集
2. 最初のアクセス
3. 特権のエスカレーション
4. 足跡の遮蔽
5. 裏口の設置
以下に、各ステップについて簡単に説明します。詳細については、上記のブック
Hacking Exposed を参照してください。
タ ーゲ ッ ト の捕捉 と 情報の収集
このステップは、3 つのフェーズに分けられます。
• 最初のフェーズは、フットプリントで、アタッカーは、アタックする環境に
ついて多くのことを知ろうとするフェーズです。IP アドレスの範囲や DNS 情
報が主なターゲットになります。
4
AIX セキ ュ リ テ ィ ー ・ ツ ール
• 2 番目のフェーズは、スキャンです。アタッカーは、IP アドレス範囲や DNS
情報を得ると、アタック対象のシステムをプローブして、アクティブ・ポー
トを探し始めます。このレッドブックで説明する NSA、SAINT、fping、およ
び nmap などのツールが、このフェーズでよく使用されます。
• 3 番目のフェーズは、列挙 です。このフェーズは、前のフェーズよりもはる
かに攻撃的です。アタッカーは、ターゲットを特定のシステムに絞ると、ア
タック対象の 1 つまたは複数のシステムに最初のアクセスを可能にするホー
ルを見つけようとします。バナー、デフォルト・ユーザー、適切に構成され
ていないネットワーク・リソースなどがすべて、このフェーズのターゲット
になります。オペレーティング・システムの強化および厳しいパスワード・
ポリシー ( 両方とも本書で説明します ) が、このフェーズでもっとも有効な
防御策です。
最初のア ク セ ス
次に、アタッカーは、システムに侵入することを試みます。最初のアクセスは通
常 root アクセスではなく、root アクセスは次に現れます。このステップで、ア
タッカーは、システムに侵入する最初の足掛かりを得るために、ソーシャル・エ
ンジニアリング ( 交際関係を探ること )、パスワードの推測、パスワードの分解、
または、バッファー・オーバーフロー技法などを使用します。これらの使用を防
止するためにユーザーが使うツールや技法が、このレッドブックで説明されてい
ます。さらに、挙動不審の行動に対する早期警告装置、ならびに、アタッカーが
次のステップに動く前にアラートとして役立つツールや技法についても説明し
ます。
特権のエ ス カ レ ーシ ョ ン
root 管理をおこたると、( 少なくともこのシステムでは ) すべてが壊れます。こ
れは、システム管理者にとっては、最悪の悪夢です。前のステップで使用した技
法の多くがここでも使われますが、いまや、アタッカーは実際にシステムに入る
ことができるので、アタッカーの仕事はやり易くなっています。通常のユーザー・
アカウントをプロテクトするためのツールと技法に加えて、root に対する特別の
考慮事項とステップが必要になります。これらについても、このレッドブックで
説明します。
足跡の遮蔽
システムにアクセスするために、上述のステップのすべての作業を苦労して完了
した後で、アタッカーが絶対に避けたいことは、発見されて、いままでの努力が
水泡に帰すことです。ログ・ファイルや構成ファイルの更新、および、通常のシ
ステム・ユーザーの振る舞いの模倣などは、検出されないようにアタッカーがよ
く使う手法です。最初の防御策は、“ 通常のシステムの振る舞い ” とはどんなも
のかを理解することです。この情報を得るために使用できるモニター・ツール
第 1 章 は じ めに
5
( システム提供のもの、および、サード・パーティーのもの ) がたくさんありま
す。さらに、Tripwire などのツールを使用すると、比較するときのベースになる、
重要なシステム・ディレクトリーおよびファイルのベースライン・スナップ
ショットをとることができます。システム・モニターと Tripwire については、こ
のレッドブックの後のほうで説明します。
裏口の設置
アタッカーは、システムに入るときに使用した入り口は、再び侵入するときには
そこにはないかもしれないということをよく知っています。住居侵入者と同様
に、アタッカーは、侵入個所に再び行く必要が起こることを想定して、複数の入
り口があることを確認する必要があります。この目的のために、アタッカーは、
裏口やトロイの木馬を設置して、将来のアクセスを確保するためだけでなく、別
のシステムをアタックするのに必要な追加情報を得ることを試みます。前のス
テップで説明した防御用ツール ( とくに Tripwire などのツール ) はこのフェーズ
にも適用されます。
もちろん、内部アタッカーには、通常のユーザー・アカウントのカバーの下に隠
れることができるという利点があります。この利点を除くと、内部アタッカーの
動機は外部アタッカーの動機と多くの場合異なるとしても、両者のメソッドはほ
とんど同様といえます。
全体的なセキュリティー・ゴールとポリシー ( 攻めと守りの両面が必要 ) を定義
したならば、セキュリティー・アーキテクチャーの作成にとりかかることができ
ます。早期のフェーズ ( 計画とアーキテクチャー) に投資した時間は、後のフェー
ズで何倍にもなって報われるということを憶えておいてください。
1.3 セキ ュ リ テ ィ ー ・ フ レームワー ク - アーキテ ク チ ャ ー
一般的に、セキュリティーの要件は、環境によって異なります。分離したテスト
環境のセキュリティー要件は、大規模の e コマースサイトの要件とは大きく異な
ります。前者では物理的なアクセス・コントロールに最重点が置かれるのに対
し、後者では、アタックの防止策に最重点が置かれます。
アーキテクチャー・フェーズでは、環境を分析して、防御策の概要を計画しま
す。考慮する質問事項には以下のものがあります。
• 環境の中の弱点 ( ウィークポイント ) は何か
• どのようなアタックが予想できるか
• 予想されるアタックはどこから来るものか
• 努力とリソースのほとんどを外辺部に注入するか、それとも、外辺部を最外
部リングにして、複数の防御リングをセットアップするか
6
AIX セキ ュ リ テ ィ ー ・ ツ ール
具体的な質問 ( および答え ) は、環境のタイプの違いだけでなく、環境が新規の
環境か既存の環境かによっても異なります。たとえば、DMZ を強化するタスク
は、DMZ を新たに作成するタスクとは大きく異なります。さらに、アーキテク
チャーを計画するときには、外側からのアタックだけでなく、内側からのアタッ
クも考慮に入れることを忘れないようにしてください。このフェーズは、チェス
のゲームのように考えることができます。
• キングをプロテクトするにはどのような計画が必要か
• 敵を出し抜くのに使用するストラテジーは何か
• 当初の防御策が失敗した場合、どのようにリカバリーするか
• 敵を打ち負かすために逃げ口上を使うつもりか
• 予想していたストラテジーを敵が使用しなかった場合にはどう対処するか
アーキテクチャーを計画するとき、予算とサポートの考慮事項を念頭に入れてお
くことが重要です。経費、労力、専門技術という面でサポートされるものを作成
することが必要です。サポートできないセキュリティー環境のアーキテクチャー
を作成することは、ある意味では、セキュリティー環境を持っていないことより
劣ることです。ペーパー・アーキテクチャーを作ってセキュリティーができたと
満足していることは、現実の世界と全くかけ離れていることになります。セキュ
リティー・アーキテクチャーを作成するには、何よりもまず、現実的で実行可能
でなければならず、可能であれば、作成された設計を究極的にサポートする人々
からのインプットを含めるようにしてください。
このフェーズ、とくに、ストラテジーを立案するときに参考になる資料として
は、The Art of War、ISBN 0-1950-1476-6、Sun Tzu、および、Information Warfare
and Security、ISBN 0-2014-3303-6、Dorothy E. Denning があります。さらに、この
レッドブックでカバーされているツールと技法を、設計を“補強する”ために使用
することができます。
1.4 セキ ュ リ テ ィ ー ・ フ レームワー ク - 実装
このフェーズも、新規のインフラストラクチャーまたは既存のインフラストラク
チャーで作業を進めるかによって異なります。既存の環境に後からセキュリ
ティーを組み入れることは、新たにセキュリティー環境を構築するよりも複雑な
作業になります。いま稼働している実動サービスを考慮に入れ、そのサービスを
停止せずに変更を組み込まなければならないからです。最初の試行で、IPSec、
TCP Wrapper、とくに、PortSentry などのツールを的確に構成することはかなり難
しい作業です。これらのツールは、実施する前に十分にテストし、その後も厳し
くモニターして、正当なクライアントへのアクセスを間違って拒否していないこ
とを確認する必要があります。
第 1 章 は じ めに
7
このフェーズへの秩序立ったアプローチが役立ちます。いくつかのアプローチを
以下に述べます。
• ネットワークの外辺部のサーバーから始めて、内部ネットワークのサーバー
に向かって作業を進める。または、この逆の順に進める。
• サーバーのタイプごとにインプリメントを行う。たとえば、すべてのファイ
アウォール、次にすべての Web サーバー、次にすべてのメール・サーバー、
というぐあいに作業を進める。
• 特定のセキュリティー・パッケージ、たとえば、IPSec または TCP Wrapper か
ら始めて、そのセキュリティー・パッケージを、指定したサーバーのすべて
にインプリメントする。その後で、次のセキュリティー・パッケージに移っ
てインプリメントする。
• ボトムアップで作業を進める。物理層 ( 物理的セキュリティー ) から始める。
次にネットワーク層に移り、次にオペレーティング・システム層、最後にア
プリケーション層に進む。
どちらの方法論を採用しても、実装・フェーズ中は、採用した方法論で実行し、
進捗にしたがって、構成を文書化してください。システム文書およびセキュリ
ティー文書の完全セット ( 構成ファイルおよびフィルタ規則のリストなど ) をオ
フラインで保管しておくことは非常に重要なことです。損傷があった場合に、こ
の文書が損傷制御および事後分析に貴重な役割を果たします。
このレッドブックの目的の 1 つは、本書でカバーするツールと技法の一部または
すべてを使用してユーザーがセキュリティー環境を構築するときに必要となる
情報を提供することにあります。このフェーズがとくに反復プロセスであること
を理解しておいてください。セキュリティーの実装は、決して 1 回の操作ですむ
ものではありません。アタックされ易い個所がソフトウェアやハードウェアに新
たに見つかれば、定期的に実装を見直して、新規パッチを適用し、構成ファイル
とリストを更新し、さらに、必要に応じて、効果の薄いツールを取り替えること
が必要になります。
1.5 セキ ュ リ テ ィ ー ・ フ レームワー ク - モ ニ タ ー
セキュリティー環境がセットアップされ、運用される段階になったので、この
フェーズでは、前の各フェーズにフィードバック・ループを追加します。つま
り、このフェーズで、システム・モニターとセキュリティー・モニターをインプ
リメントします。自動モニターと手動モニターの両方を検討します。ゴールは、
疑わしいアタックがありそうな場合に、早期の警告をユーザーに提供できる信頼
性の高いシステムを作成することです。しかし、このタイプのモニターになる
と、少なすぎる情報と多すぎる情報との間に微妙な線があります。情報が少なす
ぎると、疑わしい行動を見逃して、必要な予防処置をとれないリスクがありま
す。情報が多すぎると、やはり、なにか大事なことを見逃すリスクがあります
8
AIX セキ ュ リ テ ィ ー ・ ツ ール
が、この場合は、大事な情報が、詳細な情報やバックグラウンド・ノイズに埋も
れてしまうからです。ユーザーにとってなにが最適かというバランスを見つける
には、データについての経験と時間が必要です。
以下に、モニターについて考慮すべきエリアを挙げます。
• アプリケーション・ログ (httpd_log、access_log、ファイアウォール・ログ、など )
• ユーザーがインストールした追加のセキュリティー・ツールによって作成さ
れる特別ログ。
• 監査ログ
• システム・ログ (syslog、sulog、wtmp、lastlog、failedlogin、など )
• システム・エラー (errpt)
• システム・パフォーマンス統計情報 (vmstat、iostat、topas、など )
• ネットワーク・パフォーマンス統計情報 (netstat、netpmon、など )
• 物理アクセス・レコード
• クリティカル・システム・ファイル、および、ディレクトリー許可と所有権
モニター・プロセス全体を自動化することは可能ですが、これは、お勧めできま
せん。自動モニターと手動モニターの組み合わせが、よりよいソリューションで
す。以下に、その理由を挙げます。
• 完全自動化モニターを当然なことと考え、時間の経過とともに、自己満足に
陥り易くなる。
• 完全自動化モニターは、スクリプトに組み込まれた設定ロジック・パターン
にしたがっているものである。
• 手動モニターでは、セキュリティーについて毎日考えることが必要になる。
システムのヘルス・チェックを毎朝行う ( 少なくとも、一定のランダムなサ
ブセットに ) ことによって、セキュリティーをいつも念頭に置くことができ
る。
• 手動モニターによって、システムと環境の正常なパフォーマンスに対する感
覚を持つことができるようになる。このような経験によって得られるデータ
は、自動化プロセスから得られるデータよりもはるかに貴重な早期警告標識
になります。
• 手動モニターでは、ほとんど無限のパスにしたがって、自動モニターでは不
可能な、予想していなかったリンケージをつくることができます。この点に
関しての説得力のある説明が、TheCuckoo’s Egg: Tracking a Spy Through the
Maze of Computer Espionage、ISBN 0-6717-2688-9、Clifford Stoll に載っていま
す。
自動と手動の両方を行ってください。また、各ツールやログから提供される情報
をクロスチェックするために、複数のツールや複数のデータ・ソースを使用する
ことを考慮してください。優れた新聞記者が行うように、情報のソースを確かめ
第 1 章 は じ めに
9
てください。ツールは完璧ではないし、個々のログがあらゆることを捕捉するわ
けでもありません。それぞれには、長所と短所があります。求めていることは、
環境の健康状態についての全体像と感覚です。
また、各システムのスナップショットを定期的にとって、その情報を、別のシス
テムまたはオフライン ( またはその両方 ) で保管しておくことをお勧めします。
スナップショットは、いくつかのヒストリカル・コピーをとって保持しておくよ
うにしてください。そうすることにより、システムの不具合を調べるときに参照
できるベースラインを複数持つことができます。
これらの 4 つのフェーズの説明をクローズするにあたって、最後に一言付け加え
ます。これらのプロセスを一人で処理するには問題が多いと感じられた場合は、
専門のサービス・カンパニー (IBM もその 1 つ ) がプロセスの処理を援助するこ
とができます。最悪の事態が起こった場合には、サービス・カンパニーがユー
ザーに代わって現地にいることもできます。いよいよ次のフェーズ ( 実際の
フェーズ ) に進まなければなりません。IBM Emergency Response Service の詳細
については、以下の Web サイトをご覧ください。
http://www.ers.ibm.com/
1.6 セキ ュ リ テ ィ ー ・ フ レームワー ク - 事故応答
だれも考えたがらないフェーズです。これは、システム管理者の悪夢で、だから
こそ、よく考え、計画し、定期的にリハーサルを行わなければならないことなの
です。
セキュリティー事故にどう応答するかを考え始める絶対最悪のタイミングは、セ
キュリティー事故が実際に起こってからです。このフェーズのゴールは、最悪の
事態が起こったときに、なにをどのように行えばよいかがよく分かっているよう
にすることです。言い換えれば、事故応答チームが、よく整備されている機械の
ように、即座にアクションにとりかかれるようにすることです。
したがって、このプロセスでの最初のステップは、事故応答チームを指名するこ
とです。たとえ、緊急応答サービス (emergency response services)(ERS) を外部の
会社とすでに契約している場合、あるいは、会社がすでにコーポレート・レベル
の ERS チームを備えている場合でも、事故応答ポリシーとプロシージャーに熟
知し、ブリーチがあったときに状態を掌握しコントロールできる小人数のチーム
を任命すべきです。他のプロフェッショナル・チームと同様に、事故応答チーム
も毎日が練習の連続です。四半期ごとに予行演習を計画して、シミュレートした
侵入を識別し、その処置を行います。また、組織内の各人が、侵入があった場合
には、このチームがすべてをコントロールし、このチームが指揮系統を司って判
断を下すのだということを理解しておくことは非常に重要なことです。さらに、
事故応答チームにはリーダーが一人いて、調査活動においては、このリーダーが
最終判断を下すようにしなければなりません。
10
AIX セキ ュ リ テ ィ ー ・ ツ ール
犯罪調査の場合の事故に対する処置の仕方を思い浮かべてみてください。事件現
場を保存しながら、法廷で使える証拠を集めなければなりません。事故応答チー
ムの場合は、アタッカーが現場から逃げたかどうかがわからないということが、
さらに問題として加わります。アタッカーはまだ現場にいると想定する必要があ
ります。したがって、アタッカーに気付かれないようにしながら、調査を行わな
ければなりません。これは、とくに感情レベルでは、行いにくいことです。最初
の反応は、本能的に、すべてをシャットダウンしてアタッカーが再侵入できない
ようにすることです。しかし、この方法は現場を根本的に変更し、アタッカーを
実際に識別し捕まえるチャンスを逃がすことになりかねません。中立的なサー
ド・パーティーに事故応答チームの責任を持たせるのがよいというのは、こうし
た理由があるからです。通常、日々のシステム管理に責任を持つ人々は、この種
の事故には感情的に近すぎて、この場面で求められるクールで合理的な判断を下
すのに必要な見通しを持つことができません。もちろん、彼らの専門知識が不要
であると言っているのではありません。彼らの知識なしに調査を進めることはで
きません。
事故応答チームは、以下のような、システマティック・アプローチをとる必要が
あります。
1. 侵入について、疑われる範囲を識別する。
2. わかっていることの概要を記述することから作業を開始する。
3. 秩序正しく環境を調べる。外側から内部に ( 外部アタック )、または、内部か
ら外側に ( 内部アタック ) 作業を行う。
4. 秩序正しく各システムを調べる。アプリケーション層から下部層に向けて作
業を進めるか、ネットワーク層から上部層に向けて進める。
5. 各システムで調べる項目を前もって定義してリストにしておく。必要に応じ
て追加項目も検査できますが、最小限、リストにある各項目をリストの順序
にしたがって検査することが重要です。リストには、システム・ログ、シス
テム構成ファイル、ディレクトリーとファイルの許可、監査ログ、アプリケー
ション・ログ、システム・コマンドからの出力、ソース・コード・ファイル、
システム・エラー報告書などがなければなりません。
6. 作業が進むにしたがってあらゆることを文書化し、すでにわかっていること
の概要を更新する。
7. 前提事項を事実とデータで妥当性検査する。推測をしてもかまいませんが、
性急に結論に達しないでください。結論は確かな証拠で裏付けてください。
8. 追加のエキスパート・ヘルプをタイムリーに呼ぶ。犯罪の現場では、証拠の
片端が冷えるのに長時間を要しないことを憶えておいてください。
第 1 章 は じ めに
11
この最終フェーズは、このレッドブックの残りを読み進むときにも、憶えておい
てください。ツールや技法のそれぞれについて、セキュリティー事故の調査のと
きにどのように役に立つのかを考えてください。
事故応答について、段階をおった詳細な説明が、下記の Web サイトから入手で
きます ( ただし、有料です )。
http://www.sanstore.org/
1.7 次のス テ ッ プ
このレッドブックの以下の各章では、セキュリティー環境を構築したり強化する
ために使用できる、追加のツールと技法について説明します。説明は、大体、外
部から内部におよびトップからボトムに向かって行います。説明はファイア
ウォールで始まり、オペレーティング・システムの強化で終わります。
本書でカバーされているツールのほとんどは、下記の Bull サイトから、AIX の
installp フォーマットで使用可能です。
http://www-frec.bull.fr/
このサイトをまだ訪れていない方は、ぜひ、ブラウズしてみてください。ここに
は、セキュリティー・ツールのほかに、たくさんの AIX ソフトウェアが入って
います。
12
AIX セキ ュ リ テ ィ ー ・ ツ ール
第 2 章 フ ァ イ アウ ォ ール
ファイアウォールは、専用内部ネットワークへの、または、専用内部ネットワー
クからの無許可アクセスを防ぐことを目的にしたシステムです。ファイアウォー
ルは、通常、ネットワークの外辺部に、すなわち、内部ネットワークと外部ネッ
トワークの間、または、内部ネットワークのさまざまなセグメントの間 ( たとえ
ば、部門 LAN の間 ) にセットアップされます。ファイアウォールは、ガードマ
ンがいて、適切なパスを持った車両だけを通す、ハイ・セキュリティー・エリア
の入り口のセキュリティー・ポストにたとえることができます。
ファイアウォールが正しく機能するには、すべてのネットワーク・トラフィック
がファイアウォールを通るようにしなければなりません。代替のネットワーク・
パスを設けることは、ファイアウォールを持つ目的に反します。ネットワーク内
のダイヤルアップ接続で独立 ISP に接続されることは、代替ネットワーク・パス
の例になります。ネットワークのセキュリティーの強さは、最も弱いリンクに
よって決まります。代替パスを持つことは、代替パスによってオープンされるア
タックされ易さを増すことによって、セキュリティー体制を弱め、未知のエレメ
ントを導入することになります。一般的に、セキュアな環境では、不確かなエレ
メントは除去するか、少なくとも最小化する必要があります。
ファイアウォールは、よく知られている直接アタックという形式に対してプロテク
トします。新規の技術活用の方法が日々開発され発見されている現状においては、
最新のアタック・メソッドのみならず、プロダクト・パッチやリリース・レベルを
常に把握しておくことが重要です。試みられるすべてのアタックを予測することは
不可能です。しかし、適切に構成されたファイアウォールは、適切に構成された
ルーター、スイッチ、および、インターネット・サーバーと一緒に働くと、ほとん
どの形式のアタックに対して有効な保護の役割を果たすことができます。
ファイアウォールは、ハードウェア・ソリューションとしてもソフトウェア・ソ
リューションとしても実装できます。ハードウェア・ソリューションはより単純
で、通常、ソフトウェア・ソリューションほど複雑ではありません。一般的に
は、ハードウェア・ソリューションのほうが、よいパフォーマンスが得られま
す。本書では、ソフトウェア・ソリューションを中心に説明します。
2.1
フ ァ イ アウ ォ ールに関する誤解
ネットワークに必要なすべての保護がファイアウォールによって提供されると
いう、大きな誤解があります。これは真実ではありません。ファイアウォール
は、セキュリティーの主たる実行者ですが、その他のセキュリティー・エレメン
トと一緒に使用しなければなりません。たとえば、適切に構成されていない Web
サーバーがあって、セキュリティー上の問題がある場合、ファイアウォールを持
つだけでは不十分です。アタッカーは、本物のコマンドを彼らのリモート・クラ
イアントから実行してファイアウォールを通って Web サーバーに達し、Web
サーバーの弱点を利用することができます。
© Copyright IBM Corp. 2002
13
ファイアウォールは、正当なクライアントが正当なポート上にある正当なサー
バーにアクセスする限り、サーバーの活用においての保護を提供することはあり
ません。サーバー自体の弱点 ( アタックのし易さ ) がアタッカーによって活用さ
れ、サーバー自体への無許可アクセスが行われます。したがって、セキュリ
ティー・パッチ ( オペレーティング・システムのパッチおよびアプリケーション
のパッチ ) について常に新規情報を持ち、サーバーのシステム構成を厳しくコン
トロールし続けることが重要です。
一部のファイアウォール、たとえば、Check Point FireWall-1 では、このファイア
ウォールを通してすべての Java コードおよび ActiveX コードをフィルターに掛
けるオプションを提供することによって、Java エクスプロイトおよび ActiveX エ
クスプロイトから保護を提供します。Java エクスプロイトおよび ActiveX エクス
プロイトはプログラミングの問題に基づいているので、ファイアウォールは、ど
のコードがよいのか悪いのかを決めることができません。すべての Java コード
および ActiveX コードをフィルターに掛けることによって、これらの言語で作成
されたすべてのプログラム ( 良く書かれていてもいなくても ) は、ファイア
ウォールを通ることができなくなります。
もう 1 つのよくあるエラーは、ファイアウォールを デフォルトの構成のままにし
ておくことです。デフォルトの構成のままでは通常不十分で、いくつかの既知の
弱点が放置されたままになります。たとえば、Java フィルターおよび ActiveX フィ
ルターは、デフォルトにより、Check Point FireWall-1 の中で使用可能になりませ
ん。したがって、新規の弱点について ( ファイアウォール・ベンダーの Web サイ
ト、メーリング・リスト、www.cert.org にある CERT アドバイザーなどを使用し
て ) つねに最新情報を持ち、タイムリーに弱点をクローズすることが重要です。
ファイアウォールはパスワードが破られることについては保護しません。アタッ
カーがパスワードを盗むか、パスワードを正しく推測してあてた場合は、ファイ
アウォールは、そのようなアタッカーをブロックできません。ある人がなんらか
の手段を介してパスワードを持っている限り、ファイアウォールが、どのユー
ザーが本物でどのユーザーが本物でないかを判別することは難しいことです。こ
のことを念頭に入れて、AIX で厳しいパスワードをインプリメントすることが重
要です ( 破られにくいパスワードのインプリメント方法については、194 ページ
のセクション 8.6「ステップ 5: 強力なパスワード・ポリシーのセットアップ」を
参照してください )。
フォーカスが欠如しているもう 1 つのエリアは、ロギングです。多くのシステム
管理者は、ロギングについて注意を払っていません。これは、ロギングの重要性
を認識していないか、ロギングに注意を払うことが必要でないと誤解しているか
らです。セキュリティー上の侵入が発生すると、ロギングが非常に重要になりま
す。ハッカーは、通常、アタックを開始する前に、サイトをテストしてウィー
ク・スポットを探し出します。彼らは、ネットワークをプローブ / スキャンし、
潜在的に弱いところを探します。このようなアクティビティーは、ログを注意深
く監視することによって、しばしば、検出することができます。さらに、侵入の
試みが行われた場合、分析とトラッキングを行うセキュリティー・エキスパート
にとって、ログは貴重な記録を提供します。このことを念頭に入れて、すべての
ログ ( システムおよびファイアウォールの ) を安全で信頼できるロケーションに
保持し、定期的にオフラインでバックアップ・コピーを保守することが重要です。
14
AIX セキ ュ リ テ ィ ー ・ ツ ール
2.2
フ ァ イ アウ ォ ールの タ イ プ
ファイアウォールには、4 つのアーキテクチャー上のモデルがあります。
• 静的パケット・フィルター・ファイアウォール
• サーキット・レベル・ファイアウォール
• アプリケーション層 ( プロキシー ) ファイアウォール
• 動的パケット・フィルター・ファイアウォール
以下のセクションで、おのおのについて、簡単に説明します。
2.2.1
静的パケ ッ ト ・ フ ィ ル タ ー ・ フ ァ イ アウ ォ ール
静的パケット・フィルター・ファイアウォールは、サービス・ポートの間を渡る
パケット・ヘッダー情報を検査することによって、トラフィックをコントロール
します。たとえば、ビジネス用にインターネット Web サーバーをセットアップ
してある場合、静的パケット・フィルター・ファイアウォールを構成して、すべ
ての外部ユーザーからの、ユーザーの Web サーバー ( 通常、ポート 80) へのトラ
フィック ( インターネット ) を許可するようにしなければなりません。フィル
ター操作のレベルは単純で、より複雑なアタックを処理するための組み込み論理
はありません。
こ の タ イ プ の フ ァ イ ア ウ ォ ー ル は パ ケ ッ ト を ネ ッ ト ワ ー ク 層 で 検 査 し、
ftp/http/telnet などのアプリケーション層プロトコルの中の状態情報を処理する
ことはできません。セキュリティー・レベルは最も低く、セキュアとは見なされ
ません。静的パケット・フィルター・ファイアウォールは、4 つのタイプのうち
で最も高速です。このファイアウォールは状態がなく、ネットワーク・アドレス
変換をサポートし、ハードウェアでインプリメントできます。
AIX 4.3.x では、IPSec 機能 (bos.net.ipsec.rte ファイル・セット ) を使用して静
的パケット・フィルター操作を提供し、静的パケット・フィルター操作は多くの
ルーターにとって固有です。とくにルーターは、他のタイプのファイアウォール
にとって非常に重要なパートナーです。ルーターはそれ自身ではセキュリティー
の主たる実行者にはなれませんが、適切に構成されたルーターは、ネットワーク
のセキュリティー全体にとって不可欠です。ルーターは、よく設計され保守され
ているフィルター・セットと協働して、ハッカーの侵入を防ぐ働きをします。こ
れは、多くのインターネット・アタックにおいて、これらのフィルターが防御の
第一線 ( サービスの拒否、ネットワークのマッピング ) になるからです。
2.2.2
サーキ ッ ト ・ レ ベル ・ フ ァ イ アウ ォ ール
サーキット・レベル・ファイアウォールは、トランスポート層で機能します。こ
のファイアウォールは、TCP プロトコルだけをサポートします (UDP はサポート
しない )。このタイプのファイアウォールは、パケットが接続要求であるか、ま
たは、2 つの対等トランスポート層の間の接続または仮想回路に属すデータ・パ
ケットであるかを妥当性検査します。このファイアウォールは、状態テーブルの
第 2 章 フ ァ イ アウ ォ ール
15
1 つのタイプを形成して、新規の接続ごとにハンドシェークをモニターします。
ハンドシェークが完了すると、ファイアウォールはパケットを検査して、ルー
ル・セットに基づいて、パケットを通してよいか否かを判別します。許可された
後は、この接続に関連したすべてのネットワーク・パケットは、これ以上チェッ
クされずに許可されます。
サーキット・レベル・ファイアウォールは、パケットに関しての計算が少ないの
で、一般的に、アプリケーション層ファイアウォールよりも高速です。このファ
イアウォールも、ネットワーク・アドレス変換をサポートします。
2.2.3
ア プ リ ケーシ ョ ン層 ( プ ロキシー ) フ ァ イ アウ ォ ール
アプリケーション層ファイアウォールは、内部ユーザーと外部ユーザーとの間の
プロキシーとしての役を果たします。内部クライアントと外部サーバーとの間に
直接接続が行われることはありません。プロキシー・ファイアウォールの利点
は、このファイアウォールは、許可するアクセスに対してより良いコントロール
ができることです。たとえば、FTP プロキシーを使用して、コマンドを制限す
る、たとえば、get コマンドを許可し、put コマンドを許可しないようにするこ
とができます。
プロキシー・ファイアウォールの欠点は、特定のプロトコルに関連付けられてい
ることです。FTP プロキシーは、HTTP プロキシーとは異なる、などです。特定
のプロトコルごとに独自の特定のプロキシーが必要とされ、新規のプロトコルが
開発されると、ファイアウォール・ベンダーは、新規のプロキシーを開発しなけ
ればなりません。
プロキシー・ファイアウォールは、エンド・ユーザーとサービス提供者の間に透
可的に存在していて、両方とも、ファイアウォールがあることを気にする必要は
ありません。プロキシー・ファイアウォールは、他のタイプのファイアウォール
よりもスピードは遅いです。プロキシー・ファイアウォールはネットワーク・ア
ドレス変換をサポートし、優れた監査機能とロギング機能を提供します。
2.2.4
動的パケ ッ ト ・ フ ィ ル タ ー ・ フ ァ イ アウ ォ ール
動的パケット・フィルター・ファイアウォールは、UDP パケットをファイア
ウォール内の仮想接続テーブルに関連付けることによって、UDP トランスポー
ト・プロトコルのための保護を提供します。この接続テーブルは、ファイアウォー
ルの両サイドの接続を記録します。したがって、たとえば、アタッカーが内部ホ
ストからの要求への応答をシミュレートしようとすると、失敗します。動的パ
ケット・フィルター・ファイアウォールは、内部ホストが要求を出していないこ
とを知っているので、シミュレートされた応答を通しません。静的パケット・
フィルター・ファイアウォールは、応答がシミュレートされたものであることを
検出できず、その応答を内部ホストにパスし、ダメージを受ける可能性がありま
す。
2.2.5
さ ま ざ ま な タ イ プの比較
静的パケット・フィルター・ファイアウォールは、旧式と考えられており、セキュ
リティーに最も欠けます。性能的に限度があるため、セキュリティーの実施には
16
AIX セキ ュ リ テ ィ ー ・ ツ ール
使用すべきではありません。ただし、ネットワークの端でルーターに使用する場
合は、ファイアウォール本来の設計に基づいて防御の第一線を形成するので、あ
る種のトラフィックをネットワークに入れないようにすることができます。
サーキット・レベル・ファイアウォール、プロキシー・ファイアウォール、およ
び、動的パケット・フィルター・ファイアウォールには、それぞれ、長所と短所
があります。優れたファイアウォールは、これらのタイプのファイアウォールの
特性を 1 つのプロダクトに組み込んだハイブリッド型のものです。
ファイアウォールの発展とタイプについて詳しくは、以下の Web サイトを参照
してください。
www.cisco.com/univercd/cc/td/doc/product/iaabu/centri4/user/scf4ch3.htm
2.3
フ ァ イ アウ ォ ールの設計
ファイアウォール・アーキテクチャーについての説明が済んだので、次に、ファ
イアウォールの設計の説明に進みます。ネットワークの複雑さおよびビジネスの
本質によって、ユーザーが行うデシジョンの形が作られます。以下の設計は、設
計作業の開始点としてのみ説明されています。
2.3.1
フ ァ イ アウ ォ ールの基本設計
最も基本的なファイアウォール・システムは、2 つの IP ネットワーク ( たとえば、
インターネットと会社のイントラネット ) を分離するものです。ファイアウォー
ル・システムが有効に機能するには、2 つのセキュリティー・ゾーン間のすべて
のトラフィックがそのファイアウォール・システムを必ず通るようにしなければ
なりません。ファイアウォールの構成によって、許可される接続と拒否される接
続を指定します。基本的なファイアウォールの設計を 図 1 に示します。
内部ネッ
ト ワーク
Internal
Network
公開サーバー
Public
Server1 1
172.16.30.1
172.16.30.1
公開サーバー
Public
Server2 2
172.16.30.2
172.16.30.2
外部ネッ ト ワーク
External
Network
フ ァ Firewall
イ ア ウォ ール
ISP へのルータ
ー
Router
to ISP
公開サーバー 33
Public
Server 3
172.16.30.3
172.16.30.3
公開サーバー
4 4
Public
Server
172.16.30.4
172.16.30.4
図 1. 基本的な フ ァ イ ア ウ ォ ールの設計
第 2 章 フ ァ イ アウ ォ ール
17
さまざまなテクノロジーを使用して、ネットワーク間のトラフィックをコント
ロールすることができます。パケット・フィルター操作によってそれぞれの IP
パケットを調べ、プロキシーは、接続のレベルとアプリケーション・バイト・ス
トリームを確認します。最新のファイアウォール・プロダクトでは、多くの場
合、これらの技法が 1 つのハイブリッド設計に結合され、2.3、
「ファイアウォー
ルの設計」(17 ページ ) で説明されている技法をサポートしています。
よく憶えておくべきことは、ファイアウォールは、さまざまなネットワーク間の
トラフィックを確認することしかできないということです。1 つのセキュリ
ティー・ゾーン内で好ましくない接続があっても、その接続を禁止することはで
きません。このことは、大きなセキュリティー・リスクにつながる可能性もあり
ます。たとえば、会社の公開 Web サーバーが内部ネットワーク内に置かれてい
る場合に、だれでもこの Web ページにアクセスできるように、このシステムへ
の HTTP 接続を許可するようにファイアウォールを構成しなければならないと
します。Web サーバーにセキュリティー・ホール ( ソフトウェア・バグ、構成エ
ラー、保護が不十分なダイナミック・コンテント、その他のさまざまな原因によ
る ) があると、アタッカーは Web サーバー・システムに自由にアクセスできま
す。アタッカーがこれを利用して、1 つのセキュリティー・ゾーン ( つまり内部
ネットワーク ) 内の他のシステムにアクセスすることを、ファイアウォールは防
ぐことができません。重要なサーバーを、外部ネットワークの中のファイア
ウォールの外側に置くこともお勧めできません。こうすると、アタックに対し
て、ファイアウォールがサーバーをプロテクトできなくなるからです。
Web サーバーのような複雑なサーバー・ソフトウェアにセキュリティー・ホール
が絶対ないようにと期待するのは、経験から考えて現実的ではありません。大き
な会社や政府組織が、頻繁に、この種のアタックの被害者になっています。毎日
のように、新しいセキュリティー・ホールが見つかり、一般の人の知らない所で
そのような情報がハッカー達によって共有化されています。この情報が公開イン
ターネット・サイトやセキュリティー・メーリング・リストに届くには時間がか
かり、アタックされ易い弱点を修正するためのパッチをソフトウェア会社が開発
しテストするには、さらに時間がかかります。知識は最良の防御です。この目的
のために、セキュリティー関連の Web サイトを読み、メーリング・リストに参
加し、ハッカーと同じように考えることによって最新の情報を取り入れておくこ
とが重要です。
2.3.2
非武装地帯 (DMZ : DeMilitarized Zone) を備えた フ ァ イ アウ ォ ール
外辺ネットワークを導入し、その内側に公開サーバーを置くことによって、より
強度の高いセキュリティーを備えることができます。このゾーンは DMZ と呼ば
れ、セキュアの度合は半分と考えられています。ファイアウォールがプロテクト
しているという意味ではセキュアであり、インターネットから直接アクセスでき
るという意味では、セキュアではありません。インターネットから見える、つま
りアクセスできるサーバーは、DMZ 内に置くべきです。その他のすべてのサー
バー (DMZ に対するインフラストラクチャー・サポート・サーバーも含めて ) は、
別のファイアウォールによって DMZ から分離する必要があります。したがっ
て、標準的な DMZ セットアップは、図 2 に示すように、2 つのファイアウォー
ルを備え、その 2 つのファイアウォールの間に DMZ サーバー・ネットワークを
持つものです。
18
AIX セキ ュ リ テ ィ ー ・ ツ ール
E x te rn a l N e tw o rk
D M Z N e tw o rk
P u b lic S e rv e r 1
1 7 2 .1 6 .3 0 .1
E x te rn a l F ire w a ll
R o u te r to IS P
P u b lic S e rv e r 2
1 7 2 .1 6 .3 0 .2
P u b lic S e rv e r 3
1 7 2 .1 6 .3 0 .3
P u b lic S e rv e r 4
1 7 2 .1 6 .3 0 .4
In te rn a l N e tw o rk
In te rn a l F ire w a ll
In te rn a l S e rv e r 1
1 0 1 6 .3 0 .1
In te rn a l S e rv e r 2
1 0 .1 6 .3 0 .2
In te rn a l S e rv e r 3
1 0 1 6 .3 0 .3
図 2. DMZ を備え た フ ァ イ ア ウ ォ ール
このセットアップの利点は、公共的にアクセスされるサーバーが、外部ネット
ワークからプロテクトされ、内部ネットワークから分離されることです。イン
ターネットから内部サーバーへの直接接続は許可されず、したがって、アタッ
カーがアクセスを得るには、2 つのファイアウォールが危険にさらされます。2
つのファイアウォールに、異なるファイアウォール・テクノロジーを使用するこ
とを考慮しなければならない場合があります。こうすると、一方のファイア
ウォールの弱点を使用して、もう一方のファイアウォールを突破し難くなりま
す。このセットアップの欠点は、言うまでもなく、2 つのファイアウォールが要
ること、とくに、2 つのファイアウォールに異なるテクノロジーが使用される場
合は、複雑さと管理業務が増すことです。
プロテクションの強化は、DMZ ネットワーク上の公開サーバーに、さらに必要
です。最悪ケースのシナリオでは、公開サーバー 1 が侵入されると、必要以上に
セキュリティーが失われます。たとえば、
1. 公開サーバー 1 に押し入った侵入者は、自由に公開サーバー 2 をアタックでき
ます。2 つのサーバーの間にさえぎるものがないからです。
2. 公開サーバー 1 にいる侵入者は、DMZ ネットワーク・サイド上の両方のファ
イアウォールから出て行くすべてのネットワーク・トラフィック ( 会社の e-mail
や、系統的に収集すれば潜在的に機密性の高い情報を含む ) を容易にモニターで
きます。この技法はネットワークスニッフィングと呼ばれます。送信元と宛先の
分析は、トラフィック分析と呼ばれます ( 暗号化されたメールであっても、平文
で From: と To: のメール・アドレス情報が得られ、機密トランザクションを見抜
ける可能性があります )。
第 2 章 フ ァ イ アウ ォ ール
19
この弱点を補うためによく使われる方法は、DMZ ネットワーク内のサーバーの
間で、管理し易いスイッチを使用することです。もう 1 つの方法は、ある種のト
ラフィックまたは経路を妨げるようにフィルターをセットして、静的パケット・
フィルター・ルーターを使用することです。ルーティング・テーブルを使用し
て、DMZ ネットワーク内のサブネットを分離することもできます。3 番目のオ
プションは、AIX 4.3.x の下で IPSec 機能を使用し、静的パケット・フィルター
操作を公開サーバーに直接実施する方法です。
スイッチが良い選択なのは、共用メディアを使用しないからです。たとえば、共
用メディアでは、1 つのサーバーから別のサーバーへのアカウントのログイン
は、同じメディアを共用しているすべてのサーバーに見えています。ある種の
サービス (telnet および ftp など ) では、アカウント ID やパスワードを暗号化せず
にネットワーク上で伝送します。サーバー A、B、および C がすべて共用メディ
ア上にあると想定し、さらに、アタッカーがサーバー C に侵入したと想定しま
す。ユーザーが telnet または ftp セッションを確立したときにサーバー A とサー
バー B の間で渡されたアカウント情報 (ID とパスワード ) は、サーバー C にいる
アタッカーに ( スニッフィングによって ) 見えています。スイッチを使用すると、
メディアは共用ではなくなり、むしろ point-to-point になるので、このシナリオで
述べた盗聴がはるかに困難になります。適切に構成されたスイッチには、送信元
から宛先へのパスが限定された数しかなく、複数の宛先へのアクセスは、すべて
スイッチによってコントロールされます。
しかし、アクティブ・ネットワーク装置、スイッチ、および、ルーターは、パ
フォーマンス、スピード、便利さを主たる目的として設計されているものです。
セキュリティーは、言わば、後から付け足されたものです。経験から、これらの
装置は、防御手段としては、信頼できません。装置の開発時にセキュリティー面
が強調されていないことに加え、これらの装置には限定されたフィルター操作機
能しかないので、よく使われるプロトコル (FTP など ) でさえも適切にフィルター
できません。また、フィルター・セットを構成する作業は、本能に反する作業
で、厄介で、エラーを導き易く、継続的な保守作業はさらに困難な作業です。
スイッチおよびルーターは、ハードウェアに組み込まれたバックドアパスワード
を使用しているとして知られ、アタッカーが簡単に再構成できます。さらに、ス
イッチとルーターは、通常、ネットワークにおいて平文でパスワードを送ること
によって構成されます。これらのパスワードは、簡単に捕らえられ、推測され、
再使用可能です。
要約すると、スイッチとルーターを使用して追加のフィルター操作とアラームを
提供することはできますが、ビジネス用のセキュリティーを提供する、信頼性の
高い手段としては使用できません。スイッチとルーターは、適切に構成され管理
されているならば、ファイアウォールにとって最強のパートナーになります。多
くの場合、スイッチやルーターをセットアップする人々と、これらを管理する
人々は別のグループに属し、スキルのセットも異なっています。通常、管理者
20
AIX セキ ュ リ テ ィ ー ・ ツ ール
は、スイッチ、ルーター、サーバー、PC、そのほかネットワーク上のあらゆる
装置を保守しなければならず、このため、管理者は、それぞれの装置について専
門的な知識を持つことが非常に難しくなっています。
標準的なファイアウォールの設計についての詳細な説明は、以下の資料にありま
す。
• Building Internet Firewalls、ISBN 1-5659-2124-0、D. Brent Chapman、Elizabeth
D. Zwicky、および Deborah Russell
• Firewalls and Internet Security: Repelling theWily Hacker、ISBN 0-201-63357-4
2.3.3
コ ンパー ト メ ン ト 化 さ れた フ ァ イ アウ ォ ール環境の設計
複雑な環境にふさわしい、よりセキュアでフレキシブルなアプローチはコンパー
トメント化されたファイアウォール環境で、1 つのファイアウォール・システム
が複数のネットワーク・インターフェースを持ち、そのファイアウォール・シス
テムによって、さまざまなコンパートメント (DMZ またはセキュリティー・ゾー
ン ) を相互にプロテクトできるようにしたものです。
コンパートメントとは、1 つのファイアウォールによって互いにプロテクトされ
たセキュリティー・ゾーンに対する新しい名前 ( 用語 ) です。この用語は、2 つ
のファイアウォールを持つ単一の DMZ すなわち Secure Server ネットワークか
らこのアプローチを区別するときに使用します。近年に出現し、最新技術と考え
られている設計が、概略、図 3 (22 ページ ) に示されています。
第 2 章 フ ァ イ アウ ォ ール
21
Public Server 4
172.17.30.2
Public Server 3
172.17.30.1
DMZ Network 2
DMZ Network 1
External Network
Public Server 1
172.16.30.1
Public Server 2
172.16.30.2
Router to ISP
Firewall
Internal Network
Internal Server 1
10.16.30.1
Internal Server 2
10 16.30.2
Internal Server 3
10 16.30.3
図 3. コ ンパー ト メ ン ト 化 さ れた フ ァ イ ア ウ ォ ール
さまざまなコンパートメント ( 外部ネットワーク、DMZ ネットワーク 1、DMZ
ネットワーク 2、内部ネットワーク ) は、専用ネットワーク・カードを使用して、
それぞれの物理ネットワークがファイアウォールに接続されています。これによ
り、ファイアウォールは、これらのコンパートメント間のすべてのトラフィック
をコントロールできます。アタッカーは、侵入した 1 つのコンパートメント内の
トラフィックだけしか見えないので、IP 盗聴はアタッカーにとって、ほとんど
無意味になりました。コンパートメントは独立しているので、接続システムの 1
つ ( たとえば、公開サーバー 1) にセキュリティー上の侵入が発生しても、環境
全体が危険にさらされることにはなりません。損害は、危険にさらされたサー
バーが入っているコンパートメントに限定されます。部分的なセキュリティー上
の侵入が発生しても、全体的なセキュリティー上の侵入にならないように、コン
パートメントを注意深く計画することが必要です。コンパートメントは、同質で
均一に保持するようにしてください。Web サーバーに侵入が発生しても、メー
ル・サーバーに侵入しないようにしなければなりません。可能であれば、タイプ
ごとに、別個のコンパートメントに入れるようにしてください。
適切に構成されたファイアウォールは、侵入者が、アタックに成功したシステム
からさらに他のシステムにアクセスをさらに実行しようとしている ( たとえば、
Web サーバーにメール・サーバーをアクセスさせる ) ときにアラートを出す必要
があります。ファイアウォールの主機能の 1 つは、挙動不審な行動 ( たとえば、
Web サーバーがメール・サーバーに接続する ) を検出したときにアラームを出す
22
AIX セキ ュ リ テ ィ ー ・ ツ ール
ことです。これは、考えられるすべての脅威からユーザーをプロテクトできるセ
キュリティー装置などはないからです。ファイアウォールは、ユーザーがアタッ
クされるときに警告を出して、ユーザーが反応できるようにしなければなりませ
ん。注意しなければならないことは、アタッカーは常に一歩先んじて多くの攻撃
方法を用意し、そのうちの 1 つが成功すればよいのに対し、防衛側は、無限の数
のアタックに備えなければならないことです。言うまでもなく、防衛側は、早め
に成功の確率の高いアタックを検出し、偵察と対応策を開始することができるだ
けです。
コンパートメント化したアプローチでは、複雑さが増し ( ファイアウォールに多
くのネットワーク・カード、および、より多くのルーティング上の問題 ) ます
が、セキュリティーの強化は、コストをかける価値があります。このセットアッ
プでの問題 ( 他のすべてのファイアウォールの設計と同様 ) は、ファイアウォー
ルが侵入されると、システム全体のセキュリティが失われることです。したがっ
て、ファイアウォールをできるだけセキュアにすることがとくに重要です。オペ
レーティング・システムを強化し、常に最新の状態に保ち、保守手順は文書化
し、常に守られなければなりません。低い保全性と品質、不完全な強化、および
人間のエラーによるオペレーティング・システムのセキュリティーの低さが、多
くのセキュリティー上の侵入の原因です。
ファイアウォール・システムに他のソフトウェアをインストールする前に、注意
深い計画が必要です。ファイアウォール環境で使用するために設計され、テスト
され、監査されたソフトウェアだけを使用することを考慮してください。ファイ
アウォールは、ファイアウォール機能の目的のためだけに使用するべきです。ア
プリケーション・ソフトウェアは、ファイアウォールではなく、アプリケーショ
ン・サーバーで実行すべきです。また、メインテナンス・アクティビティーを開
始する前に、ファイアウォールを、外部ネットワークから物理的に切断すること
をお勧めします。最近成功したアタックは、メインテナンス・アクティビティー
のためにファイアウォールを停止していた時に起動されました。
最悪ケースのシナリオを常に念頭に置いてください。多くの場合、ソフトウェア
の中の 1 つのバグによって、アタッカーが任意のコマンドを実行し、終局的に、
システムを自由にコントロールすることが可能になります。コンパートメントの
中に分離されたサーバーでこの種のセキュリティー上の侵入が発生することは
有害なことですが、メイン・ファイアウォール・システムで起こった場合は、悲
劇的な有害さをもたらします。
図 3 (22 ページ ) に示したファイアウォール・システムは、ネットワーク・トラ
フィックのコントロールだけを行うべきです。その目的のために、IP フィルター
操作またはセキュア・プロキシー ( あるいは両者の組み合わせ ) を使用します。
両者には、それぞれ利点があります。IP フィルター操作では IP パケットだけが
処理され、その処理は、その処理専用に設計されたカーネル・モジュールによっ
て実行されるので、ファイアウォール・システムに侵入することは非常に困難で
す。ファイアウォールで使用するためだけに設計されたプロキシーは、ある種の
稀なネットワーク・レベルのアタックからプロテクトできます。これは、新規の
IP パケットの生成が、オリジナルの ( 有害の可能性がある ) IP パケットを転送し
て行われるのではなく、オペレーティング・システムによって行われるためで
第 2 章 フ ァ イ アウ ォ ール
23
す。さらに、ファイアウォール上の TCP または UDP サーバー・プログラムの数
を最小にする必要があります。これは、この種類のプログラムが、通常、潜在的
な侵入者が利用する弱点になっているからです。
2.4
堅牢な フ ァ イ アウ ォ ール
ファイアウォールは、アプリケーションのように考えてください。ファイア
ウォールを堅牢するには、まず、オペレーティング・システムを堅牢する必要が
あります ( 第 8 章 「AIX の保護」(139 ページ ) に説明があります )。次に、ファ
イアウォール・ソフトウェアを堅牢にします。ファイアウォールは、セキュリ
ティーの実行者ですから、非常に堅牢でなければなりません。ファイアウォール
は、王国に入る鍵を持っています。ファイアウォールが損傷を受ければ、戦は負
けです。
ファイアウォールのデフォルト・オプション設定は、堅牢な環境を提供するに
は、通常、不十分で、追加の構成作業が必要になります。よく使われるアタッ
ク・メソッドのほとんどは、デフォルト設定ではカバーされておらず、新規のア
タック・メソッドが毎日のように発明されています。したがって、ファイアウォー
ルの構成作業は一回限りのセットアップではなく、継続的な活動と考える必要が
あります。フィルター規則は、単純で短いものでなければなりません。複雑な規
則は、ルール・ベースに、予想されなかったホールを残します。潜在的な ( また
は本当の ) セキュリティ・ホールを早期に検出するには、不断の監査とログ・モ
ニターが不可欠です。
一部のファイアウォールは、listen するデフォルト・ポートを持っています。た
とえば、Check Point FireWall-1 は、デフォルトでは、ポート 256、257、および
258 で listen します。Check Point FireWall-1 を識別するために、アタッカーは、
ポート・スキャナーを使用してこれらのポートをスキャンし、アクティブかどう
かを調べます。したがって、簡単に検出されないように、ルーターにフィルター
規則を追加して、これらのポートへの外部ネットワーク・トラフィックを妨げる
必要があります。
2.5
AIX のフ ァ イ アウ ォ ール
IBM RS/6000 および新規の IBM ^ pSeries ハードウェアで実行できる 2
つの共通ファイアウォールは、Check Point FireWall-1、および、IBM Secureway
Firewall です。これらの製品は両方とも、動的パケット・フィルター・ファイア
ウォールおよびアプリケーション層 ( プロキシー ) ファイアウォールの特性を組
み込んだ、ハイブリッド・ファイアウォールです。Check Point FireWall-1 は 第 3
章 「Check Point FireWall-1」(25 ページ ) に説明があり、IBM Secureway Firewall
は 第 4 章 「IBM Secureway Firewall」(47 ページ ) に説明があります。
さまざまなベンダーのファイアウォール製品を比較できる情報は、以下の Web
サイトにあります。
www.icsa.net/html/communities/firewalls/certification/vendors/index.shtml
24
AIX セキ ュ リ テ ィ ー ・ ツ ール
第 3 章 Check Point FireWall-1
Check Point FireWall-1 は、ファイアウォールのリーダーです。Check Point のパテ
ント 取 得済 み の Stateful Inspection Technology お よ び Open Platform for Secure
Enterprise Connectivity (OPSEC) を使用して、FireWall-1 は、ネットワーク・セキュ
リティーの全局面を統合し、集中管理を行います。
他の会社の多くが、その製品を、市場のリーダーである FireWall-1 に統合してい
ます。Check Point お よび そ のビ ジ ネス・パ ート ナ ーか ら 発表 さ れて い る
FireWall-1 を補完する製品がたくさんあります。OPSEC は、この統合を規定する
バインディング・プラットフォームです。
Check Point のホーム・ページは以下の Web サイトにあります。
www.checkpoint.com
Check Point FireWall-1 のトラブルシューティング情報、自動化スクリプト、およ
び、一般質問に対する応答についての Web サイトを以下に示します。
www.phoneboy.com/fw1
3.1
FireWall-1 の フ ィ ーチ ャ ー
FireWall-1 の長所は、構成、管理、ロギングのユーザー・インターフェースの使
いやすさにあります。このため、この製品を、非常に簡単にセットアップし、使
用することができます。ドキュメンテーションは使いやすく作成されていて、イ
ンターネット上でもサポートが得られます。アドオン・ソフトウェアも使用可能
なので、FireWall-1 を 1 つの完成したセキュリティー・ソリューションにするこ
とができます。
FireWall-1 には、中央管理コンソール機能が用意されているので、多数のファイ
アウォールをリモートで管理できます。中央管理コンソール機能は、複数のネッ
トワーク・エントリー・ポイントでセキュリティー・ポリシーを中央設置場所か
らインプリメントすることによって、管理の容易性を向上できます。管理コン
ソールとの間でやりとりするトラフィックは暗号化されます。
FireWall-1 は、内部および外部認証サーバーを使用して、SecureID および RADIUS
を含む複数の認証スキームをサポートします。他のユーザー認証スキームには、
オペレーティング・システム・パスワード、FireWall-1 パスワード、S/Key およ
びデジタル証明書があります。また、ユーザー管理を集中するために、LDAP
ディレクトリー・サービス用の組み込みサポートがあります。
インターネット標準 (IKE、IPSec、DES、3DES、RSA、Diffie-Hellman、など ) の
サポート付きの VPN 用に暗号化が使用できます。SecureRemote を使用して、
© Copyright IBM Corp. 2002
25
IPSec 準拠の暗号化とキー管理を提供し、VPN をリモート・ユーザーに拡張する
ことができます。
FireWall-1 には、コンテント・セキュリティーを規定する 3 つのセキュリティー・
サーバーがあります。
• HTTP Security Server は、悪意のある Java と ActiveX アプリケーション、
および、望ましくない URL に対して Web サーバーをプロテクトします。
• FTP Security Server は、get コマンドおよび put コマンドへのアクセスを
コントロールすることによって、FTP サーバーをプロテクトします。
• SMTP Security Server は、一定の sendmail ヘッダー・フィールドを除去す
ることによって、メール・サーバーをプロテクトします。
Check Point FireWall-1 は、いくつかの構成で使用可能です。
• 基本ファイアウォール ( 管理モジュールとファイアウォール・モジュールを
含む )
• VPN サポート付きのファイアウォール ( 複数サイト・セットアップ用 VPN を
含む )
• VPN および DES 暗号化付きのファイアウォール - キーの強さを基にして、
US
輸出規則の適用を受ける可能性がある
• ファイアウォール・エンジン ( 管理コンソールなし ; 別の管理コンソールが必
要)
Check Point FireWall-1 は、正しく作動するには、ライセンスがインストールされ
ていることが必要です。ライセンス交付は、プロテクトが必要な内部ホストの数
に基づきます (25、50、250、または、無制限 )。正しいライセンス・パッケージ
が入手されていることを確かめてください。
Motif GUI を使用して FireWall-1 管理コンソールに接続するためにもライセンス
が必要です。このライセンスは、Windows GUI では必要ありません。Motif ライ
センスは、管理コンソール上にインストールする必要があり、必要に応じて、管
理コンソールのホスト名または IP アドレスに結びつける必要があります。
FireWall-1 4.0 以前は、このライセンスは無料で、Web から要求することができ
ました。FireWall-1 4.1 では、有料になり、FireWall 4.1 製品と一緒に注文する必
要があります。
パフォーマンスに関しては、組み込まれたサーバー・ロード・バランシング (5
種類のアルゴリズムがある ) を使用して、ファイアウォールの後ろ側で、サー
バーを透可的にロード均衡化することができます。FireWall-1 は、多対 1 および
1 対 1 構成を使用した、ネットワーク・アドレス変換 (NAT) を行います。
26
AIX セキ ュ リ テ ィ ー ・ ツ ール
3.2
FireWall-1 用の補足 ソ フ ト ウ ェ ア
他の製品を FireWall-1 と一緒に使用して、全体的なエンタープライズ・セキュリ
ティー・ソリューションを提供することができます。帯域幅管理 (Floodgate)、圧
縮、および ハードウェア・ベースの VPN ベース加速が使用され、より良いパ
フォーマンスが提供されますが、これは、今日の Web 環境では、ますます重要
になっています。
高可用性に関しては、Stonebeat などの製品を使用してフェールオーバーを自動
化することができます。ファイアウォールがネットワークの重要なコンポーネン
トであるので、Stonebeat は、システムまたはネットワーク・インターフェース
に障害が発生すると、スタンドバイ・マシンに自動的に 1 次ファイアウォールを
引き継がせることによって、サーバーの可用性を向上させます。Stonebeat は
FireWall-1 の上に構築され、ファイアウォールに合わせて調整されます。他の汎
用高可用性ソフトウェア (HACMP など ) も、FireWall-1 または IBM Secureway
Firewall と一緒に使用できます。しかし、Stonebeat の長所は、とくに FireWall-1
を念頭に入れて作成されていることです。Stonebeat は簡単にインストールし構
成することができ、ファイアウォールの全機能性を提供します。
3.3
FireWall-1 の安全性
Check Point FireWall-1 のインストールには、オペレーティング・システムの強化
は含まれません。したがって、ユーザー自身でこれを行わなければなりません。
ファイアウォール・ソフトウェアはオペレーティング・システムの上に存在する
ものであり、セキュリティーのレベルは最も弱いリンクに揃えられるので、これ
は重要なステップになります。オペレーティング・システムの強化については、
第 8 章 「AIX の保護」(139 ページ ) を参照してください。
本書では、Check Point FireWall-1 のインストールおよび初期構成の方法について
はカバーしません。このサブジェクトは、Check Point の Web サイト
(www.checkpoint.com/support/technical/documents/index.html) で詳細にカバー
されています。このサイトはパスワード保護されていますが、パスワードは、カ
スタマーにも販売店にも提供されます。追加情報は、レッドブック Check Point
FireWall-1 on AIX,A Cookbook for Stand-Alone and High Availability、SG24-5492
にあります。
ただし、Check Point FireWall-1 セキュリティーを強化する追加手順についてはカ
バーします。具体的には、以下の項目で説明します。
•
•
•
•
•
•
システム起動時の脆弱性の解決
FireWall-1 ログの管理
FireWall-1 デフォルト構成の安全性
役に立つルール・ベースの作成
接続の表示
他の防御メカニズムの使用可能化
第 3 章 Check Point FireWall-1
27
3.3.1
シ ス テム起動時の脆弱性の解決
AIX の起動時に、ファイアウォールによってプロテクトされているネットワーク
がアタックされ易くなる時間があります。これは、AIX 起動時で、ネットワーク
が使用可能になったが、ファイアウォール・ポリシーのロードがまだ完了してい
ない時点で起こります。セキュリティー・ポリシーがまだロードされていない、
この短時間の間に、アタッカーは、パケットをファイアウォールを通してルー
ティングすることによってネットワークをアタックすることができます。ネット
ワークをプロテクトするには、この短時間の間、ファイアウォール上で IP 転送
を使用不可にして (no -o ipforwarding=0)、いかなる接続も通さないようにする
必要があります。ファイアウォール・ポリシーがロードされた後で、IP 転送を
使用可能にすることができます。
IP 転送 (ipforwarding) は、AIX ネットワーク・オプション (no) で、パケットを 1
つのネットワーク・インターフェースから別のネットワーク・インターフェース
に転送するか否かを指定します。言い換えれば、AIX サーバーにゲートウェイの
役割をさせるか否かを指定します。ファイアウォールの通常操作の間はゲート
ウェイなので、IP 転送は使用可能にしなければなりません。したがって、すでに
述べたように、アタックされ易い期間は IP 転送をオフにし、通常操作の期間では
オンにします。システムの開始時は、IP 転送のデフォルト値は 0 ( 使用不可 ) で
す。ファイアウォール・ポリシーがロードされた後で、この値を 1 ( 使用可能 ) に
変更してオンにします。
たとえば、以下に示すようなスクリプトを、/etc/inittab から実行できます。
FireWall-1 の開始 (/etc/rc.net の中にある ) を必ずコメント化して、/etc/rc.net
または他の開始ファイル (/etc/rc.tcpip または /etc/rc.local) にある
ipforwarding がデフォルト値 0 ( 使用不可 ) から変更されていないことを確認し
てください。
#/bin/ksh
LOG=/tmp/log/console
FWDIR=/usr/lpp/FireWall-1/
export FWDIR
/usr/lpp/FireWall-1/bin/fwstart > $LOG 2>&1
/usr/sbin/no -o ipforwarding=1
echo "Enabling IP forwarding" >> $LOG 2>&1
/usr/sbin/no -a | grep ipforwarding >> $LOG 2>&1
exit 0
また、ポート・マップ・サービスが、システム開始時に、/etc/rc.tcpip によっ
て開始されることを、付け加えておきます。オペレーティング・システムの強化
の一部として、ポートマッパーをすでに使用不可にしていると思われます。しか
し、Motif GUI を使用する予定がある場合は、ポートマッパーを再度使用可能に
する必要があります。これは、Motif がポート・マップ・サービスに依存してポー
トの割り振りを行うからです。
28
AIX セキ ュ リ テ ィ ー ・ ツ ール
3.3.2
FireWall-1 ロ グの管理
FireWall-1 をセットアップするときに、ロギング・ディレクトリー ($FWDIR/log ま
たは /usr/lpp/FireWall-1/log) 用に別のファイル・システムを作成することをお
勧めします。別のファイル・システムを作成しておけば、ファイアウォールのロ
ギング・アクティビティーのために /usr ファイル・システムがいっぱいになら
ず、ログ・ディレクトリーの管理が容易になります。このファイル・システムの
サイズは、ファイアウォールを通るトラフィックの量、ファイアウォールのログ
用にユーザーが構成した冗長度のレベル、および、保持しておきたいヒストリの
量によって決まります。
ログ・ファイルのメインテナンスは、crontab を使用すると、管理が便利です。
FireWall-1 は、ログ・スイッチング・オプション (fw logswitch) を提供していま
す。これを定期的に実行して、ログが大きくなりすぎないようにします。たとえ
ば、毎日 2:00 a.m. にログをスイッチするには、以下のエントリーをルートの
crontab に追加します。
0 2 * * * /usr/lpp/FireWall-1/bin/fw logswitch > /dev/null 2>&1
3.3.3
FireWall-1 デ フ ォ ル ト 構成の安全性
FireWall-1 のデフォルト・オプションを使用すると、製品を速く簡単にインストー
ルして使用することができます。ただし、デフォルトを除去し、本当に必要なこ
とに特定したルールを作成することによって、セキュリティーを強化する必要が
あります。この機能を実行するには、Properties Setup メニューでオプションを使
用可能にするか、そのためのルールを作成します。一般的には、あるオプション
をメニューから使用可能にすると、そのオプションのロギングは使用不可能にな
ります。代わりに、そのためのルールを作成した場合は、ロギングをオンにする
オプションが提供されます。したがって、前の方法よりも、後の方法のほうがコ
ントロールがしやすくなります。
たとえば、デフォルトによって、ファイアウォールをどこからでも PING するこ
とができます。ほとんどのケースでは、これを許可する必要はないので、デフォ
ルトの ICMP オプションを使用不可にします。後で、PING のための新しいルー
ル ( ロギングをオンにして ) を作成し、このルールで、ファイアウォールを PING
することを許可されるトラステッド・ホストを指定します。その他のホストはす
べて、許可されないように指定します。この柔軟性によって、ファイアウォール
のセキュリティー・レベルをこまかくコントロールし、ロギング機能によって、
それぞれのルールごとに監査証跡を得ることができるようになります。
インストールが終了すると、ルール・ベースとは別に、デフォルトによって許可
されている多くのサービスが使用できます。これらのサービスは、Properties Setup
メニューにあります ( メインメニュー・バーから、Policy をクリックし、次に、
Properties を選択します )。
以下の 2 つのオプションだけを使用可能にすることをお勧めします。
第 3 章 Check Point FireWall-1
29
Accepting UDP Replies
Accepting UDP Replies オプションによって、両方向 UDP 通信用の応答が可能に
なります。これは、ファイアウォールが UDP 通信をトラックするために必要で
す。Check Point に UDP 通信の状態をトラックさせることをお勧めします。そう
しなければ状態が分からない接続の、通信状態が分かるようになります。他のオ
プションは、UDP 応答用の別のルールを作成するものですが、状態が分かると
いう利点はありません。
Accepting Outgoing Packets
Accepting Outgoing Packets オプションは、ファイアウォールから開始された、ま
たは、ファイアウォールからルーティングされた発信パケットを、ファイア
ウォールから出すために使用します。ここでの前提事項は、ファイアウォールか
ら来るパケットはすべて、トラステッドであるということです。
図 4 に、Accepting UDP Replies オプションと Accepting Outgoing Packets オプショ
ンがオンになっている Properties Setup メニューを示します。
図 4. Properties Setup の Security Policy タ ブ
セキュリティーを厳しくするために、他のオプションは使用不可にすることをお
勧めします。
Accept FireWall-1 Control Connections
30
AIX セキ ュ リ テ ィ ー ・ ツ ール
Accept FireWall-1 Control Connections オプションは、ファイアウォールの管理を
リモートで行う場合は、使用可能にする必要があります。管理コンソールとファ
イアウォール・デーモンが同じマシンにある場合は、このオプションを使用不可
にしてもかまいません。しかし、これらが別個のマシンにある場合は、このオプ
ションは使用可能にしなければなりません ( あるいは、同等のルールをルール・
ベースに作成しなけれななりません )。このフィーチャーを使用不可にすると、
ポート 256、257、および 258 へのアクセスができなくなります。
Enable Decryption on Accept
Enable Decryption on Accept オプションは、暗号化された着信パケットを、暗号
化ルールがない場合でも、暗号化解除します。このオプションは、暗号化を使用
しているのでない限り、使用不可にしてください。
Accept RIP
RIP (Routing Information Protocol) は、動的ルーティングを行うために、routed
デーモンによって使用されるプロトコルです。よく使用される別の動的ルーティ
ング・プロトコルは、OSPF (Open Shortest Path First) です。Accept RIP オプショ
ンは、RIP (OSPF でなく ) を使用しているときだけ使用可能にしてください。動
的ルーティングには不安定さがあるので、適切に構成されているという確信がな
い場合は、使用不可にしてください。
Accept Domain Name Queries (UDP)
Accept Domain Name Queries (UDP) オプションは、DNS 照会を使用可能または使
用不可にするために使用します。このオプションを使用可能にするよりも、DNS
照会を行うための別個のルールをつくることをお勧めします。別のルールをつく
ることにより、よりよいコントロールを行い、ログ機能をオンにすることができ
ます。
Accept Domain Name Download (TCP)
Accept Domain Name Download (TCP) オプションは、DNS ネーム・サーバー・ゾー
ン転送に関係します。このオプションで一括して使用可能にするのでなく、ゾー
ン転送を行う必要がある DNS サーバーには、ルールを個別に作成することをお
勧めします。
Accept ICMP
Accept ICMP オプションは、ICMP プロトコル (ping および traceroute など ) を
使用可能または使用不可にするために使用します。ICMP に対して、さまざまな
状態を調べるための検査を行う必要がある場合は、このオプションをオンにする
必要があります。( 状態検査について詳しくは、www.phoneboy.com/fw1 FAQ を参
照してください )。
ICMP タイプにはさまざまなタイプがあるので、必要なタイプ ( エコー要求 (8)、
エコー応答 (0)、宛先到達不能 (3)、時間超過 (11) など ) だけを許可してください。
他のタイプ、たとえば、タイム・スタンプ要求 (13)、アドレス・マスク要求 (17)、
第 3 章 Check Point FireWall-1
31
リダイレクト (5) などはインターネットから来た場合は危険な時があり、必要で
ない場合があります。ICMP タイプについて詳しくは、レッドブック TCP/IP
Tutorial and Technical Overview、GG24-3376 を参照してください。
構成する必要があるその他のオプションは、Properties Setup メニューの Services
タブの下にあります。4 つのオプションはすべて使用不可にすることをお勧めし
ます。
Enable FTP PORT Data Connections
FTP プロトコルは 2 つの接続、1 つは制御用 ( ポート 21)、もう 1 つはデータ用 (
ポート 20) を使用します。ルール・ベースの中の FTP サービスを使用可能にする
と、制御ポート (21) アクセスだけが使用可能になります。コマンド (ls、get、put
など ) を使用可能にしてデータ・ポート (20) で実行するには、Enable FTP PORT
Data Connections オプションを使用可能にする必要があります。
Enable FTP PASV Connections
Enable FTP PASV Connections オプションは、受動 FTP 用に使用されます。受動
FTP については、184 ページのセクション 8.3.7「ファイル転送プロトコル (ftp)」
を参照してこれが必要か否かを決めてください。インターネット上の多くの FTP
サーバーは、受動接続が必要です。したがって、FTP を許可する必要がある場合
は、このオプションを使用可能にしなければなりません。
Enable RSH/REXEC Reverse stderr Connections
Enable RSH/REXEC Reverse stderr Connections オプションは、rsh プロトコルと
rexec プロトコルを許可して、エラーのためのリバース接続をオープンするため
に使用します。rsh および rexec プロトコルを許可しない場合は、このオプショ
ンを使用不可にします (OS の強化について詳しくは、第 8 章 「AIX の保護」(139
ページ ) を参照してください )。
Enable RPC Control
Enable RPC Control オプションは、RPC 動的ポート割り振りに使用されるもので、
必要がない場合は使用不可にすることをお勧めします。RPC は、インターネッ
トにセキュリティー上の問題が多発しているときには、許可してはなりません
(OS の強化について詳しくは、第 8 章 「AIX の保護」(139 ページ ) を参照してく
ださい )。
図 5 (33 ページ ) に、Properties Setup メニューの Services タブを示します。ここ
では、Enable FTP PORT Data Connections、Enable FTP PASV Connections、Enable
RSH/REXEC Reverse stderr Connections、および、Enable RPC Control オプション
がオフになっています。
32
AIX セキ ュ リ テ ィ ー ・ ツ ール
図 5. Properties Setup の Services タ ブ
最後に、Properties Setup メニューの Log and Alert タブの下には、構成が必要なオ
プションが 1 つあります。
IP Options Drop Track オプションを、Alert または Log にセットしてください。デ
フォルトでは、FireWall-1 は、IP オプションのある IP パケットをドロップ ( 除去 )
します。これらのパケットは、アタッカーが頻繁に使用します。したがって、ア
タックに備えての早期警告メカニズムとして Alert を選択することをお勧めしま
す。
図 6 (34 ページ ) に、IP Options Drop Track が Alert にセットされた、Properties
Setup メニューの Log and Alert タブを示します。
第 3 章 Check Point FireWall-1
33
図 6. Properties Setup の Log and Alert タ ブ
3.3.4
役に立つルール ・ ベースの作成
ここで使用するルール・ベースの例 ( 図 7 (36 ページ ) に示す ) は、単純なセッ
トアップの例で、いくつかの原則を説明するためのものです。このルール・ベー
スには、上部から下部に順次に処理される 9 つのルールがあります。重要なもの
から、以下に説明します。
• ルール 9: セットアップする最初のルールは実際にはルール・セットの中の最
後のルールで、クリーンアップ・ルール と考えられます。このルールは、他
のどのルールによっても受け入れられなかったパケットをすべて除去するた
めに使用されます。Check Point FireWall-1 には、暗黙的な除去ルール があっ
て、これは、基本的には、クリーンアップ・ルールと同じことを行います。
クリーンアップ・ルールと暗黙的な除去ルールの違いは、クリーンアップ・
ルールでは、除去されるすべてのトラフィックのログ記録をとることができ
ることです。このロギングは、ネットワークの近くでスヌープしているアタッ
カーに関してユーザーにアラートを発することができるという意味で、重要
な早期警告装置の役割を果たします。
34
AIX セキ ュ リ テ ィ ー ・ ツ ール
• ルール 5: このルールは、ステルス・ルール と考えることができ、ファイア
ウォールを宛先としているすべての接続を除去します。このルールによって、
アタッカーがファイアウォールに接続すること、あるいは、ファイアウォー
ルを PING することを妨げることができます。このルールをログに記録し、パ
ケットを除去すべきですが、リジェクトは選択しないでください ( 選択する
と RST が発信元に送り返されます )。
• ルール 4: このルールは、過度なロギングが行われないようにするために、
セットアップします。NetBIOS (NBT) は、nbname、nbsession、および nbdatagram
サービス・トラフィックから成り立っていますが、これらはボリュームが大
きくなり、セキュリティー上のリスクもないので、除去する ( ログにも記録
しない ) ことができます。
• ルール 1: このルールを追加して、管理目的のために、管理クライアントがリ
モートでファイアウォールに接続できるようにします。ネットワークのデ
バッグ目的のために、このクライアントはファイアウォールを PING する ( ま
た、逆にファイアウォールがクライアントを PING する ) こともできます。ク
ライアントにファイアウォールを PING させるがその逆は望まない場合は、
エコー応答サービスを除去し、エコー要求サービスだけを許可することがで
きます。代わりに、すでに述べたように Accept ICMP オプションを使用可能
にできます ( これはお勧めできません )。
• ルール 6、7、8: これらのルールは、Web サーバーおよびメール・サーバー用
です。ユーザーの環境に合うように、これらのルールを変更する必要があり
ます。内部ネットワーク、さらに、DMZ およびインターネットに接続を持つ
コンパートメント化されたファイアウォールの場合、DMZ またはインター
ネットからのトラフィックが内部ネットワークに届かないようにするルール
を組み込む必要があります。そのようなトラフィックは、スプーフィングが
試みられていることを示している可能性があるので、この種の試みはすべて
ログに記録する必要があります。また、DMZ のセキュアの度合いは半分程度
であって、完全に信頼してはいけないことを思い出してください。ルール・
ベースでは、内部サーバーに接続する必要があるアプリケーションだけが、
そのような接続が許可されるようにしてください。
• ルール 2: このルールは、ファイアウォールが、インターネットにサービスを
提供する DNS サーバーでもある場合にセットアップします。ある種の悪用
が、UDP ポート 53 (DNS ポート ) を使用することが知られています。したがっ
て、このポートを使用可能にするのは、絶対に必要な場合だけにしてくださ
い。DNS サーバーがサービスを提供している対象が内部ユーザーだけである
場合は、送信元を DMZ または内部ネットワークに変更するか、さらによい
方法として、DNS サーバーをファイアウォールからはずしてください。この
ルールは、ステルス・ルールの前に来なければなりません。
• ルール 3: このルールは、ゾーン転送を行う必要があるセカンダリー DNS
サーバーがある場合にのみセットアップしてください。
図 7 (36 ページ ) に、実用的なルール・ベースを示します。
第 3 章 Check Point FireWall-1
35
図 7. 実用的なルール ・ ベース
Properties Setup メニューで選択したオプションは、すでに、ルール・ベースの一
部になっています。Properties Setup メニューにあるルールも含めて、ルールの全
リストを表示するには、View をクリックし、次に、Pseudo-rules を選択して
ください。図 7 に示すように、pseudo-rules には番号がなく、イエローで表示さ
れます。
3.3.5
接続の表示
現行の接続テーブルを表示するには、以下のように FireWall-1 コマンドを使用し
ます。
#fw tab -t connections -u
PERL スクリプトが、www.enteract.com/~lspitz/fwtable.txt から使用できます。
このスクリプトは、現行の接続テーブルを、使いやすいフォーマットでリストし
ています。
36
AIX セキ ュ リ テ ィ ー ・ ツ ール
# perl ./fwtable.pl
---- FW-1 CONNECTIONS TABLE ---
3.3.6
Src_IP
Src_Prt Dst_IP
Dst_Prt IP_prot Kbuf Type
Flags
9.12.0.50
9.12.0.50
9.12.0.50
9.12.0.50
9.12.2.168
32782
32780
846
784
1971
53
23
755
755
23
ffff0400
ffff0600
ffff0600
ffff0600
ffffff00
9.12.0.50
9.12.0.18
9.12.0.50
9.12.0.50
9.12.0.50
6
6
6
6
6
0
0
0
0
0
16385
16385
16385
16385
16385
Timeout
3176/3600
2440/3600
3433/3600
3484/3600
3600/3600
他の防御 メ カ ニズムの使用可能化
さまざまな方法で、Check Point FireWall-1 を、よりセキュアにすることができま
す。SYNDefender および IP スプーフィング保護を使用可能にすることをお勧め
しますが、Fast Mode TCP は使用しないでください。また、Intrusion Detection の
実装をお勧めします。以下のセクションで、各々について、説明します。
3.3.6.1
SYNDefender
SYN アタックは、DoS (Denial of Service) 攻撃のカテゴリーに入ります。SYN ア
タックの詳細に入る前に、標準的な TCP 接続がどうように確立されるかについ
てカバーする必要があります。
1. サーバーに接続しようとするクライアントは、SYN パケット (SYN ビットが
セットされた TCP パケット ) をサーバーに送る。
2. サーバーは、SYN/ACK パケットで応答する。
3. クライアントはサーバーから SYN/ACK パケットを受け取り、ACK パケット
を送り返す。
これは 3 方向ハンドシェークと呼ばれ、正常に終了すると、接続が確立されたと
見なされます。( 状態検査の場合、ファイアウォールは、このハンドシェーク・
プロセスを、アクティブな傍観者としてモニターします。)
SYN アタックは、以下のようにして起こります。
1. アタッカーは、到達不可能な偽造 IP アドレスを使用し、複数の SYN パケッ
トをサーバーに送る。
2. サーバーは、適切な SYN/ACK パケットで応答しますが、送信側の IP が到達
不可能なアドレスであるため、3 方向ハンドシェークが完了しない。
3. 接続は保留されたままになり、TCP がタイムアウトになるまでは保留はクリ
アされず (OS レベルで clear_partial_conns ネットワーク・オプションがセッ
第 3 章 Check Point FireWall-1
37
トされていない限り )、クライアントは、そのサービス・ポートのサーバーに
接続することを妨げられます。
SYN アタックのキーは、送信元の IP が到達不可能であることです。送信元の IP
に到達できるならば、SYN/ACK を送ったサーバーは、戻ってくる RST パケット
を受け取るはずです。これは、正当なクライアント (IP アドレスが詐称されたク
ライアント ) は、SYN/ACK パケットが、先に送った SYN パケットに対する応答
ではないことを検出し、RST パケットで応答してサーバー接続をリセットする
( これでアタックを負かす ) ように行動するからです。アタックの詳しい説明に
ついては、www.fc.net/phrack/files/p48/p48-13.html を参照してください。
Check Point FireWall-1 は、SYN アタックに対して、2 つの組み込み防御方法を
持っ て いま す。これ は、SYNDefender Gateway お よ び SYNDefender Passive
Gateway です。これは、Properties Setup メニューの SYNDefender タブでセットで
きます ( 図 8 (39 ページ ) を参照してください )。以下の説明では、サーバーは
ファイアウォールの後ろにあり、クライアントはファイアウォールの前にあると
想定してください。
SYNDefender Gateway Mode は以下のように作動します。
1. クライアントが SYN パケットをサーバーに送る。
2. サーバーが SYN/ACK パケットをクライアントに送り返す。
3. FireWall-1 は、クライアントに代わって、ACK パケットをサーバーに送る。
4. クライアントは ACK パケットをサーバーに送るが、パケットは FireWall-1 に
よって吸収される。
5. クライアントとサーバーの間の接続が確立される。
6. クライアントが、FireWall-1 ( 図 8) の中に構成されているタイムアウト期間以
内に ACK パケットを送らない ( イベント 4) 場合は、
ファイアウォールが RST
パケットをサーバーに送って接続を壊す。これが、SYN アタックに対してプ
ロテクトする、お勧めの方法です。
SYNDefender Passive SYN Gateway は以下のように作動します。
1. クライアントが SYN パケットをサーバーに送る。
2. サーバーが SYN/ACK パケットをクライアントに送り返すが、FireWall-1 に
よってインターセプトされる。
3. FireWall-1 が SYN/ACK パケットをクライアントに再送する。
4. クライアントが ACK パケットをサーバーに送り返す。
5. クライアントとサーバーの間の接続が確立される。
6. クライアントが、FireWall-1 ( 図 8 (39 ページ ) を参照 ) の中に構成されている
タイムアウト期間内に ACK パケットをサーバーに送らない ( イベント 4) 場
合は、ファイアウォールが RST パケットをサーバーに送って、保留中の接続
をクローズする。タイムアウト期間中は、サーバー上の保留接続テーブルに
38
AIX セキ ュ リ テ ィ ー ・ ツ ール
は、この接続がまだ入っています。言い換えれば、サーバーから見た場合、3
方向のハンドシェークは完了していないことになります。
図 8 に、Properties Setup 画面の SYNDefender タブを示します。
図 8. Properties Setup 画面の SYNDefender タ ブ
3.3.6.2
IP ス プ ーフ ィ ン グ から の保護
スプーフィング対抗策は、内部 IP アドレスから発信されたように見せる偽造パ
ケット ( スプーフされた IP パケット ) からプロテクトします。スプーフィング対
抗策は、パケットが正しいネットワーク・インターフェースを通って送受される
ようにします。たとえば、内部ネットワークにある送信元 IP アドレスを持った
パケットは、内部インターフェース上のネットワーク・カードからファイア
ウォールに入ってくるようにしなければなりません。内部ネットワークにある送
信元 IP アドレスを持ったパケットがインターネットからファイアウォールに
入ってくる場合は、ユーザーのネットワークをアタックしようとしているアタッ
カーからのスプーフされたパケットである可能性が高いことになります。
ユーザーは、どのネットワークにはどのインターフェースから到達できるかを
知っておく必要があります。次に、各アドレス・グループを、該当するネット
ワーク・インターフェースに関連付けなければなりません。以下のステップを実
第 3 章 Check Point FireWall-1
39
行して、IP スプーフィング対抗策を FireWall-1 にセットアップしてください ( 図
9 (40 ページ ) を参照 )。
1. Network Objects から firewall を選択する。
2. Interfaces タブを選択する。
3. インターフェースを選択する ( このケースでは、外部インターフェースの tr0
インターフェース )。
4. Spoof tracking から、Log または Alert を選択する。
5. Valid Addresses から、ネットワークの構成に応じて、図 9 に示されているよ
うに、This net、Others、または、Specific を選択する。( 以下に、詳細を
説明します。)
図 9. IP ス プ ー フ ィ ン グのセ ッ ト ア ッ プ
Valid Addresses の選択によって、選択したインターフェースにはどのアドレスの
存在が許可されるかを指定します。つまり、スプーフされたとは考えられない
IP アドレスを指定します。選択するオプションは、ネットワーク・アドレス変
換 (NAT) をファイアウォールで使用しているかどうかによって異なります。
40
AIX セキ ュ リ テ ィ ー ・ ツ ール
NAT を使用していない場合は、表 1 に示されているように、Valid Addresses を選
択してください。
表 1. NAT を使用 し てい ない場合の Valid Addresses
Interface
Valid addresses
External (facing Internet)
Others
Internal
This net
NAT を使用している場合は、表 2 に示されているように、Valid Addresses を選択
してください。
表 2. NAT を使用 し てい る場合の Valid Addresses
Interface
Valid addresses
External (facing Internet)
Others
Internal
Specific
NAT および内部インターフェースのケースでは、Specific にアドレスのグループ
を指定する必要があります。内部ネットワーク上にあるサーバーの場合は、内部
ネットワークには IP アドレスを使用し、そのネットワーク上のサーバーには
NAT IP アドレスを使用してください。たとえば、図 10 (42 ページ ) に、Web サー
バー 1 ( 公開サーバー 1)、Web サーバー 2 ( 公開サーバー 2)、および、メール・
サーバー ( 公開サーバー 3) 用に使用可能になっている、NAT を使用した IP ス
プーフィングが示されています。 実 IP アドレス ( サーバー上のネットワーク・
カードに構成されている ) と NAT IP アドレス ( 公開されている IP アドレス ) が、
図にリストされています。NAT を使用する場合、Specific に指定するグループは、
内部ネットワーク・アドレス (172.16.30.0) および公開 IP アドレス (203.12.12.1、
203.12.12.2、および 203.12.12.3) から成ります。
第 3 章 Check Point FireWall-1
41
External Network
Internal Network
Public Server 1
172.16.30.1
Public Server 2
172.16.30.2
Public Server 3
172.16.30.3
Public Server 4
172.16.30.4
Firewall
Router to ISP
Real IP
NAT IP
Web Server 1
Web Server 2
172.16.30.1
172.16.30.2
203.12.12.1
203.12.12.2
Mail Server
172.16.30.3
203.12.12.3
図 10. NAT を使用 し てい る IP ス プ ー フ ィ ン グ
3.3.6.3
高速モ ード TCP
高速スループットを得るには、高速モード TCP オプションが使用できます。こ
れを使用することはお勧めしません。高速モードは、すべての non-SYN/NO-ACK
パケットがファイアウォールを通ることによって実現されます。ファイアウォー
ルは、そのようなパケットはすべて、確立済みの TCP 接続の一部であると想定
して、それ以上の確認を行いません。ここでは、これらのパケットが確立済みの
TCP 接続の一部でないならば、これらのパケットがシーケンスどおりでないの
で、宛先のサーバーが除去するはずであるという前提を設けています。SYN パ
ケットは、依然として、ルール・ベースを使用してチェックされますが、正常な
接続であっても接続テーブルに記録されることはありません (状態検査が除去さ
れています )。これによってファイアウォールのセキュリティー認識が下がって
いるので、このオプションの使用はお勧めしません。
高速モードの設定を調べるには、メインメニュー・バーから Manage を選択し、
次に、Services の下で TCP を選択します ( 図 11 (43 ページ ) に示します )。高速
モードが適用されるのは、TCP プロトコルだけであることに注意してください。
42
AIX セキ ュ リ テ ィ ー ・ ツ ール
図 11. 高速モ ー ド TCP
3.3.6.4
Check Point FireWall-1 で の侵入の検出
Check Point FireWall-1 で侵入検出をインプリメントする方法についての優れた
論文が www.enteract.com/~lspitz/intrusion.htm にあります。ここでは、これ以
上述べません。
3.4
Check Point FireWall-1 が使用するポー ト の リ ス ト
Check Point FireWall-1 は、デフォルトで使用するポートのリストを持っていま
す。ユーザーが使用していないポートがある場合は、使用不可にできます
(/etc/inetd.conf ファイルで通常の TCP/IP ポートを使用不可にする方法と同様
に行えます )。
認証に関連するサービスを使用不可にするには、$FWDIR/conf/fwauthd.conf ファ
イル、または、$FWDIR/conf/fwopsec.conf ファイルの該当する項目を変更してく
ださい。後者のファイルは、SAM サービスおよび LEA サービスだけに適用され
ます ( 後述 )。ポート 256、257、および 258 は、29 ページのセクション 3.3.3
「FireWall-1 デフォルト構成の安全性」で説明したように、Properties Setup メ
ニューで Accept FireWall-1 Control Connections オプションを使用してコントロー
ルすることができます。
第 3 章 Check Point FireWall-1
43
システム上でアクティブになっているポートをすべて表示するには、次のコマン
ドを使用します。
# netstat -af inet
ある特定のポートにどのアプリケーションがバインドされているか確信がない
場合は、代わりに、lsof ツールを使用してみてください ( 詳しくは、103 ページ
のセクション 6.5「リスト・オープン・ファイル (lsof)」を参照してください )。こ
のツールは、とくに、どのアプリケーションがどのポートにバインドされている
かを知らせてくれます。この情報から、ユーザーは、アクティブのままにしてお
くポートと使用不可にするポートを決めることができます。
ファイアウォールが使用するポートを以下にリストします。( 注 : この情報は、
www.phoneboy.com/fw1/ Web サイトからそのまま直接転記したものです。)
• TCP Port 256 は、以下の 3 つの重要なことに使用されます。
a. 2 つの FireWall-1 管理コンソール間の、FWZ および SKIP 暗号化を使用
した CA キーおよび DH キーの交換。
b. SecuRemote build 4005 以前のプロダクトはこのポートを使用して、
FireWall-1 管理コンソールからネットワーク・トポロジーと暗号鍵を取
り出します。
c. ポリシーをインストールするとき、管理コンソールはこのポートを使用
して、そのポリシーをリモート・ファイアウォールに送ります。
• TCP Port 257 は、ログを管理コンソールに送るために、リモート・ファイ
アウォール・モジュールによって使用されます。
• TCP Port 258 は、fwpolicy リモート GUI によって使用されます。
• TCP Port 259 は、クライアント認証のために使用されます。
• UDP Port 259 は、FWZ 暗号化を使用して、暗号化されたセッションを管理
するために使用されます (FireWall-1 VPN への SecuRemote および
FireWall-1)。
• UDP Port 260 および UDP Port 161 は、Check Point FireWall-1 が提供する
SNMP デーモンによって使用されます。
• TCP Port 264 は、Secure Client (SecuRemote) build 4100 以降のプロダクトに
よって、FireWall-1 管理コンソールからネットワーク・トポロジーおよび暗号
鍵を取り出すために使用されます。
• TCP Port 265 は、4.1SP1 objects.C にしたがって、"Check Point VPN-1 Public
Key Transfer Protocol" というラベルがついています。これは、多くの場合、公
開キーを他のホストと交換するために FireWall-1 によって使用されます。
• UDP Port 500 は、ファイアウォール同士の間、または、ファイアウォール
と Secure Client を実行しているホストとの間で、ISAKMP キーの交換のため
に使用されます。
• TCP Port 900 は、FireWall-1 の HTTP クライアント認証メカニズムによって
使用されます。
44
AIX セキ ュ リ テ ィ ー ・ ツ ール
• 1024 よ り 上の TCP ポー ト は、一般的に、アクティブな任意のセキュリ
ティー・サーバーです。これらのサーバーによって使用される実際のポート
は、さまざまです。
• TCP Port 18181 は、CVP ( アンチウィルス・スキャン用の Content Vectoring
Protocol) のために使用されます。.
• TCP Port 18182 は、UFP (WebSense などのための URL Filtering Protocol) 用
に使用されます。
• TCP Port 18183 は、SAM ( 侵入を検出するための Suspicious Activity
Monitoring) のために使用されます。
• TCP Port 18184 は、Log Export API (LEA) のために使用されます。
第 3 章 Check Point FireWall-1
45
46
AIX セキ ュ リ テ ィ ー ・ ツ ール
第 4 章 IBM Secureway Firewall
IBM Secureway Firewall は、10 年以上にわたって、IBM をプロテクトしてきまし
た。これは、3 つのファイアウォール・アーキテクチャー、すなわち、フィル
ター操作、プロキシー、および、サーキット・レベルのハイブリッドで、組み込
み Web プロキシー・サーバーおよび Socks サーバーが含まれます。1999 年に、
Infoworld は、これをプロダクト - オブ - ザ - イヤーに選びました。
www.infoworld.com/supplements/99poy_win/99poy_s.html
IBM Secureway Firewall に関するオンライン情報は下記の Web サイトにありま
す。
•http://www-3.ibm.com/security/
•http://www-4.ibm.com/software/security/firewall/
4.1
IBM Secureway Firewall の フ ィ ーチ ャ ー
IBM Secureway Firewall は、ユーザーのニーズと環境に応じて、単独でも組み合
わせてでも使用できる、一組のツールで構成されています。以下に、概要を述べ
ます。
IBM Secureway Firewall は、Network Security Auditor (NSA) という名前のツールと
一緒に出荷されます。NSA は、ネットワーク ( ファイアウォールを含む ) 上のす
べてのホストをスキャンして、セキュリティー上の弱点 ( アタックされ易さ ) が
あるかを予見できるようにするために使用できます。NSA は、侵入に発展する
前に、問題になりそうな現象を識別するのに適したツールです。NSA ツールだ
けでも、IBM Secureway Firewall を購入する十分な理由になります。NSA のイン
ストールと構成については、49 ページのセクション 4.4「NetworkSecurity Auditor
(NSA)」でカバーします。
IBM Secureway Firewall は、Web プロキシー・サーバーが組み込まれて出荷され
ます (Web Traffic Express の拡張版を使用します )。プロキシー・サーバーには、
業界標準のレポート作成ユーティリティーの追加サポート、HTTP 1.1 の永続
Web セッションのサポート、および、URL ブロッキングのサポートが含まれま
す。これは、その他のソフトウェアがなくても、ファイアウォール自体に、HTTP
プロキシーの全機能性が含まれていることを意味します。
IBM Secureway Firewall には、IPSec 標準を基にした Virtual Private Network (VPN)
のサポートが含まれています。VPN を使用すると、ユーザーは、インターネッ
ト上のリモート・ロケーション間にセキュア・トンネルを作成することが可能に
なります。これによって、高価な専用回線を使用する必要性が減ります。
IBM Secureway Firewall は、セキュア認証に使用される、2- ユーザー用ライセン
ス Security Dynamics ACE Server (SecurID Protected) と一緒に出荷されます。
© Copyright IBM Corp. 2002
47
ファイアウォールには、E-mail、および、特定の構成可能なイベントを扱うよう
に調整したページャー通知の標準サポートがあります。このフィーチャーを使用
すると、管理者は、挙動不審なアクティビティーについて通知を受け、アタック
の初期段階でアクションをとることができるようになります。
集中管理機能を使用すると、複数のファイアウォールの管理が単純化できます。リ
アルタイムのパフォーマンス統計情報およびログ・モニターも提供されています。
ファイアウォールをインストールすると、オペレーティング・システムが 自動
的に 強化されます。アタックされ易さを減らすために、重要でないユーザーと
グループは除去され、必須でないサービスは使用不可にされます。ファイア
ウォールは、望ましくない E-mail をブロックし、メール・スプーフィングを妨
げるために、高等な E-mail 防御策を提供します。
TCP および UDP アプリケーション用の Socks バージョン 5 (V5) サポートが組み
込まれています。多対 1 および 1 対 1 構成を使用するネットワーク・アドレス変
換 (NAT) サポートも組み込まれています。
4.2
IBM Secureway Firewall 用の補完 ソ フ ト ウ ェ ア
Check Point FireWall-1 と同様に、IBM Secureway Firewall にも、これを補足する一
連のプロダクトがあります。IBM Secureway Network Dispatcher は、拡張容易性、
ロード・バランシング、および、ファイアウォールのフェールオーバーの目的で
使用することができます。ユーザーはファイアウォールを使用して接続するの
で、ネットワーク・ディスパッチャーを使用し、負荷を複数のファイアウォール
に透可的に分割して、パフォーマンスを高めることができます。詳細情報は、下
記の Web サイトにあります。
www-4.ibm.com/software/network/dispatcher/
もう 1 つの補完プロダクトは、MIMEsweeper という、SMTP、HTTP、FTP コンテ
ント・セキュリティーおよびマネージメント・ソリューションです。MIMEsweeper
は、アプリケーション・コンテントを検査して、悪意のあるコードやウィルスに
対して保護します。ユーザーはとくに意識しなくてよく、分析のためのロギング
をとることもできます。詳細情報は、下記の Web サイトにあります。
www.mimesweeper.integralis.com
もう 1 つの便利なプロダクトは Telemate.Net で、これは、大きくて抽象的なファ
イアウォール・ログ・ファイルを分かりやすいビジネス・レポートに変換するた
めに使用されます。ユーザーは、このレポートをカスタマイズして、E-mail で配
布し た り、HTML に変 換 して イ ント ラ ネッ ト で配 布 する こ とが で きま す。
Telemate.Net は、Windows 95 ま た は Windows NT で 実行 さ れ、IBM Secureway
Firewall ログ・ファイルを収集します。ファイアウォールは、定期的に、このロ
グをファイアウォールの後ろにある Telemate.Net サーバーにファイル転送しま
す。詳細情報は、下記の Web サイトにあります。
48
AIX セキ ュ リ テ ィ ー ・ ツ ール
www.telemate.net
4.3
フ ァ イ アウ ォ ールの強化
IBM Secureway Firewall のインストール手順には強化についてのセクションが含
まれています。強化は、ファイアウォールのインストール中に行われる自動手順
です。これは、OS の強化に手動ステップが必要な Check Point FireWall-1 と対照
的です。この自動強化がユーザーのニーズを満たすかを確認するために、レッド
ブッ ク A Secure Way to Protect Your Network: IBM SecureWay Firewall for AIX
V4.1、SG24-5855 のセクション 2.3.2 を参照して、IBM Secureway Firewall が強化
のためにとるステップの全リストを調べてください。また、本書の 第 8 章「AIX
の保護」(139 ページ ) には、オペレーティング・システムを強化するためにユー
ザーが使用できる手作業手順の詳細な説明があります。
4.4
NetworkSecurity Auditor (NSA)
NSA は、サーバー (AIX およびその他の ) を監査して、実行中のサービスにセ
キュリティー上の弱点 ( アタックされやすい点 ) があるかどうかを見つけること
ができる、大変優れたツールです。NSA が環境をスキャンした結果からは、ア
タッカーがネットワークをどのように見ているかについての洞察が得られます。
スキャンの結果を検討して、アタッカーが攻撃してこないように、セキュリ
ティー・ホールをふさいでください。
NSA ツールは基本的にはポート・スキャナーですが、スキャンするポートの内
部にアタックされやすい点がないかを探し出す追加テストが組み込まれていま
す。1 つの nsa コマンドで全出力が得られ、使いやすいツールになっています。
NSA について詳しくは、以下の Web サイトを参照してください。
http://www-4.ibm.com/software/security/firewall/about/
4.4.1
NSA のイ ン ス ト ール
必要な NSA ファイル・セットは、nsaauditor.base です。NSA のバージョンは、
購入する IBM Secureway Firewall のバージョンに応じて異なります。NSA バー
ジョン 2.1.2 は、IBM Secureway Firewall バージョン 4.1 と一緒に出荷されます。
NSA をインストールするには、以下のことを実行します。
TYPE ( 入力 )
smitty installp
SELECT ( 選択 )
ALL Available Software からインストールし、更新します。
TYPE ( 入力 )
/dev/cd0 [CD ROM ドライブを選択するには ESC+4 また
は F4 ]
TYPE ( 入力 )
リストするには F4 または ESC+4
第 4 章 IBM Secureway Firewall
49
SELECT ( 選択 )
nsaauditor.base を見つける ( ファイル・セットを選択するに
は F7 または ESC+7)
PRESS ( 押す )
インストールするには Enter を 3 回押します。
以下に示すように、ファイル・セットが正しくインストールされたことを確かめ
てください。
# lppchk -v
# lslpp -l nsauditor.base
Fileset
Level State
Description
---------------------------------------------------------------------------Path: /usr/lib/objrepos
nsauditor.base
2.1.2.0 COMMITTED Network Security Auditor
4.4.2
NSA の使用
さまざまなスキャン・メソッドが、/etc/nsa/scannerdefs ファイルに定義されて
います。スキャンのタイプには、default、baseline、medium、standard、fulltcp、
complete、および、firewall があります。ポート・スキャンとテストの範囲は、選
択するタイプによって異なります。各タイプの詳細は、scannerdefs ファイルお
よび付録 A. にあります。firewall タイプが最も広範囲なスキャンで、本書で使用
されているタイプです。レッドブック A Secure Way to Protect Your Network:IBM
SecureWay Firewall for AIX V4.1、SG24-5855、も NSA ツールについての良い資料
です。
Important
一部の会社では、スキャンの実行を厳しく制限しています。スキャンを実行
する前に、必要な許可を得ているか確認してください。また、スキャンの結
果破損が発生する可能性があるので、スキャンの前にバックアップをとって、
安全を期す必要があります。
NSA のドキュメンテーションは /usr/lpp/nsauditor/doc/ ディレクトリーに
入っています。ライセンスを取得するまでは、スキャンは利用不可になっていま
す。ライセンスは、取得したならば、パスワードで保護されている
/etc/nsa/license.nsa ファイルに入れなければなりません。
サーバーをスキャンするには、以下のコマンドを使用します。
# nsa scan -d /tmp/<output_file> --scantype=firewall <host_to_scan>
スキャンの結果を表示するには、以下のコマンドを使用します。
# nsa report -d /tmp/<output_file>
レポートは HTML フォーマットでも出力されるので、Web ブラウザーで表示で
きます。
50
AIX セキ ュ リ テ ィ ー ・ ツ ール
4.4.3
NSA 出力の解釈
NSA スキャンは、かなりの量の出力を生成します。レポートは、以下のカテゴ
リーに分けられます。
• 構成の設定値
• 潜在的な弱点
• 危険なサービス
• 情報の漏洩
それぞれのカテゴリーごとに、潜在的なセキュリティー上の抜け穴の説明が提供
されます。この説明は、抜け穴を修正し、セキュリティー・リスクを最小にしよ
うとしている管理者には、大変役に立ちます。
実行されているサービスのリストを使用して、これらのサービスが必要かどうか
を決めることができます。デフォルト・インストールを使用すると、一部のサー
ビス ( たとえば、SNMP) がデフォルトによって使用可能になります。たしかに
必要だと分かっているサービスだけをオンにし、その他のサービスをオフにする
ことをお勧めします。必要とされるサービスについては、それらのサービスが最
もセキュアな構成と、最新のセキュリティー・パッチ・レベルになっていること
を確認してください。詳しくは、第 8 章 「AIX の保護」(139 ページ ) を参照して
ください。
問題は、たとえば、新しいアクティブ・ポートを追加する新規アプリケーション
をある人がインストールしたときに、そのようなサービスがサーバーで実行され
ていることを管理者が知らないことがときどきあることです。どのような場合で
も、セキュリティー・レベルが変更されていないことを確認し、変更があった場
合にはアラートが出されるようするために、定期的にサーバーを監査することを
お勧めします。
以下の画面には、SP 複合システムの制御ワークステーションで実行された NSA
スキャンのサンプルが表示されています。
第 4 章 IBM Secureway Firewall
51
Network Services Audit Report
Network Services Audit Report
Report Date: Friday, September 01, 2000 17:24
o Name: sp5cw0
Operating System: UNIX IBM AIX 4.3
Audit Date: `Friday, September 01, 2000 16:59'
Auditor: `root@arthur'
Security Audit Summary
o
o
o
o
Configuration Settings - 7
Potential Vulnerabilities - 2
Dangerous Servers and Services - 6
Information Leaks - 9
Security Audit Breakdown
Configuration Settings - 7
o Access Control Configuration - 5
o Network File Sharing Configuration - 3
Potential Vulnerabilities - 2
o NFS server vulnerabilities - 2
Dangerous Servers and Services - 6
o Dangerous Network Servers - 6
o Dangerous Sun RPC servers - 2
o Other - 4
Information Leaks - 9
o Information About User Accounts - 3
o Information About System Resources - 6
Security Audit Findings
o Configuration Settings
o Access Control Configuration
o Network File Sharing Configuration
o `/spdata/sys1/install/pssplpp' is shared to everyone via
NFS.
o `/usr/sys/inst.images' is shared to everyone via NFS.
o `/spdata/sys1/install/aix433/lppsource' is shared to
everyone via NFS.
o SNMP at UDP port 161 read community string is `public'.
o [177/UDP] XDMCP server accepts all management requests.
o [SMTP at port 25] EXPN command is enabled.
o [SMTP at port 25] VRFY command is enabled.
52
AIX セキ ュ リ テ ィ ー ・ ツ ール
o Dangerous Servers and Services
o Dangerous Network Servers
o TFTP is active on UDP port 69.
o TFTP server on port 69 serves file `.'.
o rshell is active on TCP port 514.
o rlogin is active on TCP port 513.
o Dangerous Sun RPC servers
o pcnfs (Sun RPC program 150001) is active on UDP port
32784.
o rstatd (Sun RPC program 100001) is active on UDP port
32780.
o Potential Vulnerabilities
o NFS server vulnerabilities
o [32795/UDP] NFS mountd allows mount requests to come from
arbitrary port.
o [32774/TCP] NFS mountd allows mount requests to come from
arbitrary port.
o Information Leaks
o Information About User Accounts
o rusers (Sun RPC program 100002) is active on UDP port 32781.
o [SMTP at port 25] EXPN command is enabled.
o [SMTP at port 25] VRFY command is enabled.
o Information About System Resources
o portmapper (Sun RPC program 100000) is active on UDP port
111.
o SNMP is active on UDP port 161.
o nfsmountd (Sun RPC program 100005) is active on UDP port
32795.
o nfsmountd (Sun RPC program 100005) is active on TCP port
32774.
o portmapper (Sun RPC program 100000) is active on TCP port
111.
o rstatd (Sun RPC program 100001) is active on UDP port 32780.
o Active Network Servers
o SSH is active on TCP port 22.
o X is active on TCP port 6000.
o SMTP is active on TCP port 25.
o telnet is active on TCP port 23.
o FTP is active on TCP port 21.
o rshell is active on TCP port 514.
o rexec is active on TCP port 512.
o rlogin is active on TCP port 513.
o SNMP is active on UDP port 161.
o TFTP is active on UDP port 69.
o XDMCP is active on UDP port 177.
o status (Sun RPC program 100024) is active on TCP port 746.
o aix4_rstatd (Sun RPC program 200001) is active on TCP port
755.
o calendar (Sun RPC program 100068) is active on TCP port 784.
o NFS (Sun RPC program 100003) is active on TCP port 2049.
o unknown (Sun RPC program 200006) is active on TCP port 2049.
o ttdbserver (Sun RPC program 100083) is active on TCP port
32769.
o nlockmgr (Sun RPC program 100021) is active on TCP port 32775.
o nfsmountd (Sun RPC program 100005) is active on TCP port 32774.
第 4 章 IBM Secureway Firewall
53
o portmapper (Sun RPC program 100000) is active on TCP port 111.
o unknown (Sun RPC program 300667) is active on TCP port 32770.
o portmapper (Sun RPC program 100000) is active on UDP port 111.
o calendar (Sun RPC program 100068) is active on UDP port 32785.
o status (Sun RPC program 100024) is active on UDP port 746.
o aix4_rstatd (Sun RPC program 200001) is active on UDP port
755.
o nlockmgr (Sun RPC program 100021) is active on UDP port 32818.
o NFS (Sun RPC program 100003) is active on UDP port 2049.
o nfsmountd (Sun RPC program 100005) is active on UDP port 32795.
o autofs (Sun RPC program 100099) is active on UDP port 32839.
o spray (Sun RPC program 100012) is active on UDP port 32783.
o pcnfs (Sun RPC program 150001) is active on UDP port 32784.
o rwall (Sun RPC program 100008) is active on UDP port 32782.
o rusers (Sun RPC program 100002) is active on UDP port 32781.
o rstatd (Sun RPC program 100001) is active on UDP port 32780.
o Available Network Services
o Unauthenticated File Service
o TFTP server on port 69 serves file `.'.
o Shared File Systems
o `/spdata/sys1/install/pssplpp' is shared to everyone via
NFS.
o `/usr/sys/inst.images' is shared to everyone via NFS.
o `/spdata/sys1/install/aix433/lppsource' is shared to
everyone via NFS.
o User Login Services
o SSH is active on TCP port 22.
o XDMCP is active on UDP port 177.
o telnet is active on TCP port 23.
o FTP is active on TCP port 21.
o rshell is active on TCP port 514.
o rexec is active on TCP port 512.
o rlogin is active on TCP port 513.
o Operating system is `UNIX IBM AIX 4.3'.
o Server Version Strings
o [22/TCP] SSH server version is `Protocol 1.99; Server
OpenSSH_2.1.1'.
o [25/TCP] SMTP server version is `Sendmail AIX4.3/8.9.3'.
o [21/TCP] FTP server version is `4.1 Sun Jul 9 18:28:14 CDT
2000'.
o SNMP at UDP port 161 read community string is `public'.
o Network Transport Information
o IP Transport Information
o Host responded to ICMP Echo Request.
o Port Scan Information
o TCP Port Scan Data
o The following TCP ports were scanned:
21-23, 25, 109-111, 139, 143, 512-514, 746, 755, 784, 2049,
6000, 32769-32770, 32774-32775, 37661, 49690
o The following TCP ports were visible:
21-23, 25, 109-111, 139, 143, 512-514, 746, 755, 784, 2049,
54
AIX セキ ュ リ テ ィ ー ・ ツ ール
6000, 32769-32770, 32774-32775, 37661, 49690
o The following TCP ports were active:
21-23, 25, 111, 512-514, 746, 755, 784, 2049, 6000,
32769-32770, 32774-32775, 49690
o The servers on these TCP ports could not be identified:
49690
o The servers on these TCP ports terminated immediately:
None
o UDP Port Scan Data
o The following UDP ports were scanned:
69, 111, 137, 161, 177, 746, 755, 2049, 32780-32785, 32795,
32818, 32839
o The following UDP ports were visible:
69, 111, 137, 161, 177, 746, 755, 2049, 32780-32785, 32795,
32818, 32839
o The following UDP ports were active:
69, 111, 161, 177, 746, 755, 2049, 32780-32785, 32795,
32818, 32839
o The following UDP ports did not respond:
None
o The servers on these UDP ports could not be identified:
None
o Sun RPC Registrations
o Sun RPC program 100000 (portmapper) is registered on TCP
port 111.
o Sun RPC program 100083 (ttdbserver) is registered on TCP
port 32769.
o Sun RPC program 300667 (unknown) is registered on TCP port
32770.
o Sun RPC program 100003 (NFS) is registered on TCP port 2049.
o Sun RPC program 200006 (unknown) is registered on TCP port
2049.
o Sun RPC program 100005 (nfsmount) is registered on TCP port
32774.
o Sun RPC program 100024 (status) is registered on TCP port
746.
o Sun RPC program 200001 (aix4_rstatd) is registered on TCP
port 755.
o Sun RPC program 100021 (nlockmgr) is registered on TCP port
32775.
o Sun RPC program 1342177279 (unknown) is registered on TCP
port 37661.
o Sun RPC program 1342177280 (unknown) is registered on TCP
port 49690.
o Sun RPC program 100068 (calendar) is registered on TCP port
784.
o Sun RPC program 100000 (portmapper) is registered on UDP
port 111.
o Sun RPC program 100001 (rstatd) is registered on UDP port
32780.
o Sun RPC program 100002 (rusers) is registered on UDP port
32781.
o Sun RPC program 100008 (rwall) is registered on UDP port
32782.
第 4 章 IBM Secureway Firewall
55
o Sun RPC program 100012 (spray) is registered on UDP port
32783.
o Sun RPC program 150001 (pcnfs) is registered on UDP port
32784.
o Sun RPC program 100068 (calendar) is registered on UDP port
32785.
o Sun RPC program 100003 (NFS) is registered on UDP port 2049.
o Sun RPC program 200006 (unknown) is registered on UDP port
2049.
o Sun RPC program 100005 (nfsmount) is registered on UDP port
32795.
o Sun RPC program 100024 (status) is registered on UDP port
746.
o Sun RPC program 200001 (aix4_rstatd) is registered on UDP
port 755.
o Sun RPC program 100021 (nlockmgr) is registered on UDP port
32818.
o Sun RPC program 100099 (autofs) is registered on UDP port
32839.
o SNMP Variables Retrieved
o SNMP/161 variable sysDescr value is `RISC System/6000
Architecture\nMachine Type: 0x0100 Processor id:
000509306700\nBase Operating System Runtime AIX version:
04.03.0003.0000\nTCP/IP Client Support version:
04.03.0003.0000'.
o SNMP/161 variable sysObjectID value is
`1.3.6.1.4.1.2.3.1.2.1.1.3'.
o SNMP/161 variable sysName value is `sp5en0'.
o Active Users
o rusers/32781 shows the following users logged on:
root
root
root
root
root
root
root
root
root
root
<<<<<<<<<<-
tot75
:0.0
tot75
:0.0
:0.0
o Server Banners
o [22/TCP] SSH server banner SSH-1.99-OpenSSH_2.1.1
o [25/TCP] SMTP server banner 220 sp5en0.msc.itso.ibm.com ESMTP Sendmail AIX4.3/8.9.3/8.9.3;
Fri, 1 Sep 2000 16:59:24 -0400
56
AIX セキ ュ リ テ ィ ー ・ ツ ール
o [23/TCP] telnet server banner telnet (sp5en0)
AIX Version 4
(C) Copyrights by IBM and by others 1982, 1996.
login:
o [21/TCP] FTP server banner 220 sp5en0 FTP server (Version 4.1 Sun Jul 9 18:28:14 CDT 2000) ready.
第 4 章 IBM Secureway Firewall
57
58
AIX セキ ュ リ テ ィ ー ・ ツ ール
第 5 章 リ モー ト ・ ア ク セスのセキ ュ ア
この章では、リモート・アクセスのセキュリティー手段のインプリメント方法に
ついて説明します。リモート・アクセスは、多くの場合、UNIX 環境の中にあり
ます。時が経つにつれて、セキュリティーの問題が多くなり、セキュア・リモー
ト・アクセスを実装することが必要になってきました。ゴールは、2 つのホスト
間の通信チャネル ( とくにリモート・ホストへのアクセスがインターネットを使
用する場合) が、常に専用チャネルとして使用できるようにすることにあります。
セキュア・シェル (ssh) は、2 つのホストの間にセキュア・チャネルを提供する
ために使用されるプロトコルです。このプロトコルは、データ保全性を保つとと
もに、暗号化と認証も行います。暗号化、認証、およびデータ保全性は、すべ
て、セキュリティーを確保するために必要なものであり、この章で詳しく説明し
ます。
inetd デーモンの制御のもとで行われるある種のサービス (ftp または telnet など )
も、プロテクトする必要があります。TCP ラッパーが、このプロテクションを
提供するツールです。プロテクトされているサービスに対する要求はすべて、ま
ず TCP ラッパーを通り、アクセス・コントロール・リストに照らして調べられ
ます。トラステッド・ホストからの要求 ( アクセス・コントロール・リストに指
定されている要求 ) だけが、プロテクトされたサービスにアクセスすることを許
可されます。TCP ラッパーは、プロテクトされたサービスに対して試みられた
すべての接続をログに記録するよう構成することもできます。
5.1
セキ ュ ア ・ シ ェ ル (ssh)
SSH は、リモート・コンピューター上で、セキュア・ログインまたはコマンド
のセキュアな実行を許可するクライアント / サーバー・アプリケーションです。
ssh デーモンは、通常、ポート 22 で listen します。
セキュリティーを確実なものにするには、以下のことが必要です。
• ユーザーが識別情報に一致する本人であることを確認する。
• 通信チャネルをプロテクトして、ネットワークで盗聴しているものが、通信
内容を読めないようにする。
• 送られた情報が、転送中に変更されないようにする。
SSH は、厳しく認証、暗号化、およびデータ保全性を行うことによって、上記
の要件を達成できるプロトコルです。
SSH は、従来の BSD “r” コマンド (rlogin、rsh、rcp、など ) を置き換えることを
目的としています。これらのコマンドにはさまざまなセキュリティー上の弱点が
ありました。たとえば、認証が要求されると、パスワードは暗号化されずに、送
信されます。多くのケースでは、パスワードがバイパスされることもあります。
この原因は、よく使われている構成では、これらのコマンドを使用して、ホスト
© Copyright IBM Corp. 2002
59
名または IP アドレス (.rhosts または /etc/hosts.equiv ファイルに入っている )
を基にして認証を行うようにしているからです。リモート・ホスト上のこれらの
ファイルのどちらかにリストされているホストにアクセス権を持っているユー
ザーは、そのホストに自動的にアクセスが許可されます。もっと悪いシナリオ
は、アタッカーが、これらのファイルのどちらかにリストされているホストから
正当な IP アドレスを盗み、盗んだ IP アドレスを使用して偽造ホストを構成する
ことです。したがって、ホスト偽造は、IP アドレスが盗まれたホストと同じア
クセスをターゲット・ホストに対して持つことができます。これが root ユーザー
であった場合は、破滅的な結果になります。
SSH は BSD “r” コマンドと同じ機能性を提供しますが、セキュリティーが強化さ
れています。SSH はセットアップするときに柔軟性があります。SSH は、認証
のために、公開鍵と秘密鍵のペアでも .rhosts ファイルのどちらでもサポートし、
さまざまな暗号化およびデータ保全性のスキームを持っています。これらについ
ては、すぐ後で説明します。
SSH は、IP スプーフィング ( リモート・ホストが、内部トラステッド・ホストの
IP アドレスを奪う ) に対してプロテクトします。SSH は、DNS スプーフィング
( アタッカーが DNS エントリーを捏造する ) に対してもプロテクトします。プロ
テクションは、秘密鍵と公開鍵のペアによって行われます。クライアントがサー
バーへの SSH 接続をオープンできるようにするためには、クライアントの公開
鍵はサーバー上になければなりません。この接続は、クライアント上にあるクラ
イアントの秘密鍵とサーバー上にあるクライアントの公開鍵の組み合わせを使
用して認証されます。偽ホストがクライアントの IP アドレスまたは DNS 名を
持っていると称しても、クライアントの秘密鍵にもアクセスできなければ SSH
アクセスを確立することはできません。( 当然のことですが、秘密鍵は厳重にプ
ロテクトすることが必要であり、暗号化していないネットワーク接続を通して送
信してはなりません。)
また、SSH は、パスワードの盗聴、X 認証データ・アタックの listen、および、
中間ホストによるデータ操作に対しても保護します。暗号化チャネルによって、
この保護が確実になります。
SSH は、対話式と非対話式の 2 つのモードをサポートします。対話式モードで
は、SSH は、リモート・サーバーでセッションを確立するのに使用されます。非
対話式では、SSH は、リモート・サーバーでコマンドを実行し、その結果をロー
カル・クライアントに戻すために使用されます。
SSH についての情報が、以下の Web サイトにあります。
www.onsight.com/faq/ssh/ssh-faq.html
60
AIX セキ ュ リ テ ィ ー ・ ツ ール
重要
SSH をセキュリティー環境のキー・コンポーネントとして使用する計画があ
る場合は、Tripwire などのツールと結合してください。よく起こる油断ならな
いアタックは、SSH セッション内で使用されるアカウント ID およびパスワー
ドのすべてを、ログに記録するように SSH クライアント実行可能プログラム
をパッチするものです。Tripwire などのツールを備えていなければ、このア
タックが起こったことを発見するのは極めて困難なことです。
5.1.1
SSH の入手
本書では、SSH の 2 つのバージョンをカバーしています。
1. SSH Communications Security にあるオリジナル・バージョン。 本書では、
SSH.Com として参照します。
2. OpenBSD プロジェクトによって作成されたバージョン (OpenSSH)。
SSH.Com は、ユーザーが C コンパイラーにアクセスできることが必要です。
OpenSSH は installp フォーマットで使用可能です。OpenSSH と SSH.Com では、
実装の方法が、とくに、構成ファイルが、若干異なります。2 つのバージョンの
間の互換性については、76 ページのセクション 5.1.8「SSH2 OpenSSH と SSH.Com
との間の SSH2 のインターオペラビリティー」でカバーします。
SSH.Com は、さまざまなソースから入手できます。メイン・サイトは、
ftp://ftp.ssh.com/pub/ssh/ です。ミラー・サイトのリストは、
http://www.ssh.com/ssh/download.html にあります。
OpenSSH のホーム・ページは http://www.openssh.com です。installp バージョン
は、http://www-frec.bull.fr から入手できます。
SSH には、SSH1 と SSH2 という 2 つのプロトコル・バージョンがあります。
SSH.Com および OpenSSH は、SSH1 および SSH2 の両方をサポートします。両
方のバージョンとも、本書でカバーします。2 つのプロトコルの違いについて詳
しくは、62 ページのセクション 5.1.2「SSH1 と SSH2 の間の違い」を参照してく
ださい。
商用バージョンは、SSH Communication Security、F-Secure、および、Van Dyke
Software から入手できます。
• SSH Communication からの SSH は、http://www.ssh.com/ssh から入手できま
す。商法バージョンには、Windows、Linux、Solaris、HP-UX、および、AIX
用のクライアントが入っています。UNIX バージョンには、最大 2 つまでの
同時接続を許可する限定サーバーが入っています。フル・サーバー・バージョ
ンも UNIX 用に使用できます。
第 5 章 リ モー ト ・ ア ク セ スのセキ ュ ア
61
• F-Secure SSH は、http://www.f-secure.com/products/ssh/ から入手できます。
SSH のクライアント・バージョンとサーバー・バージョンの両方が使用可能
であり、SSH1 プロトコルおよび SSH2 プロトコルがサポートされています。
これは、UNIX、Windows、および、Macintosh の各オペレーティング・シス
テムで実行できます。
• Van Dyke Software からの SecureCRT は、http://www.vandyke.com/products/
securecrt/ から入手できます。この SSH クライアントは Windows プラット
フォームで実行でき、SSH1 プロトコルおよび SSH2 プロトコルをサポートし
ます。また、SecureFX という、SSH2 プロトコルを使用して FTP トンネル操
作を行うファイル転送プロダクトも使用できます。
5.1.2
SSH1 と SSH2 の間の違い
SSH1 と SSH2 は、完全に異なるプロトコルです。理論は別にして実際的には、
SSH2 は、SSH1 を完全に書き直したものです。SSH2 の大きな違いは、以下のも
のです。
• SSH1 よりも、セキュリティー、パフォーマンス、移植性が優れている。
• 暗号化と認証用に、DSA およびその他の公開鍵アルゴリズムをサポートす
る。(SSH1 は RSA をサポートします。)
• Socks およびセキュア・ファイル転送プロトコル (sftp) 用の標準サポートを備
えている。
新開発作業のほとんどは SSH2 用です。しかし、現時点では、SSH1 は、SSH2 よ
りも多くのプラットフォームや認証スキーム (Kerberos、AFS、.rhosts) をサポー
トしています。また、開発されてからの時間が SSH2 よりも多く経っているため
に、大きなインストール・ベースを持っています。このため、今後しばらくの
間、SSH1 の重要性はなくならないと思われます。
5.1.3
SSH の重要な概念
SSH は、認証、暗号化、および、データ保全性を提供します。これらの概念を
理解しておくことは、セキュリティー・ソリューション全体の中で SSH がどの
ような役割をするのかを理解する上で重要です。
5.1.3.1
認証
認証は、ユーザー個人を識別し、この個人が、識別情報の記載内容に一致する本
人であることを確認するプロセスです。認証が重要なのは、通常、アクセス権が
ユーザー ID を基にして認可され、したがって、特定のユーザー ID を使用して
ログインする「人」が本当にその「人」であることを確認する必要があるからです。
AIX では、最もよく使われる認証手段はパスワードを使用することです。telnet、
ftp、および、rsh などのプロトコルでは、パスワードを、暗号化しないままで、
ネットワークを使用して、送信します。これは、ネットワークを盗聴すれば、パ
スワードを容易に盗めることを意味します。また、AIX では、パスワードの長さ
が実際上 8 文字に制限されています (8 番目の後の文字は無視されます )。
62
AIX セキ ュ リ テ ィ ー ・ ツ ール
SSH では、認証作業中に使用されるすべてのトラフィックを暗号化することに
よって、セキュリティーを向上させます。パスワードが暗号化されずに転送され
ることはありません。より有効な利点は、認証を行うために、従来の UNIX ユー
ザー ID およびパスワードのスキームではなく、公開鍵と秘密鍵のペアを使用す
ることです。この認証形式は、従来の方式にくらべると、はるかにブレークしに
くいものです。前述のように、SSH では、その他の認証方式もサポートしてい
ます。
公開鍵および秘密鍵の組み合わせによる認証を理解するには、まず、暗号のタイ
プについて理解する必要があります。暗号アルゴリズムには、対称と非対称とい
う 2 つのタイプがあります。
対称鍵暗号では、データを暗号化するにも暗号化解除するにも同じ鍵を使用しま
す。対称鍵暗号化は非対称鍵暗号化よりも古い方法です。この方式の利点は、
データの暗号化も暗号化解除も高速で行えることです。しかし、欠点は、鍵の管
理にあります。鍵を送信側から受信側に安全に配布するには、どのようにしたら
配布できるか?これが、対称鍵暗号化の制限であるため、非対称鍵暗号化の開発
が必要になりました。
非対称鍵暗号化では、鍵は、公開鍵と秘密鍵のペアで存在します。これらの 2 つ
の鍵は同時に生成され、ペアを形成します。秘密鍵を公開鍵から導出すること
は、算術的に関連しているとはいえ非常に困難なタスクで、通常の方法よりもリ
ソースをかけなければできません。鍵の長さが長くなれば、より難しくなりま
す。鍵の長さを長くすれば、よりよいセキュリティーが得られます。
SSH を使用するには、公開鍵と秘密鍵のペアを持たなければなりません。1 つの
プログラムで両方の鍵を生成します。公開鍵は、ユーザーがアクセスする必要が
ある SSH サーバーにコピーします。秘密鍵はローカル SSH クライアントに置い
たままにし、安全に保持しなければなりません。鍵が生成されると、ユーザー
は、秘密鍵をパスフレーズを使用してプロテクトする機会を与えられます。良い
パスフレーズとは、10 ~ 30 文字の長さで、推測するのが難しく、これを生成し
た人だけに隠された意味があるものです。パスフレーズは、標準の UNIX パス
ワードよりも長さが長いので、よりセキュアであることを憶えておいてくださ
い。
SSH がどのように働くかの例を以下に示します。
• ユーザー A は、SSH を介して、SSH サーバー B に接続する必要がある。
• ユーザー A は、まず、公開鍵を SSH サーバー B にコピーする。
• 次に、ユーザー A は、SSH を介して、SSH Server B へのログインを要求する。
• SSH サーバー B は、公開鍵のセットをチェックして、ユーザー A の公開鍵が
あるか探す ( そして、見つける )。
第 5 章 リ モー ト ・ ア ク セ スのセキ ュ ア
63
• SSH サーバー B は、ユーザー A に対してユーザー確認のための質問を行い、
一致する秘密鍵を持っているかを調べる。秘密鍵はパスフレーズによってプ
ロテクトされているので、ユーザー A だけが使用できます。
• SSH サーバー B によるユーザー確認のための質問が正常に終了すると、アク
セスが認可される。
SSH は厳重な暗号を使用します。これは、正しい鍵またはパスフレーズなしに
は、暗号化されたデータをデコードすることが実行不可能であることを意味しま
す。SSH には、認証用に、RSA および DSA という 2 つの異なる、互換性のない
暗号アルゴリズムが組み込まれています。SSH1 は RSA 鍵を使用し、SSH2 は
DSA 鍵を使用します。
使用されているバージョンおよびそのバージョンの構成に応じて、SSH は以下
の方式によって認証を行います。
• パスワード (UNIX では /etc/passwd または /etc/shadow)
• 公開鍵 (SSH1 では RSA、SSH2 では DSA)
• Kerberos (SSH1 のみ )
• ホスト・ベース (SSH1 では .rhosts または /etc/hosts.equiv、SSH2 では公開鍵 )
方式は、実装によって異なります。ユーザーの実装のドキュメンテーションを参
照して、すべての方式が使用可能かどうかを調べてください。公開鍵による方式
が最もよく使用されている方式で、本書では、この方式だけをカバーします。
5.1.3.2
暗号化
暗号化は、データを、意図している受信者以外のだれにも解読されてはならない
秘密のコードに変換することです。暗号化を使用すると、だれかがネットワーク
で盗聴していても、データは解読できなくなります。このようにして、セキュ
ア・チャネルが確立されてインターネット上でも使用できるようになり、実質的
に専用ネットワークが設けられるので、高価な専用回線の必要性が減ります。
暗号化のために使用される暗号または暗号アルゴリズムは、実行される SSH の
バージョンによって異なります。SSH1 は、DES、3DES、IDEA、または、Blowfish
を使用し、SSH2 は、3DES、Blowfish、Twofish、Arcfour、または、Cast128 を使
用します。これらの方式を使用して、データを転送するためのセキュアで暗号化
されたチャネルが提供されます。これらの方式にはそれぞれ長所と短所がありま
すが、同じ機能性を提供するという点では差はありません。従来の対称鍵暗号が
使用されて通信チャネルが暗号化されることに注意してください。
しかし、これは、暗号化されたものは決して盗聴者に復号化されないということ
を意味していません。暗号化を強度にすれば、より時間とリソース ( コンピュー
ター・パワー ) がかかるので、ブレークすることが実行不可能になるということ
を意味しているだけです。
64
AIX セキ ュ リ テ ィ ー ・ ツ ール
5.1.3.3
データ 保全性
データ保全性によって、受け取られたデータが送信データに一致し、データがい
たずらされて変更されていないという確信が得られます。SSH は、データのい
たずらそのものに対してプロテクトするわけではありません。むしろ、意図的で
あれ偶然であれ、データのいたずらのようなアクティビティーが発生したとき
に、それをユーザーに知らせる役割を果たすだけです。SSH の場合は、知らせ
のないのはいい知らせです。データが汚されていなければ、SSH は黙っています。
SSH がどのようにこの判定を行うかを理解するには、ハッシュ機能についての
理解が必要になります。ハッシュ機能の本質は、算術的です。ハッシュ機能は、
任意の長さの入力を受け入れて、固定長の出力になるように計算を行います ( 出
力の長さは特定のハッシュ・アルゴリズムによって異なります )。入力データに
変更があれば、まったく異なった出力が出ます ( 依然として長さは同じです )。
送信側のマシンが入力データについてハッシュを計算し、データとハッシュの両
方を受信側のマシンに送ります。受信側のマシンがそのデータについてのハッ
シュを再計算し、それを受け取ったハッシュと比較します。データがいたずらさ
れていなければ、両方のハッシュは等しいはずです。両方のハッシュが等しくな
ければ、SSH はユーザーにその旨の警告を出します。
5.1.4
AIX への OpenSSH のイ ン ス ト ール
SSH の freeware.openssh.rte バージョンのインストール方法について、以下に示し
ます。このバージョンの SSH は、SSH1 および SSH2 をサポートします。これは、
ダウンロード用に、installp フォーマットで、http://www-frec.bull.fr で使用可
能になっています。このバージョンは、freeware.egd.rte、freeware.zlib.rte、およ
び、freeware.openssl.rte という前提条件ファイル・セットを持っています。本書
の作成中に使用したファイル・セットのバージョンを、表 3 に示します。
表 3. Freeware OpenSSH フ ァ イ ル ・ セ ッ ト
フ ァ イル ・ セ ッ ト
バージ ョ ン
freeware.openssh.rte
2.1.1.4
freeware.egd.rte
0.8.0.0
freeware.openssl.rte
0.9.5.1
freeware.zlib.rte
1.1.3.2
ソフトウェア配布をダウンロードしたらば、それがいたずらされていないことを
確認してください。これを実行する方法について詳しくは、136 ページのセク
ション 7.4.1「ダウンロードの保全性の確認」を参照してください。
第 5 章 リ モー ト ・ ア ク セ スのセキ ュ ア
65
#ls -l
total 7152
-rwx------rwx------rwx------rwx------
1
1
1
1
root
root
root
root
system
system
system
system
104740
532553
2878322
137279
Aug
Aug
Aug
Aug
18
18
18
18
17:40
17:40
17:40
17:40
egd-0_8_0_0.exe
openssh-2.1.1.4.exe
openssl-0.9.5.1.exe
zlib-1_1_3_2.exe
まず、freeware.egd.rte ファイル・セットをインストールする必要があります。こ
れは、SSH の残りのインストールが正常に行われるために存在していなければ
ならないローカル・ソケット /dev/entropy をこのファイル・セットが作成するか
らです。egd-0_8_0_0.exe をインフレートして、installp フォーマット egd-0.8.0.0.bff
file を入手します。
# chmod u+x ./egd-0_8_0_0.exe
# ./egd-0_8_0_0.exe
UnZipSFX 5.32 of 3 November 1997, by Info-ZIP ([email protected]).
inflating: egd-0.8.0.0.bff
#
SMIT を使用するか、コマンド行から、ファイル・セットをインストールします。
以下の installp コマンドが、前提条件のファイル・セットを適用し、コミット
し、自動的にインストールします。
#installp -acgX -d . freeware.egd.rte
Installation Summary
-------------------Name
Level
Part
Event
Result
------------------------------------------------------------------------------freeware.egd.rte
0.8.0.0
USR
COMMITT
SUCCESS
ここで、ローカル・ソケット・ファイルを作成し、ロードする必要があります。
インストール・プロセスによって必要なすべての DSA 鍵が自動的に作成される
ようにするために、このファイルは、OpenSSH の残りのインストールを実行す
る前に用意されていなければなりません。このファイルが用意されていない場合
は、この作成プロセスは、メッセージ “Couldn't connect to EGD
socket"/dev/entropy": Connection refused” を出して失敗し、後で、手動で行
わなければならなくなります。
以下のコマンドを実行して、/dev/entropy ローカル・ソケット・ファイルを作成し
ます。
#/usr/bin/perl -w /usr/opt/perl5/bin/egd.pl /dev/entropy
66
AIX セキ ュ リ テ ィ ー ・ ツ ール
注
このコマンドは、freeware.egd.rte ファイル・セットのインストールによって
/etc/rc.tcpip にも追加されました。
他の 3 つのファイル・セットをインフレートして、ファイルが正しくインフレー
トされているかを確認してください。openssh-2.1.1.4.bff、openssl-0.9.5.1.bff、お
よび、zlib-1.1.3.2.bff の各ファイル・セットを持つ必要があります。拡張子 .asc
がついているファイルは、136 ページのセクション 7.4.1「ダウンロードの保全性
の確認」で述べるように、PGP シグニチャーです。
#rm .toc
#ls -l
total 29192
-rwxr--r--rwx------rw-r--r--rw-r--r--rwx------rw-r--r--rw-r--r--rwx------rw-r--r--rw-r--r--rwx------
1
1
1
1
1
1
1
1
1
1
1
root
root
root
root
root
root
root
root
root
root
root
system
system
system
system
system
system
system
system
system
system
system
153600
104740
1433600
2599
532553
9420800
2599
2878322
256000
2571
137279
Jul
Aug
Aug
Aug
Aug
Jul
Aug
Aug
Mar
Mar
Aug
06
18
03
03
18
28
01
18
20
20
18
03:39
17:40
07:51
07:58
17:40
10:39
04:26
17:40
12:13
12:14
17:40
egd-0.8.0.0.bff
egd-0_8_0_0.exe
openssh-2.1.1.4.bff
openssh-2.1.1.4.bff.asc
openssh-2.1.1.4.exe
openssl-0.9.5.1.bff
openssl-0.9.5.1.bff.asc
openssl-0.9.5.1.exe
zlib-1.1.3.2.bff
zlib-1.1.3.2.bff.asc
zlib-1_1_3_2.exe
以下の installp コマンドを使用して、freeware.openssh.rte ファイル・セットをイ
ンストールします。これによって、freeware.openssl.rte ファイル・セットおよび
freeware.zlib.rte ファイル・セットも、自動的にインストールされます (-g フラグ
のために )。
# installp -acgX -d . freeware.openssh.rte
Installation Summary
-------------------Name
Level
Part
Event
Result
------------------------------------------------------------------------------freeware.openssl.rte
0.9.5.1
USR
APPLY
SUCCESS
freeware.openssl.rte
0.9.5.1
ROOT
APPLY
SUCCESS
freeware.zlib.rte
1.1.3.2
USR
APPLY
SUCCESS
freeware.openssh.rte
2.1.1.4
USR
APPLY
SUCCESS
freeware.openssh.rte
2.1.1.4
ROOT
APPLY
SUCCESS
すべてのファイル・セットが正しくインストールされていることを確認してくだ
さい。
第 5 章 リ モー ト ・ ア ク セ スのセキ ュ ア
67
# lppchk -v
...
# lslpp -l | grep freeware.openssh.rte
...
#
インストールが終了した後で、環境変数 MANPATH=/usr/local/man および
PATH=/usr/local/bin を /etc/profile に組み込んで、マニュアル・ページおよび
ツールへのアクセスを単純化する必要があります。
ssh に加えて、OpenSSH が scp ツールと一緒に出荷されます。これは、機能的に
は rcp と同様ですが、ssh が備えている追加されたセキュリティーを持っていま
す。また、これは、ftp の置き換えとしても使用できます。残念ですが、現行バー
ジョンの OpenSSH は sftp ツール ( これは、SSH Communications Security からの
SSH の SSH2 バージョンの中で入手できます ) と一緒に出荷されません。この
ツールは、OpenSSH の将来バージョンで追加される予定です。確認するには、以
下のコマンドを実行します。
#lslpp -f freeware.openssh.rte | grep sftp
5.1.5
SSH1 を使用 し た OpenSSH
デフォルトでは、OpenSSH のインストールによって SSH デーモンが SSH1 に
セットされ、1 つのエントリーが /etc/rc.tcpip に追加されて、SSH デーモンがシ
ステム始動時に自動的に開始されます。ユーザーが OpenSS1 サーバーに接続す
るときには、以下の 4 つの認証方式がサポートされています。
1. 第一の方式は、リモート・マシン上の、/etc/hosts.equiv ( または /etc/shosts.equiv)
ファイル、または .rhosts ( または .shosts) ファイルを基にしています。この方
式は、従来の BSD rsh および rlogin コマンドが内在的に持っているセキュリ
ティー上の弱点 ( たとえば、暗号化しないパスワード ) を引き続き持ってい
るので、使用不可にする必要があります。デフォルトでは、この認証方式は、
/etc/openssh/sshd_config ファイルで使用不可になっています
(RhostsAuthentication no)。
2. 第二の方式は、第一の方式に RSA ベースのホスト認証を組み合わせたものを
基にしています。これは、hosts.equiv/shosts.equiv/.rhosts/.shosts ファイルに加
えて、サーバーが、/etc/ssh/known_hosts ファイルおよび
$HOME/.ssh/known_hosts ファイルにあるクライアントのホスト・キーを検査
することを意味します。この方式も依然として
hosts.equiv/shosts.equiv/.rhosts/.shosts ファイルを使用することが必要なので、
セキュリティーの弱点を持っています。デフォルトでは、この認証方式は、
/etc/openssh/sshd_config ファイルで使用可能になっています
(RhostsRSAAuthentication yes)。この方式のセットアップ方法は、第一の方式と
同じです。known_hosts ファイルは、SSH サーバーによって自動的に更新され
ます。接続が新規に追加されるか変更されるときには必ず、SSH サーバーに
よってプロンプトが出されます。
68
AIX セキ ュ リ テ ィ ー ・ ツ ール
3. 第三の方式は、通常の telnet でのログインのとおりに、ユーザー・パスワー
ドを基にしています。相違点は、この認証方式では、データの交換に暗号化
を使用しているので、telnet、ftp、rsh、および、rlogin などの標準のプロトコ
ルで行われているようにパスワードが暗号化されずに送られることはありま
せん。この方式が使用されるのは、他のすべての認証方式が失敗した場合で
す。
4. 第四の方式は、RSA 認証を基にしています。SSH サーバー上の
$HOME/.ssh/authorized_keys ファイルには、そのアカウントの下でログインす
ることを許可されているリモート・クライアントの公開鍵のコピーが入って
います。ユーザーが鍵のペアを生成すると、公開鍵は $HOME/.ssh/identity.pub
ファイルに保管され、秘密鍵は $HOME/.ssh/identity ファイルに保管されます。
次に、ユーザーは、公開鍵を SSH サーバーにコピーし、authorized_keys とい
う新しい名前の下の $HOME/.ssh/ ディレクトリーにコピーします。デフォル
トでは、この認証方式は、/etc/openssh/sshd_config ファイルで使用可能になっ
ています (RSAAuthentication yes)。これがお勧めする方式であり、本書で詳細
にカバーしている方式です。
SSH1 の構成と 使用
デフォルトでは、SSH デーモンはポート 22 で listen します。実行しているのが
SSH のどちらのバージョン (SSH1 または SSH2) であるかを知るには、Telnet で
sshd ポート (22) にあるローカル・ホスト (0) にログインします。SSH バージョン
は 1.99 であることに注意してください。.
# tn 0 22
Trying...
Connected to 0.
Escape character is '^T'.
SSH-1.99-OpenSSH_2.1.1
SSH をインストールすると、SSH デーモンがシステム始動時に自動的に開始さ
れるように、/etc/rc.openssh が /etc/inittab に追加されます。
手動で SSH デーモンを開始するには ( 構成ファイルとして
/etc/openssh/sshd_config を使用し、RSA ホスト・キー・ファイルとして
/etc/openssh/ssh_host_key を使用して )、次のようにします。
#/usr/local/bin/opensshd -f /etc/openssh/sshd_config -h
/etc/openssh/ssh_host_key
手動で SSH デーモンを停止するには、次のようにします。
#kill `cat /var/openssh/sshd.pid`
デーモンをリフレッシュするには、次のようにします。
#kill -1 `cat /var/openssh/sshd.pid`
第 5 章 リ モー ト ・ ア ク セ スのセキ ュ ア
69
デーモンがリフレッシュされると、構成の変更が有効になります。
公開鍵と秘密鍵のペアを生成するには、次のようにします。
#ssh-keygen
デフォルトでは、これによって、それぞれの長さが 1024 ビットの SSH1 RSA 鍵
ペアが生成されます。“-b 2048” フラグを使用すると、それぞれの長さが 2048
ビットの SSH1 RSA 鍵ペアを生成することもできます。
作成プロセス中に、パスフレーズを入力するように求められます。良いパスフ
レーズとは、10 ~ 30 文字の長さで、ゲスするのが難しく、これを生成した人に
だけ隠れた意味があるものです。
sp5en05 /home/khorck # ssh-keygen -b 2048
Generating RSA keys:
.......................................................................................
.................................oooO.oooO
Key generation complete.
Enter file in which to save the key (/home/khorck/.ssh/identity):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/khorck/.ssh/identity.
Your public key has been saved in /home/khorck/.ssh/identity.pub.
The key fingerprint is:
8e:f3:19:84:25:91:49:d3:fa:47:de:77:29:f0:15:5e khorck@sp5en05.
デフォルトでは、秘密鍵は $HOME/.ssh/identity ファイルに保管され、公開鍵は
SSH クライアント上の $HOME/.ssh/identity.pub ファイルに保管されます。鍵を保
管する場所に別の名前を指定することができますが、対応するクライアント構成
ファイルに、IdentifyFile <filename> オプション行を追加することも必要です。
システム全体に関係するオプションは /etc/openssh/ssh_config ファイルに指定し、
各ユーザーに関係するオプションは、各ユーザーのホーム・ディレクトリーの中
の $HOME/.ssh/config ファイルに指定します。
次に、公開鍵 ($HOME/.ssh/identity.pub) を SSH サーバーに送る必要があります。
( ユーザーは、まず、公開鍵を名前変更して、その鍵が生成された元のユーザー
とホストを識別する必要があります。) 公開鍵は、SSH サーバー上の
$HOME/.ssh/authorized_keys ファイルに (名前変更または付加を介して) 保管する
必要があります。この実装においては、authorized_keys ファイルには、鍵が保管
されている場所のファイル名ではなく、実際の鍵そのものを保管します。
$HOME/.rhosts、$HOME/.shosts、/etc/hosts.equiv、または、/etc/shosts.equiv の使用
はお勧めしません。これらのファイルの使用については、これ以上説明しませ
ん。使用について詳しくは、該当する SSH マニュアル・ページを参照してくだ
さい。
パスフレーズまたはパスワードの入力を求めるプロンプトを出さずに自動リ
モート・ログインが必要なアプリケーション (HACMP および PSSP など ) の場合
70
AIX セキ ュ リ テ ィ ー ・ ツ ール
は、パスフレーズのプロテクションなしで (-N ‘’ フラグを使用 ) 鍵を生成してく
ださい。
#ssh-keygen -b 2048 -N ‘’
この方式を使用するには、秘密鍵ファイルがセキュアに保持されるようにするた
めの保護策が必要です。PGP などのソフトウェア (127 ページのセクション 7.3.3
「PGP の使用」を参照 ) を使用して、鍵が使用されていないときには暗号化して
保護する必要があります。ただし、鍵は、暗号化解除してから使用するようにし
てください。
5.1.6
SSH2 を使用 し た OpenSSH
SSH2 を使用して OpenSSH サーバーに接続が行われようとするときには、2 つの
認証方式が試みられます。最初に試みられる方式は、公開鍵による認証 です。こ
の方式が失敗すると、2 番目のの方式、パスワードによる認証 が試みられます。
復習になりますが、公開鍵認証では非対称スキームを使用し、各ユーザーは、1
つは公開鍵、もう 1 つは秘密鍵 と呼ばれる鍵のペア を持ちます。公開鍵は公開
されているので、自由に配布することができます。秘密鍵は専用で、セキュアに
保持しなければなりません。これらの鍵は互いに算術的に関係していますが、秘
密鍵を公開鍵から計算によって導出することは実行不可能です。長い鍵 ( より多
くのビット ) は、暗号化の観点からみれば厳重で見破るのは困難になりますが、
このような利点が無償で得られるわけではありません。つまり、鍵を長くすれ
ば、パフォーマンスが犠牲になります。最初に鍵を作成するときにも、その鍵を
データの暗号化と暗号化解除に使うときにも、数値計算がはるかに複雑になりま
す。
SSH2 では、SSH1 で使用される RSA 認証ではなく、DSA 認証を使用します。ク
ライアントは秘密鍵 (SSH2 の場合は DSA 鍵 ) を使用してセッション ID に署名
し、出力を SSH サーバーに送ります。データを受け取ると、SSH サーバーは、
一致する公開鍵があるかを確認します。一致する鍵があり、シグニチャーが正し
ければ、アクセスが認可されます。
クライアントの秘密鍵は、クライアント・マシン上の $HOME/.ssh/id_dsa ファイ
ルにあり、クライアントの公開鍵は、サーバー・マシン上の
$HOME/.ssh/authorized_keys ファイルにあります。
公開鍵による認証が失敗した場合は、パスワードによる認証が試行されます。こ
の方式は通常のパスワード認証と同様ですが、パスワードが暗号化され、暗号化
されずに送信されるのではない点が違います。現時点では、この SSH 実装で、
Kerberos 認証または S/Key 認証はサポートされていません。
認証が行われると、データのセキュリティーを保持するための暗号化スキームの
いずれかを使用することができます。使用可能なスキームには、3DES ( デフォ
ルト )、Blowfish、CAST128、または、Arcfour があります。セキュリティーをさ
第 5 章 リ モー ト ・ ア ク セ スのセキ ュ ア
71
らに強化するには、hmac-sha1 または hmac-md5 を使用してデータ保全性を確実
にすることができます。
認証プロセスの一部として、クライアントが接続しようとしている先のホストが
前に接続されたことがあるかどうかを、SSH が自動的に調べます。過去に接続
されたことがあるホストは思い出されます。DSA ホスト・キーは、クライアン
ト上の $HOME/.ssh/known_hosts2 ファイルに保管されています。いままで接続し
たことがないホスト (known_hosts2 ファイルに DSA ホスト・キーがない ) に接続
する場合は、ユーザーはその旨通知され、接続を受け入れるかリジェクトするか
を尋ねられます。受け入れると、DSA ホスト・キーが自動的にユーザーの
known_hosts2 ファイルに追加され、将来の接続で再使用されます。
SSH2 の構成と 使用
SSH2 を実行するには、クライアントおよびサーバーが、このバージョンのプロ
トコル用に構成されていなければなりません。デフォルトにより、OpenSSH ク
ライアントは、SSH1 と SSH2 の両方をサポートするように構成されています。し
かし、デフォルトでは、OpenSSH サーバー・デーモン (sshd) は、SSH1 用にだけ
構成されています。. OpenSSH サーバー・デーモン (sshd) を SSH2 用に再構成す
るには、以下のステップを実行してください。
1. /etc/openssh/ssh_host_key ファイルおよび /etc/openssh/ssh_host_key.pub ファイ
ルを除去するか名前変更する。
2. /etc/openssh/sshd_config の中の ‘Protocol 2,1’ をアンコメントする。
3. SSH サーバーを再始動する。
デフォルトでは、SSH デーモンはポート 22 で listen します。実行しているのが
SSH のどちらのバージョン (SSH1 または SSH2) であるかを知るには、Telnet で
sshd ポート (22) にあるローカル・ホスト (0) にログインします。SSH バージョン
は現在 2.0 であることに注意してください。.
# tn 0 22
Trying...
Connected to 0.
Escape character is '^T'.
ssh-2.0-OpenSSH_2.1.1
SSH のインストールにより、システム始動時に SSH デーモンが自動的に開始す
るように、/etc/rc.openssh が /etc/inittab に追加されます。
SSH デーモンを開始するための、rc.openssh 内にあるデフォルト・コマンドを以
下に示します。
#/usr/local/bin/opensshd -f /etc/openssh/sshd_config -h
/etc/openssh/ssh_host_key
72
AIX セキ ュ リ テ ィ ー ・ ツ ール
-h フラグは、RSA ホスト・キー・ファイルを指定するために使用されます。SSH2
用に再構成を行うときにこのファイルを除去したので、この指定は失敗します。
この失敗により、代わりに ssh_host_dsa_key ファイルを見つけるために SSH デー
モンが起動され、ファイルが見つかると、SSH1 ではなく SSH2 サポートを使用
して デ ーモ ン が開 始 さ れま す。コマ ン ドの 後 に -Q フ ラ グを 付 加し て、
/etc/openssh/ssh_host_key ファイルがないために生成されるメッセージを抑止す
ることができます。
SSH2 サポートを使用して手動で SSH デーモンを開始する ( 構成ファイルとして
/etc/openssh/sshd_config を使用し、/etc/openssh/ssh_host_key ファイルがないため
に出される警告メッセージを抑止する ) には、次のようにします。
#/usr/local/bin/opensshd -f /etc/openssh/sshd_config -Q
手動で SSH デーモンを停止するには、次のようにします。
#kill `cat /var/openssh/sshd.pid`
デーモンをリフレッシュするには、次のようにします。
#kill -1 `cat /var/openssh/sshd.pid`
デーモンがリフレッシュされると、構成の変更が有効になります。
SSH2 は RSA 鍵ではなく DSA 鍵を使用するので、ユーザーは、SSH2 用に、次
のように新規の公開鍵と秘密鍵のペアを生成する必要があります。
#ssh-keygen -d
-d フラグが追加されていることに注意してください。このフラグによって、
ssh-keygen は、RSA 鍵ではなく、DSA 鍵を生成するよう指示されます。デフォ
ルトでは、これによって、それぞれの長さが 1024 ビットの SSH2 DSA 鍵ペアが
生成されます。“-b 2048” フラグを使用することによってそれぞれの長さが 2048
ビットの SSH2 DSA 鍵ペアを、また、“-b 3072” フラグを使用することによって
3072 ビットの SSH2 DSA 鍵ペアを生成することもできます。
作成プロセス中に、パスフレーズを入力するように求められます。良いパスフ
レーズとは、10 ~ 30 文字の長さで、ゲスするのが難しく、これを生成した人に
だけ隠れた意味があるものです。
第 5 章 リ モー ト ・ ア ク セ スのセキ ュ ア
73
$/usr/local/bin/ssh-keygen -d
Generating DSA parameter and key.
Enter file in which to save the key (/home/ali/.ssh/id_dsa):
Created directory '/home/ali/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/ali/.ssh/id_dsa.
Your public key has been saved in /home/ali/.ssh/id_dsa.pub.
The key fingerprint is:
96:66:f5:5e:83:83:51:8e:f5:90:7c:90:a7:cc:39:3b ali@sp5en05
オプションについて詳しくは、マニュアル・ページを参照してください。
デフォルトでは、秘密鍵は $HOME/.ssh/id_dsa ファイルに保管され、公開鍵は、
SSH クライアント上の $HOME/.ssh/id_dsa.pub ファイルに保管されます。鍵を保
管する場所に別の名前を指定することができますが、対応するクライアント構成
ファイルに、IdentifyFile2 <filename> オプション行を追加することも必要です。
システム全体に関係するオプションは /etc/openssh/ssh_config ファイルに指定し、
各ユーザーに関係するオプションは、各ユーザーのホーム・ディレクトリーの
$HOME/.ssh/config ファイルに指定します。
次に、ユーザーは、公開鍵 ($HOME/.ssh/id_dsa.pub) を SSH サーバーに送る必要
があります。( ユーザーは、まず、公開鍵を名前変更して、その鍵が生成された
元のユーザーとホストを識別する必要があります。) 公開鍵は、SSH サーバー上
の $HOME/.ssh/authorized_keys2 ファイルに ( 名前変更または付加を介して ) 保管
する必要があります。この実装では、authorized_keys2 ファイルには、鍵が保管
されている場所のファイル名ではなく、実際の鍵そのものを保管します。
SSH サーバーに ssh でログインするには、次のようにします。
sp5en01 /home/khorck # ssh sp5en05
Enter passphrase for DSA key '/home/khorck/.ssh/id_dsa':
*******************************************************************************
*
*
*
*
* Welcome to AIX Version 4.3!
*
*
*
*
*
* Please see the README file in /usr/lpp/bos for information pertinent to
*
* this release of the AIX Operating System.
*
*
*
*
*
*******************************************************************************
Last login: Thu Aug 17 10:47:17 2000 on ssh from sp5en01
sp5en05 /home/khorck #
74
AIX セキ ュ リ テ ィ ー ・ ツ ール
公開鍵方式によるメソッドが、パスフレーズが間違っているか必要なファイルが
正しくセットアップされていないために失敗した場合は、SSH サーバーは、パ
スワードの入力を求めるプロンプトを出します。
パスワードまたはパスフレーズの入力を求めるプロンプトを出さずに自動リ
モート・ログインが必要なアプリケーション (HACMP および PSSP など ) の場合
は、パスフレーズのプロテクションなしで (-N ‘’ フラグを使用 ) 鍵を生成してく
ださい。
#ssh-keygen -d -b 2048 -N ‘’
この方式を使用するには、秘密鍵ファイルがセキュアに保持されるようにするた
めの保護策が必要です。PGP などのソフトウェア (127 ページのセクション 7.3.3
「PGP の使用」を参照 ) を使用して、鍵が使用されていないときには暗号化して
プロテクトする必要があります。ただし、鍵は、暗号化解除してから使用するよ
うにしてください。
5.1.7
他の、 便利な SSH デーモ ン構成オプ シ ョ ン
以下のオプションを、SSH サーバー上の SSH デーモン用にセットすることがで
きます。これらのオプションは SSH1 および SSH2 に適用できます。
• StrictHostKeyChecking オプションをセットして、SSH がホスト・キーを
known_hosts(2) ファイルに自動的に追加しないようにすることができます。
鍵が known_hosts(2) ファイルにないホストへの接続または鍵が変更されたホ
ストへの接続は拒否され、known_hosts(2) ファイルへの変更はすべて手動で
行わなければなりません。これによって、トロイの木馬のアタックから保護
できます。デフォルトでは、このオプションは “no” にセットされています。
• AllowUsers、AllowGroups、DenyUsers、または、DenyGroups オプションをセッ
トして、あるユーザーだけまたは ( プライマリー ) グループだけ ( あるいはそ
の両方 ) が SSH サーバーに接続するのを許可することができます。デフォル
トでは、どのユーザーまたはグループ ( あるいはその両方 ) からの接続でも
許可します。
• Ports オプションは、SSH デーモンが listen するポートを定義するために使用
されます。デフォルトでは、これはポート 22 ですが、セキュリティー上の理
由で別のポートに変更する必要がある場合があります。
• ListenAddress オプションは、SSH が listen するネットワーク・インターフェー
ス (IP アドレス ) をコントロールするために使用されます。デフォルトは、使
用可能なすべてのインターフェースで listen することです。このオプション
は、構成ファイルの中で、Port オプションの前に使用してはならないことに
注意してください。
• PermitRootLogin オプションは、root アクセスをさらにコントロールするため
に使用できるオプションです。引き数は、yes、no、または、without-password
でなければなりません。デフォルトは “yes” です。セキュリティー上の理由
で、root ユーザーがリモート側でログインしてはならない場合があります。そ
の場合は、このオプションに加えて、telnet、ftp、rsh、および、rlogin などへ
のリモート・アクセスも使用不可にする必要があります。
第 5 章 リ モー ト ・ ア ク セ スのセキ ュ ア
75
• SyslogFacility オプションは、sshd 関連メッセージのロギングのタイプをコン
トロールするために使用することができます。使用できる値は、DAEMON、
USER、AUTH、LOCAL1、LOCAL2、LOCAL3、LOCAL4、LOCAL5、LOCAL6、
および LOCAL7 です。デフォルトは AUTH です。このオプションは、デバッ
グや監査証跡に使用すると便利です。
• LogLevel オプションは、sshd によって行われるロギングの量をコントロール
します。値は、QUIET、FATAL、ERROR、INFO、VERBOSE、および DEBUG
です。デフォルトは INFO です。マニュアル・ページによると、DEBUG は
ユーザーのプライバシーを侵すのでお勧めできません。
• X11Forwarding オプションは、X11 トラフィックの転送をコントロールするた
めに使用されます。デフォルトは “no” です。このオプションは、X11 通信を
プロテクトするために使用してください。
5.1.8
SSH2 OpenSSH と SSH.Com と の間の SSH2 のイ ン タ ーオペ ラ ビ リ テ ィ ー
OpenSSH README フ ァイ ル readme.openssh2 に よ ると、SSH Communications
Security から提供されている OpenSSH と SSH の間のインターオペラビリティー
が可 能 です。OpenSSH から SSH2 を 実 行し て いる ホ スト 上 のユ ー ザー は、
SSH.Com から SSH2 を実行している別のホストに接続することができます。そ
のステップを以下に説明します。
1. OpenSSH ホスト上で、次のように ssh-keygen を実行する。
$ssh-keygen -f /key/from/ssh.com -X >> $HOME/.ssh/authorized
2. OpenSSH ホスト上で、再び ssh-keygen を実行し、この実行では公開鍵 ( この
例では、mykey.pub) を生成する。
$ssh-keygen -f /privatekey/from/openssh -x > mykey.pub
3. 公開鍵 (mykey.pub) を SSH.Com ホストに転送し、許可ファイルを更新する。
$echo Key mykey.pub >> $HOME/.ssh2/authorization
5.1.9
PC 用の SSH ク ラ イ ア ン ト
PC 用の SSH クライアントは、SSH Communications Security から、次の Web サイ
トで入手できます。
http://www.ssh.com
本書を作成していた時点での最新バージョンは SSHWin 2.2 です。このバージョ
ンは、商用ユーザー以外のユーザーであれば無料で、商用ユーザーは 30 日間の
試用期間 ( その後は購入していただくことが必要です ) 使用できます。このバー
ジョンの SSH クライアントは Windows 95、98、および NT で実行でき、SSH1 ま
たは SSH2 プロトコルを実行している SSH デーモンに接続できます。このバー
ジョンの SSH クライアントで重要なフィーチャーは、セキュア・ファイル転送
(sftp) です。sftp ツールによって、暗号化されたチャネルでファイル転送が可能に
なり、セキュリティーが強化されます。
76
AIX セキ ュ リ テ ィ ー ・ ツ ール
検討の価値があるもう 1 つのツールは teraterm です。これは、SSH で実行できる
端末エミュレーターです。このツールが現在サポートしているのは SSH1 だけ
で、以下の Web サイトから入手できます。
http://www.zip.com.au/~roca/ttssh.html
5.1.10 SSH を持つ こ と の意味
SSH をインストールすると、暗号化、認証、およびデータ保全性を使用し、ホ
スト間でセキュリティー機能に保護されて通信できます。セキュアでないサービ
ス、つまり、ftp、telnet、および rsh などは、使用不可にするか除去し、SSH で
置き換えることができます。
セキュリティーを追加するには、75 ページのセクション 5.1.7「他の、便利な SSH
デーモン構成オプション」で説明した、その他の SSH 構成オプションの使用を
検討してください。とくに、AllowUsers、AllowGroups、DenyUsers、DenyGroups、
および PermitRootLogin の各オプションは、SSH サーバーにリモート・アクセス
できるユーザーをコントロールするのに役に立ち、さらに、ListenAddress オプ
ションによって、特定のネットワーク・インターフェース (IP アドレス ) への
SSH トラフィックを制限できます。
5.1.11 SSH の代替
SSH には、いくつかの代替があります。AIX 4.3.x の IP Security (IPSec) 機能を使
用すると、ユーザーは、ネットワーク・インターフェース用にファイアウォール
に類似したフィルター・セットを定義し、さらに、ホスト間に仮想プライベー
ト・ネットワーク (VPN) を作成できます。IPSec は AIX 4.3.x と一緒に標準で出
荷され、bos.net.ipsec ファイル・セットに入っています。IPSec のマニュアル・
ページは、重要な情報ソースです。IPSec のセットアップ方法について詳しくは、
レッドブック AIX 4.3 Elementsof Security Effective and Efficient Implementation、
SG24-5962 のセクション 7.3、および、レッドブック A Comprehensive Guide to
Virtual Private Networks, Volume III、SG24-5309 の第 9 章を参照してください。
5.2
TCP Wrapper
TCP Wrapper は、inetd デーモンによって提供されるサービスへのアクセス制御を
定義することによって、そのデーモンをプロテクトします。サービスとポートの
組み合わせを求めて接続の要求が到着すると、inetd は、まず、TCP Wrapper プロ
グラム (tcpd) を実行します。次に、tcpd プログラムは、アクセス制御に照らして
着信接続要求を調べ、その要求が、要求されているサービスとポートの組み合わ
せに対して正しい要求であることを確認します。正しい要求であれば、tcpd は要
求されたサーバー・プログラムを実行し、オリジナルの要求を満たします。TCP
Wrapper は、すべての接続要求をログに記録し、正常に完了した接続試行と正常
に完了しなかった接続試行の両方の監査証跡を保守します。
第 5 章 リ モー ト ・ ア ク セ スのセキ ュ ア
77
inetd の観点から見た場合、全 tcpd プロセスがトランスペアレントです。inetd に
とって必要な唯一の変更は、/etc/inetd.conf ファイルへの変更です。構成ファイル
は、要求されたサーバー・プログラムではなく tcpd を開始するために、変更が
必要です。(tcpd プログラムが、要求されたサーバー・プログラムを開始する世
話をします。) TCP Wrapper を使用して、実行可能サーバー・プログラムと 1 対
1 のマッピングを持っている telnet、finger、ftp、exec、rsh、rlogin、tftp、talk、
comsat、および、その他のサービスをプロテクトすることができます。
このツールは、特定のポート上の特定のサービスにどのホストが接続することを
許可されるか、どのホストが許可されないか、を指定する必要があるネットワー
クで非常に役立ちます。たとえば、あるホストだけに FTP サーバーに接続する
ことを許可し、他のすべてのホストは許可しないことが必要な場合があります。
5.2.1
TCP Wrapper の入手 と イ ン ス ト ール
TCP Wrapper ( および、同じ作成者による SATAN および POSTFIX などのその他
のツール ) を以下の Web サイトから入手できます。
ftp://ftp.porcupine.org/pub/security/index.html
TCP Wrapper は、また、Bull サイトから installp フォーマットで入手できます。本
書の作成のためにインストール / テストしたバージョンはバージョン 7.6 です。
ダウンロードした後で、配布されたものがいたずらされていないことを確認して
ください。確認の方法について詳しくは、136 ページのセクション 7.4.1「ダウン
ロードの保全性の確認」を参照してください。
配布されたものをひろげて、ファイル・セットがすべて揃っていて正しいサイズ
であることを確認してください。
# ./tcp_wrappers-7.6.1.0.exe
UnZipSFX 5.32 of 3 November 1997, by Info-ZIP ([email protected]).
inflating: tcp_wrappers-7.6.1.0.bff
inflating: tcp_wrappers-7.6.1.0.bff.asc
# ls -l
total 1032
-rw-r--r-- 1 root system
358400 Jul 06 11:27 tcp_wrappers-7.6.1.0.bff
-rw-r--r-- 1 root system
2643 Jul 06 11:28 tcp_wrappers-7.6.1.0.bff.asc
-rwx------ 1 root system
162727 Aug 18 10:49 tcp_wrappers-7.6.1.0.exe
プロダクトをインストールして、インストールが正常に完了したことを確認して
ください。
78
AIX セキ ュ リ テ ィ ー ・ ツ ール
# installp -acgX -d . freeware.tcp_wrappers.rte
Installation Summary
-------------------Name
Level
Part
Event
Result
------------------------------------------------------------------------------freeware.tcp_wrappers.rte 7.6.1.0
USR
APPLY
SUCCESS
# lslpp -l freeware.tcp_wrappers.rte
Fileset
Level State
Description
---------------------------------------------------------------------------Path: /usr/lib/objrepos
freeware.tcp_wrappers.rte 7.6.1.0 COMMITTED TCP/IP daemon security wrapper
package (with IPv6)
5.2.2
TCP Wrapper の構成
インストールが完了したら、inetd でコントロールされているどのサービスを
TCP Wrapper でプロテクトするかを決めてください。該当するサービスが決まっ
たら、/etc/inetd.conf の中にある対応するサーバー・プログラムを tcpd で置き換
えてください。たとえば、ftp サービスをプロテクトする必要がある場合は、以
下に示すように、ftp 行を変更します。
ftp
stream tcp6
nowait root
/usr/local/bin/tcpd
ftpd
TCP Wrapper でプロテクトする必要があるサービスごとに繰り返します。
/etc/inetd.conf への変更が終了したら、以下に示すように、inetd をリフレッシュ
します。
# refresh -s inetd
次に、適切なログ記録がとれるように、tcpd を構成します。デフォルトでは、
TCP Wrapper は、syslog 内のメール機能を使用して、ログを /var/adm/syslog に記
録します。/etc/syslog.conf ファイルを変更して、別の場所にログを記録すること
をお勧めします。たとえば、ログを /var/adm/tcp_wrapper.log に記録するようにす
るには、以下に示すように、/etc/syslog.conf を変更します。
mail.debug
/var/adm/tcp_wrapper.log
ユーザーは、/var/adm/tcp_wrapper.log ファイルを作成し、syslog デーモンをリフ
レッシュする必要があります。ログ・ファイルに 600 という許可の値を指定する
と、通常のユーザーはログを読み取れなくなるはずです。
# touch /var/adm/tcp_wrapper.log
# chmod 600 /var/adm/tcp_wrapper.log
# refresh -s syslogd
ユーザーは、ここで、TCP Wrapper のアクセス制御リストを構成して、プロテク
トされたサービスを実行することをどのホストが許可されどのホストがされな
第 5 章 リ モー ト ・ ア ク セ スのセキ ュ ア
79
いかを定義する必要があります。アクセス制御は、/etc/hosts.allow ファイル、お
よび
/etc/hosts.deny
ファ イ ルを 使 用し て 行わ れ ます。検 索順 序 はま ず、
/etc/hosts.allow、次に /etc/hosts.deny です。どちらにも一致するものがなければ、
アクセスが認可されます。その他のアクセス制御オプションについては、マニュ
アル・ページ hosts_options および hosts_access.5 を参照してください。
次に、われわれのテスト環境用の TCP Wrapper をどのように構成したかについて
説明します。サーバーは、merlin.itso.ibm.com です。TCP Wrapper は、telnet サー
ビスと ftp サービスをプロテクトするようにセットアップされます。telnet の場
合、sp5cw0 を除き、itso.ibm.com ドメインの中のすべてのサーバーは、サービス
を使用することを許可されます。ftp の場合、itso.ibm.com ドメインの中で、arthur
がサービスを使用することを許可される唯一のサーバーです。どちらかのサービ
スに対する、itso.ibm.com ドメインの外側からのアクセスは、拒否されます。
この機能性を使用可能にするために、/etc/inetd.conf の中の telnet 行および ftp 行を
変更し、
telnetd および ftpd ではなく /usr/local/bin/tcpd を実行する必要がありました。
次に、これらのサービスについての必要なアクセス制御を使用して、/etc/hosts.allow
ファイル、および、/etc/hosts.deny ファイルを作成しました。( これらのファイルで
は、IP アドレス、ホスト名、ドメイン・ネーム、あるいは、これらの組み合わせ
を使用できます。ドメイン・ネームを指定するときは、.itso.ibm.com のように名前
に必ず先頭ピリオドを含め、ネットワークを指定するときには、
9.12.0.0/255.255.255.0 のように、ネットマスクを必ず含めてください。) 最後に、ア
クセス制御は、tcpdchk -v コマンドを使用して確認しました。
80
AIX セキ ュ リ テ ィ ー ・ ツ ール
# cat /etc/inetd.conf
...
ftp
telnet
...
stream
stream
tcp6
tcp6
nowait
nowait
root
root
/usr/local/bin/tcpd
/usr/local/bin/tcpd
ftpd
telnetd -a
# cat /etc/hosts.allow
telnetd: .itso.ibm.com except sp5cw0.itso.ibm.com : allow
ftpd: arthur.itso.ibm.com: allow
# cat /etc/hosts.deny
ftpd: 9.12.0.0/255.255.255.0 : deny
ALL: ALL: deny
# tcpdchk -v
Using network configuration file: /etc/inetd.conf
>>> Rule
daemons:
clients:
command:
access:
/etc/hosts.allow line 1:
telnetd
.itso.ibm.com except sp5cw0.itso.ibm.com
allow
granted
>>> Rule
daemons:
clients:
command:
access:
/etc/hosts.allow line 2:
ftpd
arthur.itso.ibm.com
allow
granted
>>> Rule
daemons:
clients:
command:
access:
/etc/hosts.deny line 1:
ftpd
9.12.0.0/255.255.255.0
deny
denied
>>> Rule
daemons:
clients:
command:
access:
/etc/hosts.deny line 2:
ALL
ALL
deny
denied
このセットアップをテストするには、tcpdmatch コマンドを使用しました。まず、
sp5cw0.itso.ibm.com から telnet テストをシミュレートし、続けて、
arthur.itso.ibm.com から telnet テストをシミュレートしました。予想したとおり、
最初のテストではアクセスは拒否されましたが、2 番目のテストでは認可されま
した。
第 5 章 リ モー ト ・ ア ク セ スのセキ ュ ア
81
# tcpdmatch telnetd sp5cw0.itso.ibm.com
client: hostname sp5cw0.itso.ibm.com
client: address 9.12.0.5
server: process telnetd
access: denied
# tcpdmatch telnetd arthur.itso.ibm.com
client: hostname arthur.itso.ibm.com
client: address 9.12.0.18
server: process telnetd
access: granted
5.2.3
TCP Wrapper の追加セキ ュ リ テ ィ ー ・ フ ィ ーチ ャ ー
デフォルトによって、TCP Wrapper は、クライアントが識別情報に記載のとおり
に本物であることを確認します。TCP Wrapper (tcpd) は、この確認を、名前から
IP アドレスの照会、および、IP アドレスから名前の照会を行って両方の照会に
一貫性があることを確かめることによって行います。この二重照会によって、ク
ライアントが本物であることが確実になります。
82
AIX セキ ュ リ テ ィ ー ・ ツ ール
第 6 章 ポー ト およびネ ッ ト ワー クのスキ ャ ン
ネットワーク・スキャナーとポート・スキャナーは、システムの弱点がどこにあ
るかを見つけるために、アタッカーによって使用される典型的なツールです。こ
れらのツールは、ユーザーのネットワークを精密に調べ、セキュリティー上、ア
タックし易い個所を探すために使用されます。ポート・スキャナーはシステムを
スキャンして、オープンされているポートおよびアタックし易い個所があるか探
します。たとえば、ネーム・デーモン (BIND) に新規のアタックし易いところ (
弱点 ) があれば、アタッカーはスキャンを行ってそのポートがアクティブかを調
べ、アクティブであれば、その弱点を活用しようと試みます。
これらのツールを理解すると、以下の 2 つの強みが得られます。
• これらのツールをネットワークに対してどのように使用して、どのような情
報が収集できるのかを理解できます。次に、この情報を基に防御のメカニズ
ムを構築できます。
• この知識を使用して、ユーザー自身のネットワークをスキャンし、アタッカー
に抜け穴を発見されないようにすることができます。
重要
これは倫理的なハッキングと考えられていますが、ほとんどの組織では、
厳重なポリシーによってこれを禁止しています。これらのツールを実動
ネットワークで実行する場合は、必ず書面で承認を得てから行うようにし
てください。
この章では、fping というネットワーク・スキャナー、および、nmap というポー
ト・スキャナーについて説明します。fping というツールは、ICMP エコー要求を
ネットワーク全体またはある IP 範囲に送ることによって、迅速にネットワーク
を調べるのに役立つツールです。この技法は ping スイープ とも呼ばれます。.
このツールを使用すると、ネットワークを短時間でスキャンして、どのホストが
アクティブかを判別し、管理者が知らないうちに導入された新しいホストがない
ことを確かめ、潜在的な弱点があるかどうかを探すことができます。
nmap ツールは、主役級のポート・スキャナーです。ポート・スキャナーは、マ
シン上の TCP ポートまたは UDP ポートに接続し、どのポートがアクティブでリ
スニング状態 (netstat -an コマンドで判別できるのと同様 ) にあるかを判別し
ます。nmap ツールはさまざまなスキャン技法を使用して、ポートがアクティブ
か否かを判別します。デフォルトのスキャンは、標準の TCP ハンドシェーク (37
ページのセクション 3.3.6.1「SYNDefender」に説明があります ) を使用する TCP
connect() スキャンです。また、このツールには、その他の多くのタイプのスキャ
ンが組み込まれており、ある種のスキャンは、検出されるのを防ぐために巧妙な
スキャン ( ステルススキャンのように ) です。
この章では、他のタイプのツール (SAINT、PortSentry、および lsof など ) につい
ても説明します。これらのツールは、それ自体では、ポート・スキャナーまたは
© Copyright IBM Corp. 2002
83
ネットワーク・スキャナーではありませんが、ポート・スキャナーおよびネット
ワーク・スキャナーを補完し、環境のセキュリティーを強化するのに役立つツー
ルであるので、ここに含めて説明します。
SAINT (Security Administrator's Integrated Network Tool) は、49 ページのセクショ
ン 4.4「NetworkSecurity Auditor (NSA)」で説明した NSA ツールに類似したツール
です。SAINT は、SATAN を拡張し更新したバージョンです。SAINT は、リモー
ト・マシンを検査し、認知されている一連の弱点があるか否かを調べます。SAINT
を実行するには、まず、SAINT に、スキャンするターゲット・マシンのリスト
を与えます。すると、SAINT はターゲット・マシンを検査して弱点の有無を調
べ、その結果を読みやすいフォーマットでレポートします。SAINT は、検査で
発見した弱点の解決方法についての推奨処置も提供します。
また、ポート・スキャンに対して防御するツールを持つことも重要です。PortSentry
がまさにそのようなツールになります。PortSentry は、ポート・スキャンを検出
する (UDP および TCP の両方 ) とアラートを出し、そのような接続をドロップす
るように構成することもできます。このツールは、疑わしいアタックがあった場
合には早期警告メカニズムとして非常に役に立ち、さらに、接続をドロップする
よう構成されている場合は、アタッカーを払いのけるのにも役立ちます。
この章で最後に説明するツールは lsof です。このツールは、よく認知できていな
いポートを識別するのに便利です。サーバーにアクティブ・ポートがあるが、そ
のアクティブ・ポートをどのアプリケーションが所有しているかが不確かな場合
は、lsof を使用して所有者を判別できます。ただし、lsof ツール自体はセキュリ
ティー・ツールでないことに注意してください。このツールは、netstat -an コ
マンドのエンハンスト・バージョンと考えることができます。
6.1
fping
fping ツールは、ICMP エコー要求をネットワーク全体または IP アドレスの一定
の範囲に送ることによって、ネットワーク・トポロジーを調べることに役立つ
ping スイープ・ユーティリティーです。fping ツールは ping ツールに類似してい
ますが、ICMP エコー要求パケットをラウンドロビン方法で送り出す点が異なり
ます。実行されるとき、fping はスキャンされる IP アドレスのリストを引き数と
して受け入れ、各アドレスに、応答を待機することなく、ICMP パケットを送り
出します。この機能により、fping は、短時間にネットワーク全体をスキャンす
ることができます。
IP アドレスは以下のいくつかの形式で fping に渡すことができます。
• コマンド行のリストで指定できる。
• ファイルの中のリストで指定できる。
• コマンド行上またはファイルの中に、範囲で指定できる。
これらのオプションについては、86 ページのセクション 6.1.2「fping の使用」で
詳しくカバーします。
84
AIX セキ ュ リ テ ィ ー ・ ツ ール
fping を使用すると、どのホストがネットワークでアクティブになっているかを
迅速に判別し、管理者が知らないうちに、ネットワーク上に新しく導入されたホ
ストがないことを確かめることができます。ただし、ネットワーク上には、ping
要求に応答しないように特別に構成されたマシンがある場合があることを念頭
に置いておいてください。たとえば、ファイアウォールは、このように構成され
ている典型的な例です。他の場合では、マシンが停止しているという応答が戻っ
てくる場合があります。このような場合は、低速ネットワークまたは過負荷のマ
シンが原因の、偽の肯定状況である場合があります。
fping ツールは、管理者が考えている構成のとおりにネットワークが構成されて
いるかを確かめるときにも便利です。時間が経つと、事情が変わり、ドキュメン
テーションが事実とずれていることがよくあります。ネットワーク・ドキュメン
テーションに対する監査ツールとして fping を定期的に使用できます。これは、
セキュリティー上の潜在的な抜け道があるか否かを早めに判定するためにとく
に重要です。たとえば、複数のネットワーク・カードを持った新規マシンが、管
理者が知らないうちにネットワークに導入されたとします。この場合の危険は、
このマシンが、複数のネットワーク・カードを持っていることによって、ネット
ワークに代替パスを簡単に提供することになり、この代替パスによってアタッ
カーがファイアウォールを回避できるようになることです。
fping のもう 1 つの有効な使い方は、ブロードキャスト・アドレスが ping に応答
するように構成されているかどうかを判別することです。サービス妨害攻撃は、
いままでも、ブロードキャスト・アドレス ( .0 および .255 の両方 ) に対して正常
に起動されています。したがって、ブロードキャスト・アドレスを ping 要求に
応答しないように構成することをお勧めします。
サービス妨害攻撃およびこれを妨げる方法についての詳細は、以下の Web サイ
トにあります。
www.pentics.net/denial-of-service/white-papers/smurf.cgil
6.1.1
fping の入手 と イ ン ス ト ール
fping ツールはダウンロード用に以下の Web サイトから入手できます。
http://www-frec.bull.fr (installp フォーマット )
http://www.mirror.ac.uk/sites/ftp.kernel.org/pub/software/admin/mon/
http://www.svn.net/datamonk/outline.shtml
このレッドブック用には、Bull サイトからの fping バージョン 2.2 を使用してい
ます。
ダウンロードした後で、配布されたものがいたずらされていないことを確認して
ください。確認の方法について詳しくは、136 ページのセクション 7.4.1「ダウン
ロードの保全性の確認」を参照してください。
次に、この配布物をインフレートしてください。
第 6 章 ポー ト お よびネ ッ ト ワー ク のスキ ャ ン
85
# ./fping-2.2.1.0.exe
UnZipSFX 5.31 of 31 May 1997, by Info-ZIP ([email protected]).
inflating: fping-2.2.1.0.bff
正しくインフレートされたことを確認してください。
# ls -l
total 384
-rw-r--r--rwx------
1 root
1 root
system
system
102400 Jan 14 1998 fping-2.2.1.0.bff
92765 Aug 18 10:48 fping-2.2.1.0.exe
次に、freeware.fping.rte ファイル・セットをインストールし、インストールが正
常に完了したことを確認してください。
# installp -acqX -d . freeware.fping.rte
Installation Summary
-------------------Name
Level
Part
Event
Result
------------------------------------------------------------------------------freeware.fping.rte
2.2.1.0
USR
APPLY
SUCCESS
6.1.2
fping の使用
fping ツールは、多数のホストを短時間にスキャンします。スキャンするホスト
のリストは、コマンド行上、または、スクリプトを使用して指定できます。ホス
ト・リストの生成を自動化するスクリプトが、Web 上で、ダウンロード用に使用
可能になっています。また、クラス C ネットワーク全体 ( または、ネットマスク
255.255.255.0 を持つ任意のネットワーク ) をスキャンするサンプル・スクリプト
が、付録 B、
「fping を使用してネットワークをスキャンするために使用されるス
クリプト」(207 ページ ) にあります。fping を使用する 3 つの例が、このセクショ
ンで説明されています。
最初の例では、コマンド行上に提供されているホスト・リストを使用して fping
を実行する方法を示します。
# /usr/local/bin/fping 192.168.5.1 192.168.5.3 192.168.5.5
192.168.5.1 is alive
192.168.5.5 is alive
192.168.5.3 is unreachable#
この例では、fping は、3 つのアドレス (192.168.5.1、192.168.5.3、および 192.168.5.5)
をスキャンするために使用されています。3 つのアドレスは、fping によって、そ
のホスト・リストとして使用されます。fping は、ICMP エコー要求を各アドレス
86
AIX セキ ュ リ テ ィ ー ・ ツ ール
にラウンドロビン方法で送ります。アドレス 192.168.5.3 はタイムアウトになっ
ても応答しなかったことに注意してください。
デフォルト値として、fping は以下の値を使用します。
• 再試行カウント 3 ( 最初の ping を除く )。(-r フラグでコントロールされる )
• パケット送信間のミニマム時間 25ms。(-i フラグでコントロールされる )
• 再試行待ち時間の増加係数 1.5。(-B フラグでコントロールされる )
2 番目の例では、/etc/hosts ファイルを入力データとして使用して fping を実行す
る方法を示します。
# cat /etc/hosts | fping
127.0.0.1 is alive
192.168.5.150 is alive
9.12.0.5 is alive
192.168.5.1 is alive
192.168.5.5 is alive
192.168.5.9 is alive
192.168.5.13 is alive
192.168.15.5 is alive
192.168.15.9 is alive
192.168.15.13 is alive
9.12.2.168 is unreachable
ホスト・テーブルにあるホストがすべてアクティブであることを確認するため
に、クィックな方法としてこの方式を使用できます。
3 番目の例では、付録 B、「fping を使用してネットワークをスキャンするために
使用されるスクリプト」(207 ページ ) にあるスクリプトを使用して fping を実行
する方法を示します。この例では、192.168.5.0 ネットワーク (192.168.5.0 から
192.168.5.255 ま で ) をス キ ャン し てい ま す。ア ド レス 192.168.5.0 お よ び
192.168.5.255 は、ブロードキャスト・アドレスとしての役割を持ちサービス妨害
アタックに弱いので、ping 要求に応答しないように、この 2 つのアドレスもス
キャンします。
# /tmp/fping.script 192.168.5.0
Please enter filename to output results
/tmp/fping.out
Output file is /tmp/fping.out
Obtaining list of hosts to scan and storing the list into /tmp/fping.data
Scanning hosts now. Please wait for prompt to return.
View output file /tmp/fping.out for results
第 6 章 ポー ト お よびネ ッ ト ワー ク のスキ ャ ン
87
一分以下でスキャン全体の実行は終了しました (スキャンするホストのリストの
生成も含む )。出力ファイルには、以下に示す結果が入ります。
# cat /tmp/fping.out
192.168.5.0 : duplicate for [0], 84 bytes, 2.40 ms [<- 192.168.5.5]
192.168.5.255 : duplicate for [0], 84 bytes, 1.71 ms [<- 192.168.5.5]
192.168.5.0 is alive [<- 192.168.5.13]
192.168.5.1 is alive
192.168.5.5 is alive
192.168.5.9 is alive
192.168.5.13 is alive
192.168.5.150 is alive
192.168.5.255 is alive [<- 192.168.5.13]
192.168.5.2 is unreachable
192.168.5.3 is unreachable
192.168.5.4 is unreachable
...
192.168.5.253 is unreachable
192.168.5.254 is unreachable
256
7
249
0
996
1003
9
0
targets
alive
unreachable
unknown addresses
timeouts (waiting for response)
ICMP Echos sent
ICMP Echo Replies received
other ICMP received
0.41 ms (min round trip time)
1.41 ms (avg round trip time)
2.40 ms (max round trip time)
35.173 sec (elapsed real time)
この結果に示されているように、ブロードキャスト・アドレス 192.168.5.0 およ
び 192.168.5.255 には、192.168.5.5 および 192.167.5.13 からの応答があります。こ
の 2 つのサーバーを調べると、bcastping no オプションがオン (1) にセットされ
ていることがわかります。この no オプションについて詳しくは、187 ページの
セクション 8.4.2「ブロードキャストのプロテクション」を参照してください。
6.1.3
ping ス イ ープに対する プ ロ テ ク シ ョ ン
一般的に、侵入検出ソフトウェアを使用して、ネットワークを ping スイープか
らプロテクトできます。このソフトウェアは、ネットワーク・トラフィックをモ
ニターして盗聴タイプのイベントを探し出すネットワーク盗聴者の形式をイン
プリメントしています。ただし、一部のポート・スキャナー (nmap など ) では低
速のスキャン (-T Paranoid フラグ ) しか行えないので、侵入検出ソフトウェアで
は見つからない場合もあるということを念頭に入れておいてください。
また、ルーター上のインターネットからの ICMP 要求を使用不可にすることに
よって、ネットワークをプロテクトすることもできます。また、ポート・スキャ
88
AIX セキ ュ リ テ ィ ー ・ ツ ール
ンに対してプロテクションを提供するソフトウェアがダウンロード用に Web か
ら入手できます。ただし、これらのパッケージは実動で使用する前に十分にテス
トして、スキャンに繊細に反応するか否かを判別してください。ある種のポー
ト・スキャナーは非常に巧妙 ( 秘密モード ) で、検出されないようにさまざまな
技法を使用していることを思い出してください。
エクスポージャーを最小化するために、不必要なサービスを除去してオペレー
ティング・システムを強化してください ( 第 8 章 「AIX の保護」(139 ページ ) を
参照 )。これにより、アタックされる潜在的なターゲットの数を減らすことがで
きます。
ここでも、防御の最善策は、アタッカーが考えるように考えてみることです。セ
キュリティー・サイトにある記事を読み、セキュリティー関連のメーリング・リ
ストでサブスクリプションすることによって、最新の技法に通暁しているように
してください。守る側と攻める側の両方の立場からネットワークを見るようにし
てください。
6.2
ネ ッ ト ワー ク ・ マ ッ パー (NMAP)
nmap ツールは Fyodor によって作成され、ポート・スキャンの主役級のツールと
して受け入れられています。このツールは非常に柔軟で、多くのスキャン技法を
サポートし、ホストのポート・スキャンあるいはネットワーク全体のポート・ス
キャンのどちらも使用可能にします。ポート・スキャナーはマシン上の TCP ポー
トまたは UDP ポートに接続し、どのポートがアクティブでリスニング状態にあ
るかを判別 (netstat -an コマンドによる判別の出力と同様 ) します。
システム上のアタックされ易い個所の有無を調べるには、そのシステムで nmap
ポート・スキャンを実行し、どのサービスが実行中で活用され易いかを確認しま
す。nmap ツールは、ポートがアクティブか否かを判別するために、さまざまな
スキャン技法をサポートしています。デフォルトのスキャンは、標準の TCP ハン
ドシェーク (37 ページのセクション 3.3.6.1「SYNDefender」に説明があります ) を
使用する TCP connect() スキャンです。ポート・スキャンをトラックするためにロ
ギングが使用可能になっている場合は、このタイプのスキャンはログに記録され
ます。このスキャンのログ記録は、netstat コマンドの出力でも見ることができ
ます。
nmap ツールは、一部のロギング機能をエスケープする SYN 秘密 ( 半分オープン )
スキャンのような、より巧妙なスキャンをサポートします。他の技法 (TCP FIN、
Xmas、あるいは NULL ( 秘密 ) スキャン、TCP ftp プロキシー ( バウンス・アタッ
ク ) スキャン、および UDP ポート・スキャンなど ) も使用できます。
他の nmap 機能には、実行されているホストを判別する ping スキャン、リモー
ト・オペレーティング・システムを “ ゲスする ” リモート OS 識別、および、ident
プロトコルが実行されている場合にリモート・プロセスの所有者を判別するため
のリバース ident スキャンなどが含まれます。
第 6 章 ポー ト お よびネ ッ ト ワー ク のスキ ャ ン
89
パッケージには、さまざまなスキャン技法とその使用法を説明する
/usr/local/lib/nmap-2.53/nmap.deprecated.txt ファイルが入っています。その
ファイルを読んで、nmap の機能についての理解を深めてください。あるいは、
代替方法として、nmap でサポートされている技法と機能の詳細説明については、
http://www.insecure.org/nmap を参照することもできます。
6.2.1
nmap の入手 と イ ン ス ト ール
installp フォーマットの nmap ツールは、http://www-frec.bull.fr/ からダウン
ロードすることができます。このレッドブック用には、Bull サイトからの nmap
バージョン 2.53 を使用しています。nmap ツールは、
http://www.insecure.org/nmap にあるホーム・ページからも入手することができ
ます。
AIX 上の nmap の場合は、/usr/bin/lex ユーティリティーおよび /usr/bin/yacc ユー
ティリティーも必要です。これらのユーティリティーは、bos.adt.utils ファイル・
セットにあります。lex および yacc がまだインストールされていない場合は、
nmap をインストールする前に、これらのユーティリティーをインストールする
必要があります。bos.adt.utils ファイル・セットがインストールされているかど
うかを判別するには、次のようにします。
$ lslpp -l bos.adt.utils
Fileset
Level State
Description
---------------------------------------------------------------------------Path: /usr/lib/objrepos
bos.adt.utils
4.3.3.0 COMMITTED Base Application Development
Utilities - lex and yacc
nmap をダウンロードした後で、配布されたものがいたずらされていないことを
確認してください。確認の方法について詳しくは、136 ページのセクション 7.4.1
「ダウンロードの保全性の確認」を参照してください。
次に、配布物をアンパックして、nmap ツールをインストールします。(nmap は、
前提条件として libpcap を必要とすることに注意してください。)
90
AIX セキ ュ リ テ ィ ー ・ ツ ール
# ./nmap-2_53_0_0.exe
UnZipSFX 5.32 of 3 November 1997, by Info-ZIP ([email protected]).
inflating: nmap-2.53.0.0.bff
inflating: nmap-2.53.0.0.bff.asc
# ./libpcap-0_5_0_0.exe
UnZipSFX 5.41 of 16 April 2000, by Info-ZIP ([email protected]).
inflating: libpcap-0.5.0.0.bff
inflating: libpcap-0.5.0.0.bff.asc
# installp -acgX -d . freeware.nmap.rte
Installation Summary
-------------------Name
Level
Part
Event
Result
------------------------------------------------------------------------------freeware.libpcap.rte
0.5.0.0
USR
APPLY
SUCCESS
freeware.nmap.rte
2.53.0.0
USR
APPLY
SUCCESS
インストールが完了したら、pse ドライバーを使用可能にしてください。pse ド
ライバーを使用可能にしない場合は、次に示すようなメッセージが出されます。
# nmap -sS -O -P0 -v merlin > /tmp/merlin.nmap.sS
pcap_open_live: /dev/dlpi/tr0: No such file or directory
There are several possible reasons for this, depending on your operating system:
LINUX: If you are getting Socket type not supported, try modprobe af_packet or recompil
your kernel with SOCK_PACKET enabled.
*BSD: If you are getting device not configured, you need to recompile your kernel with
Berkeley Packet Filter support. If you are getting No such file or directory, try crea
the device (eg cd /dev; MAKEDEV <device>; or use mknod).
SOLARIS: If you are trying to scan localhost and getting '/dev/lo0: No such file or
directory', complain to Sun. I don't think Solaris can support advanced localhost scan
You can probably use "-P0 -sT localhost" though.
ドライバーを使用可能にするには、/etc/pse.conf ファイルを編集し、ご使用のネッ
トワーク・アダプターのタイプ ( イーサネットまたはトークンリング ) の該当エ
ントリーをアンコメントし、ループバック・アダプターのエントリーを追加して
ください。
#d+
#d+
d+
d+
#d+
dlpi
dlpi
dlpi
dlpi
dlpi
en
et
lo
tr
fi
/dev/dlpi/en
/dev/dlpi/et
/dev/dlpi/lo
/dev/dlpi/tr
/dev/dlpi/fi
#
#
#
#
#
streams
streams
streams
streams
streams
dlpi
dlpi
dlpi
dlpi
dlpi
ethernet driver
802.3 driver
loopback driver
token ring driver
FDDI driver
注
このレッドブック用に使用したリリースには、ある種の nmap 機能性がありま
したが、トークンリング・インターフェースでは正しく作動しませんでした。
ここで、ドライバーをアクティブにします。
第 6 章 ポー ト お よびネ ッ ト ワー ク のスキ ャ ン
91
# strload -f /etc/pse.conf
strload: cannot initialize stddev: Do not specify an existing file.
strload: cannot initialize stddev: Do not specify an existing file.
strload: 'spx' already loaded
strload: 'sc' already loaded
strload: 'stdmod' already loaded
strload: cannot initialize dlpi: Do not specify an existing file.
strload: cannot initialize dlpi: Do not specify an existing file.
strload: cannot initialize xtiso: Do not specify an existing file.
strload: cannot initialize xtiso: Do not specify an existing file.
strload: cannot initialize xtiso: Do not specify an existing file.
strload: cannot initialize xtiso: Do not specify an existing file.
strload: cannot initialize xtiso: Do not specify an existing file.
strload: cannot initialize xtiso: Do not specify an existing file.
strload: 'timod' already loaded
strload: 'tirdwr' already loaded
# ls -l /dev/dlpi
total 0
crw-rw-rw- 1 root
system
11, 42 Sep 03 22:13 en
crw-rw-rw- 1 root
system
11, 43 Sep 03 22:14 lo
これで、nmap を使用する準備ができました。
/usr/local/lib/nmap-2.53/nmap.deprecated.txt ファイルを調べてください。使
用可能なさまざまなスキャン技法のハイライト、それらのスキャンをいつ使用す
る必要があるかについての提案、および、提供されるさまざまなタイプの情報が
あります。
デフォルトでは、nmap の許可は 755 です。ほとんどの場合、通常のユーザーが
ネットワークをスキャンする必要はないはずです。許可を 500 に変更することを
お勧めします。
6.2.2
Nmap の使用方法
nmap ツールは、スキャンされたそれぞれのポートごとに、3 つの状態のいずれか
をレポートします。3 つの状態とは、以下の状態です。
• オープン (Open) - ターゲット・マシンは、そのポートで接続を accept() する。
• フィルターされている (Filtered) - ファイアウォールなどのデバイスがポー
トをプロテクトし、接続を妨げている。
• フィルターされていない (Unfiltered) - ポートはプロテクトされていない。
重要
一部の組織では、厳重なポリシーによって、許可を持たない担当員がネット
ワーク・スキャンを行うことを禁止しています。実動ネットワークで nmap の
ようなツールを実行する場合は、必ず書面で承認を得てから行うようにして
ください。
以下の画面に、nmap の使用方法の例と対応する出力を示します。
92
AIX セキ ュ リ テ ィ ー ・ ツ ール
# nmap -P0 -p23 -sT 172.16.30.0/24
Starting nmap V. 2.53 by [email protected] ( www.insecure.org/nmap/ )
Strange error from connect (13):Permission denied
The 1 scanned port on (172.16.30.0) is: closed
Interesting ports on (172.16.30.1):
Port
State
Service
23/tcp
filtered
telnet
...
...
# nmap -P0 -p23,514,513 172.16.30.50
Starting nmap V. 2.53 by [email protected] ( www.insecure.org/nmap/ )
Interesting ports on merlinen0 (172.16.30.50):
(The 2 ports scanned but not shown below are in state: closed)
Port
State
Service
23/tcp
open
telnet
# nmap -P0 -v 172.16.30.50
Starting nmap V. 2.53 by [email protected] ( www.insecure.org/nmap/ )
No tcp,udp, or ICMP scantype specified, assuming vanilla tcp connect() scan. Use -sP
if you really don't want to portscan(and just want to see what hosts are up).
Initiating TCP connect() scan against merlinen0 (172.16.30.50)
Adding TCP port 23 (state open).
Adding TCP port 111 (state open).
Adding TCP port 21 (state open).
Adding TCP port 53 (state open).
Adding TCP port 684 (state open).
Adding TCP port 683 (state open).
Adding TCP port 6000 (state open).
The TCP connect scan took 0 seconds to scan 1523 ports.
Interesting ports on merlinen0 (172.16.30.50):
(The 1516 ports scanned but not shown below are in state: closed)
Port
State
Service
21/tcp
open
ftp
23/tcp
open
telnet
53/tcp
open
domain
111/tcp
open
sunrpc
683/tcp
open
unknown
684/tcp
open
unknown
6000/tcp open
X11
Nmap run completed -- 1 IP address (1 host up) scanned in 0 seconds
# nmap -sS -P0 -O sp5en01
Starting nmap V. 2.53 by [email protected] ( www.insecure.org/nmap/ )
Interesting ports on sp5en01 (192.168.5.1):
(The 1502 ports scanned but not shown below are in state: closed)
Port
State
Service
7/tcp
open
echo
9/tcp
open
discard
13/tcp
open
daytime
19/tcp
open
chargen
21/tcp
open
ftp
2770/tcp open
sometimes-rpc3
32771/tcp open
sometimes-rpc5
TCP Sequence Prediction: Class=truly random
Difficulty=9999999 (Good luck!)
Remote operating system guess: IBM AIX v3.2.5 - 4
Nmap run completed -- 1 IP address (1 host up) scanned in 3 seconds
第 6 章 ポー ト お よびネ ッ ト ワー ク のスキ ャ ン
93
マ ニ ュ ア ル・ペ ー ジ を 読 み、/usr/local/lib/nmap-2.53/nmap.deprecated.txt
ファイルを検討して、nmap ツールとその機能の概要を理解してください。さま
ざまな環境の中の、さまざまな状況の下で使用できるさまざまなスキャン技法が
あります。nmap をよく理解する一番良い方法は、テスト環境で、実際にいろい
ろと使って試してみることです。そのときには、必ず、アタッカーの観点からも
見ることが重要です。ショッキングな発見もあることでしょう。
6.2.3
ポー ト ・ スキ ャ ナーに対する プ ロ テ ク シ ョ ン
一般的には、侵入検出ソフトウェアを使用して、ポート・スキャナーからネット
ワークをプロテクトすることができます。このソフトウェアは、ネットワーク・
トラフィックをモニターして盗聴タイプのイベントを探し出すネットワーク盗
聴者の形式をインプリメントしています。ただし、一部のポート・スキャナー
(nmap など ) では低速のスキャン (-T Paranoid フラグ ) しか行えないので、侵入検
出ソフトウェアでは見つからない場合もあるということを念頭に入れておいて
ください。
また、ポート・スキャンに対してプロテクションを提供するソフトウェアがダウ
ンロード用に Web から入手できます。ただし、これらのパッケージは実動で使用
する前に十分にテストして、スキャンに繊細に反応するか否かを判別してくださ
い。ある種のポート・スキャナーは非常に巧妙 ( ステルスモード ) で、検出され
ないようにさまざまな技法を使用していることを思い出してください。
エクスポージャーを最小化するために、不必要なサービスを除去してオペレー
ティング・システムを強化してください ( 第 8 章 「AIX の保護」(139 ページ ) を
参照 )。これにより、アタックされる潜在的なターゲットの数を減らすことがで
きます。
ここでも、防御の最善策は、アタッカーが考えるように考えてみることです。セ
キュリティー・サイトにある記事を読み、セキュリティー関連のメーリング・リ
ストでサブスクリプションすることによって、最新の技法に通暁しているように
してください。守る側と攻める側の両方の立場からネットワークを見るようにし
てください。
6.3
Security Administrator's Integrated Network Tool (SAINT)
SAINT は、アタックされ易さ ( 弱点 ) がシステムにあるか否かを見つけるための
スキャン・ツールです。SAINT は、SATAN を拡張し更新したバージョンで、49
ページのセクション 4.4「NetworkSecurity Auditor (NSA)」で説明した NSA ツール
に類似しています。他に類似したツールがあっても、複数のツールを持ってい
て、それぞれのツールの結果を相互に確認し比較できることは重要なことです。
SAINT には、既知の弱点を調べる組み込み ( 標準装備の ) テストがいくつも用意
されています。SAINT にとって既知の弱点の全リストについては、
http://www.wwdsi.com/cgi-bin/vulns.pl を参照してください。ただし、弱点の
94
AIX セキ ュ リ テ ィ ー ・ ツ ール
リストは、ツールの各リリースによって異なることに注意してください。した
がって、実行しているのが最新バージョンのソフトウェアであることを確認する
( 対ウィルス保護ソフトウェアで行っているように ) ことが重要になります。
SAINT は、コマンド行からでもブラウザーからでも実行できます。ブラウザー・
インターフェースは、ツールの実行も、その結果の表示もすべてブラウザー内で
行えるので、便利なインターフェースです。オンライン・ドキュメンテーション
も豊富に揃っていて、ツールの使用方法の説明も提供されています。見つけた弱
点を解決する手順についての推奨処置も示されます。
SAINT ホーム・ページは、以下の Web サイトにあります。
http://www.wwdsi.com/saint/index.html
このサイトには、ツールについての詳細情報が豊富に揃っています。プロダクト
についての、かっこいいデモやチュートリアルも揃っています。
6.3.1
SAINT の入手 と イ ン ス ト ール
SAINT はソース・コード形式でのみ入手できます。ソース・コードは、
http://www.wwdsi.com/saint/index.html からダウンロードしてください。. 次に、
ソース・コードを C コンパイラーを使用してコンパイルします。本書を作成し
た時点では、現行バージョンは SAINT 2.2 です。
重要
セキュリティー上の理由で、実動システムに C コンパイラーをロードしてお
くことはお勧めしません。実動システムでないシステムでプログラムをコン
パイルし、実動システムに移動するのは実行可能プログラムだけにしてくだ
さい。また、許可は、できるだけ厳重にセットしてください。
パッケージをインストールするには、gzip ユーティリティー ( ダウンロード用に
Bull サイトから入手可能 )、PERL のコピー、および C コンパイラーが必要です。
本書の作成に使用したのは、AIX 4.3.3 の下の C コンパイラー (AIX 版 ) バージョ
ン 4.4 です。
次の画面で示されているように、パッケージをダウンロードし、インストールし
てください。
第 6 章 ポー ト お よびネ ッ ト ワー ク のスキ ャ ン
95
# ls -l
total 1352
-rw-r----- 1 root
system
687209 Sep 11 14:57 saint-2.2.tar.gz
# gzip -d saint-2.2.tar.gz
# tar -xvf saint-2.2.tar
...
...
# perl reconfig
Reconfiguring...Checking to make sure all the targets are here...
Trying to find Perl...
Perl is in /bin/perl
...
...
Changing paths in config/paths.sh...
# make
Usage: make system-type. Known types are:
aix osf freebsd openbsd bsdi dgux irix4 irix
hpux9 hpux10 hpux11 linux-old linux-new
solaris sunos4 sunos5 sysv4 tru64 unixware7-udk
make: 1254-004 The error code from the last command is 1.
Stop.
# make CC=cc aix
cd src/misc; make "LIBS=" "XFLAGS=-DAUTH_GID_T=in
...
...
cc -o ../../bin/ddos_scan dds.o
追加のインストール情報は、プロダクトに付随している README ファイルにあ
ります。
SAINT を実行するには、コマンド行 (saint -h) またはブラウザーのどちらでも
使用できます。ブラウザー・インターフェースを使用する場合は、ご使用の X11
環境がブラウザーを表示するように正しくセットアップされていることを確か
める必要があります。デフォルトのブラウザーは、インストール・プロセス時に
ユーザーが perl reconfig を実行したときに自動的にセットされています。
saint とタイプ入力して、図 12 (97 ページ ) に示されている SAINT ブラウザー・
インターフェースを起動してください。
96
AIX セキ ュ リ テ ィ ー ・ ツ ール
図 12. SAINT メ イ ン ・ ページ
第 6 章 ポー ト お よびネ ッ ト ワー ク のスキ ャ ン
97
6.3.2
SAINT の使用
重要
一部の会社では、スキャンの実行を厳しく制限しています。スキャンを実行す
る前に、必要な許可を得ているか確認してください。また、厳しい状態の下で
は破損が発生する可能性があるので、スキャンの前にバックアップをとって、
安全を期す必要があります。
以下に、SAINT を構成し、スキャンを実行し、結果を表示するステップを示し
ます。
1. Data Mgmt. ボタン、次に Config Mgmt. ボタンをクリックし、ユーザーの
要件を満たすように SAINT を構成する。
2. Target Selection ボタンをクリックして、スキャンするターゲット・システ
ムを選択する。
3. スキャン方式を選択し、次に Start the scan ボタンをクリックする。
4. Data Analysis ボタンをクリックし、次に By Approximate Danger Level ボ
タンをクリックして、結果を分析する。リストの中の各項目を選択して、さ
らに詳細を分析する。
5. Documentation ボタンをクリックして、SAINT プロダクトに関する全ド
キュメンテーションにアクセスする。
6.4
PortSentry
Psionic から提供されている PortSentry は、ポート・スキャン検出機能です。ポー
ト・スキャンは、アタッカーが日常行う行為の共通部分なので、ポート・スキャ
ンに対して防御することは、ユーザーの環境をセキュアするのに役立ちます。
PortSentry は、ポート・スキャンを検出すると、アタックしている側のホストの
IP アドレスを TCP ラッパーの /etc/hosts.deny ファイルに追加するので、プロテク
トされているサービスに接続しようとする後続の試みは拒否されます。アタック
側のマシンから出ているルーティングも kill することができます。LogCheck
ユーティリティー ( これも Psionic から提供されている ) と一緒に使用すると、
PortSentry は、アタックの可能性があることを検出すると、E-mail でその旨をユー
ザーに知らせる事ができます。( この追加機能を使用しない場合は、ユーザー自
身が定期的に PortSentry ログを調べる必要があります。)
PortSentry のホーム・ページは以下のアドレスにあります。
http://www.psionic.com/abacus/
98
AIX セキ ュ リ テ ィ ー ・ ツ ール
重要
必ず、PortSentry ルールとしきい値を十分にテストしてから、実動で使用する
ようにしてください。いとも簡単に、正当なクライアントをロックアウトし
てしまうことがあります。また、PortSentry をインプリメントしたあとも継続
してモニターし、実行してほしいと期待したことを実際に実行しているか確
認してください。
6.4.1
PortSentry の入手 と イ ン ス ト ール
PortSentry はソ ー ス・コ ー ド 形式 で のみ 入 手で き ます。 ソ ース・コ ード は、
http://www.psionic.com/abacus/portsentry/ からダウンロードしてください。サ
イトに通知してあるシグニチャーを検査して、ダウンロードの保全性を確認して
ください。136 ページのセクション 7.4.1「ダウンロードの保全性の確認」を参照
してください。
パッケージをインストールするには、gzip ユーティリティー ( ダウンロード用に
Bull サイトから入手可能 )、および C コンパイラーが必要です。本書の作成に使
用したのは、AIX 4.3.3 の下の C コンパイラー (AIX 版 ) バージョン 4.4 です。
以下に示すように、パッケージをダウンロードして、アンパックしてください。
[/usr/local] # ls -l
total 408
drwxr-xr-x 2 bin
bin
512 Sep 12 14:52 bin
drwxr-xr-x 3 root
system
512 Aug 30 19:04 include
drwxr-xr-x 13 root
system
512 Sep 12 14:52 lib
drwxr-xr-x 6 root
system
512 Aug 30 19:04 man
-rw-r----- 1 root
system
184320 Sep 12 15:36 portsentry-1.0.tar.Z
drwxr-xr-x 4 root
system
512 Sep 12 14:52 share
drwxr-xr-x 6 root
system
3584 Sep 12 16:00 src
[/usr/local] # gzip -d portsentry-1.0.tar.gz
[/usr/local] # tar -xvf portsentry-1.0.tar
x portsentry-1.0
x portsentry-1.0/CHANGES, 6729 bytes, 14 media blocks.
x portsentry-1.0/CREDITS, 6133 bytes, 12 media blocks.
x portsentry-1.0/LICENSE, 2215 bytes, 5 media blocks.
x portsentry-1.0/Makefile, 5519 bytes, 11 media blocks.
x portsentry-1.0/README.COMPAT, 334 bytes, 1 media blocks.
x portsentry-1.0/README.install, 20191 bytes, 40 media blocks.
x portsentry-1.0/README.methods, 5475 bytes, 11 media blocks.
x portsentry-1.0/README.stealth, 7728 bytes, 16 media blocks.
x portsentry-1.0/ignore.csh, 2715 bytes, 6 media blocks.
x portsentry-1.0/portsentry.c, 52759 bytes, 104 media blocks.
x portsentry-1.0/portsentry.conf, 10403 bytes, 21 media blocks.
x portsentry-1.0/portsentry.h, 3896 bytes, 8 media blocks.
x portsentry-1.0/portsentry.ignore, 236 bytes, 1 media blocks.
x portsentry-1.0/portsentry_config.h, 2438 bytes, 5 media blocks.
x portsentry-1.0/portsentry_io.c, 19871 bytes, 39 media blocks.
x portsentry-1.0/portsentry_io.h, 2912 bytes, 6 media blocks.
x portsentry-1.0/portsentry_tcpip.h, 4688 bytes, 10 media blocks.
x portsentry-1.0/portsentry_util.c, 4160 bytes, 9 media blocks.
x portsentry-1.0/portsentry_util.h, 2325 bytes, 5 media blocks.
第 6 章 ポー ト お よびネ ッ ト ワー ク のスキ ャ ン
99
追加のインストール情報は、プロダクトに付随している README.install ファイ
ルにあります。
PortSentry によって提供されているプロテクションを拡張するには、TCP ラッ
パーがインストールされ、実行されていなければなりません。TCP ラッパーを
インストールし構成する方法について詳しくは、77 ページのセクション 5.2「TCP
Wrapper」を参照してください。
以下に、PortSentry をインストールし構成するステップを示します。
1. portsentry_config.h ヘッダー・ファイルを編集し、ロギング・オプションにつ
いての選択項目を指定する。たとえば、PortSentry に、専用ログ・ファイルに
書き込ませるようにするには、SYSLOG_FACILITY を LOG_LOCAL0 にセッ
トします。また、デフォルトで /usr/local/portsentry にインストールされます
が、これを他の場所にインストールすることもできます。他の場所にインス
トールする場合は、以下に示すヘッダー・ファイルの関係あるフィールドを
変更して下さい。
#define CONFIG_FILE "/usr/local/portsentry/portsentry.conf"
#define SYSLOG_FACILITY LOG_LOCAL0
#define SYSLOG_LEVEL LOG_DEBUG
2. /etc/syslog.conf ファイルを編集して、PortSentry ログ・ファイル用に 1 行追加
する。
local0.debug
mail.debug
/var/adm/portsentry
/var/adm/tcp_wrapper
3. PortSentry ログ・ファイルを作成し、通常のユーザーがアクセスしないように
ファイル許可をセットする。
# touch /var/adm/portsentry
# chmod 600 /var/adm/portsentry
4. portsentry.conf ファイルを編集し、PortSentry の構成選択項目を指定する。さ
まざまな構成オプションについて詳しくは、porsentry.conf ファイルの中のコ
メントおよび README.install ファイルを参照してください。とくに、以下に
示す、PORT_BANNER オプションおよび KILL_ROUTE オプションに注意を
払ってください。
100
AIX セ キ ュ リ テ ィ ー ・ ツ ール
# Un-comment these if you are really anal:
TCP_PORTS="1,7,9,11,15,70,79,80,109,110,111,119,138,139,143,512,513,514,515,540,
635,1080,1524,2000,2001,4000,4001,5742,6000,6001,6667,12345,12346,20034,30303,32
771,32772,32773,32774,31337,40421,40425,49724,54320"
UDP_PORTS="1,7,9,66,67,68,69,111,137,138,161,162,474,513,517,518,635,640,641,666
,700,2049,32770,32771,32772,32773,32774,31337,54321"
#
# Use these if you just want to be aware:
#TCP_PORTS="1,11,15,79,111,119,143,540,635,1080,1524,2000,5742,6667,12345,12346,
20034,31337,32771,32772,32773,32774,40421,49724,54320"
#UDP_PORTS="1,7,9,69,161,162,513,635,640,641,700,32770,32771,32772,32773,32774,3
1337,54321"
...
...
IGNORE_FILE="/usr/local/portsentry/portsentry.ignore"
# Hosts that have been denied (running history)
HISTORY_FILE="/usr/local/portsentry/portsentry.history"
# Hosts that have been denied this session only (temporary until next restart)
BLOCKED_FILE="/usr/local/portsentry/portsentry.blocked"
...
...
# Generic
#KILL_ROUTE="/sbin/route add $TARGET$ 333.444.555.666"
KILL_ROUTE="/usr/sbin/route add $TARGET$ 127.0.0.1
5. portsentry.ignore ファイルを編集し、ユーザーのローカル・インターフェース
の IP アドレスを追加する。
6. 以下に示すように、Makefile を編集し、-Wall フラグを除去し、CFLAGS、
INSTALLDIR、CHILDDIR の各行を変更する。
CFLAGS = -O
INSTALLDIR = /usr/local
CHILDDIR=/portsentry
7. make、make aix、および make install を実行する。このケースでは、インス
トール・ディレクトリーは /usr/local/portsentry です。ここに portsentry 実行可
能プログラムが入ります。
第 6 章 ポー ト お よびネ ッ ト ワー ク のスキ ャ ン
101
[/usr/local/portsentry-1.0] # make
Usage: make <systype>
<systype> is one of: linux, bsd, solaris, hpux, hpux-gcc,
freebsd, openbsd, netbsd, bsdi, aix, osf, generic
This code requires snprintf()/vsnprintf() system calls
to work. If you run a modern OS it should work on
your system with 'make generic'. If you get it to
work on an unlisted OS please write me with the
changes.
Install: make install
NOTE: This will install the package in this
directory: /usr/local
Edit the makefile if you wish to change these paths.
Any existing files will be overwritten.
[/usr/local/portsentry-1.0] # make aix
SYSTYPE=aix
Making
cc -O -o ./portsentry ./portsentry.c ./portsentry_io.c ./portsentry_util.c
...
...
/portsentry_util.c:
[/usr/local/portsentry-1.0]# make install
Creating psionic directory /usr/local
Setting directory permissions
chmod 700 /usr/local
Creating portsentry directory /usr/local/portsentry
Setting directory permissions
chmod 700 /usr/local/portsentry
Copying files
cp ./portsentry.conf /usr/local/portsentry
cp ./portsentry.ignore /usr/local/portsentry
cp ./portsentry /usr/local/portsentry
Setting permissions
chmod 600 /usr/local/portsentry/portsentry.ignore
chmod 600 /usr/local/portsentry/portsentry.conf
chmod 700 /usr/local/portsentry/portsentry
Edit /usr/local/portsentry/portsentry.conf and change
your settings if you haven't already. (route, etc)
WARNING: This version and above now use a new
directory structure for storing the program
and config files (/usr/local/portsentry).
Please make sure you delete the old files when
the testing of this install is complete.
8. PortSentry を TCP モードまたは UDP モードで開始する。
102
AIX セ キ ュ リ テ ィ ー ・ ツ ール
[/usr/local/portsentry]# portsentry -tcp
[/usr/local/portsentry]# portsentry -udp
9. ツールが正しく構成されたことを確かめるまでテストを行う。(KILL_ROUTE
は、経路を、別のネットワーク上のリモート・システムに追加するだけであ
るということに注意してください。)
10. E-mail でのアラートおよびログ管理の改善については、LogCheck ツールをダ
ウンロード (http://www.psionic.com/abacus/logcheck/) するか、または、同
様の機能を実行できるユーザー独自のスクリプトを作成して下さい。
6.4.2
PortSentry に よ っ て提供 さ れる防御策
PortSentry によって、主に、以下の 2 つの形式の防御策が提供されます。
• 最初の防御策は TCP Wrapper を基にしたものです。この方式は、
portsentry_config.h ヘッダー・ファイルの中の WRAPPER_HOSTS_DENY オプ
ションを使用して使用可能にします。この方式が使用可能になると、疑わし
いアタック・ホストの IP アドレスが、TCP Wrapper のアクセス制御ファイル
/etc/hosts.deny に自動的に追加されます。この方式を使用するには、サーバー
上で TCP Wrapper がすでに構成され、実行されていなければなりません。(TCP
Wrapper のインストールと構成について詳しくは、79 ページのセクション
5.2.2「TCP Wrapper の構成」を参照してください。) この方式は、これだけで
は、ポート・スキャンに対して、十分な防御策を提供できません。TCP Wrapper
は、inetd によって開始されたサービス、また、TCP Wrapper を使用してユー
ザーがラップしたサービスをプロテクトするだけであることを思い出してく
ださい。さらに、/etc/inetd.conf でユーザーがラップしたポートが、
portsentry.conf ファイルにリストしたポートに一致していることを確認しな
ければなりません。
• 2 番目の防御策はループバック・アダプターを基にしたものです。この方式
は、portsentry.conf ファイルの中の KILL_ROUTE オプションを使用して使用
可能にします。この防御策が使用可能になると、PortSentry は、ユーザーの
サーバー上のループバック・アダプターを使用して、経路を、疑わしいアタッ
ク・ホストの IP アドレスに自動的に追加します。この新規経路によって、多
くの通常のポート・スキャンを効果的にブロックします。残念ですが、本書
の作成用にテストしたこのツールの AIX バージョンには、秘密スキャンを検
出しブロックするためのサポートがありませんでした。
両方の方式を使用可能にすることをお勧めします。
6.5
リ ス ト ・ オープ ン ・ フ ァ イル (lsof)
lsof ツールは、文字どおり、オープン・ファイルをリストするために使用されま
す。UNIX ( および AIX) では、ネットワーク・ソケットも含めて、ほとんどのも
のがファイルとして表されます。netstat コマンドを使用して未知のポートを見
つけた場合、lsof を使用して、そのポートに関してさらに詳しい情報 ( 所有権な
ど ) を得ることができます。このツールは、anonymous の FTP を使用して、
第 6 章 ポー ト お よびネ ッ ト ワー ク のスキ ャ ン
103
ftp://vic.cc.purdue.edu/pub/tools/unix/lsof から入手できます。また、Bull サ
イトから、installp フォーマットで入手できます。このレッドブックの作成中に
使用したバージョンは、Bull サイトから入手したバージョン 4.50 でした。
6.5.1
lsof のイ ン ス ト ール
パッケージをダウンロードして、そのパッケージがいたずらされていないことを
確かめてください。これを実行する方法について詳しくは、136 ページのセク
ション 7.4.1「ダウンロードの保全性の確認」を参照してください。
パッケージの保全性を確かめたら、パッケージをインフレートし、以下に示すよ
うに installp コマンドを使用して、または SMIT を使用して、インストールし
てください。
# chmod u+x lsof_aix432-4.50.0.0.exe
# ./lsof_aix432-4.50.0.0.exe
UnZipSFX 5.32 of 3 November 1997, by Info-ZIP ([email protected]).
inflating: lsof-4.50.0.0.bff
inflating: lsof-4.50.0.0.bff.asc
# ls -l
total 2640
-rw-r--r-- 1 root
system
972800 Jul 04 04:55 lsof-4.50.0.0.bff
-rw-r--r-- 1 root
system
2580 Jul 04 10:38 lsof-4.50.0.0.bff.asc
-rwx------ 1 root
system
369866 Sep 01 14:48 lsof_aix432-4.50.0.0.exe
# rm .toc
# installp -acgX -d . freeware.lsof.rte
代替方法として、以下のように SMIT を使用して、ファイル・セットをインス
トールすることができます。
1. smitty installp と タ イ プ す る
2. ALL Available Software から Install and Update を選択する
3. . ( ドット ) とタイプし、Enter を押す
4. F4 または ESC+4 とタイプし、ファイル・セットをリストする
5. Find freeware.lsof を選択する (F7 または ESC+7 ファイル・セットを選択
する )
6. Enter を三回押してインストールする
fileset not found メッセージが出てインストールが失敗した場合は、SMIT を終了
し、.toc file (#rm .toc) を除去し、インストールを再度行ってください。
installp または SMIT のどちらを使用した場合でも、インストールが正常に完了
したことを確認してください。
104
AIX セ キ ュ リ テ ィ ー ・ ツ ール
Installation Summary
-------------------Name
Level
Part
Event
Result
------------------------------------------------------------------------------freeware.lsof.rte
4.50.0.0
USR
APPLY
SUCCESS
以下に示すように、lslpp コマンドを使用して確認することもできます。
# lslpp -l freeware.lsof.rte
Fileset
Level State
Description
---------------------------------------------------------------------------Path: /usr/lib/objrepos
freeware.lsof.rte
4.50.0.0 COMMITTED List Open Files
6.5.2
lsof の使用
lsof ツールは広い用途に使用できます。ここでは、単純な使用例を示します。
netstat -af inet コマンドを実行して、不明なポートを見つけたとします。
netstat コマンドが以下に示す結果を出力するとします。
# netstat -af inet
Active Internet connections (including servers)
Proto Recv-Q Send-Q Local Address
Foreign Address
tcp4
0
2 arthur.telnet
merlin.32809
tcp
0
0 *.ftp
*.*
tcp4
0
0 *.time
*.*
tcp
0
0 *.telnet
*.*
tcp4
0
0 *.32768
*.*
tcp4
0
0 *.865
*.*
tcp4
0
0 *.864
*.*
tcp4
0
0 *.sunrpc
*.*
udp4
0
0 *.time
*.*
udp4
0
0 *.*
*.*
udp4
0
0 *.*
*.*
udp4
0
0 *.32770
*.*
udp4
0
0 *.865
*.*
udp4
0
0 *.864
*.*
udp4
0
0 *.32768
*.*
(state)
ESTABLISHED
LISTEN
LISTEN
LISTEN
LISTEN
LISTEN
LISTEN
LISTEN
UDP ポート 32768 が不明なので、どのサービスが所有しているのかを見つける
必要があります。以下に示すように lsof を実行できます。
第 6 章 ポー ト お よびネ ッ ト ワー ク のスキ ャ ン
105
# lsof -i udp -p 32768
lsof: WARNING: compiled for AIX
COMMAND
PID USER FD TYPE
syslogd 3978 root
4u IPv4
inetd
5986 root
8u IPv4
rpc.statd 6200 root 20u IPv4
rpc.statd 6200 root 22u IPv4
version 4.3.2.0; this is
DEVICE SIZE/OFF NODE
0x700f3a00
0t0 UDP
0x70030300
0t0 UDP
0x700e9d00
0t0 UDP
0x700e9a00
0t0 UDP
4.3.3.0.
NAME
*:syslog
*:time
*:864
*:865
この出力から、どのサービスがこのポートを使用しているかがわかるので、必要
に応じてアクションをとることができます。
6.6
侵入の検出
侵入検出ソフトウェアを使用すると、アタックからネットワークをプロテクト
し、E-mail で受け取ったアラートを基に適切なアクションがとれます。アタッ
カーは、ターゲットをアタックするとき、通常、ある一定のパターン ( シグニ
チャー・パターンとも言います ) にしたがって行動します。ネットワークをプロ
テクトするために、ネットワークに探知機能 ( センサーとも言う ) を置いてネッ
トワーク・アクティビティーをモニターすることができます。アクティビティー
が、既知の アタック・パターンのシグニチャーに一致すると、アラートがあが
り、アタックが差し迫っていることをユーザーに知らせます。
侵入検出ソフトウェアをいつも最新のものにしておくと、最新のアタック・パ
ターンをセンサーに知らせておくことができます。ある形式のアタックは非常に
巧妙 ( かつ低速度 ) なので、ツールの感度がキーであることを思い出してくださ
い。よく注意を払って、侵入検出ソフトウェアが適切に構成されていることを確
認してください。
侵入検出ツールの例には、以下のものがあります。
•
•
•
•
•
ISS RealSecure
NFR Network Flight Recorder
Cisco NetRanger
Computer Associates SessionWall
Axent NetProwler
さまざまなプロダクトの比較については、以下の Web サイトを参照してくださ
い。
http://www.stevenspublishing.com/stevens/secprodpub.nsf/PubHome/1F93DB21EE
40EE8086256855005882EB?Opendocument
すでに述べたように、ポート・スキャナー ( たとえば nmap) に対してプロテクト
するには、98 ページのセクション 6.4「PortSentry」で説明した PortSentry を使用
できます。この場合には、PortSentry サーバーをセンサーとして使用して、アタッ
クの可能性についてアラートを上げさせることができます。
106
AIX セ キ ュ リ テ ィ ー ・ ツ ール
もう 1 つの侵入検出オプションとして、セキュリティー・エキスパートを持つ外
部の会社と、一日 24 時間週 7 日 (24x7) ネットワークを監視する契約を結ぶこと
を検討することも必要です。これらの会社では、侵入検出サポートに加え、ユー
ザーのセキュリティー体勢を評価し、ざまざまな改善策を提案することもできま
す。このサポートをアウトソーシングする最も大きな利点は、アタックまたは侵
入が実際に起こったときに、防御アクティビティーおよび事後分析アクティビ
ティーを手助けしてくれるセキュリティー・エキスパートが身近にいるというこ
とです。詳しくは、http://www.ers.ibm.com を参照してください。
第 6 章 ポー ト お よびネ ッ ト ワー ク のスキ ャ ン
107
108
AIX セ キ ュ リ テ ィ ー ・ ツ ール
第 7 章 シ ス テムおよびデー タ の保全性
システムおよびデータの保全性はセキュリティーの重要な局面です。ファイル (
それがシステム・ファイルであれ、データ・ファイルであれ ) が、いたずらされ
たり不法にアクセスされていないことを確認する必要があります。アタッカーが
システムに侵入すると、よくある行動として、秘密のドアやトロイの木馬の役割
をするプログラムをシステムの中に残していきます。システム・プログラムは、
アタッカーが再び簡単にシステムにアクセスできるようにする、あるいは、この
システムまたは接続システムを将来アタックするための追加情報をアタッカー
に提供する変更バージョンで置き換えられます。したがって、セキュリティー・
ツールを用意しておいて、システム・ファイルが変更されていないという確信を
つねに持てるようにしなければなりません。
システム保全性は、パスワード・ポリシーのエリアもカバーします。パスワード
は、ゲスするのが難しく、定期的に有効期限が切れ、有効期限が切れた後は再使
用不可になり、共有できないものでなければなりません。一般的に、共有アカウ
ントは責任能力を欠くので、お勧めできるものではありませんが、どうしても必
要な場合 (root で使用する場合など ) は、直接ログインができないように構成す
ることが必要です。代わりに、su コマンドの使用が必要なように構成しなけれ
ばなりません。有効なユーザーと、ユーザーのパスワードを盗み取ったアタッ
カーとを区別することはほとんど不可能なので、パスワードの保全性は非常に重
要です。一部のスキャン・プログラム (NSA など ) は、見ればすぐわかるパス
ワード ( たとえば root のための root) は見つけますが、パスワード保全性を確実
にするには、不正パスワードを破ることに特化したプログラムを持つ必要があり
ます。
ユーザーのプライバシーもプロテクトしなければなりません。機密ファイルは、
無許可アクセスから守らなければなりません。UNIX の標準的なファイルとディ
レクトリー許可には、ある程度のプロテクション手段が用意されています。しか
し、root ユーザーは、依然としてこれらの許可をバイパスしてファイルにアクセ
スすることができます。より望ましい解決方法は、ユーザーの機密情報をプロテ
クトする (root からも ) ために使用できる暗号化ツールをユーザーに提供するこ
とです。
インターネットによるダウンロードも、システムとデータの保全性という観点か
らは、懸念すべきもう 1 つのエリアです。ダウンロードは、こんにちの環境でよ
く使われているので、システム・ユーザーには、ダウンロードの保全性を確実に
するための方法を提供する必要があります。言い換えれば、システム・ユーザー
は、ダウンロードされたものが確かに欲したものであって、アタッカーなどによっ
ていたずらされたものではないということに確信が持てなければなりません。
この章では、以下のツールについて説明します。
• Tripwire
• John the Ripper
• Pretty Good Privacy (PGP)
© Copyright IBM Corp. 2002
109
• MD5
Tripwire は、システム・ファイルおよび構成ファイルが変更されていないという
保証を与えるツールです。単純に表現すれば、Tripwire は、システム・バイナ
リーのチェックサムと構成ファイルのチェックサムが入ったデータベースを作
成します。このデータベースは、たとえば、インストールされたばかりで外部
ネットワークにまだ接続されていない、クリーンなシステムに作成する必要があ
ります。Tripwire は、システム・ファイルについて 2 つ以上のチェックサムを計
算し、それをデータベースに保管し、これをシステム・ファイルの現在のコピー
と定期的に比較します。これらのファイルのいずれかが置き換えられたかいたず
らされた場合は、Tripwire はアラートを上げます。
John the Ripper は、パスワード・クラッカー・プログラムです。厳重なパスワー
ド管理を行うことは、すべての組織において、セキュリティー・ガイドラインの
一部でなければなりません。AIX には、厳重なパスワード・ポリシーをインプリ
メントするために、多くの機能が用意されています。しかし、これらのポリシー
では、良いパスワードをユーザーが選ぶことを強制しているだけです。この章で
説明するツールは、一歩踏み出し、( アタッカーが見つける前に ) ユーザーが弱
点のあるパスワードを見つけ、修正できるようにします。
Pretty Good Privacy (PGP) は、ユーザーが機密ファイルをプロテクトするために
自分で使用できる暗号化ツールです。これは、暗号化された E-mail を使用して
リモート・ユーザーとセキュアな通信を行うためにも使用できます。PGP は、使
いやすいので、よく使われているツールです。
MD5 は、インターネットからダウンロードされたファイルの保全性を確認する
ツールです。MD5 はファイルについて固有のチェックサムを計算し、MD5 が使
用しているアルゴリズムは、ファイルにわずかな変更が行われても感度よく反応
できます。このツールを有効に使用するには、ファイルをダウンロードした元の
サイトは、MD5 チェックサムを公表しておく必要があります。ユーザーは、ファ
イルをダウンロードしたら、MD5 を実行し、その出力を公表されている値と比
較します。値が一致しない場合は、ファイルをアンパックしたり実行しないでく
ださい。削除して、サイトの所有者に通知してください。
7.1
Tripwire
Tripwire は、パブリック・ドメイン・ツールで、一連のシステムあるいは構成
ファイルが変更されていないことを、ユーザーが高い確信度で確認するのに役立
ちます。アタッカーは、ルーチン作業の一部として、再び簡単に戻れるように、
システムに秘密のドアを設けます。これは、たとえば、一部のシステム・ファイ
ルを、変更されたバージョン ( トロイの木馬プログラムなど ) で置き換えること
によって行われます。Tripwire は、この種のことを検出し訂正するのに役立つ
ツールです。
Tripwire を構成するときに、重要ファイル (tw.config ファイルで定義される ) に
ついて関係のあるセキュリティー情報をすべて保管するデータベースが作成さ
110
AIX セ キ ュ リ テ ィ ー ・ ツ ール
れます。このデータベースは、これらのファイルについてのセキュリティー・
ベースラインを提供します。したがって、Tripwire を定期的に実行してこれらの
システム・ファイルのそれぞれを調べ、不適切な方法で変更されていないことを
確認します。Tripwire は、構成ファイルにリストされているファイルをデータ
ベースに照らして調べ、検出されたすべての矛盾をレポートします。検出から逃
れるには、アタッカーは、システム・ファイルを、サイズ、チェックサム、タイ
ム・スタンプなどが同一のファイルで置き換えなければならず、これは極めて難
しい仕事になります。( これが非常に難しいのは、Tripwire は、チェックサムを
計算するのに 2 つの異なるチェックサム・アルゴリズムを使用しているからで
す。変更システム・ファイルを作成して、両方のチェックサムに一致させるの
は、膨大なタスクになります。)
プロテクションを最大にするには、データベース、構成ファイル、および、Tripwire
実行可能プログラムを、十分な保護のもとにオフラインで保管する必要がありま
す。データベースや構成ファイルをシステムにリストアするのは、Tripwire を再
び実行する準備ができたときだけにします。Tripwire コンポーネントの一部が破
損された場合は、Tripwire は使い物にならなくなります。たとえば、アタッカー
は、Tripwire データベースを入手した場合、システム上にロードした更新システ
ム・ファイルに一致するようにチェックサムを変更することができます。した
がって、Tripwire を次回に実行すると、すべてが正しく見えます。
理想的には、Tripwire は、システム・インストール完了の直後、まだシングル
ユーザー・モードで、外部ネットワークに接続されていない間に実行するべきで
す。これによって、ユーザーは、データベースの、“ 不明さがない信頼できる ” コ
ピーを持つことができます。また、Tripwire は、システム・ファイルを更新する
ような変更 ( たとえば、O/S のアップグレード、PTF、APAR など ) がシステムに
加えられる直前および加えられた直後にも実行する必要があります。
7.1.1
Tripwire の入手 と イ ン ス ト ール
Tripwire は、1992 年に Purdue University ではじめて開発されました。1998 年に、
Purdue University は、Tripwire の管理を Tripwire Security Solutions, Inc.(TSS) に移
しました。TSS の Web サイトは、http://www.tripwiresecurity.com/ にありま
す。TSS では、Tripwire のオープン・ソース・バージョンおよび購買目的のバー
ジョンの両方を提供しています。購買目的のバージョンには、便利な追加機能が
入っています。これらの 2 つのバージョンの比較については、
http://www.tripwiresecurity.com/products/index.cfml を参照してください。
installp フォーマットのバージョンの Tripwire は、Bull サイト
http://www.bull.de/pub/out/ から入手できます。このレッドブック用にダウン
ロードしたバージョンは Tripwire 1.2 でした。より新しいバージョンは TSS から
入手できますが、installp フォーマットではありません。つまり、AIX 用にコン
パイルし、手動でインストールしなければなりません。
第 7 章 シ ス テムお よ びデー タ の保全性
111
パッケージをダウンロードしたら、いたずらされていないことを確かめてから、
インストールしてください。これを実行する方法について詳しくは、136 ページ
のセクション 7.4.1「ダウンロードの保全性の確認」を参照してください。
パッケージをインフレートして、正しくインフレートされたことを確かめてくだ
さい。
# ./tripwire-1.2.1.0.exe
Archive: ./tripwire-1.2.1.0.exe
inflating: tripwire-1.2.1.0.bff
# ls -l
total 1480
-rw-r--r--rwx------
1 root
1 root
system
system
412672 Aug 09 1996 tripwire-1.2.1.0.bff
336614 Aug 16 13:58 tripwire-1.2.1.0.exe
ファイル・セットをインストール (installp または SMIT を使用 ) して、正常にイ
ンストールされたことを確かめてください。
# installp -acqX -d . freeware.tripwire.tripwire_bin
Installation Summary
-------------------Name
Level
Part
Event
Result
------------------------------------------------------------------------------freeware.tripwire.tripwire_ 1.2.1.0
USR
APPLY
SUCCESS
また、lslpp -l freeware.tripwire.tripwire_bin コマンドを使用してインストー
ルを確かめることもできます。
7.1.2
Tripwire の構成 と 使用
以下のファイルは、Tripwire にとって重要なファイルです。
• プログラム・ファイル : /usr/security/bin/tripwire
• 構成ファイル : /usr/adm/tcheck/tw.config
• データベース : /usr/adm/tcheck/databases/tw.db_<hostname>
プログラム・ファイルは、システム保全性を調べるために定期的に実行する必要
がある実行可能プログラムです。構成ファイルには、プロテクトする必要がある
システム・ファイルのリストが入っています。このファイルは、Tripwire をはじめ
て実行する前に作成しておく必要があります。Tripwire はこのファイルを使用して
データベースにデータを入れます。データベースには、構成ファイルにリストさ
れているファイルおよびディレクトリーについて、以下の情報が保管されます。
• 許可およびファイル・モードのビット
112
AIX セ キ ュ リ テ ィ ー ・ ツ ール
• アクセス・タイム・スタンプ
• i ノード番号
• モディフィケーション・タイム・スタンプ
• リンクの数 (ref カウント )
• i ノード作成タイム・スタンプ
• 所有者のユーザー ID
• 所有者のグループ ID
• ファイルのサイズ
• シグニチャー 1 ( デフォルトでは MD5)
• シグニチャー 2 ( デフォルトでは Snefru)
2 つの異なるシグニチャーがファイル・サイズと組み合わされて、同じ特性を持
つファイルをもう 1 つ作成することが極めて難しくなります。デフォルトの構成
ファイルが AIX 4.1.5 用に作成されていますが、多くの場合、ユーザーのシステ
ムに合うように変更する必要があることに注意してください。
Tripwire は、以下の 4 つのモードのいずれかで実行できます。
• データベースの生成
• データベースの更新
• 保全性の検査
• 対話式による更新
データベースの生成 モードでは、Tripwire は、構成ファイルに基づいて、デー
タベース (/usr/adm/tcheck/databases/tw.db_<hostname>) を作成します。データベー
スを初期設定するには、次のようにします。
# cd /usr/adm/tcheck
# /usr/security/bin/tripwire -initialize
重要
必ず、現行作業ディレクトリーが /usr/adm/tcheck にセットされているのを確
かめてから、データベースを初期化してください。Tripwire は、databases サ
ブディレクトリーを現行作業ディレクトリーの中に作成し、次に、データベー
スを databases ディレクトリーの下に作成します。
データベースの更新 モードでは、データベースは、現在の構成情報で更新され
ます。この更新は、システム・ファイルに対する変更あるいはオペレーティン
グ・システムのパッチの適用などの、正当な変更がシステムに対して行われると
きに必要になります。
第 7 章 シ ス テムお よ びデー タ の保全性
113
# /usr/security/bin/tripwire -update <path_of_changed_file_or_directory>
保全性の検査 モードでは、Tripwire は、追加されたファイル、削除されたファ
イル、および変更されたファイルについての報告書を生成します。これは、現在
の構成情報を、データベース (/usr/adm/tcheck/databases/tw.db_<hostname>) に保管
されている構成情報に照らして比較することによって行われます。
# /usr/security/bin/tripwire | tee /tmp/tripwire.out
対話式による更新 モードでは、Tripwire は、変更されたことについてただレポー
トするだけではなく、これらの変更内容をデータベースに適用するようユーザー
にプロンプトを出します。
# /usr/security/bin/tripwire -interactive
7.1.3
Tripwire の構成
Tripwire の構成において最も重要なステップは、正確で完全な構成ファイルを作
成することです。構成ファイルには、Tripwire を使用してプロテクトする必要が
あるシステム・ファイルとディレクトリーのリストを入れる必要があります。
AIX 4.1.5 用に作成された、提供されている Tripwire 構成ファイルを使用して始
めることもできるし、あるいは、はじめからユーザー独自の構成ファイルを作成
することもできます。ここでは、前者の方法を使用しました。
1. /etc/security/sysck.cfg を使用して、Tripwire 構成ファイル用に、最初のデ
ルタ・ファイルを作成する。
# cat /etc/security/sysck.cfg | grep ":" | sed s/://g | \
>sort > tripwire.list.sort
# chmod 600 tripwire.list.sort
2. ユーザーが重要と考える追加のファイルやディレクトリーで
tripwire.list.sort ファイルを変更する。本書の場合は、以下のものを追加
しました。
114
AIX セ キ ュ リ テ ィ ー ・ ツ ール
/.kshrc
R
# may not exist
/usr/lib/boot/unix_mp R
/usr/lib/boot/unix_up R
/usr/lib/boot/unix_kdb R
/usr/lib/boot/unix_mp_kdb
R
/unix
R
/etc/security/limits
R
/etc/security/login.cfg R
/usr/lib/objrepos L
# files frequently modified
/etc/objrepos
L
/usr/bin/whoami
R
/usr/bin/sh
R
/usr/bin/Rsh
R
/usr/bin/tsh
R
/usr/bin/bsh
R
/usr/bin/ls
R
/usr/adm/wtmp
L
## protect other binaries you installed in your system, Eg security tools
/usr/local/bin/nmap
R
/usr/local/bin/ssh
R
/usr/local/bin/pgp
R
/usr/local/bin/lsof
R
3. このファイルの内容を、Tripwire パッケージと一緒に提供された tw.config
ファイルとマージする。
4. 構成ファイルを Tripwire の CheckConfig スクリプトを使用して検査する。( こ
のスクリプトの使用方法について詳しくは、
/usr/local/lib/tripwire-1.2/README.CheckConfig ファイルを参照してくだ
さい。)
# /usr/local/lib/tripwire-1.2/CheckConfig -v /usr/adm/tcheck/tw.config
/:
directory
/.rhosts:
file
/.netrc: not found
/.profile:
file
/.cshrc: not found
/.login: not found
/.kshrc:
file
/usr/lib/boot/unix_mp: file
/usr/lib/boot/unix_up: not found
/usr/lib/boot/unix_kdb: not found
/usr/lib/boot/unix_mp_kdb:
file
/unix: symlink
/dev: directory
/sbin: directory
/usr/local:
directory
/usr: directory
5. CheckConfig スクリプトの出力に基づいて、tw.config ファイルに追加の変更
を行い、CheckConfig を再度実行する必要がある。
6. CheckConfig の出力に満足できた場合は、データベースを初期設定する。
第 7 章 シ ス テムお よ びデー タ の保全性
115
[/usr/adm/tcheck] # /usr/security/bin/tripwire -initialize
### Phase 1: Reading configuration file
### Phase 2: Generating file list
### Phase 3: Creating file information database
###
### Warning: Database file placed in ./databases/tw.db_sp5en01.
###
###
Make sure to move this file file and the configuration
###
to secure media!
###
###
(Tripwire expects to find it in '/usr/adm/tcheck/databases'
7. はじめて Tripwire データベースを初期設定すると、Tripwire が矛盾だと思っ
ていることがレポートされる。要求された変更内容で構成ファイルを更新し、
再度データベースを初期設定します。( システムがまだネットワークに接続さ
れていない限り、これらの変更内容は、通常のシステム動作に必然的に付随
するものと考えてください。)
116
AIX セ キ ュ リ テ ィ ー ・ ツ ール
[/usr/adm/tcheck] # /usr/security/bin/tripwire
### Phase 1: Reading configuration file
### Phase 2: Generating file list
### Phase 3: Creating file information database
### Phase 4: Searching for inconsistencies
###
###
Total files scanned:
6667
###
Files added:
0
###
Files deleted:
0
###
Files changed:
6111
###
###
After applying rules:
###
Changes discarded:
6108
###
Changes remaining:
5
###
changed: -rwxrwxr-- root
27029 Jul 20 14:16:31 1999 /sbin/rc.boot
changed: -rw-r--r-- root
1826 Sep 11 18:54:53 2000 /etc/inittab
changed: -rw-r----- root
1412 Sep 11 18:55:36 2000 /etc/security/lastlog
changed: -rw------- root
0 Sep 11 18:55:26 2000 /etc/pmd_lock2
changed: -rw------- root
0 Sep 11 18:55:26 2000 /etc/pmd_lock
### Phase 5: Generating observed/expected pairs for changed files
###
### Attr
Observed (what it is)
Expected (what it should be)
### =========== ============================= =============================
/sbin/rc.boot
st_ctime: Mon Sep 11 18:53:50 2000
Sun Sep 10 23:15:04 2000
/etc/inittab
st_ino: 403
405
/etc/security/lastlog
st_mtime: Mon Sep 11 18:55:36 2000
st_ctime: Mon Sep 11 18:55:36 2000
md5 (sig1): 2noet1FpnqVIw1XwfZEL9f
snefru (sig2): 2egxLZbqhjIm6g64gpYOSR
Mon Sep 11 17:45:35 2000
Mon Sep 11 17:45:35 2000
25zTiUps0WezoeLB7nJUki
2jbnbYfhkSkdJWLppnIFf.
Çô/etc/pmd_lock2
st_ino: 409
476
/etc/pmd_lock
st_ino: 476
477
8. Tripwire がもう変更するものがないとレポートするまで、このプロセスを必
要な回数だけ繰り返す。
第 7 章 シ ス テムお よ びデー タ の保全性
117
[/usr/adm/tcheck]# /usr/security/bin/tripwire
### Phase 1: Reading configuration file
### Phase 2: Generating file list
### Phase 3: Creating file information database
### Phase 4: Searching for inconsistencies
###
###
Total files scanned:
###
Files added:
###
Files deleted:
###
Files changed:
###
###
After applying rules:
###
Changes discarded:
###
Changes remaining:
###
6667
0
0
6010
6010
0
9. Tripwire データベースの初期設定が正常に完了したならば、データベース、構
成ファイル、および Tripwire 実行可能プログラムを、安全なエリア ( たとえ
ば、別のセキュア・マシン、読み取り専用メディア、または、PGP で暗号化
されたローカル・マシン ) に保管する。Tripwire を再度実行するには、データ
ベースを /usr/adm/tcheck/databases/ に戻す必要があります。
7.1.4
構成に関する コ メ ン ト
Tripwire 構成ファイル (tw.config) の作成には、
多くの思考と計画作業が必要です。
構成ファイルに、たった 1 つのキー・システム・ファイルが欠落しているだけで
も、アタッカーにドアを開けることになります。重要なシステム・ファイルは、
ディレクトリー (/sbin または /usr/sbin など ) の指定によって選ばれるだろうと
想定しないで、tw.config ファイルに明示的に指定する必要があります。
ゴールは、変更されたファイルに関する Tripwire 報告書を、日常の通常アクティ
ビティーによって変更されるファイルだけにとどめて、最小化することにありま
す。これによって、報告書の中で指摘される疑わしいアクティビティーを見分け
ることがはるかに簡単になります。このプロセスは反復プロセスだということを
承知しておいてください。Tripwire を実行すること、報告書を調べること、構成
ファイルを変更すること、Tripwire の再実行などには時間を十分使う必要があり
ます。これを洗練して、ユーザーの環境で作動するツールにするには、さらに時
間がかかります。各反復プロセスの後で、必ず、構成ファイル、データベース、
および、実行可能プログラムを、安全な場所に保管してください。これらのファ
イルの保全性によって、Tripwire の強さが決まります。
7.1.5
Tripwire はいつ実行すべきか
Tripwire の初期設定は、理想的には、システムのインストールと構成の完了の直
後、まだシングルユーザー・モードで、外部ネットワークに接続されていない間
に行うべきです。
118
AIX セ キ ュ リ テ ィ ー ・ ツ ール
Tripwire を定期的に実行して、重要なシステム・ファイルまたはディレクトリー
に無許可の変更が行われていないことを確認してください。また、たとえば、オ
ペレーティング・システムのアップグレード、PTF、APAR、新規ソフトウェア
のインストールなどのためにシステムを変更する直前または変更した直後にも、
実行してください。いつものように、Tripwire の構成ファイルとデータベースの
変更後のコピーを、必ず、安全な場所に保管してください。
7.1.6
Tripwire の代替
Tripwire の代替には以下のものがあります。
• Trusted Computing Base (TCB)
• COPS
• Tamu’s Tiger
Trusted Computing Base (TCB) は AIX と一緒に提供されるフィーチャーです。
TCB には多くの欠点がありますが、小さからぬ欠点は、AIX のインストール中
にしか使用可能にできない ( インストール後にはできない ) ことです。TCB につ
いて詳しくは、AIX4.3 Elements of Security Effective and Efficient Implementation、
SG24-5962 の第 6 章を参照してください。
COPS お よ び Tamu’s Tiger に つい て 詳し く は、ExploitingRS/6000 SP Security:
Keeping it safe、SG24-5521 の第 7 章を参照してください。
7.2
John the Ripper
John the Ripper はパスワードをクラックする ( 破る ) ためのツールです。弱いパ
スワードは、アタッカーがシステムへの無許可アクセスを得るために最もよく使
う手口です。有効なユーザーと、有効なユーザーのパスワードを盗み取ったア
タッカーとを区別することはほとんど不可能なので、これはアタックの形式の中
でも最も狡猾な方法です。John the Ripper にパスワード・ファイルを予防として
スキャンさせることは、パスワードが十分強い ( 破りにくい ) ことを確認する 1
つの方法になります。
強いパスワードを持てるようにする最初のステップは、強いパスワードはどのよ
うに作られるかについて、システムのユーザーを教育することから始まります。
以下に、レッドブック AIX 4.3 Elements of Security からとったガイドラインの一
部を示します。
• ユーザー ID またはその順列を変えたものを使用しない。
• 同じパスワードを複数のシステムで使用する場合はとくに注意が必要。同じ
root パスワードを複数のシステムで決して使ってはならない。
• 人の名前を使ってはならない。
• オンライン・スペルチェック・ディクショナリーにあるワードを使ってはな
らない ( とくに、ネットワークで接続されたシステム、または大規模のマル
チユーザー・システムの場合 )。
第 7 章 シ ス テムお よ びデー タ の保全性
119
• 5 ~ 6 文字より短いパスワードは使ってはならない。
• 不敬なワードや悪口言葉は使ってはならない。パスワードを推測するときに
は、これらの言葉が最初に試みられる。
• 思い出せるパスワードを使うのがよい。パスワードは紙に書いてはならない。
• 文字と数字からなるパスワードを検討せよ。
• クイックにタイプできるパスワードを使うのがよい。
• 間に数値が入った 2 つのワードは、よいパスワードが作れる。
• 1 つのワード ( 少なくとも 6 文字 ) の中に 1 つの数字が挿入されているのが、
良いパスワードになる。“l” を “1” に、または “o” を “0” に変えることで数字
を作ってはならない。内部に数字が入っているワードのほうが、先頭または
末尾に数字があるパスワードよりも良い。
• 発音できるパスワードは思い出しやすい。
• AIX では、パスワードの先頭 8 文字だけを調べる。ただし、パスワードは 8
文字より長くてもかまわない。
• 1 つのよい方法は、1 つのセンテンスを憶えて、各ワードの最初の文字をパス
ワードに使う。たとえば、“the cat sat on the mat” = tcsotm。
上記のガイドラインの一部は、AIX によって提供されている機能を使用して実施
することができますが、ガイドラインの多くは、教育と継続的な施行を必要とし
ます。John the Ripper は、施行部分で役立つツールです。
7.2.1
John the Ripper の入手 と イ ン ス ト ール
John the Ripper のメイン・サイトは http://www.openwall.com/john/ です。この
ツールは、このサイトからソース・コードのフォーマットで、あるいは、Bull サ
イトから installp フォーマットで、ダウンロードできます。このレッドブックに
使用したバージョンは、Bull サイトから入手したバージョン 1.6 でした。
パッケージをダウンロードしたら、いたずらされていないことを確かめてから、
インストールしてください。確認の方法について詳しくは、136 ページのセク
ション 7.4.1「ダウンロードの保全性の確認」を参照してください。
パッケージをインフレートし、インストールしてください (installp または SMIT
を使用して )。
120
AIX セ キ ュ リ テ ィ ー ・ ツ ール
# ls -l
total 1048
-rwx------
1 root
system
535904 Sep 12 09:54 john-1.6.0.0.exe
# ./john-1.6.0.0.exe
UnZipSFX 5.32 of 3 November 1997, by Info-ZIP ([email protected]).
inflating: john-1.6.0.0.bff
# installp -acgX -d . freeware.john.rte
Installation Summary
-------------------Name
Level
Part
Event
Result
------------------------------------------------------------------------------freeware.john.rte
1.6.0.0
USR
APPLY
SUCCESS
# lslpp -l freeware.john.rte
Fileset
Level State
Description
---------------------------------------------------------------------------Path: /usr/lib/objrepos
freeware.john.rte
1.6.0.0 COMMITTED John the Ripper Password
Cracker
ファイル・セットが正常にインストールされたら、root だけがこのファイル・
セットを実行できるように、実行可能プログラム (/usr/local/bin/john) 上の所
有権と許可を変更してください。
重要
多くの組織では、厳重なポリシーを設けて、John the Ripper のようなツールを
無許可使用することを禁止しています。必ず、書面で許可が得られているこ
とを確認してから、このツールを実行してください。
7.2.2
John the Ripper の構成
John the Ripper がパスワードをクラックするのに使用するモードは 3 つあります。
• Single Crack
• Wordlist
• Incremental
Single Crack モードが最も高速です。入力として、/etc/password ファイルにある
login/GECOS 情報が使用されます。
Wordlist モードは、入力として、1 行に 1 ワード入っているファイルを使用しま
す。Wordlist ファイル (/usr/local/bin/john-1.6/password.lst) は、パッケージと
一緒に提供されます。これは短いリストで、ユーザーが追加のワードを足す必要
があります。たとえば、以下のようにして、このファイルを、bos.data ファイ
ル・セット (AIX インストール CD に入っている ) にある /usr/share/dict/words ファ
イルとマージできます。
第 7 章 シ ス テムお よ びデー タ の保全性
121
#export JOHNDIR=/usr/local/lib/john-1.6
#cp /usr/share/dict/words $JOHNDIR
#cat $JOHNDIR/password.lst >> $JOHNDIR/words
#/usr/bin/tr A-Z a-z < $JOHNDIR/words | \
sort -u > $JOHNDIR/words.list.sort
マージが終了したら、john.ini 構成ファイルの中の Wordfile エントリーを編集し
て、新規ファイル名 (/usr/local/lib/john-1.6/words.list.sort) を反映します。
Incremental モードが最も強力な機能を持っています。このモードは可能な限り
すべての文字の組み合わせを使用して、終局的にすべてのパスワードをクラック
します。ただし、このように実行するには時間がかかるので、このモードを修正
せずに実行するのは実用的ではありません。パラメーターを $JOHNDIR/john.ini
ファイルにセットして、この操作モードをコントロールし、現実的で実際的な方
法に変更することができます。
7.2.3
John the Ripper の使用
重要
多くの組織では、厳重なポリシーを設けて、John the Ripper のようなツールを
無許可使用することを禁止しています。必ず、書面で許可が得られているこ
とを確認してから、このツールを実行してください。
John the Ripper では、パスワード・ファイルが単一ファイルであることが必要で
す。AIX ではシャドー・パスワード・ファイルを実装しているので、/etc/passwd
ファイルおよび /etc/security/passwd ファイルを、単一ファイルにマージする必
要があります。付録 C、
「AIX パスワード・ファイルをマージするスクリプト」
(209 ページ ) に、2 つのファイルをマージするための (Crack パッケージから入手
した ) shadmrg.aix スクリプトのリストが示されています。( 代替方法として、2
ファ イ ルの 中 の
“|”
マ ーク を、
つの フ ァイ ル の内 容 を、/etc/passwd
/etc/security/passwd ファイルの中の暗号化されたパスワードで置き換えるこ
とによって、手動でマージできます。)
# ./shadmgr.aix > /tmp/password
# chmod 600 /tmp/password
- OR # ./shadmgr.aix | egrep -v "useridA|useridB|useridC" > /tmp/password
# chmod 600 /tmp/password
122
AIX セ キ ュ リ テ ィ ー ・ ツ ール
このコマンドは shadmgr.aix スクリプトを実行して、マージされたパスワード・
ファイル (/tmp/password) を作成します。egrep コマンドを使用して、スキャンす
る必要がないユーザーをフィルターに掛けます。また、必ず、root だけがアクセ
スできるように、/tmp/password ファイルのファイル許可を変更してください。
重要
インストールの終了後、John the Ripper 実行可能プログラム (/usr/local/bin/john)
のファイル許可を変更して、root だけがアクセスできるようにします。マージ
されたパスワード・ファイル (/tmp/password) についても、同様のことを行い
ます。
以下のようにして、John the Ripper を実行します。
# /usr/local/bin/john /tmp/password
デフォルトでは、John the Ripper は 3 つのモード (Single Crack、Wordlist、および
Incremental) を使用して、パスワードのクラックを試みます。正常に終了した試
行は画面に送られ、$JOHNDIR/john.pot ファイルに保管されます。再び表示する
必要がある場合は、以下に示すように、-show オプションを使用して John the
Ripper を再実行します。
# /usr/local/bin/john -show /tmp/password
次に、パスワードの端に数字があるものと、パスワードの中に数字があるものと
では、クラックするのにかかる時間がどれだけ違うかの例を示します。
# /usr/local/bin/john /tmp/password
Loaded 2 passwords with 2 different salts (Standard DES [32/32 BS])
rootroot
(root)
merlin1
(khorck)
guesses: 2 time: 0:00:00:03 100% (2) c/s: 22715 trying: menu1 - meter1
root のパスワード (rootroot) および khorck のパスワード (merlin1) は、3 秒でク
ラックされています。次に、khorck のパスワードを merlin1 から merl1n に変えて
John the Ripper を再実行し、その結果を見ましょう。
第 7 章 シ ス テムお よ びデー タ の保全性
123
# /usr/local/bin/john /tmp/password
Loaded 2 passwords with 2 different salts (Standard DES [32/32 BS])
rootroot
(root)
merl1n
(khorck)
guesses: 2 time: 0:00:28:24 100% (3) c/s: 23710 trying: Booms2 - hilsuh
今回、
新しい khorck パスワードを Jack the Ripper がクラックするのに 28.5 分かかっ
たことに注目してください。つまり、パスワードのどちらかの端ではなく、中に
数字を入れたほうが、クラックするのがはるかに難しくなることがわかります。
注
強いパスワードは、乱暴なクラック方式に対する確かな防御になります。し
かし、どんな強力なパスワードでも、telnet、ftp、rsh などのプロトコルを使用
している場合は、ネットワーク盗聴には弱点 ( アタックされ易さ ) を持ってい
ます。このタイプのアタックに対するプロテクト方法については、第 5 章「リ
モート・アクセスのセキュア」(59 ページ ) を参照してください。
2 次認証または 2 人式ログインなどのその他の方式を使用すると、認証をクラッ
クするのがより難しくなります。詳しくは、AIX 4.3 Elementsof Security Effective
and Efficient Implementation、SG24-5962 を参照してください。
7.3
Pretty Good Privacy (PGP)
PGP は、2 通話者間でセキュリティーを保って通信するためによく使われている
ツールです。この場合のセキュリティーは、強力な暗号化機能と認証によって達
成されます。PGP は、セキュアな通信をクイックかつ簡単に使用可能にするた
めに E-mail で使用されている事実上の (de facto) 標準です。PGP は、UNIX、Linux、
および Windows を含むさまざまなオペレーティング・システムで実行すること
ができ、Lotus Notes、Eudora、および Outlook Express などの E-mail プログラム
用に使用可能なプラグインが用意されています。
サポートされている構成について詳しくは、下記の Web サイトの PGP FAQ を参
照してください。
http://www.pgpi.org/doc/faq/pgpi/en/#International
7.3.1
PGP の基本
PGP は公開鍵暗号を基にしています (62 ページのセクション 5.1.3「SSH の重要
な概念」を参照してください )。簡単に言えば、公開鍵 ( 非対称暗号 ) を使用して
124
AIX セ キ ュ リ テ ィ ー ・ ツ ール
暗号化されたファイルは、これに一致する秘密鍵によってのみ暗号化解除するこ
とができます ( あるいはこの逆も真です )。
定義上、公開鍵は “ 公開 ” で、PGP を使用して通信する必要がある他の通話者に
自由に配ることができます。秘密鍵は “ 秘密 ” で、セキュアかつ専用として保持
しなければなりません。秘密鍵は、さらにパスフレーズを使用してプロテクトで
きます。
純粋な公開鍵暗号化は、従来の単一鍵暗号化 ( 対称暗号 ) に比べるとはるかに低
速 ( ときには、1000 倍も ) です。この理由によって、PGP は、対称暗号および非
対称暗号のハイブリッドを使用します。
PGP を使用すると、メッセージは従来の対称暗号を使用して暗号化されます ( 同
じ鍵がメッセージを暗号化するのにも暗号化解除するのにも使用されます )。た
だし、この鍵はランダムな一回限りの鍵 ( セッション鍵 ) で、このセッションだ
けに使用されます。したがって、対称暗号の主な弱点は、同じ鍵をどのようにし
て安全な方法で共用することができるかということにあります。この弱点を、
PGP は非対称暗号を使用して解決します。
以下に、解決の方法を示します。
1. Jack は PGP を使用してセキュアな方法で Jill と通信したい。
2. Jill は Jack に彼女の公開鍵を送る。
3. Jack はセッション鍵を使用してデータを暗号化し ( 対称暗号 )、次に、Jill の
公開鍵を使用してセッション鍵を暗号化します ( 非対称暗号 )。暗号化が完了
すると、Jack はセッション鍵およびデータを Jill に送る。
4. Jill は彼女の秘密鍵を使用してセッション鍵を暗号化解除し ( 非対称暗号 )、
次に、セッション鍵を使用してデータを暗号化解除します ( 対称暗号 )。
5. この後は、Jack と Jill は、2 人の間を行き来するデータを、セッション鍵だけ
を使用して暗号化し、暗号化解除します。
このケースでは、対称アルゴリズムおよび非対称アルゴリズムが使用されていま
す。すなわち、対称アルゴリズムはデータそのものを暗号化するのに使用され、
非対称アルゴリズムは暗号鍵を安全な方法で転送するのに使用されています。こ
のハイブリッド方式によって、スピードとセキュリエティーの両方が達成できま
す。
PGP は、3 つの対称暗号、すなわち、CAST ( デフォルト )、Triple DES、および
IDEA をサポートします。また、PGP は、DSS/DH 鍵または RSA (IDEA のみ ) 鍵
のどちらかをサポートします。それぞれの比較が、PGP マニュアル・ページ (man
pgp-intro) にあります。
また、PGP は、メッセージ認証にデジタル・シグニチャーを使用します。デジ
タル・シグニチャーは、デジタル・ワールドにおいて、本当の署名 ( シグニチャー
) と同じ機能性を持っています。デジタル・シグニチャーは、メッセージ・ダイ
ジェストを送信側の秘密鍵を使用して暗号化する ( メッセージの、強力な一方方
第 7 章 シ ス テムお よ びデー タ の保全性
125
向のハッシュ機能 ) ことによって作成されます。デジタル・シグニチャーは、
メッセージと一緒に送られます。デジタル・シグニチャーを検査するために、受
信側は送信側の公開鍵を使用してメッセージ・ダイジェストを暗号化解除し、入
手します。次に、受信側は、一方方向のハッシュ機能をメッセージに対して実行
してメッセージ・ダイジェストを入手し、この出力を、送信側によって送られた
出力 ( 送信側の公開鍵を使用して暗号化解除された出力 ) と比較します。データ
保全性を確認するには、両方が同じでなければなりません。同時に、メッセージ
が送信側の秘密鍵を使用して署名されていたので、メッセージの作成者が検査さ
れます ( したがって秘密鍵をプロテクトすることが重要です )。このプロセスに
ついて詳しくは、PGP マニュアル・ページ (man pgp-intro) を参照してください。
7.3.2
PGP の入手 と イ ン ス ト ール
PGP は Phil Zimmermann によって作成され、Network Associates
(http://www.pgp.com) か ら入手可能です。PGP に加え、Network Associates は、
ファイアウォールから侵入検出ソフトウェア、あるいはコンサルティング・サー
ビスにいたる範囲の、セキュリティー関連の多くのプロダクトを持っています。
PGP は商用パッケージおよび非商用パッケージの両方で入手可能です。ライセ
ンス契約について詳しくは、Network Associates サイトを参照してください。
PGP は、ダウンロード用に、ソース・コード形式で、PGP International サイト
(http://www.pgpi.com) から入手できます。商用ライセンスは
http://www.nai.com ( 米国またはカナダのみ ) または
http://www.pgpinternational.com ( その他の地域 ) から入手できます。
また、PGP は、installp フォーマットで http://www-frec.bull.fr から入手できま
す。このレッドブック用に使用したバージョンは、Bull サイトから入手したバー
ジョン 5.0 でした。
パッケージをダウンロードしたら、いたずらされていないことを確かめてから、
インストールしてください。確認の方法について詳しくは、136 ページのセク
ション 7.4.1「ダウンロードの保全性の確認」を参照してください。
パッケージを解凍し、インストールして (installp または SMIT を使用 )、正常に
インストールされたことを確かめてください。
126
AIX セ キ ュ リ テ ィ ー ・ ツ ール
# ./pgp-5.0.0.0.exe
UnZipSFX 5.31 of 31 May 1997, by Info-ZIP ([email protected]).
inflating: pgp-5.0.0.0.bff
# rm .toc
# ls -l
total 11776
-rw-r--r-- 1 root
system 4403200 Mar 06 1998 pgp-5.0.0.0.bff
-rwx------ 1 root
system 1622544 Aug 24 14:49 pgp-5.0.0.0.exe
# rm .toc
# installp -acgX -d . freeware.pgp.rte
...
Installation Summary
-------------------Name
Level
Part
Event
Result
------------------------------------------------------------------------------freeware.pgp.rte
5.0.0.0
USR
APPLY
SUCCESS
# lslpp -l freeware.pgp.rte
Fileset
Level State
Description
---------------------------------------------------------------------------Path: /usr/lib/objrepos
freeware.pgp.rte
5.0.0.0 COMMITTED Pretty Good Pricacy E-mail
system
また、MANPATH 環境変数を更新して /usr/local/man を組み込み、PATH 環境変数を
更新して /usr/local/bin を /etc/profile に組み込む必要があります。
7.3.3
PGP の使用
PGP を使用する最初のステップは、公開鍵と秘密鍵のペアを生成することです。
SSH の場合と同様に、PGP は、root だけではなく、だれでも使用できます。各
ユーザーは、ユーザー自身の鍵ファイルと構成ファイルのセットを持ちます。
公開鍵と秘密鍵のペアを、pgpk -g コマンドを使用して生成します。
第 7 章 シ ス テムお よ びデー タ の保全性
127
/ # pgpk -g
Creating /.pgp...complete.
No randseed file found.
Cannot open configuration file /.pgp/pgp.cfg
Choose the type of your public key:
1) DSS/Diffie-Hellman - New algorithm for 5.0 (default)
2) RSA
Choose 1 or 2: 1
Pick your public/private keypair key size:
(Sizes are Diffie-Hellman/DSS; Read the user's guide for more information)
1) 768/768 bits- Commercial grade, probably not currently breakable
2) 1024/1024 bits- High commercial grade, secure for many years
3) 2048/1024 bits- "Military" grade, secure for forseeable future(default)
4) 3072/1024 bits- Archival grade, slow, highest security
Choose 1, 2, 3 or 4, or enter desired number of Diffie-Hellman bits
(768 - 4096): 2
You need a user ID for your public key. The desired form for this
user ID is your FULL name, followed by your E-mail address enclosed in
<angle brackets>, if you have an E-mail address. For example:
Joe Smith <[email protected]>
If you violate this standard, you will lose much of the benefits of
PGP 5.0's keyserver and email integration.
Enter a user ID for your public key: root <[email protected]>
Enter the validity period of your key in days from 0 - 999
0 is forever (and the default):
You need a pass phrase to protect your private key(s).
Your pass phrase can be any sentence or phrase and may have many
words, spaces, punctuation, or any other printable characters.
Enter pass phrase:
Enter again, for confirmation:
Enter pass phrase:
Collecting randomness for key...
We need to generate 571 random bits. This is done by measuring the
time intervals between your keystrokes. Please enter some random text
on your keyboard until you hear the beep:
0 * -Enough, thank you.
.******* '[o.........................******* .
........................................................*******
.................................................................................*******
Keypair created successfully.
If you wish to send this new key to a server, enter the URL of the server,
below. If not, enter nothing.
/ # cd .pgp
/.pgp # ls -l
total 24
-rw------- 1 root
system
0 Sep 05 11:50 pubring.bak
-rw------- 1 root
system
889 Sep 05 11:51 pubring.pkr
-rw-r--r-- 1 root
system
512 Sep 05 11:53 randseed.bin
-rw------- 1 root
system
0 Sep 05 11:50 secring.bak
-rw------- 1 root
system
976 Sep 05 11:51 secring.skr
128
AIX セ キ ュ リ テ ィ ー ・ ツ ール
注意すべき重要なファイルは、$HOME/.pgp/pubring.prk ファイルおよび
$HOME/.pgp/secring.skr ファイルで、これらのファイルには、それぞれ、公開
鍵リングおよび秘密鍵リングが入ります。これらはデフォルトの名前と場所であ
るので、必要であれば、PGP を構成して、これらのファイルに別の名前と場所
を使用することができます。
以下に示すように、鍵リングの内容を pgpk -l コマンドを使用して表示し、ま
た、pgpk -x <userid> コマンドを使用して公開鍵を抜き出し、配布する目的で
ファイルに入れておくことができます。
/.pgp # pgpk -l
Cannot open configuration file /.pgp/pgp.cfg
Type Bits KeyID
Created
Expires
Algorithm
Use
sec+ 1024 0x0592C6DE 2000-09-05 ---------- DSS
Sign & Encrypt
sub 1025 0x76580B38 2000-09-05 ---------- Diffie-Hellman
uid root <[email protected]>
1 matching key found
/.pgp # pgpk -x root > publickeyfile
Cannot open configuration file /.pgp/pgp.cfg
/.pgp # more publickeyfile
-----BEGIN PGP PUBLIC KEY BLOCK----Version: PGPfreeware 5.0i for non-commercial use
mQGiBDm1FoQRBAD8KcZ/FCH+QtQQRauJpBHLK2Ciwve1D7Zts8zqhsiGz+ywZxib
Lmsg1opAW1w/IzpMLET0g4JhSSNnAi1H02KmBKrNCY4b2gB3UCX0bIxahamyTKU1
aDSFwthos5+PLbKSDB1WjVohLSei1W1uPWSrO6B7sM0fOl+K0pYx8HrCEwCg/+aO
SDTzQp+BM2kBTYM6CKgbThMEAM+eE70adaiAm50KZRefSThuDgbvWpYkCZZs+i0X
L5KBRsnw26z1MF8xFPw+KTf8N+TGn6td+qOxL1b5x2jOxoHA1Y2yp0yG6ExJfxN7
Ni6YcVrUHQbPbsOE9cJTlXgsugbwACQRtq0F/LkFquXOlBguA1tiPH4FC87QEA0u
AuTLBADBrviGRVzVtsvYcb1hKBY4bRnEZwswvIhc0s7l0ZJGi54zH5RgvwTmsmd4
OgPBwZSaAuoaI5j3U4nHbihJE4le/sWS+FO7Bgy6dFZ8qK/e5ibmB2nW29N6R9ZN
+E2KkWr7JNzbJNlvJAorJIYIyQgO9qfMXEKekGmLXCMk2r1Cv7Qicm9vdCA8cm9v
dEBhcnRodXIuYWxpYmFiYS5pYm0uY29tPokASwQQEQIACwUCObUWhAQLAwECAAoJ
EHOk2qQFksbeL8wAoO1E50QLVmdpEFGCC3MUsSzLbZ0SAJ9TWFX0a4V9qIbHKYWu
tP+813BqnrkBDgQ5tRaREAQBAQEYVycxln++/zRqA2eQoNr4IrrHluZvHwyhhINo
6cCy+oANKzUjmXJajGIMCwT6wbO+koVSa8kYPzlSG5QpdEE9+2XjJaaB/csBMvN8
jvOjBBXrnGjEfAIwosAU1cvvmLwJPhGvh00cSbSX9ELj/iD0hqXABW6SlpdnRoRa
ARlPAAICA/98YOZxJl87uGlxdKhn4PDdECtEdMOqVE1oq3pECtQQgLa8WYZmfiir
EPGvT7eBG1O1at2FrSDT0ac+Fd0LAAbRCw/0XRibPIoMbYE3ENUrX16tuCOQtT6G
EXRe2OxLS2wKcG/QyXyPH3TbF9gH/IyKqxUnCsfI552Xcda4WjgF64kAPwMFGDm1
FpFzpNqkBZLG3hECWDYAoLco/XRRLjAlqKQR9yUQsyAdwCcZAKCwXGoKTfAuuYuZ
DGnXLJJxybmxEA==
=hX2t
この例では、root の公開鍵が publickeyfile というファイルに抜き出されていま
す。次に、publickeyfile が、安全な方法で通信する必要がある他のユーザーに、
配布されます。
公開鍵を配布するために、ユーザーは以下のことを行うことができます。
第 7 章 シ ス テムお よ びデー タ の保全性
129
• 抜き出した公開鍵を入れたファイルを、それが必要なユーザーに使用可能に
する。
• 公開鍵を E-mail メッセージの添付テキストとして入れて、必要なユーザーに
送る。
• 公開鍵を公開鍵サーバーを使用して配布する ( 詳細は、PGP マニュアル・ペー
ジにあります )。
公開鍵 ( このケースでは khor.asc) を鍵リングに追加するには、以下に示すよう
に、pgpk -a コマンドを使用します。
# pgpk -a /home/khorck/.pgp/khor.asc
Cannot open configuration file /.pgp/pgp.cfg
Adding keys:
Key ring:
Type Bits
pub 1024
sub 1024
uid khor
'/home/khorck/.pgp/khor.asc'
KeyID
Created
Expires
Algorithm
Use
0xF409CB5B 2000-09-05 ---------- DSS
Sign & Encrypt
0xDC8183A1 2000-09-05 ---------- Diffie-Hellman
chune keat
1 matching key found
Add these keys to your keyring? [Y/n] y
Keys added successfully.
/.pgp # pgpk -l
Cannot open configuration file /.pgp/pgp.cfg
Type Bits KeyID
Created
Expires
Algorithm
Use
pub 1024 0xF409CB5B 2000-09-05 ---------- DSS
Sign & Encrypt
sub 1024 0xDC8183A1 2000-09-05 ---------- Diffie-Hellman
uid khor chune keat
sec+ 1024 0x0592C6DE 2000-09-05 ---------- DSS
Sign & Encrypt
sub 1025 0x76580B38 2000-09-05 ---------- Diffie-Hellman
uid root <[email protected]>
2 matching keys found
pgpk -ll コマンドを使用して、鍵リング上の鍵の詳細情報を入手できます。重
要な情報は、鍵の長さ、鍵 ID、および指紋です。この情報を使用して鍵の所有
者と ( 電話または他の手段を使用して ) 公開鍵の正しいバージョンを使用してい
ることを確認することができます。
130
AIX セ キ ュ リ テ ィ ー ・ ツ ール
# pgpk -ll
Cannot open configuration file /.pgp/pgp.cfg
Type Bits KeyID
Created
Expires
Algorithm
pub 1024 0xF409CB5B 2000-09-05 ---------- DSS
f20
Fingerprint20 = 2334 815A FC8B ABEC 4AEF 8D3C 5284
sub 1024 0xDC8183A1 2000-09-05 ---------- Diffie-Hellman
f20
Fingerprint20 = 135C F183 BFC8 2B1A C9CC 9BB8 618C
uid khor chune keat
sig
0xF409CB5B 2000-09-05 khor chune keat
Use
Sign & Encrypt
2B3B F409 CB5B
33E1 DC81 83A1
sec+ 1024 0x0592C6DE 2000-09-05 ---------- DSS
Sign & Encrypt
f20
Fingerprint20 = A594 B67E 5DFA BBEC 9FDE A59A 73A4 DAA4 0592 C6DE
sub 1025 0x76580B38 2000-09-05 ---------- Diffie-Hellman
f20
Fingerprint20 = 83E2 8BC0 991F AC40 FB0E BE10 4183 8C47 7658 0B38
uid root <[email protected]>
SIG
0x0592C6DE 2000-09-05 root <[email protected]>
2 matching keys found
pgpk -c コマンドを使用すると、鍵リングの中の鍵についてさらに追加の情報
(Trust レベルなど ) を表示できます。
$ pgpk -c
Cannot open configuration file /home/khorck/.pgp/pgp.cfg
Type Bits KeyID
Created
Expires
Algorithm
Use
sec+ 1024 0xF409CB5B 2000-09-05 ---------- DSS
Sign & Encrypt
sub 1024 0xDC8183A1 2000-09-05 ---------- Diffie-Hellman
uid khor chune keat
SIG!
0xF409CB5B 2000-09-05 khor chune keat
pub 1024 0x0592C6DE 2000-09-05 ---------- DSS
Sign & Encrypt
sub 1025 0x76580B38 2000-09-05 ---------- Diffie-Hellman
uid root <[email protected]>
sig!
0x0592C6DE 2000-09-05 root <[email protected]>
KeyID
Trust
Validity User
* 0xF409CB5B ultimate complete khor
khor
0x0592C6DE untrusted invalid root
root
ID
chune keat
chune keat
<[email protected]>
<[email protected]>
root の公開鍵の Trust 値が非トラステッドであることに注意してください。これ
は、ユーザーが root 用にインポートした公開鍵が、トラステッド・ソース ( たと
えば認証局 ) から得られたものではないことを意味しています。トラステッド・
ソースからのものでないことを意味するならば、pgpk -ll コマンドを使用して
公開鍵の所有者と鍵の長さ、鍵の ID、および指紋を検査し、正しい鍵を持って
いることを確認することが重要です。
第 7 章 シ ス テムお よ びデー タ の保全性
131
両方の通話者が相互に相手の公開鍵を持ったならば、PGP を使用して安全な方
法で通信することができます。
• 送信側は受信側の公開キーでメッセージを暗号化して、メッセージを送る。
• 受信側は秘密鍵を使用してメッセージを暗号化解除し、次に、プロセスを反
転して応答を送る。
ファイルを暗号化するには、受信側の名前を知らなければなりません。PGP は
対応する公開鍵を使用してファイルを暗号化します。
# pgpe -r "khor chune keat" -sat /tmp/secretfile
Cannot open configuration file /.pgp/pgp.cfg
A private key is required to make a signature.
Need a pass phrase to decrypt private key:
1024 bits, Key ID 0592C6DE, Created 2000-09-05
"root <[email protected]>"
Enter pass phrase:
Pass phrase is good.
1024 bits, Key ID F409CB5B, Created 2000-09-05
"khor chune keat"
WARNING: The above key is not trusted to belong to:
khor chune keat
Do you want to use the key with this name? [y/N] y
Creating output file /tmp/secretfile.asc
このケースでは、pgpe-r “recipient name” -sat /tmp/secretfile コマンドは、
/tmp/secretfile ファイルを暗号化し、
署名します (-s フラグ )。
メッセージはユー
ザーの秘密鍵で署名されているので、パスフレーズも入力する必要があります。
-at フラグがあることにより、さまざまなオペレーティング・システム間の移植
性 の た め に、コ マ ン ド の 出 力 が テ キ ス ト・フ ォ ー マ ッ ト に な り ま す。
/tmp/secretfile.asc 出力ファイルは自動的に作成されます。このファイルには、
ユーザーが受信側に送信するときの暗号化された内容が入ります。警告メッセー
ジは、単に、公開鍵がトラステッド・ソース ( たとえば認証局 ) から得られたも
のではないことを意味しています。
署名と暗号化は独立のイベントであることに注意してください。したがって、
ファイルを暗号化せずに署名することも、署名しないで暗号化することもできま
す。( ファイルに署名することが必要な場合は、pgps コマンドを使用します。)
受信側が暗号化されたファイルを受け取ると、受信側は、pgpv コマンドを使用
して、そのファイルを暗号化解除できます。
132
AIX セ キ ュ リ テ ィ ー ・ ツ ール
$ pgpv /tmp/secretfile.asc
Cannot open configuration file /home/khorck/.pgp/pgp.cfg
Message is encrypted.
Need a pass phrase to decrypt private key:
1024 bits, Key ID DC8183A1, Created 2000-09-05
Enter pass phrase:
Pass phrase is good.
Opening file "/tmp/aaa" type text.
Good signature made 2000-09-05 18:15 GMT by key:
1024 bits, Key ID 0592C6DE, Created 2000-09-05
"root <[email protected]>"
WARNING: The signing key is not trusted to belong to:
root <[email protected]>
パスフレーズの入力を求めるプロンプトが出されていることに注意してくださ
い。ファイルが受信側の公開鍵で暗号化されているので、そのファイルは受信側
の秘密鍵で暗号化解除しなければならず、秘密鍵の使用にパスフレーズが必要に
なります。また、Good signature の行にも注意してください。これは、メッセー
ジの保全性を確実にするのに非常に重要です。警告メッセージは、単に、公開鍵
がトラステッド・ソース ( たとえば認証局 ) から得られたものではないことを意
味しています。
また、PGP は、セキュアな方法で保管 ( ローカルでもリモートでも ) するために
機密ファイルを暗号化するのにも使用できます。ユーザー自身用に PGP を使用
してファイルを暗号化するには、単に、自分自身を受信側に指定して暗号化して
ください。
# pgpe -r "root" -sat /tmp/secretfile
Cannot open configuration file /.pgp/pgp.cfg
A private key is required to make a signature.
Need a pass phrase to decrypt private key:
1024 bits, Key ID 0592C6DE, Created 2000-09-05
"root <[email protected]>"
Enter pass phrase:
Pass phrase is good.
1024 bits, Key ID 0592C6DE, Created 2000-09-05
"root <[email protected]>"
Creating output file /tmp/secretfile.asc
# rm /tmp/secretfile
ユーザーが実際に必要としたのは署名され暗号化された /tmp/secretfile.asc
ファイルであったので、/tmp/secretfile ファイルを保管する理由はないことに
注意してください。
PGP は、ダウンロード可能なファイルがいたずらされていないことを ( デジタ
ル・シグニチャーを使用して ) 確認するために、インターネット上で広く使用さ
れています。たとえば、Bull サイトから入手したパッケージには、多くの場合、
第 7 章 シ ス テムお よ びデー タ の保全性
133
.asc 拡張子がついたファイルが入っています。ファイルセットをインストールす
る前にこのファイルを読み、ダウンロードした物の保全性を確認して下さい。
ダウンロードされたシグニチャー・ファイルには、1 つのファイルにシグニ
チャーとメッセージの両方が入っていることもあれば、シグニチャーだけでメッ
セージが入っていないこともあります。後者の場合は、PGP がシグニチャーを
検査できるように、別のダウンロードを行ってメッセージ・ファイルを使用可能
にしておく必要があります。ほとんどのインターネット・サイトでは、シグニ
チャーとメッセージを別個のファイルで提供しています。
Bull サイトのケースでは、シグニチャー・ファイル (.asc) とメッセージ・ファイ
ル (.bff) は同じパッケージに組み込まれていますが、シグニチャー・ファイルに
はメッセージ・ファイルが入っていません。まず、メッセージ・ファイル (.bff)
を検査するには、ファイルのクリエーターの公開鍵を入手してその公開鍵をユー
ザーの鍵リングに追加します。次に、シグニチャー・ファイル (.asc) に対して
pgpv コマンドを実行して、ダウンロードの保全性を検査します。ダウンロード
の保全性の確認に関する追加情報は、136 ページのセクション 7.4.1「ダウンロー
ドの保全性の確認」にあります。
7.3.4
秘密鍵のプ ロ テ ク ト
おわかりいただけるように、秘密鍵は PGP 内のセキュリティーにとって非常に
重要なものです ( セキュリティーに関していえば、すべての公開鍵と秘密鍵の暗
号化スキームにとって )。秘密鍵はつねに専用かつセキュアに保持されていなけ
ればなりません。秘密鍵の物理的セキュリティーと同様に重要なのは、良いパス
フレーズを選択することです。パスフレーズは長さが 10 ~ 30 文字で、推測する
のが非常に難しく、ユーザーだけしか意味がわからないものでなければなりませ
ん。PGP マニュアル・ページ (man pgp-intro) には、鍵をプロテクトする方法に
ついてのその他の提案が記載されています。
7.4
MD5
MD5 は、MD5 チェックサムと呼ばれる固有のチェックサムを作成するために使
用されるツールです。このツールは、強力な、一方方向の ハッシュ機能 です。
ハッシュ機能は任意の長さの入力を受け取って、固定長の出力を生成するという
ことを思い出してください。入力データにわずかな 変更が加えられても、まっ
たく異なった出力が出ます ( 長さは同じでも )。ハッシュされた出力が与えられ
ても元の入力を再現できないと言う意味で、一方方向です。MD5 についての詳
しい説明は、パッケージの中に入っている RFC 1321 にあります。
MD5 パッケージは、ソース・コード形式で、以下の Purdue University の Web サ
イトから入手できます。
ftp://ftp.cerias.purdue.edu/pub/tools/unix/crypto/md5/
134
AIX セ キ ュ リ テ ィ ー ・ ツ ール
このサイトにはデジタル・シグニチャーも入っているので、パッケージの保全性
を検査することもできます。パッケージのほかに、C コンパイラーにもアクセス
する必要があります。本書の作成には、AIX 4.3.3 の下の C コンパイラー (AIX 版
) バージョン 4.4 を使用しました。
重要
セキュリティー上の理由で、実動システムに C コンパイラーをロードしてお
くことはお勧めしません。実動システムでないシステムでプログラムをコン
パイルし、実動システムに移動するのは実行可能プログラムだけにしてくだ
さい。また、許可は、できるだけ厳重にセットしてください。
以下に示すように、パッケージをアンパック、コンパイル、インストールしてく
ださい。
# ls -l
total 72
-rw-r----- 1 root
system
35287 Sep 10 20:41 MD5.tar.Z
# uncompress MD5.tar.Z
# tar -xvf MD5.tar
x Makefile, 1644 bytes, 4 media blocks.
x README, 5568 bytes, 11 media blocks.
x global.h, 781 bytes, 2 media blocks.
x md5-announcement.txt, 1898 bytes, 4 media blocks.
x md5.1, 1288 bytes, 3 media blocks.
x md5.1.ps, 8572 bytes, 17 media blocks.
x md5.1.txt, 1503 bytes, 3 media blocks.
x md5.h, 1350 bytes, 3 media blocks.
x md5c.c, 10423 bytes, 21 media blocks.
x mddriver.c, 5354 bytes, 11 media blocks.
x rfc1321.txt, 35223 bytes, 69 media blocks.
# ls
MD5.tar
md5-announcement.txt md5.h
Makefile
md5.1
md5c.c
README
md5.1.ps
mddriver.c
global.h
md5.1.txt
rfc1321.txt
# vi Makefile
...
CC = cc
...
# make md5
cc -c -O -DMD=5 md5c.c
cc -c -O -DMD=5 mddriver.c
cc -o md5 md5c.o mddriver.o
#
gcc (GNU C コンパイラー ) ではなく、cc (AIX C コンパイラー ) を使用している
ことを反映するために Makefile が変更されていることに注意してください。
make が正常に完了すれば、MD5 はすぐ使えます。たとえば、nmap-2.53.0.0.bff
ファイルの MD5 チェックサムを計算するには、以下のようにします。
第 7 章 シ ス テムお よ びデー タ の保全性
135
# ./md5 nmap-2.53.0.0.bff
MD5 (nmap-2.53.0.0.bff) = 449244ff27fc11be06864ac6b0e8bb44
インターネットからファイルをダウンロードするときは、ダウンロードされた
ファイルの MD5 チェックサムを実行し、次に、その MD5 チェックサムを、Web
サイトで公表されている MD5 チェックサムに照らして検査します。両方の
チェックサムが一致すれば、ダウンロードしたものとサイトにあるものとが同じ
であるという確証が得られます。チェックサムが一致しなければ、ファイルを削
除して、サイトの所有者に知らせてください。MD5 は、ネットワークを介して
リモート・ロケーションにファイルを送るときにも使用できるツールです。
MD5 は、現在使用可能な多くのチェックサム・ツールのうちの 1 つにすぎませ
ん。しかし、MD5 は、最も評判が良く、広く使用されているツールの 1 つです。
7.4.1
ダウ ン ロー ド の保全性の確認
インターネットを使用して、なにかをダウンロードする前に、ユーザーは、ま
ず、そのサイトをトラストするか否かを決める必要があります。トラストするな
ら、次に、ユーザーは、ダウンロードしたファイルのバージョンが、サイトにあ
るファイルのバージョンと同一のものであることを確認しなければなりません。
いくつかの確認方法がありますが、サイトで使用可能なものに依存します。
一部のサイトでは、ユーザーが検査のために使える、作成者のデジタル・シグニ
チャーが用意されています。たとえば、Bull サイトには、いくつかのファイル・
セット用のデジタル・シグニチャーが用意されています。デジタル・シグニチャー
を持っているパッケージの例は、nmap-2.53_0_0.exe パッケージです。このパッ
ケージを解凍すると、インストール可能な nmap-2.53_0_0.bff ファイルと一緒に、
nmap-2.53_0_0.asc ( デジタル・シグニチャー ) ファイルが入っているのがわかり
ます。シグニチャーを検査するには、作成者の公開鍵をダウンロードして、
nmap-2.53_0_0.asc ファイルに対して、pgpv コマンドを実行する必要がありま
す。シグニチャーの検査が正常に終了すれば、パッケージがいたずらされていな
いことを示しています。詳しい説明については、.asc ファイルを参照してくださ
い。
136
AIX セ キ ュ リ テ ィ ー ・ ツ ール
# ./nmap-2_53_0_0.exe
UnZipSFX 5.32 of 3 November 1997, by Info-ZIP ([email protected]).
inflating: nmap-2.53.0.0.bff
inflating: nmap-2.53.0.0.bff.asc
# pgpv nmap-2.53.0.0.bff.asc -o nmap-2.53.0.0.bff
Cannot open configuration file /.pgp/pgp.cfg
Opening file "/dev/null" type text.
This signature applies to another message
File to check signature against [nmap-2.53.0.0.bff]:
Good signature made 2000-07-24 15:32 GMT by key:
1024 bits, Key ID 22F02AED, Created 1999-03-15
"Ciaran Deignan <[email protected]>"
WARNING: The signing key is not trusted to belong to:
Ciaran Deignan <[email protected]>
一部のサイトでは、これらのファイルを一緒にパッケージしていない場合があり
ます。そのような場合は、必要なファイルをそれぞれ別々にダウンロードする必
要があります。
PGP シグニチャーを全然使用していないサイトもあります。そのようなサイト
では、代わりに、MD5 チェックサムをダウンロード可能ファイル用に公表して
います。ファイルをダウンロードしたあとで、MD5 を使ってチェックサムを生
成し、その結果を、サイトで公表されているチェックサムと比較します。チェッ
クサムが一致しなければ、ファイルを削除して、サイトの所有者に知らせてくだ
さい。
最後に一言。一部のサイトでは、そのサイトに用意されているセキュリティー手
段についての情報を掲げているだけの場合があります。この情報を検討して、ダ
ウンロードの実行に進むのがよいのかどうかを決めてください。
第 7 章 シ ス テムお よ びデー タ の保全性
137
138
AIX セ キ ュ リ テ ィ ー ・ ツ ール
第 8 章 AIX の保護
AIX がサーバーにインストールされた後、サーバーのセキュリティーを強化する
ために、追加の構成変更を行うことができます。この章では、不必要なサービス
をオフにし、残りのサービスを構成変更してセキュリティーをさらに強化する方
法について説明します。AIX は、考えられるすべての環境で多数のアプリケー
ション ( それぞれが固有の要件を持っています ) をサポートしているので、すべ
てのユーザーに適用できる単一のデフォルトのセキュリティー環境をつくるこ
とは不可能です。したがって、AIX でセットアップするセキュリティー・レベル
は、サーバーが使用されている特定のカスタマー / アプリケーション環境に調整
する必要があります。たとえば、インターネット Web サーバーのセキュリティー
要件は、開発ラボにあるソフトウェア開発サーバーの要件とは、かなり異なるは
ずです。
アタッカーにとっての共通のエントリー・ポイントは、ネットワーク・サービス
の中の弱点 ( アタックされ易さ ) にあります。新規の活用方法が毎日のように見
つかります。したがって、今日セキュアなものでも、明日はセキュアでなくなり
ます。ベストな経験法則は、必要なくなったサービスをすべてオフにすることで
す。これを行うもっともよい時期は、サーバーが実動を開始する前です。できる
だけ多くのサービスをオフにすることから始めてください。迷ったらオフにして
ください。サービスが必要だという証拠があるときはじめて、選択的にサービス
をオンに戻してください。実動に入る前に、必要なものをオンにするほうが、
サーバーがアクティブになってから何がオフにできるかを考えるよりも簡単な
はずです。このようにすることにより、セキュリティーに費やす時間と努力を、
残りのサービスの構成変更や最新のセキュリティー・パッチの適用にあてること
ができます。
ある建築物を保護するには、周辺のすべての入口がセキュアでなければなりませ
ん。サーバーの保護にも同じことがあてはまります。例として Web サーバーをと
りあげます。何にもまして、このサーバーは、ネットワーク、オペレーティング・
システム、および、Web サーバー・ソフトウェア ( アプリケーション ) で構成され
ます。もし、Web サーバー・ソフトウェアをセキュアにすることだけにフォーカ
スをあてれば、オペレーティング・システムとネットワークのドアがアタックさ
れ易いままに放置されます。どのドアを通って得られたエントリーでも、得られ
たエントリーはエントリーです。たとえば、アタッカーが rpc.statd の弱点を利用
して root アクセスを得たとします。その時点で勝負がつきます。OS だけでなく、
他もすべて破損を受けています。rpc.statd が、サーバーの作動に必要でなかった
サービスであったと仮定すると、なおさら残念な事態と言えます。不要なドアは
取り外してセメントで閉鎖してください。残りのドアは、利用できるものはすべ
て利用して強化してください。
AIX を保護することは一回限りのプロセスではありません。不要なサービスをオ
フにし、残りのサービスをプロテクトする処置をとっても、つねに警戒が必要で
す。毎日のように発明される活用方法やソフトウェア・アップグレードなどのシ
ステムの変更によって、潜在的な新しいホールがオープンされます。可能な限り
© Copyright IBM Corp. 2002
139
早めにセキュリティー上の修正をシステムに適用し、システムの通常の動作を知
るように努めて、システムの不具合が起こったらただちに見つけることができる
ようにしてください。
8.1
概説
前にも述べたように、アタッカーには、内側にいるものと、外側にいるものとの
2 つのタイプがあります。両方とも被害をもたらしますが、アタックの方法には、
違いがあります。たとえば、内部アタッカーはすでに、システムに正当なユー
ザー・アカウントを持っているはずです。しかし、通常、かれらは root アクセ
スを持っていません。しかし、通常の非特権のアカウントを持っているだけで
も、スヌープしたり、構成エラーやシステムの弱点を探しまわる自由が与えられ
ます。
外部アタッカーは、潜在的なターゲットに対して偵察を行うのに時間がもっとか
かります。たとえば、外部アタッカーは、nmap (-O フラグを使用 ) などのツール
を使って、ターゲットにしようとしているシステムで実行されているオペレー
ティング・システムはなにかを知ろうとします。次に、SAINT または nmap など
のツールを使って、どのネットワーク・サービス・ポートがオープンされている
かを判別しようとします。この情報を手に入れると、次に、netcat (nc) などの
ツールを使ってバナー情報を盗みとり、各ポートでどのバージョンのサービスが
実行されているかを判別しようとします。
アタッカーは、あるサービスのあるバージョンをユーザーが使用していて、この
コード・レベルには既知の問題があることを知ると、既知のアタック方式を使用
してシステムに侵入しようとします。最新のセキュリティー・パッチでシステム
を最新の状態に保持し、どんな不必要な情報でも絶対にリークしないようにシス
テムを構成しておくことの重要性はいくら強調しても強調しすぎることはあり
ません。ニュースのヘッドラインを見るだけでも、脅威は現実であること、およ
び、管理者が保護するようにゆだねられているシステムのセキュリティーの強固
さに組織の評価または評判がかかっていることが理解できます。
AIX を強化する一般的なステップには以下のものがあります (この章で詳しく説
明します )。
1. 不必要なサービスを除去する。
2. 残りのサービスの構成をきつくしめる。
3. 適切なネットワーク (no) オプションをセットする。
4. ユーザー・アカウントの規定を強める。
5. 厳重なパスワード・ポリシーを施行する。
6. 追加のセキュリティー・ツール ( 前章までで説明した各種のツール ) をイン
ストールする。
140
AIX セ キ ュ リ テ ィ ー ・ ツ ール
7. ログ、監査証跡、およびシステムの動作をモニターする。
注
実動システムに変更を加える前に、万が一その変更が期待したとおりに作動
しなかった場合にそなえて、完全なバックアップを必ずとるようにしてくだ
さい。
以下に示す例では、新たにインストールしたシステムを仮定しています。ここで
示す環境 (RS/6000 F50 上の AIX 4.3.3) は、単に、なにができるかを示すためのも
のです。ユーザーの環境は、これとは異なり、もっと複雑にちがいありません。
したがって、この情報を参考にして、固有のニーズに合わせて調整してください。
重要
多くの組織では、盗聴プログラムやスキャナーなどのあるタイプのツールを
実動ネットワークで実行することを禁止する厳しいポリシーを持っていま
す。必ず、書面で許可が得られていることを確認してから、これらのツール
を実行してください。
8.2
ス テ ッ プ 1: 不必要なサービ スの除去
netstat -af inet コマンドを使用すると、システムで、どのサービスが、アクティ
ブなリスニング・ポートを持っているかを知ることができます。この代わりに、
NSA、SAINT、または nmap などのスキャン・ツールを使用して行うこともでき
ます。スキャン・ツールを使用する利点は 3 つあります。
• 1 つのロケーションにある多数のサーバーに対してツールを実行できる。
netstat を使用する場合は、各サーバーごとに実行する必要があります。
• NSA (49 ページのセクション 4.4「NetworkSecurity Auditor (NSA)」) および
SAINT (94 ページのセクション 6.3「Security Administrator's Integrated Network
Tool (SAINT)」) などのツールには、既知の弱点のリストがあり、これらの弱
点に対してテストを行えます。
• アタッカーは同様のツールを使用してユーザーのネットワークをスキャンし
ます。かれらが知っていることをこちらも知り、かれらが見ていることをこ
ちらも見ることによって、そのようなスキャンに対抗できる戦略を考え出し、
アタッカーに使用可能になる情報の量を最小化することができます。かれら
が処理できる情報が少ないほど、ネットワークへの侵入は難しくなります。
第 8 章 AIX の保護
141
重要
多くの組織では、盗聴プログラムやスキャナーなどのあるタイプのツールを
実動ネットワークで実行することを禁止する厳しいポリシーを持っていま
す。必ず、書面で許可が得られていることを確認してから、これらのツールを
実行してください。
さらに、まれなケースですが、NSA のようなスキャン・ツールが、システム
破損の原因になる場合があります。実動ネットワークでスキャンを実行する
前に、現状の完全なバックアップを持っていること、スキャン・ツールを実
動ではないサーバーおよびネットワークで十分なテストを行ったこと、およ
び、関係者には通知済みであること、を確認してください。
また、該当するファイル・セットをアンインストールすることによって、サービ
スを永続的に除去することもできます。これは必須ではなく、また、システム・
レベルのファイル・セットを除去するには高いリスクがあるので、十分な AIX
スキルを持っている人が行う必要があります。不必要なサービスは除去するので
はなく、使用不可にすることをお勧めします。
8.2.1
/etc/inittab か らのエ ン ト リ ーの除去
重要
/etc/inittab に変更を加える前に、そのバックアップ・コピーを持っていること
を確認してください。また、システム全体の完全なバックアップをとってお
くことをお勧めします。
/etc/inittab ファイルは、サーバーにインストールされているアプリケーション
によって、システムごとに異なります。/etc/inittab の中のエントリーが、サー
バーにインストールされているソフトウェアを反映していることを確認してく
ださい。アプリケーション (TSM、Oracle、HACMP など ) は、通常、/etc/inittab
にエントリーを持っています。ソフトウェアがサーバーで使用されなくなって
いる場合は、/etc/inittab エントリーを除去してください。
/etc/inittab の中の以下のデフォルトのエントリーは、通常、必要ではないの
で、除去する候補です。
142
AIX セ キ ュ リ テ ィ ー ・ ツ ール
piobe:2:wait:/usr/lib/lpd/pio/etc/pioinit >/dev/null 2>&1 # pb cleanup
qdaemon:2:wait:/usr/bin/startsrc -sqdaemon
writesrv:2:wait:/usr/bin/startsrc -swritesrv
uprintfd:2:respawn:/usr/sbin/uprintfd
httpdlite:2:once:/usr/IMNSearch/httpdlite/httpdlite -r /etc/IMNSearch/httpdlite/
httpdlite.conf & >/dev/console 2>&1
dt:2:wait:/etc/rc.dt
imnss:2:once:/usr/IMNSearch/bin/imnss -start imnhelp >/dev/console 2>&1
imqss:2:once:/usr/IMNSearch/bin/imq_start >/dev/console 2>&1
これらのエントリーを除去することを決めた場合は、以下のように、rmitab コマ
ンドを使用して行うことができます。
# for i in piobe qdaemon writesrv uprintfd httpdlite df imnss imqss \
>do \
>rmitab $i \
>done
これらのエントリーを /etc/inittab から除去すると、これらを自動的に始動で
きなくなります。変更した後、サーバーをリブートして、変更内容をテストし、
ほかのものはすべて正しく始動することを確かめてください。また、実行可能プ
ログラム上の許可 (chmod 0000 <filename>) を更新して、サービスをさらに使用
不可にする必要があります。ユーザーは、ファイル・セット ( とくに、CDE 用
に使用される Dt ファイル・セット ) をアンインストールすることもできますが、
アンインストールするときはとくに注意が要ります。
以下のセクションで、デフォルトの /etc/inittab エントリーについて詳しく説
明します。この説明は、これらのエントリーがユーザーのシステムで必要か否か
を決めるのを助けるために提供されています。
8.2.1.1
piobe お よ び qdaemon エ ン ト リ ー
qdaemon プログラムは、印刷のためのジョブをスケジュールするのに使用されま
す。piobe プログラムは、qdaemon プログラムによって呼び出されるスプーラー・
バックエンド・プログラムです。piobe プログラムは、印刷ジョブをプロセスし、
印刷ジョブ・マネージャーとしての役割を果たします。サーバーが印刷用にセッ
トアップされている場合は、これらの 2 つのエントリーは必要です。
8.2.1.2
httpdlite、
、 imnss、
、 お よ び imqss エ ン ト リ ー
httpdlite プログラムは、docsearch エンジン用のデフォルト Web サーバーで、デ
フォルトでインストールされます。docsearch が正しく機能するには、Web サー
バーが必要で、httpdlite は、IMNSearch.rte.httpdlite ファイル・セットと一緒に提
供されるバージョンです。ユーザーがもう 1 つ Web サーバーを持っている場合
は、httpdlite を除去して、インストール済みの Web サーバーを使用するように
docsearch を構成することができます。これを実行する方法について詳しくは、以
下のサイトを参照してください。
www.rs6000.ibm.com/doc_link/en_US/a_doc_lib/aixgen/topnav/topnav.htm
第 8 章 AIX の保護
143
ほとんどのケースでは、マニュアル・ページで十分で、docsearch は実際には必
要ありません。こんにちのディスク・サイズを使用すれば、マニュアル・ページ
のローカル・コピーを保管することは問題にはならず、マニュアル・ページのほ
うが、docsearch エンジンよりも、情報に速くアクセスできます。マニュアル・
ページよりも docsearch が優れている唯一の利点は検索能力です。
8.2.1.3
dt エ ン ト リ ー
/etc/rc.dt スクリプトは、Common Desktop Environment (CDE) を始動するために
使用されます。絶対に不可欠だというのでなければ、CDE に内在しているセキュ
リティー問題、および、CDE が載っている X Window システムの問題のために、
CDE をサーバーで実行しないでください。/etc/rc.dt エントリーを除去し、ツー
ル ( たとえば、Tripwire など ) を使用して、そのエントリーが戻されていないこ
とを確認します。CDE (Dt) ファイル・セットをアンインストールすることは、も
う 1 つのオプションです。
8.2.1.4
writesrv エ ン ト リ ー
writesrv デーモンを使用すると、ユーザーは、write コマンドによって、システ
ムとの間で通信ができるようになります。この通信が行えるためには、受信シス
テムは、writesrv デーモンを実行していなければなりません。
writesrv デーモンは、着信要求を write コマンドから受け取って、この要求をハ
ンドルするサーバー・プロセスを作成します。このサーバー・プロセスは、クラ
イアント・プロセス (write) と通信して、要求されているサービスを提供します。
writesrv エントリーを除去すると、write コマンドはシステム間では使用できな
くなりますが、ユーザーとローカル・システムの間の使用には影響しません。
8.2.1.5
uprintfd エ ン ト リ ー
uprintfd デーモンは、カーネル・メッセージをリトリーブし、変換し、フォー
マット設定し、プロセスの制御端末に書き込みます。カーネル・メッセージは、
NLuprintf および uprintf カーネル・サービスを使用してサブミットされます。
このデーモンは通常必要ありません。
8.2.2
/etc/rc.tcpip か らのエ ン ト リ ーの除去
/etc/rc.tcpip スクリプトは、TCP/IP デーモンを始動します。デフォルトによっ
て、syslog、sendmail、portmap、inetd、snmpd、および、dpid2 デーモンが開始さ
れます。これらのうちの一部 ( とくに dpid2) は要りません。必要とするものにつ
いては、必ず、その構成ファイルを変更してセキュリティーを厳重に締め、最新
のパッチ・レベルで最新状態にしておかなければなりません。
どの TCP/IP サービスがシステムでアクティブにリスニングしているかを判別す
るには、netstat -af inet コマンドを使用します。不明なポートでリスニングし
ているサービスを見つけた場合は、lsof (103 ページのセクション 6.5「リスト・
144
AIX セ キ ュ リ テ ィ ー ・ ツ ール
オープン・ファイル (lsof)」を参照 ) などのツールを使用して、所有権を判別する
のに役立てます。
/etc/rc.tcpip でサービスが開始しないようにするには、これをコメント化する
か (# を行の先頭に足す )、あるいは、ファイルからそのエントリーを削除しま
す。お勧めするのは後者の方法です。これは、問題判別のセッションなどで、別
の管理者がこの行を簡単にコメント解除し、無意識に、潜在的な余計なセキュリ
ティーの弱点をオープンすることが起こり得るからです。
不必要な TCP/IP デーモンを停止するには、システムのメインテナンス用のリ
ブートを待つか、または、/etc/tcp.clean スクリプトを実行して、すべての
TCP/IP デーモンを停止し、さらに /etc/rc.tcpip を実行して、ファイル内でまだ
コメント化されていないデーモンだけを再始動します。/etc/tcp.clean を実行す
ると、すべての TCP/IP 接続が切断されることに注意してください。これは破壊
的な行為ですから、メインテナンス・ウィンドウの外の実動サーバーでは絶対に
行ってはなりません。さらに、すべての telnet 接続もドロップされるので、ユー
ザーはシステムにローカルに接続されていることを確認してください。
ほとんどの場合、以下のデーモンは、開始する必要はありません。
第 8 章 AIX の保護
145
# Start up dhcpcd daemon
#start /usr/sbin/dhcpcd "$src_running"
# Start up autoconf6 process
#start /usr/sbin/autoconf6 ""
# Start up ndpd-host daemon
#start /usr/sbin/ndpd-host "$src_running"
# Start up the ndpd-router daemon
#start /usr/sbin/ndpd-router "$src_running"
# Start up print daemon
#start /usr/sbin/lpd "$src_running"
# Start up routing daemon (only start ONE)
#start /usr/sbin/routed "$src_running" -q
#start /usr/sbin/gated "$src_running"
# Start up Domain Name daemon
#start /usr/sbin/named "$src_running"
# Start up time daemon
#start /usr/sbin/timed "$src_running"
# Start up Network Time Protocol (NTP) daemon
#start /usr/sbin/xntpd "$src_running"
# Start up rwhod daemon (a time waster)
#start /usr/sbin/rwhod "$src_running"
# Start up the Simple Network Management Protocol (SNMP) daemon
# start /usr/sbin/snmpd "$src_running"
# Start up the DHCP Server
#start /usr/sbin/dhcpsd "$src_running"
# Start up the DHCP Relay Agent
#start /usr/sbin/dhcprd "$src_running"
# Start up the DPID2 daemon
start /usr/sbin/dpid2 "$src_running"
# Start up the mrouted daemon
#start /usr/sbin/mrouted "$src_running"
以下のセクションで、これらのエントリーについて詳しく説明します。この説明
は、これらのエントリーがユーザーのシステムで必要か否かを決めるのを助ける
ために提供されています。
8.2.2.1
dhcpcd、
、 dhcpsd、
、 お よ び、 dhcprd エ ン ト リ ー
DHCP(Dynamic Host Control Protocol) は、ネットワーク・クライアントが、自分
の IP アドレスを、IP アドレスのサーバー・プールから受け取れるようにするプ
ロトコルです。DHCP は、bootp プロトコルの拡張です。クライアント・マシン
146
AIX セ キ ュ リ テ ィ ー ・ ツ ール
が DHCP ブートを使用するように構成されると、IP アドレスを求める要求を
DHCP サーバーに送ります。DHCP サーバーは、自分が持っているアドレスの
プールから割り当てられた IP アドレスで応答します。クライアントは、割り当
てられたこの IP アドレスを使用して自分のネットワーク・サービスの残りを構
成し、ブートを完了します。
エントリーは、クライアント、サーバー、および、プロトコルのリレー・コン
ポーネントに対応します。ユーザーの AIX サーバーで DHCP を使用しない場合
は、これらのエントリーはコメントにしたままにしてください。
8.2.2.2
autoconf6、
、 ndpd-host、
、 お よ び、 ndnpd-router エ ン ト リ ー
autoconf6 プロセスはブート時に実行されて、IPv6 ネットワーク・インターフェー
スを構成し、必要な経路を追加します。ndp エントリーは IPv6 用のものでもあ
り、まだよく使用されていません。
IPv6 を使用していない場合は、これらのエントリーはコメントにしたままにし
ておいてください。
8.2.2.3
lpd エ ン ト リ ー
このマシンが他のマシンに対してプリント・サーバーとしての役割を持っている
場合は、lpd デーモンが必要です。つまり、このマシンが、印刷のためにリモー
ト・マシンによって使用される接続プリンターを持っている場合です。
8.2.2.4
routed お よ び gated エ ン ト リ ー
routed および gated は、動的ルーティングをインプリメントするために使用され
る 2 つのデーモンです。routed または gated のどちらかを実行できますが、両方
は実行できません。一般的に、セキュアな環境では、ものごとは deterministic
( 決定的 ) に保持する必要があります。したがって、動的ルーティングを使用す
る代わりに、システムへの静的経路を定義します。静的経路を定義する場合は、
エントリーはコメント化したままにし、必ず、ネットワーク (no) オプションを
セットしてください。no オプションについて詳しくは、186 ページのセクション
8.4「ステップ 3: 適切なネットワーク (no) オプションの設定」を参照してくださ
い。
8.2.2.5
named エ ン ト リ ー
named デーモンは、ローカル・サーバーが ネットワーク上の他のマシンにネー
ム・レゾリューション・サービスを提供するドメイン・ネーム・システム (DNS)
サーバーとしてはたらくときに、使用されます。DNS について詳しくは、153
ページのセクション 8.3.1「Domain Name System (DNS)」を参照してください。
8.2.2.6
timed お よ び xntpd エ ン ト リ ー
timed および xntpd は、2 つの異なる時刻同期デーモンです。これらのデーモン
は、サーバーの時刻を信頼できるクロック・ソースの時刻に同期させるために
サーバーによって使用されます。通常、これらのデーモンは、DCE/DFS セル、
SP 複合システム ( デフォルトでは NTP が使用される )、および、一部のファイ
アウォール ( 接続テーブルを同期させるため ) などの時刻厳守が必要な環境で使
用されます。
第 8 章 AIX の保護
147
8.2.2.7
rwhod エ ン ト リ ー
このデーモンは、サーバーにログインしているユーザーについての情報をリモー
ト・ユーザーに提供するために使用されます。これは、重大な機密漏れであるの
で、使用してはなりません。
8.2.2.8
snmpd エ ン ト リ ー
SNMP は、ネットワーク管理のために使用されます。これは、セキュリティー上
のアタックされ易さを持っているので、必要がないときには除去しておかなけれ
ばなりません。必要なときには、少なくとも、コミュニティー名を、推測しにく
い固有名に変更する必要があります。SNMP を構成することについて詳しくは、
180 ページのセクション 8.3.4「シンプル・ネットワーク管理プロトコル (SNMP)」
を参照してください。
8.2.2.9
dpid2 エ ン ト リ ー
DPID は、レガシー SNMP デーモンです。これは、めったに使われず、使えば機
密漏れになるので、除去すべきです。エントリーを /etc/rc.tcpip から削除し、
実行可能プログラムの許可 (chmod 0000 /usr/sbin/dpid2) を変更してください。
8.2.2.10 mrouted エ ン ト リ ー
mrouted は、マルチキャスト・データグラムを転送するのに使用します。マルチ
キャストを使用しない場合は、コメントにしたままにしてください。
8.2.3
/etc/inetd.conf から のエ ン ト リ ーの除去
inetd デーモンは、必要に応じて、他のデーモン (/etc/inetd.conf 構成ファイル
に指定されている ) を呼び出すマスター・サーバーの役割を果たします。この設
計は、システム負荷を減らすことを目的としています。inetd によって新しいデー
モンが開始されるたびに、リモート・クライアントの接続用にアクティブ・ポー
トが使用可能になります。これは、また、アタックされる機会が増えることも意
味します。
不要なサービスはコメント化してください。ある場合には、通常は必要だと考え
られていたサービスも除去することができます。たとえば、telnet、rsh、rlogin、
および ftp を、もっとセキュアな SSH の同等機能 (ssh、scp、sftp) で置き換える
ことができます。(SSH について詳しくは、59 ページのセクション 5.1「セキュ
ア・シェル (ssh)」を参照してください。) SSH を使用することを決めた場合は、
/etc/inetd.conf の中の telnet、rsh、および ftp の各サービスをコメント化してくだ
さい。また、ftp、ftpd、telnet、telnetd、rsh、rshd、rlogin、および、rlogind 実行可
能プログラムを、それぞれの SSH 同等機能で置き換えることも検討してくださ
い。このアプローチの唯一の欠点は、これらの実行可能プログラムは OS のアッ
プグレードやパッチで上書きされるので、そのたびに置き換えしなおさなければ
ならないことです。
必須のサービスの場合は、TCP Wrapper でプロテクトすることを検討してくださ
い。(TCP Wrapper のセットアップ方法について詳しくは、77 ページのセクショ
148
AIX セ キ ュ リ テ ィ ー ・ ツ ール
ン 5.2「TCP Wrapper」を参照してください。) TCP Wrapper は、これらのサービ
スを、アクセス制御およびロギングを使用してプロテクトします。残念ながら、
これらのサービスのほとんどには、認証情報の交換を暗号化しないで ( クリア・
テキスト ) ネットワークを使用して行うという問題があります。TCP Wrapper は、
この問題を解決しません。したがって、必須なサービスだけを使用可能にしてく
ださい。
SP 環境では、kshell、klogin、bootps、および tftp が必要です。ただし、これらの
サービスは、それぞれ別々に、必要がないときにはオフにし、必要になったとき
にはまたオンにする ( 使用可能にする ) ことができます。
ここでの基本セットアップでは、以下に示すサービスを、/etc/inetd.conf ファ
イルから除去しました。これが最終的なリストだというわけではありません。
ユーザーの環境に基づいて、ユーザーが、どのサービスを実行しどのサービスを
除去するか決める必要があります。これらのサービスには、持っていたら便利と
いうものが多くありますが、セキュリティー上の問題があるものもあります。
inetd がサービスを始動しないようにするには、inetd を /etc/inetd.conf 構成ファ
イルでコメント化し、次に、inetd をリフレッシュ (refresh -s inetd) します。
第 8 章 AIX の保護
149
#shell stream tcp6
nowait root
/usr/sbin/rshd
rshd
#kshell stream tcp
nowait root
/usr/sbin/krshd
krshd
#login stream tcp6
nowait root
/usr/sbin/rlogind
rlogind
#klogin stream tcp
nowait root
/usr/sbin/krlogind
krlogind
#exec
stream tcp6
nowait root
/usr/sbin/rexecd
rexecd
#comsat dgram udp
wait
root
/usr/sbin/comsat
comsat
#uucp stream tcp
nowait root
/usr/sbin/uucpd
uucpd
#bootps dgram udp
wait
root
/usr/sbin/bootpd
bootpd /etc/bootp
tab
#finger stream tcp
nowait nobody /usr/sbin/fingerd
fingerd
#systat stream tcp
nowait nobody /usr/bin/ps
ps -ef
#netstat stream tcp
nowait nobody /usr/bin/netstat
netstat -f inet
#
#tftp
dgram udp6
SRC
nobody /usr/sbin/tftpd
tftpd -n
#talk dgram udp
wait
root
/usr/sbin/talkd
talkd
#ntalk dgram udp
wait
root
/usr/sbin/talkd
talkd
#rquotad sunrpc_udp
udp
wait
root
/usr/sbin/rpc.rquotad rquota00011 1
#rexd
sunrpc_tcp
tcp
wait
root
/usr/sbin/rpc.rexd rexd 100017 1
#rstatd sunrpc_udp
udp
wait
root
/usr/sbin/rpc.rstatd rstatd 1000
01 1-3
#rusersd sunrpc_udp
udp
wait
root
/usr/lib/netsvc/rusers/rpc.ruser
sd rusersd 100002 1-2
#rwalld sunrpc_udp
udp
wait
root
/usr/lib/netsvc/rwall/rpc.rwalld
rwalld 100008 1
#sprayd sunrpc_udp
udp
wait
root
/usr/lib/netsvc/spray/rpc.sprayd
sprayd 100012 1
#pcnfsd sunrpc_udp
udp
wait
root
/usr/sbin/rpc.pcnfsd pcnfsd 1500
01 1-2
#echo
stream tcp
nowait root
internal
#discard stream tcp
nowait root
internal
#chargen stream tcp
nowait root
internal
#daytime stream tcp
nowait root
internal
#time
stream tcp
nowait root
internal
#echo
dgram udp
wait
root
internal
#discard dgram udp
wait
root
internal
#chargen dgram udp
wait
root
internal
#daytime dgram udp
wait
root
internal
#time
dgram udp
wait
root
internal
#instsrv stream tcp
nowait netinst /u/netinst/bin/instsrv instsrv -r /tmp/n
etinstalllog /u/netinst/scripts
#ttdbserver
sunrpc_tcp
tcp
wait
root
/usr/dt/bin/rpc.ttdbserv
er rpc.ttdbserver 100083 1
#dtspc stream tcp
nowait root
/usr/dt/bin/dtspcd /usr/dt/bin/dtspcd
#cmsd
sunrpc_udp
udp
wait
root
/usr/dt/bin/rpc.cmsd cmsd 100068
2-5
#imap2 stream tcp
nowait root
/usr/sbin/imapd imapd
#pop3 stream tcp
nowait root
/usr/sbin/pop3d pop3d
#ssalld sunrpc_tcp
tcp
wait
root
/usr/sbin/rpc.ssalld rpc.ssalld
300667 1
#kfcli stream tcp nowait root /usr/lpp/ssp/install/bin/kfserver kfserver
#xmquery dgram udp
wait
root
/usr/bin/xmservd xmservd -p3
以下のセクションで、これらのエントリーについて詳しく説明します。この説明
は、これらのエントリーがユーザーのシステムで必要か否かを決めるのを助ける
ために提供されています。
150
AIX セ キ ュ リ テ ィ ー ・ ツ ール
8.2.3.1
shell (rshd) お よ び login (rlogind) エ ン ト リ ー
これらのエントリーは、rsh、rlogin、および rcp 各コマンドの機能性用で、セキュ
リティー上の理由で使用不可にする必要があります。詳しくは、59 ページのセ
クション 5.1「セキュア・シェル (ssh)」を参照してください。rshd デーモンは TCP
ポート 514 を使用し、rlogind デーモンは TCP ポート 513 を使用します。
8.2.3.2
kshell (krshd) お よ び klogin (krlogind) エ ン ト リ ー
これらのエントリーは、shell および login サービスに似ていますが、Kerberos 認
証が使用されるときに使用されます。これらは、通常、SP 環境で必要です。SP
環境では、セッションが認証されている場合でも、rsh および rcp などのコマン
ドからのデータは暗号化されないで転送されるということに注意してください。
krshd デーモンは TCP ポート 544 を使用し、krlogind デーモンは TCP ポート 543
を使用します。
8.2.3.3
exec、
、 rstatd、
、 ruserd、
、 rwalld、
、 お よ び rquotad エ ン ト リ ー
exec (rexecd) エントリーは、rexec コマンド機能性のためのもので、リモート・コ
マンド実行のサポートのために使用されます。他の “r” サービスと同様に、この
エントリーは使用不可にしてください。rexecd デーモンは、TCP ポート 512 を使
用します。ここにリストされている他のデーモンは、ポートの割り振りのために
rpc ( ポート・マップ ) を使用します。
8.2.3.4
comsat エ ン ト リ ー
comsat デーモンはサーバーで、着信メールのレポートを受け取り、このサービ
スを使用可能にしているユーザーに (biff コマンドを使用して ) 知らせます。
comsat デーモンは、UDP ポート 512 を使用します。
8.2.3.5
uucp (uucpd) エ ン ト リ ー
uucp コマンドは、Basic Networking Utilities (BNU) コマンドです。このコマンド
は、1 つ以上のソース・ファイルを 1 つのシステムから、別の UNIX システム上
の 1 つ以上の宛先ファイルにコピーするのに使用されます。uucpd デーモンは、
TCP ポート 540 を使用します。
8.2.3.6
bootps (bootpd) お よ び tftp (tftpd) エ ン ト リ ー
bootpd デーモンは、クライアントのリモート・ブートを使用可能にする Internet
Boot Protocol サーバーをインプリメントします。tftp コマンドは、TFTP ( 単純
ファイル転送プロトコル ) を使用して、1 つのシステムから別のシステムにファ
イルを転送します。これらのサービスは、SP ノードをインストールするかネッ
トワーク・ブートするときに、SP 環境で必要です。tftp サービスは、とくに使用
可能なままにしておく場合には、セキュリティー上の問題がいくつかあることに
注意してください。詳しくは、184 ページのセクション 8.3.7「ファイル転送プロ
トコル (ftp)」を参照してください。bootpd デーモンは UDP ポート 67 を使用し、
tftpd デーモンは UDP ポート 69 を使用します。
8.2.3.7
finger (fingerd) エ ン ト リ ー
finger コマンドは、システム ( ローカルまたはリモートのどちらか ) に現在ログ
インしているユーザーについての情報を表示します。このコマンドは、社会工学
第 8 章 AIX の保護
151
アタックおよびバッファー・オーバーフロー・アタックのためによく使われるの
で、使用不可にしなければなりません。fingerd デーモンは TCP ポート 79 を使用
します。
8.2.3.8
systat (ps) エ ン ト リ ー
systat エントリーは、ps コマンドのサポートを提供します。これは、TCP ポート
11 を使用します。
8.2.3.9
netstat エ ン ト リ ー
netstat エントリーは netstat コマンドのサポートを提供します。これは、TCP
ポート 15 を使用します。
8.2.3.10 talk (talkd) お よ び ntalk (talkd) エ ン ト リ ー
talk コマンドの使用により、同じシステムまたは異なるシステム上の 2 つの
ユーザーが対話式会話を行うことができます。talkd デーモンは TCP ポート 518
を使用します。
8.2.3.11 rexd エ ン ト リ ー
rexd デーモンが実行されているときに、on コマンドをエミュレートしているプ
ログラムがあると、そのプログラムはシェル・アクセスを行うことができ、シェ
ル・アクセスによって次には、リモート・システム上の、パスワード・ファイル
などを含むファイルへのアクセスが提供されます。セキュリティー・リスクがあ
るため、このエントリーは使用不可にしてください。rexd デーモンは ポートの
割り振りに rpc ( ポート・マップ ) を使用します。
8.2.3.12 sprayd エ ン ト リ ー
sprayd デーモンは、spray コマンドのサポートを提供します。spray コマンドは、
バッファー・オーバーフロー・アタックおよび サービス妨害アタックの両方に
使用できるので、このエントリーは使用不可にすべきです。sprayd デーモンは、
ポートの割り振りに rpc ( ポート・マップ ) を使用します。
8.2.3.13 pcnfsd エ ン ト リ ー
pcnfsd デーモンは、NFS サービスを PC クライアントに提供します。このデーモ
ンには、アタッカーが トラップされていないメタ文字弱点を使用して、リモー
ト・システムで無許可コマンドを実行したヒストリーがあります。この理由によ
り、これは使用不可にします。pcnfsd デーモンは、ポートの割り振りに rpc ( ポー
ト・マップ ) を使用します。
8.2.3.14 echo、
、 chargen、
、 time、
、 お よ び daytime エ ン ト リ ー
これらのサービスはすべて、スプーフによって、1 つのシステムの 1 つのサービ
スから別のシステムの別のサービスにデータを送ることを強制され、その結果、
無限ループとサービス妨害アタックが発生します。ポートの使用は以下のとおり
です。echo は TCP および UDP ポート 7 を使用し、chargen は TCP および UDP
ポート 19 を使用し、time は TCP および UDP ポート 37 を使用し、daytime は TCP
および UDP ポート 13 を使用します。
152
AIX セ キ ュ リ テ ィ ー ・ ツ ール
8.2.3.15 discard エ ン ト リ ー
名前が示すように、discard はクライアントによって送られてきたものはなんで
も廃棄します。ほとんどの場合、これは必要ありません。これは TCP および UDP
ポート 9 を使用します。
8.2.3.16 ttdbserver、
、 dtspc、
、 お よ び cmsd エ ン ト リ ー
これらのエントリーは CDE 環境で使用されます。CDE は、絶対必要という場合
を除いて、サーバーで使用しないでください。CDE を使用不可にする場合は、こ
れらのエントリーも使用不可にしてください。これらのサービスはすべてポート
の割り振りのために rpc ( ポート・マップ ) を使用します。
8.2.3.17 imap2 (imapd) お よ び pop3 (pop3d) エ ン ト リ ー
これらのデーモンは両方ともメールを検索するために使用されます。各デーモン
とも、過去に、バッファー・オーバーフロー問題がありました。このシステムが
imap サーバーまたは pop3 サーバーとしてはたらいていない場合は、これらのエ
ントリーを使用不可にしてください。imapd デーモンは、imap2 用に TCP および
UDP ポート 143 を使用し、pop3d デーモンは、TCP ポート 110 を使用します。
8.3
ス テ ッ プ 2: 残 り のサービ スの構成の強化
もちろん、サーバーの通常の実動アクティビティーをサポートするために、一部
のサービスは依然として必要です。これらのサービスには、一般的には、DNS、
NFS、SMTP、および、SNMP などのサービスが含まれます。残りのアクティブな
サービスに関しては、デフォルトの構成を調整して、セキュリティーを強化する
必要があります。構成変更の範囲は、達成しようとしているセキュリティー・レ
ベルによって異なります。
8.3.1
Domain Name System (DNS)
DNS は、ホスト名を IP アドレスに ( および、IP アドレスをホスト名に ) マップ
するために使用されます。基本的には、これは、ホスト名から IP への検索・プ
ロトコルです。また、ホスト名レゾリューションの他の方法には、ローカル・ホ
スト・テーブル (/etc/hosts) および NIS があります。ローカル・ホスト・テーブ
ルによるソリューションは適切にスケールせず、また、NIS には、よく知られて
いるセキュリティー問題があります。これらの理由によって、DNS が最もよく
使われているソリューションです。
AIX では、
DNS は BIND (the Berkeley Internet Name Daemon) によって管理されます。
DNS と BIND は密に関連しているので、これらの用語は同じ意味で使われます。
2 つの異なる BIND バージョン (BIND4 および BIND8) がよく使用されています。
BIND4 のほうが古いプロトコルで、このサポートはドロップされています。
BIND8 が新しいプロトコルで、より多くの機能、組み込まれた ( 標準 ) セキュリ
ティー、バグ修正のサポートが含まれています。
BIND のホーム・ページは以下のサイトにあります。
http://www.isc.org/products/BIND/
第 8 章 AIX の保護
153
8.3.1.1
DNS の原則
ホスト名を IP アドレス ( たとえば、sales.west.france.acme.com.) に解決するよ
うに要求されると、DNS ネーム・サーバーは、以下の 3 つの質問に応答しよう
とします。
1. 答えはローカル DNS キャッシュにあるか?
2. キャッシュになければ、この名前は私の DNS ドメインに属しているか?
3. 私の DNS ドメインに属していないなら、他のどの DNS ネーム・サーバーに
この要求をエスカレートしたらよいのか?
要求をエスカレートし、答えを受け取るのは時間がかかる仕事です。最悪のシナ
リオとして、ユーザーの DNS ネーム・サーバーがまったく異なる DNS ドメイン
( たとえば、abc.xyz.fr.) に属していると仮定します。以下のドメイン・ネーム・
サーバーが、この順番で照会されます ( 途中でヒットするキャッシュがないと想
定して )。
1. . (“ ドット ”。これが DNS ツリーのトップ )
2. com.
3. acme.com.
4. france.acme.com.
5. west.france.acme.com.
ネットワークの負荷と遅延を減らすために、各 DNS ネーム・サーバーは、最新
の照会に対する応答をローカルに管理しています。ネーム・サーバーがついに
west.france.acme.com. に対する IP アドレスを入手すると、キャッシュの中の情
報の有効期限が切れるまで、先行の照会を再度出す必要はありません。
DNS キャッシュを使用すると、通常、ネーム・レゾリューションの速度が最大
3 桁ほどあがります。しかし、変化の速いインターネットの環境下で、いかにし
て、毎日発生する多数のアドレス変更で DNS キャッシュを最新の状態に保持で
きるかという問題が残ります。( ホスト名に関連しているアドレスは変更される
が、ローカル DNS キャッシュには依然として古い情報が入っているならば、ホ
スト名のレゾリューションは、キャッシュによって促進されるのではなく逆に足
を引っ張られることになります。) DNS キャッシュの整合性の問題については、
また説明します。
8.3.1.2
DNS ス プ ーフ ィ ン グ
www.dictionary.com によれば、スプーフィングとは、ナンセンス、でっちあげ、
害のない風刺的ものまね 軽妙なパロディーを意味します。
クライアントは DNS ネーム・サーバーを IP アドレスだけで認知しています。こ
の IP アドレスは、LAN 上のアタック・マシン ( たとえば、ポータブル・コン
ピューター ) によって捏造できます。もし、この偽ネーム・サーバーが実のネー
154
AIX セ キ ュ リ テ ィ ー ・ ツ ール
ム・サーバーよりもはやく応答すると、照会を出したクライアントを、敵のコン
ピューターにダイレクトすることができます。しかし、この技法は、アタッカー
の観点から見ると以下の欠点があります。
• マシンが LAN に接続されていなければならない。
• 成功が保証できない。偽のネーム・サーバーは、たしかに速いとしても、DNS
に照会を行うクライアントがブートするときに騙すことができるだけであ
る。LAN 上の他のクライアントは、実の DNS ネーム・サーバーの MAC アド
レスをすでに ARP キャッシュに持っている。
• 1 つの IP アドレスが 2 つの異なる MAC アドレスに関連付けられていると、
ネットワークで余計な問題を起こすので、システム管理者およびネットワー
ク管理者によって検出されやすい。
このような理由から、アタッカーによって、DNS スプーフィングの改良バージョ
ンが開発されています。
8.3.1.3
新し い 改良さ れた DNS ス プ ーフ ィ ン グ
154 ページのセクション 8.3.1.1「DNS の原則」では、キャッシュに入れたアドレ
スは、アドレスが変更されるたびに更新しなければならないということを述べま
した。DNS スプーフィングの目的は、もっぱら、偽造更新要求を DNS ネーム・
サーバーに送ることにあります。定義により、更新要求を送る DNS ネーム・サー
バーは、ローカル DNS ネーム・サーバーと同じ DNS ドメインに属すことはあり
ません。つまり、リモート DNS ネーム・サーバーはトラステッド・ホストでは
なく、したがって、原則として、更新は許可されません。BIND 8.2 より前は、こ
れを防ぐ方法がありませんでした。
どのよ う に DNS ス プ ー フ ィ ン グは動作す るか
以下の例で、DNS スプーフィングがどのように動作するかを説明します。
アタッカーは、DNS ネーム・サーバーに偽の更新を送ることから始めます。こ
の偽の更新は、DNS ネーム・サーバーのキャッシュの中にある完全修飾ホスト
名の IP アドレスを変更します。これは、単に、あるホスト名に関連付けられて
いる IP アドレスをルーチンの一環で更新しているようにしか見えず、
すべて OK
のように見え、かつ、完全修飾ホスト名の更新なので、DNS 階層内で持ち上げ
る必要もありません。
ここで、更新された IP アドレスが、セキュアな内容を提供している Web サイト
への IP アドレスだったと想像してみます。さらに、すりかえられた本当の IP ア
ドレスを持つホストの上にあるサイトのホーム・ページを、アタッカーが複製に
成功したと想定します。ユーザーにとっては、本当のサイトのように見えるの
で、アカウント番号とパスワードを使ってログインしようとします。
ここでアタッカーは、ブラックホール と呼ばれる技法を使用します。ブラック
ホールは、意図的に要求に応答しないことを意味します。この技法は、要求側の
時間を消費することを意図していて、この時間の消費は、アタッカーとその犠牲
第 8 章 AIX の保護
155
者の間、および、システム管理者とアタッカーの間で、利用されます。つまり、
アタッカーはユーザーをブラックホールし、“site busy” とか “requested page not
found” などという偽メッセージを出して、あとでまたトライしてくださいと言っ
て時間を稼ぎます。ユーザーが待っている間、アタッカーは、ユーザーのアカウ
ント番号とパスワードを使って本当のサイトにアクセスします。ユーザーが気が
ついたときには、時すでに遅し、アタッカーは消え失せています。もっと悪いこ
とに、サイトへのアクセスが、ユーザーの本当のアカウント番号とパスワードを
使用して行われているので、サイトでは、ユーザーが受けた損害の責任をとれな
いことです。
DNS ス プ ー フ ィ ン グの利用に対す る プ ロ テ ク シ ョ ン
DNS スプーフィングに対する 1 つのプロテクションは、各要求について、DNS
のダブル・ルックアップを行うためのソフトウェア修正を必要とするものです。
IP アドレスからホスト名への変換の着信要求を処理した後で、ホスト名から IP
アドレスに戻す 2 番目の変換が実行されます。2 つの IP アドレスが一致しなけ
れば、要求は拒否され、警告メッセージが出されます。( 直接アクセス・テーブ
ルの中のアドレスを偽造することは簡単ですが、順次リバース・アクセス・テー
ブルの中の正しい位置に偽アドレスを挿入することははるかに難しいことです。)
DNS ( および IP) スプーフィング問題の増加に対処する目的で、RFC 2065 で、
DNS セキュリティー拡張 (DNSSEC) が定義されています。これらのセキュリ
ティー拡張により、DNS リゾルバーと DNS ネーム・サーバーが 暗号化によって
送信元を認証し、さらに、デジタル・シグニチャーを使用して、DNS 照会と応
答の保全性を保証できるようになりました。これらは、BIND 8.2.1 に組み込まれ
ており、BIND 8.2.1 は AIX 4.3.3 に組み込まれています。
DNS ス プ ー フ ィ ン グ と IP ス プ ー フ ィ ン グの比較
DNS スプーフィングと IP スプーフィングの違いを説明するために、電話システ
ムとの類比を使います。
IP スプーフィングでは、テクニシャンが、宛先の電話番号 (IP アドレス ) を盗聴
してしまいます。ここから先は、その番号 (IP アドレス ) にかけられた呼び出し
( 要求 ) は、本当の宛先 ( 本当のサーバー ) に行くのではなく、テクニシャン ( 偽
サーバー ) に行きます。
DNS スプーフィングはもっと巧妙です。DNS スプーフィングでは、テクニシャ
ンはオリジナルの電話番号 (IP アドレス ) を変えません。その代わり、システム
のどこかにある電話帳 (DNS サーバー ) を変更し、本当の番号を、かれらの電話
番号 (IP アドレス ) で置き換えます。したがって、だれかが、そのエントリーの
名前を照会すると、本当の所有者の電話番号 (IP アドレス ) ではなく、テクニシャ
ンの電話番号を得ることになります。
DNS スプーフィングでは、DNS サーバーの識別を偽造するために、最初に IP ス
プーフィングが必要です。しかし、これが行われた後、アタッカーは、かれらの
“ 本当の ” IP アドレス ( 多くの場合、アタッカーが侵入した別のサイトのアドレ
ス ) に戻ることができます。この時点で、ネットワークでは、なにも変わったこ
156
AIX セ キ ュ リ テ ィ ー ・ ツ ール
とがないように見えます。BIND 8.2.1 で提供されているセキュリティー拡張は、
この種のアタックの裏をかくことを目的としています。
8.3.1.4
AIX 上の DNS
DNS デーモン named は、デフォルトによって /etc/rc.tcpip で開始されます。
BIND のバージョンは、表 4 に示すように、AIX のバージョンによって異なりま
す。
表 4. BIND の AIX バージ ョ ン
AIX バージ ョ ン
BIND バージ ョ ン
AIX 3.2.x
BIND 4.8.3
AIX 4.1.x
BIND 4.9.3
AIX 4.2.x
BIND 4.9.3
AIX 4.3.x
ipv4 BIND 4.9.3
ipv6 BIND 8.1.2
AIX 4.3.3
(with bos.net.tcp.server 4.3.3.13)
ipv4 BIND 4.9.3
ipv6 BIND 8.2.2 (patch 5)
どのバージョンの BIND (BIND4 または BIND8) がシステムで実行されているの
かを検査するには、/usr/sbin/named ファイルが どのように ( /usr/sbin/named4
または /usr/sbin/named8 に ) シンボリック・リンクされているかを見るとわか
ります。
$ ls -l /usr/sbin/named
lrwxrwxrwx
1 root
system
16 Mar 08 1999 /usr/sbin/named ->
/usr/sbin/named4
$ ls -l /usr/sbin/named-xfer
lrwxrwxrwx
1 root
system
21 Mar 08 1999
/usr/sbin/named-xfer -> /usr/sbin/named4-xfer
named デーモンは、次の画面に示されるように、bos.net.tcp.client ファイル・セッ
トの中にあります。
第 8 章 AIX の保護
157
$ type named4
named4 is /usr/sbin/named4
$ lslpp -w /usr/sbin/named4
File
Fileset
Type
---------------------------------------------------------------------------/usr/sbin/named4
bos.net.tcp.server
File
$ lslpp -f bos.net.tcp.server|more
Fileset
File
---------------------------------------------------------------------------Path: /usr/lib/objrepos
bos.net.tcp.server 4.3.3.0
/usr/sbin/trpt
/usr/sbin/named8-xfer
/usr/samples/snmpd/view.my
/usr/sbin/rsvpd
/usr/sbin/XNSquery
/usr/samples/snmpd/unix.my
/usr/sbin/mosy
/usr/samples/tcpip/named.hosts
/usr/sbin/named -> /usr/sbin/named4
...
BIND4 から BIND8 への変換は単純です。まず、named を停止します。次に、
BIND4 構成ファイル (/etc/named.boot) を BIND8 構成ファイル
(/etc/named.conf) に変換します。これを行う最も簡単な方法は、
/usr/samples/tcpip/named-booconf.pl PERL スクリプトを使用することです。次
に、named、named-xfer、および nsupdate の各ファイルを再リンクします。最後
に、named を再始動します。
# stopsrc -s named
0513-044 The named Subsystem was requested to stop.
# cd /usr/samples/tcpip
# chmod u+x named-bootconf.pl
# ./named-bootconf.pl /etc/named.boot > /etc/named.conf
#rm /usr/sbin/named
#rm /usr/sbin/named-xfer
#rm /usr/sbin/nsupdate
#cd /usr/sbin
#ln -s named8 named
#ln -s named8-xfer named-xfer
#ln -s nsupdate8 nsupdate
#startsrc -s named
0513-059 The named Subsystem has been started. Subsystem PID is 12346.
ネーム・レゾリューションのために、前に /etc/hosts だけを使用していたシス
テムで BIND8 をセットアップしている場合は、h2n PERL スクリプトを使用し
て、/etc/hosts ファイルを該当する named ファイルに変換することができます。
h2n PERL スクリプトは、以下の Web サイトから、匿名 FTP を使用して入手でき
ます。
ftp://ftp.uu.net/published/oreilly/nutshell/dnsbind/dns.tar.Z
158
AIX セ キ ュ リ テ ィ ー ・ ツ ール
8.3.1.5
AIX 上の DNS のセ キュ ア
以下の構成変更によって、AIX 上の DNS をもっとセキュアにできます。
ゾ ー ン転送の制限
ゾーン転送を制限することによって、ユーザーは、DNS サーバーからゾーン転
送を要求し受け取ることができるのはどのサーバー ( 承認されたサーバー ) かを
コントロールできます。DNS ゾーン転送によって提供される情報はアタッカー
にとって貴重です。これによって、メール・サーバー、Web サーバー、サーバー
の別名、およびネットワーク・マッピングについての情報が提供されます。この
オプションは、BIND 4.9 以降で使用可能です。
ゾーン・データを DNS ネーム・サーバーに照会できるリモート・システム上の
ユーザーはだれでも、かれらがすでに知っているドメイン・ネームを持っている
ホストのデータ ( たとえば IP アドレス ) を、一回に 1 つずつ照会することしかで
きません。DNS ネーム・サーバーからゾーン転送を要求し受け取ることができ
るリモート・システム上のユーザーはだれでも、ゾーン内のすべてのホストのす
べての DNS データを見ることができます。DNS ネーム・サーバーを nslookup
ツールを使用して照会することについて詳しくは、165 ページのセクション
8.3.1.6「Nslookup」を参照してください。
注
nslookup の ls サブコマンドは、ゾーン転送としてインプリメントされていま
す。
BIND 8 の allow-transfer サブステートメント、および、BIND 4.9 の xfrnets ディレ
クティブによって、ユーザーは、アクセス・リストをゾーン転送に適用すること
ができます。allow-transfer サブステートメントを zone サブステートメントとし
て使用して、特定のゾーンの転送を制限するか、あるいは、allow-transfer サブス
テートメントを options サブステートメントとして使用して、すべてのゾーン転
送を制限することができます。サブステートメントは引き数として、突き合わせ
る先のアドレスのリストをとります。
重要
かならず、ゾーン転送アクセスは、プライマリーおよびスレーブ DNS サー
バーに制限してください。
たと え ば、acmebw.com ゾー ン の DNS スレ ー ブ・サ ー バー が、IP アド レ ス
192.168.0.1 および 192.168.1.1 を持っているとします。以下に示す zone ステート
メント (/etc/named.conf にある ) は、これらのスレーブ・サーバーだけに、プラ
イマリー・マスター・ネーム・サーバーから acmebw.com を転送することを許可
します。
第 8 章 AIX の保護
159
zone "acmebw.com" {
type master;
file "db.acmebw";
allow-transfer { 192.168.0.1; 192.168.1.1; };
};
BIND 8 のデフォルトでは、すべての IP アドレス ( アタッカーに属する IP アドレ
スを含む ) がゾーンを転送することを許可されるので、以下のように、ユーザー
の DNS スレーブ・サーバーにも zone ステートメントを持つ必要があるというこ
とに注意してください。
zone "acmebw.com" {
type slave;
masters { 192.168.0.4; };
allow-transfer { none; };
};
BIND 8 を使用すると、ゾーン転送用に、グローバル・アクセス・リストを確立
することもできます。このリストは、(zone サブステートメントを使用して ) ま
だ明示的なアクセス・リストが定義されていないゾーンにのみ適用されます。
たとえば、すべてのゾーン転送を、内部ネットワーク (192.168.0.0) 上のホストに
制限したいとします。
options {
allow-transfer { 192.168/16; };
};
BIND 4.9 を使用すると、xfrnets ディレクティブは、プライマリー・マスター DNS
ネーム・サーバーからゾーン転送を行うことを許可されているネットワークまた
は IP アドレスである引き数を持つことができます。ネットワークは、小数点つ
きオクテット・フォーマット (/etc/named.boot にある ) で指定され、たとえば、
クラス A ネットワーク 15.0.0.0 およびクラス B ネットワーク 128.32.0.0 の上の
ホストにだけゾーン転送を行うことを許可します。
xfrnets 15.0.0.0 128.32.0.0
セキュア・ゾーンとは異なり、この制限は、サーバーが権限を持っているすべて
のゾーンに適用されます。
ネットワークのごく一部を 1 つの IP アドレスに指定する必要がある場合は、
ネットワーク・マスクを追加できます。ネットワーク・マスクを組み込むための
構文は、network&netmask です。ネットワークとアンパーサンドの間、および、ア
160
AIX セ キ ュ リ テ ィ ー ・ ツ ール
ンパーサンドとネットマスクの間には、スペースを入れてはならないことに注意
してください。
前の例でゾーンを転送することを許可されていたアドレスを、IP アドレス
15.255.152.4 およびサブネット 128.32.1.0 だけにしぼりたい場合は以下のように
します。
xfrnets 15.255.152.4&255.255.255.255 128.32.1.0&255.255.255.0
インターネットからアクセス可能なプライマリー・マスター・ネーム・サーバー
の場合は、多くの場合、ゾーン転送をユーザーのスレーブ・ネーム・サーバーだ
けに制限する必要があります。内部ネットワーク ( ファイアウォールの内側 ) 上
のプライマリー・マスター・ネーム・サーバーの場合は、管理下の人々がゾー
ン・データのリストを作成することに管理者として危惧を感じるならば、ゾーン
転送をスレーブ・ネーム・サーバーだけに制限することが必要です。
動的更新の制限
動的 DNS は、DNS のプロトコル拡張です。これにより、ゾーン・データの完全
な再ロードをせずに、ゾーン・データの変更 ( 低いオーバーヘッド ) を行えるよ
うにする軽量級メカニズムが定義されます。理論的には、更新は、リモート・ホ
ストから発信することができます。
BIND 8 だけが、動的更新機能を持っています。デフォルトでは、動的更新を許
可しません。動的更新を使用可能にするには、allow-update サブステートメント
を、ネーム・サーバー構成ファイル (/etc/named.conf) に追加する必要がありま
す。
zone "acmebw.com" {
type master;
file "db.acmebw"
allow-update { localhost; };
};
認証が使用されていない場合は、動的更新は、使用不可にするか、ローカル・ホ
ストだけに使用可能にします。動的更新は、あるケース、たとえば、DHCP サー
バーを使用する場合は、必要です。
再帰の制限
再帰は、ユーザーに代わって、DNS サーバーが他の DNS サーバーに連絡をとっ
て、最終的な応答をユーザーに戻すことを言います。これは、1 つの DNS サー
バーが次の DNS サーバーに、つぎつぎと、ユーザーを紹介する参照とは違いま
す。再帰の利点は、途上のサーバーが応答をキャッシュに入れるので、将来照会
があったときに応答時間がはやくなる可能性があることです。
第 8 章 AIX の保護
161
再帰が使用不可になっていると、DNS は、参照に戻ります。未知のホストにつ
いて照会があると、DNS サーバーは照会に応答しようとします。この DNS サー
バーは、照会に応答できないと、もっと権威のある DNS サーバーに参照を戻し
ます。次に DNS クライアントはチェーン上の次のサーバーに連絡をとり、プロ
セスが繰り返されます。この方法の欠点は応答時間が遅くなることですが、利点
は、スプーフがはるかに難しくなることです。
インターネットから再帰的照会を受け入れることは、DNS ネーム・サーバーが
DNS スプーフィングに弱くなることを意味します。アタッカーが、リモート DNS
ゾーンに対して ( 一時的 ) コントロールを握ったと仮定します。すると、アタッ
カーは、ユーザーのネーム・サーバーに照会して、それらのゾーンについての情
報を求めようとします。再帰がオンになっていると、ネーム・サーバーはユー
ザーに代わって、乗っ取られたネーム・サーバーに照会して情報を得ようとしま
す。照会からの応答には偽のデータが含まれていて、このデータがネーム・サー
バーのキャッシュに保管され、DNS のスプーフが完了します。ユーザーのネー
ム・サーバーは、いまや、本当のサーバーではなくアタッカーのサーバーに要求
を経路指定するようにセットアップされているので、アタッカーは、乗っ取られ
たネーム・サーバーのコントロールを解放します。
再帰をオフにすることが実際的ではない場合は、以下のことを行う必要がありま
す。
• ユーザーのネーム・サーバーが応答を戻す先のアドレスを制限する。
• ユーザーのネーム・サーバーが再帰的照会に関して応答を戻す先のアドレス
を制限する。
再帰をオフにする方式は、バージョンによって異なります。
BIND 4.9 の場合。
options no-recursion
BIND 8 の場合。
options {
recursion no;
};
照会の制限
DNS ネーム・サーバーの目的は、そのネーム・サーバーが権威を持てるゾーン
についての質問に応答することです。内部 DNS サーバー ( ファイアウォールの
内側にある内部ネットワーク上のサーバー ) の場合、内部ネットワーク内から発
信される照会にのみ応答するようにネーム・サーバーを構成することをお勧めし
ます。つまり、そのネーム・サーバーは、権威を持っている同じゾーン内から発
信される照会にのみ応答するように構成することが必要です。BIND 8 では、こ
162
AIX セ キ ュ リ テ ィ ー ・ ツ ール
れは、zone ステートメントの中で allow-query サブステートメントを使用するこ
とによって行えます。
たとえば、acmebw.com が、192.168.0 ネットワーク上にあると仮定します。ユー
ザーのネーム・サーバーへの照会を、192.168.0 ネットワーク上にあるホストか
らの照会だけに制限するには、次のようにします。
zone "acmebw.com" {
type slave;
allow-query { 192.168.0/24; };
};
注
このオプションは、ゾーン・レベルではなく、グローバル・レベルでもセッ
トできます。
BIND 4 では、照会の制限は、secure_zone レコードを使用することによって行え
ます。このレコードによって、個々のリソース・レコードおよびゾーン転送の両
方へのアクセスが制限されます。(BIND 8 では、この 2 つは別個に行われます。)
BIND 4 では、このオプションは、DNS ネーム・サーバーが 権威を持っている
ゾーンに対してのみ作動します。
セキュア・ゾーンを使用するには、1 つ以上の TXT (txt) レコードを、プライマ
リー・マスター・ネーム・サーバー上のゾーン・データに組み込みます。レコー
ドは、自動的にスレーブ・サーバーに転送されます。
secure_zone
IN
TXT
"192.249.249.0:255.255.255.0"
DNS キャッシュ更新の制限
キャッシュ内でアドレス更新を許可する DNS 機能は、グルー・フェッチ と呼ば
れます。これは、DNS スプーフィングにとってオープン・ドアなので、オフに
しなければなりません (fetch-glue no)。キャッシュが使用されないので、DNS サー
バーのパフォーマンスは落ちますが、スプーフィングなどの潜在的な問題を避け
ることができます。
グルー・フェッチをオフにする方式は、バージョンによって異なります。
BIND 4.9 の場合。
第 8 章 AIX の保護
163
options no-fetch-glue
BIND 8 の場合。
options {
fetch-glue no;
};
DNS 構成の分割
2 種類のネーム・サーバーを持つことを考えてみます。
• 広告ネーム・サーバー。世界に開かれていて再帰的でない。
• 内部レゾリューション・ネーム・サーバー。既知のリゾルバー ( 内部かつセ
キュア ) によってのみ照会できる。必要であれば、グルー・フェッチおよび
再帰的照会の使用を、このようなサーバーで許可することもできる。
それぞれのタイプの構成例を以下に示します。
広告ネーム・サーバー
acl slaves { 207.69.231.3; 209.86.147.1; };
options {
directory /var/named;
recursion no;
fetch-glue no;
allow-query { any; }; // the default
};
zone "acmebw.com" {
type master;
file "db.acmebw.com";
allow-transfer { slaves; };
};
内部レゾリューション・ネーム・サーバー
164
AIX セ キ ュ リ テ ィ ー ・ ツ ール
acl internal { 192.168.0/24; };
options {
directory "/var/named";
recursion yes; // the default
allow-query { internal; };
};
zone "." {
type hint;
file "db.cache";
};
zone "acmebw.com" {
type slave;
masters { 207.69.231.2; };
file "bak.acmebw.com";
allow-transfer { internal; };
};
8.3.1.6
Nslookup
nslookup ツールは、DNS ネーム・サーバーに照会してホストやドメインに関す
る情報を求めるために使用します。AIX では、これは、bos.net.tcp.client ファイ
ル・セットにパッケージされています。Nslookup は 2 つの方式、つまり、対話
式とバッチの両方で使用できます。Nslookup は、DNS サーバーを照会してサー
バーの IP アドレスを入手するためによく使われますが、これよりも豊富な機能
を持っています。
単純な例として、www.redbooks.com の IP アドレスを知りたいと仮定します。
#nslookup www.redbooks.com
Server: joyce.sg.ibm.com
Address: 9.184.8.1
Non-authoritative answer:
Name:
www.redbooks.com
Address: 198.245.191.153
逆に、IP アドレス 198.245.191.153 に関連付けられている名前を知りたいとしま
す。
第 8 章 AIX の保護
165
#nslookup -type=ptr 198.245.191.153
Server: joyce.sg.ibm.com
Address: 9.184.8.1
Non-authoritative answer:
153.191.245.198.in-addr.arpa
name = redbooks.com
Authoritative answers can be found from:
191.245.198.in-addr.arpa
nameserver = nis.ans.net
191.245.198.in-addr.arpa
nameserver = ns.ans.net
nis.ans.net
internet address = 147.225.1.2
ns.ans.net
internet address = 192.103.63.100
このサイトに対して権威のあるネーム・サーバーのリストに注意してください。
この情報を使って各ネーム・サーバーを照会して、詳細情報を求めることができ
ます。
また、nslookup を使用して、DNS ネーム・サーバーの特定のタイプの DNS レコー
ドについて照会できます。たとえば、yahoo.com にある Start Of Authority (SOA)
レコードについて照会するには以下のようにします。
#nslookup -type=SOA yahoo.com
Server: joyce.sg.ibm.com
Address: 9.184.8.1
Non-authoritative answer:
Çôyahoo.com
origin = ns0.corp.yahoo.com
mail address = hostmaster.yahoo-inc.com
serial = 2000080812
refresh = 1800 (30 mins)
retry = 900 (15 mins)
expire = 1209600 (14 days)
minimum ttl = 9 (9 secs)
Authoritative answers can be found from:
yahoo.com
nameserver = ns1.yahoo.com
yahoo.com
nameserver = ns3.europe.yahoo.com
yahoo.com
nameserver = ns5.dcx.yahoo.com
ns1.yahoo.com internet address = 204.71.200.33
ns3.europe.yahoo.com
internet address = 194.237.108.51
ns5.dcx.yahoo.com
internet address = 216.32.74.10
また、nslookup を使用して、特定のドメインにサービスを提供する DNS ネーム・
サーバーについて照会できます。たとえば、yahoo.com ドメインにサービスを提
供する DNS ネーム・サーバーを見つけるには、以下のようにします。
166
AIX セ キ ュ リ テ ィ ー ・ ツ ール
# nslookup -type=NS yahoo.com
Server: joyce.sg.ibm.com
Address: 9.184.8.1
Non-authoritative answer:
yahoo.com
nameserver = ns3.europe.yahoo.com
yahoo.com
nameserver = ns5.dcx.yahoo.com
yahoo.com
nameserver = ns1.yahoo.com
Authoritative answers can be found from:
ns3.europe.yahoo.com
internet address = 194.237.108.51
ns5.dcx.yahoo.com
internet address = 216.32.74.10
ns1.yahoo.com internet address = 204.71.200.33
また、nslookup を使用して、ある DNS ドメインの中のすべてのサーバーをリス
トできます。nslookup の中で、server サブコマンドを使用して、DNS サーバー
に ( 対話モードで ) 接続することによって開始してください。
> server <DNS server IP address>
次に、nslookup の ls サブコマンドを使用して、ドメイン内のサーバーをリスト
します。
> ls <domain name>
nslookup の ls サブコマンドは、ゾーン転送を行うことを思い出してください。
したがって、ls サブコマンドが作動するためには、ゾーン転送が許可されなけ
ればなりません。
# nslookup
Default Server: LOCALHOST.0.0.127.in-addr.arpa
Address: 127.0.0.1
>server 9.12.0.5
Default Server: sp5cw0.itso.ibm.com
Address: 9.12.0.5
> ls alibaba.ibm.com
[merlin.itso.ibm.com]
*** Can’t list domain alibaba.ibm.com:Unspecified error
> ls alibaba.ibm.com
[merlin.itso.ibm.com]
10M IN NS
merlin
merlin
10M IN A
9.12.0.50
aixfw
10M IN A
172.1.1.4
arthur
10M IN A
9.12.0.18
loopback
10M IN A
127.0.0.1
cws
10M IN A
9.12.0.5
Success
はじめて ls alibaba.ibm.com コマンドが実行されたときに、このコマンドが正
常に実行されなかったことに注意してください。これは、ゾーン転送を使用不可
にしていたからです。そこで、ゾーン転送を使用可能にし、ls alibaba.ibm.com
コマンドを再実行しました。ご覧のように、今度は、全ドメインのリストが戻さ
れました。
第 8 章 AIX の保護
167
汎用の DNS デバッグに加えて、nslookup は、DNS が、必要以上に情報を出さない
ように適切に構成されていることを確認するのにも非常に便利です。たとえば、イ
ンターネット上の複数のホストからアクセスできる DNS ネーム・サーバーがある
場合、ユーザーの DMZ の外側でも見えなければならないサーバーだけを見えるよ
うにし、その他のサーバーはすべて隠れていることを確認してください。
8.3.2
Network File System お よび Network Information Service
Network File System (NFS) は、リモート・ファイル・システムにローカルでアク
セスできるようにします。Network Information Service (NIS) は、キー・システム・
ファイル (/etc/passwd および /etc/hosts など ) の集中管理を提供します。これ
らのプロトコルは、相互に強固な関係を持っています。ただし、本書では、NIS
については詳しくカバーしません。むしろ、NIS およびその派生プロダクトまた
は機 能 の詳 細 につ い て は、AIX 4.3 Elements of Security Effective andEfficient
Implementation、SG24-5962、
のセクション 7.6、または Network Information Service
(NIS) Overviewfor System Management in AIX Version 4.3 Network Information
Services(NIS and NIS+) Guide を参照いただきたい。
NFS および NIS は両者とも Sun’s Remote Procedure Call (RPC) プロトコルを使用
し、RPC プロトコルは、portmapper を使用してポートを割り振ります。ポート・
マップ・デーモンは、RPC プログラム番号をインターネット・ポート番号に変
換します。rpcinfo プログラムを使用して portmapper (TCP/UDP ポート 111) を照
会することにより、どのポートで RPC サービスがリスニングしているかを判別
することができます。アプリケーションも同じことをして、指定されたサービス
のポートを見つけます。過去、ポート・マップ・デーモンは、バッファー・オー
バーフロー・アタックを受けやすい弱点を持っていました。このデーモンは、必
ず最新のセキュリティー・パッチ・レベルに保持するか、必要がない場合は、使
用不可にしてください。
RPC プロトコルは、いくつかの認証方式をサポートしています。NFS および NIS
で使用されている方式は、AUTH_UNIX または、ときどき、AUTH_SYS です。
AUTH_UNIX を使用する場合は、クライアントは、要求と一緒にユーザー ID お
よびグループ ID 情報を送ります。サーバーは、これは、クライアントからの本
当の情報だと想定して、サーバーに保管されているアクセス制御リストに基づい
てアクセスを認可するか拒否します。NFS の場合は、アクセス制御リストは、
/etc/exports ファイルです。
ユーザーは、rpcinfo コマンドを使用してリモート・システム上のポート・マッ
プ・デーモンに照会し、NFS がアクティブかどうかを判別できます。どのユー
ザーも rpcinfo を使用してリモート・システムのポート・マップ・デーモンに照
会し、どの RPC サービスがアクティブかを判別できることに注意してください。
ユーザーのサーバーがこれらの RPC サービスのどれも使用していない場合は、
ポート・マップ・デーモンを使用不可にしてください。いまサーバーでアクティ
ブな RPC サービスがないということを知るのは、アタッカーにとって依然として
貴重な情報です。アタックの対象でないものは何かという情報になるからです。
ホスト sp5cw0 でどの RPC サービスがアクティブか知りたいとします。
168
AIX セ キ ュ リ テ ィ ー ・ ツ ール
$ rpcinfo -p sp5cw0
program vers
100000
100000
100000
100000
100000
100000
100001
100001
100001
100002
100002
100008
100012
150001
150001
100083
100068
100068
100068
100068
300667
100003
100003
100003
100003
200006
200006
100005
100005
100005
100005
100005
100005
100024
100024
200001
200001
200001
100021
100021
100021
100021
100021
100021
100021
100021
100099
1342177279
1342177279
1342177280
1342177280
proto port service
4 tcp
111 portmapper
3 tcp
111 portmapper
2 tcp
111 portmapper
4 udp
111 portmapper
3 udp
111 portmapper
2 udp
111 portmapper
1 udp 32780 rstatd
2 udp 32780 rstatd
3 udp 32780 rstatd
1 udp 32781 rusersd
2 udp 32781 rusersd
1 udp 32782 walld
1 udp 32783 sprayd
1 udp 32784 pcnfsd
2 udp 32784 pcnfsd
1 tcp 32769 ttdbserver
2 udp 32785 cmsd
3 udp 32785 cmsd
4 udp 32785 cmsd
5 udp 32785 cmsd
1 tcp 32770
2 udp 2049 nfs
3 udp 2049 nfs
2 tcp 2049 nfs
3 tcp 2049 nfs
1 udp 2049
1 tcp 2049
1 udp 32795 mountd
2 udp 32795 mountd
3 udp 32795 mountd
1 tcp 32774 mountd
2 tcp 32774 mountd
3 tcp 32774 mountd
1 udp
746 status
1 tcp
746 status
1 udp
755
1 tcp
755
2 tcp
755
1 udp 32818 nlockmgr
2 udp 32818 nlockmgr
3 udp 32818 nlockmgr
4 udp 32818 nlockmgr
1 tcp 32775 nlockmgr
2 tcp 32775 nlockmgr
3 tcp 32775 nlockmgr
4 tcp 32775 nlockmgr
1 udp 32839 autofs
4 tcp 37661
1 tcp 37661
4 tcp 49690
1 tcp 49690
第 8 章 AIX の保護
169
この出力から、ターゲット・システムで NFS ( ポート 2049) がアクティブである
ことがわかります。
NFS がアクティブであることがわかったので、次に、showmount コマンドを使用
して、ホスト sp5cw0 からどのファイル・システムがエクスポートされているか
を見ます。
$ showmount -e sp5cw0
export list for sp5cw0:
/spdata/sys1/install/pssplpp
(everyone)
/usr/sys/inst.images
(everyone)
/spdata/sys1/install/aix433/lppsource (everyone)
どのユーザーでも showmount コマンドを使用して、どのディレクトリーがリモー
ト・サーバーからエクスポートされているか、さらに、エクスポートがどのよう
にセットアップされているかによって、エクスポートされたディレクトリーにア
クセスが許可されているサーバーの個々のサーバー名を知ることができること
に注意してください。これらのすべてが、アタッカーにとって貴重な情報です。
非常に便利な NFS クライアント・ユーティリティー (nfs) が、以下のサイトから
入手できます。
ftp://ftp.cs.vu.nl/pub/leendert/nfsshell.tar.gz
nfs ユーティリティーは、
ftp のようなインターフェースを持っています。nfs ユー
ティリティーを使用すると、root アクセスを使用してファイル・システムをエク
スポートする危険性が簡単にわかります。
ユーザーは、gzip ユーティリティー (Bull サイトから入手可能 ) および C コンパ
イラーの両方にアクセスすることが必要です。本書では、AIX 4.3.3 で、バージョ
ン 4.4 C コンパイラー (/usr/vac/bin/cc) を使用しました。パッケージをダウン
ロードし、解凍し、いたずらされていないことを確かめてください (136 ページ
のセクション 7.4.1「ダウンロードの保全性の確認」を参照 )。また、Solaris セク
ションをコメント化し、AIX セクションをアンコメントし、該当する C コンパ
イラーを指定することによって、Makefile を変更する必要があります。最後に、
make を実行して nfs ユーティリティーをコンパイルしてください。
170
AIX セ キ ュ リ テ ィ ー ・ ツ ール
# ls -l
total 96
-rw-r----- 1 root
system
29393 Aug 29 09:52 nfsshell.tar.gz
# /usr/local/bin/gzip -d nfsshell.tar.gz
# tar -xvf nfsshell.tar
x nfs
x nfs/Makefile, 1935 bytes, 4 media blocks.
x nfs/mount.h, 4144 bytes, 9 media blocks.
x nfs/mount.x, 3088 bytes, 7 media blocks.
x nfs/nfs.c, 53673 bytes, 105 media blocks.
x nfs/nfs_prot.x, 6405 bytes, 13 media blocks.
x nfs/steal.c, 7750 bytes, 16 media blocks.
x nfs/mount_xdr.c, 2259 bytes, 5 media blocks.
x nfs/mount_clnt.c, 2579 bytes, 6 media blocks.
x nfs/mount_svc.c, 5744 bytes, 12 media blocks.
x nfs/READ_ME, 828 bytes, 2 media blocks.
x nfs/mail
x nfs/mail/Friedrichs, 1687 bytes, 4 media blocks.
x nfs/nfs_prot_xdr.c, 12153 bytes, 24 media blocks.
x nfs/nfs_prot.h, 12107 bytes, 24 media blocks.
x nfs/nfs_prot_clnt.c, 6358 bytes, 13 media blocks.
x nfs/nfs_prot_svc.c, 8287 bytes, 17 media blocks.
# cd nfs
# ls
Makefile
mount.x
nfs.c
nfs_prot_svc.c
READ_ME
mount_clnt.c
nfs_prot.h
nfs_prot_xdr.c
mail
mount_svc.c
nfs_prot.x
steal.c
mount.h
mount_xdr.c
nfs_prot_clnt.c
# vi Makefile
# uncomment the following 4 lines for Solaris 2.x
#CC
= gcc
#CFLAGS
= -DSYSV -DREADLINE -I/usr/local/include
#LIBS
= -lsocket -L/usr/ucblib -R/usr/ucblib -lrpcsoc -lnsl \
-L/usr/local/lib -lreadline -lhistory -ltermlib
# uncomment the following 3 lines for AIX
CC
= cc
CFLAGS
= -DAIX
LIBS
=
# make nfs
cc -DAIX -c mount_clnt.c
cc -DAIX -c mount_xdr.c
cc -DAIX -c nfs_prot_clnt.c
cc -DAIX -c nfs_prot_xdr.c
cc -DAIX -c nfs.c
cc -g -o nfs mount_clnt.o mount_xdr.o nfs_prot_clnt.o nfs_prot_xdr
.o nfs.o
第 8 章 AIX の保護
171
重要
セキュリティー上の理由で、実動システムに C コンパイラーをロードしてお
くことはお勧めしません。実動システムでないシステムでプログラムをコン
パイルし、実動システムに移動するのは実行可能プログラムだけにしてくだ
さい。また、許可は、できるだけ厳重にセットしてください。
ここで、root アクセスを使用して NFS ファイル・システムをエクスポートする
ことの危険性を理解するために、nfs ユーティリティーの使用方法について考え
てみます。この例では、テスト用の SP システムを使用しています。まず、われ
われは、NFS がデフォルトを使用し、ホスト node13 に root アクセスを与えて、
/node5 ファイル・システムをホスト node5 からエクスポートすることから始めま
した。
node13 では、特権のないユーザー・アカウントから nfs を実行します。status サ
ブコマンドを使用して、現在、われわれは、user nobody (-2) および group nobody
(-2) として許可を持っていることを知ります。次に、host サブコマンドを使用し
て、node5 に接続を開きます。ここで、恐ろしいことが起こるはずです。nfs が
root として開始されていないにもかかわらず、われわれは、uid および gid サブ
コマンドを使用して、われわれの ID を root に変えます。export サブコマンドの
結果、/node5 ファイル・システムがエクスポートされていることがわかります。
そこで、これを、mount サブコマンドを使用してマウントします。次に、ls サブ
コマンドで、ファイル (aaa) があって、このファイルのアクセス許可が root だけ
に与えられていることがわかります。cat サブコマンドによって、現在われわれ
は、/node5 ファイル・システムに root アクセスを持っていることが示されます。
最後に、われわれは、ユーザー ID を nobody (-2) に戻し、ファイル (aaa) にアク
セス権をもう持っていないことを示します。
$ nfs
nfs> status
User id
: -2
Group id
: -2
Transfer size: 0
nfs> host node5
Using a privileged port (1023)
Open sp5en05 (192.168.5.5) TCP
nfs> uid 0
nfs> gid 0
nfs> export
Export list for sp5en05:
/node5
everyone
nfs> mount /node5
Using a privileged port (1022)
Mount `/node5', TCP, transfer size 8192 bytes.
nfs> ls -l
-rwx------ 1
0
3
17 Aug 29 10:01 aaa
nfs> cat aaa
this is file aaa
nfs> uid -2
nfs> cat aaa
aaa: Permission denied
172
AIX セ キ ュ リ テ ィ ー ・ ツ ール
もし、/node5 ファイル・システムが root アクセスを使用してエクスポートされ
ていなかったならば、われわれは、nfs ユーティリティーを使用して、ファイル
(aaa) を表示できなかったはずです。したがって、ここで、2 つの教訓が得られ
ました。第一は、絶対に必要だということがない限り、root アクセスを使用して
ファイル・システムをエクスポートしないこと。第二は、nfs ユーティリティー
をロードする場合は、root だけが実行できるように許可をセットすること。nfs
ユーティリティーを実行することについてさらに詳しくは、help サブコマンド
を実行してください。
SP 環境では、ノードをインストールしカスタマイズするときは、PSSP は NFS を
使用します。ほとんどの SP 環境では、NFS は、日常のサポート・アクティビ
ティー ( 自動マウント・ホーム・ディレクトリー、制御ワークステーションへの
mksysb 夜間バックアップ、など ) にも使用されます。SP 環境内で NFS がアク
ティブになっていることに依存している場合は、エクスポート・リストを明示的
に作成することによって、NFS の使用を内部 SP ネットワーク ( 管理イーサネッ
トおよびスイッチ ) だけに制限してください。また、SP 環境では、機密漏れの
おそれがあるため、NIS をユーザー管理に使用することは避けてください。もっ
とセキュアな代替には、supper、DCE ユーザー管理、および NIS+ があります。
supper および DCE ユーザー管理は、PSSP によって直接サポートされています。
NFS および NIS のより新しい代替は、Secure NFS および NIS+ です。Secure NFS
および NIS+ は、NFS および NIS 同様に、Sun’s RPC プロトコルを使用しますが、
使用される認証プロトコルが異なります。NFS および NIS は、AUTH_UNIX 方
式を使用しますが、Secure NFS および NIS+ は、よりセキュアな AUTH_DES 方
式を使用します。
Secure RPC によって使用される AUTH_DES プロトコルは、DES ベースの、公開
鍵と秘密鍵による暗号化を使用します。これによって、すべての要求について正
しい認証が行われ、したがって、データ共用のセキュアな方法 (Secure NFS) およ
びユーザー管理の実行 (NIS+) が提供されます。Secure RPC を使用するには、公
開鍵および秘密鍵をセットアップし、すべてのユーザーにプリンシパルを作成す
る必要があります。これを実行する最も直接的な方法は NIS+ を使用することで
すが、セットアップは単純ではありません。NIS+ は、AIX 4.3.3 に組み込まれて
います。
Secure NFS について詳しくは、AIX4.3 Elements of Security Effective and Efficient
Implementation、SG24-5962、のセクション 7.5.4 を参照してください。NIS+ の
セッ ト アッ プ と管 理 に つい て 詳し く は、シ ス テム・マ ニュ ア ル
Network
InformationService (NIS) Overview for System Management in AIX Version 4.3
NetworkInformation Services (NIS and NIS+) Guide を参照してください。
NFS のプ ロ テ ク ト
NFS を使用する場合、セキュリティー上のよくある間違いは、余計な特権をつ
けてディレクトリーをエクスポートすることです。デフォルトでは、NFS のエ
クスポートは、AIX で、すべてのホストに読み取り / 書き込みアクセスを与えま
す。可能な限り、これを読み取り専用に変更し、ディレクトリーにアクセスが必
第 8 章 AIX の保護
173
要はホストだけを、各ディレクトリーごとに明示的に指定します。必要なディレ
クトリーだけをエクスポートし、ディレクトリーのできるだけ低いところにエク
スポ ー トを 指 定し ま す。たと え ば、SP
制 御ワ ー クス テ ーシ ョ ンで は、
/spdata/sys1/install/pssplpp ディレクトリーは、トップレベルの /spdata ディ
レクトリーにではなく、ノードにエクスポートされます。また、NFS によって
エクスポートされたディレクトリーの内容に目を光らせて、機密データが不注意
で露出していないことを確かめてください。
さらにプロテクションを強化するには、ポート・マップ・ポート ( ポート 111) を
ファイアウォールでブロックすることを検討してください。外部ユーザーには許
可しなくても、内部ユーザーには、ポート・マップ ( および NFS) アクセスを許
可する必要があります。アタッカーは、非特権ポート (1023 より上 ) をスキャン
することによって、ユーザーがポート・マップ ( および NFS) を使用していると
いう事実を探り出すことができるので、ポート・スキャンに対してもプロテク
ションをセットアップしなければなりません。ポート・スキャン・アタックに対
してのプロテクト方法について詳しくは、第 6 章 「ポートおよびネットワーク
のスキャン」(83 ページ ) を参照してください。
デフォルトにより、NFS は、システム始動時に、/etc/rc.nfs スクリプト (/etc/inittab
の中にある ) を使用して開始されます。NFS は、5 つの別々のデーモン、つまり、
biod、nfsd、rpc.mountd、rpc.statd、rpc.lockd から成っています。各デーモンにつ
いて簡単に説明します。
• Biod -biod デーモンはクライアントの要求を処理し、NFS クライアント ( 通
常、NFS サーバーでも ) で実行されます。ユーザー ( クライアント ) が NFS で
マウントされたファイル・システム上のファイルにアクセスする必要がある
場合は、biod はその要求を NFS サーバーに送ります。
• Nfsd -nfsd デーモンは、ファイル・システム操作に関するクライアントからの
要求にサービスを提供します。
• Rpc.mountd -rpc.mound デーモンは、ファイル・システムのマウントに関する
クライアントからの要求に応答します。ユーザーが NFS ファイル・システム
をマウントするときに必要です。
• Rpc.statd -rpc.statd デーモンは、NFS ロック・サービス (rpc.lockd デーモンに
よって提供される ) 用に破損リカバリー機能を提供します。
• Rpc.lockd -rpc.lockd デーモンは、ファイルへの並行アクセスについてのロック
要求を処理します。
NFS は、rpc.lockd デーモンおよび rpc.statd デーモンを使用して、UNIX 通知ロッ
ク機能をサポートします。このロック機能を必要とするアプリケーションを実行
していない場合は、rpc.lockd および rpc.statd を使用不可にしてください。( すべ
てのクライアント・マウントが正常に完了したあとで rpc.mountd を使用不可に
することもできますが、これを実行するのは難しく、また、ファイル・システム
を再マウントする必要があるクライアントに別の問題を発生させるリスクがあ
ります。) これらのデーモンは、バッファー・オーバーフロー・アタックを使用
してアタッカーによって利用され、アタッカーは、システムへの root アクセス
を得ています。これらのデーモンがどうしても必要な場合は、ファイル・セット
bos.net.nfs.client に関して最新のパッチ・レベルになっていることを確認してくだ
さい。
174
AIX セ キ ュ リ テ ィ ー ・ ツ ール
rpc.lockd および rpc.statd を使用不可にするには、/etc/rc.nfs の中のエントリー
をコメント化し、デーモンを停止します ( 示されている順序で )。
# stopsrc -s rpc.lockd; stopsrc -s rpc.statd;
1 つのディレクトリーをアンエクスポートするには、exportfs -u <directory> コ
マンドを使用します。/etc/exports ファイルの中のすべてのディレクトリーを
アンエクスポートするには、exportfs -au コマンドを使用します。
8.3.3
シ ン プル ・ メ ール転送プ ロ ト コ ル (SMTP)
AIX で は、デフ ォ ルト の SMTP サー バ ー・ソ フ トウ ェ アは sendmail で す。
Sendmail は、過去にセキュリティーの弱点が多くあったので、評判のわるいソフ
トウェアでした。そうした理由があるので、できるだけ最新のバージョンを持つ
ようにし、つねに、最新のパッチ・レベルを保ってください。sendmail に関する
貴重な情報が、以下の sendmail ホーム・ページにあります。
http://www.sendmail.org
AIX では、ユーザーが受け取る sendmail バージョンは、表 5 に示す AIX バージョ
ンによって異なります。
表 5. sendmail の AIX バージ ョ ン
AIX バージ ョ ン
Sendmail バージ ョ ン
AIX 3.2.5
Sendmail 5.6.4
AIX 4.1.4
Sendmail 5.6.4
AIX 4.1.5
Sendmail 5.6.4
AIX 4.2.0
Sendmail 8.7
AIX 4.2.1
Sendmail 8.7
AIX 4.3.0
Sendmail 8.7
AIX 4.3.1
Sendmail 8.8
AIX 4.3.2
Sendmail 8.8
AIX 4.3.3
Sendmail 8.9
sendmail 構成ファイルは、/etc/sendmail.cf です。構成ファイルで最もよくある
セキュリティー上の間違いの 1 つは、VRFY および EXPN 組み込みコマンドの使
用を許可することです。これらのコマンドは、以下に示す行を /etc/sendmail.cf
ファイルに追加することによって使用不可にする必要があります。
第 8 章 AIX の保護
175
O PrivacyOptions=noexpn,novrfy
VRFY は、有効なユーザーの名前を検査するために使用され、EXPN は、実際の
デリバリー・アドレスを入手するために使用されます。これらのコマンドは、機
密情報をアタッカーに露出する危険があるだけでなく、サーバーからのメールを
偽造するために、アタッカーによって使用される危険があります。これは、非常
に多 い セキ ュ リテ ィ ー の間 違 いな の で、NSA (49 ペ ージ の セク シ ョン 4.4
「NetworkSecurity Auditor (NSA)」) などのスキャン・プログラムは、このための
組み込みテストを備えています。
この他にも以下のセキュリティー関連のオプションがあり、必要に応じて、ユー
ザーは、sendmail PrivacyOptions 行に追加する必要があります。
• restrictmailq は、普通のユーザーが、キューに入っているメールの状況を表
示することを制限します。
• restrictqrun は、普通のユーザーが、sendmail を使用してそのキューをプロ
セスすることを制限します。
• goaway は、SMTP 状況照会を制限します。注 : このオプションは、novrfy、
noexpn、authwarnings、needmailhelo、needexpnhelo、および needvrfyhelo を設
定する面倒をみます。
novrfy および noexpn オプションに加えて、上記のオプションをすべて組み込む
には、以下の行を /etc/sendmail.cf ファイル ( 前に示したファイルではなく ) に
追加します。
O PrivacyOptions=goaway,restrictmailq,restrictqrun
以下の例では、VRFY および EXPN 両方のコマンドを示します。Sendmail は、
TCP ポート 25 で listen します。ローカルの sendmail デーモンに接続するには、
ローカル・ホスト (0) 上のポート 25 に Telnet でログインします。
# tn 0 25
Trying...
Connected to 0.
Escape character is '^T'.
220 sp5en0.msc.itso.ibm.com ESMTP Sendmail AIX4.3/8.9.3/8.9.3; Tue, 29 Aug 2000 17:08:15
-0500
vrfy khorck
250 <[email protected]>
expn khorck
250 <[email protected]>
Sendmail バナーによってどれほど多くの情報が提供されているかにも注意して
ください。sendmail (8.9.3) のバージョンだけでなく、AIX (4.3) のバージョンが与
えられています。これは、アタッカーには、宝のような情報です。これによっ
て、かれらは、オペレーティング・システムのタイプ (AIX)、このサーバーで
sendmail が実 行 して い るオ ペ レー テ ィン グ・シス テ ムの バ ージ ョ ン (4.3)、
sendmail のバージョン (8.9.3)、および、サーバーが配置されている場所の時間帯
176
AIX セ キ ュ リ テ ィ ー ・ ツ ール
がわかります。個々の断片でも損害を与えるのに十分ですが、情報全体を総合す
ると損害は何倍にも増します。アタッカーは、Web で簡単なサーチを行うだけ
で、オペレーティング・システムのこのバージョンで実行されている sendmail の
このバージョンの、利用できる弱点のすべてがわかります。したがって、バナー
情報をオフにする必要があります。
これを除去するには、/etc/sendmail.cf を編集し、SMTPGreetingMessage 行を探し
ます。
O SmtpGreetingMessage=$j Sendmail $v/$Z; $b
$v は AIX バージョン、$Z は sendmail バージョン、$b は時刻と日付を示します
( ユーザーがマクロを定義していなければ )。必要に応じてフィールドを除去し、
次に、sendmail デーモンをリフレッシュして、変更内容を有効にします。
バージョン 8.8 から、sendmail は、root としてではなく、ユーザーとして実行す
るオプションをサポートします。これにより、アタッカーがリモートで、sendmail
の弱点を通してローカル・システムにアクセスを得ることの衝撃を減らすことが
できます。ただし、このオプションは、専用の sendmail サーバーまたは DMZ に
おける要塞ホストであるシステムでのみ使用してください。
このオプションは、sendmail のリレーまたはハブには適していますが、通常の
ユーザー・アカウントおよびアクセスのためのサーバーではうまくはたらきませ
ん。後者のタイプのサーバーでは、sendmail が使用する非特権 ID は、通常のユー
ザーが所有している .forward ファイルおよび :include: ファイルに読み取りアク
セスが必要です。一般的には、非特権 sendmail ID が使用するためにこれらのファ
イルにアクセスをオープンするときに出てくる問題は、これによって得られる利
益よりはるかに大きいといえます。
デーモン・モードの sendmail は、依然として root として実行できるので、TCP
ポート 25 で listen できることに注意してください。しかし、接続がオープンさ
れると、要求を処理するために sendmail デーモンから分岐された子プロセスは、
非特権 ID で実行されます。
これをセットアップするには、postman または mailnull という特別な非特権ユー
ザー ID、および、sendmail が専用に使用する、これに対応するグループを作成
することをお勧めします。ユーザー ID およびグループ ID に postman を使用する
と仮定しましょう。作成されたら、以下の 2 行を、ユーザーの /etc/sendmail.cf
ファイルに追加してください。
O RunAsUser=postman:postman
O DefaultUser=postman:postman
DefaultUser オプションは、sendmail が root として実行できず、他に選択の余地
がないときに、使用されます。( このオプションは、RunAsUser オプションを使用
する予定がない場合でも、設定しておく必要があります。) デフォルトにより、
必要がなければ、sendmail は root として実行することはありません。たとえば、
$HOME/.deadletter に書き込むには、root は必要ありません。
第 8 章 AIX の保護
177
さらに、RunAsUser オプションを使用するときは、非特権 sendmail ID に sendmail
キューへのアクセスを与える必要があります。
# chown postman /var/spool/mqueue
商用 バ ージ ョ ンの sendmail であ る Sendmail Switch (http://www.sendmail.com)
は、自動的に、非特権ユーザーとして実行するように sendmail を構成します。
重要
RunAsUser オプションを指定して sendmail をコマンド行から実行しないでく
ださい。このようにすると、sendmail が root 権限を失う原因になります。
前述のように、通常のユーザー・アカウント・アクセスを処理するサーバーで
は、多くの場合、sendmail RunAsUser オプションを使用する必要はありません。
ただし、ユーザーは、root SUID を sendmail 実行可能プログラムから除去できま
す。
1. 非特権ユーザー・アカウントを作成する ( たとえば、システムにログインす
る特権を許可されていない mailnull)。
2. sendmail ファイルの所有権を変更する。
#
#
#
#
chown
chown
chown
chown
mailnull
mailnull
mailnull
mailnull
/usr/sbin/sendmail
/etc/sendmail.cf
/etc/sendmail.st
/var/spool/mqueue
3. SUID をやり直して非特権 sendmail ID にする。
# chmod 4511 /usr/sbin/sendmail
ユーザーがシェル・アクセスを持っているサーバーで sendmail を実行している
場合は、O SafeFileEnvironment オプションを、/etc/sendmail.cf に設定すること
を考慮してください。. サービス妨害アタックの 1 つのタイプは、いんちきのファ
イルをシステム構成ファイルまたはシステム装置ファイルにシンボリック・リン
クして、sendmail を使ってそれを上書きするものです。SafeFileEnvironment オ
プションは、とくに、書き込み先のファイルがプレーン・ファイル ( シンボリッ
ク・リンクまたはデバイス・ファイルでない ) であることを確かめます。このオ
プションを、以下のように、/etc/sendmail.cf ファイルに設定することを考慮し
てください。
O SafeFileEnvironment=/
178
AIX セ キ ュ リ テ ィ ー ・ ツ ール
これによって sendmail は、ファイルに対してエクストラ・レベルの検査を行い
ますが、すべてのファイルが、sendmail 用に特別にセットアップされている
chroot されたディレクトリー・ツリーの中に存在していることを必要とはしませ
ん。sendmail 用に chroot された環境をセットアップする方法について詳しくは、
Sendmail,ISBN 1-5659-2222-0 (aka “TheBat Book”) を参照してください。
sendmail で使用できるもう 1 つのオプションは、sendmail 制限シェル (smrsh) で
す。この特別シェルを使用すると、sendmail を、そこからプログラムが実行でき
る特定のディレクトリー・ツリーに制限できます。これによって、ユーザーは、
sendmail が実行できるプログラム、たとえば、通常のユーザーの .forward ファイ
ルに指定されているプログラムをコントロールすることができます。また、これ
は、アタッカーが sendmail のホールを活用して起こす損害を妨げることができ
ます。これがなければ、アタッカーは、システムで、root として、任意のプログ
ラム / コマンドを実行することができます。smrsh のセットアップと使用につい
ての詳しい情報は、ftp.sendmail.org から最新の sendmail ソース・ツリーをダウ
ンロードすることによって入手できます。配布されたものを解凍したら、smrsh
サブディレクトリーにある README ファイルを参照してください。
また、sendmail を特定のディレクトリー・ツリーに制限する chroot された環境
で、sendmail を実行することも可能です。これは、smrsh に類似していますが、こ
とをさらに進めて、sendmail がそれ自身の (chroot された ) ディレクトリー・ツ
リーの外側でアクセスすることを許可しません。これをセットアップする方法に
ついては、たくさんの記事がインターネットにあります。さらに、ユーザーに代
わってセットアップを行う、Firewall Toolkit
(http://www.tis.com/research/software/fwtk_over.html) などのツールがありま
す。
sendmail の構成変更を行ったときは、以下のようにして、必ず、変更を確認して
ください。
# sendmail -v -bi
これを実行すると、sendmail で必要なファイルとディレクトリーについての許可
エラーがあれば、アラートが出されます。
AIX 4.3.3 には、さまざまな sendmail 機能強化があり、これは、AIX Version 4.3
DifferencesGuide、SG24-2014、のセクション 7.27 でカバーされています。また、
sendmail ホーム・ページを参照して、最新のセキュリティー情報および sendmail
を強化する別の方式についての情報を入手してください。さらに、重要な 2 点
は、http://www.sendmail.org/faq にある sendmail FAQ、および、
http://www.sendmail.org/antispam.html にある anti-spam 手段をセットアップす
る方法についての情報です。
また、アクセスを、SMTP TCP ポート 25 に制限する必要があります。さまざま
な方法でこれを行うことができます。ポートへの直接アクセスをファイアウォー
ルでブロックすることによってコントロールすることもできるし、ポートへのア
第 8 章 AIX の保護
179
クセスを、AIX 4.3 bos.net.ipsec ファイル・セットに組み込まれている IPSec を使
用してサーバー・レベルでブロックすることもできます。IPSec について詳しく
は、AIX4.3 Elements of Security Effective and Efficient Implementation、SG24-5962、
の セ ク シ ョ ン 7.3、お よ び、A Comprehensive Guide to Virtual Private
Networks,Volume III、SG24-5309、の第 9 章を参照してください。
少し異なるアプローチは、ただ SMTP TCP ポート 25 だけではなく、sendmail へ
のアクセスをプロテクトする方法です。これを行う 1 つの方法は、sendmail を
inetd の制御の下に置いて、これを TCP ラッパーを使用してプロテクトする方法
です。こ の方 法に つい て詳 しく は、Exploiting RS/6000 SP Security: Keeping it
Safe、SG24-5521、のセクション 7.4.4 を参照してください。
sendmail を単に置き換えることもできます。1 つの代替は、Postfix というプロダ
クトです。Postfix は、基本的に sendmail を作り直したもので、セキュリティー
とスピードが改良されています。Postfix の開発者は、Wietse Venema で、TCP ラッ
パー お よび SATAN の 開 発者 で もあ り ます。 Postfix に つ いて 詳 しく は、
ExploitingRS/6000 SP Security: Keeping it Safe、SG24-5521、のセクション 7.4.4 を
参照してください。
Postfix は以下のサイトから入手できます。
ftp://ftp.porcupine.org/pub/security/index.html
( ある時点で、Postfix は、IBMSecure Mailer と呼ばれていました。この名前のも
とで、Postfix について、追加情報が得られます。)
8.3.4
シ ン プル ・ ネ ッ ト ワー ク 管理プ ロ ト コ ル (SNMP)
AIX は、SNMPv1 と一緒に出荷されます。SNMPv1 によってサポートされている
唯一のセキュリティー・メカニズムは、コミュニティー名を使用するものです
(/etc/snmpd.conf ファイルを参照 )。SNMP コミュニティーは、1 つのコミュニ
ティー名の下にグループ化された 1 つ以上のホストからなります。コミュニ
ティー名は、SNMP 要求パケットの中で、認証のために使用されます。要求が受
け取られると、SNMP エージェントは、要求を出したホストの IP アドレスが、
コミュニティー名に属しているホストの 1 つに一致していることを確かめます。
要求を出したホストがコミュニティーのメンバーである場合は、SNMP エージェ
ントは、要求を出したホストが、指定された MIB への要求アクセスを行うこと
を許可されているかどうかを判別します。
デフォルトにより、AIX は、SNMP 要求を、TCP および UDP ポート 161 で listen
します。したがって、SNMP をさらにセキュアにするには、コミュニティー名を
デフォルト (public など ) から、推測しにくい名前に変更する必要があります。
また、可能な限り、MIB の読み取りおよび書き込み許可を使用不可にする必要
があります。
180
AIX セ キ ュ リ テ ィ ー ・ ツ ール
8.3.5
単純 フ ァ イル転送プ ロ ト コ ル (TFTP)
TFTP は、通常、ディスクレス・ワークステーションおよびネットワーク装置を
ブートするために使用されます。これは、基本的には、FTP をスリムにしたバー
ジョンで、わずかなセキュリティー機能しかありません。TFTP は、UDP ポート
69 を使用します。SP システムでは、tftp および bootps が、ノードのインストー
ルおよびカスタマイズのために必要です。
以下の画面に、われわれのテスト環境での tftp の使用の例を示します。( サーバー
sp5cw0 は SP 用の制御ワークステーションで、サーバー arthur はスタンドアロ
ン・サーバーです。)
[sp5cw0] $ cat /etc/tftpacces.ctl
# PSSP and NIM access for network boot
allow:/tftpboot
allow:/usr/lpp/ssp
allow:/etc/SDR_dest_info
allow:/etc/krb.conf
allow:/etc/krb.realms
tn arthur
...
[arthur] $ tftp sp5cw0
tftp> ?
Commands may be abbreviated. Commands are:
connect
mode
put
get
quit
verbose
trace
status
binary
ascii
timeout
?
Connect to remote tftp
Set file transfer mode
Send file
Receive file
Exit tftp
Toggle verbose mode
Toggle packet tracing
Show current status
Set mode to octet
Set mode to netascii
Set total retransmission timeout
Print help information
Çôtftp> get /etc/krb.conf
Received 36 bytes in 0.1 seconds
tftp> quit
TFTP アクセス制御は、/etc/tftpaccess.ctl ファイルを使用して提供されます。
SP システムのデフォルトによる TFTP アクセス制御は、/tftpboot ディレクト
リー、/usr/lpp/ssp ディレクトリー、/etc/SDR_dest_info ファイル、/etc/krb.conf
ファイル、および、/etc/krb.realms ファイルへのアクセスを許可します。ここ
で、arthur (SP システムにはまったく関係がないスタンドアロン・サーバー ) か
ら、認証情報を全然与えずに、われわれは /etc/krb.conf ファイルのコピーを横取
りすることができたことに注意してください。
第 8 章 AIX の保護
181
SP システムでノードのインストールまたはカスタマイズで必要なときだけ、tftp
を使用可能にしてください。アタッカーにとってとくに重要なのは /tftpboot
ディレクトリーで、これには、SP システムのノードについての情報が入ってい
ます。また、tftp アクセスがファイアウォールでブロックされていることを確か
めてください。
8.3.6
X11 の保護
X11 を実行している場合は、セキュリティーについてとくに気をつけてくださ
い。保護されていない X11 は、大きなセキュリティー・リスクがあります。ア
クセス制御が正しく設定されていないと、アタッカーは、X ライブラリーに作成
されている単純なプログラムを使用して、キーストローク ( アカウント名、パス
ワード、その他の機密データ ) を捕らえ、X Windows の画面を占領し、実行中の
アプリケーションをモニターすることができます。ネットワークをスキャンして
アクティブな X サーバーを探し、これが見つかれば接続してキーストロークを
モニターしキャプチャーするユーティリティーが、インターネットで入手可能に
なっています。事実、xwd および xwud などのユーティリティー (X11.apps.clients
ファイル・セットにある ) を使用して、誰にも気づかれずに、リモート X サー
バーをモニターすることができます。
# xwd -root -display <server to be snooped>:0.0 > /tmp/tempfile
# xwud -in /tmp/tempfile
X は 2 つの形式の アクセス制御を提供します。
• xhost -IP アドレスまたはホスト名 (あるいは両方) を使用してアクセス制御を
提供します。
• xauth -Cookies を使用してアクセス制御を提供します。
両者の比較は下記のサイトにあります。
http://www.finnigan.de/products/icisnotes/xsecurity.htm
両者のうち、xhost のほうが、アクセス制御によく使われている方式です。パラ
メーターを指定しないで xhost を実行すると、X サーバーにアクセスを許可され
たホストがリストされます。よく起こるユーザーの間違いは、xhost+ コマンドを
出すことです。これを実行すると、X サーバーへのアクセス制御がすべて使用不
可になり、どのホスト ( アタッカーのホストも ) でも X サーバーに接続できるよ
うになります。接続されれば、xwd または xwud などのプログラムが簡単に実行で
き、機密情報の収集やアクティビティーのモニターが行えます。ある種のポー
ト・スキャナーは、X サーバーのアクセス制御がオフになっていることを検出で
きます。たとえば、NSA がこれを検出すると、以下のようにレポートします。
o X server has no access control [port 6000].
182
AIX セ キ ュ リ テ ィ ー ・ ツ ール
X サーバーを保護する必要がある場合は、xhost- コマンドを実行してアクセス制
御をオンにすることから始めます。このコマンドは、アクセス制御がすでに使用
可能になっているかどうかがわからなくても、実行することができます。このコ
マンドを実行しても、新規の無許可の接続が妨げられるだけで、現存の接続が除
去されることはありません。xhost+ <hostname> を、X サーバーにアクセスする
ホストを追加するたびに繰り返し実行することによってアクセス制御リストを
増やすことができます。たとえば、次の画面を参照してください。
# xhost access control enabled, only authorized clients can connect
# xhost
access control enabled, only authorized clients can connect
INET:loopback
INET:merlinen0
INET:firewall
LOCAL:
# xhost +sp5cw0
sp5cw0 being added to access control list
# xhost -sp5cw0
sp5cw0 being removed from access control list
xauth を使用すると、アクセス制御をきめこまかく行えます。xauth をセットアッ
プす る 方法 に つい て 詳 しく は、The X Windows System Administrator’s Guide,
Volume 8、ISBN 0-9371-7583-8、を参照してください。
不在ワークステーションは、必ず、画面をロック状態にしなければなりません。
これは、PC だけでなく、X を実行するワークステーションにもあてはまります。
xlock コマンドは、パスワードでプロテクトされる画面ロックを提供し、xss コ
マンドは、非アクティブ状態が一定時間経つと自動的に画面をロックします。こ
れらの機能は、CDE デスクトップに組み込まれています。
X サーバーは、TCP ポート 6000 を使用します。このポートは、ファイアウォー
ルでブロックするか、サーバーで、IPSec 機能 (AIX 4.3 bos.net.ipsec ファイル・
セットに組み込まれている ) を使用してフィルターに掛ける必要があります。
IPSec につ い て 詳し く は、AIX4.3 Elements of Security Effective and Efficient
Implementation、SG24-5962、のセクション 7.3、および、A Comprehensive Guide
to Virtual PrivateNetworks, Volume III、SG24-5309、の第 9 章を参照してください。
端末エミュレーターは、セキュリティーと X について、もう 1 つの心配なエリ
アです。xterm( または他の類似の 端末エミュレーター ) を使用するときは、メイ
ンメニューからアクティブにされたセキュアなキーボード・オプションを使用し
てください。メインメニューをアクティブにするには、マウス・ポインターを
ターミナル・ウィンドウに置き、次に、制御キーとマウス・ポインターを同時に
押します。セキュア・キーボード・オプションは、アクティブになると、すべて
のキーボード入力を xterm コマンドだけにダイレクトし、これによって、キース
第 8 章 AIX の保護
183
トロークのスヌープが妨げられます。セキュア・キーボードがアクティブになる
と、xterm のフォアグラウンドとバックグラウンドのカラーがいれかわり、この
オプションが有効になっていることが視覚的にわかります。このオプションは、
一時に 1 つの X クライアントしか使えないので、1 つの X クライアントから別
の X クライアントに移るときには、このオプションを使用可能にしたり使用不
可にしたりしなければならないことに注意してください。セキュア・キーボー
ド・オプションについて詳しくは、xterm マニュアル・ページを参照してくださ
い。また、セキュア・キーボード・オプションでは、依然として、ユーザー ID
とパスワードが暗号化されないまま転送されるので、ネットワーク盗聴に対して
はプロテクトできないことに注意してください。ネットワーク盗聴に対してプロ
テクトするには、SSH 上で X を実行します。SSH について詳しくは、59 ページ
のセクション 5.1「セキュア・シェル (ssh)」を参照してください。
8.3.7
フ ァ イル転送プ ロ ト コ ル (ftp)
ftp プロトコルは、2 つのホスト間でファイルを転送するときに使用します。59
ページのセクション 5.1「セキュア・シェル (ssh)」で説明したように、ftp はパス
ワードを ( 認証のために ) 暗号化しないで転送するので、スプーフィングの被害
を受けやすいプロトコルです。したがって、インターネットで ftp を実行するこ
とは、大きなセキュリティー・リスクがあります。ベスト・オプションは、ftp
を、別のよりセキュアなプロダクトで置き換えることです。これができない場合
は、ftp をよりセキュアにするステップを実行しなければなりません。
可能であれば、SSH パッケージにある sftp または scp を使用して、ftp を置き換
えます。SSH は、公開鍵と秘密鍵による認証スキームに基づいていて、セキュ
ア通信チャネル用に暗号化を提供します。詳しくは、59 ページのセクション 5.1
「セキュア・シェル (ssh)」を参照してください。
もう 1 つのオプションは、ftp を TCP ラッパーを使用してプロテクトする方法で
す。TCP ラッパーは、inetd デーモン (/etc/inetd.conf) によってコントロールさ
れているサービス (ftpd など ) にアクセス制御を提供します。 詳しくは、77 ペー
ジのセクション 5.2「TCP Wrapper」を参照してください。
デフォルトでは、ftp コマンドを実行すると、以下のように、バナーとなる情報
を表示します。
# ftp sp5cw0
Connected to sp5en0.
220 sp5en0 FTP server (Version 4.1 Sun Jul 9 18:28:14 CDT 2000) ready.
Name (sp5cw0:root):
アタッカーにとってとくに重要な情報は ftp のバージョン情報です。特定のバー
ジョンの弱点のリストがインターネットで入手可能です。アタッカーは、バナー
情報を手に入れると、試行錯誤に無駄な時間を使わずに、特定の ftp バージョン
に特化したアタックを準備することができます。バナーは、以下のようにして除
去できます。
184
AIX セ キ ュ リ テ ィ ー ・ ツ ール
# dspcat -g /usr/lib/nls/msg/en_US/ftpd.cat > /tmp/ftpd.msg
# vi /tmp/ftpd.msg
$delset 1
$set 1
$quote "
...
...
"signal: %m"
9
"%s FTP server ready."
...
# gencat /tmp/ftpd.cat /tmp/ftpd.msg
# cp -p /tmp/ftpd.cat /usr/lib/nls/msg/en_US/ftpd.cat
次に、バナー置き換えのあとの画面を示します。
# ftp sp5cw0
Connected to sp5en0.
220 sp5en0 FTP server ready.
Name (sp5cw0:root):
ftp のモードには、アクティブおよび パッシブの 2 つがあります。一部の組織で
は、パッシブ ftp だけが許可されていることが必要です。すべてのファイル転送
で、ftp は 2 つのチャネル (1 つは制御用、もう 1 つはデータ用 ) を使用します。
アクティブ ftp では、サーバーがデータ・チャネルを開始します。パッシブ ftp
では、クライアントがデータ・チャネルを開始します。アクティブ ftp を使用す
ると、インターネット上の悪意に満ちた ftp サーバーが、アタックする目的で、
内部サーバーにデータ・ポートをオープンすることができます。パッシブ ftp で
は、このようなことは起こりません。
パッシブ ftp は、ほとんどの Web ブラウザー、および、GUI ベースの多くの ftp
クライアントによってサポートされているモードです。パッシブ ftp が作動する
には、ftp サーバーと ftp クライアントの両方がパッシブ ftp をサポートしていな
ければなりません。AIX の ftp サーバー・コードは、アクティブ・モードとパッ
シブ・モードの両方をサポートします。AIX 4.3.3 ftp クライアント・コードも同
様にサポートします (passive サブコマンドを使用して )。アクティブ ftp が AIX
でのデフォルトです。
アクティブ ftp とパッシブ ftp の違いについて詳しくは、以下のサイトを参照し
てください。
http://www.geek-speak.net/ftp/ftp1.html
ftp のもう 1 つの代替方法は、セキュリティー手段として、SOCKS (15 ページの
セクション 2.2.2「サーキット・レベル・ファイアウォール」を参照 ) を使用する
方法です。ftp のセキュリティーをさらに強化するためには、
2 つの方法で SOCKS
をインプリメントすることができます。TCP スタック、または、ftp クライアン
第 8 章 AIX の保護
185
トのどちらかを SOCKS 化することができます。SOCKS 化されたクライアント
がより一般的なソリューションです。SOCKS 化された ftp クライアント (rftp)
は、ftp://isscftp.raleigh.ibm.com/IBM/socks/AIX/bin/ から入手できます。ま
た、SOCKS 化された ftp クライアントは、Netscape または Internet Explorer など
の Web ブラウザーにも組み込まれています。TCP スタック全体を SOCKS 化す
るには、セクション 8.3.8、
「SOCKS を使用した TCP サービスのプロテクト」を
参照してください。
8.3.8
SOCKS を使用 し た TCP サービ スのプ ロ テ ク ト
SOCKS は、ファイアウォールの内側にあるクライアントがインターネット上の
サーバーに接続するための、一般的な手段です。とくに、SOCKS は、クライア
ントの IP アドレスをインターネット上のサーバーから隠すことによってクライ
アントをプロテクトします。インターネットに面するファイアウォールの IP ア
ドレスだけがサーバーに露出します。SOCKS を使用して、ファイアウォールの
内側にあるマシンのユーザー独自の IP アドレスの範囲 (たとえば、
192.168.130.0)
を (これらの IP アドレスは外部に登録する必要がないので) 定義することができ
ます。
SOCKS サーバーは、プロキシー・サーバーに類似しています。主な違いは、
SOCKS サーバーはユーザーを識別し、アプリケーションをサーバーにまでリダ
イレクトするのに対し、プロキシー・サーバーは、クライアントのために、実際
に機能を実行します。また、SOCKS は、サポートされているプロトコルについ
てほとんど制限がない ( もちろん、SOCKS の具体的な実装によって異なります
が ) という意味で、より一般的です。
SOCKS を使用するには、SOCKS 化されたクライアント、または、SOCKS 化さ
れた TCP スタックが必要です。AIX には、さまざまな SOCKS 化されたクライア
ント、たとえば、ftp 用の rftp、telnet 用の rtelnet、および tn 用の rtn などがあ
ります。これらのクライアントを使用するには、SOCKS サーバーへのアクセス
も必要です。( ダウンロード用の AIX バージョンが Bull サイトから入手できま
す。) SOCKS 化された TCP スタックの利点は、クライアントを置き換える必要
がないことです。クライアントは自動的にかつトランスペアレントに、TCP ス
タックの中に提供されている SOCKS サポートを使用します。AIX 4.3.3 には、自
動 SOCKS 化 (SOCKS v5) のサポートがはいっています。構成が AIX Version 4.3
DifferencesGuide、SG24-2014、にあります。SOCKS 化された TCP スタックを使
用する場合も、SOCKS サーバーへのアクセスが必要です。
8.4
ス テ ッ プ 3: 適切なネ ッ ト ワー ク (no) オプ シ ョ ンの設定
ネットワーク・オプションは、TCP、UDP、および、ICMP が AIX マシンでどの
ように動作するかをコントロールします。デフォルト設定はインターネット・
ワールドには不十分です。ユーザーは、no コマンドを使用して、ネットワーク
属性を構成します。デフォルトの設定値の一部は、マシンのセキュリティーをさ
らに強化するために、変更する必要があります。変更内容は、ユーザーの環境に
必要なセキュリティーのレベルによって異なります。ユーザーの選択を助けるた
めに、デフォルト設定とオプションの設定 (AIX 4.3.3 用 ) について説明します。
186
AIX セ キ ュ リ テ ィ ー ・ ツ ール
8.4.1
SYN ア タ ッ ク に対する プ ロ テ ク シ ョ ン
clean_partial_conns オプションは、
SYN アタックを避けるために使用されます。
正当な 3 方向 TCP/IP ハンドシェークでは、クライアントは、SYN パケット (SYN
ビットがセットされた TCP パケット ) をサーバーに送ります。サーバーは、
SYN/ACK パケットを使用して応答します。最後に、クライアントは、SYN/ACK
パケットに、ACK パケットを使用して応答します。これで、3 方向ハンドシェー
クが完了します。
SYN アタックでは、スプーフされた IP アドレスを持つクライアントは、SYN パ
ケットを何回も繰り返してサーバーに送ります。このアタックが成功するために
は、スプーフされた IP アドレスは、サーバーから到達できるものであってはな
りません。サーバーは、SYN パケットを受け取ると、応答として、SYN/ACK パ
ケットをスプーフされた IP アドレスに送り返します。スプーフされた IP アドレ
スは到達できるアドレスではないので、サーバーは対応する ACK パケットを受
け取ることは絶対になく、サーバー側の保留接続テーブルはやがてフルになりま
す。サーバーは、接続テーブルがフルになると、本当の要求にサービスできなく
なるので、この事態はサービス妨害アタックになります。
clean_partial_conns を 1 に設定する ( デフォルトは 0) と、サーバーが、3 方向ハ
ンドシェークの未完了接続を定期的にクリアするので、SYN アタックの成功確
率がさがり、正当なクライアント接続が進行できるようになります。
8.4.2
ブ ロー ド キ ャ ス ト のプ ロ テ ク シ ョ ン
bcastping オプションは、ブロードキャスト・アドレスにダイレクトされている
ICMP エコー・パケットに対する応答をコントロールするために使用されます。
bcastping が使用可能になっているとき、システムは、smurf アタックに無防備
です。Smurf アタックが起こるのは、クライアントが、大量のスプーフされた
ICMP トラフィックをブロードキャスト・アドレスに送るときです。ブロード
キャスト・アドレス ping が許可されていると、ネットワーク上の各ホストは、
ICMP エコー応答で応答します。この無価値なネットワーク・トラフィックは帯
域幅を浪費し、通常操作をスローダウンさせ、極端な場合は停止させます。Smurf
アタックは、別の形式のサービス妨害アタックです。
smurf アタックについて詳しくは、以下のサイトを参照してください。
http://www.pentics.net/denial-of-service/white-papers/smurf.cgil
bcastping を 0 ( デフォルトは 0) に設定すると、ホストは、ブロードキャスト ping
要求に応答しなくなります。ただし、smurf アタックは、ルーターで、もっと効
果的に処理できます。ルーターは、インターネットからの ICMP エコー・パケッ
トがブロードキャスト・アドレスに行くことを拒否するように構成する必要があ
ります。
第 8 章 AIX の保護
187
同様に、directed_broadcast は 0 ( デフォルトは 1) に設定して、ダイレクトされ
たパケットが、ゲートウェイを通してリモート・ネットワークのブロードキャス
ト・アドレスに届くのを妨げなければなりません。
SP システムの場合、hats トポロジー・デーモンは、APAR IX86922 が SP システ
ム全体にインストールされていない限り、bcastping が 1 にセットされているこ
とが必要だということに注意してください。また、このソリューションでは、ト
ポロジー・サービス・デーモンが、netmonAdapterHealth 用に all-known-IP リスト
を準備することを必要とします。
8.4.3
IP ルーテ ィ ン グ ・ オプ シ ョ ン
ipignoreredirects オプションは、
ICMP リダイレクトをコントロールするために
使用されます。サーバーまたはルーターがパケットをルーティングするもっと効
率がよい方法を見つけたときは、サーバーまたはルーターは、ICMP リダイレク
ト・パケットを発信ホストに送り返し、発信ホストに効率のよい経路を伝えま
す。この方法は、正当な経路を更新して、意図していない宛先にトラフィックを
リダイレクトするのに使用できるので、潜在的なセキュリティーの抜け道をオー
プンすることになります。お勧めする代替方法は、ipignoreredirects を 1
( デフォルトは 0) にセットし、静的経路を追加することです。
同様に、以下の no オプションをセットして、送信元ルーティングを使用した不
法アクセスを妨げる必要があります。
•
ipsendredirects を 0 にセットする ( デフォルトは 1)。
•
ipsrcroutesend を 0 にセットする ( デフォルトは 1)。
•
ipsrcrouterecv を 0 にセットする ( デフォルトは 0)。
•
ipsrcrouteforward を 0 にセットする ( デフォルトは 1)。
•
ip6srcrouteforward を 0 にセットする ( デフォルトは 1)。
•
icmpaddressmask を 0 にセットする ( デフォルトは 0)。
•
nolocsrcroute を 0 にセットする ( デフォルトは 0)。
•
tcp_pmtu_discover を 0 にセットする ( デフォルトは 0)。
•
udp_pmtu_discover を 0 にセットする ( デフォルトは 0)。
送信元ルーティングは、ネットワークを通って宛先に行くパスをコントロールし
ようと試みます。送信元をダイレクトして、セキュアでないインターフェースを
通ってが宛先に着くように、送信元ルーティングを操作することができます。上
述したように no オプションを設定すると、外部送信元からの送信元ルーティン
グのコントロールを妨げることができます。セキュリティーを最大にするには、
静的経路だけを追加し、動的ルーティング・デーモン ( 悪用される危険がある )
によって経路を動的に設定しないようにします。
最後に、サーバーがゲートウェイとしての役割をしていない限り、ipforwarding
を 0 にセットする ( デフォルトは 0) 必要があります。たとえば、複数の管理イー
188
AIX セ キ ュ リ テ ィ ー ・ ツ ール
サネット・セグメントを持った大きな SP システムのコントロール・ワークス
テーションは、通常、ipforwarding を 1 にセットして、トラフィックがセグメン
トからセグメントに渡ることができるようにしています。この設定は、2 つの
ネットワークに接続しているサーバーで、パケットが 1 つのインターフェースか
ら別のインターフェースに渡ることができるようにするために使用されます。こ
れは、2 つの異なるネットワーク ( たとえば、DMZ 内の ) に接続されたサーバー
では、セキュリティー上の大きな心配事になります。ipforwarding をオフにする
(0 にセットする ) 必要があるばかりでなく、ある形式のモニターまたは監査を
行って、不注意にオンに戻らないように (1 にセットされないように ) しなけれ
ばなりません。
8.5
ス テ ッ プ 4: ユーザー ・ ア カ ウ ン ト の規定を強める
不必要なデフォルト・アカウントを除去し、残りのアカウントのデフォルト属性
の規定を強めてください。不要のデフォルト・アカウントはアタッカーを誘引
し、セキュリティーが弱いユーザー・アカウントは、システムのセキュリティー
にとって脅威になります。正真正銘のユーザー・アカウントを勝手に取って使用
しているアタッカーは捕らえにくい敵です。アタッカーがそもそも足掛かりが得
られないように、強力なアカウント・ポリシーを作って実施するほうが賢明な方
策です。
このステップでは、除去できるデフォルト・アカウント、および、規定を強化す
るアカウント・オプションについて、お勧めできる案を提示します。あるサー
バーに機密データがない場合でも、一度でも侵入されれば、そのサーバーが、他
のサーバーに対するアタックの発射台の役を果たすようになるということを思
い出してください。
8.5.1
不要デ フ ォ ル ト ・ ア カ ウ ン ト の除去
デフォルトによって、インストール時に、いくつかのユーザーとグループが作成
されます。これらは、通常は必要ないので、除去できます。
除去できるデフォルト・ユーザーは以下のものです。
• uucp および nuucp- uucp プロトコルによって使用されるため
• lpd - 印刷サブシステムによって使用されるため
• imnadm -IMN 検索エンジンによって使用されるため
• guest - システムにアカウントがないユーザーによって使用されるため
除去できるデフォルト・グループは以下のものです。
• uucp - uucp および nuucp アカウントで使用するため
• printq - lpd アカウントで使用するため
• imnadm - imnadm アカウントで使用するため
上記のユーザーおよびグループは、以下のようにして除去できます。
第 8 章 AIX の保護
189
# for u in uucp nuucp lpd imnadm guest; do rmuser -p $u; done
# for g in uucp printq imnadm; do rmgroup $g; done
これらのユーザーおよびグループを除去したあとで、ユーザー、グループ、およ
びパスワードの各ファイルの正確さを以下のようにして確認します。
# usrck -y ALL
# grpck -y ALL
# pwdck -y ALL
これらのコマンドを定期的に実行して、整合性を確認し、問題を検出するように
します。
8.5.2
ユーザー属性の設定
ユーザー属性は、/etc/security/user ファイルに設定されています。ユーザー属
性は、グローバル・ベース ( ユーザー全体 ) または個々のユーザー・ベースのど
ちらかで設定できます。このファイルは、スタンザ・フォーマットで、デフォル
トスタンザには、グローバル設定値が入っています。個々のユーザー・スタンザ
の中の設定値は、デフォルト スタンザにある対応する設定値をオーバーライド
します。ユーザー属性を、お勧めする設定値およびデフォルト設定値と一緒に
表 6 に示します。
表 6. AIX ア カ ウ ン ト 属性
属性
推奨値
デ フ ォル ト 値
loginretries
3
0
registry
files
rlogin
false (for root)
true
tpath
on
nosak
ttys
tty0 (for root)
ALL
umask
077
022
それぞれの属性について以下に説明します。
loginretries
この属性は、アカウントがロックされるまで試行できる無効なログインの回数を
コントロールします。可能な値は正の整数、または使用不可にする値 0 です。試
行回数が指定値を超えると、アカウントはロックされます。再び使用可能にする
には、アカウントはシステム管理者によってアンロックされなければなりません
(smitty failed_logins)。
190
AIX セ キ ュ リ テ ィ ー ・ ツ ール
registry
この属性は、アカウントがどこで管理されるかをコントロールします。files とい
う値は、アカウントを、たとえば NIS を使用してリモート側で管理するのでは
なく、ローカル・ファイルを使用して管理することを表します。
rlogin
この属性は、アカウントがリモート・ログインによってアクセスできるようにす
るか否かをコントロールします。rlogin コマンドおよび telnet コマンドがこの
属性をサポートします。可能な値は true または false です。この値は、root 用に
false にセットして、ユーザーが通常のユーザー・アカウントから root アクセス
を行うときには、su コマンドを使用するようにします。この方法はよりセキュ
アなだけではなく、監査証跡も提供されます (/var/adm/sulog ファイルを使用す
る )。
tpath
この属性は、アカウントのトラステッド・パスの特性を定義します。可能な値を
以下に示します。
• nosak - SecureAttention Key (SAK) キー (^X^R) が有効でない。
• notsh - SAK キーがユーザーをログ・アウトする。ユーザーはトラステッド・
パスに入ることができない。
• always - ユーザーがログインすると、必ず、トラステッド・パスに入っている。
• on - SAK キーを押すとトラステッド・パスに入ることができる。
注
この属性は、sak_enabled 属性 (/etc/security/login.cfg ファイルの中にある )
が、ログインしようとしているポート用に true にセットされている場合に有
効になります。
ttys
この属性は、このアカウントがどちらの端末を使用できるかをコントロールしま
す。端末は、明示的に許可される (tty0)、または、明示的に許可されない (!tty0 端末名の前の感嘆符に注意してください ) のどちらかです。この属性は root 用に
tty0 ( コンソール ) にセットしてください。
umask
第 8 章 AIX の保護
191
この属性は、このアカウント用のデフォルトの umask を定義します。これは、3
桁のオクタル・マスクとして指定されます。厳重なセキュリティーには、値 077
をお勧めします。このオプションは、ファイル・システム内の許可を厳重にする
ために非常に重要です。
注
SP ノードの インストール および カスタマイズの場合、umask が 022 にセット
されていることを確かめてください ( プロセス中は、少なくとも一時的に )。
他に 2 つの考慮すべきアカウント属性があります。
expires
この属性はアカウントの有効期限時刻を定義します。クラスや学校の場合で、将
来のある時点でアカウントの有効期限が切れる日時を指定するのに便利です。
logintimes
この属性はアカウントを使用できる時間帯を定義します。システムで通常のユー
ザー・アクティビティーが行える時間帯を制限するときに使用できます。たとえ
ば、定時メインテナンスのスケジュールのウィンドウ中は、通常のユーザーがロ
グインできないようにするときに使用できます。
8.5.3
root の保護
root アカウントには特別な注意が必要です。最初のステップはアクセスを小人数
( 少なければ少ないほど良い ) に限ることです。AIX アカウントは、ロール ( 役
割 ) の機能をサポートしているので、root にアクセスしなくても、アカウントを
選択して、そのアカウントに一定の管理コマンドを実行させることが可能です。
例としては、アカウントの管理、バックアップの実行、システムのリブートを行
うこ と など が あり ま す。この 機 能に つ いて は、AIX 4.3 Elementsof Security
Effective and Efficient Implementation、SG24-5962、の第 3 章に詳細な説明があり
ます。
root を保護する良い方法は、このアカウントのリモート・ログインを使用不可に
することです。これによって、許可ユーザーは、まず通常のユーザー・アカウン
トでログインし、次に、su コマンドを使用して root アクセスを行うようにしま
す。この方法によって、/var/adm/sulog ファイルの中の監査証跡を使用した責任
能力機能を持つことができます。(/var/adm/sulog ファイル自体も Tripwire などの
ツールを使用してプロテクトする必要があります。)
通常のユーザー・アカウントを保護するための推奨案に加え、root を保護するた
めの、以下の追加推奨案を検討してください。
192
AIX セ キ ュ リ テ ィ ー ・ ツ ール
1. 非常に強力なパスワードを設定し (194 ページのセクション 8.6「ステップ 5:
強力なパスワード・ポリシーのセットアップ」を参照 )、定期的に変更する。
2. tty0 ( コンソール ) からだけ直接 root ログインを許可する。
3. リモート root ログインを使用不可にする
(rlogin オプション (/etc/security/user の中 ) を false にセットする )。
4. 最大限にロールを使用して、root アクセスを必要とするアカウントの数を制
限する。
8.5.4
その他の属性
アカウントのサインオンには、実際に必要な情報だけを提供するように、ログイ
ン・ヘラルドを変更しなければなりません。ログイン・ヘラルドは、default ス
タンザ ( /etc/security/login.cfg ファイル の中にある ) に指定されています。
ゴールは、アタッカーにはできるだけ情報を与えないことだ、ということを思い
出してください。
デフォルトでは、AIX ヘラルドは、以下の telnet セッションに示すように、シス
テムが AIX バージョン 4 を実行することを公告します。
Escape character is '^T'.
telnet (sp5en0)
AIX Version 4
(C) Copyrights by IBM and by others 1982, 1996.
login:
ヘラルドからオペレーティング・システムのタイプとバージョンを除去して、以
下に示すような行で置き換える必要があります。
herald = "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nUnauthorized Access Prohibit
ed.\n\r\rlogin: "
新しいヘラルドが、以下に示す telnet セッションに表示されています。
第 8 章 AIX の保護
193
Escape character is '^T'.
telnet (merlin)
Unauthorized Access Prohibited.
login:
新しいヘラルドには、役に立つ情報がほとんどないことに注目してください。
最後に、TMOUT および TIMEOUT 環境変数を /etc/profile ファイルにセットする必
要があります。これらの変数は、アカウントが非アクティブでも自動的にログオ
フされない時間の長さをコントロールします。
たとえば、これらのタイムアウト時間を 10 分 (600 秒 ) にセットするには、以下
の行を /etc/profile ファイルに組み込みます。
TMOUT=600 ; TIMEOUT=600 ; export readonly TMOUT TIMEOUT
8.6
ス テ ッ プ 5: 強力なパスワー ド ・ ポ リ シーのセ ッ ト ア ッ プ
AIX では一連の属性を提供して、ユーザーが、強力なパスワード・ポリシーを実
装できるようにしています。とくにこれらの属性を使用して、推測するのが難し
く、標準の UNIX ディクショナリーにもないパスワードを、ユーザー (root を含
む ) が選ぶように強制することができます。ただし、これらの属性を使用して
も、John the Ripper (119 ページのセクション 7.2「John the Ripper」を参照 ) などの
クラッキング・ツールを実行する必要性はいささかも減りません。これらの AIX
属性は 表 7 (195 ページ ) にリストされており、説明を次のセクションで行いま
す。
8.6.1
ユーザー ・ パスワー ド 属性の変更
強力なパスワード・ポリシーを定義するために使用する AIX 属性は、
/etc/security/user ファイルに入っています。default スタンザで指定された属
性は、グローバル ( ユーザー全体 ) に適用されるものですが、個々のユーザー・
194
AIX セ キ ュ リ テ ィ ー ・ ツ ール
アカウント用にオーバーライドすることができます。AIX 属性の属性名、推奨
値、デフォルト値、および最大値が、表 7 に示されています。
表 7. パス ワー ド 設定の推奨値
属性
推奨値
デ フ ォル ト 値
最大値
dictionlist
/usr/share/dict/words
histexpire
26
0
260
histsize
8
0
50
minage
0
0
52
maxage
12 (5 for root user)
0
52
maxexpired
4
-1 (no limit)
52
minalpha
4
0
8
minother
1
0
8
minlen
6 (8 for root user)
0
8
mindiff
3
0
8
maxrepeats
3
8
8
pwdwarntime
14
0
0
それぞれの属性について以下に説明します。
dictionlist
この属性は、パスワードが、標準 UNIX ディクショナリー (AIX の下では、ディ
クシ ョ ナリ ー は /usr/shared/dict/words フ ァイ ル であ り、この フ ァイ ル は
bos.data ファイル・セットの一部です ) にあるワードではないことを確認します。
パスワードが変更されると、ディクショナリー・ファイルが調べられて、変更さ
れたあるいは選択されたパスワードがディクショナリーに入っていないことが
確認されます。root として、ワードをこのファイルに追加 ( 例えば、よく使われ
るコンピューター用語 hostname を追加 ) または削除して、ユーザーの環境に合
うように調整することができます。
bos.data ファイル・セットのほかに、bos.txt.spell ファイル・セットも必要です
( テキスト処理では必須 )。デフォルトでは、両方ともインストールされません。
histexpire
この属性は、パスワードの再使用を許可されるまで待つ期間を週で指定します。
第 8 章 AIX の保護
195
histsize
この属性は、パスワードの再使用を許可されるまでに必要な、パスワードの繰り
返し使用の必要回数を指定します。
minage
この属性は、パスワードを変更することができるようになるまでの最小経過週数
を指定します。パスワードを ( たとえば、アカウントが危険にさらされないよう
に ) 急遽変更しなければならなくなる状態が少なからず発生するので、このパス
ワードは使用しないことをお勧めします。
maxage
この属性は、パスワードの変更が必要になるまでの最大経過週数を指定します。
root およびシステム・グループのメンバーなどの特権ユーザーには、小さい値を
使用することを考慮してください。小さい値を使用すれば、露出または開示され
たパスワードが使用される時間を制限できます。
融通がきかないパスワード有効期限ポリシーがいいものかどうかという議論が
あります。パスワードの有効期限が切れたことに突然気がついたユーザーは、新
しいパスワードについてゆっくり考える時間がありません。多くの場合、有効期
限が切れたパスワードに類似したものを選ぶか、もっと簡単なものを急いで選ん
でログインし、仕事に取り掛かります。pwdwarntime 属性 ( 後述 ) を使用すると、
AIX は、パスワードの有効期限が切れる前から、ユーザーに警告を出します。こ
れによって、ユーザーは、現在のパスワードを置き換える強力なパスワードを検
討する時間が持てます。
maxexpired
この属性は、maxage が経過した後でもパスワードを変更できる最大週数を指定
します ( 変更を有効にするために、管理者によるアクションが必要です )。root
パスワードは管理者アクションが免除されます。
minalpha
この属性は、パスワードが含まなければならない英字の最低数を指定します。
minother
この属性は、パスワードが含まなければならない英字以外の文字の最低数を指定
します。これらの ( 英字以外の ) 文字は、英字以外で、各国語コード・ポイント
でない ASCII 印刷可能文字として定義されています。
196
AIX セ キ ュ リ テ ィ ー ・ ツ ール
minlen
この属性は、パスワードが含まなければならない最低文字数を指定します。
注
パスワードの最小の長さは、minlen または、‘minalpha +minother', の合計のい
ずれか大きいほうによって決まります。'minalpha + minother' の合計は、8 より
大きくなってはなりません。大きくなった場合は、minother は、'8 - minalpha'.
まで減らされます。
mindiff
この属性は、旧パスワード内の文字とは異ならなければならない新規パスワード
の最低文字数を指定します。
maxrepeats
この属性は、パスワードの中で、ある文字を繰り返し使用できる最大回数を指定
します。
pwdwarntime
この属性は、パスワードの有効期限が切れる何日前から AIX がユーザーに警告
を出す、その日数を指定します。
8.6.2
パスワー ド ・ ク ラ ッ カ ー ・ ユーテ ィ リ テ ィ ー
パスワードの強力さをテストできるいくつかのツールが使用可能になってい
ます。そのようなツールの 1 つが、Johnthe Ripper で、119 ページのセクション
7.2「John the Ripper」で詳しくカバーしています。
8.7
ス テ ッ プ 6: その他のセキ ュ リ テ ィ ー ・ ツールのイ ン ス ト ール
本書では、いくつかのサード・パーティーのセキュリティー・ツールがカバーさ
れています。その意図は、さまざまなセキュリティーのエリアでユーザーを手助
けすることができるツールの代表的なサンプルを紹介することにあります。要約
すると、本書では、以下のツールがカバーされています。
• Check Point FireWall-1
• IBM Secureway Firewall
• SSH
• TCP Wrapper
• fping
第 8 章 AIX の保護
197
• nmap
• SAINT
• PortSentry
• Tripwire
• PGP
• MD5
• John the Ripper
注
これらのツールのほとんどは、試用期間付きでダウンロードできる場合でも、
ライセンス・プロダクトです。評価期間を超えて使用する予定がある場合は、
必ず、適切なライセンスを用意しておいてください。
以下に、それぞれの要約を記します。
ファイアウォールは、基本的なセキュリティー実行メカニズムです。ルーターと
一緒になって、ファイアウォールは、アタックに対する最初の防衛線になりま
す。ネットワークをプロテクトするだけでなく、不法なアクセス試行をログに記
録するので、潜在的なアタックの早期警告手段にもなります。組織が適切に機能
するために不可欠なサービスだけが、ファイアウォールを通れるようにしなけれ
ばなりません。その他のサービスはすべてブロックしなければなりません。
SSH および TCPWrapper は、リモート・アクセスを保護するために使用されま
す。SSH は、あまりセキュアではない rsh などのプロトコルを置き換えることが
できる、よりセキュアなプロトコルです。SSH は、暗号化、認証、およびデー
タ保全性を提供し、リモート・ホストが安全な方法で ( インターネットを通って
も ) 通信できるようにします。SSH の実装が異なれば、提供されるツールのセッ
トが異なります。たとえば、ある実装では、sftp および scp などのツールが提供
されます ( これらのツールは ftp および rcp のセキュアな置き換えです )。TCP
Wrapper は、inetd デーモンの制御下にあるサービスにアクセス制御プロテクショ
ンを提供します。これには、ftpd および telnetd デーモンなどが組み込まれます
が、sendmail なども組み込むことができます。2 つの異なる TCPWrapper アクセ
ス制御リストがあります。一方には、どのサーバーがどのサービスにアクセスが
許可されるかを指定します。他方には、どのサーバーがどのサービスにアクセス
することを拒否されるかを指定します。通常は、すべてのサーバーからのすべて
のサービスへのアクセスを拒否することから始めて、個々のサーバーごとに、
個々のサービスへのアクセスを認可します。また、TCP Wrapper は、正常に終了
した接続試行および失敗した接続試行の両方をログに記録します。
fping および nmap ツールは、ネットワークおよび ポート・スキャナーです。fping
ツールは、短時間のうちに ICMP エコー要求を送り出し、戻り応答をトラッキン
グすることによって、あるネットワークの全体または一定範囲の IP アドレスの
ping を行います。fping ツールは、ネットワークのトポロジーが期待していると
198
AIX セ キ ュ リ テ ィ ー ・ ツ ール
おりのトポロジーになっており、また、この種の要求に応答すべきホストは実際
に応答していることを確かめるのには優れたツールです。nmap ツールは、ポー
ト・スキャナーです。このツールは、多数のホストをスキャンして、アクティブ
なサービスがあるかを探すのに使用されます。nmap ツールは、stealth scan( ス
テルススキャン ) ( ひっそりとサーバーをスキャンするので検出されにくい ) を
含むさまざまなスキャン技法をサポートしています。これらのツールは、アタッ
カーがネットワークを調査するときに見るであろうものを見抜ける材料をユー
ザーに与えてくれるので、計り知れないほど貴重なツールです。
重要
多くの組織では、盗聴プログラムやスキャナーなどのあるタイプのツールを
実動ネットワークで実行することを禁止する厳しいポリシーを持っていま
す。必ず、書面で許可が得られていることを確認してから、これらのツールを
実行してください。
PortSentry ツールは、nmap などのポート・スキャナーに対してプロテクションを
行います。PortSentry は、疑わしいアタッカーの IP アドレスを自動的に TCP
Wrapper の /etc/hosts.deny ファイルに追加し、TCP Wrapper によってプロテクトさ
れている、inetd コントロール下のすべてのサービスへのアクセスを妨げること
ができます。また、PortSentry は、疑わしいアタック・サーバーへの経路を除去
するように構成する ( ループバック・アダプターに対してこの経路を別名化して )
ことができます。残念ですが、このツールの AIX バージョンは、現在、秘密ス
キャンに対するプロテクションをサポートしていません。
SAINT ツールはもう 1 つのポート・スキャナーです。これは、SATAN ツールの
拡張版です。アクティブなサービスがあるかスキャンするだけでなく、既知の弱
点 ( アタックされやすさ ) のリストに照らしてこれらのサービスをテストしま
す。SAINT は、見つけた弱点につぃての報告書と、それらの弱点をなおすため
の推奨案を作成します。同様の商用ツールは NSA で、これは、IBM Secureway
Firewall と一緒に提供されます。NSA にはその他の多くの機能が含まれています
が、実行するには、IBM の正式なライセンスが必要です。SAINT も NSA も両方
とも、総合的なセキュリティー監査用の包括的なツールです。
fping、nmap、SAINT、および NSA の集合を、ネットワークのセキュリティーを
予防的に検査するための一組のツールだと見ることは役に立つ考えです。それぞ
れのツールには長所も短所もありますが、これらのツールを一緒に使うことが重
要です。つまり、相互に協力しあって実行することにより、これらのツールは、
他のツールの結果を相互検査できます。これらのツールは、最新のバージョン、
パッチ、および弱点のリストを使用して、必ず、最新の状態に保持してください。
Tripwire は、重要なシステム・ファイルおよびディレクトリーがいたずらされて
いないことを高い確信度で確認できる手段を提供します。これは、システム保全
性が壊されていないことを保証するツールです。アタッカーは、システムを傷つ
けた後、またそこに戻れるように、秘密の裏口やトロイの木馬をそのまま置き去
りにします。Tripwire は、システム構成のスナップショットが入っているセキュ
第 8 章 AIX の保護
199
ア・データベースを使用することにより、この脅威に対する保護を行います。
Tripwire のようなツールがなければ、アタッカーが残していったホールを探し出
すことは、非常に難しいか、多くの場合不可能です。
PGP はユーザーに暗号化サービスを提供します。暗号化により、ユーザーは、他
ユーザー (root を含む ) から機密情報を保護し、ローカルでもリモートでも両方
とも、他ユーザーと安全な方法で通信できます。これは、E-mail システムでよく
使用されていて、機密メッセージまたはファイル用にセキュア認証とデータ保全
性を提供しています。多くのインターネット Web サイトでは、それらのサイト
からダウンロードされたファイルがいたずらされていないことを確認する手段
として、この暗号化サービスをサポートしています。
MD5 は、データ保全性を検査するツールです。PGP と同様、これは、インター
ネット Web サイトからダウンロードされたファイルがいたずらされていないこ
とを確認するためによく使用される方法です。この主題は、136 ページのセク
ション 7.4.1「ダウンロードの保全性の確認」に詳しく説明されています。
John the Ripper は、パスワード・クラッカー・ツールです。強力なパスワード・
ポリシーを持つことは、ネットワーク内で持つことができる重要な防御策の 1 つ
です。AIX を使用すると、パスワードが一定の基準を満たすこと、パスワードを
定期的に変更すること、ディクショナリーにあるワードからパスワードが選択さ
れていないことを確認するなどを含む、強力なパスワード・ポリシーを作成して
実施することができます。しかし、このようなポリシーが実施されていても、
John the Ripper のようなツールを使用して、弱いパスワードがあるかを予防策と
して探しておくことをお勧めします。正当なユーザー・アカウントにアクセスで
きたアタッカーは、実ユーザーと見分けることが非常に難しいということを思い
出してください。弱いパスワードを見つけて訂正しておくことは、重要な 1 つの
防衛策になります。
8.8
ス テ ッ プ 7: ロ グのモ ニ タ ー、 監査証跡、 およ びシ ス テム動作
ルーチンとして、あるいは定期的にシステムをモニターすることは、セキュリ
ティーのもう 1 つの重要な側面です。そうすることによって、システムの損傷、
または、試行されたシステム破りを発見することができます。このタイプのモニ
ターのさまざまな要素は、以下のようなカテゴリーに分けられます。
• システム・ログのモニター
• 監査の使用可能化
• ファイルおよびディレクトリーのモニター
• cron および at ジョブのモニター
モニターに加えて、前のセクションで説明したセキュリティー監査ツールを使用
して、定期的にスキャンを実行する必要があります。これらのツールによって、
ユーザーのセキュリティー体勢が変わっていないことが確認できます。だれかが
導入した変更が、間違って、あるいは、知らぬ間に、セキュリティー上の弱点に
200
AIX セ キ ュ リ テ ィ ー ・ ツ ール
なったために、かつてはセキュアなネットワークがセキュアでなくなることが、
しばしば起こります。定期的にセキュリティー監査を実行することによって、上
記のようなアクティビティーが原因で生じるリスクを減らすことができます。
8.8.1
シ ス テム ・ ロ グのモ ニ タ ー
以下のログを定期的にモニターして、侵入または試行された侵入の証拠をとって
ください。
/var/adm/sulog
このファイルは、su コマンドの使用をログに記録します。このログは、コマンド
を開始したアカウント、コマンドのターゲットとなったアカウント、コマンドが
成功したかどうか、およびコマンドが実行された日時を識別します。root 用のリ
モート・ログインを使用不可にした場合は、このファイルは特別に重要になりま
す。それは、このファイルが、root アクセスを得るために ( あるいは、得ること
を試みるために ) 使用されたアカウントを、そのアクセスが実行された時刻と共
にトラックしているからです。
/var/adm/wtmp
このファイルは、現在および前のシステム・ログインおよびログアウトについて
の情報を保管します。このファイルには、last コマンドを使用してアクセスし
ます。この情報は、acctcon1 および acctcon2 コマンドが実行されるまで、この
ファイルにだけ保持されます。
/etc/security/failedlogin
このファイルは、失敗したすべてのログイン試行を捕らえます。このファイルの
情報には、who /etc/security/failedlogin | more を実行することによってア
クセスできます。
/etc/utmp
このファイルは、現在システムにログインしているユーザーについての情報を保
管します。このファイルの情報には、who コマンドを実行してアクセスできます。
8.8.2
監査の使用可能化
ユーザーは、また、システム監査をセットアップして、セキュリティーに関連し
たアクティビティーをモニターできます。事前定義の監査イベントのリストは、
/etc/security/audit/events ファイルにあります。監査をストリームライン化
し、生成されるデータの量を制限するには、ユーザーにとって重要なイベントだ
けを定義してください。監査がオンになると、システム稼働状況はモニターさ
れ、ユーザーが定義したイベントについてログが生成されます。これらのログを
定期的にスキャンして、疑わしいアクティビティーの証拠があるか調べます。監
査のセットアップについて詳しくは、AIX Version 4.3 System ManagementGuide:
Operating System and Devices の "Setting up Auditing" を参照してください。
第 8 章 AIX の保護
201
8.8.3
フ ァ イルおよ びデ ィ レ ク ト リ ーのモ ニ タ ー
まず、不要なファイルをクリーンアップすることから始めてください。( 不要な
ファイルには、それぞれ独自のセキュリティー・リスクがあります。)skulker
ユーティリティーを使用すると、不要なファイルや古いファイルを簡単に除去で
きます。これは、典型的には、日常、crontab から実行されます。候補のファイ
ルの例には、以下のものがあります。
• /tmp ディレクトリーにあるファイル
• 指定した年限より古いファイル
• a.out ファイル
• core ファイル
• ed.hup ファイル
次に、以下のタイプのファイル ( およびディレクトリー ) のルーチン・モニター
およびクリーンアップをセットアップしてください。
root によって所有されていて、SUID または SGID ( あるいはその両方 ) のビット
がセットされた実行可能ファイルは、セキュリティー上の深刻な脅威になりま
す。これらのファイルは、だれが実行するかに関係なく、root 権限を使用して実
行されます。コードが堅く作られていなければ、コードが root からはずれて、任
意のコマンドを root として実行することがありえます。これが、このタイプの
ファイルをルーチンとしてモニターすることが重要である理由です。ただし、
SUID または SGID ( あるいは両方 ) のビットがセットされていることが必要な
AIX システム・プログラムがあり、これは正常なことです。新しくインストール
されたシステムでは、これらのファイルのベースライン・リストを必ずとって、
どのファイルがこれらの設定を必要としているかを理解しておく必要がありま
す。
root によって所有され、SUID または SGID ビットがセットされたファイルを見
つけるには、以下のようにします。
# find / -perm -4000 -user 0 -ls
# find / -perm -2000 -user 0 -ls
また、所有者がないファイルも除去する必要があります。これは、典型的には、
アカウントは除去したが、そのアカウントに属しているファイルを除去しなかっ
た場合に起こります。さらに、.rhosts ファイル を除去し ( 未認証システム・ア
クセスを可能にしているため )、また、.netrc ファイル を除去する ( ユーザー
ID とパスワードを暗号化しないで露出しているため ) 必要があります。
202
AIX セ キ ュ リ テ ィ ー ・ ツ ール
重要
一部の HACMP 構成の下では、AIX 上の HACMP クラスターが適切に機能する
ために /.rhosts ファイルが必要です。そのような状態では、/.rhosts ファイ
ルを除去しないで、その代わり、所有権が root.system にあり、許可が 600 に
セットされていることを確認してください。
ユーザーのないファイルを見つけるには、次のようにします。
# find / -nouser -ls
.rhosts ファイルを見つけるには、次のようにします。
# find / -name .rhosts -ls
.netrc ファイルを見つけるには、次のようにします。
# find / -name .netrc -ls
World-writable ディレクトリーとファイルも、機密漏れのもう 1 つの潜在的な部
分です。ここでも、新しくインストールされたシステムでベースライン・リスト
をとり、システムが正しく機能するには、どのディレクトリーとファイルが通常
このようになっていなければならないかを理解しておく必要があります。
world-writable ディレクトリーを見つけるには ( このリストをモニターする ):
# find / -perm -0007 -type d -ls
world-writable ファイルを見つけるには :
# find / -perm -2 -type f -ls
第 8 章 AIX の保護
203
8.8.4
cron と at ジ ョ ブのモ ニ タ ー
cron および at は、アタッカーのお気に入りの狩り場です。これらのコマンドに
よって、アタッカーは、システムに時限爆弾を仕掛け、これが爆発する前に、シ
ステムから消え去ることができます。したがって、cron または at を使用してス
ケジュールされているシステム上のすべてのジョブについてよく知っておくこ
とが必要です。
すべての cron ジョブをモニターするには :
# cronadm cron -l
すべての at ジョブをモニターするには :
# cronadm at -l
204
AIX セ キ ュ リ テ ィ ー ・ ツ ール
付録 A NSA ス キャ ン ・ オ プ シ ョ ン
NSA には、使用可能ないくつかのスキャン・オプションがあります
(/etc/nsa/scannerdefs ファイルに説明があります )。
define default
tcpports 21,22,23,25,109,110,111,139,143,512-514,6000
udpports 69,111,137,161,177
rpcsvcs *
options no-user-login
end
define baseline
tcpports 21,22,23,25,53,79,80,109,110,111,139,143,512-514,6000
udpports 53,69,111,137,161,177
rpcsvcs *
options ftp-walk-tree
options no-user-login
end
define medium
tcpports 21,22,23,25,53,79,80,109,110,111,139,143,1080,6000
udpports 53,69,111,137,161,177
rpcsvcs *
options tcp-seq-num
options ftp-walk-tree
options smtp-require-reject, smtp-mail-from, smtp-mail-rcpt
options nntp-no-post
end
define standard
tcpports 1-1023,6000-6063
udpports 1-1023
rpcsvcs *
options tcp-seq-num
options ftp-walk-tree
options smtp-no-relay
options smtp-require-reject, smtp-mail-from, smtp-mail-rcpt
options nntp-no-post
end
define fulltcp
tcpports 1-65535
udpports 53,69,111,137,161,177
rpcsvcs *
options tcp-seq-num
options ftp-walk-tree
options smtp-no-relay
options smtp-require-reject, smtp-mail-from, smtp-mail-rcpt
options nntp-no-post
end
© Copyright IBM Corp. 2002
205
define complete
tcpports 1-65535
udpports 1-65535
rpcsvcs *
options tcp-seq-num
options ftp-walk-tree, ftp-no-wdir, ftp-no-mkdir
options smtp-mail-from, smtp-mail-rcpt
options nntp-no-post
options smtp-no-relay
end
define firewall
tcpports 1-65535
udpports 1-65535
rpcsvcs *
options ip-source-route, tcp-seq-num, ip-options
options ftp-walk-tree, ftp-no-wdir, ftp-no-mkdir
options smtp-require-reject, smtp-mail-from, smtp-mail-rcpt
options smtp-no-relay
options nntp-no-post
end
206
AIX セ キ ュ リ テ ィ ー ・ ツ ール
付録 B fping を 使用し て ネ ッ ト ワ ーク を ス キャ ン する た めに 使用さ れる
スク リ プト
このスクリプトは、86 ページのセクション 6.1.2「fping の使用」. に説明されて
いるように、ネットマスク 255.255.255.0 を持つネットワーク全体を fping ツール
を使用してスキャンするために使用することができます。
© Copyright IBM Corp. 2002
207
#!/bin/ksh
#
# To scan a network with ffffff00 netmask
#
# Declare datafile to store list of hosts to scan
datafile=/tmp/fping.data
tput clear; echo
if [ $# -ne 1 ]; then
echo "Usage : $0 {Network address}"
echo "Example : $0 172.16.30.0\n"
exit 0
fi
ID1=`echo
ID2=`echo
ID3=`echo
ID4=`echo
$1
$1
$1
$1
|
|
|
|
awk
awk
awk
awk
-F
-F
-F
-F
.
.
.
.
'{print
'{print
'{print
'{print
$1}'`
$2}'`
$3}'`
$4}'`
# If last octet is the null string or 0, scan 255 addresses
if [[ $ID4 = "" ]] || [[ $ID4 -eq 0 ]]; then
tput clear
echo "Please enter filename to output results"
read outfile
echo "Output file is $outfile\n"
# Remove $datafile if it already exists.
if [ -f $datafile ]; then
echo "The default file to store list of hosts to scan is $datafile"
echo "There is already a file named $datafile"
echo "Do you want to remove it?[y(es)/n(o)]"
read removeoutfile
case "$removeoutfile" in y* | Y*)
echo "Removing file\n"
rm $datafile;;
*)
echo "\nRerun program after renaming/removing that
exit 0;;
esac
fi
echo "Obtaining list of hosts to scan and storing the list into $datafile"
y=0
while [ "$y" -le 255 ]; do
echo "$ID1.$ID2.$ID3.$y" >> $datafile
y=`expr $y + 1`
done
echo "\nScanning hosts now. Please wait for prompt to return."
cat $datafile | /usr/local/bin/fping -sA > $outfile 2>&1
echo "View output file $outfile for results"
else
# If last octet is a host IP, then scan the host only
/usr/local/bin/fping -sA $1
fi
exit 0
208
AIX セ キ ュ リ テ ィ ー ・ ツ ール
付録 C AIX パス ワ ード ・ フ ァ イ ルを マ ージ する ス ク リ プ ト
このスクリプトは、/etc/passwd ファイルおよび /etc/security/passwd ファイル
をマージします。これは、Crack パッケージ (Bull サイトから入手可能 ) から入手
しました。119 ページのセクション 7.2「John the Ripper」で説明されているよう
に、John the Ripper ツールは、1 つのパスワード・ファイルを必要とします。
#!/bin/sh
###
# This program was written by and is copyright Alec Muffett 1991,
# 1992, 1993, 1994, 1995, and 1996, and is provided as part of the
# Crack v5.0 Password Cracking package.
#
# The copyright holder disclaims all responsibility or liability with
# respect to its usage or its effect upon hardware or computer
# systems, and maintains copyright as set out in the "LICENCE"
# document which accompanies distributions of Crack v5.0 and upwards.
###
SHADOW=/etc/security/passwd
PASSWD=/etc/passwd
(
awk '
/^[a-zA-Z0-9]+:/ {
curruser = $1;
next;
}
$1 == "password" {
print "STAG:" curruser $3;
}' < $SHADOW
sed -e 's/^/PTAG:/' < $PASSWD
) |
awk -F: '
BEGIN {
OFS=":";
}
$1 == "STAG" {
pw[$2] = $3;
next;
}
$1 == "PTAG"{
$3 = pw[$2];
print $0;
}' |
sed -e 's/^PTAG://'
© Copyright IBM Corp. 2002
209
210
AIX セ キ ュ リ テ ィ ー ・ ツ ール
付録 D 特記事項
本書は、IBM AIX 4.3.3 または PSSP 3.2 によって提供されているセキュリティー・
ツール以外のその他のセキュリティー・ツールをインプリメントする必要のあ
る、RS/6000 AIX または SP/ クラスターのスペシャリストに役立てることを目的
にしています。本書に記載されている情報は、IBM AIX および PSSP ソフトウェ
ア・プロダクトによって提供されているプログラミング・インターフェースを指
定する目的のものではありません。プロダクトの資料としての関連資料について
は、このレッドブックに記載の IBM プロダクトに関する IBM 発表レターの「関
連情報」セクションを参照してください。
本書に記載の製品、プログラム、またはサービスが日本においては提供されてい
ない場合があります。日本で利用可能な製品、プログラム、またはサービスにつ
いては、日本アイ・ビー・エムの営業担当員にお尋ねください。本書で IBM 製
品 、プログラム、またはサービスに言及していても、その IBM 製品、プログラ
ム、またはサービスのみが使用可能であることを意味するものではありません。
IBM 製品、プログラムまたはサービスに代えて、IBM の知的所有権を侵害する
ことのない機能的に同等のプログラムまたは製品を使用することができます。
本書の中にある情報は、指定する機器を使用して開発されました。したがってそ
の適用は特定のハードウェアとソフトウェア・プロダクトとレベルに限定されま
す。
IBM は、本書に記載されている内容に関して特許権 ( 特許出願中のものを含む。)
を保有している場合があります。本書の提供は、お客様にこれらの特許権につい
て実施権を許諾することを意味するものではありません。使用許諾については、
次の宛先に書面にてご紹介ください。
〒 106-0032 東京都港区六本木 3 丁目 2-31
AP 事業所
IBM World Trade Asia Corporation
Intellectual Property Law Licensing
本プログラムのライセンス保持者で、(i) 独自に作成したプログラムとその他の
プログラム ( 本プログラムを含む ) との間での情報交換、および (ii) 交換された
情報の相互利用を可能にすることを目的として、本プログラムに関する情報を必
要とする方は、下記に連絡してください。IBM Corporation, Dept. 600A, Mail Drop
1329, Somers, NY 10589 USA.
本プログラムに関する上記の情報は、適切な使用条件の下で使用することができ
ますが、有償の場合もあります。
本書に含まれる情報は、IBM の正式なテストを受けておらず、現存するままの
状態で配布されます。この情報の利用またはこうした技法の導入は、お客様の責
© Copyright IBM Corp. 2002
211
任であるとともに、これを評価しお客様の稼働環境への統合するお客様の能力に
依存します。個々の項目は、特定の状況における正確性について IBM によって
検討されていますが、全く同一または同様な結果が得られる保証はありません。
お客様自身の環境にこれらの技法を適用しようとする場合は、お客様自身のリス
クにおいて行っていただきます。
本書において IBM 以外の Web サイトに言及している場合がありますが、便宜の
ため記載しただけであり、決してそれらの Web サイトを推奨するものではあり
ません。
以下の用語は、IBM Corporation の米国およびその他の国における商標です。
e (logo)®
Netfinity
レッ ド ブッ ク ・ ロゴ
RS/6000
SecureWay
SP1
TCS
IBM
レッ ド ブッ ク
RISC システ ム /6000
SP
System/390
以下の用語は、他社の商標です。
Tivoli、Manage. Anything. Anywhere.、The Power To Manage.、Anything.
Anywhere.、TME、NetView、Cross-Site、Tivoli Ready、Tivoli Certified、Planet Tivoli、
および Tivoli Enterprise は、Tivoli Systems Inc. の商標または登録商標です。デン
マークでは、Tivoli は、Kj 嫦 enhavns Sommer - Tivoli A/S からライセンス交付を
受けた商標です。
C-bus は Corollary, Inc. の商標です。
Java および、すべての Java ベースの商標とロゴは、Sun Microsystems, Inc. の商標
または登録商標です。
Microsoft、Windows、Windows NT、および Windows ロゴは MicrosoftCorporation
の米国およびその他の国における商標です。
PC Direct は、Ziff Communications Company の商標です。
ActionMedia、LANDesk、MMX、Pentium および ProShare は、Intel Corporation の
商標です。
UNIX は、The Open Group がライセンスしている米国およびその他の国における
登録商標です。
212
AIX セ キ ュ リ テ ィ ー ・ ツ ール
SET、SET Secure Electronic Transaction、および SET Logo は、SET Secure Electronic
Transaction LLC によって所有されている商標です。
Lotus Notes は、Lotus Development Corporation の登録商標です。
他の会社名、製品名およびサービス名等はそれぞれ各社の商標または登録商標で
す。
付録 D 特記事項
213
214
AIX セ キ ュ リ テ ィ ー ・ ツ ール
付録 E 関連資料
このセクションにリストされている資料は、このレッドブックでカバーしている
トピックの詳細な説明を参照する場合にとくに適切な資料です。
E.1 IBM レ ッ ド ブ ッ ク
これらの資料をご注文いただく場合の説明については、
「IBM レッドブックの入
手方法」(221 ページ ) を参照してください。
英文番号 : SG24-2014)
• AIX バージョン 4.3 新機能概説 ( 邦文番号 : SG88-6701、
E.2 IBM レ ッ ド ブ ッ ク のコ レ ク シ ョ ン
レッドブックは、以下の CD-ROM でもご覧になれます。CD-ROM 版の全資料、
アップデートおよびフォーマットについては、http://www.redbooks.ibm.com/ で
「CD-ROMs」ボタンをクリックしてください。
CD-ROM タ イ ト ル
コレクシ ョ
ン ・ キッ ト
番号
IBM System/390 Redbooks Collection
SK2T-2177
IBM Networking Redbooks Collection
SK2T-6022
IBM Transaction Processing and Data Management Redbooks Collection SK2T-8038
IBM Lotus Redbooks Collection
SK2T-8039
Tivoli Redbooks Collection
SK2T-8044
IBM AS/400 Redbooks Collection
SK2T-2849
IBM Netfinity Hardware and Software Redbooks Collection
SK2T-8046
IBM RS/6000 Redbooks Collection
SK2T-8043
IBM Application Development Redbooks Collection
SK2T-8037
IBM Enterprise Storage and Systems Management Solutions
SK3T-3694
© Copyright IBM Corp. 2002
215
E.3 そ の他の資料
以下の資料も、広範な情報源として関係があります。
• Building Internet Firewalls, ISBN 1-5659-2124-0, by D. Brent Chapman, Elizabeth
D. Zwicky, and Deborah Russell
• Firewalls and Internet Security: Repelling the Wily Hacker, ISBN 0-2016-3357-4
• Hacking Exposed: Network Security Secrets and Solutions, ISBN 0-0721-2748-1
• Information Warfare and Security, ISBN 0-2014-3303-6, by Dorothy E. Denning
• Masters of Deception: The Gang That Ruled Cyberspace, ISBN 0-0609-2694-5, by
Michele Slatalla and Joshua Quittner,
• Practial Unix and Internet Security, ISBN 1-5659-2148-8, by Simson Garfinkel and
Gene Spafford
• Sendmail, ISBN 1-5659-2222-0
• The Art of War, ISBN 0-3852-9216-3, by Sun Tzu
• The Cuckoo’s Egg: Tracking a Spy Through the Maze of Computer Espionag,
ISBN 0-6717-2688-9, by Clifford Stoll
• The X Windows System Administrator’s Guide, Volume 8, ISBN 0-9371-7583-8
• Www.security How to Build a Secure World Wide Web Connection,
ISBN 0-1361-2409-7
E.4 参照 Web サイ ト
以下の Web サイトも、広範な情報源として関係があります。
•http://www.ssh.org
•http://www.bull.com
•http://www.postfix.org
•http://www.cerias.purdue.edu/coast/satan.html
•http://www.ssh.org
•http://all.net
•http://wuarchive.wustl.edu/packages/security/TAMU/
•http://www.faqs.org/faqs/kerberos-faq/general/
• IBM Redbooks:
http://www.redbooks.ibm.com/
216
AIX セ キ ュ リ テ ィ ー ・ ツ ール
• Designing an Authentication System: a Dialogue in Four Scenes:
http://web.mit.edu/kerberos/www/dialogue.html/
• Trusted Computing System Evaluation Criteria (TCSEC) Rainbow Series Library:
http://www.radium.ncsc.mil/tprep/library/rainbow/index.html/
• Information Technology Security Evaluation Criteria (ITSEC) Assurance Level
Criteria:
http://www.itsec.gov.uk/
• Wietse Venema’s (author of tcp_wrapper) tools and papers:
http://sneezy.ice.ntnu.edu.tw/os/unix/security/
• The Admin guide to cracking by Dan Farmer and Wietse Venema:
http://www.cerias.purdue.edu/coast/satan-html/docs/admin_guide_to_crack
ing.html/
• The Internet Assigned Numbers Authority:
http://www.iana.org/
• Large archive of SMIT installable freeware:
http://www.bull.de/pub
• Secure Shell hompage:
http://www.ssh.org
• Computer Emergency Response Team:
http://www.cert.org
• IBM emergency response team:
http://www.ers.ibm.com
• Postfix homepage, replacement for sendmail:
http://www.postfix.org
• Fred Cohen’s page, programmer of the Deception Toolkit:
http://all.net
• Chaos Computer Club (partly German):
http://www.ccc.de
• Security information, large download area with hacker tools and security tools:
http://packetstorm.securify.com
• This is a security site, not a hacker site:
http://www.attrition.org
• Top 50 security sites:
http://www.cyberarmy.com/t-50/index.shtml
•http://www.ers.ibm.com/
付録 E 関連資料
217
•http://www.sanstore.org/
•www.cisco.com/univercd/cc/td/doc/product/iaabu/centri4/user/scf4ch3.htm
•www.checkpoint.com
•www.phoneboy.com/fw1
•www.checkpoint.com/support/technical/documents/index.html
•www.enteract.com/~lspitz/fwtable.txt
•www.fc.net/phrack/files/p48/p48-13.html
•www.enteract.com/~lspitz/intrusion.htm
•www.infoworld.com/supplements/99poy_win/99poy_s.html
•http://www-3.ibm.com/security/
•http://www-4.ibm.com/software/security/firewall/
•www-4.ibm.com/software/network/dispatcher/
•www.mimesweeper.integralis.com
•www.telemate.net
•http://www-4.ibm.com/software/security/firewall/about/
•www.onsight.com/faq/ssh/ssh-faq.html
•ftp://ftp.ssh.com/pub/ssh/
• http://www.ssh.com/ssh/download.html.
•http://www.openssh.com
•http://www-frec.bull.fr
•http://www.f-secure.com/products/ssh/
•http://www.vandyke.com/products/securecrt/
•http://www.zip.com.au/~roca/ttssh.html
•ftp://ftp.porcupine.org/pub/security/index.html
•http://www.insecure.org/nmap
•http://www.wwdsi.com/saint/index.html
•http://www.psionic.com/abacus/
•http://www.psionic.com/abacus/portsentry/
•http://www.psionic.com/abacus/logcheck/
•http://www.tripwiresecurity.com/
•http://www.tripwiresecurity.com/products/index.cfml
•http://www.bull.de/pub/out/
•http://www.pgpi.org/doc/faq/pgpi/en/#International
•http://www.pgp.com
•http://www.pgpi.com
•http://www.nai.com
218
AIX セ キ ュ リ テ ィ ー ・ ツ ール
•http://www.pgpinternational.com
•www.rs6000.ibm.com/doc_link/en_US/a_doc_lib/aixgen/topnav/topnav.htm
•http://www.isc.org/products/BIND/
•www.dictionary.com
•http://www.sendmail.org
•http://www.sendmail.com
•http://www.sendmail.org/faq
•http://www.sendmail.org/antispam.html
付録 E 関連資料
219
220
AIX セ キ ュ リ テ ィ ー ・ ツ ール
IBM レ ッ ド ブ ッ ク の入手方法
ここでは、IBM レッドブック、Redpieces、CD-ROM を入手する方法について説明します。FAX
や E メールによるレッドブックおよび CD-ROM の注文用紙も提供しています。
レ ッ ド ブ ッ ク Web サイ ト http://www.redbooks.ibm.com/ にあります。
レッドブック Web サイトでは、ハードコピー / CD-ROM のレッドブックの検索、表示、ダウ
ンロード、発注が行えます。このレッドブック・サイトからは、Redpieces を読んだり、追加
資料 ( コード・サンプルやディスケット / CD-ROM イメージ ) をダウンロードすることもでき
ます。
Redpieces は、作成中のレッドブックで、すべてのレッドブックが Redpieces として提供され
るわけではなく、数章だけがこのような形で出版される場合もあります。その目的は、通常
の出版過程より迅速に情報を入手できるようにすることです。
日本 IBM 発行のマニュアルはインターネット経由でご購入いただけます。詳しくは
http://www.ibm/jp/manuals/ の「ご注文について」をご覧ください。(URL は変更になる場合が
あります )
この情報は出版日現在のものですが、継続的に変更されます。最新情報は、レッドブック Web サ
イトから入手できます。
© Copyright IBM Corp. 2002
221
222
AIX セ キ ュ リ テ ィ ー ・ ツ ール
索引
記号
!tty0 191
# 145
$FWDIR/conf/fwauthd.conf 43
$FWDIR/conf/fwopsec.conf 43
$FWDIR/log 29
$HOME/.deadletter 177
$HOME/.pgp/pubring.prk 129
$HOME/.pgp/secring.skr 129
$HOME/.rhosts 70
$HOME/.shosts 70
$HOME/.ssh/authorized_keys 70, 71
$HOME/.ssh/authorized_keys2 74
$HOME/.ssh/config 70
$HOME/.ssh/id_dsa 71, 74
$HOME/.ssh/id_dsa.pub 74
$HOME/.ssh/identity 70
$HOME/.ssh/known_hosts 68
$HOME/.ssh/known_hosts2 72
$JOHNDIR/john.ini 122
$JOHNDIR/john.pot 123
(^X^R) 191
.deadletter 177
.forward 177
.netrc 202
.netrc ファイルを見つける 203
.rhosts 60, 202
.rhosts ファイルを見つける 203
.shosts 68
/.rhosts 203
/etc/exports 168, 175
/etc/hosts 153
/etc/hosts.allow 80
/etc/hosts.deny 80, 199
/etc/hosts.equiv 60, 70
/etc/hosts から BIND8 への変換 158
/etc/hosts を BIND8 に変換する PERL スクリプト
158
/etc/inetd.conf 43, 148
/etc/inetd.conf からのエントリーの除去 148
/etc/inetd.conf の中のエントリー 150
/etc/inetd.conf の中のエントリーの説明 150
/etc/inittab 28, 69, 142, 174
/etc/inittab からのエントリーの除去 142
/etc/inittab で始動されたデータベース・マネー
ジャー 142
© Copyright IBM Corp. 2002
/etc/inittab の中の dt エントリー 144
/etc/krb.conf 181
/etc/krb.realms 181
/etc/named.boot (BIND4) 158, 160
/etc/named.conf (BIND8) 158, 159, 161
/etc/nsa/license.nsa 50
/etc/nsa/scannerdefs 50
/etc/openssh/ssh_host_key 69
/etc/openssh/ssh_host_key.pub 72
/etc/openssh/sshd_config 68, 69, 72
/etc/passwd 122, 168
/etc/profile 68, 194
/etc/rc.dt 144
/etc/rc.dt、Tripwire を使用したプロテクト 144
/etc/rc.local 28
/etc/rc.net 28
/etc/rc.nfs 174, 175
/etc/rc.openssh 69
/etc/rc.tcpip 28, 68, 144, 157
/etc/rc.tcpip からのエントリーの除去 144
/etc/rc.tcpip の中でデフォルトによって始動される
デーモン
dpid2 144
inetd 144
portmap 144
sendmail 144
snmpd 144
syslog 144
/etc/SDR_dest_info 181
/etc/security/audit/events 201
/etc/security/failedlogin 201
/etc/security/login.cfg 191, 193
/etc/security/sysck.cfg 114
/etc/security/user 190, 193, 194
/etc/sendmail.cf 175, 177, 178
/etc/sendmail.st 178
/etc/shosts.equiv 68, 70
/etc/snmpd.conf 180
/etc/ssh/known_hosts 68
/etc/tcp.clean 145
/etc/tftpaccess.ctl 181
/etc/utmp 201
/spdata 174
/spdata/sys1/install/pssplpp 174
/tftpboot 181
/tftpboot ディレクトリーでの機密漏れ 182
/tmp 202
223
/usr/adm/tcheck/databases/ 118
/usr/adm/tcheck/databases/tw.db_ 112
/usr/adm/tcheck/tw.config 112
/usr/local/bin 68
/usr/local/bin/john 121
/usr/local/bin/john-1.6/password.lst 121
/usr/local/lib/john-1.6/words.list.sort 122
/usr/local/lib/tripwire-1.2/README.CheckConfig 115
/usr/local/man 68
/usr/lpp/FireWall-1/log 29
/usr/lpp/nsauditor/doc/ 50
/usr/lpp/ssp 181
/usr/samples/tcpip/named-booconf.pl 158
/usr/sbin/named 157
/usr/sbin/named4 157
/usr/sbin/named8 157
/usr/sbin/sendmail 178
/usr/security/bin/tripwire 112
/usr/share/dict/words 121
/usr/shared/dict/words 195
/usr/vac/bin/cc 170
/var/adm/sulog 191, 192, 201
/var/adm/wtmp 201
/var/spool/mqueue 178
数字
022 192
077 192
3DES 64, 71
3-way TCP/IP ハンドシェーク 187
3 桁のオクタル・マスク 192
80/20 ルール 3
A
a.out 202
ACK パケット 187
ADSM
参照 TSM
ADSTAR Distributed Storage Manager (ADSM)
参照 TSM
AIX
/etc/inittab 142
ネットワーク・サービス 141
保護 139
AIX 3.2.x 157
AIX 4.1.x 157
AIX 4.2.x 157
AIX 4.3.3 (with bos.net.tcp.server 4.3.3.13) 157
224
AIX セキ ュ リ テ ィ ー ・ ツ ール
AIX 4.3.x 157
AIX account attibutes
registry 190
AIX account attributes
loginretries 190
rlogin 190
tpath 190
ttys 190
umask 190
AIX password settings
dictionlist 195
histexpire 195
histsize 195
maxage 195
maxexpired 195
maxrepeats 195
minage 195
minalpha 195
mindiff 195
minlen 195
minother 195
pwdwarntime 195
AIX 4.3.3 の SOCKS サポート 186
AIX 4.3.3 の自動 SOCKS 化サポート 186
AIX、DNS バージョン 157
AIX アカウント属性
expires 192
loginretries 190
logintimes 192
registry 191
rlogin 191
tpath 191
ttys 191
umask 191
AIX アカウント・ロール 192
AIX 上の DNS のセキュア 159
AIX 上のファイアウォール 24
AIX の保護 139
AIX バージョンの sendmail 175
AIX パスワード設定
dictionlist 195
histexpire 195
histsize 196
maxage 196
maxexpired 196
maxrepeats 197
minage 196
minalpha 196
mindiff 197
minlen 197
minother 196
pwdwarntime 197
AIX への OpenSSH のインストール 65
AIX ヘラルド、使用不可 193
AIX ヘラルドの使用不可 193
all-known-IP リスト 188
AllowGroups 75
allow-query, example 163
allow-query サブステートメント 163
allow-transfer, master example 160
allow-transfer, options example 160
allow-transfer, slave example 160
allow-transfer サブステートメント 159
allow-update, example 161
allow-update サブステートメント 161
AllowUsers 75
always 191
APAR IX86922 188
at 200, 204
AUTH_DES 173
AUTH_SYS 168
AUTH_UNIX 168, 173
authwarnings 176
autoconf6 147
B
Basic Networking Utilities
参照 BNU
bcastping 187
Berkeley Internet Name Daemon
参照 See BIND
biff 151
BIND 147, 153
4.8.3 157
4.9 159
4.9 xfrnets ディレクティブ 159
4.9.3, ipv4 157
8.1.2, ipv6 157
8.2 155
8.2.1 156
8.2.2 (patch 5), ipv6 157
シンボリック・リンク 157
ホーム・ページ 153
BIND4 153, 157
BIND8 への変換 158
BIND8 変換スクリプト 158
options no-fetch-glue 163
options no-recursion 162
secure_zone レコード 163
構成ファイル 158
もうサポートされていない 153
BIND4 から BIND8 への変換 158
BIND4 の構成ファイル 158
BIND4 を BIND8 に変換する PERL スクリプト 158
BIND8 153, 157
/etc/host からの変換 158
allow-transfer サブステートメント 159
allow-update サブステートメント 161
options fetch-glue no 164
options recursion no 162
構成ファイル 158
動的更新機能 161
BIND8 での動的更新機能 161
BIND8 の構成ファイル 158
biod 174
biod、定義 174
Blowfish 64
BNU 151
bootp 146
bootpd 151
bootps 149, 151, 181
bootp プロトコル、DHCP 拡張 146
bos.data 195
bos.net.ipsec 180, 183
bos.net.ipsec.rte 15
bos.net.nfs.client 174
bos.net.tcp.client 157, 165
bos.net.tcp.client の中の named デーモン 157, 165
bos.net.tcp.server 4.3.3.13 157
bos.txt.spell 195
C
CAST 125
CDE 144, 153
CDE、アンインストール 144
CDE および Tripwire 144
CDE 始動、使用不可 144
CDE 始動の使用不可 144
CDE デスクトップ 183
CDE のアンインストール 144
chargen 152
Check Point FireWall-1 14, 24, 25, 26, 37, 38, 49, 197
Check Point FireWall-1 が使用するポートのリスト
43
Check Point FireWall-1 での侵入の検出 43
225
chmod 0000 /usr/sbin/dpid2 148
chmod 4511 /usr/sbin/sendmail 178
chrooted 179
clean_partial_conns 187
cmsd 153
Commands
chmod 4511 /usr/sbin/sendmail 178
cronadm at -l 204
cronadm cron -l 204
delset 1 185
dspcat -g 185
gencat 185
grpck 190
no 28
pwdck 190
sendmail -v -bi 179
usrck 190
Common Desktop Environment
参照 CDE
comstat 151
COPS 119
core 202
cron 200, 204
cronadm at -l 204
cronadm cron -l 204
cron と at ジョブのモニター 200, 204
D
daytime 152
DCE 147
DCE/DFS 147
DCE ユーザー管理 173
DDNS
DNS スプーフィングと IP スプーフィングの比
較 156
DefaultUser 177
default スタンザ 193, 194
delset 1 185
DenyUsers 75
DES 64
DES ベース、公開鍵、秘密鍵暗号化 173
DFS 147
DHCP 146, 161
DHCP、bootp プロトコルの拡張 146
dhcpd 146
dhcprd 146
dhcpsd 146
DHCP クライアント・デーモン、dhcpcd 147
226
AIX セキ ュ リ テ ィ ー ・ ツ ール
DHCP サーバー・デーモン、dhcpsd 147
DHCP デーモン、使用不可 146
DHCP デーモンの使用不可 146
DHCP リレー・デーモン、dhcprd 147
dictionlist 195
directed_broadcast 188
discard 153
Distributed Computing Environment
参照 DCE
Distributed File System
参照 DFS
DMZ 3, 7, 19, 20, 35, 168, 177, 189
公開サーバー
DMZ、専用ネットワーク 2
DMZ 内の公開サーバー
DMZ 内の専用ネットワーク 2
DNS 147, 153
AIX 上のセキュア 159
AIX 上のバージョン 157
allow-query サブステートメント 163
fetch-glue no オプション 163
IP アドレスのレゾリューション・ステップ
154
IP スプーフィングと DNS スプーフィングの比
較 156
nslookup 165
nslookup を使用したデバッグ 168
Start Of Authority (SOA) レコード 166
TXT (txt) レコード 163
暗号化によって認証されたネーム・サーバー
156
キャッシュ 154
キャッシュ更新、制限 163
キャッシュ更新の制限 163
グルー・フェッチ、定義 163
原則 154
広告ネーム・サーバー 164
更新、いんちき 155
構成 153
構成の分割 164
再帰が使用不可 162
再帰、使用不可の代替 162
再帰、制限 161
再帰、定義 161
再帰の制限 161
再帰を使用不可にする代替 162
参照 162
照会、制限 162
照会の制限 162
スプーフィング 154, 155
スプーフィング、新規の改良された 155
スプーフィングの動作、説明 155
スプーフィングの利用に対するプロテクト 156
スプーフィングの利用、プロテクト 156
スプーフィング、古くてくたびれた 154
セキュリティー拡張 (DNSSEC)、RFC 2065 156
ゾーン転送、制限 159
ゾーン転送の制限 159
ダブル・ルックアップ 156
デーモン、使用不可 147
動的更新、制限 161
動的更新の制限 161
内部レゾリューション・ネーム・サーバー 164
バージョンを検査する 157
バージョンを判別する 157
バージョンを見つける 157
リゾルバー 156
DNS 再帰を使用不可にする代替 162
DNS デーモンの使用不可 147
DNS での IP アドレス・レゾリューション・ステッ
プ 154
DNS での暗号化認証 156
DNS の fetch-glue no オプション 163
DNS の構成 153
docsearch エンジン 143
Domain Name System
参照 DNS
dpid2 144, 148
dpid2 機密漏れ 148
DSA 62, 64
dspcat -g 185
dt 144
dtspc 153
Dynamic Host Control Protocol
参照 DHCP
E
echo 152
ed.hup 202
egrep 123
E-mail デーモン 153
emergency response services (ERS) 10
etc/security/passwd 122
exec 151
expires 192
EXPN 175
EXPN、定義 176
exportfs -au 175
exportfs -u 175
F
fetch-glue no (BIND8) オプション 164
File Transfer Protocol
参照 FTP
Files
.rhosts 60
/etc/hosts.equiv 60
/etc/inittab 28
/etc/rc.local 28
/etc/rc.net 28
/etc/rc.tcpip 28
/etc/sendmail.cf 178
/etc/sendmail.st 178
/usr/sbin/sendmail 178
/var/spool/mqueue 178
mqueue 178
sendmail 178
sendmail.cf 178
sendmail.st 178
filesets
bos.net.tcp.server 4.3.3.13 157
finger 151
fingerd 151
Firewall Toolkit 179
FireWall-1 197
FireWall-1 デフォルト構成のセキュア 29
FireWall-1、デフォルト構成のセキュア 29
FireWall-1 のセキュア 27
FireWall-1 のフィーチャー 25
FireWall-1 用の補足ソフトウェア 27
FireWall-1 ログの管理 29
FireWall-1、ログの管理 29
firewalls 198
fping 197, 198, 199
freeware.egd.rte 65
freeware.openssl.rte 65
freeware.zlib.rte 65
F-Secure SSH 62
FTP 184
ftp 148, 198
//ftp.porcupine.org/pub/security/index.html 78
//ftp.ssh.com/pub/ssh/ 61
ftpd 148, 184
ftp、アクティブ 185
ftp クライアント、SOCKS 化 186
227
ftp バナー 184
ftp バナー置き換え 184
ftp、パッシブ 185
ftp プロトコル 184
fw 36
G
gated 147
gencat 185
goaway 176
grpck 190
guest 189
gzip 170
H
h2n、匿名 FTP サイト 158
h2h の匿名 FTP サイト 158
h2n (BIND8) 158
HACMP 142, 203
HACMP および /.rhosts 203
hats トポロジー・デーモン 188
High Availability Cluster MultiProcessing
参照 HACMP
histexpire 195
histsize 195, 196
http
//www.bull.de/pub/out/ 111
//www.ers.ibm.com 10
//www.f-secure.com/products/ssh/ 62
//www.nai.com 126
//www.openssh.com 61
//www.openwall.com/john/ 120
//www.pgp.com 126
//www.pgpi.com 126
//www.pgpi.org/doc/faq/pgpi/en/#International 124
//www.pgpinternational.com 126
//www.sanstore.org 12
//www.ssh.com 76
//www.ssh.com/ssh 61
//www.ssh.com/ssh/download.html 61
//www.tripwiresecurity.com/ 111
//www.tripwiresecurity.com/products/index.cfml
111
//www.vandyke.com/products/securecrt/ 62
//www-3.ibm.com/security/ 47
//www-4.ibm.com/software/security/firewall/ 47
//www-4.ibm.com/software/security/firewall/about/
49
228
AIX セキ ュ リ テ ィ ー ・ ツ ール
//www-frec.bull 65
//www-frec.bull.fr 12, 61, 126
httpdlite 143
I
IBM Secure Mailer
参照 Postfix
IBM Secureway Firewall 47, 49, 197, 199
IBM Secureway Firewall のフィーチャー 47
IBM Secureway Firewall 用の補完ソフトウェア 48
IBM Secureway Network Despatcher 48
ICMP 29, 186
ICMP echo requests 198
ICMP ICMP エコー・パケット 187
icmpaddressmask 188
IDEA 64
imap2 153
imapd 153
imnadm 189
IMNSearch.rte.httpdlite ファイル・セット 143
imnss 143
IMN 検索エンジン 189
imqss 143
include 177
inetd 144
inetd.conf 148
inetd エントリー
bootpd 151
bootps 151
chargen 152
cmsd 153
comstat 151
daytime 152
discard 153
dtspc 153
echo 152
exec 151
finger 151
fingerd 151
imap2 153
imapd 153
klogin 151
krlogind 151
krshd 151
kshell 151
login 151
netstat 152
ntalk 152
pcnfsd 152
pop3 153
pop3d 153
ps 152
rexd 152
rexecd 151
rlogind 151
rshd 151
rstatd 151
ruserd 151
rwalld 151
shell 151
sparyd 152
systat 152
talk 152
talkd 152
tftp 151
tftpd 151
time 152
ttdbserver 153
uucp 151
uucpd 151
inetd デーモン 148, 184, 198
InfoExplorer 143
inittab 142
Internet Boot Protocol サーバー 151
Internet Explorer 186
ip6srcrouteforward 188
ipforwarding 28, 188
ipignoreredirects 188
IPSec 7, 8, 15, 26, 180, 183
ipsendredirects 188
ipsrcrouteforward 188
ipsrcrouterecv 188
ipsrcroutesend 188
ipv4 BIND 4.9.3 157
IPv6 147
ipv6 BIND 8.1.2 157
ipv6 BIND 8.2.2 (patch 5) 157
IPv6 デーモン、使用不可 147
IPv6 デーモンの使用不可 147
IP アドレス、動的割り当て 146
IP スプーフィングからの保護 39
IP スプーフィングと DNS スプーフィングの比較
156
IP 転送 28
IP ルーティング・オプション 188
J
John 109
John the Ripper 109, 110, 119, 194, 197, 198, 200
John the Ripper、インストール 120
John the Ripper、構成 121
John the Ripper、使用 122
John the Ripper、入手 120
John the Ripper のインストール 120
John the Ripper の構成 121
John the Ripper の使用 122
John the Ripper の入手 120
John the Ripper の入手とインストール 120
K
Kerberos 151
klogin 149, 151
krlogind 151
krshd 151
kshell 149, 151
L
last 201
ListenAddress 75
login 151
loginretries 190
logintimes 192
LogLevel 76
lpd 147, 189
lslpp 68
lsof 144
M
mailnull 177, 178
make 170
MANPATH 68, 127
maxage 195, 196
maxexpired 195, 196
maxrepeats 195, 197
MD5 110, 198, 200
MIB 180
MIMEsweeper 48
minage 195, 196
minalpha 195, 196
mindiff 195, 197
minlen 195, 197
minother 195, 196
mrouted 148
229
N
named 147, 157
named-xfer、再リンク 158
named、再始動 158
named、再リンク 158
named、シンボリック・リンク 157
named の再始動 158
NAT 41
ndnpd-router 147
ndpd-host 147
needexpnhelo 176
needmailhelo 176
needvrfyhelo 176
netmonAdapterHealth 188
Netscape 186
netstat 44, 152
netstat -af inet 144
Network Information System
参照 NIS
Network Security Auditor
参照 NSA
Network Security Auditor (NSA) 47, 49
Network Time Protocol
参照 NTP
network&netmask 160
NFS 153
biod、定義 174
bos.net.nfs.client ファイル・セットのデーモン
174
nfsd、定義 174
PC クライアント 152
rpc.lockd、定義 174
rpc.lockd の使用不可 175
rpc.mountd、定義 174
rpc.statd、定義 174
rpc.statd の使用不可 175
構成 168
デーモン、biod 174
デーモン、nfsd 174
デーモン、rpc.lockd 174
デーモン、rpc.mountd 174
デーモン、rpc.statd 174
プロテクト 173
よくあるセキュリティーの間違い 173
nfsd 174
nfsd、定義 174
nfs クライアント・ツール 170
NFS のプロテクト 173
NFS ( ポート 2049) 170
230
AIX セキ ュ リ テ ィ ー ・ ツ ール
NIS 153, 191
構成 168
NIS+ 168, 173
NLuprintf 144
nmap 198, 199
no 28, 186
no options 186
bcastping 187
clean_partial_conns 187
directed_broadcast 188
icmpaddressmask 188
ip6srcrouteforward 188
ipforwarding 188
ipignoreredirects 188
ipsendredirects 188
ipsrcrouteforward 188
ipsrcrouterecv 188
ipsrcroutesend 188
nolocsrcroute 188
tcp_pmtu_discover 188
udp_pmtu_discover 188
nobody (-2) 172
node のインストール 181
noexpn 176
no-fetch-glue (BIND4) オプション 163
nolocsrcroute 188
no-recursion (BIND4) オプション 162
nosak 191
notsh 191
novrfy 176
NSA 141, 176, 182, 199
nsa 50
nsaauditor.base 49
NSA、インストール 49
NSA 出力、解釈 51
NSA 出力の解釈 51
NSA、出力の解釈 51
NSA、使用 50
NSA のインストール 49
NSA の使用 50
nslookup 159, 165
DNS デバッグ 168
ls サブコマンド 167
ls サブコマンドを使用したゾーン転送 159, 167
server サブコマンド 167
Start Of Authority (SOA) レコードの照会 166
特定タイプのレコードの照会 166
ドメイン内のすべてのサーバーのリスト 167
ドメイン内のネーム・サーバーの照会 166
nslookup の中の ls subcommand 159
nslookup の中の ls サブコマンド 167
nslookup を使用したゾーン転送 159, 167
nsupdate、再リンク 158
ntalk 152
NTP 147
nuucp 189
O
on 152, 191
Open Platform for Secure Enterprise Connectivity
(OPSEC) 25
OpenSSH 61, 68
OpenSSH、AIX へのインストール 65
opensshd 69, 72
OpenSSH、SSH.Com とのインターオペラビリ
ティー 76
OpenSSH と SSH.Com の間の SSH2 のインターオペ
ラビリティー 76
options fetch-glue no (BIND8) 164
options no-fetch-glue (BIND4) 163
options no-recursion (BIND4) 162
options recursion no (BIND8) 162
Oracle 142
P
PATH 68, 127
pcnfsd 152
PC、SSH クライアント 76
PC クライアント、NFS 152
PC 用の SSH クライアント 76
PermitRootLogin 75
PGP 198, 200
pgpe 132
pgpk 127
PGP、インストール 126
PGP、使用 127
PGP、入手 126
PGP のインストール 126
PGP の基本 124
PGP の使用 127
PGP の入手 126
PGP の入手とインストール 126
Phil Zimmermann 126
ping スイープ 198
piobe 143
pop3 153
pop3d 153
portmap 144
portmapper 168
Ports 75
ports
ポート 25 (TCP)、SMTP (sendmail) 176
PortSentry 198, 199
PortSentry および /etc/hosts.deny 199
PortSentry およびループバック別名 199
POSTFIX 78
Postfix 180
postman 177
Pretty Good Privacy (PGP) 109, 110, 124
printq 189
PrivacyOptions 176
authwarnings 176
goaway 176
needexpnhelo 176
needmailhelo 176
needvrfyhelo 176
noexpn 176
novrfy 176
restrictmailq 176
restrictqrun 176
ps 152
PSSP 173
pwdck 190
pwdwarntime 195, 196, 197
Q
qdaemon 143
Quaintance, Jeff 176
R
RADIUS 25
rc.dt 144
rc.tcpip 144, 157
rcp 151, 198
recursion no (BIND8) オプション 162
refresh -s inetd 149
registry 190, 191
Remote Procedure Call
参照 RPC
restrictmailq 176
restrictqrun 176
rexd 152
rexecd 151
RFC 2065 156
rftp 186
231
rlogin 148, 151, 190, 191
rlogind 148, 151
root SUID/SGID ファイルを見つける 202
root SUID/SGID ファイルを見つけるコマンド 202
root として実行されていない sendmail 177
root の保護 192
root、保護 192
root、保護するステップ 192
root を保護するステップ 192
routed 147
RPC 168
rpc.lockd 174
rpc.lockd & rpc.statd の使用不可 175
rpc.lockd、定義 174
rpc.mountd 174
rpc.mountd、定義 174
rpc.statd 174
rpc.statd、定義 174
rpcinfo 168
rpcinfo, example 169
RPC 認証方式 168
rpc ( ポート・マップ ) 151, 152, 153
rpc ( ポート・マップ ) によるポートの割り振り
151, 152, 153
RS/6000 SP 147, 149, 151, 173, 174, 181, 188
RS/6000 SP umask 022 192
RS/6000 SP および ipforwarding 188
RSA 62, 64
RSA 認証 69, 71
rsh 148, 151
rshd 148, 151
rstatd 151
rtelnet 186
rtn 186
RunAsUser 177, 178
ruserd 151
rwalld 151
rwhod 148
rwhod 機密漏れ 148
S
SafeFileEnvironment 178
SAINT 141, 198, 199
SAINT、拡張 SATAN 199
sak_enabled 属性 191
SAK キー (^X^R) 191
SATAN 78, 180, 199
scp 148, 184, 198
232
AIX セキ ュ リ テ ィ ー ・ ツ ール
Secure Attention Key (SAK) 191
Secure NFS 173
Secure RPC 173
secure_zone, example 163
secure_zone レコード、BIND4 163
SecureCRT 62
SecureID 25
Secureway Firewall 47, 49, 197
Secureway Firewall のフィーチャー 47
Secureway Network Despatche 48
sendmail 144, 175, 198
sendmail restricted shell
参照 smrsh
Sendmail Switch 178
sendmail -v -bi 179
sendmail, SafeFileEnvironment 178
sendmail、.forward ファイル 177
sendmail、AIX バージョン 175
sendmail、include ファイル 177
sendmail、.deadletter 177
sendmail、DefaultUser 177
sendmail、PrivacyOptions 176
sendmail、root SUID 178
sendmail、RunAsUser 177, 178
sendmail、SafeFileEnvironment 178
sendmail 置き換え 180
sendmail 構成ファイル 175
sendmail 組み込みコマンド 175
sendmail 上の root SUID 178
sendmail デーモン 176
sendmail デーモンのリフレッシュ 177
sendmail の商用バージョン 178
sendmail バージョン 8.8 177
sendmail バナー 176
sendmail バナー、除去 177
sendmail バナーの除去 177
sendmail ホーム・ページ 175
sftp 148, 184, 198
SGID 202
shadmgr.aix スクリプト 123
shell 151
showmount 170
Simple Mail Transfer Protocol
参照 SMTP
Simple Network Management Protocol
参照 SNMP
smitty failed_logins 190
smrsh 179
SMTP 153, 175
SMTPGreetingMessage 177
SMTP TCP ポート 25 179
smurf アタック 187
SNMP 148, 153, 180
snmpd 144, 148
SNMPv1 180
SNMP コミュニティー名 180
SNMP コミュニティー名 , 固有の 148
SOCKS 185, 186
SOCKS v5 186
SOCKS 化された ftp クライアント 186
SOCKS 化された TCP スタック 186
SOCKS を使用した TCP サービスのプロテクト 186
SP 147, 149, 151, 173, 174, 181, 188
SP mksysb 夜間バックアップ 173
SP umask 022 192
spray 152
sprayd 152
SP および ipforwarding 188
SP 管理イーサネット 173
SP コントロール・ワークステーション上の
ipforwarding 188
SP スイッチ 173
SP ノードのインストール 192
SP ノードのカスタマイズ 192
SP ノードのネットワーク・ブート 151
SP 必須サービス
bootps 149
klogin 149
kshell 149
tftp 149
SSH 59, 148, 184, 197, 198
ssh 148
SSH scp 184
SSH sftp 184
SSH, F-Secure 62
SSH.Com、OpenSSH とのインターオペラビリ
ティー 76
SSH1 61, 68
SSH1、SSH2 との違い 62
SSH1、構成と使用 69
SSH1 と SSH2 の間の違い 62
SSH1 の構成と使用 69
SSH1 を使用した OpenSSH 68
SSH2 61, 71
SSH2、OpenSSH によって使用される 71
SSH2、SSH1 との違い 62
SSH2、構成と使用 72
SSH2 の構成と使用 72
SSH2 を使用した OpenSSH 71
ssh-keygen 71, 73, 76
SSH、重要な概念 62
SSH、代替 77
SSH デーモン構成オプション 75
SSH、入手 61
SSH の重要な概念 62
SSH の代替 77
SSH の入手 61
SSH、持つことの意味 77
SSH を持つことの意味 77
Start Of Authority (SOA) レコード 166
StrictHostKeyChecking 75
su 201
SUID 202
Sun’s Remote Procedure Call
参照 RPC
SYN/ACK パケット 187
SYNDefender 37
SYN アタック 37, 38
SYN アタックに対するプロテクション 187
SYN パケット 187
syslog 144
SyslogFacility 76
systat 152
T
talk 152
talkd 152
Tamu’s Tiger 119
TCP 186
ポート 110、pop3d 153
ポート 11、systat 152
ポート 15、netstat 152
ポート 25、SMTP (sendmail) 176, 177
ポート 512、rexecd 151
ポート 513、rlogind 151
ポート 514、rshd 151
ポート 518、talkd 152
ポート 540、uucpd 151
ポート 543、krlogind 151
ポート 544、krshd 151
ポート 6000、X 183
ポート 79、fingerd 152
TCP Wrapper 7, 8, 180, 197, 198
TCP Wrapper /etc/hosts.deny 199
TCP Wrapper アクセス制御リスト 198
TCP & UDP
233
ポート 111、portmapper 168, 174
ポート 13、daytime 152
ポート 143、imapd (imap2) 153
ポート 161、snmpd 180
ポート 19、chargen 152
ポート 37、time 152
ポート 7、echo 152
ポート 9、廃棄 153
TCP/IP
停止 145
TCP/IP によって始動されるデフォルト・デーモン
144
TCP/IP デーモンの始動 144
TCP/IP デーモンの使用不可 148
autoconf6 147
dhcpd 146
dhcprd 146
dhcpsd 146
dpid2 148
gated 147
lpd 147
mrouted 148
named 147
ndnpd-router 147
ndpd-host 147
routed 147
snmpd 148
timed 147
xntpd 147
TCP/IP の停止 145
tcp_pmtu_discover 188
tcpdchk 80
tcpdmatch 81
TCP Wrapper、sendmail をプロテクト 180
TCP サービスをプロテクトする SOCKS 186
TCP スタック、SOCKS 化された 186
TCP ラッパー 77, 148
TCP ラッパー、ftp のプロテクト 184
TCP ラッパー、インストール 78
TCP ラッパー、構成 79
TCP ラッパー、入手 78
TCP ラッパーのインストール 78
TCP ラッパーの構成 79
TCP ラッパーの追加セキュリティー・フィー
チャー 82
TCP ラッパーの入手 78
TCP ラッパーの入手とインストール 78
TCP ラッパーを使用して sendmail をプロテクト
180
234
AIX セキ ュ リ テ ィ ー ・ ツ ール
telnet 148
telnet to port 25 on localhost (0) 176
telnetd 148
TFTP 181
tftp 149, 151, 181
tftpd 151
TFTP アクセス制御 181
The Bat Book 179
The X Windows System Administrator’s Guide, Volume
8 183, 216
time 152
timed 147
timed デーモン、使用不可 147
timed デーモンの使用不可 147
TIMEOUT 194
Tivoli Storage Manager
参照 TSM
TMOUT 194
tpath 190, 191
tpath always 191
tpath nosak 191
tpath notsh 191
tpath on 191
Tripwire 109, 110, 192, 198, 199
Tripwire CheckConfig スクリプト 115
tripwire.list.sort 114
Tripwire、いつ実行すべきか 118
Tripwire、インストール 111
Tripwire および CDE 144
Tripwire、構成 112, 114
Tripwire、構成に関するコメント 118
Tripwire、使用 112
Tripwire セキュア・データベース 199
Tripwire、代替 119
Tripwire、入手 111
Tripwire のインストール 111
Tripwire の構成 112, 114
Tripwire の構成と使用 112
Tripwire の使用 112
Tripwire の入手 111
Tripwire の入手とインストール 111
Tripwire を使用した /etc/rc.dt のプロテクト 144
Trivial File Transfer Protocol
参照 TFTP
Trusted Computing Base (TCB) 119
TSM 142
ttdbserver 153
tty0 191
tty0 ( コンソール ) 191
ttys 190, 191
tw.config 115
TXT (txt) レコード、DNS 163
U
UDP 186
ポート 512、comstat 151
ポート 67、bootpd 151
ポート 69 181
ポート 69、tftpd 151
udp_pmtu_discover 188
umask 190, 191
umask 022 192
umask 077 192
UNIX 通知ロック 174
UNIX の通知ロック 174
uprintf 144
uprintfd 144
usrck 190
uucp 151, 189
uucpd 151
V
Venema、Wietse 180
VRFY 175
VRFY & EXPN の使用不可 175
VRFY、定義 176
W
Web サーバー、デフォルト 143
who 201
who /etc/security/failedlogin | more 201
Wietse Venema 180
world-writable ディレクトリー 203
world-writable ディレクトリーを見つける 203
world-writable ファイル 203
world-writable ファイルを見つける 203
write 144
writesrv 144
www.checkpoint.com 25
www.checkpoint.com/support/technical/documents/inde
x.html 27
www.cisco.com/univercd/cc/td/doc/product/iaabu/centri
4/user/scf4ch3.htm 17
www.enteract.com/~lspitz/fwtable.txt 36
www.enteract.com/~lspitz/intrusion.htm 43
www.fc.net/phrack/files/p48/p48-13.html 38
www.icsa.net/html/communities/firewalls/certification/v
endors/index.shtml 24
www.infoworld.com/supplements/99poy_win/99poy_s.
html 47
www.mimesweeper.integralis.com 48
www.onsight.com/faq/ssh/ssh-faq.html 60
www.phoneboy.com/fw1 25
www.phoneboy.com/fw1/ 44
www.telemate.net 49
www-4.ibm.com/software/network/dispatcher/ 48
X
X over SSH 184
X server 183
X Window システム 144
X xterm 183
X11 xauth 182
X11 xhost 182
X11 xhost - 183
X11 xhost + 182, 183
X11 xlock 183
X11 xwd 182
X11 xwud 182
X11.apps.clients ファイル・セット 182
X11Forwarding 76
X11 アクセス制御 182
X11 の保護 182
X11、保護 182
xauth 182
xfrnets, example 160
xfrnets, more restrictive example 161
xfrnets ディレクティブ 159
xhost 182
xhost - 183
xhost + 182, 183
xlock 183
xntpd 147
xterm 183
xwd 182
xwud 182
X クライアント 184
X と一緒に使う SSH 184
X ライブラリー 182
Y
Yellow Pages (YP)
参照 NIS
235
Z
zone サブステートメント 160
あ
アカウントのログイン時間帯、定義 192
アカウントのログイン時間帯の定義 192
アカウント・ポリシー、強力 189
アカウント有効期限時刻、定義 192
アカウント有効期限時刻の定義 192
アクセス制御、TFTP 181
アクセス制御、X11 182
アクティブ ftp 185
足跡の遮蔽 5
アタック
バッファー・オーバーフロー 153
アタック、smurf 187
アタック、SYN 37, 38
アタック、サービス妨害 152
アタック、バッファー・オーバーフロー 152
アプリケーション層 ( プロキシー ) ファイアウォー
ル 15, 16
暗号化 64
暗黙的な除去ルール 34
い
印刷デーモン、使用不可 143, 147
印刷デーモンの使用不可 143, 147
インターネット・ダウンロード、検査 200
インターネット・ダウンロードの検査 200
インターネット・プロトコル (IP) バージョン 6
参照 IPv6
いんちき DNS 更新 155
う
裏口の設置 6
え
エコー・パケット、ICMP 187
エンジン、docsearch 143
き
既知の弱点のリスト 199
機密漏れ、dpid2 148
機密漏れ、rwhod 148
キャッシュ、DNS 154
キャッシュ更新、制限 163
キャッシュ更新の制限 163
脅威の評価 4
境界ルーター 2
強化、ファイアウォール 49
強力なアカウント・ポリシー 189
強力なパスワード・ポリシー 194
強力なパスワード・ポリシーのセットアップ 194
偽造更新要求 155
く
組、セキュリティー・ツール 199
クラスター、HACMP 203
クラッキング・ツール 194
クラック 197
クラック・ユーティリティー 197
クリア・テキスト 149
クリーンアップ・ルール 34
クロック・ソース、信頼できる 147
グルー・フェッチ 164
グルー・フェッチ、オフにする 163
グルー・フェッチ、定義 163
グルー・フェッチをオフにする 163
け
お
お気に入りの狩り場 204
オクタル・マスク 192
か
カーネル・サービス、NLuprintf 144
236
カーネル・サービス、uprintf 144
カーネル・メッセージ 144
各国語コード・ポイント 196
環境変数 TIMEOUT 194
環境変数 TMOUT 194
監査の使用可能化 200, 201
監査ログ 200
害のない風刺的ものまね 154
外部ネットワーク 19
外部ファイアウォール 2
AIX セキ ュ リ テ ィ ー ・ ツ ール
軽妙なパロディー 154
経路指定、静的 vs. 動的 147
経路指定、動的 vs. 静的 147
権威を持つ 163
検索エンジン、IMN 189
原則、DNS 154
こ
公開鍵 63, 71
公開鍵、秘密鍵、認証スキーム 184
広告ネーム・サーバー 164
更新要求、偽造 155
構成の分割、DNS 164
高速モード TCP 42
コマンド
at 200, 204
biff 151
bootps 149
chmod 0000 /usr/sbin/dpid2 148
cron 200, 204
egrep 123
exportfs -au 175
exportfs -u 175
ftp 148
fw 36
kloginl 149
kshell 149
last 201
lslpp 68
lsof 144
make 170
netstat 44, 152
netstat -af inet 144
no 186
nsa 50
nslookup 159, 165
on 152
opensshd 69, 72
pgpe 132
pgpk 127
ps 152
rcp 151
refresh -s inetd 149
rftp 186
rlogin 148, 151
rpcinfo 168
rsh 148, 151
rtelnet 186
rtn 186
scp 148
sftp 148
showmount 170
smitty failed_logins 190
spray 152
ssh 148
ssh-keygen 71, 73, 76
su 201
talk 152
tcp.clean 145
tcpdchk 80
tcpdmatch 81
telnet 148
tftp 149
who 201
who /etc/security/failedlogin | more 201
write 144
xauth 182
xhost 182
xhost - 183
xhost + 182, 183
xlock 183
xterm 183
コミュニティー名、SNMP 180
コミュニティー名、固有の SNMP 148
コメント化 vs. 削除 145
固有の SNMP コミュニティー名 148
コンパートメント 21
コンパートメント化されたファイアウォール 35
コンパートメント化されたファイアウォール環境
の設計 21
コンパートメント化したアプローチ 23
さ
サーキット・レベル・ファイアウォール 15
サード・パーティーのセキュリティー・ツール
197
サービス
ネットワーク 141
サービス、除去、不必要 141
サービス、ネーム・レゾリューション 147
サービスの構成、強化 153
サービスの使用不可
dt 144
httpdlite 143
imnss 143
imqss 143
piobe 143
qdaemon 143
uprintfd 144
writesrv 144
サービス妨害アタック 187
サービス妨害攻撃 37, 152
再帰、制限 161
再帰的照会 164
237
再帰の制限 161
最初のアクセス 5
削除 vs. コメント化 145
参照、DNS 162
し
シグニチャー、ディジタル 156
システムおよびデータの保全性 109
システム開始時のアタックされ易さの解決 28
システム始動 142
システム動作 200
システム・ログ 200
システム・ログのモニター 200, 201
始動
AIX 142
HACMP 142
Oracle 142
TCP/IP デーモン 144
UNIX 142
システム 142
始動ファイルの変更 142
照会、制限 162
照会の制限 162
試用期間 198
シンボリック・リンク、BIND 157
シンボリック・リンク、named 157
信頼できるクロック・ソース 147
時限爆弾 204
時刻同期デーモン 147
自動マウント・ホーム・ディレクトリー 173
弱点、トラップされていないメタ文字 152
弱点をなおすための推奨案 199
情報検索デーモン、使用不可 143
情報検索デーモンの使用不可 143
す
スキャン 5
スタンザ・フォーマット 190
スプーフィング 184
スプーフィング、DNS 154, 155
スプーフィング、DNS と IP の比較 156
スプーフィング、定義 154
スプーフされた ICMP トラフィック 187
すべての at ジョブのモニター 204
すべての cron ジョブのモニター 204
238
AIX セキ ュ リ テ ィ ー ・ ツ ール
せ
静的 vs. 動的経路指定 147
静的経路指定 188
静的経路指定 vs. 動的経路指定 188
静的パケット・フィルター・ファイアウォール 15
セキュア・シェル 59
セキュア・シェル (ssh) 59
セキュリティー・ツール、サード・パーティー
197
セキュリティー・ツールの組 199
セキュリティー・フレームワーク
計画 3
セキュリティー・フレームワーク、計画 3
セキュリティー・フレームワーク、構築 2
セキュリティー・フレームワークの計画 3
セキュリティ・フレームワークの構築 2
セキュリティー・モニターのエレメント 200
セキュリティ・フレームワーク 1
セキュリティー・フレームワーク
アーキテクチャー 6
機能不良への応答 10
実装 7
モニター 8
セキュリティー・フレームワーク、アーキテク
チャー 6
セキュリティー・フレームワーク、機能不良への
応答 10
セキュリティー・フレームワーク、実装 7
セキュリティー・フレームワークのアーキテク
チャー 6
セキュリティー・フレームワークのインプリメン
テーション 7
セキュリティー・フレームワークのモニター 8
セキュリティー・フレームワーク、モニター 8
接続の表示 36
接続、表示 36
専用内部サーバー 2
専用内部ネットワーク 2
そ
相互検査 199
送信元ルーティングのコントロール 188
その他のセキュリティー・ツール、インストール
197
その他のセキュリティー・ツールのインストール
197
その他の属性 193
ゾーン転送、制限 159
ゾーン転送の制限 159
属性、その他 193
た
ターゲットの捕捉と情報の収集 4
対称鍵暗号 63
他の防御メカニズムの使用可能化 37
端末エミュレーター 183
ち
着信メール 151
つ
通信デーモン、使用不可 144
通信デーモンの使用不可 144
ツール
gzip 170
lsof 144
nfs 170
NSA 141
nslookup 165, 159
rftp 186
rtelnet 186
rtn 186
SAINT 141
scp 184
sftp 184
xwd 182
xwud 182
て
定義された SYN アタック 187
適切なネットワーク・オプション 186
ディクショナリー、標準 UNIX 194, 195
ディジタル・シグニチャー 156
ディレクトリー、world-writable 203
データベース、Tripwire 199
データ保全性 65
デーモン 144, 147
autoconf6 147
biod 174
bootpd 151
comstat 151
DHCP 146
dhcpd 146
dhcprd 146
dhcpsd 146
DNS 147
dpid2 144, 148
E-mail 153
fingerd 151
ftpd 148, 184
gated 147
hats 188
httpdlite 143
imapd 153
imnss 143
imqss 143
inetd 144, 148, 184, 198
IPv6 147
krlogind 151
krshd 151
lpd 147
mrouted 148
named 147, 157
ndnpd-router 147
ndpd-host 147
nfsd 174
pcnfsd 152
piobe 143
pop3d 153
portmap 144
qdaemon 143
rexd 152
rexecd 151
rlogind 148, 151
rpc.lockd 174
rpc.mountd 174
rpc.statd 174
rshd 148, 151
rstatd 151
ruserd 151
rwalld 151
rwhod 148
sendmail 144, 175, 176
snmpd 144, 148
sprayd 152
syslog 144
talkd 152
telnetd 148
tftpd 151
time 147
timed 147
uprintfd 144
uucpd 151
writesrv 144
239
xntpd 147
印刷 143, 147
時刻同期 147
情報検索 143
通信 144
ネットワーク管理 148
マルチキャスト 148
ルーティング 147
ポート・マップ 168
デーモン・モードの sendmail 177
でっちあげ 154
デフォルト Web サーバー 143
デフォルト・アカウント 189
デフォルト・アカウント、不要アカウントの除去
189
デフォルト・グループ
imnadm 189
printq 189
uucp 189
デフォルト・スタンザ 190
デフォルトで始動される TCP/IP デーモン 144
デフォルト・ユーザー
imnadm 189
lpd 189
nuucp 189
uucp 189
デフォルト l・ユーザー
guest 189
デフォルト・ユーザーおよびグループを除去する
コマンド 189
電話システムとの類比 156
に
認証 62, 71
認証方式、RPC 168
ね
ネーム・レゾリューション 153
ネーム・レゾリューション・サービス 147
ネットワーク、外部 19
ネットワーク、内部 19
ネットワーク・アドレス変換 (NAT) 40
ネットワーク・オプション 186
ネットワーク管理デーモンの使用不可 148
ネットワーク管理デーモン、使用不可 148
ネットワーク・サービス 141
ネットワーク・スキャナー 198
ネットワーク・トポロジーの確認 198
の
ノードのカスタマイズ 181
残りのサービスの構成 153
残りのサービスの構成を強化する 153
は
と
特権のエスカレーション 5
トポロジー・サービス・デーモン 188
トラップされていないメタ文字弱点 152
動的 DNS、プロトコルの拡張 161
動的 IP アドレスの割り当て 146
動的 vs. 静的経路指定 147
動的経路指定 188
動的経路指定 vs. 静的経路指定 188
動的更新、制限 161
動的更新の制限 161
動的パケット・フィルター・ファイアウォール
15, 16
動的ルーティング 147
動的ルーティング・デーモン 188
240
な
内部サーバー、専用 2
内部ネットワーク 19
内部ネットワーク、専用 2
内部ファイアウォール 2
内部レゾリューション・ネーム・サーバー 164
ナンセンス 154
AIX セキ ュ リ テ ィ ー ・ ツ ール
ハンドシェーク、TCP 3-way 187
バッファー・オーバーフロー・アタック 152, 153,
174
バナー、ftp 184
バナー、sendmail 176
バナー置き換え、ftp 184
パケット、ACK 187
パケット、ICMP エコー 187
パケット、SYN 187
パケット、SYN/ACK 187
パスワード・クラッカー・ユーティリティー 197
パスワードの最小の長さ 197
パスワード・ポリシー、強力 194
パッシブ ftp 185
ひ
非特権ポート (1023 より上 ) 174
非武装地帯 (DMZ)
DMZ
秘密鍵 63
秘密鍵のプロテクト 134
秘密鍵、プロテクト 134
秘密スキャン 199
秘密ルール 35
評価、脅威 4
標準 UNIX ディクショナリー 194, 195
ふ
ファイアウォール 13
AIX 上の 24
アプリケーション層 ( プロキシー ) 15, 16
コンパートメント化された 35
コンパートメント化された環境の設計 21
誤解 13
サーキット・レベル 15
さまざまなタイプの比較 16
静的パケット・フィルター 15
セキュア 24
設計 17
タイプ 15
デフォルトの構成 14
動的パケット・フィルター 15, 16
ファイアウォール、外部 2
ファイアウォール、コンパートメント化された 35
ファイアウォール、誤解 13
ファイアウォール、セキュア 24
ファイアウォール、内部 2
ファイアウォールの強化 49
ファイアウォールのセキュア 24
ファイアウォールの設計 17
ファイアウォールのタイプ 15
ファイル
$FWDIR/conf/fwauthd.conf 43
$FWDIR/conf/fwopsec.conf 43
$HOME/.deadletter 177
$HOME/.pgp/pubring.prk 129
$HOME/.pgp/secring.skr 129
$HOME/.rhosts 70
$HOME/.shosts 70
$HOME/.ssh/authorized_keys 70, 71
$HOME/.ssh/authorized_keys2 74
$HOME/.ssh/config 70
$HOME/.ssh/id_dsa 71, 74
$HOME/.ssh/id_dsa.pub 74
$HOME/.ssh/identity 70
$HOME/.ssh/known_hosts 68
$HOME/.ssh/known_hosts2 72
$JOHNDIR/john.ini 122
$JOHNDIR/john.pot 123
.deadletter 177
.forward 177, 179
.netrc 202
.rhosts 202
.shosts 68
/.rhosts 203
/etc/exports 168, 175
/etc/hosts 153, 168
/etc/hosts.allow 80
/etc/hosts.deny 80, 199
/etc/hosts.equiv 70
/etc/inetd.conf 43
/etc/inittab 69, 142, 174
/etc/named.boot (BIND4) 158, 160
/etc/named.conf (BIND8) 158, 159, 161
/etc/nsa/license.nsa 50
/etc/nsa/scannerdefs 50
/etc/openssh/ssh_host_key 69
/etc/openssh/ssh_host_key.pub 72
/etc/openssh/sshd_config 68, 69, 72
/etc/passwd 122, 168
/etc/profile 194
/etc/rc.dt 144
/etc/rc.nfs 174, 175
/etc/rc.openssh 69
/etc/rc.tcpip 68, 157
/etc/security/audit/events 201
/etc/security/failedlogin 201
/etc/security/login.cfg 191, 193
/etc/security/sysck.cfg 114
/etc/security/user 190, 193, 194
/etc/sendmail.cf 175, 177
/etc/shosts.equiv 68, 70
/etc/snmpd.conf 180
/etc/tcp.clean 145
/etc/tftpaccess.ctl 181
/etc/utmp 201
/usr/adm/tcheck/databases/* 118
/usr/adm/tcheck/databases/tw.db_ 112
/usr/adm/tcheck/tw.config 112
/usr/local/bin/john-1.6/password.lst 121
/usr/local/lib/john-1.6/words.list.sort 122
/usr/local/lib/tripwire-1.2/README.CheckConfig
241
115
/usr/lpp/FireWall-1/log/* 29
/usr/lpp/nsauditor/doc/ * 50
/usr/samples/tcpip/named-booconf.pl 158
/usr/sbin/named 157
/usr/sbin/named4 157
/usr/sbin/named8 157
/usr/security/bin/tripwire 112
/usr/share/dict/words 121
/usr/shared/dict/words 195
/usr/vac/bin/cc 170
/var/adm/sulog 191, 192, 201
/var/adm/wtmp 201
a.out 202
cc 170
core 202
ed.hup 202
etc/security/passwd 122
events 201
exports 168, 175
failedlogin 201
h2n (BIND8) 158
hosts 153, 168
hosts.deny 199
include 177
inittab 142, 174
login.cfg 191, 193
named 157
named.boot (BIND4) 158, 160
named.conf (BIND8) 158, 159, 161
named4 157
named8 157
named-booconf.pl 158
named-xfer 158
nslookup 159, 165
nsupdate 158
passwd 168
profile 194
rc.dt 144
rc.nfs 174, 175
rc.tcpip 157
sendmail.cf 175, 177
snmpd.conf 180
sulog 191, 192, 201
tcp.clean 145
tftpaccess.ctl 181
tripwire.list.sort 114
tw.config 115
user 190, 193, 194
242
AIX セキ ュ リ テ ィ ー ・ ツ ール
utmp 201
words 195
wtmp 201
.forward ファイル 179
ファイル、world-writable 203
ファイルおよびディレクトリーのモニター 200,
202
ファイル・セット
bos.data 195
bos.net.ipsec 180, 183
bos.net.ipsec.rte 15
bos.net.nfs.client 174
bos.net.tcp.client 157, 165
bos.txt.spell 195
freeware.egd.rte 65
freeware.openssl.rte 65
freeware.zlib.rte 65
IMNSearch.rte.httpdlite 143
nsaauditor.base 49
X11.apps.clients 182
ファイル
/etc/inetd.conf 148
/etc/rc.tcpip 144
inetd.conf 148
フットプリント 4
不必要なサービスの除去 141
不要なデフォルト・アカウントの除去 189
フレームワーク、セキュリティ 1
ブラックホール、定義 155
ブロードキャストのプロテクション 187
プロキシー・サーバー、SOCKS 186
プロテクション、ブロードキャスト 187
プロトコル、ftp 184
へ
ヘラルド 193
ほ
ホーム・ページ
BIND 153
sendmail 175
保護、IP スプーフィング 39
ホスト
/etc/ssh/known_hosts 68
ホスト・テーブル、ローカル 153
ホスト名レゾリューション 153
保全性、システムおよびデータ 109
ポート
ポート 110 (TCP)、pop3d 153
ポート 111 (TCP & UDP)、portmapper 168, 174
ポート 11 (TCP)、systat 152
ポート 13 (TCP & UDP)、daytime 152
ポート 143 (TCP & UDP)、imapd (imap2) 153
ポート 15 (TCP)、netstat 152
ポート 161 (TCP & UDP)、snmpd 180
ポート 19 (TCP & UDP)、chargen 152
ポート 25 (TCP)、SMTP (sendmail) 177
ポート 37 (TCP & UDP)、time 152
ポート 512 (TCP)、rexecd 151
ポート 512 (UDP)、comstat 151
ポート 513 (TCP)、rlogind 151
ポート 514 (TCP)、rshd 151
ポート 518 (TCP)、talkd 152
ポート 540 (TCP)、uucpd 151
ポート 543 (TCP)、krlogind 151
ポート 544 (TCP)、krshd 151
ポート 6000 (TCP)、X 183
ポート 67 (UDP)、bootpd 151
ポート 69 (UDP)、tftpd 151
ポート 69 (UD)、tftpd 181
ポート 79 (TCP)、fingerd 152
ポート 7 (TCP & UDP)、echo 152
ポート 9 (TCP & UDP)、廃棄 153
ポート・スキャナー 198
ポート・マップ・デーモン 168
や
ま
ルーター、境界 2
ルーティング・デーモン、使用不可 147
ルーティング・デーモンの使用不可 147
ルーティング、動的 147
ループバック別名 199
ループ、無限 152
ルール、暗黙的な除去 34
ルール、クリーンアップ 34
ルール、秘密 35
マニュアル・ページ 143
マルチキャスト・デーモン、使用不可 148
マルチキャスト・デーモンの使用不可 148
む
無限ループ 152
役に立つルール・ベースの作成 34
ゆ
ユーザー・アカウントの規定を強める 189
ユーザー・アカウントのクリーンアップ 189
ユーザー属性、設定 190
ユーザー属性の設定 190
ユーザーのないファイルを見つける 203
ユーザー・パスワード属性の変更 194
ユーザー・パスワード属性、変更 194
よ
要塞ホスト 177
ら
ライセンス・プロダクト 198
ラッパー、TCP 148
り
リゾルバー、DNS 156
リモート・アクセス、セキュア 59
リモート・アクセスのセキュア 59
リモート・アクセスを保護する 198
る
め
メール、着信 151
メッセージ、カーネル 144
れ
レガシー SNMP デーモン、dpid2 148
列挙 5
も
モニター対象のシステム・ログ
/etc/security/failedlogin 201
/etc/utmp 201
/var/adm/sulog 201
/var/adm/wtmp 201
モニター、エレメントの 200
ろ
ローカル・ホスト・テーブル 153
ロール、AIX アカウント 192
ログのモニター、監査証跡、およびシステム動作
200
243
244
AIX セキ ュ リ テ ィ ー ・ ツ ール
®
AIX セキ ュ リ テ ィ ー ・ ツール
IBM
pSeries,
RS/6000, SP/Cluster
ご使用の pSeries
のセキ ュ リ テ ィ ー
を カ ス タ マ イ ズす
る
Explore IBM,
non-IBM, and
freeware security
tools
Learn new
approaches to
security
ファイアウォールからオペレーティング・システ
ムの強化まで、このレッドブックでは、ユーザー
の pSeries、RS/6000 ワークステーション、SP、ま
たはクラスターのセキュリティー環境の強化に使
用できるさまざまなツールと技法について説明し
ます。使用しているアプローチは、外側から内側
へ、トップからボトムへ、です。外側の世界から
よく見え、ネットワークの外縁にあるサーバーか
ら始めて、機密データが収められているイントラ
ネットの内部に移動します。そのようなサーバー
の説明では、トップにあるアプリケーション層か
ら始めて、ボトムにあるネットワーク層に行きま
す。その途上で、ユーザー環境のセキュリティー
の強化に役立つ、いますぐ使用可能なサード・
パーティーのソフトウェア、AIX および PSSP と
一緒に提供される標準ソフトウェアのモディフィ
ケーション、および、さまざまな技法の組み合わ
せなどについて説明します。
このレッドブックでカバーしている主題には以下
のものが含まれます。
- ファイアウォール
- セキュア・リモート・アクセス
- ネットワーク・マッピングおよびポート・ス
キャン
- システム保全性
- AIX の保護
SG88-6704-00
INTERNATIONAL
TECHNICAL
SUPPORT
ORGANIZATION
BUILDING TECHNICAL
INFORMATION BASED
ON
PRACTICAL
EXPERIENCE
IBM Redbooks are
developed by the IBM
International Technical
Support Organization.
Experts from IBM,
Customers and Partners from
around the world create
timely technical information
based on realistic scenarios.
Specific recommendations
are provided to help you
implement IT solutions more
effectively in your
environment.
For more information:
ibm.com/redbooks