[運用]
これだけは押さえておきたいIIS FTPサーバ・セキュリティ(後編)

3.FTPサイトのログから攻撃の痕跡を探し出す

デジタルアドバンテージ 島田 広道
2010/05/06
Page1 Page2 Page3

FTPサイトのログ・ファイルから攻撃時の記録を確認する

 ここまで説明してきた対策を施すと、FTPサイトは攻撃を防いだり回避したりした際、ログ・ファイルにその記録を残す。そのためログを解析すれば、どのような攻撃を受けたのか確認して、今後の対策に役立てたりできる。そこで、攻撃を受けた時のログ記録例を、正常な例と併せて紹介しよう。

 なお、FTPサイトのログ・ファイルは、デフォルトで%SystemRoot%\system32\LogFiles\MSFTPSVC<識別子>というフォルダに「ex<年月日>.log」という名前で保存されており、メモ帳で開いて閲覧できる。また、ログで注目すべき状態コード(ログのsc-statusフィールド)やWindowsのエラーコード(ログのsc-win32-statusフィールド)の詳細は、次のWebページを参照していただきたい。

匿名ユーザー(Anonymous)によるアクセス
 この場合、許可されていないユーザー・アカウントでアクセスしたことになり、パスワード入力時(cs-methodが「PASS」の行)、sc-statusに「530」というログオンができなかったことを表すコードが記録される。sc-win32-statusの「1326」はログオン失敗を表す

#Fields: time c-ip cs-method cs-uri-stem sc-status sc-win32-status
00:45:41 192.168.0.180 [1]USER anonymous 331 0
00:45:47 192.168.0.180 [1]PASS example@example.com 530 1326

 正常にログオンできた場合は、sc-statusに「230」(正常なログオン完了)、sc-win32-status「0」(処理成功)というコードがそれぞれ記録される。

#Fields: time c-ip cs-method cs-uri-stem sc-status sc-win32-status
00:54:02 192.168.0.180 [2]PASS - 230 0

許可されていないIPアドレスからのアクセス
 この場合、パスワード入力時(cs-methodが「PASS」の行)、sc-statusに「530」(ログオンできなかった)、sc-win32-statusに「5」(アクセス拒否)というコードがそれぞれ記録される。

#Fields: time c-ip cs-method cs-uri-stem sc-status sc-win32-status
00:59:29 192.168.0.180 [3]USER 90ab3-wls4dk2-2spk 331 0
00:59:31 192.168.0.180 [3]PASS - 530 5

 正常な場合は、次のようにログオン成功のログが記録される。

#Fields: time c-ip cs-method cs-uri-stem sc-status sc-win32-status
01:04:02 192.168.0.180 [4]PASS - 230 0

存在しない仮想ディレクトリへのアクセス
 正常にログオンしてから仮想ディレクトリへ移動しようとして失敗すると、ディレクトリ変更時(cs-methodが「CWD」の行)、sc-statusに「550」(ファイル利用不可)、sc-win32-statusに「2」(ファイルが見つからない)というコードがそれぞれ記録される。

#Fields: time c-ip cs-method cs-uri-stem sc-status sc-win32-status
01:55:31 192.168.0.180 [6]USER 90ab3-wls4dk2-2spk 331 0
01:55:32 192.168.0.180 [6]PASS - 230 0
01:56:07 192.168.0.180 [6]CWD www 550 2

 正しく仮想ディレクトリに移ることができると、sc-statusに「250」(ファイル処理正常終了)、sc-win32-statusに「0」というコードがそれぞれ記録される。

#Fields: time c-ip cs-method cs-uri-stem sc-status sc-win32-status
01:58:55 192.168.0.180 [7]CWD 0F7T4XZ-962ABYW8#AV40 250 0

許可されていないディレクトリへの書き込み
 正常にログオンした後、書き込み禁止ディレクトリにファイルを書き込もうとすると、sc-statusに「550」(ファイル利用不可)、sc-win32-statusに「5」(アクセス拒否)が記録される。

#Fields: time c-ip cs-method cs-uri-stem sc-status sc-win32-status
02:49:22 192.168.0.180 [8]USER 90ab3-wls4dk2-2spk 331 0
02:49:24 192.168.0.180 [8]PASS - 230 0
02:49:33 192.168.0.180 [8]created test.html 550 5

 正しくファイルが書き込めると、sc-statusに「226」(ファイル転送正常終了)、sc-win32-statusに「0」が記録される。

#Fields: time c-ip cs-method cs-uri-stem sc-status sc-win32-status
03:11:04 192.168.0.180 [9]created /0F7T4XZ-962/test.html 226 0
 
 
【コラム】効果はあっても敷居の高いFTPサーバ・セキュリティ対策

 本文で取り上げたセキュリティ対策以外にも、FTPサーバを守るのに効果的な対策はある。しかし、設定が難しかったりハードウェア/ソフトウェアの代替が必要だったりするなど敷居が高かったため、本文では触れなかったものもある。以下で、簡単に紹介しておこう。

FTPサーバの接続ポート番号を変更する
 FTPで使用するポートの番号は、標準でTCPの21番と決まっている(FTPクライアントがFTPサーバへ接続するときに使われる制御ポートの場合。putやgetコマンドの実行時にはさらに別のTCP接続が作成され、使われる)。それゆえ、FTPサーバへの攻撃には21番ポートが狙われる。これを、一般には知られていない番号(例えば10000以上)に変更すれば、攻撃を受ける可能性は大きく下がる。

 IISのFTPサーバにおける通信ポートの変更は可能で、IISの設定自体は難しくない。FTPサイトのプロパティの[FTP サイト]タブで、[TCP ポート]の値を別のポート番号に変更するだけだ。詳細はTIPS「FTPの標準ポート番号を変更する」を参照していただきたい。

FTPサーバの接続ポート番号を変更する
FTPサイトのプロパティを開くと、この画面が表示される。
これを選ぶ。
この値を別のポート番号に変更する。ほかのサービスと競合せず、知られていない番号(例えば10000以上)が望ましい。

 しかし、FTPクライアントからFTPサーバの間にNAT/NAPTのようなアドレス変換機能を持つルータが存在する場合、ポート番号を変えるとFTPの通信ができなくなる場合がある(こうしたルータの存在はむしろ一般的だろう)。具体的な症状としては、FTPサーバにログオンできても、ファイル名の一覧の取得やデータの送受信、ディレクトリ間の移動などで応答が途絶えてしまう。

 対策としては、FTPのパッシブ・モードを利用するか、ルータ(ファイアウォール)のFTP処理に対して、ポート番号を明示的に指示する、といったことが挙げられる。いずれにせよ、FTPサーバ以外で設定変更や機材の交換が生じる可能性があり、導入するには慎重に計画する必要があるだろう。

パスワードを暗号化するFTP
 以前からパスワードが平文でネットワーク上を流れる、という弱点が知られていたFTPには、すでにパスワードを暗号化するFTPが実用化されている。代表的なのは、HTTPSで知られるSSL技術を利用したFTP over SSL(FTPS)や、SSHで暗号化するSFTPである。これらを利用すれば、ネットワーク上でパスワードを窃取される危険性は大きく下がる。

 FTPSはIIS 7.5から標準で利用できるようになり、IIS 7.0でも、後からFTPSのモジュールを追加すれば利用できる(詳細は、連載「Windows Server 2008 R2の真価 第9回 強化されたIIS 7.5(後編)――2.拡張機能(1)―FastCGI/FTP発行サービス/WebDAV」の「FTP発行サービス7.5」を参照していただきたい)。そのため、今後Windows Serverでも利用が広がることが予想される。

 一方、IIS 6.0の場合、マイクロソフトはFTPSサーバ機能を提供しておらず、サードパーティ製のWindows Server 2003用FTPSサーバを利用せざるを得ない。この場合、従来のIISのFTPサーバをそっくり代替することになり、管理や運用の手順は大きく変わるだろう。また古いNAT/NAPT付きルータやファイアウォールは、FTPSのプロトコルを正しく制御できず、通信を止めてしまう場合もある。FTPクライアントがFTPS非対応であれば、対応するものに変更する必要もある。やはり導入するには慎重に計画する必要があるだろう。

まとめ

 IISにおけるコンテンツ更新用FTPサーバの基礎的なセキュリティとして、7種類の対策を紹介した。これらの対策をすべて施せば、FTPサーバの防御力は確実に高められるだろう。しかし、前編の冒頭で触れた多層防御という観点では、IISやFTPサーバ以外の部分でも効果的なセキュリティ対策はある。具体的には、ウイルス対策ソフトウェア(FTPサイト経由のマルウェアの仕込みを検知かつ防止)やファイアウォール(FTPサーバの手前で攻撃をブロック)、攻撃など異常発生時の通知機能(辞書攻撃などを素早く管理者に通知)などが挙げられる。こうした対策も併用しつつ、決して簡単には突破されないサーバ構築に本稿を役立てていただければ幸いだ。End of Article

 

 INDEX
  [運用]これだけは押さえておきたいIIS FTPサーバ・セキュリティ(前編)
    1.FTPサーバに対する攻撃とは?
    2.「既定の FTP サイト」は使わない
    3.接続元IPアドレスや同時接続数を制限する
   
  [運用]これだけは押さえておきたいIIS FTPサーバ・セキュリティ(後編)
    1.FTPサイトはWebサイトから分離して設置する
    2.FTPサイトへのアクセスはFTP専用アカウントのみ許す
  3.FTPサイトのログから攻撃の痕跡を探し出す

 運用


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

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間