動作原理

Dr.Web ICAPDコンポーネントはICAPプロトコル(RFC 3507で説明されているInternet Content Adaptation Protocol(インターネットコンテンツアダプテーションプロトコル))を使用して、Dr.Web for UNIX Internet Gatewaysの外部にあり、LANホストからWebサーバーへのHTTP/HTTPS接続を処理するプロキシサーバーと対話します。

ICAPは軽量のHTTPライクなプロトコルです。クライアントはICAPサーバーに対して、ヘッダーと、チェックするためのカプセル化されたHTTPリクエストを含むリクエストを送信します。ICAPサーバーはレスポンスとして、修正されたHTTPリクエストと1つまたは複数のヘッダーを返します。
 
ICAPのインタラクションでは、次のタイプのリクエスト(メソッド)を使用できます。

REQMOD - リクエストの検証/修正に使用します。

RESPMOD - レスポンスの検証/修正に使用します。

OPTIONS - ICAPサーバーとの接続に関する情報の取得に使用します。

REQMODRESPMODのリクエストでは、次のヘッダーを使用できます。

X-Client-IP - HTTPリクエストを送信したクライアントの発信元IPアドレス。

X-Server-IP - クライアントによって送信されたHTTPリクエストの宛先IPアドレス。

X-Client-Username - プロキシサーバーで認証されたクライアントの名前(userまたはuser@domainとして指定)。

REQMODリクエストとRESPMODリクエストに対するレスポンスには、次のヘッダーを含めることができます。

X-Response-Info - リクエストされたWebリソースが危険または望ましくないカテゴリーに属する場合に、レスポンスに含まれます。

X-Infection-Found - ウイルスやその他の危険なオブジェクトまたは疑わしいオブジェクトに関する情報。

X-Virus-ID - 検出されたウイルスの名前。

X-Violations-Found - チェック中に発生したエラーの情報。

 

OPTIONSリクエストにはDrWeb-Get-Scan-Statusヘッダーが含まれることがあります。このヘッダーの値がYesの場合、Dr.Web Scanning Engine、Dr.Web Core Engine、およびウイルスベースのバージョンに関する情報が返されます。
 
OPTIONSリクエストに対するレスポンスには、次のヘッダーを含めることができます。
 

X-Allow-Out - Dr.Web ICAPDがレスポンスに含めることができるヘッダーフィールドのリスト。

X-Include - 前回受信したリクエストから取得したヘッダーの値。

DrWeb-Core-Engine - Dr.Web Core Engineのバージョン。

DrWeb-Scan-Engine - Dr.Web Scan Engineのバージョン。

DrWeb-Scan-Status - 現在のスキャン動作のステータス。

DrWeb-Database-Timestamp - ウイルスベースのタイムスタンプ。

DrWeb-Virus-Records - ベース内のレコード数。

 
Dr.Web ICAPDはWebコンテンツをフィルタリングし、潜在的に危険または望ましくないWebリソースへのアクセスをブロックすることがあります。ユーザーが望ましくないリソースをリクエストした場合、テンプレートに従って生成されたブロックページが返されます。このページには、ブロックの理由に関する情報が含まれています。またこのブロックページは、Dr.Web ICAPDがエラーを検出したときや、データのチェック中にエラーが発生したときにも返されます。

このコンポーネントは、URLがいずれかのカテゴリーに属しているかどうかを確認するために、Doctor Webの更新サーバーから定期的に更新されるWebリソースカテゴリーのデータベースを使用するだけでなく、Dr.Web Cloudサービスの参照も行います。Doctor Webは、以下のWebリソースカテゴリーを追跡します。

InfectionSource - 悪意のあるソフトウェアを含むWebサイト(「感染源」)。

NotRecommended - アクセスすることが推奨されない不正なWebサイト(「ソーシャルエンジニアリング」を使用しているもの)。

AdultContent - ポルノまたはエロティックなコンテンツ、出会い系サイトなどを含むWebサイト。

Violence - 暴力行為を助長するWebサイトや、さまざまな死亡事故などに関するコンテンツを含むWebサイト。

Weapons - 武器および爆発物に関するWebサイトや、それらの製造に関する情報を提供しているWebサイト。

Gambling - 勝負事、カジノ、オークションなどのオンラインゲームへのアクセスを提供するWebサイト(賭けサイトなどを含む)。

Drugs - 麻薬の使用、製造または流通などを促進するWebサイト。

ObsceneLanguage - (タイトルや記事などに)卑猥な表現を含むWebサイト。

Chats - テキストメッセージのリアルタイム送信を提供するWebサイト。

Terrorism - 攻撃的なプロパガンダ、またはテロ攻撃などに関する内容を含むWebサイト。

FreeEmail - メールの無料登録を提供するWebサイト。

SocialNetworks - さまざまなソーシャルネットワークサービス:一般、仕事、企業、興味、テーマ別出会い系サイト。

DueToCopyrightNotice - 一部の著作物(映画、音楽など)の著作権者によって定義されるWebサイト。

OnlineGames - インターネットへの常時接続を使用してゲームへのアクセスを提供するWebサイト。

Anonymizers - ユーザーが個人情報を隠し、ブロックされたWebリソースにアクセスすることを可能にするWebサイト。

CryptocurrencyMiningPool - 仮想通貨マイニングのための一般的なサービスへのアクセスを提供するWebサイト。

Jobs - 求人検索Webサイト。

システム管理者は設定で、ユーザーがアクセスすることが望ましくないWebリソースのカテゴリーを指定できます。必要なWebリソースへのアクセスをブロックするために独自のブラックリストを設定したり、ユーザーにアクセスを許可するためにホワイトリストを設定したりすることもできます。ホワイトリストに含まれているWebリソースへのアクセスは、それらが望ましくないカテゴリーに属する場合でも許可されます。ローカルブラックリストとWebリソースカテゴリーのローカルデータベースにURLに関する情報がない場合、プログラムはDr.Web Cloudサービスを参照します。これによりプログラムは、URLの悪質性に関する情報が利用できるかどうか確認できます。このような情報は、Dr.Webの他の製品からリアルタイムで受信されます。

同一のWebサイトを、複数のカテゴリーに同時に所属させることができます。このようなWebサイトへのユーザーアクセスは、そのWebサイトが属する少なくとも1つのカテゴリーが管理者によって望ましくないと設定されている場合はブロックされます。

 

Webサイトが管理者によってホワイトリストに含まれる場合でも、データ(Webサイトから送信およびダウンロードされたもの)に脅威が含まれているかどうかがスキャンされます。

 

ICAPプロトコルの特殊な側面のため、データ(.isoイメージ、大きなアーカイブ、ビデオファイルなど)の大部分をスキャンする場合は、長い時間がかかることがあります。スキャンするデータのMIMEタイプに応じて制限を設定することを推奨します。HTTPプロキシサーバーの設定では、ICAPプロトコルによるスキャンのために送信できるデータの最大サイズを制限することも推奨します(プロキシサーバーSquidのを参照)。

Dr.Web Updaterコンポーネントは、Doctor Web更新サーバーからWebリソースカテゴリーのデータベースを定期的かつ自動的に更新するために使用されます。同じコンポーネントは、Dr.Web Scanning Engineスキャンエンジン用のウイルスデータベースの更新にも使用されます。Dr.Web CloudDコンポーネントはDr.Web Cloudサービスの参照に使用されます(クラウドサービスの使用は付録共通設定で設定され、必要に応じて無効にできます)。転送されたデータをスキャンするために、Dr.Web ICAPDはDr.Web Network Checkerコンポーネントを使用します。後者では、Dr.Web Scanning Engineスキャンエンジンを介してスキャンが開始されます。

HTTPリクエストやレスポンスをブロックまたは通過させるため、Dr.Web ICAPDコンポーネントでは組み込みのルールとLuaスクリプトを使用できます。

Dr.Web ICAPDとHTTPプロキシサーバーの統合については、Squidプロキシサーバーとの統合のセクションを参照してください。