(注:記事は執筆時の情報に基づいており,現在では異なる場合があります)

セキュリティ対策ツールにも数多くのオープンソース・ソフトウエアが存在する。暗号化や侵入・改ざん監視など様々なジャンルのツールがある。ここでは通信状態検査ツールnmap,ぜい弱性検査ツールNessusなどを中心に紹介する。これらを活用することで,構築・管理するサーバーの問題点を把握できる。

表1●セキュリティ関連オープンソース・ソフトウエアの例
表2●nmapの起動パラメータとオプション
写真1●ポート・スキャナnmapのGUI画面
 セキュリティ関連でも,さまざまなオープンソースのソフトウエアが使われている。実際の業務にオープンソース・ソフトウエアを愛用しているプロのセキュリティ専門技術者も多い。

 表1[拡大表示]に,ごく一部の著名なソフトウエアの例を示したが,これら以外にも各種検査関係/ファイアウォール/暗号化など優れたソフトウエアが数多くある。今回は,主要なソフトウエアの中からホストのぜい弱性を検査するツールを紹介する。

ぜい弱性を検査するスキャナ

 システムのセキュリティ・レベルを高めるために,対象システムを調査して問題点を抽出することが大切な作業になる。ある程度の作業はオープンソースの検査ツールを用いて実施することができる。

 検査対象のホストが外部に対して開いているポート*1を調べる検査を,ポート・スキャンと呼ぶ。ポート・スキャンはほとんどのセキュリティ検査(ぜい弱性検査)で最初に行われる検査だ。

 本来の目的以外のポートが開いていればそこがシステムの弱点になっている可能性がある。つまり,建物の防犯チェックに例えると,カギのかかっていないドアや窓を探すような検査と似た意味合いがある。

 一方セキュリティ・スキャナによる検査は,ソフトウエアの応答メッセージなどから,そこで稼働しているソフトウエアの名称やバージョンを調べ(バナー検査),調査パケットに対する検査対象の応答内容をぜい弱性データベースと照合して既知のぜい弱性があるか調査する。特に単純な設定ミスやアップデートを忘れたケースなどはこの検査で発見できることも多いので,定期的に診断することをお勧めする。

 ホストを検査するスキャナの代表的な例として,ポート・スキャナnmapとセキュリティ・スキャナNessusを取り上げ,機能の概要と診断の実例を紹介する。

有効なポートを探るnmap

 ポート・スキャンでは,検査対象のシステムでサービスが開かれているTCPとUDPのポートを調べる。最も簡単なポート・スキャンはUNIX(および互換OS)のシステム・コールconnect()を使って行うことができる。一方nmapでは,「TCPコネクト・スキャン」と呼ばれるこの方法以外にも,数種類の方法でポートの開閉を調べる機能を搭載している(表2[拡大表示])。

 「TCP SYNスキャン」は最も高速に調査を行うことができる方法である。通常connect()ではSYN/ACK-SYN/ACKのパケットを送信しハンドシェイクによりコネクションの確立を試みる。これに対し,SYNスキャンはSYN/ACK-SYNに引き続き,コネクションを切断するRSTパケットを返信する。コネクションを確立する前に通信を終了させるため,早く調査を完了できる。

 「UDPスキャン」はUDP*2パケットを送信し,ICMP Port Unreachable(到達不能)パケットが返信されたら該当ポートが閉じていると判断する調査方法。UDPやICMPはコネクションレスであり,パケットが途中でロスする可能性がある。nmapでは複数のUDPパケットを送出するが,UDP/ICMP自体の仕様上から検査の信頼性は必ずしも高くない。

 「RPCスキャン」は上記のほかのスキャンと組み合わせて使用する。開いているポートがRPC(Remote Procedure Call)サービスかどうか,またRPCと判断された場合はサービス名は何か,バージョンはいくつか,も調査する。

 そのほかにも様々なスキャン方法が使用できる*3

GUIから使えるnmap

 nmapはコマンドラインからすべての操作を行うことができるが,専門のセキュリティ技術者以外のシステム管理者にとっては,X Window上で動作するGUIの方が使いやすいかもしれない(写真1[拡大表示])。

 GUIのフロントエンドは,画面上のパラメータやオプションを選択して[SCAN]ボタンをクリックすれば,メッセージ・ウインドウに検査結果が表示される。また,該当するコマンドラインのパラメータも合わせて表示されるので,操作に慣れるまで暫定的に使用することもできる。

 実際に検査対象をスキャンしてみると,管理者が意図しないポートが開いていることがある。原因としては,初期設定ミスにより不要なサービスを起動してしまっている場合や,システム構築時に試験のために使用したサービスが稼働したままになっている場合などが考えられる。

 意図しないで動作しているサービスは,設定内容が不適切なままになっていたり,ぜい弱性が報告されてもアップデートしないで放置してあったりして,不正アクセスの入り口として使用されてしまう危険がある。対象ホストの機能からみて明らかに不要なサービスであれば,システムの設定を変更して停止させることで無用な弱点を減らすことができる。

 また,システムの目的から必要なサービスでも,アクセス可能なユーザーやIPアドレスを制限することでリスクを減少させることができる。

勝野秀樹(かつの・ひでき)氏

インターナショナル・ネットワーク・セキュリティ株式会社
技術本部 本部長代理
ソフトウエア開発会社,システム・インテグレータなどを経て,現職。オープン系システムに関わる管理・コンサルティング経験を生かし,情報システムの安全性向上に関わる各種コンサルティング,プロジェクト管理に従事。

(次回に続く)