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
© Copyright 2024 Paperzz