本文へジャンプ



第3章 VoIPとネットワーク
3.5 セキュリティー

3.5.1 概要

コンピュータネットワーク上での安全確保のための防衛策。システム攻撃者からコンピュータを守り、不正アクセスの防止や情報漏洩の阻止、システムの安定性保持を行なうこと。 外からの攻撃を防ぎ、内部からの漏洩を防ぐという事である。

 具体的には、システムの弱点の補強やアンチウイルスソフトの導入、適切なパスワード管理、機密データの暗号化など、様々な脅威からシステムを防衛する行為を指す。

 コンピュータシステム自体に講じられる対策のほかにも、利用者のパスワードの定期的な変更や無停電電源装置の導入、重要なデータの定期的なバックアップ、職位によるアクセス制限など、人的対策や木目細かな設定作業、メンテナンスなども、広義にはネットワークセキュリティに含まれるといえる。

 近年ではインターネットの普及により、外部からのシステム攻撃者、いわゆるクラッカーの脅威が取りざたされるようになったため、外部ネットワークとの境界にファイアーウォールを設置して内外のデータの流通を監視し、不要なアクセスを制限するのが一般的となっている。


3.5.2 ファイアーウォール

ファイアーウォールは、1993年後頃から使い始められたソフトウェア。 当時FWTK(TIS社)、 SOCK(NEC社)があった。 これらはフリーソフトであった。 

基本的な使い方との要求としては、「イントラネットユーザーなら誰でもインターネットにアクセスできるが、逆の方向では誰もアクセスさせない」がある。

■築方法
@ ルーター内のIPパケットのフィルタリング
A ステートフルパケットインスペクションによる手法
ファイアーウォールがIPパケットの中のアプリケーションデータまで見て、パケットを通すかどうかを判断するIPパケットフィルタリング。 判断、解析はスクリプト言語。 上記@との組み合わせが多い。
 しかし、IPパケットをすべて到着して解析するので、大きなデータは限界がある。 ステートフルとは、蓄積の事 (Firewall-1, Checkpoint社製)
B アプリケーションプロキシーをベースにした手法
使用するアプリケーションごとにゲートウェイ(プロキシ−サーバー)を作り、このゲートウェイ経由でクライアント同士が通信する。 厳密なチェックが可能。 但し、アプリケーションごとにゲートウェイが必要なので、費用(開発費用、設置費用)の面とネットワークアプリケーションとの連携で利用が難しくなっている。 ソフトの代表FWTK

C トランスポート層(TCP/UDP)のプロキシ-をベースにした手法。
アプリケーション層のプロトコルに依存せずに、トランスポート層上で、アクセス制御を行う。 SOCKSはこのタイプ。 IETFでSOCKS Version 5が標準化されている。 TCPアプリケーションもUDPアプリケーションも対応できる。 UDPアプリケーション対応はこれだけ。


■ファイアーウォールの課題
上記@〜Cを組み合わせてACLに変換してセキュリティーを得ること。ACLとは、ネットワーク利用者が持つアクセス権限や、アクセス可能なサーバーやファイルなどの資源を組み合わせて表記したリスト。 Access Control List

■ 実際のファイアーウォールの構成/設定項目
A. 信頼するIPアドレス
B. 遮断するIPアドレス
C. ICE Cap
D. 防御
E. パケットロス
F. 証拠ログ
G. バックトレース

A. [=IPアドレス]
B. [IPアドレス][開始時間][終了時間][名前][オートブロッキング]
C. ICE Capにレポートするためのアカウント情報 (URL, アカウント名、アカウントパスワード、プロキシ−URL)
D. 要求しない受信するTCP、UDPパケットに対して1部、全部通す、通さない
E. パケットDSを有効にする、しない (ファイルのプリフィックス、最大サイズ(kバイト)、最小ファイル数)
F. 侵入者のトラフィックを証拠にログファイルに記録するか否か (ファイルのプリフィックス、最大サイズ(kバイト)、最大ファイル数、最大秒数)
G. 各トレースのスレッショルドを設定 (間接トレース、DNSループ、直接トレース、Net Bios node status)

■ ファイアーウォールの設置形態

■ ファイアーウォールの設置形態

@ デュアルホームホスト

(WAN)==(Server)==(LAN)


A スクリーンドホスト

(WAN)==(Router)
    ||==(PC等)
    ||==(PC等)
    ||==(Server)

B スクリーンド・サブネットホスト

(WAN)==(Router)= ||==(Server)
         ||
         ||==(Router)
         ||==(PC等)
         ||==(PC等)
         ||==(PC等)



3.5.3 アプリケーション通信

3.5.3.1 概要
セキュリティーが施されたネットワークを通じて、アプリケーションの通信を行う際には工夫がいる。

@ ファイアーウォール設置 ⇒ IPパケットのブロック
A プライベートIPアドレスでのイントラネット ⇒ DNS検討
B NAT/NAPTの複数利用 ⇒ リターンパケットが乱れる。(これを解決して通信保証)


3.5.3.2 SOCKS

IP層で導入された技術の不整合をIP層で解決は困難。

プロキシ−技術(IP層より上)




※SOCKSは、アプリケーションに組み込まないと不可。 アプリケーション側では、SOCKSプロtコルをコーディングするかDLLをリンクする。

※ SOCKSサーバーは、多段に置ける。


■ SOCKSとIPSec、PPTP




IPSec、 PPTPは、SOCKSとは干渉しないところで動作する。


3.5.3.3 SSL
Secure Socket Layerの略
TCPのチャンネルを、クライアントとサーバーの認証、暗号鍵作成を行って確保し、以降のデータ守秘性を保証する技術。 Netscape社が開発。 HTTPに適用されるが、他のTCPアプリケーションにも実装可能。 ポートは443番でHTTPS。 UDPは不可。

 OSI参照モデルでは、セッション層とトランスポート層の境界で動作し、HTTPやFTPなどの上位のプロトコルを利用するアプリケーションソフトからは、特に意識することなく透過的に利用できる。

TSL1.0がRFC224として標準化。 (SSL3.0の改良)


3.5.4 IP電話とセキュリティー
LAN→WAN:ファイアーウォールは問題にならない。
WAN→LAN:VPN

ドメイン名とSOCKSプロトコルを使うとチャンネルを作れる。
同じプライベートIPアドレス間の通信でも、SOCKSプロキシー、SIP専用プロキシ−がその選択肢として利用可能。

VoIPのメディアストリームの送受信をRTPでおこなう。 UDPは偽称が容易であることが問題。


3.5.5 アタック一覧
@ floodアタック
ネットワークに負荷をかけることにより、相手をネットワークから切断させるアッタックのこと。

A DoSアタック
Denial of Service Attack サービス不能攻撃。 奇形パケットや負荷によって、サービス能力を低下又は停止させてしまうアタック。

B DDoSアタック
分散サービス拒否攻撃のこと。 クライアント・サーバー型のプログラムを利用して、多くのクライアントから1つのサーバーに対するDoSアタック。
原理として、予め多くのパソコンにトロイの木馬としてDoSアタックプログラムを仕込み、そのゾンビエージェントから同時にターゲットサーバーに対してDoSアタック, floodアタックをする。 DDoS用ツールとして, Tribe Flood Network, Tribe Flood Network 2000, Trinity, stechel dracht, mstreamなどがある。

C Pingアタック
Pingをたくさん送りつける。 バッチファイル

D floodアタック
3ウェイハンドシェイクの悪用。 TCP SYNパケットを高速度で送信。やられたマシンは、大量の接続処理を行おうとしてリソースを使い果たし、正当な接続を落とす。
[c:\>netstat - アドレスポート tcp/udp/ICMP]

E UDPフラッドアタック
UDP Blaster, UDP Storm, UDP Flooder, UDP666がWindows用ツール。

F Napatha DoSアタック
3ウェイハンドシェイク悪用。
TCPセッションをESTABLISHEDまたは、F/N WAIT_1の状態のままで、次々と新しいセッションを開いて、リソースを飽和させるアタック。(SYN-Floodより効率よい。)

G OOBアタック
ターゲットのNETBIOSポート(139)にOut of Band (OOB/URG)データを送りハングアップさせる攻撃。 ツールとしては、Nuke Windows用のOOBアタックツール→OOBN Nuke, DiViNE INTERVENTION IIIなど。

H Landアタック
不正なパケットによって、TCP接続を無限ループに陥らせるアタック。

I fingerアタック
コマンドfingerを悪用したDoSアタック。
$finger [ユーザーID]@@@…@@@[ターゲットサーバー]

J smurfアタック
ICMPエコーパケットをブロードキャストに送り、ルーターを増幅器として悪用し、ターゲッホストにICMPエコー応答を受信させ、トラフィックを増加させるアタック。 特徴として、ブロードキャストを受信したホストが多ければ多いほど、ルーターで増幅される。

K Octopusアタック
コネクションをターゲットサーバーに張まくり、他の人が入れないようにしたりして、サーバーをクラッシュさせるアタック。 SYN-floodのローテク版らしい。

L TearDropアタック
第1/第2フラグメントパケット・オフセット位置が「第1データの中に第2データが重なり合っている」パケットを送りつけるアタック。 パケットを受け取った側が、理解できないハングアップする。

M ポートスキャン
サーバーで開いているサービスを調べること。 セキュリティー上は問題のあるデーモンやテストスクリプトなどを調べることをセキュリティースキャンと呼ぶ。

N スタックフィンガー・プリンティング
OS特定、OS識別と言う。

O リモート・バッファー・オーバーフロー
ソフトウェアの処理能力を超えるデータを送り込み、誤動作させる。
ターゲットはC言語やC++言語の多く、Javaは少ない。 セキュリティーホールになりやすい「strcpy()」, 「strcat()」, 「sprintftrcpy()」と言う関数があるから。

※他のホストとバッファーオーバーフローでDoSアタックはルート権限奪取しようとすることを「リモート・バッファー・オーバーフロー」と呼ぶ。 自ホストにおいて、ユーザー権限からルート権限へ特権奪取しようとすることを、「ローカル・バッファー・オーバーフロー」と呼ぶ。






Opening
   Copy Rights 2006 Hishou Techno Com All rights reserved