(57)【特許請求の範囲】
【請求項１】
通信デバイス（ＣＤ）と付属デバイス（ＡＤ）との間のユニバーサルシリアルバス、すなわちＵＳＢ攻撃防御のための方法であって、ＵＳＢリンクを通して通信デバイス（ＣＤ）と付属デバイス（ＡＤ）との間に挿入された保護デバイス（ＰＤ）において、
付属デバイス（ＡＤ）からのメッセージ（Ｍｅｓ）を受信するステップ（Ｓ６）であって、メッセージ（Ｍｅｓ）が付属デバイスの特徴のフィールドを含む、受信するステップ（Ｓ６）と、
ランダム識別子（Ｒｉｄ）を生成するステップ（Ｓ７）と、
生成されたランダム識別子に基づき登録規則を作成する通信デバイス（ＣＤ）のセキュリティエージェント（ＳＤＡ）に、生成されたランダム識別子（Ｒｉｄ）を送信するステップ（Ｓ８）と、
通信デバイス（ＣＤ）からの要求に対する付属デバイス（ＡＤ）からの応答を傍受するステップ（Ｓ１１）であって、要求が付属デバイスのシリアル番号に関連した値の取得専用とされる、傍受するステップ（Ｓ１１）と、
生成されたランダム識別子（Ｒｉｄ）を含めることによって前記応答を修正し、修正された応答（ＲｅｓＭ）に従う、修正するステップ（Ｓ１１）と、
通信デバイス（ＣＤ）のＵＳＢドライバを管理するソフトウェアモジュールに、修正された応答（ＲｅｓＭ）を送信するステップ（Ｓ１２）であって、修正された応答（ＲｅｓＭ）が、修正された応答および作成された登録規則の内容を利用して、付属デバイス（ＡＤ）の登録のためのクエリをトリガする、送信するステップ（Ｓ１２）と、を含む、
方法。
【請求項２】
保護デバイスが、１つまたはいくつかのタイプの付属デバイス専用であり、前記１つまたはいくつかのタイプの付属デバイスだけが通信デバイスと通信することを可能にする、請求項１に記載の方法。
【請求項３】
メッセージ（Ｍｅｓ）がＵＳＢデバイス記述子を含んでいる、請求項１または２に記載の方法。
【請求項４】
保護デバイスが通信デバイスに差し込まれると、通信デバイスが、いずれのＵＳＢデバイスの登録も禁止するように初期構成され、生成されたランダム識別子に基づき作成された登録規則が、前記生成されたランダム識別子に対応するＵＳＢ付属デバイスの登録を可能にする例外規則である、請求項１から３のいずれか一項に記載の方法。
【請求項５】
付属デバイス（ＡＤ）と通信デバイス（ＣＤ）との間でのメッセージの転送中、メッセージがセキュリティ規則に違反する場合、保護デバイスが通知を生成する、請求項１から４のいずれか一項に記載の方法。
【請求項６】
受信されたメッセージ（Ｍｅｓ）中のデバイスのタイプに関連したフィールドが認可されたデバイスのリストに含まれない場合、少なくとも１つのセキュリティ規則が、付属デバイスからのいずれのメッセージの交換も停止することを命令する、請求項５に記載の方法。
【請求項７】
通知が、通信デバイス（ＣＤ）を介してモニタリングサーバ（ＭＳ）に送信される、請求項５または６に記載の方法。
【請求項８】
保護デバイス（ＰＤ）が、通信デバイス（ＣＤ）を介してサーバ（ＰＳ）から取得されたシールドポリシーで、セキュリティ規則のセットを初期化する、請求項５から７のいずれか一項に記載の方法。
【請求項９】
保護デバイス（ＰＤ）および通信デバイス（ＣＤ）が、互いに相互認証することを可能にする、証明書または事前共有鍵に基づいたハンドシェイクを初期実行する、請求項１から８のいずれか一項に記載の方法。
【請求項１０】
付属デバイス（ＡＤ）が保護デバイス（ＰＤ）から外されると、作成されたポリシー規則が削除される、請求項１から９のいずれか一項に記載の方法。
【請求項１１】
付属デバイスのシリアル番号に関連した値の獲得専用の前記要求が、文字列記述子を求める要求である、請求項１から１０のいずれか一項に記載の方法。
【請求項１２】
生成されたランダム識別子（Ｒｉｄ）が、付属デバイスのシリアル番号に関連した前記値の代わりとされるか、またはそれに付加される、請求項１から１１のいずれか一項に記載の方法。
【請求項１３】
通信デバイス（ＣＤ）と付属デバイス（ＡＤ）との間のユニバーサルシリアルバス、すなわちＵＳＢ攻撃防御のための保護デバイスであって、保護デバイス（ＰＤ）が、ＵＳＢリンクを通して、通信デバイス（ＣＤ）と付属デバイス（ＡＤ）との間に挿入され、
付属デバイス（ＡＤ）からのメッセージ（Ｍｅｓ）を受信するための手段（ＳＤＰ）であって、メッセージ（Ｍｅｓ）が付属デバイスの特徴のフィールドを含む、受信するための手段（ＳＤＰ）と、
ランダム識別子（Ｒｉｄ）を生成するための手段（ＳＤＰ）と、
生成されたランダム識別子に基づきポリシー規則を作成する通信デバイス（ＣＤ）のセキュリティエージェント（ＳＤＡ）に、生成されたランダム識別子（Ｒｉｄ）を送信するための手段（ＳＤＡ）と、
通信デバイス（ＣＤ）からの要求に対する付属デバイス（ＡＤ）からの応答を傍受するための手段（ＳＤＰ）であって、要求が付属デバイスのシリアル番号と関連した値の獲得専用である、傍受するための手段（ＳＤＰ）と、
生成されたランダム識別子（Ｒｉｄ）を含めることによって前記応答を修正し、修正された応答（ＲｅｓＭ）に従うための手段（ＳＤＰ）と、
通信デバイス（ＣＤ）のＵＳＢドライバを管理するソフトウェアモジュールに、修正された応答（ＲｅｓＭ）を送信するための手段（ＳＤＰ）であって、修正された応答（ＲｅｓＭ）が、修正されたメッセージおよび作成された登録規則の内容を利用して、付属デバイス（ＡＤ）の登録のためのクエリをトリガする、送信するための手段（ＳＤＰ）と、を含む、
保護デバイス。
【請求項１４】
通信デバイス（ＣＤ）と付属デバイス（ＡＤ）との間のユニバーサルシリアルバス、すなわちＵＳＢ攻撃防御のための、保護デバイス（ＰＤ）の内部に実装されることが可能なコンピュータプログラムであって、保護デバイス（ＰＤ）が、ＵＳＢリンクを通して通信デバイス（ＣＤ）と付属デバイス（ＡＤ）との間に挿入され、前記プログラムが、前記保護デバイス内に読み込まれてそこで実行されると、請求項１から１２のいずれか一項に記載の方法を実施する命令を備える、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信デバイスに関し、より具体的には、ＵＳＢデバイスなどの付属デバイスを受け入れる、メディアプレーヤなどの通信デバイスに関する。
【背景技術】
【０００２】
コンピュータなどの現代の通信デバイスは、ユニバーサルシリアルバス（ＵＳＢ：Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）の挿入口を提供することによって、コンピュータメモリの拡張を可能にする。ＵＳＢ周辺デバイスは、ＵＳＢプラグを受け入れることができる通信デバイスが物理的および電子的仕様の挿入口を有するのと同じように、物理的および電子的仕様のプラグを通常有する。
【０００３】
ＵＳＢデバイスは、記憶デバイス（フラッシュドライブ）、コンピュータマウス、コンピュータキーボード、プリンタ、またはウェブカメラのような、異なる性質のものであり得る。
【０００４】
特に、ＵＳＢ記憶デバイスは、小型、安価、かつ携帯性が高く、現代の計算デバイスにおいて広く普及している。その携帯性のために、１つのＵＳＢ記憶デバイスがしばしば多数の異なるホスト通信デバイスに差し込まれる。例えば、消費者は、ＵＳＢ記憶デバイスに自分の個人的な音楽集を記憶させ、次いでその音楽をコンピュータ、スマートフォン、さらには自動車のステレオシステムで再生させ得る。
【０００５】
ＵＳＢ記憶デバイスはその高い携帯特性のために、コンピュータウイルスの一般的なターゲットになる。
【０００６】
最近、ＢａｄＵＳＢと呼ばれる深刻な攻撃が明らかになっている。それは、ある例においては、被害ホストを攻撃する悪意あるＵＳＢデバイス、および別の例においては、被害ＵＳＢデバイスを再プログラミングする悪意あるホストを含む。この両攻撃の組合せは、エアギャップシステム（いずれの外部ネットワークからも隔絶されたシステム）に及ぶことができる、コンピュータのマルウェアの物理的伝搬への路を開く。この種の攻撃において、カスタム製のＵＳＢデバイスが、ＵＳＢホストを攻撃するために、キーボードのエミュレーションを通して悪意ある振る舞いをすることができる。通常のＵＳＢデバイス（例えば、ＵＳＢ記憶スティック）は、悪意あるホストによってマイクロコントローラレベルで再プログラムされることができ、それにより、それが挿入される他のＵＳＢホストを攻撃することが可能な悪意あるＵＳＢデバイスを作成する。これは、ＵＳＢデバイスのコントローラレベル（ファームウェア）で行われ、アンチウイルスによってフォーマット化またはスキャンされることができるファイルシステムレベルでは行われない。
【０００７】
したがって、ＵＳＢデバイスおよびホスト通信デバイスの両方を同時に保護するためには、通信デバイスが、通信デバイスに接続されたＵＳＢデバイスの性質を制御することができるようにする、改良された技術が必要とされる。
【発明の概要】
【課題を解決するための手段】
【０００８】
本概要は、本発明の主題に関連した概念を導入するために提供される。本概要は、請求項に記載された主題の本質的特徴を特定するようには意図されず、請求項に記載された主題の範囲を決定または限定する際の使用には意図されない。
【０００９】
一実施形態によれば、通信デバイスと付属デバイスとの間のユニバーサルシリアルバス、すなわちＵＳＢ攻撃防御のための方法が提供され、この方法は、ＵＳＢリンクを通して通信デバイスと付属デバイス（ＡＤ：Ａｃｃｅｓｓｏｒｙ  Ｄｅｖｉｃｅ）との間に挿入された保護デバイスにおいて、
付属デバイスからのメッセージを受信するステップであって、メッセージが付属デバイスの特徴のフィールドを含む、受信するステップと、
ランダム識別子を生成するステップと、
生成されたランダム識別子に基づき登録規則を作成する通信デバイスのセキュリティエージェントに、生成されたランダム識別子を送信するステップと、
通信デバイスからの要求に対する付属デバイスからの応答を傍受するステップであって、要求が付属デバイスのシリアル番号に関連した値の取得専用とされる、傍受するステップと、
生成されたランダム識別子を含めることによって前記応答を修正し、修正された応答に従う、修正するステップと、
通信デバイスのＵＳＢドライバを管理するソフトウェアモジュールに、修正された応答を送信するステップであって、修正された応答が、修正された応答および作成された登録規則の内容を利用して、付属デバイスの登録のためのクエリをトリガする、送信するステップと、を含む。
【００１０】
本発明は、最近のＢａｄＵＳＢ攻撃を軽減する企業向けソリューションを提供することにおいて有利である。保護デバイスによってＵＳＢシールドが提供された、ＵＳＢ付属デバイスの使用を実行することによって、信頼性がもたらされる。この目的のために、保護デバイスは、ハードウェアレベルで付属デバイスと通信デバイスとの間のリンクをサニタイズし、これにより、両方向において攻撃を防止する。
【００１１】
保護デバイスは、それ無しではＵＳＢ付属デバイスが通信デバイスと共に動作することができないという保証を提供する。
【００１２】
ソリューションは、携帯式ＵＳＢ記憶デバイスをパーソナル化する機能も向上させ、それらを使用および共有においてより扱いやすくする。
【００１３】
実施形態において、保護デバイスは、１つまたはいくつかのタイプの付属デバイス専用であり、前記１つまたはいくつかのタイプの付属デバイスのみが、通信デバイスと通信することを可能にする。
【００１４】
実施形態において、メッセージは、ＵＳＢデバイス記述子を含んでいる。
【００１５】
実施形態において、保護デバイスが通信デバイスに差し込まれると、通信デバイスが、いずれのＵＳＢデバイスの登録も禁止するように初期構成され、生成されたランダム識別子に基づき作成された登録規則は、前記生成されたランダム識別子に対応するＵＳＢ付属デバイスの登録を可能にする例外規則である。
【００１６】
実施形態において、付属デバイスと通信デバイスとの間でのメッセージの転送中、メッセージがセキュリティ規則に違反する場合、保護デバイスは通知を生成する。
【００１７】
実施形態において、受信されたメッセージ中のデバイスのタイプに関連したフィールドが認可されたデバイスのリストに含まれない場合、少なくとも１つのセキュリティ規則は、付属デバイスからのいずれのメッセージの交換も停止することを命令する。
【００１８】
実施形態において、通知は、通信デバイスを介してモニタリングサーバに送信される。
【００１９】
実施形態において、保護デバイスは、通信デバイスを介してサーバから取得されたシールドポリシーで、セキュリティ規則のセットを初期化する。
【００２０】
実施形態において、保護デバイスおよび通信デバイスは、互いに相互認証することを可能にする、証明書または事前共有鍵に基づいたハンドシェイクを初期実行する。
【００２１】
実施形態において、付属デバイスが保護デバイスから外されると、作成されたポリシー規則は削除される。
【００２２】
実施形態において、付属デバイスのシリアル番号に関連した値の獲得専用の前記要求は、文字列記述子を求める要求である。
【００２３】
実施形態において、生成されたランダム識別子は、付属デバイスのシリアル番号に関連した前記値の代わりとされるか、またはそれに追加される。
【００２４】
ソリューションの別の利点は、攻撃を止めることによって、かつ、モニタリングシステムが最終的に、他の事象とのさらなる相互関係を把握しようとすることを可能にすることによって、上記の脅威の軽減を超えて、企業ＩＴインフラにおいてシームレスに統合し、また、企業情報システムの世界的な安全に貢献することである。
【００２５】
本発明は、通信デバイスと付属デバイスとの間のユニバーサルシリアルバス、すなわちＵＳＢ攻撃防御のための保護デバイスにも関し、保護デバイスは、ＵＳＢリンクを通して通信デバイスと付属デバイスとの間に挿入され、
付属デバイスからのメッセージを受信するための手段であって、メッセージが付属デバイスの特徴のフィールドを含む、受信するための手段と、
ランダム識別子を生成するための手段と、
生成されたランダム識別子に基づきポリシー規則を作成する通信デバイスのセキュリティエージェントに、生成されたランダム識別子を送信するための手段と、
通信デバイスからの要求に対する付属デバイスからの応答を傍受するための手段であって、要求が付属デバイスのシリアル番号と関連した値の獲得専用である、傍受するための手段と、
生成されたランダム識別子を含めることによって前記応答を修正し、修正された応答に従うための手段と、
通信デバイスのＵＳＢドライバを管理するソフトウェアモジュールに、修正された応答を送信するための手段であって、修正された応答が、修正されたメッセージおよび作成された登録規則の内容を利用して、付属デバイスの登録のためのクエリをトリガする、送信するための手段と、を含む。
【００２６】
本発明は、デバイス内部に実装されることができるコンピュータプログラムにも関し、前記プログラムは、前記デバイス内で実行されると、本発明の方法に従ってステップを実行する命令を含む。
【００２７】
本発明およびその恩恵は、添付図面に言及する、以下の説明の考察によってより良く理解されるであろう。
【図面の簡単な説明】
【００２８】
【図１】ＵＳＢ攻撃防御のための本発明の１つの実施形態による、通信システムの概略ブロック図である。
【図２】本発明の１つの実施形態による、ＵＳＢ攻撃防御のための方法のアルゴリズムである。
【発明を実施するための形態】
【００２９】
図１を参照すると、本発明による通信システムは、通信デバイスＣＤ（Ｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｄｅｖｉｃｅ）、保護デバイスＰＤ（Ｐｒｏｔｅｃｔｉｏｎ  Ｄｅｖｉｃｅ）および付属デバイスＡＤ、ならびに、通信ネットワークＴＮ（Ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｎｅｔｗｏｒｋ）を通して通信デバイスＣＤからアクセス可能な保護サーバＰＳ（Ｐｒｏｔｅｃｔｉｏｎ  Ｓｅｒｖｅｒ）およびモニタリングサーバＭＳ（Ｍｏｎｉｔｏｒｉｎｇ  Ｓｅｒｖｅｒ）を備える。
【００３０】
通信ネットワークＴＮは、有線または無線のネットワーク、あるいは、有線および無線のネットワークの組合せであり得る。
【００３１】
通信ネットワークＴＮは、パケットネットワーク、例えば、インターネットまたはイントラネットなどのＩＰ（「インターネットプロトコル」）高速ネットワーク、もしくは個別企業特有の私設ネットワークであることができる。
【００３２】
通信デバイスＣＤは、付属デバイスに格納された内容にアクセスするために、ＵＳＢリンクを介して付属デバイスＡＤと直接的に接続することができる。通信デバイスは、付属デバイスＡＤをプラグを介して受け入れるホストデバイスと呼ばれることができる。
【００３３】
通信デバイスＣＤは、例えば、パソコンまたはラップトップコンピュータ、タブレット、スマートフォン、携帯情報端末、セットトップボックス、ホームゲートウェイ、ゲーム機、またはコネクテッドテレビであることができる。より一般的には、メッセージなどのデータを付属デバイスと交換するために、ＵＳＢリンクを介して付属デバイスＡＤとの接続を確立することができる、通信モジュールを備えるいずれのタイプの電子機器にも関係する。
【００３４】
通信デバイスＣＤは、様々なＵＳＢ付属デバイスが物理的に差し込まれることができる、１つまたは複数のＵＳＢ挿入口を有する。
【００３５】
付属デバイスＡＤは、通信デバイスのＵＳＢ挿入口と物理的かつ機械的に互換性があるＵＳＢプラグを含むＵＳＢデバイスであり、ＵＳＢプラグは、物理的かつ電気的接続性を達成するために、ＵＳＢ挿入口に差し込まれることができる。
【００３６】
１つの例において、付属デバイスＡＤは、記憶デバイスとしてのサムドライブまたはハードディスクドライブである。
【００３７】
別の例において、付属デバイスＡＤは、パソコン、ラップトップコンピュータ、タブレット、またはスマートフォンである。
【００３８】
別の例において、付属デバイスＡＤは、広告板、テレビ受像機、家庭用機器、通信端末、冷蔵庫、カメラなどの接続される対象物である。接続される対象物は、接続される対象物に直接的に埋設され得るデータ処理ユニットの一部である、通信インタフェースを備える。
【００３９】
付属デバイスＡＤは、ＵＳＢプロトコルおよび付属デバイスＡＤのより高位の機能を実装するマイクロコントローラ上で実行する処理、典型的にはファームウェアを含む。
【００４０】
保護デバイスＰＤもまた、通信デバイスＣＤのＵＳＢ挿入口と物理的かつ機械的に互換性のあるＵＳＢプラグ、および付属デバイスＡＤのＵＳＢプラグと物理的かつ機械的に互換性のあるＵＳＢ挿入口を含む。したがって、保護デバイスＰＤは、通信デバイスＣＤおよび付属デバイスＡＤと物理的かつ電気的に接続されることができる。保護デバイスＰＤは、通信デバイスＣＤおよび付属デバイスＡＤに、それを通して電気的に接続されることを可能にする。
【００４１】
通信デバイスＣＤは、ＵＳＢホストスタックＵＨＳ（ＵＳＢ  Ｈｏｓｔ  Ｓｔａｃｋ）と、ホストポリシーレジストリＨＰＲ（Ｈｏｓｔ  Ｐｏｌｉｃｙ  Ｒｅｇｉｓｔｒｙ）と、ホストシールドエージェントＨＳＡ（Ｈｏｓｔ  Ｓｈｉｅｌｄ  Ａｇｅｎｔ）と、を備える。
【００４２】
ＵＳＢホストスタックＵＨＳは、オペレーティングシステムにおけるＵＳＢデバイスドライバを管理するソフトウェアモジュールである。ＵＳＢホストスタックＵＨＳは、ＵＳＢプロトコルを実装し、異なるＵＳＢデバイスのために適切なドライバをインストールし、かつ読み込む。
【００４３】
ポリシーレジストリＨＰＲは、クエリ、挿入、および削除のためのＡＰＩ（アプリケーションプログラミングインタフェース）を備える、登録規則のためのデータベースである。登録規則は、例えば、Ｗｉｎｄｏｗｓシステム用のローカルグループポリシー（ＬＧＰ）、またはＬｉｎｕｘ（登録商標）システム用のｕｄｅｖサブシステムなどの、ポリシーエンフォーサによって実施されることができる。
【００４４】
ホストシールドエージェントＨＳＡは、セキュリティエージェントとして作動し、保護デバイスＰＤとの相互認証に責任があるプロセスエージェントである。ホストシールドエージェントＨＳＡは、保護サーバＰＳからのシールドポリシーをフェッチし、かつ、モニタリングサーバＭＳへの攻撃の企ての通知に頼ることにも責任がある。ホストシールドエージェントＨＳＡは、企業の権限によって署名された証明書（または事前共有鍵）を格納し、また、保護サーバＰＳおよびモニタリングサーバＭＳのネットワークアドレスによって構成される。デフォルトで、ホストシールドエージェントＨＡＳは、それを許可する明確なポリシーがない限り、いずれのＵＳＢデバイスの登録も禁止するように構成される。
【００４５】
保護サーバＰＳは、企業の場におけるホストのセットを管理するサーバである。例えば、保護サーバＰＳは、Ｗｉｎｄｏｗｓ環境においてアクティブディレクトリ（ＡＤ）ドメインコントローラを実装する。保護サーバＰＳは、企業において使用されるシールドポリシーによって構成される。
【００４６】
モニタリングサーバＭＳは、企業の場におけるセキュリティ事象を監視かつ管理する中央サーバである。
【００４７】
保護デバイスＰＤは、シールドデバイスエージェントＳＤＡ（Ｓｈｉｅｌｄ  Ｄｅｖｉｃｅ  Ａｇｅｎｔ）およびシールドデバイスプロキシＳＤＰ（Ｓｈｉｅｌｄ  Ｄｅｖｉｃｅ  Ｐｒｏｘｙ）を備える。
【００４８】
シールドデバイスエージェントＳＤＡは、通信デバイスＣＤとの相互認証を司るプロセスエージェントである。シールドデバイスエージェントＳＤＡは、シールドポリシーの読み込み、安全な識別子の作成、および攻撃が企てられたという通知を司る。シールドデバイスエージェントＳＤＡは、証明書と関連した公開鍵と同様に、企業の権限によって署名された証明書によって読み込まれる（代替として、企業の事前共有鍵が証明書の代わりに使用される可能性がある）。
【００４９】
シールドデバイスプロキシＳＤＰは、付属デバイスＡＤの代用物の役割を果たし、通信デバイスＣＤと付属デバイス（ＡＤ）との間のメッセージに対するフィルタ処理を司る。シールドデバイスプロキシＳＤＰは、例えば、（メッセージの）一致およびアクション（ドロップ、パッチなど）を含む、セキュリティ規則を含むデータベースを実装する。
【００５０】
シールドデバイスプロキシＳＤＰは、デバイス記述子の内容を分析かつ修正することができる。デバイス記述子は、以下の記述と関連した以下のフィールドをそれぞれ含む：
フィールド：ｂＬｅｎｇｔｈ
説明：この記述子の長さをバイト数で指定する。
フィールド：ｂＤｅｓｃｒｉｐｔｏｒＴｙｐｅ
説明：記述子型を指定する。
フィールド：ｂｃｄＵＳＢ
説明：この記述子構造が準拠するＵＳＢ規格のバージョンを識別する。この値は、２進に符号化された１０進数である。
フィールド：ｂＤｅｖｉｃｅＣｌａｓｓ
説明：ＵＳＢ規格群によって割り当てられるデバイスのクラス符号を指定する。
フィールド：ｂＤｅｖｉｃｅＳｕｂＣｌａｓｓ
説明：ＵＳＢ規格群によって割り当てられるデバイスのサブクラス符号を指定する。
フィールド：ｂＤｅｖｉｃｅＰｒｏｔｏｃｏｌ
説明：ＵＳＢ規格群によって割り当てられるデバイスのプロトコル符号を指定する。
フィールド：ｂＭａｘＰａｃｋｅｔＳｉｚｅ０
説明：デバイスのエンドポイントゼロ用に、最大パケットサイズをバイト数で指定する。その値は、８、１６、３２、または６４に設定されなければならない。
フィールド：ｉｄＶｅｎｄｏｒ
説明：ＵＳＢ規格委員会によって割り当てられるデバイス用のベンダ識別子を指定する。
フィールド：ｉｄＰｒｏｄｕｃｔ
説明：製品識別子を指定する。この値は、製造者によって割り当てられ、デバイス固有である。
フィールド：ｂｃｄＤｅｖｉｃｅ
説明：デバイスのバージョンを特定する。この値は、２進に符号化された１０進数である。
フィールド：ｉＭａｎｕｆａｃｔｕｒｅｒ
説明：このデバイスの製造者の名前を含む文字列を提供する、文字列記述子のデバイス定義インデックスを指定する。
フィールド：ｉＰｒｏｄｕｃｔ
説明：デバイスの記述を含む文字列を提供する、文字列記述子のデバイス定義インデックスを指定する。
フィールド：ｉＳｅｒｉａｌＮｕｍｂｅｒ
説明：デバイス用の製造者決定シリアル番号を含む文字列を提供する、文字列記述子のデバイス定義インデックスを指定する。
フィールド：ｂＮｕｍＣｏｎｆｉｇｕｒａｔｉｏｎｓ
説明：デバイス用の可能性のある構成の総数を指定する。
【００５１】
シールドデバイスプロキシＳＤＰは、１つまたはいくつかのタイプのＵＳＢ付属デバイスのフィルタ処理専用である。例えば、シールドデバイスプロキシＳＤＰは、ＵＳＢ記憶デバイスでの動作専用であり、それ以外の他のタイプのＵＳＢ付属デバイスが通信デバイスＣＤと通信することを可能にしない。その目的のために、例えば、シールドデバイスプロキシＳＤＰは、ＵＳＢ付属デバイスから取得されたデバイス記述子で、データベース中のセキュリティ規則を調べる。特に、シールドデバイスプロキシＳＤＰは、デバイスのタイプと関連していると仮定されるフィールド「ｂＤｅｖｉｃｅＣｌａｓｓ」の値が、認可されたデバイスのリストに含まれているかどうか確認する。
【００５２】
図２を参照すると、本発明の１つの実施形態による、ＵＳＢ攻撃防御のための方法は、通信システム内で実行される、ステップＳ１からステップＳ１５を含む。
【００５３】
最初のステップＳ０１において、ユーザは、通信デバイスＣＤと共に付属デバイスＡＤを使用することを望み、通信デバイスＣＤに保護デバイスＰＤを挿入することによって開始する。
【００５４】
ステップＳ１において、保護デバイスＰＤは、通信デバイスＣＤに登録する。通信デバイスからの制御要求に対して、シールドデバイスエージェントＳＤＡは、ＵＳＢホストスタックＵＨＳにメッセージを送信し、そのメッセージは、保護デバイスＰＤ、その構成、インタフェース、および関連したエンドポイントについての情報を含む、デバイス記述子を含んでいる。
【００５５】
ＵＳＢホストスタックＵＨＳは、ホスト保護エージェントＨＰＡ（Ｈｏｓｔ  Ｐｒｏｔｅｃｔｉｏｎ  Ａｇｅｎｔ）のドライバ部を読み込む。
【００５６】
登録は、保護デバイスＰＤと通信デバイスＣＤとの間で双方向の通信リンクを確立する。
【００５７】
ステップＳ２において、シールドデバイスエージェントＳＤＡおよびホストシールドエージェントＨＳＡ（Ｈｏｓｔ  Ｓｈｉｅｌｄ  Ａｇｅｎｔ）は、それらが互いに相互認証することを可能にする、格納された証明書または格納された事前共有鍵に基づいたハンドシェイクを実行する。
【００５８】
ステップＳ３において、ホストシールドエージェントＨＳＡは、保護サーバＰＳからのシールドポリシーをフェッチし、かつ、シールドデバイスエージェントＳＤＡに取得されたシールドポリシーを送信する。
【００５９】
ステップＳ４において、シールドデバイスエージェントＳＤＡは、受信したシールドポリシーで、シールドデバイスプロキシＳＤＰを初期化する。シールドポリシーは、シールドデバイスプロキシＳＤＰのデータベースに格納される。
【００６０】
ステップＳ２からＳ４において、保護デバイスＰＤは、シールドポリシーで初期化される。
【００６１】
ステップＳ５において、付属デバイスＡＤは、保護デバイスＰＤに差し込まれる。こうして、保護デバイスＰＤは、付属デバイスＡＤと通信デバイスＣＤとの間に挿入される。
【００６２】
ステップＳ６において、付属デバイスＡＤは、保護デバイスＰＤにメッセージＭｅｓを送信し、そのメッセージは付属デバイスについての情報を含む。メッセージは、付属デバイスと関連したデバイス記述子を含んでいる。メッセージＭｅｓは、デバイス記述子を獲得するための通信デバイスからの初期要求に応じて送信される。例えば、初期要求は、タイプ「Ｇｅｔ  Ｄｅｖｉｃｅ  Ｄｅｓｃｒｉｐｔｏｒ」である。
【００６３】
より具体的には、シールドデバイスプロキシＳＤＰは、デバイス記述子を受信し、シールドデバイスエージェントＳＤＡに、ＵＳＢデバイスとしての付属デバイスの存在を通知する。
【００６４】
ステップＳ７において、シールドデバイスエージェントＳＤＡは、ランダム識別子Ｒｉｄを生成する。ランダム識別子は、一意であるのに十分に長いと想定される。ランダム識別子Ｒｉｄは、デバイス記述子におけるシリアル番号ｉＳｅｒｉａｌＮｕｍｂｅｒと関連付けられた値としての機能を果たす。デバイス記述子におけるシリアル番号ｉＳｅｒｉａｌＮｕｍｂｅｒはインデックスと関連付けられ、デバイス記述子におけるシリアル番号ｉＳｅｒｉａｌＮｕｍｂｅｒと関連付けられた前記値は、このインデックスのための特定要求を介して取得されることができる。この特定要求は、タイプ「Ｇｅｔ  Ｓｔｒｉｎｇ  Ｄｅｓｃｒｉｐｔｏｒ」であることができる。
【００６５】
ステップＳ８において、シールドデバイスエージェントＳＤＡは、生成されたランダム識別子Ｒｉｄを、通信デバイスのホストシールドエージェントＨＳＡに送信する。
【００６６】
ステップＳ９において、ホストシールドエージェントＨＳＡは、ランダム識別子Ｒｉｄに基づいた登録規則を作成し、ポリシーレジストリＨＰＲのデータベースに作成された登録規則を挿入する。ホストシールドエージェントＨＳＡは、ランダム識別子Ｒｉｄが受信されたことを意味する肯定応答を、シールドデバイスエージェントＳＤＡに送信する。
【００６７】
ステップＳ１０において、シールドデバイスエージェントＳＤＡは、作成されたランダム識別子ＲｉｄをシールドデバイスプロキシＳＤＰに送信する。
【００６８】
ステップＳ１１において、ＵＳＢホストスタックＵＨＳは、付属デバイスについてのさらなる情報を獲得するために、保護デバイスＰＤを通して付属デバイスＡＤに向けて、要求のセットを送信する。その要求は、付属デバイスの異なる記述子に専用である。
【００６９】
ＵＳＢホストスタックＵＨＳが、シリアル番号ｉＳｅｒｉａｌＮｕｍｂｅｒに関連した値を獲得することに特化した特定要求を送信する場合、付属デバイスＡＤは、シリアル番号ｉＳｅｒｉａｌＮｕｍｂｅｒに関連した値を含む特定の応答を、ＵＳＢホストスタックＵＨＳに向けて送信し、その特定の応答は、シールドデバイスプロキシＳＤＰによって傍受される。
【００７０】
シールドデバイスプロキシＳＤＰは、生成されたランダム識別子Ｒｉｄを含めることによって、シリアル番号ｉＳｅｒｉａｌＮｕｍｂｅｒに関連した値を、特定の応答において修正する。生成されたランダム識別子Ｒｉｄは、前記値の代わりとされるか、または前記値に追加される。シールドデバイスプロキシＳＤＰは、このようにして修正された応答ＲｅｓＭを生成する。
【００７１】
ステップＳ１２において、シールドデバイスプロキシＳＤＰは、ランダム識別子Ｒｉｄを含む修正された応答ＲｅｓＭを、通信デバイスのＵＳＢホストスタックＵＨＳに送信する。
【００７２】
ステップＳ１３において、ＵＳＢホストスタックＵＨＳが、付属デバイスについてのさらなる情報を獲得するために、保護デバイスＰＤを通して付属デバイスＡＤに向けて要求を送信するのを終了した場合、ＵＳＢホストスタックＵＨＳは、特に生成されたランダム識別子Ｒｉｄを用いて、付属デバイスの登録のために、ポリシーレジストリＨＰＲにクエリを行う。
【００７３】
ステップＳ１４において、ポリシーレジストリＨＰＲは、シリアル番号ｉＳｅｒｉａｌＮｕｍｂｅｒに関連付けられた値、すなわち、生成されたランダム識別子Ｒｉｄを含む修正された応答ＲｅｓＭが許可されることを、データベースに格納された作成された登録規則を用いて確認し、ＵＳＢホストスタックに登録のための認可を与える。
【００７４】
ステップＳ１５において、ＵＳＢホストスタックは、デバイス記述子および要求の組への異なる応答を用いて、付属デバイスＡＤの登録を完了し、この後者のために適切なドライバを読み込む。
【００７５】
本発明によれば、通信デバイスは、いかなるＵＳＢ付属デバイスとの通信をも禁止するように最初に構成された。最後に、ステップＳ９の終わりで、ランダム識別子Ｒｉｄに基づいた新しい登録規則が、ランダム識別子Ｒｉｄを含むデバイス記述子を提示するＵＳＢ付属デバイスの登録を許可するために、例外規則として作成された。
【００７６】
次に、シールドデバイスプロキシＳＤＰは、セキュリティ規則を含むデータベースを調べることによって、付属デバイスＡＤと通信デバイスＣＤとの間でメッセージを転送することを継続することができる。
【００７７】
付属デバイスＡＤと通信デバイスＣＤとの間のメッセージの転送中に、シールドデバイスプロキシＳＤＰが、データベース内のセキュリティ規則に遭遇した場合、すなわち、メッセージがセキュリティ規則に違反する場合には、シールドデバイスプロキシＳＤＰが通知を生成する。次に、通知が、シールドデバイスエージェントＳＤＡを介して、ホストシールドエージェントＨＳＡに送信され、その後、モニタリングサーバＭＳに転送される。例えば、最初にＵＳＢ記憶デバイスとして宣言された悪意のある付属デバイスがリセットされ、次に、キーボードとして宣言される場合、ＵＳＢ記憶デバイス専用であるシールドデバイスプロキシＳＤＰは、付属デバイスを拒絶するよう指示するセキュリティ規則に遭遇する。
【００７８】
さらに、シールドデバイスプロキシＳＤＰは、本方法の他のステップ、例えば、ステップＳ６；Ｓ１０、Ｓ１１、およびＳ１２中にも、セキュリティ規則を含むデータベースを調べ、シールドデバイスエージェントＳＤＡを介してホストシールドエージェントＨＳＡに送信され、次にモニタリングサーバＭＳに転送される通知を生成する。例えば、悪意のある付属デバイスが、ＵＳＢ記憶デバイスの物理的外見を有するが、自らをキーボードとして宣言する場合、ＵＳＢ記憶デバイス専用であるシールドデバイスプロキシＳＤＰは、Ｓ６の間に、付属デバイスを拒絶するよう指示するセキュリティ規則に遭遇する。
【００７９】
付属デバイスが、保護デバイスから引き抜かれると、ポリシーレジストリＨＰＲのデータベースに格納された、作成された登録規則が削除される。
【００８０】
さらに、保護デバイスＰＤが通信デバイスから引き抜かれる場合、ホストシールドエージェントＨＡＳが非アクティブ化される。
【００８１】
本明細書に説明された本発明は、ＵＳＢ攻撃防御用の方法およびデバイスに関する。本発明の一実装形態によれば、本発明のステップが、保護デバイスＰＤなどのデバイスに組み込まれたコンピュータプログラムの命令によって決定される。プログラムは、前記プログラムがデバイス内に読み込まれてそこで実行されると、本発明の方法のステップを行う、プログラム命令を備える。
【００８２】
結果として、本発明は、コンピュータプログラム、具体的には、本発明を実装するのに適した、情報媒体上または内のコンピュータプログラムにも適用される。このプログラムは、いかなるプログラミング言語をも使用し得、ソースコード、オブジェクトコード、または、部分的にコンパイルされたようなソースコードとオブジェクトコードとの間の中間コードの形態、または本発明の方法を実施するのに望ましいあらゆる他の形態であり得る。
【図１】
0006441510.tif 000002
【図２】
0006441510.tif 000003