モンキッチ教授のセキュリティ講座 

二時限目

教授  『セキュリティチェックでポート139がオープンで要注意と警告されたけどなんのこやらさっぱりわからん』 という場合もあるでしょう、そこで簡単にIPアドレスとポートについて説明します。

IPでの宛先→IPアドレス、TCPでの宛先→ポート番号
 TCP/IPについてはパチカン君が説明してるのでそっちも見てやってください、簡単にまとめると

  1. 通信するには宛先を書かなければ届かない、また差出人住所がなければ返信が来ない
  2. インターネットで使われているTCP/IPとはInternet ProtocolとTransmission Control Protocolの 二重構造になっている
  3. それぞれにIPアドレス、ポート番号という宛先が必要

 IPアドレスの設定などでIPには馴染みがあることと思います、ただ普通にWindowsを 使う上ではTCPなど意識しなくてもまったく支障はないのでTCPが何をしているのかご存知ない方も多いと 考えます。TCPはなかなかに立派な人物?でしてさまざまな仕事をさらりとこなしているのですが、セキュリティと 関係があるポートについてのみ説明します。
 IPアドレスのおかげで目的のノード(PCなどの端末やルータなどの機器)までは到達できます (ここまでがインターネット・プロトコル=IPの仕事)。そして、そこからポート番号で指定されている アプリケーションへ取り次いでもらいます。(これが伝送制御プロトコル=TCPの仕事)
 ただ単につながっているだけでは意味を成しません、コンピュータAのアプリケーションXとコンピュータBの アプリケーションYの間でデータのやり取りがあってこそ通信と言えます、したがってこのアプリケーションへの 取次ぎはとても重要ですがこれはポート番号を使うことで成立しています。

 あなたのPCのIEでアドレスに"http://210.81.153.68:80"と入力した時の動作を図解すると以下のように なります。(余談ですが:80は入力しなくてもIEが自動的に入れます、また"http://www.yahoo.co.jp/"と 入力した時はUDPでDNSサーバに問い合わせをして「www.yahoo.co.jpのIPアドレスは210.81.153.68だよ」と 教えてもらってから以下の動作に入ります)

ブラウザ部長 . HTTP課長 . TCP係長 . IP君@ヒラ
index.htmlを
取って来い
→→→
取って来い
→→→
216.239.33.101
まで連れてって
→→→

 ブラウザ部長は「210.81.153.68のWebサーバからindex.htmlを取り寄せろ」と言う指令を HTTP課長に出します。課長は部下のTCP係長にこの指令を伝えます。 (この課長はあまり働かないので意識しなくてもいいです)命令されたTCP係長は 窓を開けて(実際はOSが開けるんですが)飛び出して行きます(階段は無いんかい!) 下では部下のIP君@ヒラ社員が待っていて210.81.153.68まで運転してくれます(実際はIP君の下に イーサネット君とかPPP君とかがいますが分かり難くなるので省略)

 そして到着したのが図1のような窓がたくさんある建物です「Yahoo」という看板がありました(TCP 係長の飛び出してきたあなたのPCも同様で窓がたくさんあります)、この窓には0〜65535までの番号がついていますが ほとんどの窓が閉じています、TCP課長は車を降りて80番の窓へ飛んでいきました。幸いなことに80番の窓は開いていて どうやら営業中みたいです、中をのぞくと「Webサーバプログラム」が忙しそうに働いている様子でした。係長が 「index.htmlをくださいな」と声をかけると快く渡してくれました、TCP係長はこれを持ってIP君の運転で会社へ戻り、 そして必ず自分の飛び出してきた窓から社内に戻り窓を閉めます。(通信完了)
 あなたのPCのブラウザ(Webクライアント)とYahooのWebサーバプログラムでデータの移動が出来たわけです。 あなたのPCからYahooのコンピュータまでは『IP君』運んでくれました、そしてPC・コンピュータのなかで アプリケーション(Webクライアント、Webサーバ)に荷物(データ)を取り次いでくれたのが『TCP係長』です。

 Webサーバ・プログラムは80番を使ってました、1023番までのポートは予約されていると言うと 判りにくいですがある決まった用途にはこのポートを使うという取り決めがあります。このおかげで 80番の窓目指して飛んで行けばWebサーバ・プログラムに合えるわけです。
 一方ブラウザが一時的に通信するときなどは1024以降(本来は49151以降なのでしょうが実際は 1024から使ってるみたいです)の番号をその都度、割り当てていて決まったポート番号はありません、 そして通信の終了でポートを閉じます。(ブラウザなら1クリックで2回以上ポートを割り当てている) これに対して80番はプログラム稼動中は閉じることはありません、通信中か待ち受け状態かのいずれかです。

 セキュリティ的に気をつけなければならないのはアプリケーションが稼動していてポートが待ち受けの 状態になってる時です。具体的には上記の80番などの場合で外部からの通信を受け入れる状態なので通常の Webページリクエストに見せかけた悪意のある通信がプログラムのバグを突こうとやって来る可能性があります。
 ブラウザが一時的に使っているポートなどは使用中の状態であり他からの通信は拒否します。
 ポートが待ち受け状態になるのは各種のサーバプログラムを稼動しているとき、インスタント・メッセンジャー を起動しているとき、Windowsの共有機能を有効にしているとき、トロイの木馬がこっそり裏口をあけた時などです。 あたり前ですが、あとの二つはプログラムの機能そのものを利用できれば良い訳でバグを突く必要はありません。
*Windowsでファイル共有を有効にしていると137〜139のポートを開けることになります、これらのポートを通して マイネットワークのリストを作成したり実際にデータを送受信したりしています。
コマンドで netstat -an とすれば接続中、待ち受け中のポート番号が表示されます、 自分のPCのポートがどういう状態か調べてみましょう。



前へ Top 次へ
SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送