WebDAV時代のセキュリティ対策[後編]
包括的な対策テクニック

宮本 久仁男<kmiya@coe.nttdata.co.jp>
NTTデータ COEシステム本部
システム技術開発部第三技術開発担当
2001年12月22日

Appendix

しかく今回利用したツール 〜Network Grep〜

筆者は普段linux_snifferやtcpdumpなどを使うのですが、認証時のパケットキャプチャを効率よく行うため、今回はNetwork Grep(以下ngrep)というツールを利用しました。イメージとしてはtcpdump+grepという感じのツールで、特定の文字列パターン(正規表現による記述が可能)を含むパケットのみを表示してくれるというものです()。

:tcpdumpがTCP/IP以外のプロトコルにも対応しているのに対し、ngrepはTCP/IPにしか対応していない点に注意。

しかくngrepのインストール

ngrepはlibpcapに依存するので、ngrepを利用するにはlibpcapも必要です。それぞれ以下の場所で入手できます。

必要なファイルがそろったら、libpcap→ngrepの順序でコンパイル&インストールを行います。

くろまるlibpcapのコンパイル&インストール

1.libpcapのアーカイブを展開し、作成されたディレクトリ下に移動

$ tar xvzf libpcap-0.6.2.tar.gz
$ cd libpcap-0.6.2

2../configureの実行

$ ./configure

3.コンパイル&インストール

$ make
$ su root
Password:
# make install

くろまるngrepのコンパイル&インストール

1.ngrepのアーカイブを展開し、作成されたディレクトリ下に移動

$ tar xvzf ngrep-1.40.tar.gz
$ cd ngrep

2. ./configureの実行

$ ./configure

3. コンパイル&インストール

$ make
$ su root
Password:
# make install

しかくまずは使ってみよう

/usr/bin/ngrepを以下のオプション付きで実行してみましょう。なお、実行にはroot権限が必要です。eth0は、それぞれのネットワークインターフェイス名に応じて変更してください()。

:Linuxの場合、たいていはeth0です。

# /usr/bin/ngrep -d eth0

すると、以下のような出力が得られることと思います。

# ngrep -d eth0
interface: eth0 (10.1.87.0/255.255.255.0)
##
T 10.1.87.157:23 -> 10.1.87.156:4223 [AP]
interface: eth0 (10.1.87.0/255.255.255.0)..
##
T 10.1.87.157:23 -> 10.1.87.156:4223 [AP]
##..T 10.1.87.157:23 -> 10.1.87.156:4223 [AP].. interface:
eth0 (10.1.87.0/255.255.255.0)..
..
##
T 10.1.87.157:23 -> 10.1.87.156:4223 [AP]
##..T 10.1.87.157:23 -> 10.1.87.156:4223 [AP].. ##..T
10.1.87.157:23 -> 10.1.87.156:4223 [AP].. interface:
eth0 (10.1.87.0/
255.255.255.0).. ..
..
..
exit
6 received, 0 dropped

しかく実際に文字列パターンなどを指定したキャプチャの仕方

例えば、FTPなどでログイン時のシーケンスを取得するオプションは以下のようになります。

# /usr/bin/ngrep -d eth0 -iA 2 'user|pass' tcp port 21

これにより、ユーザーID入力時やパスワード入力時から2パケットを表示するようになります。

では、上記のコマンドでどのようにキャプチャされるかを見てみましょう。まず、FTPクライアントからの操作経過を以下に示します。

C:\>ftp tripmachine
Connected to tripmachine.
220 tripmachine.ts.u.coe.nttdata.co.jp FTP server ready.
User (tripmachine:(none)): samplea
331 Password required for samplea.
Password:
230 User samplea logged in.

これをパケットキャプチャすると、以下のようになります。

# ngrep -d eth0 -iwA 2 'user|pass' tcp port 21
interface: eth0 (10.1.87.0/255.255.255.0)
filter: ip and ( tcp port 21 )
match: ((^user|pass\W)|(\Wuser|pass$)|(\Wuser|pass\W))
######
T 10.1.87.156:2769 -> 10.1.87.157:21 [AP]
USER samplea.. ←ユーザーID
#
T 10.1.87.157:21 -> 10.1.87.156:2769 [A]
#
T 10.1.87.157:21 -> 10.1.87.156:2769 [AP]
331 Password required for samplea...
##
T 10.1.87.156:2769 -> 10.1.87.157:21 [AP]
PASS passsamp.. ←パスワード
#
T 10.1.87.157:21 -> 10.1.87.156:2769 [AP]
230 User samplea logged in...

パケットキャプチャの結果を見ると、ユーザーIDとパスワードが取得されているのが分かります。

ngrepにはさまざまなコマンドラインオプションがあります。ただ、基本的にはgrepのオプションの一部(-Aや-w)、正規表現による文字列指定、tcpdumpによるプロトコルやポート、アドレス指定の方法などが使えるため、ここでは特に触れません。

3/3

Index
WebDAV時代のセキュリティ対策[後編]
包括的な対策テクニック
Page 1
レイヤの概念とセキュリティ
mod_dav固有のセキュリティ対策
包括的なメソッド制限の設定
Page 2
ベーシック認証の危険性 ダイジェスト認証の勧め
盗聴に弱いベーシック認証
Apache 1.3.22のダイジェスト認証対応化
まとめ
WebDAV日本語情報について
Page 3
Appendix
今回利用したツール 〜Network Grep〜
ngrepのインストール
まずは使ってみよう
実際に文字列パターンなどを指定したキャプチャの仕方



Linux Squareフォーラム WebDAV関連記事
特集:次世代プロトコルWebDAVの可能性[前編]
技術仕様徹底解説

将来、SambaやCVSを不要にする可能性を秘めた「WebDAV」。このプロトコルの仕様から実用化までを徹底解説。今回は、技術仕様を明らかにする
特集:次世代プロトコルWebDAVの可能性[中編]
WebDAVクライアント/サーバ環境の構築
WebDAVの実装はすでに存在する。LinuxによるWebDAVサーバの構築とクライアントの整備を行い、実際に使ってみよう
特集:次世代プロトコルWebDAVの可能性[後編]
日本語ファイル名の利用とバージョン管理
日本語ファイル名を扱えるようにするほか、WebDAVの「V」を司るバージョン管理機能を実現。WebDAV解説完結編!
特集:WebDAV時代のセキュリティ対策[前編]
WebDAVのメソッドは便利な反面、セキュリティホールとなり得る。しかし、適切な対策を講じることでメソッドの危険性は取り除くことができる
特集:WebDAV時代のセキュリティ対策[後編]
WebDAVの使用に際し、包括的な対策を行っておくのも重要である。何をどのように設定すればよいのかをここで明らかにする
特集:Apache 2.0でWebDAV
Apache 2.0の正式リリースでWebDAVも新たな段階に入った。一方で、1.3時代のmod_encodingがうまく機能しないという問題も浮上した
特集:Subversionによるバージョン管理
DeltaVがRFCとしてリリースされ、WebDAVのバージョン管理機能も足元か固まった。DeltaVの実装である「Subversion」を導入しよう

MONOist組み込み開発フォーラムの中から、Linux関連記事を紹介します


Linux & OSS フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Linux & OSS 記事ランキング

本日 月間

AltStyle によって変換されたページ (->オリジナル) /