ネットワークサービス設定の後、どのポートがシステムのネットワークインターフェース をリッスンしているか注意を払う必要があります。 オープンポートは侵入を意味します。
ネットワークをリッスンするポートを確認する基本方法は2つあります。 信頼性の低い方法として、 netstat -an or lsof -iなどのコマンドを入力し、ネットワークスタックをクエリーする方法があります。 プログラムがネットワークからマシーンに接続せず、システム上で実行されているかを 確認する方法のため、信頼性は低いと言えます。 そのため、アプリケーションの置換を試みる攻撃者のいいターゲットとなってしまいます。 クラッカーが不当なネットワークポートをオープンした場合、侵入経路を隠そうとします。
ネットワークをリッスンするポートを確認する信頼性の高い方法として nmapなどのポートスキャナーを使用する方法があります。
コンソールから発信される次のコマンドによって ネットワークのTCP接続をリッスンしているポートを特定することができます。:
nmap -sT -O localhost |
このコマンドの出力は次のようになります。
Starting nmap 3.55 ( http://www.insecure.org/nmap/ ) at 2004-09-24 13:49 EDT Interesting ports on localhost.localdomain (127.0.0.1): (The 1653 ports scanned but not shown below are in state: closed) PORT STATE SERVICE 22/tcp open ssh 25/tcp open smtp 111/tcp open rpcbind 113/tcp open auth 631/tcp open ipp 834/tcp open unknown 2601/tcp open zebra 32774/tcp open sometimes-rpc11 Device type: general purpose Running: Linux 2.4.X|2.5.X|2.6.X OS details: Linux 2.5.25 - 2.6.3 or Gentoo 1.2 Linux 2.4.19 rc1-rc7) Uptime 12.857 days (since Sat Sep 11 17:16:20 2004) Nmap run completed -- 1 IP address (1 host up) scanned in 5.190 seconds |
この出力を例としてみると、sunrpcが存在するため、 システムがportmapを実行している状態になっていますが、 未確認のサービスがポート834に存在しています 。このポートが既知サービスと関連があるか 調べるには次を入力して下さい。:
cat /etc/services | grep 834 |
このコマンドからの出力はありませんでした。 これはポートが指定された範囲(0から1023)にあり、オープンするのにルート接続を 必要とし、既知サービスとは関連がないことを示します。
次にnetstat又はlsofを使用し、 ポート情報を確認して下さい。 netstatでポート834を確認するには、 次のコマンドを使用して下さい。:
netstat -anp | grep 834 |
コマンドが次を出力しました。:
tcp 0 0 0.0.0.0:834 0.0.0.0:* LISTEN 653/ypbind |
侵入したシステムで内密にポートをオープンするクラッカーは、このコマンドによって発見されないようにするため、netstatのオープンポートの存在が再確認されたことになります。また、[p]オプションによって、ポートをオープンしたサービスのプロセスID (PID)が判明します。このケースでは、オープンポートはportmapサービスと併せて使用されるRPCサービスypbind (NIS)に属しています。
lsofコマンドはサービスとオープンポートをリンクする機能があるため、 同様の情報を明らかにしました。:
lsof -i | grep 834 |
このコマンドに該当する出力は次の通りです。:
ypbind 653 0 7u IPv4 1319 TCP *:834 (LISTEN) ypbind 655 0 7u IPv4 1319 TCP *:834 (LISTEN) ypbind 656 0 7u IPv4 1319 TCP *:834 (LISTEN) ypbind 657 0 7u IPv4 1319 TCP *:834 (LISTEN) |
このようなツールを使えばマシンで実行されているサービスの状態を かなり明らかにすることができます。 また、ツールはフレキシブルで、ネットワークサービスや設定に関する豊富な情報 を提供してくれます。 是非lsof、netstat、nmap、 services のman ページを参考してみて下さい。