Download TCP/IP に係る既知の 脆弱性検証ツールバージョン 4.0 の開発

Transcript
TCP/IP に係る既知の
脆弱性検証ツールバージョン 4.0 の開発
株式会社ラック
石橋 宏志、吉永 昇、磯 貴浩
概要
TCP/IP に係る既知の脆弱性が多数公表されている。これらの脆弱性の中には、
脆弱性と言えるのかどうか曖昧なものや、仕様上の問題で、対策が難しいものも
含まれている。新しい TCP/IP の実装を作り込む場合には、このような既知の脆弱性
を十分考慮する必要がある。また、新しい TCP/IP の実装に対して、これらの既知の
脆弱性が存在しないかを検証するツールが必要である。
本プロジェクトでは、TCP/IP に係る既知の脆弱性についての情報を、調査報告書
としてまとめ、それらの脆弱性の有無を検証するツールを開発した。
1.
背景
新しく世に送り出されるソフトウェアを
コンピュータ、機器に広く組み込まれて
減少させる。あるいは、TCP/IP ソフト
いる TCP/IP ソフトウェアに関し多数の
ウェアに関する脆弱性への取り組みを
脆弱性が公表されているが、このような
活性化させることが期待されている。
既に知られている脆弱性であっても、
2.
新たに開発されたソフトウェアにおいて、
目的
対策がとられていない場合がある。これら
既に知られている TCP/IP ソフトウェア
の脆弱性は、内容を理解する為に高度な
の脆弱性を調査し、詳細な情報を報告書の
技術力が必要とされるものが多いが、
形でまとめる。また、これらの脆弱性が、
日本語による詳細な情報がまとめられてい
新たに開発されたソフトウェアに存在する
ないのが現状である。
か否かを確認するツールを開発する。
また、新たに開発したソフトウェアが、
こ れ ら の 報 告 書 と ツ ー ル を 、 TCP/IP
これらの脆弱性を持っているか否かを容易
ソフトウェアに係る製品開発者に提供し、
に確認する手段がないことも問題である。
広範囲に影響のある TCP/IP ソフトウェア
TCP/IP ソフトウェアに関する脆弱性に
製品の脆弱性を低減することを、
ついて調査を行い、日本語による詳細な
本プロジェクトの目的とする。
情報をまとめ、さらに、それらの脆弱性の
有無を簡単に確認するツールを開発するこ
とによって、これらの脆弱性を含んだまま
1/8
3.
概要
利用者は、検証ツール、確認ツールを使
用して、TCP/IP に係わる脆弱性が新しく開
本プロジェクトには、調査作業と開発
作業が含まれる。
発したソフトウェアに存在するか否かを調
査し、報告書を参照して脆弱性の意味や対
調査作業においては、既に知られている
策方法を知ることができる。
TCP/IP ソフトウェアの脆弱性を、一般に公
図 1、図 2 にこのプロジェクトの成果物
表されている資料から調査し、報告書に取
り纏める。
である脆弱性検証ツールと、脆弱性報告書
の利用イメージを示す。
開発作業においては、ソフトウェア
利用者は、インストール CD から脆弱性
開発者(以降、利用者)向けの TCP/IP
検証ツール動作 PC に脆弱性検証ツールの
ソフトウェア脆弱性検証ツール、確認ツー
プログラムをインストールし、GUI を操作
ルを開発する。調査作業の中で、このツー
することによって検証対象機器に脆弱性が
ルに組み込むべき脆弱性項目を選択し、利
存在するか否かを調査する。調査結果の詳
用者が新しく開発したソフトウェアに選択
細な内容は、脆弱性報告書を参照して知る
した脆弱性項目が存在するか否かを判定す
ことができる。(図 1)
るツールである。
脆弱性検証ツール動作 PC
(Windows XP)
検証対象機器
③検証実行
④検証結果閲覧
①脆弱性検証ツール
インストール
②脆弱性選択
パラメータ設定
⑤脆弱性報告書閲覧
図 1
2/8
また、インストール CD から脆弱性確認
パケットが検証対象機器を通過した否かを
ツール動作 PC に脆弱性確認ツールのプロ
確認することにより、検証対象機器に脆弱
グラムをインストールし、GUI を操作する
性が存在するか否かを調査する。(図 2)
ことによって脆弱性検証ツールが送信した
脆弱性検証ツール動作 PC
(Windows XP)
脆弱性確認ツール動作 PC
(Windows XP)
検証対象機器
④検証実行
⑤パケット確認
⑥検証結果閲覧
①脆弱性検証ツール
インストール
②脆弱性確認ツール
インストール
③脆弱性選択
パラメータ設定
⑦脆弱性報告書閲覧
図 2
4.
調査報告書
(1) 全体像
(2) 調査対象
TCP/IP に係る既知の脆弱性について、
調査対象として、以下の 25 項目を選定し
文献、Web、弊社既存資料を用いて情報収
た(№21,22 が V4.0 の追加調査対象項目)。
集を行い、内容を検証し、考察を加えて調
表 1
査報告書にまとめた。攻撃手法、原因の説
明には豊富な図を用いた。また、発見の経
No
1
緯とトピック、対策の動き、現在の動向、
2
TCP 接続の強制切断 の問題
IPv6 環境における影響を記載した。対策方
3
SYN パ ケ ッ ト に サ ー バ 資 源 が 占 有 さ れ る 問 題
(SYN Flood Attack)
法については、実装に関する部分と、運用
4
特別な SYN パケットによりカーネルがハングアッ
プする問題 (LAND Attack)
5
データを上書きするフラグメントパケットがフィ
ル タ リ ン グ を す り 抜 け る 問 題 (Overlapping
Fragment Attack)
に関する部分に分け、実装ガイド、運用ガ
イドという項目にまとめた。
3/8
項目名
TCP の初期シーケンス番号予測 の問題
6
十分に小さい分割パケットがフィルタリングをす
り 抜 け る 問 題 (Tiny Fragment Attack, Tiny
Overlapping Fragment Attack)
7
PAWS 機能の内部タイマを不正に更新することで、
TCP 通信が強制的に切断される問題
8
Optimistic TCP acknowledgements により、サー
ビス不能状態に陥る問題
9
Out of Band(OOB)パケットにより、サービス不能
状態に陥る問題
パケット再構築時にバッファが溢れる問題(Ping of
death)
10
11
ICMP Path MTU Discovery 機能を利用した通信
遅延の問題
12
13
ICMP リダイレクトによるサービス応答遅延の問
題
ICMP リダイレクトによる送信元詐称の問題
14
ICMP 始点制御メッセージによる通信遅延の問題
15
16
17
18
19
20
21
22
23
24
25
5.
(2) 機能
z
攻撃シミュレーション機能
表 2 に示す 19 の脆弱性検証モジュール
を有する(IPv6 に関しては 5 つの脆弱性検
証モジュール)。
このモジュールは、当該脆弱性を突く攻
撃パケットを送信する機能を持つ。
脆弱性検証モジュールは、今後、追加す
ることが可能である。
表 2
No
1
IPv4
IPv6
○
―
2
○
○
ICMP Echo リ ク エス トに よる 帯域 枯渇 の問 題
(Ping flooding, Smurf Attack, Fraggle Attack)
フラグメントパケットの再構築時にシステムがク
ラッシュする問題(Teardrop Attack)
パケット再構築によりメモリ資源が枯渇される問
題(Rose Attack)
IP 経路制御オプションが検査されていない問題
3
○
―
4
○
○
IP ヘッダオプションのデータ長が 0 のパケットの
問題
IP 経路制御機能(ソース・ルーティング機能)によ
り、サービス不能状態に陥る問題
ARP テーブルが汚染される問題
5
○
◎
6
○
―
7
○
◎
8
○
―
9
○
―
10
○
―
11
○
―
12
○
◎
13
○
―
14
○
―
15
○
―
16
○
―
17
◎
―
18
○
―
ICMP ヘッダでカプセル化されたパケットがファ
イアウォールを通過する問題(ICMP トンネリング)
ICMP エラーにより TCP 接続が切断される問題
ARP テーブルが不正なエントリで埋め尽くされる
問題
通常でないパケットへの応答によって OS の種類
が特定できる問題(TCP/IP Stack Fingerprinting)
ソフトウェア
(1) システム構成
本プロジェクトで開発したソフトウェア
は、TCP/IP ソフトウェア脆弱性検証ツール、
確認ツールの 2 つである。Windows XP
Professional を搭載した IBM AT 互換機上
で動作する。それぞれのツールは、各種指
示を行うメインプログラムと、攻撃パケッ
トを送信/受信する脆弱性検証モジュール
の2つに分かれる。
4/8
項目名
TCP の初期シーケンス番号予測
の問題
SYN パケットにサーバ資源が占
有される問題 (SYN Flood Attack)
特別な SYN パケットによりカーネ
ルがハングアップする問題
(LAND Attack)
データを上書きするフラグメント
パケットがフィルタリングをすり
抜 け る 問 題 (Overlapping
Fragment Attack)
十分に小さい分割パケットがフィ
ルタリングをすり抜ける問題(Tiny
Fragment Attack, Tiny Overlapping
Fragment Attack)
Out of Band(OOB)パケットによ
り、サービス不能状態に陥る問題
パケット再構築時にバッファが溢
れる問題(Ping of death)
ICMP Path MTU Discovery 機能
を利用した通信遅延の問題
ICMP リダイレクトによるサービ
ス応答遅延の問題
ICMP リダイレクトによる送信元
詐称の問題
ICMP 始点制御メッセージによる
通信遅延の問題
ICMP ヘッダでカプセル化された
パケットがファイアウォールを通
過する問題(ICMP トンネリング)
ICMP エラーにより TCP 接続が切
断される問題
ICMP Echo リクエストによる帯
域 枯 渇 の 問 題 (Ping flooding,
Smurf Attack, Fraggle Attack)
フラグメントパケットの再構築時
にシステムがクラッシュする問題
(Teardrop Attack)
パケット再構築によりメモリ資源
が枯渇される問題(Rose Attack)
IP ヘッダオプションのデータ長が
0 のパケットの問題
ARP テーブルが汚染される問題
19
○
○:実装
―
ARP テーブルが不正なエントリで
埋め尽くされる問題
◎V4.0 で追加実装
•
検証対象機器の IP アドレス、
•
サービス監視機能の監視ポート
番号
-:未実装
z
サービス監視機能
•
仕様する NIC の選択
•
脆弱性項目の選択
[次へ]ボタンをクリックすると、選択
検証対象の機器に対して、任意の TCP
さ
ポートが接続可能かどうかを、検証中と
れた脆弱性項目のパラメータ設定画面が順
検証終了後に定期的に監視し、脆弱性に
次表示される。
対する効果の有無を調査することができる。
z
接続不能な状態が指定した回数連続して
パラメータの設定
図 4 にパラメータ設定画面を示す。
発生すると、効果が有ったと判定する。
ただし、脆弱性に対する効果の有無は、
この機能だけでは判断することはできない。
判断に対する1つの材料として活用できる。
脆弱性に対する効果の確認方法について
は、取扱説明書に詳しく明記している。
(3) ユーザインターフェイス(検証ツール)
z
脆弱性項目の選択
図 4
図 3 に、脆弱性項目の選択画面を示す。
脆弱性項目毎に、攻撃パケットに関する
パラメータとサービス監視に関するパラメ
ータを入力する。これらのパラメータの
設定方法については、取扱説明書にて詳し
く解説している。
z
脆弱性検証実行
図 5 に、脆弱性検証実行画面を示す。
図 3
以下の項目を設定する。
5/8
中止
スキップ
完了
信回数を調整して、再度検証を行っ
てください。
[一時停止]ボタンをクリック後、検証
が中止されました。
脆弱性判定結果が有り、又は、検証
エラーの場合、残りの脆弱性項目の
検証をスキップし、次の対象機器の
検証を開始します。
検証と監視が終了しました
脆弱性判定では、表 4 に示す表示が行わ
れる。
図 5
脆弱性判定は、単純なサービスポートの
監視結果を見ているに過ぎない。実際の
選択した脆弱性項目が表示される。ここ
脆弱性の有無は、検証対象機器の状態を、
で[実行]ボタンをクリックすると、検証を開
検証者が確認する必要がある。確認方法に
始する。
ついては、取扱説明書にて詳しく解説して
いる。
z
脆弱性検証確認
表 4
図 6 に、脆弱性検証確認画面を示す。
表示内容
-
無し
有り
有りの疑い
図 6
(4) ユーザインターフェイス(確認ツール)
z
検証状況と脆弱性判定が表示される。
脆弱性項目の選択
図 7 に、脆弱性項目の選択画面を示す。
検証状況では、表 3 に示す表示が行われ
る。
表 3
表示内容
-
検証中
監視中
検証エラー
説明
まだ判定されていません。あるいは、
サービス監視を行いませんでした。
あるいは、検証がエラーとなりまし
た。
サービス監視で異常はありませんで
した。
サービス監視で異常の回数がしきい
値に達しました。
サ ービス 監視で 異常が ありま した
が、回数がしきい値に達しませんで
した。
説明
まだ実行されていません。
検証を行っています。
サービスの監視を行っています。
攻撃パケットの送信処理において、
エラーが発生しました。
ネットワークの接続を確認してくだ
さい。また、送信間隔とパケット送
6/8
図 9 に、脆弱性検証実行画面を示す。
図 7
図 9
以下の項目を設定する。
•
使用する NIC の選択
•
脆弱性項目の選択
[次へ]ボタンをクリックすると、選択
選択した脆弱性項目が表示される。ここ
で[実行]ボタンをクリックすると、検証を開
始する。
さ
れた脆弱性項目のパラメータ設定画面が順
z
次表示される。
脆弱性検証確認
図 10 に、脆弱性検証確認画面を示す。
z
パラメータの設定
図 8 にパラメータ設定画面を示す。
図 10
脆弱性判定では、表 5 に示す表示が行わ
図 8
れる。
脆弱性項目毎に、攻撃パケットに関する
脆弱性判定は、検証ツールから送信され
パラメータを入力する。これらのパラメー
たパケットを受信すると検証対象機器に脆
タの設定方法については、取扱説明書にて
弱性ありと判断し”有り”と表示される。
詳しく解説している。
z
脆弱性検証実行
7/8
表 5
表示内容
-
有り
6.
説明
まだパケットの到着が確認されてい
ません
パケットの到着が確認されました
まとめ
この検証ツールは、インターネットに接
続する機器に組込むソフトウェア、特に、
TCP/IP の新しい実装に対して検証を行う
ことを目的として開発した。
検証ツールで開発した脆弱性項目は
IPv4 に関して 19 項目、IPv6 に関して 5 項
目である。この項目は追加することが可能
であり、特に IPv6 に関しては、今後の普及
状況により、計画的な追加開発が必要と考
えている。
7.
謝辞
この調査・開発には、次の方々にもご協力
いただきました。この場を借りて、御礼申
し上げます。
• 株式会社インターネットイニシアティブ
(IIJ)
• 有限責任中間法人 JPCERT コーディネ
ーションセンター(JPCERT/CC)
• 日本電気株式会社
• パナソニックコミュニケーションズ株式
会社
• 株式会社 日立製作所
• 富士通株式会社
• パナソニック株式会社
• ヤマハ株式会社
- 以上 -
8/8