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アタックはルート権限奪取しようとすることを「リモート・バッファー・オーバーフロー」と呼ぶ。 自ホストにおいて、ユーザー権限からルート権限へ特権奪取しようとすることを、「ローカル・バッファー・オーバーフロー」と呼ぶ。
|