(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-18
(45)【発行日】2024-09-27
(54)【発明の名称】ユニバーサル・シリアルバス・デバイスのセキュリティ・スクリーニング
(51)【国際特許分類】
G06F 21/55 20130101AFI20240919BHJP
【FI】
G06F21/55
(21)【出願番号】P 2022525176
(86)(22)【出願日】2020-10-28
(86)【国際出願番号】 IB2020060093
(87)【国際公開番号】W WO2021084436
(87)【国際公開日】2021-05-06
【審査請求日】2023-05-16
(32)【優先日】2019-10-31
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】521555742
【氏名又は名称】キンドリル・インク
【氏名又は名称原語表記】Kyndryl Inc.
【住所又は居所原語表記】One Vanderbilt Avenue,15th Floor,New York,New York 10017,USA
(74)【代理人】
【識別番号】110000420
【氏名又は名称】弁理士法人MIP
(72)【発明者】
【氏名】ロドリゲス・ブラーボ、シーザー・アウグスト
(72)【発明者】
【氏名】チルドレス、ローンダ
(72)【発明者】
【氏名】トリム、クレイグ
【審査官】平井 誠
(56)【参考文献】
【文献】米国特許出願公開第2018/0324179(US,A1)
【文献】特表2014-509421(JP,A)
【文献】特開2010-182335(JP,A)
【文献】米国特許第10169567(US,B1)
【文献】米国特許出願公開第2019/0286817(US,A1)
【文献】韓国登録特許第1769714(KR,B1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/00-88
(57)【特許請求の範囲】
【請求項1】
セキュリティ動作のためのコンピュータ実装方法であって、
ユニバーサル・シリアルバス(USB)デバイス上のデジタル・オブジェクトのセットを識別して、セキュリティ・レコードを識別すること;
判断された前記セキュリティ・レコードに基づいて前記USBデバイスのセキュリティ・スコアを指定すること;
指定された前記セキュリティ・スコアに応答して、セキュリティ動作を行うことを含
み、
前記ユニバーサル・シリアルバス(USB)デバイス上のデジタル・オブジェクトのセットを識別して、セキュリティ・レコードを判断することが、
前記USBデバイスのデスクリプタのフィールドからデスクリプタのセットを識別すること、
前記デスクリプタのセットのそれぞれのデスクリプタを、個別的にセキュリティ・スコアが指定された履歴的デスクリプタのセットと比較すること、
前記USBデバイス上のリード・オンリー・メモリ(ROM)情報を読み出すこと、及び
適合性のため、前記ROM情報を分析することであって、適合しないことが、事前定義されたセキュリティ・スコアに指定されており、
セキュリティ・スコアを指定することが、それぞれのデスクリプタと前記ROM情報との比較に基づいて前記USBデバイスにセキュリティ・スコアを指定することを含み、最高の個別的なセキュリティ・スコアが、前記指定されたセキュリティ・スコアの基礎である
コンピュータ実装方法。
【請求項2】
前記セキュリティ動作
がコンピューティング・システムへのアクセスを許可することである
請求項1に記載のコンピュータ実装方法。
【請求項3】
さらに、USBポートに挿入された前記USBデバイスを検出すること
を含む
請求項1又は2に記載のコンピュータ実装方法。
【請求項4】
前記セキュリティ動作は、前記USBデバイスによる前記USBポートの使用をブロックすることである
請求項3に記載のコンピュータ実装方法。
【請求項5】
さらに、セキュリティ動作のセットに関連する前記セキュリティ動作、セキュリティ・スコアの範囲、前記セキュリティ・スコアを含むテーブルを参照することによって前記セキュリティ動作を判断することを含む
請求項1~4のいずれか1項に記載のコンピュータ実装方法。
【請求項6】
前記セキュリティ・スコアを前記USBデバイスに指定することが、前記デスクリプタのセット内のデスクリプタにマッチングするそれぞれの履歴的デスクリプタについて前記指定されたセキュリティ・スコアをアグリゲートして、前記USBデバイスについての結合されたセキュリティ・スコアを生成することを含む
請求項
5に記載のコンピュータ実装方法。
【請求項7】
さらに、前記セキュリティ動作、結合されたセキュリティ・スコアの範囲、前記結合されたセキュリティ・スコアを含むセキュリティ動作のセットに関連するテーブルを参照することにより、前記セキュリティ動作を判断することを含む
請求項
6に記載のコンピュータ実装方法。
【請求項8】
ユニバーサル・シリアルバス(USB)デバイス上のデジタル・オブジェクトのセットを識別して、セキュリティ・レコードを判断することが、
ユニバーサル・シリアルバス(USB)デバイス上のリード・オンリー・メモリ(ROM)情報を読み出すこと、
前記ROM情報内で構成ファイルの痕跡のセットを識別すること、
構成ファイルの事前規定された痕跡を含む疑わしい識別子のセットを識別すること、及び
前記痕跡のセットの痕跡が前記疑わしい識別子のセット内の事前規定された痕跡にマッチすることを判断すること
を含み、
セキュリティ・スコアを指定することは、前記事前規定された痕跡に関連するセキュリティ・スコアを識別することを含む、
請求項1~5のいずれか1項に記載のコンピュータ実装方法。
【請求項9】
ユニバーサル・シリアルバス(USB)デバイス上のデジタル・オブジェクトのセットを識別して、セキュリティ・レコードを識別することが、
ユニバーサル・シリアルバス(USB)デバイス上に格納されたデバイス・ドライバのセットを識別すること及びマイクロコントローラのデバイス・ドライバのセットを識別すること、
前記USBデバイス上の前記デバイス・ドライバのセットのデバイス・ドライバが前記マイクロコントローラのデバイス・ドライバのセットのマイクロコントローラのデバイス・ドライバにマッチすることを判断すること、
及びセキュリティ・スコアを指定することが、マッチングした前記マイクロコントローラのデバイス・ドライバに関連するセキュリティ・スコアを識別すること
を含む、請求項1~5のいずれか1項に記載のコンピュータ実装方法。
【請求項10】
セキュリティ動作のためのシステムであって、前記システムは、
プロセッサ、及び
前記プロセッサによって実行される場合に前記プロセッサをして、
ユニバーサル・シリアルバス(USB)デバイス上のデジタル・オブジェクトのセットを識別してセキュリティ・レコードを判断すること、前記判断されたセキュリティ・レコードに基づいて前記USBデバイスにセキュリティ・スコアを指定すること、
指定されたセキュリティ・スコアに応答して、セキュリティ動作を行うこと
を実行するプログラム命令を格納するコンピュータ可読な記録媒体を含み、
前記ユニバーサル・シリアルバス(USB)デバイス上のデジタル・オブジェクトのセットを識別して、セキュリティ・レコードを判断することが、
前記USBデバイスのデスクリプタのフィールドからデスクリプタのセットを識別すること、
前記デスクリプタのセットのそれぞれのデスクリプタを、個別的にセキュリティ・スコアが指定された履歴的デスクリプタのセットと比較すること、
前記USBデバイス上のリード・オンリー・メモリ(ROM)情報を読み出すこと、及び
適合性のため、前記ROM情報を分析することであって、適合しないことが、事前定義されたセキュリティ・スコアに指定されており、
セキュリティ・スコアを指定することが、それぞれのデスクリプタと前記ROM情報との比較に基づいて前記USBデバイスにセキュリティ・スコアを指定することを含み、最高の個別的なセキュリティ・スコアが、前記指定されたセキュリティ・スコアの基礎である、システム。
【請求項11】
前記セキュリティ動作は
、コンピュータ・システムへのアクセスを許可することである
請求項
10に記載のシステム。
【請求項12】
さらに、前記USBデバイスがUSBポートに挿入されたことを判断する、請求項
10又は11に記載のシステム。
【請求項13】
さらに前記セキュリティ動作は、前記USBデバイスによる前記USBポートの使用をブロックすることである
請求項
12に記載のシステム。
【請求項14】
セキュリティ動作のセットに関連する前記セキュリティ動作、結合されたセキュリティ・スコアの範囲、結合された前記セキュリティ・スコアを含むテーブルを参照することによって前記セキュリティ動作を判断することを含む
請求項
10~13のいずれか1項に記載のシステム。
【請求項15】
前記セキュリティ・スコアを前記USBデバイスに指定することが、前記デスクリプタのセット内のデスクリプタにマッチングするそれぞれの履歴的デスクリプタについて前記指定されたセキュリティ・スコアをアグリゲートして、前記USBデバイスについての結合されたセキュリティ・スコアを生成することを含む
請求項
14に記載のシステム。
【請求項16】
さらに、前記セキュリティ動作、結合されたセキュリティ・スコアの範囲、前記結合されたセキュリティ・スコアを含むセキュリティ動作のセットに関連するテーブルを参照することにより、前記セキュリティ動作を判断することを含む
請求項
15に記載のシステム。
【請求項17】
ユニバーサル・シリアルバス(USB)デバイス上のデジタル・オブジェクトのセットを識別して、セキュリティ・レコードを判断することが、
ユニバーサル・シリアルバス(USB)デバイス上のリード・オンリー・メモリ(ROM)情報を読み出すこと、
前記ROM情報内で構成ファイルの痕跡のセットを識別すること、
構成ファイルの事前規定された痕跡を含む疑わしい識別子のセットを識別すること、及び
前記痕跡のセットの痕跡が前記疑わしい識別子のセット内の事前規定された痕跡にマッチングすることを判断すること
を含み、
セキュリティ・スコアを指定することは、前記事前規定された痕跡に関連するセキュリティ・スコアを識別することを含む
請求項
10~15のいずれか1項に記載のシステム。
【請求項18】
ユニバーサル・シリアルバス(USB)デバイス上のデジタル・オブジェクトのセットを識別して、セキュリティ・レコードを識別することが、
ユニバーサル・シリアルバス(USB)デバイス上に格納されたデバイス・ドライバのセットを識別すること及びマイクロコントローラのデバイス・ドライバのセットを識別すること、
前記USBデバイス上の前記デバイス・ドライバのセットのデバイス・ドライバが前記マイクロコントローラのデバイス・ドライバのセットのマイクロコントローラのデバイス・ドライバにマッチングすることを判断すること、
及びセキュリティ・スコアを指定することが、マッチングした前記マイクロコントローラのデバイス・ドライバに関連するセキュリティ・スコアを識別すること
を含む請求項
10~15のいずれか1項に記載のシステム。
【請求項19】
セキュリティ動作のためのコンピュータ・プログラムであって、前記コンピュータ・プログラムは、処理回路によって可読であり、かつ請求項1~9に記載の方法を実行するためのプロセッサによって実行される命令としてコンピュータ可読な記録媒体に格納される、コンピュータ・プログラム。
【請求項20】
コンピュータ可読な媒体上に格納され、デジタル・コンピュータ
の内部メモリにロード可能なコンピュータ・プログラムであって、前記プログラムがコンピュータ上で動作される場合に請求項
1~9のいずれか1項に記載の方法を実行するためのソフトウェア・コード部分を含む
コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般にコンピュータ・セキュリティの分野に関し、より詳細には、キーストローク・インジェクション・ツールに対してコンピュータを安全にすることに関する。
【背景技術】
【0002】
キーストローク・インジェクション・ツールは、しばしばユニバーサル・シリアルバス(USB)ポートへのキーボード接続を模倣するために使用される。USBラバー・ダッキー(USBrubber ducky)は、一般的なフラッシュ・ドライブとして偽装された、周知のキーストローク・インジェクション・ツールである。コンピュータは、それを通常のキーボードとして認識して、自動的にその事前プログラミングされたキーストローク・ペイロードを受容する。USBラバー・ダッキーは、プラグインされるだけでコンピュータによりキーボードとして認識され、近代的なオペレーティング・システムは、デバイスから事前プログラミングされたキーストロークを受容する。
【0003】
USBプロトコルは、一定のデバイスをスタートアップ時、又はランタイムにそれらがプラグインされる場合に構成することができる。USBデバイスは、迅速な取り扱いのため種々のデバイス・クラスに分割される。それぞれのUSBクラスは、同様の機能を提供するデバイスのため、共通の挙動、又はプロトコル、又はそれらの両方を規定する。例示及び対応するクラスは、(i)ビデオ・モニタ(ディスプレイ・クラス);(ii)モデム(通信クラス);(iii)スピーカ(オーディオ・クラス);(iv)ハードドライブ(大容量ストレージ・クラス);及び(v)データ・グローブ(ヒューマン・インタフェース・デバイス(HID)クラス)を含む。USBのHIDクラスは、コンピュータ・システムの動作を制御するため、人間により使用されるデバイスを主として構成する。典型的なUSBのHIDクラス・デバイスの例は、(i)キーボード、コンピュータ・マウス、ポインティング・デバイス、トラックボール、及びジョイスティック;(ii)リモート・コントローラ、ゲーム、シミュレーション・デバイス(データ・グローブ、スロットル、ステアリング・ホイール、及びペダル);及び(iii)バーコード・リーダ、温度計、又は電圧計を含む他の入力デバイスを含む。したがって、上述の問題に対処することが本技術において必要とされている。
【発明の概要】
【0004】
第1の側面から概観すると、本発明は、セキュリティ動作のためのコンピュータ実装方法であって、ユニバーサル・シリアルバス(USB)デバイス上のデジタル・オブジェクトのセットを識別して、セキュリティ・レコードを識別すること;判断された前記セキュリティ・レコードに基づいて前記USBデバイスのセキュリティ・スコアを指定すること;指定されたセキュリティ・スコアに応答して、セキュリティ動作を行うことを含むコンピュータ実装方法が提供される。
【0005】
さらなる側面から概観すると、本発明は、セキュリティ動作のためのシステムを提供し、このシステムは、プロセッサ、及び前記プロセッサによって実行される場合に前記プロセッサをして、ユニバーサル・シリアルバス(USB)デバイス上のデジタル・オブジェクトのセットを識別してセキュリティ・レコードを判断すること、前記判断されたセキュリティ・レコードに基づいて前記USBデバイスにセキュリティ・スコアを指定することを含む方法を実行させるプログラム命令を格納するコンピュータ可読な記録媒体を含むシステムが提供される。
【0006】
さらなる側面から概観すると、本発明は、USBデバイスのデスクリプタのフィールドからデスクリプタのセットを識別すること;前記デスクリプタのセットのそれぞれのデスクリプタを、セキュリティ・スコアが個別的に指定された履歴的デスクリプタのセットと比較すること;前記USBデバイス上のリード・オンリー・メモリ(ROM)情報を読み出すこと;適合性のため、前記ROM情報を分析することであって、適合しないことが、事前定義されたセキュリティ・スコアに指定されており;セキュリティ・スコアを指定することが、それぞれのデスクリプタと前記ROM情報との比較に基づいて前記USBデバイスにセキュリティ・スコアを指定することを含み、最高の個別的なセキュリティ・スコアが、前記指定されたセキュリティ・スコアの基礎とされ、前記指定されたセキュリティ・スコアに応答して、セキュリティ動作を行うコンピュータ実装方法が提供される。
【0007】
さらなる側面から概観すると、本発明は、ユニバーサル・シリアルバス(USB)デバイス上のリード・オンリー・メモリ(ROM)情報を読み出すこと、前記ROM情報内で構成ファイルの痕跡のセットを識別すること、構成ファイルの事前規定された痕跡を含む疑わしい識別子のセットを識別すること、及び前記痕跡のセットの痕跡が前記疑わしい識別子のセット内の事前規定された痕跡にマッチすることを判断することを含み、対応する前記セキュリティ・スコアのセキュリティ動作を行うコンピュータ実装方法が提供される。
【0008】
さらなる側面から概観すると、本発明は、ユニバーサル・シリアルバス(USB)デバイス上に格納されたデバイス・ドライバのセットを識別すること;マイクロコントローラのデバイス・ドライバのセットを識別すること;前記USBデバイス上の前記デバイス・ドライバのセットのデバイス・ドライバが前記マイクロコントローラのデバイス・ドライバのセットのマイクロコントローラのデバイス・ドライバにマッチすることを判断すること;セキュリティ・スコアを指定することが、マッチングした前記マイクロコントローラのデバイス・ドライバに関連するセキュリティ・スコアを識別すること;及び対応するセキュリティ・スコアのセキュリティ動作を行うコンピュータ実装方法が提供される。
【0009】
さらなる側面から概観すると、本発明は、セキュリティ動作のためのコンピュータ・プログラム製品を提供し、前記コンピュータ・プログラム製品は、処理回路によって可読であり、かつ本発明の方法を実行するためのプロセッサによって実行されるための命令を格納するコンピュータ可読な記録媒体を含む。
【0010】
さらなる側面から概観すると、本発明は、コンピュータ可読な媒体上に格納され、デジタル・コンピュータの前記内部メモリにロード可能なコンピュータ・プログラムであって、前記プログラムがコンピュータ上で動作される場合に本発明の方法を実行するためのソフトウェア・コード部分を含む。
【0011】
本発明の1つの側面においては、コンピュータ実装方法は:(i)ユニバーサル・シリアルバス(USB)デバイス上のデスクリプタ・フィールドから、デスクリプタのセットを識別すること、(ii)前記デスクリプタのセットのそれぞれのデスクリプタを履歴的デスクリプタのセットと比較することであって前記履歴的デスクリプタのセットに個別的にセキュリティ・スコアが指定されており、(iii)前記USBデバイス上のリード・オンリー・メモリ(ROM)情報を読み出すこと;(iv)適合性のため前記ROM情報を分析することであって、適合しないことが事前定義されたセキュリティ・スコアに指定され;(v)それぞれのデスクリプタ及び前記ROM情報の分析の比較に基づいて前記USBデバイスのセキュリティ・スコアを指定することであって、最高の個別的なセキュリティ・スコアが指定されたセキュリティ・スコアの基礎とされ、;及び(vi)前記セキュリティ・スコアに応答して、セキュリティ動作を行うことを含む。
【0012】
本発明のもう1つの側面においては、コンピュータ実装方法は:(i)ユニバーサル・シリアルバス(USB)デバイス上のリード・オンリー・メモリ(ROM)情報を読み出すこと、(ii)前記ROM情報内で構成ファイルの痕跡のセットを識別すること、(iii)構成ファイルの事前規定された痕跡を含む疑わしい識別子のセットを識別すること;(iv)前記痕跡のセットが前記疑わしい識別子のセット内の事前規定された痕跡にマッチングすることを判断すること;(v)前記事前規定された痕跡に関連するセキュリティ・スコアを識別すること;及び(vi)前記セキュリティ・スコアに応答して、セキュリティ動作を行うことを含む。
本発明のさらにもう1つの側面においては、コンピュータ実装方法は、(i)ユニバーサル・シリアルバス(USB)デバイス上に格納されたデバイス・ドライバのセットを識別すること;(ii)マイクロコントローラのデバイス・ドライバのセットを識別すること;(iii)前記USBデバイス上の前記デバイス・ドライバのセットのデバイス・ドライバが前記マイクロコントローラのデバイス・ドライバのセットのマイクロコントローラのデバイス・ドライバにマッチすることを判断すること、(iv)マッチングした前記マイクロコントローラのデバイス・ドライバに関連するセキュリティ・スコアを識別すること;及び前記セキュリティ・スコアに対応したセキュリティ動作を行うことを含む。
【0013】
ここで、本発明を以下の図面に示される、実施例のみの目的による好ましい実施形態を参照しながら説明する。
【図面の簡単な説明】
【0014】
【
図1】
図1は、本発明によるシステムの第1の実施形態の概略図である。
【
図2】
図2は、少なくとも部分的に第1の実施形態により実行される方法を示すフローチャートである。
【
図3】
図3は、第1の実施形態のシステムの機械ロジック(例えばソフトウェア)の部分の概略図である。
【
図4】
図4は、本発明による第2の実施形態のフローチャートである。
【
図5】
図5は、本発明による方法の第3の実施形態のフローチャートである。
【発明を実施するための形態】
【0015】
ユニバーサル・シリアルバス(USB)デバイスは、デスクリプタ及びROM情報を含む特徴によるアクセスのために評価される。デスクリプタは、悪意があるか、又は認証済みのUSBデバイスに関連することが知られている履歴的デスクリプタへのクロス・リファレンスである。ROM情報は、データの適合性を判断するために分析される。USBデバイス上のデバイス・ドライバ及び構成ファイルは、疑わしいか、又は脅威のあるものの識別子がレビューされ、対応するセキュリティ・スコアを指定する。セキュリティ動作は、マッチングするデスクリプタ及び分析されたROM情報により指定されたセキュリティ・スコアにしたがって行われる。本発明は、システム、方法、又はコンピュータ・プログラム製品、又はこれらの組み合わせとすることができる。コンピュータ・プログラム製品は、それ上に、プロセッサをして本発明の側面を遂行させるためのコンピュータ可読なプログラム命令を有するコンピュータ可読な記録媒体(又は複数の媒体)を含むことができる。
【0016】
コンピュータ可読な記録媒体は、命令実行デバイスが使用するための複数の命令を保持し格納することができる有形のデバイスとすることができる。コンピュータ可読な媒体は、例えば、これらに限定されないが、電気的記録デバイス、磁気的記録デバイス、光学的記録デバイス、電気磁気的記録デバイス、半導体記録デバイス、又はこれらの如何なる好ましい組み合わせとすることができる。コンピュータ可読な記録媒体のより具体的な実施例のこれらに尽きないリストは、次のポータブル・コンピュータ・ディスク、ハードディスク、ランダム・アクセス・メモリ(RAM)、リード・オンリー・メモリ(ROM)、消去可能なプログラマブル・リード・オンリー・メモリ(EPROM又はフラッシュ・メモリ(登録商標))、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク・リード・イオンリー・メモリ(CD-ROM)、デジタル多目的ディスク(DVD)、メモリ・スティック、フロッピー・ディスク(登録商標)、パンチ・カード又は命令を記録した溝内に突出する構造を有する機械的にエンコードされたデバイス、及びこれらの好ましい如何なる組合せを含む。本明細書で使用するように、コンピュータ可読な記録媒体は、ラジオ波又は他の自由に伝搬する電磁波、導波路又は他の通信媒体(例えば、光ファイバ・ケーブルを通過する光パルス)といった電磁波、又はワイヤを通して通信される電気信号といったそれ自体が一時的な信号として解釈されることはない。
【0017】
本明細書において説明されるコンピュータ・プログラム命令は、コンピュータ可読な記録媒体からそれぞれのコンピューティング/プロセッシング・デバイスにダウンロードでき、又は例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、又はワイヤレス・ネットワーク及びそれからの組み合わせといったネットワークを介して外部コンピュータ又は外部記録デバイスにダウンロードすることができる。ネットワークは、銅通信ケーブル、光通信ファイバ、ワイヤレス通信、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ及びエッジ・サーバ又はこれらの組み合わせを含むことができる。それぞれのコンピューティング/プロセッシング・デバイスにおけるネットワーク・アダプタ・カード又はネットワーク・インタフェースは、ネットワークからコンピュータ可読なプログラム命令を受領し、このコンピュータ可読なプログラム命令を格納するためにそれぞれのコンピューティング/プロセッシング・デバイス内のコンピュータ可読な記録媒体内に転送する。
【0018】
本発明の操作を遂行するためのコンピュータ可読なプログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、機械語命令、マシン依存命令、マイクロ・コード、ファームウェア命令、状態設定データ、集積回路のための構成データ、又は1つ又はそれ以上の、Smalltalk(登録商標)、C++などのオブジェクト指向プログラミング言語、“C”プログラミング言語又は類似のプログラム言語といった従来の手続き型プログラミング言語を含むプログラミング言語のいかなる組合せにおいて記述されたソース・コード、又はオブジェクト・コードのいずれかとすることができる。コンピュータ可読なプログラム命令は、全体がユーザ・コンピュータ上で、部分的にユーザ・コンピュータ上でスタンドアローン・ソフトウェア・パッケージとして、部分的にユーザ・コンピュータ上で、かつ部分的にリモート・コンピュータ上で、又は全体がリモート・コンピュータ又はサーバ上で実行することができる。後者のシナリオにおいて、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)、ワイド・エリア・ネットワーク(WAN)を含むいかなるタイプのネットワークを通してユーザ・コンピュータに接続することができ、又は接続は、外部コンピュータ(例えばインターネット・サービス・プロバイダを通じて)へと行うことができる。いくつかの実施形態では、例えばプログラマブル論理回路、フィールド・プログラマブル・ゲートアレイ(FPGA)、又はプログラマブル論理アレイ(PLA)を含む電気回路がコンピュータ可読なプログラム命令を、コンピュータ可読なプログラム命令の状態情報を使用して、本発明の特徴を実行するために電気回路をパーソナライズして実行することができる。
【0019】
本明細書で説明した本発明の側面を、本発明の実施形態にしたがい、フローチャート命令及び方法のブロック図、又はそれらの両方、装置(システム)、及びコンピュータ可読な記録媒体及びコンピュータ・プログラム製品を参照して説明される。
【0020】
コンピュータ可読なプログラム命令は、汎用目的のコンピュータ、特定目的のコンピュータ、又は他のプロセッサ又は機械を生成するための他のプログラマブル・データ・プロセッシング装置に提供することができ、コンピュータのプロセッサ又は他のプログラマブル・データ・プロセッシング装置による実行がフローチャート及びブロック図のブロック又は複数のブロック又はこれらの組み合わせで特定される機能/動作を実装するための手段を生成する。コンピュータ、プログラマブル・データ・プロセッシング装置及び他の装置又はこれらの組み合わせが特定の仕方で機能するように指令するこれらのコンピュータ可読なプログラム命令は、またコンピュータ可読な記録媒体に格納することができ、その内に命令を格納したコンピュータ可読な記録媒体は、フローチャート及びブロック図のブロック又は複数のブロック又はこれらの組み合わせで特定される機能/動作の特徴を実装する命令を含む製造品を構成する。
【0021】
コンピュータ可読なプログラム命令は、またコンピュータ、他のプログラマブル・データ・プロセッシング装置、又は他のデバイス上にロードされ、コンピュータ、他のプログラマブル装置、又は他のデバイス上で操作ステップのシリーズに対してコンピュータ実装プロセスを生じさせることで、コンピュータ、他のプログラマブル装置又は他のデバイス上でフローチャート及びブロック図のブロック又は複数のブロック又はこれらの組み合わせで特定される機能/動作を実装させる。
【0022】
図のフローチャート及びブロック図は、本発明の種々の実施形態にしたがったシステム、方法及びコンピュータ・プログラムのアーキテクチャ、機能、及び可能な実装動作を示す。この観点において、フローチャート又はブロック図は、モジュール、セグメント又は命令の部分を表すことかでき、これらは、特定の論理的機能(又は複数の機能)を実装するための1つ又はそれ以上の実行可能な命令を含む。いくつかの代替的な実装においては、ブロックにおいて記述された機能は、図示した以外で実行することができる。例えば、連続して示された2つのブロックは、含まれる機能に応じて、実際上同時的、実質的に同時的に実行されるか、又は複数のブロックは、時として逆の順番で実行することができる。またブロック図及びフローチャートの図示、又はこれらの両方及びブロック図中のブロック及びフローチャートの図示又はこれらの組み合わせは、特定の機能又は動作を実行するか又は特定の目的のハードウェア及びコンピュータ命令を遂行する特定目的のハードウェアに基づいたシステムにより実装することができることを指摘する。
【0023】
本発明をここで図面を参照して詳細に説明する。
図1は、本発明の1実施形態におけるコンピュータ・システム100の種々の部分を示す機能的ブロック図であり、セキュア・サブシステム102、セキュリティ・サブシステク104、履歴的デスクリプタ・ストア105、クライアント・サブシステム106、108、110、112、通信ネットワーク114、コンピューティング・デバイス200、通信ユニット202、プロセッサ・セット204、入力/出力(I/O)インタフェース・セット206、メモリ・デバイス208、持続性ストレージ・デバイス210、ディスプレイ・デバイス212、外部デバイス・セット214、USBメモリ・デバイス216、USBデスクリプタ・ストア218、ROM220、ランダム・アクセス・メモリ(RAM)デバイス230、キャッシュ・メモリ・デバイス232、セキュリティ・プログラム300及びセキュリティ動作ストア302を含む。
【0024】
サブシステム102は、多くの点で本発明の種々のコンピュータ・サブシステム(複数でもよい)を代表する。したがって、サブシステム102のいくつかの部分は、ここで、以下のパラグラフで議論されるであろう。
【0025】
サブシステム102は、ラップトップ・コンピュータ、タブレット・コンピュータ、ネットブック・コンピュータ、パーソナル・コンピュータ(PC)、デスクトップ・コンピュータ、パーソナル・データ・アシスタント(PDA)、スマートホン、又はプログラム可能で、ネットワーク114を介してクライアント・サブシステムと通信することができる如何なる電子デバイスとすることができる。プログラム300は、機械可読な命令の集積であるか、又は以下に詳細に議論されるであろう一定のソフトウェア機能を生成し、管理し、かつ制御するデータ、又はそれらの組み合わせである。
【0026】
サブシステム102は、ネットワーク114を介して他のコンピュータ・サブシステムと通信することができる。ネットワーク114は、例えばローカル・エリア・ネットワーク(LAN)、インターネットといったワイド・エリア・ネットワーク(WAN)、又はこれら2つの組み合わせとすることができ、有線、ワイヤレス、又は光ファイバ接続を含むことができる。一般には、ネットワーク114は、サーバと、クライアント・サブシステムとの間の通信をサポートする如何なる接続及びプロトコルの組み合わせとすることができる。
【0027】
サブシステム102は、多くの双方向矢線を有するブロック図として示されている。これらの双方向矢線(別途参照符号はない。)は、通信機能を示し、これは、サブシステム102の種々のコンポーネントの間の通信を提供する。この通信機能は、プロセッサ(マイクロプロセッサ、通信及びネットワークプロセッサなど)、システム・メモリ、周辺デバイス、及びシステム内の如何なる他のハードウェア・コンポーネントの間のデータ転送、又は情報制御、又はこれらの両方のために設計される、如何なるアーキテクチャで実装することができる。例えば、通信機能は、少なくとも部分的に1つ又はそれ以上のバスで実装することができる。
【0028】
メモリ208及び持続性ストレージ210は、コンピュータ可読なストレージ媒体である。通常、メモリ208は、いかなる好適な揮発性、又は不揮発性のコンピュータ可読なストレージ媒体を含むことができる。さらに、現在、又は近い将来、又はそれらの両方において(i)外部デバイス(複数でもよい)214が、サブシステム102のためのメモリのいくつか又は全部を供給することができる可能性があること、又は(ii)サブシステム102の外部のデバイスがサブシステム102のメモリを提供することができる可能性があることに留意されたい。
【0029】
プログラム300は、通常では、1つ又はそれ以上のメモリ208のメモリを通して1つ又はそれ以上のそれぞれのコンピュータ・プロセッサ204によってアクセスされるか、又は実行されるか、又はそれら両方のため、持続性ストレージ210に格納される。持続性ストレージ210は:(i)過渡的な信号よりも少なくとも、より持続性であり;(ii)プログラム(ソフト・ロジック、又はデータ、又はそれらの両方)を有形の媒体上に格納し;かつ(iii)永続性ストレージよりも実質的に持続性が低い。代替的に、データ・ストレージは、持続性ストレージ210によって提供されるストレージのタイプよりも、より持続性であるか、又は永続性であるか、又はそれらの両方である可能性がある。
【0030】
プログラム300は、機械可読で、実行可能な命令の両方、又は実体的データ(すなわち、データベースに格納されたデータのタイプ)、又はそれらの組み合わせを含むことができる。この特定の実施形態においては、持続性ストレージ210は、磁気ハードディスクを含む。いくつかの可能な変形を言えば、持続性ストレージ210は、ソリッド・ステート・ハードディスク・ドライブ、半導体ストレージ・デバイス、リード・オンリー・メモリ(ROM)、消去可能プログラマブル・リード・オンリー・メモリ(EPROM)、フラッシュ・メモリ、又はプログラム命令、又はデジタル情報を格納することができる如何なる他のコンピュータ可読な記録媒体を含むことができる。
【0031】
持続性ストレージ210によって使用される媒体は、また取り外し可能とされる場合がある。例えば、取り外し可能なハードドライブは、持続性ストレージ210として使用することができる。他の実施例は、光学的及び磁気的ディスク、サムドライブ(商標)、及びまた持続性ストレージ210の部分であるもう1つのコンピュータ可読なストレージ媒体への転送のためドライブへと挿入されるスマートカードを含む。
【0032】
通信ユニット202は、これらの実施例では、他のデータ処理システム、又はサブシステム102の外部のデバイスと通信するために提供される。これらの実施例では、通信ユニット202は、1つ又はそれ以上のネットワーク・インタフェース・カードを含む。通信ユニット202は、物理及びワイヤレス通信リンクの何れか、又は両方の使用を通して通信を提供することができる。本明細書で議論される如何なるソフトウェア・モジュールでも持続性ストレージ・デバイス(持続性ストレージ・デバイス210といった)に、通信ユニット(通信ユニット202といった)を通してダウンロードすることができる。
【0033】
I/Oインタフェース206は、コンピュータ200とのデータ通信においてローカルに接続されることができる他のデバイスとデータの入力及び出力を可能とする。例えば、I/Oインタフェース・セット206は、外部デバイス・セット214への接続を提供する。外部デバイス・セット214は、典型的にはキーボード、キーパッド、タッチスクリーン、又はいくつかの他の好適な入力デバイス、又はこれらの組み合わせといったデバイスを含む。USBメモリ・デバイス216は、典型的には、例えば、サムドライブ、携行可能な光学又は磁気ディスク、又はメモリ・カードといった携行可能なコンピュータ可読な記録媒体とすることができる。本発明の実施形態を実施するために使用される、例えばプログラム300といったソフトウェア及びデータは、USBデスクリプタ・ストア218といった携行可能なコンピュータ可読なストレージ媒体上に格納することができる。これらの実施形態において、関連するソフトウェアは、全体、又は部分(又はそうでなくともよい)がI/Oインタフェース・セット206を介して持続性ストレージ・デバイス210上にロードされることができる。I/Oインタフェース・セット206は、また、ディスプレイ・デバイス212とデータ通信において接続する。
【0034】
ディスプレイ・デバイス212は、ユーザに対してデータを表示する機能を提供し、かつ、例えばコンピュータ・モニタ又はスマートホンのディスプレイ・スクリーンとすることができる。
【0035】
本明細書で説明するプログラムは、本発明の特定の実施形態の側面において実装されたアプリケーションに基づいて識別される。しかしながら、本発明の如何なる特定のプログラムの用語は、単に便宜のために使用され、かつしたがって本発明は、そのような用語により識別されるか、又は暗示されるか、又はそれらの両方による如何なる特定のアプリケーションのみの使用に限定されるべきではないことにつき、認識されるべきである。
【0036】
セキュリティ・プログラム300は、USBデバイスがコンピュータのUSBインタフェースにプラグインされた時点でUSBの脅威を識別するために動作する。参照は、適正な、又は悪意のある、又はそれら両方のUSBデバイスの一定の特徴を含むものとしてなされる。USBデバイスの少なくとも1つのターゲット特徴がマッチングすると、USBデバイスがコンピュータ・システムにアクセスすることを許容するために安全である尤度に関連して判断がなされる。
【0037】
本発明のいくつかの実施形態は、現在の最新の技術についての以下の事実、可能性のある問題、又は改善のための可能性のある領域又はこれらの組み合わせを認識する:(i)USBラバー・ダッキーは、単一のスクリプト言語、格別のハードウェア及びコンバート設計を有するここと;(ii)デスクトップからスマートホンまでのコンピューティング・デバイスのほぼ全部がキーボードからの入力を受容すること;(iii)ユビキタスUSBのHIDスタンダードは、ほぼユニバーサルな使用を可能とすること;(iv)USBのHIDシミュレーションからの脅威に対処するための従来のアプローチは、USBポートをディセーブルにして、ハードワイヤ接続されたコンピュータ・マウス及びキーボードに戻すこと、又は(v)伝統的なUSBストレージ・デバイスをキーストローク・インジェクション・ツールにコンバートすることが極めて容易であること、又はこれらの組み合わせであること。
【0038】
本発明のいくつかの実施形態は、デバイスのヒューマン・インタフェース・デバイス(HID)クラス上のいくつかの脆弱性を修正するシステム及び方法を提供することを指向する。
【0039】
本発明のいくつかの実施形態は、コンピューティング・デバイスのUSBポートの可用性を維持しながら、USBラバー・ダッキーといった非HIDデバイスからの攻撃に抵抗するデバイスのHIDクラスの拡張セットを導入する。
【0040】
セキュリティ・スクリーニングは、USBデバイスに格納された種々のデスクリプタに関連して行われることができ、かつコンピューティング・デバイスのUSBポートへとプラグインされた場合に読み出されることができる。本発明のいくつかの実施形態は、デスクリプタを、USBのHID脅威を識別するために使用する。標準的なUSBデバイスのデスクリプタは、例えば:(i)クラス;(ii)サブクラス;(iii)ベンダ;(iv)製品、又は(v)バージョン、又はこれらの組み合わせを含むことができる。
【0041】
本発明のいくつかの実施形態は、新たなUSBデバイスのUSBデスクリプタを、悪意のあるデバイス上で履歴的に発見された危険な可能性のあるUSBデスクリプタのリストと比較する。“USBラバー・ダッキー”、又は“バッドUSB”といったデスクリプタは、挿入されたデバイスが危険なUSBデバイスであるとシステムが判断することを許容する。もし、デスクリプタのフィールド“bCountryCode”がキーストローク・インジェクション・ツールとして使用されたUSBデバイス上のものとしばしば同一であれば、そのデスクリプタのフィールドは、それら悪意のあるデバイスを識別するための良好なパラメータとなるであろう。追加的に本発明のいくつかの実施形態は、例えば疑似的な陽性を低減するため、管理者によって要求されるように、いくつかのデスクリプタのフィールドを含めるか、又は除外するように構成される。
【0042】
本発明のいくつかの実施形態は、デバイスのクラスに関連する機能的特徴を考慮する。HIDスタンダードは、デスクリプタ、又はクラスを使用してデバイスの機能を判断する。機能を示すデスクリプタは:オーディオ・デバイス、入力デバイス、および大容量ストレージ・デバイスを含む。追加的にHIDスタンダードは、例えば、プロトコル1がキーボード・デバイスに適用することができること、及びプロトコル2がマウス・デバイスに適用することができることといった、デバイスの異なるクラスを取扱うため、複数のプロトコルを使用する。
【0043】
本発明のいくつかの実施形態は、HIDクラスのデバイスがもう1つの悪意のあるデバイスによりシミュレーションされる尤度を判断するようにすることを指向する。如何なる新たに接続されたUSBデバイスからでも情報を収集することによって、情報は、既知の悪意あるUSBデバイスを識別するデスクリプタ、又は情報を有するデータベースに対してクロス・リファレンスされることができる。マッチがデータベースで成された場合、セキュリティ・スコアが適用される。いくつかの実施形態では、セキュリティ・スコアは、数値であり、それぞれマッチがなされたものに個別的に適用される。いくつかの実施形態では、マッチングする識別されたデスクリプタのそれぞれについて、対応する信頼スコアがデバイスに提供される。アグリゲートされた信頼性スコアは、応答動作を判断するために使用される。例えば:(i)信頼レベル=100であれば、ポートをブロックして、アラートをトリガする(ユーザ、管理者、セキュリティ);(ii)信頼レベル=100であれば、ユーザをブロックする;(iii)信頼レベル>75であれば、ユーザにアラートをトリガする;又は(iv)信頼レベルが>75であれば、セキュリティ・イベント(セキュリティ情報及びイベント管理(SI EM)製品)を送付する。この方法において、個別的なセキュリティ・スコアの合計は、新たに接続されたUSBデバイスについての信頼レベルの判断を提供する。追加的に本発明のいくつかの実施形態は、例えば、疑似的な陽性を低下させるためにいくつかのデスクリプタのフィールドを含ませるか、又は排除するように構成される。
【0044】
本発明のいくつかの実施形態は、USBリード・オンリー・メモリ(ROM)上の痕跡をチェックすることによって悪意あるUSBデバイスを識別することを指向する。情報は、ROMから読み出され、USBデバイスが修正されたか、又はハックされ、“悪いUSB”、又は如何なる他のタイプの悪意あるコード・インジェクタにコンバートされたか否かを判断するための関連づけセットを生成する。例えば:(i)もしフィールド“製造者”がAcmeであり、Acmeが大容量ストレージUSBのみを製造するが、インストールされたデバイスが入力デバイス(キーボード)として構成される場合;及び(ii)ROM内のコードが大容量USBに関連するが、インストールされたデバイスが入力デバイス(キーボード)として構成される場合である。
【0045】
USBデバイスの如何なる代替が検出された場合、動作の経路が開始され、動作は;(i)USBデバイスの可能性のある危険性の信頼レベルを形成するために可能性のある脅威を分析すること;及び(ii)信頼レベルに基づいてセキュリティ動作の所与のセットを実行することを含む。
【0046】
本発明のいくつかの実施形態は、USBデバイスのファームウェア上のドライバのロード、又はコードの実行、又はそれら両方の前にセキュリティ・タスクを実行する。動作のこの経路を伴うことにより、本発明のいくつかの実施形態は、悪意あるコードがコンピューティング・デバイスに侵入することを防止する。
【0047】
本発明のいくつかの実施形態は、予防的に所望しないコードのインジェクションの受領に抵抗し、これは:(i)実行されるべき適切なセキュリティ動作を判断するために信頼レベルを使用すること;(ii)USBポートに挿入された場合にUSBデバイスの元の機能を判断するためにHIDクラスを使用すること;(iii)デバイスによって実行される動作に対してUSBのHIDクラスのデバイスから得られるメタデータの関連づけ;(iv)USBデバイスの既知の構成ファイルの脅威の痕跡をスキャン;又は(v)USBデバイスの機能に対して得られたデータを関連付けるためデバイスのROM(デバイス製造者)から痕跡をスキャンすることを含む。
【0048】
図2は、本発明による第1の方法を図示するフローチャート250を示す。
図3は、フローチャート250の方法ステップの少なくともいくつかを実行するためのプログラム300を示す。本方法及び関連するソフトウェアを、以下のパラグラフに沿って、
図2(方法ステップのブロック)及び
図3(ソフトウェアのブロック)を広く参照してここに説明する。
【0049】
処理は、ステップS255で開始し、ここで検出モジュール(“mod”)355が、USBデバイスがUSBポートに挿入されたことを検出する。この実施例では、USBデバイス215は、コンピューティング・デバイス200(
図1)のI/Oインタフェース206に挿入される。USBポートへのUSBデバイスの挿入を検出すると、検出modは、USBデバイスの自動読み出し、又は処理を停止し、それに続く評価ステップのシリーズをトリガする。評価は、コンピューティング・デバイス上での動作のため、USBデバイスにアクセスを許可するか否かを判断するために実行される。その方法において、USBデバイスは、アクセスについて効果的にクリアされる。
【0050】
処理は、ステップS260に進み、ここでデスクリプタmod360は、USBデバイス上のデスクリプタ・データを識別する。デスクリプタ・データは、例えばUSBのデスクリプタ・ストア218(
図1)に格納され、USBデバイスを識別するために配布されたデータを含む。デスクリプタのためのデータ・フィールドは、これらに限定されることはなく:(i)クラス;(ii)サブクラス;(iii)ベンダ;(iv)製品;又は(v)バージョン、又はこれらの組み合わせを含む。
【0051】
処理は、ステップS265へ進み、ここでは、ROM情報mod365がUSBデバイス上のROMから情報を読み出す。この実施例では、ROM220は、USBデバイス216に関するROM情報を含む。ROM上で興味のある情報は、これらに限定されないが:(i)製造者;(ii)プログラム・コード;(iii)構成データ;又は(iv)修正痕跡データ、又はこれらの組み合わせである。
【0052】
処理は、ステップS270に進み、ここで比較mod370がデスクリプタ・データを履歴的デスクリプタ・データと比較する。この実施例では、履歴的デスクリプタ・データは、セキュリティ・サブシステム104(
図1)のデスクリプタ・ストア105内に格納される。履歴的デスクリプタ・データは、パス、又はフェイル識別子の何れかに関連する。パス識別子は、関連するUSBデバイスが疑わしいデバイスでないことを示す。フェイル識別子は、関連するUSBデバイスが、疑わしいデバイスであることを示す。データベース内に格納されたそれぞれのデスクリプタについて、セキュリティ・スコアが指定される。マッチングするデスクリプタが見出された場合、関連するセキュリティ・スコアが、USBデバイスのセキュリティ・スコアの計算に使用することができる。履歴的デスクリプタ・データは、既知の悪意がある及び悪意のないUSBデバイスに基づく。一定のデスクリプタは、しばしばデータベース内に記録された悪意あるUSBデバイスに関連して見出される。さらに、いくつかの実施形態においては、適正なUSBデバイスに見出される一定のデスクリプタは、ポジティブな結果を示すセキュリティ・スコア、又はセキュア・デバイスに関連して登録される。
【0053】
処理は、ステップS275に進み、ここで、分析mod375は、関連づけエラーについてROM情報を分析する。関連づけエラーは、ステップS260で修習されたデスクリプタ・データによって表されるか、又はROM情報内に表されるUSBデバイスのクラスを製造していない者に識別された製造者であるというように、ROM情報の1つの断片がもう1つのものと一致しないことを参照することができる。他の関連づけエラーは、分析が、プログラム・コードがステップS260で収集されたデスクリプタ・データ、又はROM情報内に表されるUSBのクラスに関連しないことを示す場合に見出される。関連づけエラーは、また、ROM情報内の適合性のレベルによって指示されることもできる。このレベルは、適合するか、適合しないかの単純な2つの部分のテストを反映する。代替的に適合性の度合いが考慮され、かつ対応するセキュリティ・スコアが、適合性の度合いを反映する。
【0054】
処理は、ステップS280に進み、ここで、セキュリティ・スコアmod380がデスクリプタのマッチング及び関連づけエラーに基づいてUSBデバイスにセキュリティ・スコアを指定する。それぞれのマッチング・デスクリプタについて、対応するセキュリティ・スコアが、USBデバイスに関連付けられる。この実施例において、セキュリティ・スコアは、数値なので、多数のセキュリティ・スコアが合計、又はアグリゲートされたセキュリティ・スコアを生成することができる。代替的に、セキュリティ・スコアは、それぞれのマッチング・デスクリプタについて単独で取得されて、最も高くランク付けされたセキュリティ・スコアがコンピューティング・システムへのアクセスを許可するか、又は拒否するかについての基礎となる。関連づけエラーは、また、セキュリティ・スコアに関連する。関連づけエラーがセキュリティ・スコアを生成する場合、スコアは、アグリゲートされたセキュリティ・スコアを判断するために合計内に含まれる。代替的に、その後にマッチング・デスクリプタ及び動作から識別された他のセキュリティ・スコアと共にランク付けされた特定のセキュリティ・スコア内の如何なる関連づけエラーの結果が、最も高いランクのセキュリティ・スコアにしたがって取得される。
【0055】
処理は、ステップS285に進み、ここでセキュリティ動作mod385は、指定されたセキュリティ・スコアのためのセキュリティ動作を識別する。この実施例においては、セキュリティ動作は、セキュリティ動作ストア302(
図1)内のセキュリティ・スコアに関連付けられる。いくつかの実施形態においては、範囲、又は比較的低いスコアはセキュリティ動作のセットをもたらし、比較的高い範囲は、もう1つのセキュリティ動作のセットをもたらす。いくつかの実施形態においては、それぞれ可能なスコアがセキュリティ動作のセットに関連づけられる。そのような実施形態は、最高ランクのスコアがセキュリティ・スコアである場合に良好に動作するであろうし、かつセキュリティ動作の特定のセットへと正確に関連づけするであろう。アグリゲートされたセキュリティ・スコアが使用される場合、値の範囲の適用は、実施するためにより容易であることが見出されるであろう。
【0056】
処理は、ステップS290で終了し、ここで、動作mod390は、識別されたセキュリティ動作のセットを行う。種々のセキュリティ動作は、セキュリティ動作のセット内で互いにグループ化されることができるので、1つ以上の動作が行われる。セキュリティ動作は、これらに限定されないが:(i)USBポートのブロック;(ii)ユーザに対しアラートを送付すること;(iii)指定されたセキュリティ・オフィスにアラートを送付すること;(iv)ユーザのUSBデバイスに対するアクセスをブロックすること;(v)SI EM製品を介してセキュリティ・イベントを生成すること;(vi)コンピューティング・システムへのアクセスを許可すること;(vii)コンピューティング・システムの特定の機能/動作への制限されたアクセスを許可することを含む。
【0057】
図4は、本発明の実施形態による第2の方法を図示するフローチャート400を示す。本方法は、ネットワーク・コンピュータ・システム100(
図1)上、又は当技術で既知の他のコンピューティング・システム上に実装することができる。
【0058】
処理は、ステップ402で開始し、ここではUSBデバイスが、USBポートに挿入される。USBデバイスが挿入される場合、本発明のいくつかの実施形態により動作するコンピューティング・システムは、挿入を検出し、ドライバのロード、又はUSBデバイスにより行われるであろう操作、又は動作を許容するか否かを判断するプロセスを開始する。
【0059】
処理は、ステップ404に進み、ここで、情報が挿入されたUSBデバイス上のROMから読み出される。
【0060】
処理は、ステップ406に進み、ここで、読み出された情報が他のROM情報及び如何なるUSBデバイスのデスクリプタに対して関連付けられる。それ自体内及びデバイスのデスクリプタ内の読み出された情報の関連づけの失敗は、USBデバイスがアラートされたことを強く示唆する。
【0061】
処理は、ステップ408に進み、ここで、USBデバイス上で利用できる情報がマッチするか、又は正確に一致するか否かというように判断が行われる。もし、正確に一致する場合、処理はステップ410に進む。もし、正確に一致する場合、処理はステップ410に進む。
【0062】
“yes”分岐に続いて、処理は、ステップ410に進み、ここでは、読み出された情報がコンピューティング・システムに対してアクセスが付与されるべきではないUSBデバイスの既知の構成ファイル、疑わしいモーフィング識別子のデータベースに対して関連付けられる。実施例のファイルは:“script.bin”ファイル;“ino”ファイル;“h”ファイル;及び“cpp”ファイルを含む。
【0063】
処理は、ステップ412に進み、ここで、既知の脅威への関連づけが判断、又は検出されたか否かという判断がなされる。もしyesであれば、ステップ416に進む。もしそうでなければ処理は、ステップ414に進む。
【0064】
“no”分岐に続いて、処理は、ステップ414で終了し、ここで、コンピューティング・システムは、適正で、セキュリティに対して脅威ではないので、ドライバのロード及びUSBデバイスを許容する他の動作を継続する。
【0065】
ここで、ステップ408からの“no”分岐を参照すると、処理は、ステップ416に進む。ステップ412からの“yes”分岐はまた、ステップ416に進むことに留意されたい。ステップ416では、コンピューティング・システムは、ミスマッチ・データに基づいてUSBデバイスの信頼レベルを生成する。本発明のいくつかの実施形態では、信頼レベルは、ミスマッチの度合いによって調整される。代替的に、ミスマッチの如何なる度合いでも1つの信頼レベルを受領し、かつミスマッチの欠如は、もう1つの信頼レベルを受領する。
【0066】
処理はステップ418で終了し、ここで、要求される動作がステップ416で生成された信頼レベルにしたがってトリガされる。本発明のいくつかの実施形態は、それぞれの信頼レベルについて事前定義された動作を適用する。この方法において、信頼レベルは、特定の要求された動作に一致されるので、動作は、信頼性レベルの判断に応じて自動的に行われる。代替的に信頼レベルは、修正動作のためユーザへと報告される。
【0067】
図5は、挿入されたUSBデバイスが実際にHIDデバイスであり、かつ脅威の無い信頼レベルを判断するためのヒューマン・インタフェース・デバイス(HID)のデスクリプタ・ベースの処理を図示するフローチャート500を示す。HIDデバイスをエミュレートするUSBストレージ・デバイスは、デスクリプタを参照して検出されるであろうし、かつコンピューティング・システムへのアクセスがブロックされるであろう。USBデバイスは、構成デスクリプタ上に1つだけ、又は多数の構成を有する場合があることについて留意されたい。USBデバイスのクラスは、インタフェース・デスクリプタ上に定義される。
【0068】
処理は、ステップ502で開始し、ここでは、デバイスのデスクリプタがUSBデバイスから検索される。
【0069】
処理はステップ504に進み、ここでは、構成デスクリプタが、USBデバイスから検索される。
【0070】
処理は、ステップ506に進み、ここではインタフェース・デスクリプタがUSBデバイスから検索される。インタフェース・デスクリプタは、デバイスのクラスを開示することに加えてUSBポートイ挿入されるデバイスのタイプを識別することにおいて有用である可能性がある。
【0071】
処理は、ステップ510に進み、ここでは、ヒューマン・インタフェース・デスクリプタ(HID)がステップ506で検索されたインタフェース・デスクリプタのデータから識別される。HIDデスクリプタは、データ・パケットを記述するハード・コードされたバイト・アレイである。データ・パケットのデータは:デバイスがどれだけ多くのパケットをサポートするか、パケットがどれだけの大きさか、及びパケット内のそれぞれのバイト及びビットの目的を含む。
【0072】
処理は、ステップ512に進み、ここではHIDのレポート・デスクリプタである。HIDデバイスは、レポートを使用してホスト・コンピューティング・デバイスにデータを送付する。レポート・デスクリプタは、ホスト・コンピューティング・デバイスに対してHIDにより送付されたデータをどのようにして解釈するのかを通知する。
【0073】
処理は、ステップ514に進み、ここでは、HIDの物理デスクリプタである。HIDの利用は、関連する制御の利用ページに組織化される。利用ページ及び利用IDは、デバイスが物理入力デバイス(PID)であるか否かを識別する特定の制御タイプを記述する、固有の定数を定義する。
【0074】
処理は、ステップ508で終了し、ここでは、USBデバイスからエンドポイント・デスクリプタが検索される。エンドポイント・デスクリプタ情報は:エンドポイント・アドレス、タイプ、指令、及びエンドポイントが処理できるデータの量を含むことができる。エンドポイントへのデータ転送は、その情報に基づく。
【0075】
本発明のいくつかの実施形態は、アラートされたか、又はハックされたUSBデバイスを検出することを指向する。アラートされたこれらのデバイスは、疑わしく思われ、かつコンピューティング・システムへのアクセスが許容されることはない。本発明のいくつかの実施形態は、疑わしいUSBデバイスを検出するために機能的特徴及びUSBデバイスのクラスを使用する。本発明のいくつかの実施形態は、USBデバイスがハックされ、かつ修正されたか否かを判断するために、ROM内の不揮発性データを使用する。もしもハックされたと思われる場合、USBデバイスは、コンピューティング・システムへのアクセスが許可されない。本発明のいくつかの実施形態は、接続されたUSBデバイスがアクセスを許可するべきではない疑わしいコード・インジェクタであるか否かを判断するため、ROM内に格納されたUSBデバイスのデスクリプタを使用することを指向する。本発明のいくつかの実施形態は、インストールされたUSBデバイスからの脅威の可能性を判断するために信頼スコアを生成することを指向する。本発明のいくつかの実施形態は、トリガされるべきセキュリティ動作を判断するために信頼スコアを使用する。信頼スコアと、セキュリティ動作との間の関連づけは、信頼スコアを判断すると自動的に事前決定されたセキュリティ動作を行うために格納される。代替的に、いくつかの実施形態は、信頼スコアを判断することにおいて一定の要因を含めるか、又は除外するか、又はそれらの両方を可能とする。
【0076】
本発明のいくつかの実施形態は、マイクロコントローラはキーボードをエミュレートするために使用されるか否かを判断するための方法を指向し、本方法は:USBデバイスがコンピュータ・システムに接続されたことを検出すること;及び以下の1つ又はそれ以上が発生した場合に事前規定されたセキュリティ動作をトリガすることを含む:(i)USBデバイスがキーボードのための既知のUSBデスクリプタにマッチしないUSBデスクリプタの一定数(又はパーセンテイジ)を有すると判断される;(ii)USBデバイスがマイクロコントローラ・デバイスについて既知のデバイス・ドライバに適合するデバイス・ドライバを有すると判断される(例えば、CH3430、FT232RL、ATMEGA16u2、及びATMega32U4といった、Arduinoデバイス);及び(iii)キーボード・デバイス・ドライバがUSBデバイスが検出された後、事前規定されたタイム・ウィンドウ(例えば10秒)内にコンピュータ・システムに接続されたことが検出される。タイム・ウィンドウの期間は、USBデバイスがキーボードであるインタフェースをサポートする。代替的に、USBデバイスへのアクセスを許可する前のタイム・ウィンドウの遅延は、それ自身がキーボード・デバイスであることを提示するものであり、検出されるべき追加的なキーボード・デバイスの2つの内の一方が単にキーボードのシミュレーションであり、デバイスのさらなる分析が実行されるべきインタフェースであることを示すための機会を提供する。
【0077】
本発明のいくつかの実施形態は、USBデバイスが改竄されたか否かを判断するための方法を指向し、本方法は:コンピュータによりUSBデバイスがコンピュータのUSBポートに挿入されたことを検出すること;コンピュータによりUSBデバイスのUSBデバイスのデスクリプタ及びUSBデバイスのリード・オンリー・メモリ(ROM)情報を読み出すこと;USBデバイスのデスクリプタ及びROM情報が互いに矛盾しないとの判断に応答してUSBデバイスのデスクリプタを、危険なUSBデバイスのデスクリプタのデータベースと比較すること;及びUSBデバイスのデスクリプタが既知の危険なUSBデバイスのデスクリプタの何れにもマッチしないとの判断に応答してコンピュータによりUSBデバイスのためのデバイス・ドライバをロードして、USBデバイスがコンピュータのユーザによりアクセスされることを許容することを含む。
【0078】
本発明のいくつかの実施形態は、USBデバイスが改竄されたか否かを判断するための方法を指向し、本方法は:USBデバイスのデスクリプタ及びROM情報が互いに矛盾するとの判断に応答して、USBデバイスのデスクリプタと、ROM情報との間の違いに基づいて悪意のある活動の信頼レベルを判断すること;及び信頼レベルが閾値を超えることに応答してコンピュータがUSBデバイスのためのデバイス・ドライバをロードする前にセキュリティ動作をトリガすることを含む。
【0079】
本発明のいくつかの実施形態は、USBデバイスが改竄されたことを判断するための方法を指向し、本方法は:USBデバイスのデスクリプタが既知の危険なUSBデバイスのデスクリプタにマッチするとの判断に応答して、USBデバイスのデスクリプタと、既知の危険なUSBデバイスのデスクリプタとの間のマッチの量に基づいて悪意のある活動の信頼レベルを判断すること;及び信頼レベルが閾値を超えるとの判断に応答してコンピュータがUSBデバイスのためのデバイス・ドライバをロードする前にセキュリティ動作をトリガすることを含む。
【0080】
本発明のいくつかの実施形態は、1つ又はそれ以上の以下の特徴、特性、又は効果又はそれらの組み合わせを含むことができる:(i)インジェクションが開始する前にコードのインジェクションを停止して、効果的にコンピューティング・デバイスが感染するリスクを排除すること;又は(ii)標準的なUSBサムドライブをコード・インジェクション・ツールへと変換する如何なる既知の脅威についても作用すること、又はこれらの両方のこと。
【0081】
本発明のいくつかの実施形態は、コンピュータ・プログラム製品を指向し、その内部にプロセッサによって実行された場合に、プロセッサをしてセキュリティ・スコアにしたがって:ユニバーサル・シリアルバス(USB)デバイスのデスクリプタのフィールドからデスクリプタのセットを識別すること;デスクリプタのセットそれぞれを、履歴的デスクリプタのセットと比較することであって、履歴的デスクリプタのセットには、セキュリティ・スコアが個別的に指定されており;USBデバイス上のリード・オンリー・メモリ(ROM)情報を読み出すこと;適合性についてROM情報を分析することであって、適合しないことが事前定義されたセキュリティ・スコアにより指定され;それぞれのデスクリプタの比較及びROM情報の分析に基づいてUSBデバイスのセキュリティ・スコアを指定することであって、最も高い個別的なセキュリティ・スコアが指定されたセキュリティ・スコアに基づくものであり、及び指定されたセキュリティ・スコアに応じてセキュリティ動作を行うことにより、セキュリティ動作を行わせるための命令のセットを有するコンピュータ可読な記録媒体を含む。
【0082】
本発明のいくつかの実施形態は、USBポートに挿入されたUSBデバイスを検出することによってセキュリティ・スコアによりセキュリティ動作を行う。
【0083】
本発明のいくつかの実施形態は、コンピューティング・システムへのアクセスを許可するセキュリティ動作を指向する。
【0084】
本発明のいくつかの実施形態は、USBデバイスにより使用されることからUSBポートをブロックするセキュリティ動作を指向する。
【0085】
本発明のいくつかの実施形態は、USBデバイスにセキュリティ・スコアを指定することを指向し、これは、それぞれの履歴的デスクリプタについて指定されたセキュリティ・スコアをアグリゲートすること及びデスクリプタのセット内のデスクリプタをマッチングして、USBデバイスについての結合されたセキュリティ・スコアを生成することを含む。
【0086】
本発明のいくつかの実施形態は、セキュリティ動作のセットに関連し、セキュリティ動作、結合されたセキュリティ・スコアの値の範囲、結合されたセキュリティ・スコアを含むテーブルを参照することにより、セキュリティ動作を判断してセキュリティ・スコアによってセキュリティ動作を行うことを指向する。
【0087】
本発明のいくつかの実施形態は、コンピュータ・システムを指向し;プロセッサ(複数でもよい)のセット;及びその内部にプログラム命令を有するコンピュータ可読な記録媒体を含み、プロセッサ・セットがプロセッサのセットをして、セキュリティ・スコアにしたがってユニバーサル・シリアルバス(USB)デバイスのデスクリプタのフィールドからデスクリプタのセットを識別すること;デスクリプタのセットそれぞれを、履歴的デスクリプタのセットと比較することであって、履歴的デスクリプタのセットには、セキュリティ・スコアが個別的に指定されており;USBデバイス上のリード・オンリー・メモリ(ROM)情報を読み出すこと;適合性についてROM情報を分析することであって、適合しないことが事前定義されたセキュリティ・スコアにより指定され;それぞれのデスクリプタの比較及びROM情報の分析に基づいてUSBデバイスのセキュリティ・スコアを指定することであって、最高の個別的なセキュリティ・スコアが指定されたセキュリティ・スコアを基礎とするものであり、及び指定されたセキュリティ・スコアに応じてセキュリティ動作を行うことによってセキュリティ・スコアにしたがってセキュリティ動作を行うプログラム命令を実行する。
【0088】
いくつかの有用な定義は、以下の通りである:
本発明:
用語“本発明”により記述される主題が出願された請求項の何れかにより、又は特許審査の後に結果的に発行された請求項により保護されることを絶対的に示すものとして理解されるべきではない;用語“本発明”は、読み手が新奇であると信じられる本明細書の開示についての全般的な感触を得ることを支援するために使用するが、この理解は、用語“本発明”の使用により示されるものが、関連する情報が発展し、かつ請求項が訂正される可能性があることから、過渡的、かつ予断的であり、特許審査にわたって変更の対象とされるものであるとして理解される。
実施形態
上記の“本発明”の定義を参照されたい-同様の注記が用語“実施形態”について適用される。及び/又は包括的orであり、;例示的にA、B、又はC、又はこれらの組み合わせとは、少なくともA、又はB、又はCが真であり、かつ適用可能であることを意味する。ユーザ/サブスクライバ:
これらに限定されることは無いが、以下のものを含む:
(i)一人の個人的な人間;(ii)ユーザ、又はサブスクライバとして行動する十分な知識を有する人工知能のエンティティ;又は(iii)関連するユーザ又はサブスクライバのグループ、又はこれらの組み合わせ。
モジュール/サブモジュール:
如何なるハードウェア、ファームウェア、又は動作的に作用していくつかの機能を実行するソフトウェア、又はこれらの組み合わせのセットであり、モジュールが:(i)単一でローカルに近接していること;(ii)ワイド・エリアに渡って分散されていること;(iii)ソフトウェア・コードのより大きな断片内の単一で近接していること;(iv)ソフトウェア・コードの単一の断片内に局在していること;(v)単一のストレージ・デバイス内に局在化していること;(vi)機械的に結合されていること;(vii)電気的に結合されていること;又は(viii)データ通信において結合されていること、又はこれらの組み合わせであるか否かに拠らない。
コンピュータ:
顕著なデータ処理、又は機械可読な命令を読み出す能力、又はこれらの朗報を有する如何なるデバイスであり、これらに限定されないが、デスクトップ・コンピュータ、メインフレーム・コンピュータ、ラップトップ・コンピュータ、フィールド・プログラマブル・ゲート・アレイ(FPGA)に基づくデバイス、スマートホン、パーソナル・デジタル・アシスタント(PDAs)、身体搭載、又は挿入コンピュータ、埋め込みデバイス・スタイルのコンピュータ、到底用途集積回路(ASIC)に基づくデバイスを含む。