特許第6441510号(P6441510)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アルカテル−ルーセントの特許一覧

<>
  • 特許6441510-USB攻撃防御 図000002
  • 特許6441510-USB攻撃防御 図000003
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6441510
(24)【登録日】2018年11月30日
(45)【発行日】2018年12月19日
(54)【発明の名称】USB攻撃防御
(51)【国際特許分類】
   H04L 9/32 20060101AFI20181210BHJP
   G09C 1/00 20060101ALI20181210BHJP
   G06F 21/44 20130101ALI20181210BHJP
【FI】
   H04L9/00 675A
   G09C1/00 640E
   G06F21/44
【請求項の数】14
【全頁数】13
(21)【出願番号】特願2017-563926(P2017-563926)
(86)(22)【出願日】2016年4月22日
(65)【公表番号】特表2018-521570(P2018-521570A)
(43)【公表日】2018年8月2日
(86)【国際出願番号】EP2016059067
(87)【国際公開番号】WO2016198201
(87)【国際公開日】20161215
【審査請求日】2018年1月22日
(31)【優先権主張番号】15305882.1
(32)【優先日】2015年6月10日
(33)【優先権主張国】EP
(73)【特許権者】
【識別番号】391030332
【氏名又は名称】アルカテル−ルーセント
(74)【代理人】
【識別番号】110001173
【氏名又は名称】特許業務法人川口國際特許事務所
(72)【発明者】
【氏名】エル・アベド,ハイテム
(72)【発明者】
【氏名】パピヨン,セルジュ
【審査官】 中里 裕正
(56)【参考文献】
【文献】 特開2012−014454(JP,A)
【文献】 特開2012−181698(JP,A)
【文献】 特開2006−243973(JP,A)
【文献】 米国特許出願公開第2015/0058912(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/32
G06F 21/44
(57)【特許請求の範囲】
【請求項1】
通信デバイス(CD)と付属デバイス(AD)との間のユニバーサルシリアルバス、すなわちUSB攻撃防御のための方法であって、USBリンクを通して通信デバイス(CD)と付属デバイス(AD)との間に挿入された保護デバイス(PD)において、
付属デバイス(AD)からのメッセージ(Mes)を受信するステップ(S6)であって、メッセージ(Mes)が付属デバイスの特徴のフィールドを含む、受信するステップ(S6)と、
ランダム識別子(Rid)を生成するステップ(S7)と、
生成されたランダム識別子に基づき登録規則を作成する通信デバイス(CD)のセキュリティエージェント(SDA)に、生成されたランダム識別子(Rid)を送信するステップ(S8)と、
通信デバイス(CD)からの要求に対する付属デバイス(AD)からの応答を傍受するステップ(S11)であって、要求が付属デバイスのシリアル番号に関連した値の取得専用とされる、傍受するステップ(S11)と、
生成されたランダム識別子(Rid)を含めることによって前記応答を修正し、修正された応答(ResM)に従う、修正するステップ(S11)と、
通信デバイス(CD)のUSBドライバを管理するソフトウェアモジュールに、修正された応答(ResM)を送信するステップ(S12)であって、修正された応答(ResM)が、修正された応答および作成された登録規則の内容を利用して、付属デバイス(AD)の登録のためのクエリをトリガする、送信するステップ(S12)と、を含む、
方法。
【請求項2】
保護デバイスが、1つまたはいくつかのタイプの付属デバイス専用であり、前記1つまたはいくつかのタイプの付属デバイスだけが通信デバイスと通信することを可能にする、請求項1に記載の方法。
【請求項3】
メッセージ(Mes)がUSBデバイス記述子を含んでいる、請求項1または2に記載の方法。
【請求項4】
保護デバイスが通信デバイスに差し込まれると、通信デバイスが、いずれのUSBデバイスの登録も禁止するように初期構成され、生成されたランダム識別子に基づき作成された登録規則が、前記生成されたランダム識別子に対応するUSB付属デバイスの登録を可能にする例外規則である、請求項1から3のいずれか一項に記載の方法。
【請求項5】
付属デバイス(AD)と通信デバイス(CD)との間でのメッセージの転送中、メッセージがセキュリティ規則に違反する場合、保護デバイスが通知を生成する、請求項1から4のいずれか一項に記載の方法。
【請求項6】
受信されたメッセージ(Mes)中のデバイスのタイプに関連したフィールドが認可されたデバイスのリストに含まれない場合、少なくとも1つのセキュリティ規則が、付属デバイスからのいずれのメッセージの交換も停止することを命令する、請求項5に記載の方法。
【請求項7】
通知が、通信デバイス(CD)を介してモニタリングサーバ(MS)に送信される、請求項5または6に記載の方法。
【請求項8】
保護デバイス(PD)が、通信デバイス(CD)を介してサーバ(PS)から取得されたシールドポリシーで、セキュリティ規則のセットを初期化する、請求項5から7のいずれか一項に記載の方法。
【請求項9】
保護デバイス(PD)および通信デバイス(CD)が、互いに相互認証することを可能にする、証明書または事前共有鍵に基づいたハンドシェイクを初期実行する、請求項1から8のいずれか一項に記載の方法。
【請求項10】
付属デバイス(AD)が保護デバイス(PD)から外されると、作成されたポリシー規則が削除される、請求項1から9のいずれか一項に記載の方法。
【請求項11】
付属デバイスのシリアル番号に関連した値の獲得専用の前記要求が、文字列記述子を求める要求である、請求項1から10のいずれか一項に記載の方法。
【請求項12】
生成されたランダム識別子(Rid)が、付属デバイスのシリアル番号に関連した前記値の代わりとされるか、またはそれに付加される、請求項1から11のいずれか一項に記載の方法。
【請求項13】
通信デバイス(CD)と付属デバイス(AD)との間のユニバーサルシリアルバス、すなわちUSB攻撃防御のための保護デバイスであって、保護デバイス(PD)が、USBリンクを通して、通信デバイス(CD)と付属デバイス(AD)との間に挿入され、
付属デバイス(AD)からのメッセージ(Mes)を受信するための手段(SDP)であって、メッセージ(Mes)が付属デバイスの特徴のフィールドを含む、受信するための手段(SDP)と、
ランダム識別子(Rid)を生成するための手段(SDP)と、
生成されたランダム識別子に基づきポリシー規則を作成する通信デバイス(CD)のセキュリティエージェント(SDA)に、生成されたランダム識別子(Rid)を送信するための手段(SDA)と、
通信デバイス(CD)からの要求に対する付属デバイス(AD)からの応答を傍受するための手段(SDP)であって、要求が付属デバイスのシリアル番号と関連した値の獲得専用である、傍受するための手段(SDP)と、
生成されたランダム識別子(Rid)を含めることによって前記応答を修正し、修正された応答(ResM)に従うための手段(SDP)と、
通信デバイス(CD)のUSBドライバを管理するソフトウェアモジュールに、修正された応答(ResM)を送信するための手段(SDP)であって、修正された応答(ResM)が、修正されたメッセージおよび作成された登録規則の内容を利用して、付属デバイス(AD)の登録のためのクエリをトリガする、送信するための手段(SDP)と、を含む、
保護デバイス。
【請求項14】
通信デバイス(CD)と付属デバイス(AD)との間のユニバーサルシリアルバス、すなわちUSB攻撃防御のための、保護デバイス(PD)の内部に実装されることが可能なコンピュータプログラムであって、保護デバイス(PD)が、USBリンクを通して通信デバイス(CD)と付属デバイス(AD)との間に挿入され、前記プログラムが、前記保護デバイス内に読み込まれてそこで実行されると、請求項1から12のいずれか一項に記載の方法を実施する命令を備える、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信デバイスに関し、より具体的には、USBデバイスなどの付属デバイスを受け入れる、メディアプレーヤなどの通信デバイスに関する。
【背景技術】
【0002】
コンピュータなどの現代の通信デバイスは、ユニバーサルシリアルバス(USB:Universal Serial Bus)の挿入口を提供することによって、コンピュータメモリの拡張を可能にする。USB周辺デバイスは、USBプラグを受け入れることができる通信デバイスが物理的および電子的仕様の挿入口を有するのと同じように、物理的および電子的仕様のプラグを通常有する。
【0003】
USBデバイスは、記憶デバイス(フラッシュドライブ)、コンピュータマウス、コンピュータキーボード、プリンタ、またはウェブカメラのような、異なる性質のものであり得る。
【0004】
特に、USB記憶デバイスは、小型、安価、かつ携帯性が高く、現代の計算デバイスにおいて広く普及している。その携帯性のために、1つのUSB記憶デバイスがしばしば多数の異なるホスト通信デバイスに差し込まれる。例えば、消費者は、USB記憶デバイスに自分の個人的な音楽集を記憶させ、次いでその音楽をコンピュータ、スマートフォン、さらには自動車のステレオシステムで再生させ得る。
【0005】
USB記憶デバイスはその高い携帯特性のために、コンピュータウイルスの一般的なターゲットになる。
【0006】
最近、BadUSBと呼ばれる深刻な攻撃が明らかになっている。それは、ある例においては、被害ホストを攻撃する悪意あるUSBデバイス、および別の例においては、被害USBデバイスを再プログラミングする悪意あるホストを含む。この両攻撃の組合せは、エアギャップシステム(いずれの外部ネットワークからも隔絶されたシステム)に及ぶことができる、コンピュータのマルウェアの物理的伝搬への路を開く。この種の攻撃において、カスタム製のUSBデバイスが、USBホストを攻撃するために、キーボードのエミュレーションを通して悪意ある振る舞いをすることができる。通常のUSBデバイス(例えば、USB記憶スティック)は、悪意あるホストによってマイクロコントローラレベルで再プログラムされることができ、それにより、それが挿入される他のUSBホストを攻撃することが可能な悪意あるUSBデバイスを作成する。これは、USBデバイスのコントローラレベル(ファームウェア)で行われ、アンチウイルスによってフォーマット化またはスキャンされることができるファイルシステムレベルでは行われない。
【0007】
したがって、USBデバイスおよびホスト通信デバイスの両方を同時に保護するためには、通信デバイスが、通信デバイスに接続されたUSBデバイスの性質を制御することができるようにする、改良された技術が必要とされる。
【発明の概要】
【課題を解決するための手段】
【0008】
本概要は、本発明の主題に関連した概念を導入するために提供される。本概要は、請求項に記載された主題の本質的特徴を特定するようには意図されず、請求項に記載された主題の範囲を決定または限定する際の使用には意図されない。
【0009】
一実施形態によれば、通信デバイスと付属デバイスとの間のユニバーサルシリアルバス、すなわちUSB攻撃防御のための方法が提供され、この方法は、USBリンクを通して通信デバイスと付属デバイス(AD:Accessory Device)との間に挿入された保護デバイスにおいて、
付属デバイスからのメッセージを受信するステップであって、メッセージが付属デバイスの特徴のフィールドを含む、受信するステップと、
ランダム識別子を生成するステップと、
生成されたランダム識別子に基づき登録規則を作成する通信デバイスのセキュリティエージェントに、生成されたランダム識別子を送信するステップと、
通信デバイスからの要求に対する付属デバイスからの応答を傍受するステップであって、要求が付属デバイスのシリアル番号に関連した値の取得専用とされる、傍受するステップと、
生成されたランダム識別子を含めることによって前記応答を修正し、修正された応答に従う、修正するステップと、
通信デバイスのUSBドライバを管理するソフトウェアモジュールに、修正された応答を送信するステップであって、修正された応答が、修正された応答および作成された登録規則の内容を利用して、付属デバイスの登録のためのクエリをトリガする、送信するステップと、を含む。
【0010】
本発明は、最近のBadUSB攻撃を軽減する企業向けソリューションを提供することにおいて有利である。保護デバイスによってUSBシールドが提供された、USB付属デバイスの使用を実行することによって、信頼性がもたらされる。この目的のために、保護デバイスは、ハードウェアレベルで付属デバイスと通信デバイスとの間のリンクをサニタイズし、これにより、両方向において攻撃を防止する。
【0011】
保護デバイスは、それ無しではUSB付属デバイスが通信デバイスと共に動作することができないという保証を提供する。
【0012】
ソリューションは、携帯式USB記憶デバイスをパーソナル化する機能も向上させ、それらを使用および共有においてより扱いやすくする。
【0013】
実施形態において、保護デバイスは、1つまたはいくつかのタイプの付属デバイス専用であり、前記1つまたはいくつかのタイプの付属デバイスのみが、通信デバイスと通信することを可能にする。
【0014】
実施形態において、メッセージは、USBデバイス記述子を含んでいる。
【0015】
実施形態において、保護デバイスが通信デバイスに差し込まれると、通信デバイスが、いずれのUSBデバイスの登録も禁止するように初期構成され、生成されたランダム識別子に基づき作成された登録規則は、前記生成されたランダム識別子に対応するUSB付属デバイスの登録を可能にする例外規則である。
【0016】
実施形態において、付属デバイスと通信デバイスとの間でのメッセージの転送中、メッセージがセキュリティ規則に違反する場合、保護デバイスは通知を生成する。
【0017】
実施形態において、受信されたメッセージ中のデバイスのタイプに関連したフィールドが認可されたデバイスのリストに含まれない場合、少なくとも1つのセキュリティ規則は、付属デバイスからのいずれのメッセージの交換も停止することを命令する。
【0018】
実施形態において、通知は、通信デバイスを介してモニタリングサーバに送信される。
【0019】
実施形態において、保護デバイスは、通信デバイスを介してサーバから取得されたシールドポリシーで、セキュリティ規則のセットを初期化する。
【0020】
実施形態において、保護デバイスおよび通信デバイスは、互いに相互認証することを可能にする、証明書または事前共有鍵に基づいたハンドシェイクを初期実行する。
【0021】
実施形態において、付属デバイスが保護デバイスから外されると、作成されたポリシー規則は削除される。
【0022】
実施形態において、付属デバイスのシリアル番号に関連した値の獲得専用の前記要求は、文字列記述子を求める要求である。
【0023】
実施形態において、生成されたランダム識別子は、付属デバイスのシリアル番号に関連した前記値の代わりとされるか、またはそれに追加される。
【0024】
ソリューションの別の利点は、攻撃を止めることによって、かつ、モニタリングシステムが最終的に、他の事象とのさらなる相互関係を把握しようとすることを可能にすることによって、上記の脅威の軽減を超えて、企業ITインフラにおいてシームレスに統合し、また、企業情報システムの世界的な安全に貢献することである。
【0025】
本発明は、通信デバイスと付属デバイスとの間のユニバーサルシリアルバス、すなわちUSB攻撃防御のための保護デバイスにも関し、保護デバイスは、USBリンクを通して通信デバイスと付属デバイスとの間に挿入され、
付属デバイスからのメッセージを受信するための手段であって、メッセージが付属デバイスの特徴のフィールドを含む、受信するための手段と、
ランダム識別子を生成するための手段と、
生成されたランダム識別子に基づきポリシー規則を作成する通信デバイスのセキュリティエージェントに、生成されたランダム識別子を送信するための手段と、
通信デバイスからの要求に対する付属デバイスからの応答を傍受するための手段であって、要求が付属デバイスのシリアル番号と関連した値の獲得専用である、傍受するための手段と、
生成されたランダム識別子を含めることによって前記応答を修正し、修正された応答に従うための手段と、
通信デバイスのUSBドライバを管理するソフトウェアモジュールに、修正された応答を送信するための手段であって、修正された応答が、修正されたメッセージおよび作成された登録規則の内容を利用して、付属デバイスの登録のためのクエリをトリガする、送信するための手段と、を含む。
【0026】
本発明は、デバイス内部に実装されることができるコンピュータプログラムにも関し、前記プログラムは、前記デバイス内で実行されると、本発明の方法に従ってステップを実行する命令を含む。
【0027】
本発明およびその恩恵は、添付図面に言及する、以下の説明の考察によってより良く理解されるであろう。
【図面の簡単な説明】
【0028】
図1】USB攻撃防御のための本発明の1つの実施形態による、通信システムの概略ブロック図である。
図2】本発明の1つの実施形態による、USB攻撃防御のための方法のアルゴリズムである。
【発明を実施するための形態】
【0029】
図1を参照すると、本発明による通信システムは、通信デバイスCD(Communication Device)、保護デバイスPD(Protection Device)および付属デバイスAD、ならびに、通信ネットワークTN(Telecommunication Network)を通して通信デバイスCDからアクセス可能な保護サーバPS(Protection Server)およびモニタリングサーバMS(Monitoring Server)を備える。
【0030】
通信ネットワークTNは、有線または無線のネットワーク、あるいは、有線および無線のネットワークの組合せであり得る。
【0031】
通信ネットワークTNは、パケットネットワーク、例えば、インターネットまたはイントラネットなどのIP(「インターネットプロトコル」)高速ネットワーク、もしくは個別企業特有の私設ネットワークであることができる。
【0032】
通信デバイスCDは、付属デバイスに格納された内容にアクセスするために、USBリンクを介して付属デバイスADと直接的に接続することができる。通信デバイスは、付属デバイスADをプラグを介して受け入れるホストデバイスと呼ばれることができる。
【0033】
通信デバイスCDは、例えば、パソコンまたはラップトップコンピュータ、タブレット、スマートフォン、携帯情報端末、セットトップボックス、ホームゲートウェイ、ゲーム機、またはコネクテッドテレビであることができる。より一般的には、メッセージなどのデータを付属デバイスと交換するために、USBリンクを介して付属デバイスADとの接続を確立することができる、通信モジュールを備えるいずれのタイプの電子機器にも関係する。
【0034】
通信デバイスCDは、様々なUSB付属デバイスが物理的に差し込まれることができる、1つまたは複数のUSB挿入口を有する。
【0035】
付属デバイスADは、通信デバイスのUSB挿入口と物理的かつ機械的に互換性があるUSBプラグを含むUSBデバイスであり、USBプラグは、物理的かつ電気的接続性を達成するために、USB挿入口に差し込まれることができる。
【0036】
1つの例において、付属デバイスADは、記憶デバイスとしてのサムドライブまたはハードディスクドライブである。
【0037】
別の例において、付属デバイスADは、パソコン、ラップトップコンピュータ、タブレット、またはスマートフォンである。
【0038】
別の例において、付属デバイスADは、広告板、テレビ受像機、家庭用機器、通信端末、冷蔵庫、カメラなどの接続される対象物である。接続される対象物は、接続される対象物に直接的に埋設され得るデータ処理ユニットの一部である、通信インタフェースを備える。
【0039】
付属デバイスADは、USBプロトコルおよび付属デバイスADのより高位の機能を実装するマイクロコントローラ上で実行する処理、典型的にはファームウェアを含む。
【0040】
保護デバイスPDもまた、通信デバイスCDのUSB挿入口と物理的かつ機械的に互換性のあるUSBプラグ、および付属デバイスADのUSBプラグと物理的かつ機械的に互換性のあるUSB挿入口を含む。したがって、保護デバイスPDは、通信デバイスCDおよび付属デバイスADと物理的かつ電気的に接続されることができる。保護デバイスPDは、通信デバイスCDおよび付属デバイスADに、それを通して電気的に接続されることを可能にする。
【0041】
通信デバイスCDは、USBホストスタックUHS(USB Host Stack)と、ホストポリシーレジストリHPR(Host Policy Registry)と、ホストシールドエージェントHSA(Host Shield Agent)と、を備える。
【0042】
USBホストスタックUHSは、オペレーティングシステムにおけるUSBデバイスドライバを管理するソフトウェアモジュールである。USBホストスタックUHSは、USBプロトコルを実装し、異なるUSBデバイスのために適切なドライバをインストールし、かつ読み込む。
【0043】
ポリシーレジストリHPRは、クエリ、挿入、および削除のためのAPI(アプリケーションプログラミングインタフェース)を備える、登録規則のためのデータベースである。登録規則は、例えば、Windowsシステム用のローカルグループポリシー(LGP)、またはLinux(登録商標)システム用のudevサブシステムなどの、ポリシーエンフォーサによって実施されることができる。
【0044】
ホストシールドエージェントHSAは、セキュリティエージェントとして作動し、保護デバイスPDとの相互認証に責任があるプロセスエージェントである。ホストシールドエージェントHSAは、保護サーバPSからのシールドポリシーをフェッチし、かつ、モニタリングサーバMSへの攻撃の企ての通知に頼ることにも責任がある。ホストシールドエージェントHSAは、企業の権限によって署名された証明書(または事前共有鍵)を格納し、また、保護サーバPSおよびモニタリングサーバMSのネットワークアドレスによって構成される。デフォルトで、ホストシールドエージェントHASは、それを許可する明確なポリシーがない限り、いずれのUSBデバイスの登録も禁止するように構成される。
【0045】
保護サーバPSは、企業の場におけるホストのセットを管理するサーバである。例えば、保護サーバPSは、Windows環境においてアクティブディレクトリ(AD)ドメインコントローラを実装する。保護サーバPSは、企業において使用されるシールドポリシーによって構成される。
【0046】
モニタリングサーバMSは、企業の場におけるセキュリティ事象を監視かつ管理する中央サーバである。
【0047】
保護デバイスPDは、シールドデバイスエージェントSDA(Shield Device Agent)およびシールドデバイスプロキシSDP(Shield Device Proxy)を備える。
【0048】
シールドデバイスエージェントSDAは、通信デバイスCDとの相互認証を司るプロセスエージェントである。シールドデバイスエージェントSDAは、シールドポリシーの読み込み、安全な識別子の作成、および攻撃が企てられたという通知を司る。シールドデバイスエージェントSDAは、証明書と関連した公開鍵と同様に、企業の権限によって署名された証明書によって読み込まれる(代替として、企業の事前共有鍵が証明書の代わりに使用される可能性がある)。
【0049】
シールドデバイスプロキシSDPは、付属デバイスADの代用物の役割を果たし、通信デバイスCDと付属デバイス(AD)との間のメッセージに対するフィルタ処理を司る。シールドデバイスプロキシSDPは、例えば、(メッセージの)一致およびアクション(ドロップ、パッチなど)を含む、セキュリティ規則を含むデータベースを実装する。
【0050】
シールドデバイスプロキシSDPは、デバイス記述子の内容を分析かつ修正することができる。デバイス記述子は、以下の記述と関連した以下のフィールドをそれぞれ含む:
フィールド:bLength
説明:この記述子の長さをバイト数で指定する。
フィールド:bDescriptorType
説明:記述子型を指定する。
フィールド:bcdUSB
説明:この記述子構造が準拠するUSB規格のバージョンを識別する。この値は、2進に符号化された10進数である。
フィールド:bDeviceClass
説明:USB規格群によって割り当てられるデバイスのクラス符号を指定する。
フィールド:bDeviceSubClass
説明:USB規格群によって割り当てられるデバイスのサブクラス符号を指定する。
フィールド:bDeviceProtocol
説明:USB規格群によって割り当てられるデバイスのプロトコル符号を指定する。
フィールド:bMaxPacketSize0
説明:デバイスのエンドポイントゼロ用に、最大パケットサイズをバイト数で指定する。その値は、8、16、32、または64に設定されなければならない。
フィールド:idVendor
説明:USB規格委員会によって割り当てられるデバイス用のベンダ識別子を指定する。
フィールド:idProduct
説明:製品識別子を指定する。この値は、製造者によって割り当てられ、デバイス固有である。
フィールド:bcdDevice
説明:デバイスのバージョンを特定する。この値は、2進に符号化された10進数である。
フィールド:iManufacturer
説明:このデバイスの製造者の名前を含む文字列を提供する、文字列記述子のデバイス定義インデックスを指定する。
フィールド:iProduct
説明:デバイスの記述を含む文字列を提供する、文字列記述子のデバイス定義インデックスを指定する。
フィールド:iSerialNumber
説明:デバイス用の製造者決定シリアル番号を含む文字列を提供する、文字列記述子のデバイス定義インデックスを指定する。
フィールド:bNumConfigurations
説明:デバイス用の可能性のある構成の総数を指定する。
【0051】
シールドデバイスプロキシSDPは、1つまたはいくつかのタイプのUSB付属デバイスのフィルタ処理専用である。例えば、シールドデバイスプロキシSDPは、USB記憶デバイスでの動作専用であり、それ以外の他のタイプのUSB付属デバイスが通信デバイスCDと通信することを可能にしない。その目的のために、例えば、シールドデバイスプロキシSDPは、USB付属デバイスから取得されたデバイス記述子で、データベース中のセキュリティ規則を調べる。特に、シールドデバイスプロキシSDPは、デバイスのタイプと関連していると仮定されるフィールド「bDeviceClass」の値が、認可されたデバイスのリストに含まれているかどうか確認する。
【0052】
図2を参照すると、本発明の1つの実施形態による、USB攻撃防御のための方法は、通信システム内で実行される、ステップS1からステップS15を含む。
【0053】
最初のステップS01において、ユーザは、通信デバイスCDと共に付属デバイスADを使用することを望み、通信デバイスCDに保護デバイスPDを挿入することによって開始する。
【0054】
ステップS1において、保護デバイスPDは、通信デバイスCDに登録する。通信デバイスからの制御要求に対して、シールドデバイスエージェントSDAは、USBホストスタックUHSにメッセージを送信し、そのメッセージは、保護デバイスPD、その構成、インタフェース、および関連したエンドポイントについての情報を含む、デバイス記述子を含んでいる。
【0055】
USBホストスタックUHSは、ホスト保護エージェントHPA(Host Protection Agent)のドライバ部を読み込む。
【0056】
登録は、保護デバイスPDと通信デバイスCDとの間で双方向の通信リンクを確立する。
【0057】
ステップS2において、シールドデバイスエージェントSDAおよびホストシールドエージェントHSA(Host Shield Agent)は、それらが互いに相互認証することを可能にする、格納された証明書または格納された事前共有鍵に基づいたハンドシェイクを実行する。
【0058】
ステップS3において、ホストシールドエージェントHSAは、保護サーバPSからのシールドポリシーをフェッチし、かつ、シールドデバイスエージェントSDAに取得されたシールドポリシーを送信する。
【0059】
ステップS4において、シールドデバイスエージェントSDAは、受信したシールドポリシーで、シールドデバイスプロキシSDPを初期化する。シールドポリシーは、シールドデバイスプロキシSDPのデータベースに格納される。
【0060】
ステップS2からS4において、保護デバイスPDは、シールドポリシーで初期化される。
【0061】
ステップS5において、付属デバイスADは、保護デバイスPDに差し込まれる。こうして、保護デバイスPDは、付属デバイスADと通信デバイスCDとの間に挿入される。
【0062】
ステップS6において、付属デバイスADは、保護デバイスPDにメッセージMesを送信し、そのメッセージは付属デバイスについての情報を含む。メッセージは、付属デバイスと関連したデバイス記述子を含んでいる。メッセージMesは、デバイス記述子を獲得するための通信デバイスからの初期要求に応じて送信される。例えば、初期要求は、タイプ「Get Device Descriptor」である。
【0063】
より具体的には、シールドデバイスプロキシSDPは、デバイス記述子を受信し、シールドデバイスエージェントSDAに、USBデバイスとしての付属デバイスの存在を通知する。
【0064】
ステップS7において、シールドデバイスエージェントSDAは、ランダム識別子Ridを生成する。ランダム識別子は、一意であるのに十分に長いと想定される。ランダム識別子Ridは、デバイス記述子におけるシリアル番号iSerialNumberと関連付けられた値としての機能を果たす。デバイス記述子におけるシリアル番号iSerialNumberはインデックスと関連付けられ、デバイス記述子におけるシリアル番号iSerialNumberと関連付けられた前記値は、このインデックスのための特定要求を介して取得されることができる。この特定要求は、タイプ「Get String Descriptor」であることができる。
【0065】
ステップS8において、シールドデバイスエージェントSDAは、生成されたランダム識別子Ridを、通信デバイスのホストシールドエージェントHSAに送信する。
【0066】
ステップS9において、ホストシールドエージェントHSAは、ランダム識別子Ridに基づいた登録規則を作成し、ポリシーレジストリHPRのデータベースに作成された登録規則を挿入する。ホストシールドエージェントHSAは、ランダム識別子Ridが受信されたことを意味する肯定応答を、シールドデバイスエージェントSDAに送信する。
【0067】
ステップS10において、シールドデバイスエージェントSDAは、作成されたランダム識別子RidをシールドデバイスプロキシSDPに送信する。
【0068】
ステップS11において、USBホストスタックUHSは、付属デバイスについてのさらなる情報を獲得するために、保護デバイスPDを通して付属デバイスADに向けて、要求のセットを送信する。その要求は、付属デバイスの異なる記述子に専用である。
【0069】
USBホストスタックUHSが、シリアル番号iSerialNumberに関連した値を獲得することに特化した特定要求を送信する場合、付属デバイスADは、シリアル番号iSerialNumberに関連した値を含む特定の応答を、USBホストスタックUHSに向けて送信し、その特定の応答は、シールドデバイスプロキシSDPによって傍受される。
【0070】
シールドデバイスプロキシSDPは、生成されたランダム識別子Ridを含めることによって、シリアル番号iSerialNumberに関連した値を、特定の応答において修正する。生成されたランダム識別子Ridは、前記値の代わりとされるか、または前記値に追加される。シールドデバイスプロキシSDPは、このようにして修正された応答ResMを生成する。
【0071】
ステップS12において、シールドデバイスプロキシSDPは、ランダム識別子Ridを含む修正された応答ResMを、通信デバイスのUSBホストスタックUHSに送信する。
【0072】
ステップS13において、USBホストスタックUHSが、付属デバイスについてのさらなる情報を獲得するために、保護デバイスPDを通して付属デバイスADに向けて要求を送信するのを終了した場合、USBホストスタックUHSは、特に生成されたランダム識別子Ridを用いて、付属デバイスの登録のために、ポリシーレジストリHPRにクエリを行う。
【0073】
ステップS14において、ポリシーレジストリHPRは、シリアル番号iSerialNumberに関連付けられた値、すなわち、生成されたランダム識別子Ridを含む修正された応答ResMが許可されることを、データベースに格納された作成された登録規則を用いて確認し、USBホストスタックに登録のための認可を与える。
【0074】
ステップS15において、USBホストスタックは、デバイス記述子および要求の組への異なる応答を用いて、付属デバイスADの登録を完了し、この後者のために適切なドライバを読み込む。
【0075】
本発明によれば、通信デバイスは、いかなるUSB付属デバイスとの通信をも禁止するように最初に構成された。最後に、ステップS9の終わりで、ランダム識別子Ridに基づいた新しい登録規則が、ランダム識別子Ridを含むデバイス記述子を提示するUSB付属デバイスの登録を許可するために、例外規則として作成された。
【0076】
次に、シールドデバイスプロキシSDPは、セキュリティ規則を含むデータベースを調べることによって、付属デバイスADと通信デバイスCDとの間でメッセージを転送することを継続することができる。
【0077】
付属デバイスADと通信デバイスCDとの間のメッセージの転送中に、シールドデバイスプロキシSDPが、データベース内のセキュリティ規則に遭遇した場合、すなわち、メッセージがセキュリティ規則に違反する場合には、シールドデバイスプロキシSDPが通知を生成する。次に、通知が、シールドデバイスエージェントSDAを介して、ホストシールドエージェントHSAに送信され、その後、モニタリングサーバMSに転送される。例えば、最初にUSB記憶デバイスとして宣言された悪意のある付属デバイスがリセットされ、次に、キーボードとして宣言される場合、USB記憶デバイス専用であるシールドデバイスプロキシSDPは、付属デバイスを拒絶するよう指示するセキュリティ規則に遭遇する。
【0078】
さらに、シールドデバイスプロキシSDPは、本方法の他のステップ、例えば、ステップS6;S10、S11、およびS12中にも、セキュリティ規則を含むデータベースを調べ、シールドデバイスエージェントSDAを介してホストシールドエージェントHSAに送信され、次にモニタリングサーバMSに転送される通知を生成する。例えば、悪意のある付属デバイスが、USB記憶デバイスの物理的外見を有するが、自らをキーボードとして宣言する場合、USB記憶デバイス専用であるシールドデバイスプロキシSDPは、S6の間に、付属デバイスを拒絶するよう指示するセキュリティ規則に遭遇する。
【0079】
付属デバイスが、保護デバイスから引き抜かれると、ポリシーレジストリHPRのデータベースに格納された、作成された登録規則が削除される。
【0080】
さらに、保護デバイスPDが通信デバイスから引き抜かれる場合、ホストシールドエージェントHASが非アクティブ化される。
【0081】
本明細書に説明された本発明は、USB攻撃防御用の方法およびデバイスに関する。本発明の一実装形態によれば、本発明のステップが、保護デバイスPDなどのデバイスに組み込まれたコンピュータプログラムの命令によって決定される。プログラムは、前記プログラムがデバイス内に読み込まれてそこで実行されると、本発明の方法のステップを行う、プログラム命令を備える。
【0082】
結果として、本発明は、コンピュータプログラム、具体的には、本発明を実装するのに適した、情報媒体上または内のコンピュータプログラムにも適用される。このプログラムは、いかなるプログラミング言語をも使用し得、ソースコード、オブジェクトコード、または、部分的にコンパイルされたようなソースコードとオブジェクトコードとの間の中間コードの形態、または本発明の方法を実施するのに望ましいあらゆる他の形態であり得る。
図1
図2