(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6061364
(24)【登録日】2016年12月22日
(45)【発行日】2017年1月18日
(54)【発明の名称】アプリケーションのセキュリティ検証のためのクラウド支援された方法及びサービス
(51)【国際特許分類】
G06F 21/57 20130101AFI20170106BHJP
【FI】
G06F21/57 370
【請求項の数】70
【全頁数】30
(21)【出願番号】特願2015-531349(P2015-531349)
(86)(22)【出願日】2013年9月27日
(65)【公表番号】特表2015-527685(P2015-527685A)
(43)【公表日】2015年9月17日
(86)【国際出願番号】US2013062407
(87)【国際公開番号】WO2014052892
(87)【国際公開日】20140403
【審査請求日】2015年3月9日
(31)【優先権主張番号】13/631,283
(32)【優先日】2012年9月28日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】591003943
【氏名又は名称】インテル・コーポレーション
(74)【代理人】
【識別番号】110000877
【氏名又は名称】龍華国際特許業務法人
(72)【発明者】
【氏名】リ、ホン
(72)【発明者】
【氏名】ブレイクリー、ジェームス
(72)【発明者】
【氏名】ウォウハイビ、リタ
(72)【発明者】
【氏名】ビセンテ、ジョン
(72)【発明者】
【氏名】ヤルヴィス、マーク
【審査官】
岸野 徹
(56)【参考文献】
【文献】
米国特許出願公開第2011/0145926(US,A1)
【文献】
米国特許出願公開第2012/0066346(US,A1)
【文献】
米国特許出願公開第2012/0102545(US,A1)
【文献】
特開2010−198054(JP,A)
【文献】
国際公開第2012/036893(WO,A1)
【文献】
国際公開第2011/084431(WO,A1)
【文献】
国際公開第2012/054449(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/57
(57)【特許請求の範囲】
【請求項1】
ブラウザベース・アプリケーションについてセキュリティ勧告を生成するためのクラウドサーバであって、前記クラウドサーバは、
クライアントコンピューティングデバイスからアプリケーション検証要求を受信する通信モジュールと、
(i)前記ブラウザベース・アプリケーションのソースを特定するアプリケーションソースデータを受信し、(ii)1以上のクライアントコンピューティングデバイスからのフィードバックを用いて更新された前記クラウドサーバのローカルデータベースからソース認証データを取得し、(iii)前記アプリケーションソースデータ及び前記ソース認証データに応じて、前記ソースを認証するソース認証モジュールと、
(i)前記ローカルデータベースからアプリケーション検証データを取得し、(ii)前記アプリケーション検証データに応じて前記ブラウザベース・アプリケーションを検証するアプリケーション検証モジュールと、
前記ソース認証モジュールの前記認証及び前記アプリケーション検証モジュールの前記検証に応答して、セキュリティ勧告を生成する勧告エンジンと
を備え、
前記通信モジュールはさらに、前記セキュリティ勧告を前記クライアントコンピューティングデバイスに送信し、
前記勧告エンジンは、(i)前記セキュリティ勧告の送信に応答して前記クライアントコンピューティングデバイスから前記フィードバックを受信し、(ii)前記クライアントコンピューティングデバイスから受信した前記フィードバックを用いて前記ローカルデータベースを更新し、
前記フィードバックは、前記セキュリティ勧告の受信に応答して前記クライアントコンピューティングデバイスによってなされたセキュリティアクション及び前記クライアントコンピューティングデバイスによってなされた前記ブラウザベース・アプリケーションのローカルセキュリティ解析の結果を示す
クラウドサーバ。
【請求項2】
前記ソース認証モジュールは、(i)前記ブラウザベース・アプリケーションのロケーションを特定するロケーションデータを受信し、(ii)前記特定されたロケーションに位置するウェブサーバから前記ブラウザベース・アプリケーションをダウンロードする
請求項1に記載のクラウドサーバ。
【請求項3】
前記ロケーションデータは、前記ブラウザベース・アプリケーションのユニフォームリソースロケータを含む
請求項2に記載のクラウドサーバ。
【請求項4】
前記ソース認証モジュールは、
前記クライアントコンピューティングデバイス以外の遠隔ロケーションから前記アプリケーションソースデータを取得し、
前記アプリケーション検証モジュールは、前記遠隔ロケーションから前記ブラウザベース・アプリケーションを取得する
請求項1から3のいずれか1項に記載のクラウドサーバ。
【請求項5】
前記セキュリティ勧告は、前記ブラウザベース・アプリケーションの信頼のレベルを特定する
請求項1から4のいずれか1項に記載のクラウドサーバ。
【請求項6】
前記アプリケーションソースデータは、前記ブラウザベース・アプリケーションのホストを特定する
請求項1から5のいずれか1項に記載のクラウドサーバ。
【請求項7】
前記アプリケーションソースデータは、前記ブラウザベース・アプリケーションを入手可能なインターネットプロトコルアドレスを示す
請求項1から6のいずれか1項に記載のクラウドサーバ。
【請求項8】
前記ソース認証モジュールは、前記クラウドサーバがアクセス可能な複数のクラウドリソースから前記ソース認証データを取得し、
前記アプリケーション検証モジュールは、前記複数のクラウドリソースから前記アプリケーション検証データを取得する
請求項1から7のいずれか1項に記載のクラウドサーバ。
【請求項9】
前記ソース認証モジュールは、前記アプリケーションソースデータを前記ソース認証データと比較することによって前記ソースを認証し、
前記ソース認証データは、既知の悪意のあるブラウザベースのアプリケーションの複数のホストのリストを含む
請求項1から8のいずれか1項に記載のクラウドサーバ。
【請求項10】
前記アプリケーション検証モジュールは、前記ブラウザベース・アプリケーションを、前記ブラウザベース・アプリケーションの信頼されたソースコードと比較することによって、前記ブラウザベース・アプリケーションのセキュリティを検証する
請求項1から9のいずれか1項に記載のクラウドサーバ。
【請求項11】
前記アプリケーション検証モジュールは、前記ブラウザベース・アプリケーションを、前記アプリケーション検証データと比較することによって、前記ブラウザベース・アプリケーションのセキュリティを検証し、
前記アプリケーション検証データは、既知の複数のマルウェアシグネチャを含む
請求項1から7のいずれか1項に記載のクラウドサーバ。
【請求項12】
前記アプリケーション検証モジュールは、前記クラウドサーバがアクセス可能な複数のクラウドリソースから前記アプリケーション検証データを取得する
請求項11に記載のクラウドサーバ。
【請求項13】
前記セキュリティ勧告は、前記ブラウザベース・アプリケーションがセキュアであるかを示す
請求項1から12のいずれか1項に記載のクラウドサーバ。
【請求項14】
前記勧告エンジンは、前記セキュリティ勧告の生成に応答して、前記ローカルデータベースを更新する
請求項1から13のいずれか1項に記載のクラウドサーバ。
【請求項15】
前記ブラウザベース・アプリケーションは、Hypertext Markup Language 5のアプリケーション又は他のウェブアプリケーションである
請求項1から14のいずれか1項に記載のクラウドサーバ。
【請求項16】
前記通信モジュールは、前記クライアントコンピューティングデバイスが前記ブラウザベース・アプリケーションをダウンロードする前に、前記クライアントコンピューティングデバイスから前記アプリケーション検証要求を受信する
請求項1から15のいずれか1項に記載のクラウドサーバ。
【請求項17】
前記セキュリティ勧告は、前記クライアントコンピューティングデバイスが前記ブラウザベース・アプリケーションをダウンロードすることを避けることを示す
請求項16に記載のクラウドサーバ。
【請求項18】
請求項1から17のいずれか1項に記載のクラウドサーバを備えるクラウドサービスシステム。
【請求項19】
請求項1から17のいずれか1項に記載のクラウドサーバと、
前記クライアントコンピューティングデバイスと
を備えるシステム。
【請求項20】
ブラウザベース・アプリケーションのセキュリティを検証するためのクライアントコンピューティングデバイスであって、前記クライアントコンピューティングデバイスは、
(i)前記クライアントコンピューティングデバイスが前記ブラウザベース・アプリケーションを要求したかを判断し、(ii)前記ブラウザベース・アプリケーションが要求されたとの判断に応答して、前記ブラウザベース・アプリケーションの前記セキュリティを検証するためのクラウドサーバにアプリケーション検証要求を送信するアプリケーションセキュリティモジュールと、
前記クラウドサーバからセキュリティ勧告を受信する通信モジュールと、
前記ブラウザベース・アプリケーションがセキュアであることを示す前記セキュリティ勧告に応答して、前記クライアントコンピューティングデバイス上で、ダウンロードされた前記ブラウザベース・アプリケーションのローカルセキュリティ解析を実行するローカルコード解析モジュールと、
を備え、
前記クライアントコンピューティングデバイスは、前記ブラウザベース・アプリケーションがセキュアであることを示す前記セキュリティ勧告に応答して、前記ブラウザベース・アプリケーションをダウンロードし、
前記アプリケーションセキュリティモジュールはさらに、(i)前記ブラウザベース・アプリケーションが非セキュアであることを前記ローカルセキュリティ解析が示すことに応答してセキュリティアクションを実行し、(ii)前記ローカルセキュリティ解析の結果を示すフィードバックを前記クラウドサーバに送信する
クライアントコンピューティングデバイス。
【請求項21】
前記ブラウザベース・アプリケーションは、Hypertext Markup Language 5のアプリケーション又は他のウェブアプリケーションである
請求項20に記載のクライアントコンピューティングデバイス。
【請求項22】
前記クライアントコンピューティングデバイスが前記ブラウザベース・アプリケーションを要求したかを、前記アプリケーションセキュリティモジュールが判断することは、
前記クライアントコンピューティングデバイスが、前記ブラウザベース・アプリケーションに向けられたハイパーリンクを実行したかを判断することを備える
請求項20又は21に記載のクライアントコンピューティングデバイス。
【請求項23】
前記アプリケーションセキュリティモジュールが前記アプリケーション検証要求を送信することは、
前記ブラウザベース・アプリケーションのソースコードの少なくとも一部を、前記クラウドサーバに送信することを備える
請求項20から22のいずれか1項に記載のクライアントコンピューティングデバイス。
【請求項24】
前記アプリケーションセキュリティモジュールが前記アプリケーション検証要求を送信することは、
前記ブラウザベース・アプリケーションを入手可能なロケーションを示すロケーションデータを送信することを備える
請求項20から22のいずれか1項に記載のクライアントコンピューティングデバイス。
【請求項25】
前記ロケーションデータは、前記ブラウザベース・アプリケーションのユニフォームリソースロケータを備える
請求項24に記載のクライアントコンピューティングデバイス。
【請求項26】
前記セキュリティアクションは、前記クライアントコンピューティングデバイスのユーザに、前記セキュリティ勧告を通知することを備える
請求項20から25のいずれか1項に記載のクライアントコンピューティングデバイス。
【請求項27】
前記セキュリティアクションは、前記ブラウザベース・アプリケーションのソースコードを、前記クライアントコンピューティングデバイスから削除することを備える
請求項20から25のいずれか1項に記載のクライアントコンピューティングデバイス。
【請求項28】
前記セキュリティアクションは、前記クライアントコンピューティングデバイスのメモリへの、前記ブラウザベース・アプリケーションのダウンロードを妨げることを備える
請求項20から25のいずれか1項に記載のクライアントコンピューティングデバイス。
【請求項29】
前記セキュリティアクションは、前記クライアントコンピューティングデバイスのメモリのセキュアロケーション内に、前記ブラウザベース・アプリケーションを隔離することを備える
請求項20から25のいずれか1項に記載のクライアントコンピューティングデバイス。
【請求項30】
前記フィードバックはさらに、前記クライアントコンピューティングデバイスによって実行された前記セキュリティアクションを示す
請求項20から29のいずれか1項に記載のクライアントコンピューティングデバイス。
【請求項31】
前記ローカルセキュリティ解析は、前記ブラウザベース・アプリケーションを複数のウイルスシグネチャと比較することを備える
請求項20から30のいずれか1項に記載のクライアントコンピューティングデバイス。
【請求項32】
請求項20から31のいずれか1項に記載のクライアントコンピューティングデバイスを備えるシステム。
【請求項33】
請求項20から31のいずれか1項に記載のクライアントコンピューティングデバイスと、
前記クラウドサーバと
を備えるシステム。
【請求項34】
クラウドサーバがブラウザベース・アプリケーションについてセキュリティ勧告を生成するための方法であって、前記方法は、
前記クラウドサーバが、前記ブラウザベース・アプリケーション、及び、前記ブラウザベース・アプリケーションのソースを特定するアプリケーションソースデータを受信する段階と、
前記クラウドサーバが、1以上のクライアントコンピューティングデバイスからのフィードバックを用いて更新された前記クラウドサーバのローカルデータベースから、ソース認証データ及びアプリケーション検証データを取得する段階と、
前記クラウドサーバが、前記アプリケーションソースデータ及び前記ソース認証データに応じて、前記ソースを認証する段階と、
前記クラウドサーバが、前記アプリケーション検証データに応じて前記ブラウザベース・アプリケーションのセキュリティを検証する段階と、
前記クラウドサーバが、前記ソースを認証すること及び前記ブラウザベース・アプリケーションを検証することに応じて、セキュリティ勧告を生成する段階と、
前記クラウドサーバが、前記セキュリティ勧告をクライアントコンピューティングデバイスに送信する段階と、
前記クラウドサーバが、前記セキュリティ勧告の送信に応答して前記クライアントコンピューティングデバイスから前記フィードバックを受信する段階と、
前記クラウドサーバが、前記クライアントコンピューティングデバイスから受信した前記フィードバックを用いて前記ローカルデータベースを更新する段階と
を備え、
前記フィードバックは、前記セキュリティ勧告の受信に応答して前記クライアントコンピューティングデバイスによってなされたセキュリティアクション及び前記クライアントコンピューティングデバイスによってなされた前記ブラウザベース・アプリケーションのローカルセキュリティ解析の結果を示す
方法。
【請求項35】
前記ブラウザベース・アプリケーションを受信する段階は、
(i)前記ブラウザベース・アプリケーションのロケーションを特定するロケーションデータを受信する段階と、
(ii)前記特定されるロケーションに位置するウェブサーバから、前記ブラウザベース・アプリケーションをダウンロードする段階と
を備える請求項34に記載の方法。
【請求項36】
前記ブラウザベース・アプリケーションのロケーションを特定するロケーションデータを受信する段階は、
前記ブラウザベース・アプリケーションのユニフォームリソースロケータを受信する段階
を備える請求項35に記載の方法。
【請求項37】
前記クラウドサーバが、前記ブラウザベース・アプリケーションに関するセキュリティ勧告を生成するよう前記クライアントコンピューティングデバイスから要求を受信する段階
をさらに備える請求項34から36のいずれか1項に記載の方法。
【請求項38】
前記クラウドサーバは、前記ブラウザベース・アプリケーション及びアプリケーションソースデータを、前記クライアントコンピューティングデバイス以外の遠隔ロケーションから受信する
請求項37に記載の方法。
【請求項39】
セキュリティ勧告を生成する段階は、
前記ブラウザベース・アプリケーションの信頼のレベルを特定する段階
を備える請求項37又は38に記載の方法。
【請求項40】
前記クラウドサーバは、前記クライアントコンピューティングデバイスが前記ブラウザベース・アプリケーションをダウンロードする前に、前記ブラウザベース・アプリケーションに関するセキュリティ勧告を生成するよう前記クライアントコンピューティングデバイスから前記要求を受信する
請求項37から39のいずれか1項に記載の方法。
【請求項41】
前記セキュリティ勧告は、前記クライアントコンピューティングデバイスが前記ブラウザベース・アプリケーションをダウンロードすることを避けることを示す
請求項40に記載の方法。
【請求項42】
アプリケーションソースデータを受信する段階は、
前記ブラウザベース・アプリケーションのホストを特定するソースデータを受信する段階
を備える請求項34から41のいずれか1項に記載の方法。
【請求項43】
前記ソースデータを受信する段階は、
前記ブラウザベース・アプリケーションを入手可能なインターネットプロトコルアドレスを受信する段階
を備える請求項42に記載の方法。
【請求項44】
ソース認証データ及びアプリケーション検証データを取得する段階は、
前記クラウドサーバがアクセス可能な複数のクラウドリソースから、ソース認証データ及びアプリケーション検証データを取得する段階
を備える請求項34から43のいずれか1項に記載の方法。
【請求項45】
前記ソースを認証する段階は、
前記アプリケーションソースデータを前記ソース認証データと比較する段階
を備え、
前記ソース認証データは、既知の悪意のあるブラウザベースのアプリケーションの複数のホストのリストを含む
請求項34から44のいずれか1項に記載の方法。
【請求項46】
前記ブラウザベース・アプリケーションのセキュリティを検証する段階は、
前記ブラウザベース・アプリケーションを、前記ブラウザベース・アプリケーションの信頼されたソースコードと比較する段階
を備える請求項34から45のいずれか1項に記載の方法。
【請求項47】
前記ブラウザベース・アプリケーションのセキュリティを検証する段階は、
前記ブラウザベース・アプリケーションを、前記アプリケーション検証データと比較する段階
を備え、
前記アプリケーション検証データは、既知の複数のマルウェアシグネチャを含む
請求項34から42のいずれか1項に記載の方法。
【請求項48】
アプリケーション検証データを取得する段階は、
前記クラウドサーバがアクセス可能な複数のクラウドリソースからアプリケーション検証データを取得する段階
を備える請求項47に記載の方法。
【請求項49】
セキュリティ勧告を生成する段階は、
前記ブラウザベース・アプリケーションがセキュアであるかを知らせる段階
を備える請求項34から48のいずれか1項に記載の方法。
【請求項50】
前記クラウドサーバが、前記セキュリティ勧告の生成に応答して、前記ローカルデータベースを更新する段階
をさらに備える請求項34から49のいずれか1項に記載の方法。
【請求項51】
前記ブラウザベース・アプリケーションは、Hypertext Markup Language 5のアプリケーション又は他のウェブアプリケーションである
請求項34から50のいずれか1項に記載の方法。
【請求項52】
クラウドサーバであって、
プロセッサと、
前記プロセッサによって実行された場合に、請求項34から51のいずれか1項に記載の前記方法を前記クラウドサーバに実行させる複数の命令が格納されたメモリと
を備えるクラウドサーバ。
【請求項53】
請求項34から51のいずれか1項に記載の前記方法をコンピュータに実行させるためのプログラム。
【請求項54】
請求項53に記載のプログラムを記録するコンピュータ可読記録媒体。
【請求項55】
ブラウザベース・アプリケーションのセキュリティを検証するための方法であって、前記方法は、
クライアントコンピューティングデバイスが、前記ブラウザベース・アプリケーションを要求したかを判断する段階と、
前記クライアントコンピューティングデバイスが、前記ブラウザベース・アプリケーションが要求されたとの判断に応答して、前記ブラウザベース・アプリケーションの前記セキュリティを検証するためのクラウドサーバにアプリケーション検証要求を送信する段階と、
前記アプリケーション検証要求の送信に応答して、前記クライアントコンピューティングデバイスが、前記クラウドサーバからセキュリティ勧告を受信する段階と、
前記クライアントコンピューティングデバイスが、前記ブラウザベース・アプリケーションがセキュアであることを示す前記セキュリティ勧告に応答して、前記ブラウザベース・アプリケーションをダウンロードする段階と、
前記クライアントコンピューティングデバイスが、前記ダウンロードされた前記ブラウザベース・アプリケーションのローカルセキュリティ解析を実行する段階と、
前記クライアントコンピューティングデバイスが、前記ブラウザベース・アプリケーションが非セキュアであることを前記ローカルセキュリティ解析が示すことに応答して、セキュリティアクションを実行する段階と、
前記クライアントコンピューティングデバイスが、前記ローカルセキュリティ解析の結果を示すフィードバックを前記クラウドサーバに送信する段階と
を備える方法。
【請求項56】
前記ブラウザベース・アプリケーションは、Hypertext Markup Language 5のアプリケーション又は他のウェブアプリケーションである
請求項55に記載の方法。
【請求項57】
前記クライアントコンピューティングデバイスが前記ブラウザベース・アプリケーションを要求したかを判断する段階は、
前記クライアントコンピューティングデバイスが、前記ブラウザベース・アプリケーションに向けられたハイパーリンクを実行したかを判断する段階
を備える請求項55又は56に記載の方法。
【請求項58】
前記アプリケーション検証要求を送信する段階は、
前記ブラウザベース・アプリケーションのソースコードの少なくとも一部を、前記クラウドサーバに送信する段階
を備える請求項55から57のいずれか1項に記載の方法。
【請求項59】
前記アプリケーション検証要求を送信する段階は、
前記ブラウザベース・アプリケーションを入手可能なロケーションを示すロケーションデータを送信する段階
を備える請求項55から57のいずれか1項に記載の方法。
【請求項60】
前記ロケーションデータを送信する段階は、
前記ブラウザベース・アプリケーションのユニフォームリソースロケータを送信する段階
を備える請求項59に記載の方法。
【請求項61】
前記セキュリティアクションを実行する段階は、
前記クライアントコンピューティングデバイスのユーザに、前記セキュリティ勧告を通知する段階
を備える請求項55から60のいずれか1項に記載の方法。
【請求項62】
前記セキュリティアクションを実行する段階は、
前記ブラウザベース・アプリケーションのソースコードを、前記クライアントコンピューティングデバイスから削除する段階
を備える請求項55から60のいずれか1項に記載の方法。
【請求項63】
前記セキュリティアクションを実行する段階は、
前記クライアントコンピューティングデバイスのメモリへの、前記ブラウザベース・アプリケーションのダウンロードを妨げる段階
を備える請求項55から60のいずれか1項に記載の方法。
【請求項64】
前記セキュリティアクションを実行する段階は、
前記クライアントコンピューティングデバイスのメモリのセキュアロケーション内に、前記ブラウザベース・アプリケーションを隔離する段階
を備える請求項55から60のいずれか1項に記載の方法。
【請求項65】
前記フィードバックはさらに、前記クライアントコンピューティングデバイスによって実行された前記セキュリティアクションを示す
を備える請求項55から64のいずれか1項に記載の方法。
【請求項66】
前記クライアントコンピューティングデバイスが、前記ブラウザベース・アプリケーションのローカルセキュリティ解析を実行する段階
をさらに備える請求項55から65のいずれか1項に記載の方法。
【請求項67】
前記ブラウザベース・アプリケーションの前記ローカルセキュリティ解析を実行する段階は、
前記ブラウザベース・アプリケーションを、複数のウイルスシグネチャと比較する段階
を備える請求項66に記載の方法。
【請求項68】
クライアントコンピューティングデバイスであって、
プロセッサと、
前記プロセッサによって実行された場合に、請求項55から67のいずれか1項に記載の前記方法を、前記クライアントコンピューティングデバイスに実行させる複数の命令が格納されたメモリと
を備えるクライアントコンピューティングデバイス。
【請求項69】
請求項55から67のいずれか1項に記載の前記方法をコンピュータに実行させるためのプログラム。
【請求項70】
請求項69に記載のプログラムを記録するコンピュータ可読記録媒体。
【発明の詳細な説明】
【背景技術】
【0001】
ウェブコミュニティへのHTML5のプログラミングプラットフォームの出現は、対話するユーザに高速で動的なエクスペリエンスを可能にした。プログラミングプラットフォームは、複数のアプリケーションプログラミングインタフェース(API)を動的コンテンツの生成及びプレゼンテーションと組み合わせて、したがって、向上した複数の特徴及び複数の機能を複数の開発者が複数のブラウザベース・アプリケーションに組み込むことが可能になる。例えば、HTML5は、複数の開発者が、クライアントデバイスのブラウザ内で実行可能なアクティブコードをウェブページに実装することを可能にする。
【0002】
残念ながら、HTML5の動的な性質はまた、多数のセキュリティリスクをユーザにもたらした。プログラミングプラットフォームは、複数の開発者がアクティブコードをウェブページに組み込むことを可能にするので、コードに関するユーザの認識なしに頻繁にコードが実行され得る。いくつかの既存のソリューションは、クライアントデバイスがアプリケーションの信頼性を検証することを可能にする。例えば、いくつかの開発者は、クライアントデバイスがダウンロードするとコードを検証し得ることを可能にするべく、彼らの開発したソフトウェアを署名するためにデジタルシグネチャを使用してよい。しかし、それらのソリューションは、単一ソース及び1回の様式での、特定の複数の開発者又は複数の発行者によって供されたソフトウェアの信頼性の検証しか提供しない。その上、そのような複数のソリューションは、特定のソフトウェアベンダ又はサービスプロバイダから独立した複数のウェブサービス・アプリケーション(例えば、HTML5ベースの動的なコンテンツ生成及び複数のブラウザプラグイン)の動的な検証を提供しない。従って、ブラウザベース・アプリケーションがセキュアであることをそのアプリケーションをダウンロード又は実行する前に保証するために、複数のユーザには利用可能な限られた複数の選択肢しかない。
【図面の簡単な説明】
【0003】
ここで記載される概念は、複数の添付図面において、限定のためでなく例として示される。説明の簡潔さかつ明確さのために、複数の図面に示される複数の要素は、必ずしも縮尺通りに描かれていない。適切であると考えられる場合、複数の参照符号は、対応する又は類似の複数の要素を示すために、図面の中で繰り返される。
【
図1】ブラウザベース・アプリケーションのセキュリティ検証のためのシステムの少なくとも1つの実施形態の簡略化されたブロック図である。
【
図2】
図1のシステムのクラウドサービスサーバの環境の少なくとも1つの実施形態の簡略化されたブロック図である。
【
図3】
図1のシステムのクライアントコンピューティングデバイスの環境の少なくとも1つの実施形態の簡略化されたブロック図である。
【
図4】
図1のクラウドサービスサーバを用いてブラウザベース・アプリケーションのためのセキュリティ勧告を生成するための方法の少なくとも1つの実施形態の簡略化したフロー図である。
【
図5】
図1のクライアントコンピューティングデバイスによってアクセスされるブラウザベース・アプリケーションのセキュリティを検証するための方法の少なくとも1つの実施形態の簡略化したフロー図である。
【発明を実施するための形態】
【0004】
本開示の複数の概念は様々な変形及び複数の代替形式が可能であるものの、それらの特定の複数の実施形態が複数の図面に例として表され、ここで詳細に述べられる。しかし、当然のことながら、本開示の複数の概念を、開示された特定の複数の形式に限定する意図はない。しかし、反対に、その意図は、本開示及び添付の特許請求の範囲と整合性のある複数の変形、複数の等価物及び複数の代替物の全てをカバーする。
【0005】
明細書における「一実施形態」、「実施形態」、「例示の実施形態」等の言及は、説明される実施形態が、特定の機能、構造又は特性を含み得ることを示す。しかし、各実施形態は、特定の機能、構造又は特性を含んでよい又は必ずしも含まなくてよい。さらに、そのような複数の文言は、必ずしも同一の実施形態を参照していない。さらに、実施形態に関連して特定の機能、構造又は特性が説明された場合、明示的に説明されているか否かにかかわらず、他の複数の実施形態に関連してそのような特徴、構造又は特性を達成することは当業者の知識の内であるとされる。
【0006】
開示された複数の実施形態は、場合によっては、ハードウェア、ファームウェア、ソフトウェア又はそれらの任意の組み合わせで実装されてよい。開示された複数の実施形態は、1又は複数のプロセッサによって読み取られて実行され得る、一時的又は非一時的機械可読(例えば、コンピュータ可読)記憶媒体によって搬送される、又は、一時的又は非一時的機械可読記憶媒体に格納される、複数の命令として実装されてもよい。機械可読記憶媒体は、機械(例えば、揮発性又は不揮発性メモリ、媒体ディスク又は他の媒体デバイス)によって可読な形で情報を格納又は送信するための、任意のストレージデバイス、メカニズム又は他の物理構造として具現化されてよい。
【0007】
複数の図面において、いくつかの構造的又は方法の特徴が、特定の複数の配置及び/又は複数の順序で表され得る。しかし、そのような特定の複数の配置及び/又は複数の順序が必要とされなくてよいことが認識されるべきである。むしろ、いくつかの実施形態では、そのような複数の特徴は、例示の図面に表されるものとは異なるやり方及び/又は順序で構成されてよい。更に、特定の図面に構造的又は方法の複数の特徴を含めることは、そのような特徴が、全ての複数の実施形態で必要とされることを暗示するものでもなく、また、いくつかの実施形態では、含まれなくてよい、又は、他の複数の特徴と組み合されてよい。
【0008】
ここで
図1を参照して、クラウド支援されたブラウザベース・アプリケーションのセキュリティ検証のためのシステム100は、クライアントコンピューティングデバイス102、ネットワーク104、ウェブサーバ106、クラウドサービスシステム108、及び、クラウドサービスシステム108の内部又は外部にあってよい複数のクラウドリソース110を含む。使用において、以下により詳細に述べられるように、クライアントコンピューティングデバイス102は、ブラウザベース・アプリケーション304のセキュリティに関するクラウドサービスシステム108の肯定の勧告に応答して、ウェブサーバ106から要求されたブラウザベース・アプリケーション304(
図3を参照のこと)をセキュアに起動する。 1つのクライアントコンピューティングデバイス102、1つのネットワーク104、1つのウェブサーバ106、1つのクラウドサービスシステム108、及び1つのクラウドリソース110のみが
図1に例示的に表されるが、他の複数の実施形態において、システム100は、任意の数の、クライアントコンピューティングデバイス102、ネットワーク104、ウェブサーバ106、クラウドサービスシステム108、及びクラウドリソース110を含んでよい。例えば、いくつかの実施形態では、複数のウェブサーバ106から要求された複数のブラウザベース・アプリケーション304のセキュリティを検証するために、1つのクラウドサービスシステム108が、いくつかのクライアントコンピューティングデバイス102と、いくつかのネットワーク104上で通信してよい。
【0009】
クライアントコンピューティングデバイス102は、ここで説明される複数の機能を実行可能な任意のタイプのコンピューティングデバイスとして具現されてよい。例えば、クライアントコンピューティングデバイス102は、企業レベルのサーバ、デスクトップ型コンピュータ、ラップトップコンピュータ、モバイルインターネットデバイス、ハンドヘルドコンピュータ、スマートフォン、携帯情報端末、テレフォニーデバイス、又は他のコンピューティングデバイスとして具現されてよい。
図1の例示の実施形態において、クライアントコンピューティングデバイス102は、プロセッサ112、I/Oサブシステム114、メモリ116、通信回路118、データストレージデバイス120、及び1又は複数の周辺機器122を含む。いくつかの実施形態では、いくつかの前述のコンポーネントは、クライアントコンピューティングデバイス102のマザーボードに組み込まれてよい。他方、他の複数のコンポーネントは、例えば周辺ポートを介してマザーボードに通信可能に結合されてよい。その上、クライアントコンピューティングデバイス102は、コンピュータ及び/又はコンピューティングデバイスに通常備えられる他の複数のコンポーネント、サブコンポーネント及び複数のデバイスを含んでよいことが理解されるべきであり、それらは記載の明確さのために
図1に示されていない。
【0010】
クライアントコンピューティングデバイス102のプロセッサ112は、マイクロプロセッサ、デジタルシグナルプロセッサ、マイクロコントローラ等のような、ソフトウェア/ファームウェアを実行可能な任意のタイプのプロセッサとして具現されてよい。いくつかの実施形態では、プロセッサ112は、プロセッサコアを持つシングルコアプロセッサであってよい。しかし、他の複数の実施形態において、プロセッサ112は、複数のプロセッサコアを持つマルチコアプロセッサとして具現されてよい。更に、クライアントコンピューティングデバイス102は、1又は複数のプロセッサコアを持つ追加の複数のプロセッサ112を含んでよい。
【0011】
クライアントコンピューティングデバイス102のI/Oサブシステム114は、プロセッサ112及び/又はクライアントコンピューティングデバイス102の他の複数のコンポーネントとの複数の入出力動作を促進する回路及び/又は複数のコンポーネントとして具現されてよい。いくつかの実施形態では、I/Oサブシステム114は、メモリコントローラハブ(MCH又は「ノースブリッジ」)、入出力コントローラハブ(ICH又は「サウスブリッジ」)、及びファームウェアデバイスとして具現されてよい。そのような複数の実施形態において、I/Oサブシステム114のファームウェアデバイスは、基本入出力システム(BIOS)データ及び/又は複数の命令及び/又は他の情報(例えば、クライアントコンピューティングデバイス102を起動する間に用いられるBIOSドライバ)を格納するメモリデバイスとして具現されてよい。しかし、他の複数の実施形態において、他の複数の構成を持つI/Oサブシステムが用られてよい。例えば、いくつかの実施形態ではI/Oサブシステム114は、プラットフォームコントローラハブ(PCH)として具現されてよい。そのような複数の実施形態において、メモリコントローラハブ(MCH)は、プロセッサ112に組み込まれてよいか、さもなくばプロセッサ112に関連してよく、プロセッサ112は、(
図1のハッシュラインによって示されるように)メモリ116と直接に通信してよい。更に、他の複数の実施形態において、I/Oサブシステム114は、システムオンチップ(SoC)の一部を形成してよく、プロセッサ112及びクライアントコンピューティングデバイス102の他の複数のコンポーネントと共に、単一の集積回路チップに組み込まれてよい。
【0012】
プロセッサ112は、I/Oサブシステム110に、いくつかの信号経路を介して通信可能に結合されている。これらの信号経路(及び、
図1に示される他の複数の信号経路)は、クライアントコンピューティングデバイス102の複数のコンポーネントの間の通信を促進可能な任意のタイプの複数の信号経路として具現されてよい。例えば、複数の信号経路は、任意の数のワイヤ、ケーブル、ライトガイド、プリント回路基板トレース、ビア、バス、仲介デバイス等として具現されてよい。
【0013】
クライアントコンピューティングデバイス102のメモリ116は、例えば複数のダイナミックランダムアクセスメモリデバイス(DRAM)、複数のシンクロナスダイナミックランダムアクセスメモリデバイス(SDRAM)、ダブルデータレートシンクロナスダイナミックランダムアクセスメモリデバイス(DDR SDRAM)、複数のマスクリードオンリメモリ(ROM)デバイス、消去可能プログラマブルROM(EPROM)、複数の電気的消去可能プログラマブルROM(EEPROM)デバイス、複数のフラッシュメモリデバイス、並びに/若しくは、他の揮発性及び/又は不揮発性の複数のメモリデバイスを含む、1又は複数のメモリデバイス又はデータストレージロケーションとして具現されてよいか、さもなくば含んでよい。メモリ116は、いくつかの信号経路を介してI/Oサブシステム114に通信可能に結合される。
図1には単一のメモリデバイス116だけが示されているが、他の複数の実施形態において、クライアントコンピューティングデバイス102は、追加の複数のメモリデバイスを含んでよい。様々なデータ及びソフトウェアが、メモリデバイス116に格納されてよい。例えば、プロセッサ112によって実行されるソフトウェアスタックを構成する1又は複数のオペレーティングシステム、アプリケーション、プログラム、ライブラリ、及びドライバが、実行中にメモリ116に存在してよい。さらに、メモリ116に格納されているソフトウェア及びデータは、複数のメモリ管理動作の一部としてメモリ116とデータストレージ120との間でスワップされてよい。
【0014】
クライアントコンピューティングデバイス102の通信回路118は、ネットワーク104上でクライアントコンピューティングデバイス102と複数のリモートコンピューティングデバイス(例えば、ウェブサーバ106及びクラウドサービスシステム108)との間の複数の通信を可能にするために任意の数のデバイス及び回路として具現されてよい。ネットワーク104は、任意の数の様々な有線及び/又は無線通信ネットワークとして具現されてよい。例えば、ネットワーク104は、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、又はインターネットなどの公衆アクセス可能なグローバルネットワークとして具現されてよいか、さもなくば含んでよい。更に、ネットワーク104は、クライアントコンピューティングデバイス102、ウェブサーバ106、及びクラウドサービスシステム108の間の通信を促進するための任意の数の追加のデバイスを含んでよい。クライアントコンピューティングデバイス102、ウェブサーバ106及びクラウドサービスシステム108は、例えば特定のタイプの1又は複数のネットワーク104に応じて1又は複数のネットワーク104上で互いに通信するために適切な通信プロトコルを用いてよい。
図1の例示の実施形態において、クラウドサービスシステム108は、1又は複数のネットワーク104上でクラウドリソース110と通信してもよい。いくつかの実施形態では、クラウドリソース110は、クラウドサービスシステム108によってアクセス可能であるが、クライアントコンピューティングデバイス102及び/又はウェブサーバ106によってアクセス不可能である。
【0015】
1又は複数のデータストレージデバイス120は、例えば、複数のメモリデバイス及び複数の回路、複数のメモリカード、複数のハードディスクドライブ、複数のソリッドステートドライブ、又は他の複数のデータストレージデバイスなど、データの短期又は長期ストレージのために設定された任意のタイプのデバイス又は複数のデバイスとして具現されてよい。例えば、以下により詳細に述べられるように、ブラウザベース・アプリケーション304(すなわち、実行可能コード)の一部は、いくつかの実施形態ではローカルコード解析モジュール308によってアクセスされることになる(
図3を参照すること)1又は複数のデータストレージデバイス120のセキュアロケーションに格納されてよい。
【0016】
クライアントコンピューティングデバイス102の複数の周辺機器122は、任意の数の周辺又はインターフェース機器を含んでよい。例えば、複数の周辺機器122は、ディスプレイ、キーボード、マウス、外部スピーカ及び/又は他の複数の周辺機器を含んでよい。複数の周辺機器122に含まれる特定の複数のデバイスは、例えばクライアントコンピューティングデバイス102の意図された使用に依存してよい。複数の周辺機器122は、いくつかの信号経路を介してI/Oサブシステム114に通信可能に結合され、それにより、I/Oサブシステム114及び/又はプロセッサ112が、複数の周辺機器122から複数の入力を受信し、複数の周辺機器122に複数の出力を送信することが可能になる。
【0017】
ウェブサーバ106は、ここで説明される複数の機能を実行することが可能な任意のタイプの1又は複数のデータサーバ又は他の1又は複数のコンピューティングデバイスとして具現されてよい。例えば、
図1の例示の実施形態においてウェブサーバ106は、ブラウザベース・アプリケーション304を生成して、ネットワーク104上でクライアントコンピューティングデバイス102に送信することが可能である。いくつかの実施形態では、ウェブサーバ106は、上述したようなクライアントコンピューティングデバイス102の複数のコンポーネントと同様の複数のコンポーネントを含んでよい。記載の明確さのために
図1には示されていない、サーバ及び/又はコンピューティングデバイスに通常備えられる他の複数のコンポーネント、複数のサブコンポーネント、及び複数のデバイスを、ウェブサーバ106が含んでよいことが理解されるべきである。更に、ウェブサーバ106が単一の単体のウェブサーバとして
図1に示されるが、ウェブサーバ106は、上述したようなブラウザベース・アプリケーション304を生成及び送信することが可能な複数のウェブサーバ及び/又は同様の複数のデバイスの集合として具現されてよい。
【0018】
図1の例示の実施形態において、クラウドサービスシステム108は、プロセッサ124、I/Oサブシステム126、メモリ128、通信回路130、データストレージデバイス132、ローカルデータベース134、並びに1又は複数の周辺機器136を含むクラウドサービスサーバとして具現される。いくつかの実施形態では、複数の前述のコンポーネントのいくつかは、クラウドサービスシステム108のマザーボードに組み込まれてよい。他方、他の複数のコンポーネントは、例えば周辺ポートを介してマザーボードに通信可能に結合されてよい。さらに、クラウドサービスシステム108が、記載の明確さのために
図1に示されていない、サーバ及び/又はコンピューティングデバイスに通常備えられる他の複数のコンポーネント、複数のサブコンポーネント及び複数のデバイスを含んでよいことが理解されるべきである。更に、クラウドサービスシステム108が、単一の単体のクラウドサービスサーバとして
図1に示され、及び以下に述べられているが、クラウドサービスシステム108は、複数のクラウドサーバ、及び/又は、以下に述べられるような1又は複数のクラウドサービスを協働して提供する同様の複数のデバイスの集合として具現されてよい。
【0019】
クラウドサービスシステム108のプロセッサ124、I/Oサブシステム126、メモリ128、通信回路130、データストレージデバイス132、及び1又は複数の周辺機器136は、上述のようなクライアントコンピューティングデバイス102の対応する複数のコンポーネントと同様であってよい。従って、クライアントコンピューティングデバイス102のそのような同様の複数のコンポーネントの説明は、クラウドサービスシステム108の同様の複数のコンポーネントに等しく適用でき、説明の明確さのためにここでは繰り返されない。更に、クラウドサービスシステム108のローカルデータベース134は、1又は複数のブラウザベース・アプリケーション304及び1又は複数のブラウザベース・アプリケーション304の複数のソースのセキュリティに向けられたデータの格納に適した、任意の電子装置又は構造として具現されてよい。
【0020】
図1の例示の実施形態において、複数のクラウドリソース110は、ブラウザベース・アプリケーション304のソースを認証する及び/又はブラウザベース・アプリケーション304の整合性を検証するためにクラウドサービスシステム108によって用いられてよいデータ及び他の複数の電子的リソースを含む。いくつかの実施形態では、クラウドリソース110は、クラウドサービスシステム108と同一のクラウドコンピューティング環境に属する他の複数のサーバ及び/又は複数のコンピューティングデバイスを含んでよい。他の複数の実施形態において、クラウドリソース110は、ブラウザベース・アプリケーションの検証データ及び/又はソース認証データを格納するための1又は複数のデータベース又は他の複数のデータ構造を含んでよい。
【0021】
使用において、
図2に示されるように、クラウドサービスシステム108は、ブラウザベース・アプリケーション304のためのセキュリティ勧告を生成するための環境200をクラウドサービスシステム108上に確立してよい。例示の実施形態において、環境200は、それぞれソフトウェア、ファームウェア、ハードウェア又はそれらの組み合わせとして具現され得る、ソース認証モジュール202、アプリケーション検証モジュール204、勧告エンジン206、及び通信モジュール208を含む。
【0022】
ソース認証モジュール202は、ブラウザベース・アプリケーション304(例えば、ブラウザベース・アプリケーション304がダウンロードされたウェブサイト)のソースを認証するよう構成される。そうするために、ソース認証モジュール202は、クラウドサービスシステム108及び/又は複数のクラウドリソース110のローカルデータベース118から、ソース認証データを取得してよい。ソース認証データは、ソース認証モジュール202によって、ブラウザベース・アプリケーション304のソースの信頼性を判断するために使用可能な任意のタイプのデータとして具現されてよい。例えば、ソース認証データは、既知の信頼された及び/又は悪意のあるブラウザベース・アプリケーション304の複数のディストリビュータ又は複数のホスト(例えば、ウェブサイト)を特定する情報として具現されてよいか、さもなくば含んでよい。
【0023】
ソース認証モジュール202はまた、クライアントコンピューティングデバイス102又はウェブサーバ106から、ブラウザベース・アプリケーション304の特定のソースを特定するアプリケーションソースデータを受信してよい。そのような複数の実施形態において、ソース認証モジュール202は、ブラウザベース・アプリケーション304の特定されたソースがセキュアで信頼されたホスト又はエンティティであるかを判断するべく、アプリケーションソースデータをソース認証データと比較することによって、ブラウザベース・アプリケーション304のソースを認証してよい。
【0024】
アプリケーション検証モジュール204は、ブラウザベース・アプリケーション304自体のセキュリティを検証するよう構成される。そうするために、いくつかの実施形態では、アプリケーション検証モジュール204は、クラウドサービスシステム108のローカルデータベース118からアプリケーション検証データを取得してよい、及び/又は、複数のクラウドリソース110からアプリケーション検証データを取得してよい。アプリケーション検証データは、アプリケーション検証モジュール204がブラウザベース・アプリケーション304のコードと比較し得る信頼されたソースコードとして具現されてよい。そのような複数の実施形態において、アプリケーション検証モジュール204は、ブラウザベース・アプリケーション304のセキュリティを検証するために、信頼されたソースコードを、ブラウザベース・アプリケーションのコードと比較してよい。更に又は代替的に、アプリケーション検証データは、ブラウザベース・アプリケーション304のコードを解析するためにアプリケーション検証モジュール204によって使用可能な既知の複数のウイルスシグネチャ又は複数のパターンを含んでよい。すなわち、アプリケーション検証モジュール204は、ブラウザベース・アプリケーション304が、悪意のあるコードを含むか、さもなくば不正であるかを判断するために、ブラウザベース・アプリケーション304のコード解析を実行してよい。更に、いくつかの実施形態では、アプリケーション検証モジュール204は、ブラウザベース・アプリケーション304の開発者/発行者の身元を判断してよい。例えば、ソース認証データと同様、アプリケーション検証データは、ブラウザベース・アプリケーション304のセキュリティを検証する場合にアプリケーション検証モジュール204によって用いられ得る、既知の信頼された及び悪意のあるブラウザベース・アプリケーション304の複数の開発者及び複数の発行者に関する情報を含んでよい。
【0025】
勧告エンジン206は、ソース認証モジュール202及び/又はアプリケーション検証モジュール204によって実行された解析に基づき、ブラウザベース・アプリケーション304のセキュリティに関して、クライアントコンピューティングデバイス102に勧告を提供するよう構成される。上述したように、ソース認証モジュール202がブラウザベース・アプリケーション304のソースを解析し、アプリケーション検証モジュール204がブラウザベース・アプリケーション304自体を解析する。いくつかの実施形態では、勧告エンジン206は、ブラウザベース・アプリケーション304がセキュアであるかを判断するため、及び、クライアントコンピューティングデバイス102に勧告するために、ソース認証モジュール202の解析及びアプリケーション検証モジュール204の解析を相関させてよい。勧告エンジン206のセキュリティ勧告は、多くの異なる形式を取り得る。例えば、いくつかの実施形態では、勧告エンジン206は、ブラウザベース・アプリケーション304のソースが信頼されたソースであるとソース認証モジュール202が判断し、及び/又は、信頼された当事者によってブラウザベース・アプリケーション304が開発又は発行されたとアプリケーション検証モジュール204が判断した場合にのみ、クライアントコンピューティングデバイス102がブラウザベース・アプリケーション304を実行することを勧告してよい。他の複数の実施形態において、勧告エンジン206は、クライアントコンピューティングデバイス102に、ブラウザベース・アプリケーション304がセキュアであるパーセント確率か、さもなくば、勧告がある閾値に基づいているパーセント確率を提供してよい。もちろん、他の複数の実施形態において、勧告の他の複数の形態が用いられてよい。勧告エンジン206は、クラウドサービスシステム108とシステム100の他の複数のデバイスとの間の通信を処理する通信モジュール208を用いて、勧告をクライアントに送信してよい。
【0026】
ここで
図3を参照して、使用される場合、クライアントコンピューティングデバイス102は、クライアントコンピューティングデバイス102によって要求されたブラウザベース・アプリケーション304のセキュリティを検証するための環境300を確立してよい。例示の実施形態における環境300は、それぞれソフトウェア、ハードウェア、ファームウェア及び/又はそれらの組み合わせとして具現され得る、ブラウザ302、ブラウザベース・アプリケーション304、アプリケーションセキュリティモジュール306、ローカルコード解析モジュール308、及び通信モジュール310を含む。
【0027】
クライアントコンピューティングデバイス102のブラウザ302は、ウェブサーバ106からのブラウザベース・アプリケーション304を要求及び解釈するために用いられてよい。いくつかの実施形態では、ブラウザベース・アプリケーション304は、Hypertext Markup Language5(HTML5)のアプリケーションとして具現されてよい。他の複数の実施形態において、ブラウザベース・アプリケーション304は、クライアントコンピューティングデバイス102のブラウザ302によって実行及び/又は解釈されることが可能な任意のソフトウェアアプリケーションとして具現されてよい。
【0028】
アプリケーションセキュリティモジュール306は、クライアントコンピューティングデバイス102上のブラウザベース・アプリケーション304のセキュリティ検証を実行するよう構成される。アプリケーションセキュリティモジュール306は、独立したモジュールとして具現されてよい、又は、いくつかの実施形態では、ブラウザプラグインとして具現されてよい。以下に述べられるように、ブラウザ302がブラウザベース・アプリケーション304を要求した場合、アプリケーションセキュリティモジュール306は、要求されたブラウザベース・アプリケーション304のセキュリティを検証するよう、クラウドサービスシステム108から検証の複数の結果を受信する通信モジュール310を用いて、クラウドサービスシステム108に要求してよい。いくつかの実施形態では、アプリケーションセキュリティモジュール306は、ブラウザ302がブラウザベース・アプリケーション304を実行すること又はブラウザベース・アプリケーション304の任意の部分をダウンロードすることを許可する前に解析のためにクラウドサービスシステム108に要求を転送してよい。更に、いくつかの実施形態では、クラウドサービスシステム108による検証の複数の結果は、クライアントコンピューティングデバイス102によって実行されることになる複数の命令又は複数の指示を含んでよい。そのような複数の実施形態において、アプリケーションセキュリティモジュール306は、例えばブラウザベース・アプリケーション304を削除する又は隔離するなどの任意のタイプのセキュリティアクションを含み得る、そのような追加の複数の命令又は複数の動作を実行するよう構成される。
【0029】
いくつかの実施形態では、クライアントコンピューティングデバイス102は、ローカルコード解析モジュール308を含んでもよい。そのような複数の実施形態において、ローカルコード解析モジュール308は、クラウドサービスシステム108のアプリケーション検証モジュール204と同様、ブラウザベース・アプリケーション304が悪意のあるコードを含むか、さもなくば不正であるかを判断するよう構成されてよい。例えば、いくつかの実施形態では、ローカルコード解析モジュール308は、クラウドサービスシステム108から勧告を受信した後にブラウザベース・アプリケーション304をさらに解析してよい、及び/又は、ブラウザベース・アプリケーション304に関連する追加の複数のセキュリティ対策を実行してよい。
【0030】
ここで
図4を参照して、ブラウザベース・アプリケーション304に関するセキュリティ勧告を生成するための、クラウドサービスシステム108によって実行され得る方法400の例示の実施形態は、ブロック402で始まる。ブロック402において、クラウドサービスシステム108は、クライアントコンピューティングデバイス102から、ブラウザベース・アプリケーション304のセキュリティを検証するためのアプリケーション検証要求が受信されたかを判断する。そうである場合、ブロック404において、クラウドサービスシステム108は、ブラウザベース・アプリケーション304又はブラウザベース・アプリケーション304のコードの一部を受信する。いくつかの実施形態では、ブロック404において、クラウドサービスシステム108は、クライアントコンピューティングデバイス102から、ブラウザベース・アプリケーション304のロケーションを示すメタデータを受信し、指定されたロケーションでウェブサーバ106からブラウザベース・アプリケーション304をダウンロードしてよい。例えば、クライアントコンピューティングデバイス102は、ブラウザベース・アプリケーション304のユニフォームリソースロケータ(URL)をクラウドサービスシステム108に提供してよい。クラウドサービスシステム108は、解析のためにブラウザベース・アプリケーション304を取得するべく、クライアントコンピューティングデバイス102から提供されたロケーション情報を使用してよい。
【0031】
ブロック406において、クラウドサービスシステム108は、ブラウザベース・アプリケーション304のソースを認証する。そうすべく、ブロック408において、クラウドサービスシステム108は更に、クライアントコンピューティングデバイス102からアプリケーションソースデータを受信してよい。上述したように、アプリケーションソースデータは、ブラウザベース・アプリケーション304のソースを特定する任意のタイプのデータとして具現されてよい。例えば、アプリケーションソースデータは、ブラウザベース・アプリケーション304に関連付けられたトップレベルドメイン、サブドメイン、又はインターネットプロトコル(IP)アドレスを特定してよい。代替的に、アプリケーションソースデータが明確に特定されない複数の実施形態において、クラウドサービスシステム108は、ブラウザベース・アプリケーション304のソースを決定するために、ブロック404でクライアントコンピューティングデバイス102から提供されたロケーションデータを使用してよい。
【0032】
いくつかの実施形態では、クラウドサービスシステム108は、ブラウザベース・アプリケーション304及び/又はアプリケーションソースデータを、クライアントコンピューティングデバイス102又はウェブサーバ106とは異なるリモートサーバからダウンロードしてよい。いくつかの実施形態では、ブロック410において、クラウドサービスシステム108のソース認証モジュール202は、クラウドサービスシステム108のローカルデータベース118から、及び/又は複数のクラウドリソース110から、ソース認証データを取得してもよい。上述したように、ソース認証データは、ブラウザベース・アプリケーション304のソースの信頼性を判断するためにクラウドサービスシステム108が使用可能な任意のタイプのデータとして具現されてよいか、さもなくば含んでよい。例えば、ソース認証データは、悪意のあるブラウザベース・アプリケーション304の既知の複数のホストを特定するデータを含んでよい。他の複数の実施形態において、ソース認証データは、ブラウザベース・アプリケーション304の信頼された複数のホストを特定するデータを含んでよい。さらに他の複数の実施形態において、ソース認証データは、ブラウザベース・アプリケーション304のソースの信頼性に向けられた、前述した情報及び/又は他の情報の組み合わせを含んでよい。従って、いくつかの実施形態では、ブロック406において、クラウドサービスシステム108は、特定されたソースの信頼性(又はその欠如)を判断するために、特定されたアプリケーションソースデータを、取得されたソース認証データと比較することによって、ブラウザベース・アプリケーションのソースを認証してよい。
【0033】
ブロック412において、クラウドサービスシステム108は、ブラウザベース・アプリケーション304自体のセキュリティを検証する。そうすべく、クラウドサービスシステム108は、ブロック412において、アプリケーション検証データを取得してよい。ブロック410で取得されたソース認証データと同様、クラウドサービスシステム108は、ブロック414において、クラウドサービスシステム108のローカルデータベース118から及び/又は複数のクラウドリソース110から、アプリケーション検証データを取得してよい。アプリケーション検証データは、ブラウザベース・アプリケーション304のセキュリティ(例えば、信頼性、悪意性など)を検証するためにクラウドサービスシステム108によって使用可能な任意のタイプのデータとして具現されてよい。例えば、上述したように、アプリケーション検証データは、既知の信頼されたソースコードとして具現されてよい。更に又は代替的に、アプリケーション検証データは、既知の複数のウイルス及び他のマルウェアの複数のシグネチャ及び複数のパターンとして具現されてよいか、さもなくば含んでよい。さらに、アプリケーション検証データは、既知のブラウザベース・アプリケーション304の開発者及び複数の発行者の信頼性に関する情報を含んでよい。
【0034】
ブロック412において、クラウドサービスシステム108は、ブロック404で取得されたブラウザベース・アプリケーション304を、ブロック414で取得されたアプリケーション検証データと比較することによって、ブラウザベース・アプリケーション304のセキュリティ及び整合性を検証してよい。例えば、クラウドサービスシステム108は、ブラウザベース・アプリケーション304が悪意のあるコードを含む、さもなくば不正であるかを判断するために、ブラウザベース・アプリケーション304のコード解析を実行し、ブラウザベース・アプリケーション304を複数のマルウェアシグネチャと比較してよい。更に又は代替的に、クラウドサービスシステム108は、コードが安定しクライアントコンピューティングデバイス102上で安全に動作可能であることを検証するために、ブラウザベース・アプリケーション304のコードを解析してよい。そのような複数の実施形態において、勧告エンジン206は、クライアントコンピューティングデバイス102に、ブラウザベース・アプリケーション304の最も安定な現在のリリースのロケーションを通知してよい。
【0035】
方法400のブロック406及び412は、任意の順序で行われてよく、又は、同時に行われてよいことが理解されるべきである。更に、いくつかの実施形態では、ブロック406及び412のいずれかが、ブラウザベース・アプリケーション304又はそのソースが非セキュアであるという指標を提供した場合、クラウドサービスシステム108は他のブロックを実行してよく、又はしなくてよい。むしろ、以下に述べるように、クラウドサービスシステム108は単純に、クライアントコンピューティングデバイス102がブラウザベース・アプリケーション304をダウンロード又は実行することを避けるよう勧告してよい。
【0036】
ブロック416において、クラウドサービスシステム108は、ブロック406のソース認証及びブロック412のブラウザベース・アプリケーションの検証に応じて、クライアントコンピューティングデバイス102に対してセキュリティ勧告を生成してよい。上述したように、セキュリティ勧告は、ブラウザベース・アプリケーション304がセキュアであるかに関するいくつかの指標をクライアントコンピューティングデバイス102に提供する。例えば、ソース及びブラウザベース・アプリケーション304の両方がセキュアであると判断された場合、クラウドサービスシステム108は、クライアントコンピューティングデバイス102がブラウザベース・アプリケーション304を実行することを勧告してよい。さもなくば、クラウドサービスシステム108は、クライアントコンピューティングデバイス102がブラウザベース・アプリケーション304をダウンロード又は実行することを避けて、ブラウザベース・アプリケーションのコードの任意のダウンロードされた複数の部分を削除することを勧告してよい。他の複数の実施形態において、クラウドサービスシステム108は、ブラウザベース・アプリケーション304がセキュアである確率(例えばパーセンテージ又は他の数値表現で表される)を生成してよい。クライアントコンピューティングデバイス102は、ブラウザベース・アプリケーション304を実行するかを判断するために、そのような確率を利用してよい。すなわち、クラウドサービスシステム108は、ブラウザベース・アプリケーション304の信頼のレベルを特定してよい。例えば、ブラウザベース・アプリケーション304は、ブラウザベース・アプリケーション304及びそのソースの両方がセキュアであると判断された場合に、セキュアと特定され、ブラウザベース・アプリケーション及びそのソースの1つのみがセキュアと判断された場合に、場合によっては非セキュアと判断され、ブラウザベース・アプリケーション及びそのソースのどちらもセキュアと判断されなかった場合に、非セキュアと判断されてよい。ブロック418において、クラウドサービスシステム108は、その勧告及び/又はクラウドリソース110から受信したセキュリティ情報でローカルデータベース118を更新してよい。
【0037】
ブロック420において、クラウドサービスシステム108は、ブロック416で生成されたセキュリティ勧告を、クライアントコンピューティングデバイス102に送信してよい。その後、ブロック422において、クラウドサービスシステム108は、クライアントコンピューティングデバイス102からフィードバックを受信してよい。いくつかの実施形態では、フィードバックは、セキュリティ勧告に応答してクライアントコンピューティングデバイス102によってなされるセキュリティアクションを含んでよい。例えば、フィードバックは、クライアントコンピューティングデバイス102がブラウザベース・アプリケーション304を実行したかを示してよい。更に、フィードバックは、クライアントコンピューティングデバイス102が、例えば、ユーザにセキュリティ勧告を通知した、ブラウザベース・アプリケーションを削除した又はブラウザベース・アプリケーションをダウンロードすることを避けた、若しくはブラウザベース・アプリケーション304を隔離したことを示してよい。クライアントコンピューティングデバイス102がブラウザベース・アプリケーション304のローカルセキュリティ解析を実行する(
図5のブロック512を参照すること)複数の実施形態において、フィードバックは、ローカルセキュリティ解析の複数の結果を含んでもよい。ブロック424において、クラウドサービスシステム108は、ローカルデータベース118を、クライアントコンピューティングデバイス102からのフィードバックで更新してよい。
【0038】
ここで
図5を参照して、クライアントコンピューティングデバイス102によって実行され得る、ブラウザベース・アプリケーション304のセキュリティを検証するための方法500の例示の実施形態は、ブロック502で始まる。ブロック502において、クライアントコンピューティングデバイス102は、ブラウザベース・アプリケーション304が要求されたかを判断する。例えば、いくつかの実施形態では、クライアントコンピューティングデバイス102のセキュリティモジュール306は、クライアントコンピューティングデバイス102のユーザが、ブラウザベース・アプリケーション304に割り当てられたハイパーリンクを実行したときを判断するために、ブラウザ302をモニタリングしてよい。クライアントコンピューティングデバイス102が、ブラウザベース・アプリケーション304が要求されたと判断した場合、ブロック504において、クライアントコンピューティングデバイス102は、ブラウザベース・アプリケーション304のセキュリティを検証するために、クラウドサービスシステム108に要求を送信する。上述したように、その際、ブロック506において、クライアントコンピューティングデバイス102は、ブラウザベース・アプリケーション304、若しくは、ブラウザベース・アプリケーション304の任意のダウンロードされた複数の部分又はそのソースコードを、クラウドサービスシステム108に送信してよい。代替的に、クライアントコンピューティングデバイス102は、ブロック508において、ブラウザベース・アプリケーション304が入手可能なロケーションを特定するデータを、クラウドサービスシステム108に送信してよい。例えば、クライアントコンピューティングデバイス102は、クラウドサービスシステム108に、ブラウザベース・アプリケーション304のURLを送信してよい。
図5の例示の実施形態において、クライアントコンピューティングデバイス102は、(
図5における二重チルダ記号によって示されるように)クラウドサービスシステム108がブラウザベース・アプリケーション304のセキュリティを検証するまで、ブラウザベース・アプリケーション304を実行しない。
【0039】
ブロック510において、クライアントコンピューティングデバイス102は、クラウドサービスシステム108からセキュリティ勧告を受信する。上述したように、セキュリティ勧告は、例えば、ブラウザベース・アプリケーション304がセキュア及び/又はブラウザベース・アプリケーション304のセキュリティレベルにあるかを示してよい。いくつかの実施形態では、ブロック512において、クラウドサービスシステム108上でブラウザベース・アプリケーション304のセキュリティを検証することと同様に、クライアントコンピューティングデバイス102は、ブラウザベース・アプリケーション304をダウンロードし、そのローカルセキュリティ解析を実行してよい。クライアントコンピューティングデバイス102のローカルコード解析モジュール308は、ブラウザベース・アプリケーション304が悪意のあるコードを含むかを判断するために、ブラウザベース・アプリケーション304を、ウイルス又はマルウェアの複数のシグネチャ及び複数のパターンと比較してよい。他の複数の実施形態において、クライアントコンピューティングデバイス102は、ブラウザベース・アプリケーション304のセキュリティをローカルに検証するために、追加の又は代替のコード解析を実行してよい。更に、いくつかの実施形態では、ブロック512で実行されるローカルセキュリティ解析は、クライアントコンピューティングデバイス102がブラウザベース・アプリケーション304をクラウドサービスシステム108に送信する前に、実行されてよい。そのような実施形態において、ブラウザベース・アプリケーション304がセキュリティリスクを持つ(例えば、マルウェアを含む)とクライアントコンピューティングデバイス102がローカルに判断した場合、クライアントコンピューティングデバイス102は、クラウドサービスシステム108にそれを送信することなく、単純にブラウザベース・アプリケーション304をその時に破棄してよい。他の複数の実施形態において、クライアントコンピューティングデバイス102は、ローカルセキュリティ解析の結果にかかわらず、クラウドサービスシステム108にブラウザベース・アプリケーション304を送信してよい。
【0040】
ブロック514において、クライアントコンピューティングデバイス102は、ブロック510でクラウドサーバから受信したセキュリティ勧告に基づいて、セキュリティアクションを実行してよい。いくつかの実施形態では、(例えば、セキュリティ勧告が、ブラウザベース・アプリケーション304をダウンロード/実行しないことである場合、)クライアントコンピューティングデバイス102は、セキュリティ勧告をユーザに通知してよい。例えば、ブロック516において、クライアントコンピューティングデバイス102のユーザは、ブラウザ302又は他のグラフィカルユーザインタフェースを介して通知されてよい。他の複数の実施形態では、ブロック518において、クライアントコンピューティングデバイス102は、ブラウザベース・アプリケーション304のソースコード又はそれらのダウンロードされた任意の一部を、クライアントコンピューティングデバイス102のメモリ116から削除してよい。クライアントコンピューティングデバイス102がブラウザベース・アプリケーション304のいずれの部分もダウンロードしない複数の実施形態において、クライアントコンピューティングデバイス102は、ユーザがブラウザベース・アプリケーション304をダウンロードすることを妨げてよい。他の複数の実施形態では、ブロック520において、クライアントコンピューティングデバイス102は、ブラウザベース・アプリケーション304又はその任意のダウンロードされた複数の部分を、クライアントコンピューティングデバイス102のメモリ116のセキュアロケーション内に隔離してよい。クラウドサービスシステム108が、ブラウザベース・アプリケーション304がセキュアであると判断した場合、しかし、クライアントコンピューティングデバイス102は、ブラウザベース・アプリケーション304をダウンロード及び実行してよい。クライアントコンピューティングデバイス102がブロック512でローカルセキュリティ解析を実行する複数の実施形態において、クライアントコンピューティングデバイス102は、クラウドサービスシステム108のセキュリティ勧告に加えて、ローカルセキュリティ解析を更に考慮してよい。
【0041】
ブロック522において、クライアントコンピューティングデバイス102は、クラウドサービスシステム108にフィードバックを送信してよい。上述したように、フィードバックは、セキュリティ勧告に応答してクライアントコンピューティングデバイス102によってなされるセキュリティアクションを含んでよい。更に、フィードバックは、クライアントコンピューティングデバイス102によってブラウザベース・アプリケーション304上で実行される任意のローカルセキュリティ解析の結果を含んでよい。クラウドサービスシステム108は、クラウドサービスシステム108のローカルデータベース118を、関連するブラウザベース・アプリケーションのセキュリティ情報で更新するためにフィードバックを用いてよい。
【0042】
複数の例 ここで開示される複数のデバイス、複数のシステム、及び複数の方法の例示の複数の例が以下に提供される。複数のデバイス、複数のシステム、及び複数の方法の実施形態は、後述される複数の例のうちの1又は複数のいずれか及び任意の組み合わせを含んでよい。
【0043】
例1は、ブラウザベース・アプリケーションについてセキュリティ勧告を生成するためのクラウドサービスシステムを含む。クラウドサーバは、クライアントコンピューティングデバイスからアプリケーション検証要求を受信する通信モジュールと、(i)ブラウザベース・アプリケーションのソースを特定するアプリケーションソースデータを受信し、(ii)ソース認証データを取得し、(iii)アプリケーションソースデータ及びソース認証データに応じて、ソースを認証するソース認証モジュールと、(i)アプリケーション検証データを取得し、(ii)アプリケーション検証データに応じてブラウザベース・アプリケーションを検証するアプリケーション検証モジュールと、ソース認証モジュールの認証及びアプリケーション検証モジュールの検証に応答して、セキュリティ勧告を生成する勧告エンジンとを含み、通信モジュールはさらに、セキュリティ勧告をクライアントコンピューティングデバイスに送信する。
【0044】
例2は、例1の主題を含み、ソース認証モジュールは、(i)ブラウザベース・アプリケーションのロケーションを特定するロケーションデータを受信し、(ii)特定されたロケーションに位置するウェブサーバからブラウザベース・アプリケーションをダウンロードする。
【0045】
例3は、例1及び2のいずれかの主題を含み、ロケーションデータは、ブラウザベース・アプリケーションのユニフォームリソースロケータを含む。
【0046】
例4は、例1から3のいずれかの主題を含み、ソース認証モジュールは、クライアントコンピューティングデバイス以外の遠隔ロケーションからアプリケーションソースデータを取得し、アプリケーション検証モジュールは、遠隔ロケーションからブラウザベース・アプリケーションを取得する。
【0047】
例5は、例1から4のいずれかの主題を含み、セキュリティ勧告は、ブラウザベース・アプリケーションの信頼のレベルを特定する。
【0048】
例6は、例1から5のいずれかの主題を含み、勧告エンジンは、セキュリティ勧告に応答してクライアントコンピューティングデバイスからフィードバックを受信する。
【0049】
例7は、例1から6のいずれかの主題を含み、フィードバックは、クライアントコンピューティングデバイスによってなされたセキュリティアクションを示す。
【0050】
例8は、例1から7のいずれかの主題を含み、勧告エンジンは、クライアントコンピューティングデバイスからフィードバックを受信したことに応答してクラウドサーバのローカルデータベースを更新する。
【0051】
例9は、例1から8のいずれかの主題を含み、アプリケーションソースデータは、ブラウザベース・アプリケーションのホストを特定する。
【0052】
例10は、例1から9のいずれかの主題を含み、アプリケーションソースデータは、ブラウザベース・アプリケーションを入手可能なインターネットプロトコルアドレスを示す。
【0053】
例11は、例1から10のいずれかの主題を含み、ソース認証モジュールは、クラウドサーバのローカルデータベースからソース認証データを取得し、アプリケーション検証モジュールは、ローカルデータベースからアプリケーション検証データを取得する。
【0054】
例12は、例1から11のいずれかの主題を含み、ソース認証モジュールは、クラウドサーバがアクセス可能な複数のクラウドリソースからソース認証データを取得し、アプリケーション検証モジュールは、複数のクラウドリソースからアプリケーション検証データを取得する。
【0055】
例13は、例1から12のいずれかの主題を含み、ソース認証モジュールは、アプリケーションソースデータをソース認証データと比較することによってソースを認証し、ソース認証データは、既知の悪意のあるブラウザベースのアプリケーションの複数のホストのリストを含む。
【0056】
例14は、例1から13のいずれかの主題を含み、アプリケーション検証モジュールは、ブラウザベース・アプリケーションを、ブラウザベース・アプリケーションの信頼されたソースコードと比較することによって、ブラウザベース・アプリケーションのセキュリティを検証する。
【0057】
例15は、例1から14のいずれかの主題を含み、アプリケーション検証モジュールは、ブラウザベース・アプリケーションを、アプリケーション検証データと比較することによって、ブラウザベース・アプリケーションのセキュリティを検証し、アプリケーション検証データは、既知の複数のマルウェアシグネチャを含む。
【0058】
例16は、例1から15のいずれかの主題を含み、アプリケーション検証モジュールは、クラウドサーバがアクセス可能な複数のクラウドリソースからアプリケーション検証データを取得する。
【0059】
例17は、例1から16のいずれかの主題を含み、アプリケーション検証モジュールは、クラウドサーバのローカルデータベースからアプリケーション検証データを取得する。
【0060】
例18は、例1から17のいずれかの主題を含み、セキュリティ勧告は、ブラウザベース・アプリケーションがセキュアであるかを示す。
【0061】
例19は、例1から18のいずれかの主題を含み、勧告エンジンは、セキュリティ勧告の生成に応答して、クラウドサーバのローカルデータベースを更新する。
【0062】
例20は、例1から19のいずれかの主題を含み、ブラウザベース・アプリケーションは、Hypertext Markup Language 5のアプリケーション又は他のウェブアプリケーションである。
【0063】
例21は、ブラウザベース・アプリケーションのセキュリティを検証するためのクライアントコンピューティングデバイスを含む。クライアントコンピューティングデバイスは、(i)クライアントコンピューティングデバイスがブラウザベース・アプリケーションを要求したかを判断し、(ii)ブラウザベース・アプリケーションが要求されたとの判断に応答して、ブラウザベース・アプリケーションのセキュリティを検証するためのクラウドサービスシステムにアプリケーション検証要求を送信するアプリケーションセキュリティモジュールと、クラウドサービスシステムからセキュリティ勧告を受信する通信モジュールとを含み、アプリケーションセキュリティモジュールはさらに、セキュリティ勧告に応答してセキュリティアクションを実行する。
【0064】
例22は、例21の主題を含み、ブラウザベース・アプリケーションは、Hypertext Markup Language 5のアプリケーション又は他のウェブアプリケーションである。
【0065】
例23は、例21及び22のいずれかの主題を含み、クライアントコンピューティングデバイスがブラウザベース・アプリケーションを要求したかを、アプリケーションセキュリティモジュールが判断することは、クライアントコンピューティングデバイスが、ブラウザベース・アプリケーションに向けられたハイパーリンクを実行したかを判断することを備える。
【0066】
例24は、例21から23のいずれかの主題を含み、アプリケーションセキュリティモジュールがアプリケーション検証要求を送信することは、ブラウザベース・アプリケーションのソースコードの少なくとも一部を、クラウドサービスシステムに送信することを備える。
【0067】
例25は、例21から24のいずれかの主題を含み、アプリケーションセキュリティモジュールがアプリケーション検証要求を送信することは、ブラウザベース・アプリケーションを入手可能なロケーションを示すロケーションデータを送信することを備える。
【0068】
例26は、例21から25のいずれかの主題を含み、ロケーションデータは、ブラウザベース・アプリケーションのユニフォームリソースロケータを備える。
【0069】
例27は、例21から26のいずれかの主題を含み、セキュリティアクションは、クライアントコンピューティングデバイスのユーザに、セキュリティ勧告を通知することを備える。
【0070】
例28は、例21から27のいずれかの主題を含み、セキュリティアクションは、ブラウザベース・アプリケーションのソースコードを、クライアントコンピューティングデバイスから削除することを備える。
【0071】
例29は、例21から28のいずれかの主題を含み、セキュリティアクションは、クライアントコンピューティングデバイスのメモリへの、ブラウザベース・アプリケーションのダウンロードを妨げることを備える。
【0072】
例30は、例21から29のいずれかの主題を含み、セキュリティアクションは、クライアントコンピューティングデバイスのメモリのセキュアロケーション内に、ブラウザベース・アプリケーションを隔離することを備える。
【0073】
例31は、例21から30のいずれかの主題を含み、アプリケーションセキュリティモジュールは、クラウドサービスシステムにフィードバックを送信する。
【0074】
例32は、例21から31のいずれかの主題を含み、フィードバックが、クライアントコンピューティングデバイスによって実行されたセキュリティアクションを示すことをさらに含む。
【0075】
例33は、例21から32のいずれかの主題を含み、クライアントコンピューティングデバイス上で、ブラウザベース・アプリケーションのローカルセキュリティ解析を実行するローカルコード解析モジュールをさらに含む。
【0076】
例34は、例21から33のいずれかの主題を含み、ローカルセキュリティ解析は、ブラウザベース・アプリケーションを複数のウイルスシグネチャと比較することを備える。
【0077】
例35は、クラウドサービスシステム上でブラウザベース・アプリケーションのためのセキュリティ勧告を生成するための方法を含む。方法は、ブラウザベース・アプリケーション、及び、ブラウザベース・アプリケーションのソースを特定するアプリケーションソースデータを受信する段階と、ソース認証データ及びアプリケーション検証データを取得する段階と、アプリケーションソースデータ及びソース認証データに応じて、ソースを認証する段階と、アプリケーション検証データに応じてブラウザベース・アプリケーションのセキュリティを検証する段階と、ソースを認証すること及びブラウザベース・アプリケーションを検証することに応じて、セキュリティ勧告を生成する段階と、セキュリティ勧告をクライアントコンピューティングデバイスに送信する段階とを含む。
【0078】
例36は、例35の主題を含み、ブラウザベース・アプリケーションを受信する段階は、(i)ブラウザベース・アプリケーションのロケーションを特定するロケーションデータを受信する段階と、(ii)特定されるロケーションに位置するウェブサーバから、ブラウザベース・アプリケーションをダウンロードする段階とを備える。
【0079】
例37は、例35及び36のいずれかの主題を含み、ブラウザベース・アプリケーションのロケーションを特定するロケーションデータを受信する段階は、ブラウザベース・アプリケーションのユニフォームリソースロケータを受信する段階を備える。
【0080】
例38は、例35から37のいずれかの主題を含み、ブラウザベース・アプリケーションに関するセキュリティ勧告を生成するようクライアントコンピューティングデバイスから要求を受信する段階さらに含む。
【0081】
例39は、例35から38のいずれかの主題を含み、ブラウザベース・アプリケーション及びアプリケーションソースデータを、クライアントコンピューティングデバイス以外の遠隔ロケーションから受信する。
【0082】
例40は、例35から39のいずれかの主題を含み、セキュリティ勧告を生成する段階は、ブラウザベース・アプリケーションの信頼のレベルを特定する段階を備える。
【0083】
例41は、例35から40のいずれかの主題を含み、セキュリティ勧告に応答して、クライアントコンピューティングデバイスからフィードバックを受信する段階をさらに含む。
【0084】
例42は、例35から41のいずれかの主題を含み、フィードバックを受信する段階は、クライアントコンピューティングデバイスによってなされたアクションを示すフィードバックを受信する段階を備える。
【0085】
例43は、例35から42のいずれかの主題を含み、クライアントコンピューティングデバイスからフィードバックを受信したことに応答して、クラウドサービスシステムのローカルデータベースを更新する段階をさらに含む。
【0086】
例44は、例35から43のいずれかの主題を含み、アプリケーションソースデータを受信する段階は、ブラウザベース・アプリケーションのホストを特定するソースデータを受信する段階を備える。
【0087】
例45は、例35から44のいずれかの主題を含み、ソースデータを受信する段階は、ブラウザベース・アプリケーションを入手可能なインターネットプロトコルアドレスを受信する段階を備える。
【0088】
例46は、例35から45のいずれかの主題を含み、ソース認証データ及びアプリケーション検証データを取得する段階は、クラウドサービスシステムのローカルデータベースから、ソース認証データ及びアプリケーション検証データを取得する段階を備える。
【0089】
例47は、例35から46のいずれかの主題を含み、ソース認証データ及びアプリケーション検証データを取得する段階は、クラウドサービスシステムがアクセス可能な複数のクラウドリソースから、ソース認証データ及びアプリケーション検証データを取得する段階を備える。
【0090】
例48は、例35から47のいずれかの主題を含み、ソースを認証する段階は、アプリケーションソースデータをソース認証データと比較する段階を備え、ソース認証データは、既知の悪意のあるブラウザベースのアプリケーションの複数のホストのリストを含む。
【0091】
例49は、例35から48のいずれかの主題を含み、ブラウザベース・アプリケーションのセキュリティを検証する段階は、ブラウザベース・アプリケーションを、ブラウザベース・アプリケーションの信頼されたソースコードと比較する段階を備える。
【0092】
例50は、例35から49のいずれかの主題を含み、ブラウザベース・アプリケーションのセキュリティを検証する段階は、ブラウザベース・アプリケーションを、アプリケーション検証データと比較する段階を備え、アプリケーション検証データは、既知の複数のマルウェアシグネチャを含む。
【0093】
例51は、例35から50のいずれかの主題を含み、アプリケーション検証データを取得する段階は、クラウドサービスシステムがアクセス可能な複数のクラウドリソースからアプリケーション検証データを取得する段階を備える。
【0094】
例52は、例35から51のいずれかの主題を含み、アプリケーション検証データを取得する段階は、クラウドサービスシステムのローカルデータベースからアプリケーション検証を取得する段階を備える。
【0095】
例53は、例35から52のいずれかの主題を含み、セキュリティ勧告を生成する段階は、ブラウザベース・アプリケーションがセキュアであるかを知らせる段階を備える。
【0096】
例54は、例35から53のいずれかの主題を含み、セキュリティ勧告の生成に応答して、クラウドサービスシステムのローカルデータベースを更新する段階をさらに含む。
【0097】
例55は、例35から54のいずれかの主題を含み、ブラウザベース・アプリケーションは、Hypertext Markup Language 5のアプリケーション又は他のウェブアプリケーションである。
【0098】
例56は、プロセッサと、プロセッサによって実行された場合にコンピューティングデバイスに例35から55のいずれかの方法を実行させる、格納された複数の命令を持つメモリとを持つコンピューティングデバイスを含む。
【0099】
例57は、実行されることに応答して、例35から55のいずれかの方法を実行するコンピューティングデバイスをもたらす、格納された複数の命令を備える1又は複数の機械可読ストレージ媒体を含む。
【0100】
例58は、ブラウザベース・アプリケーションのセキュリティを検証するための方法を含む。方法は、クライアントコンピューティングデバイス用いて、クライアントコンピューティングデバイスがブラウザベース・アプリケーションを要求したかを判断する段階と、ブラウザベース・アプリケーションが要求されたとの判断に応答して、ブラウザベース・アプリケーションのセキュリティを検証するためのクラウドサービスシステムにアプリケーション検証要求を送信する段階と、アプリケーション検証要求の送信に応答して、クライアントコンピューティングデバイスで、クラウドサービスシステムからセキュリティ勧告を受信する段階と、クライアントコンピューティングデバイス上で、クラウドサービスシステムから受信したセキュリティ勧告に応答して、セキュリティアクションを実行する段階とを含む。
【0101】
例59は、例58の主題を含み、ブラウザベース・アプリケーションは、Hypertext Markup Language 5のアプリケーション又は他のウェブアプリケーションである。
【0102】
例60は、例58及び59のいずれかの主題を含み、クライアントコンピューティングデバイスがブラウザベース・アプリケーションを要求したかを判断する段階は、クライアントコンピューティングデバイスが、ブラウザベース・アプリケーションに向けられたハイパーリンクを実行したかを判断する段階を備える。
【0103】
例61は、例58から60のいずれかの主題を含み、アプリケーション検証要求を送信する段階は、ブラウザベース・アプリケーションのソースコードの少なくとも一部を、クラウドサービスシステムに送信する段階を備える。
【0104】
例62は、例58から61のいずれかの主題を含み、アプリケーション検証要求を送信する段階は、ブラウザベース・アプリケーションを入手可能なロケーションを示すロケーションデータを送信する段階を備える。
【0105】
例63は、例58から62のいずれかの主題を含み、ロケーションデータを送信する段階は、ブラウザベース・アプリケーションのユニフォームリソースロケータを送信する段階を備える。
【0106】
例64は、例58から63のいずれかの主題を含み、セキュリティアクションを実行する段階は、クライアントコンピューティングデバイスのユーザに、セキュリティ勧告を通知する段階を備える。
【0107】
例65は、例58から64のいずれかの主題を含み、セキュリティアクションを実行する段階は、ブラウザベース・アプリケーションのソースコードを、クライアントコンピューティングデバイスから削除する段階を備える。
【0108】
例66は、例58から65のいずれかの主題を含み、セキュリティアクションを実行する段階は、クライアントコンピューティングデバイスのメモリへの、ブラウザベース・アプリケーションのダウンロードを妨げる段階を備える。
【0109】
例67は、例58から66のいずれかの主題を含み、セキュリティアクションを実行する段階は、クライアントコンピューティングデバイスのメモリのセキュアロケーション内に、ブラウザベース・アプリケーションを隔離する段階を備える。
【0110】
例68は、例58から67のいずれかの主題を含み、クラウドサービスシステムにフィードバックを送信する段階をさらに含む。
【0111】
例69は、例58から68のいずれかの主題を含み、クラウドサービスシステムにフィードバックを送信する段階は、クライアントコンピューティングデバイスによって実行されたセキュリティアクションを示すフィードバックを送信する段階を備える。
【0112】
例70は、例58から69のいずれかの主題を含み、クライアントコンピューティングデバイス上で、ブラウザベース・アプリケーションのローカルセキュリティ解析を実行する段階をさらに含む。
【0113】
例71は、例58から70のいずれかの主題を含み、ブラウザベース・アプリケーションのローカルセキュリティ解析を実行する段階は、ブラウザベース・アプリケーションを、複数のウイルスシグネチャと比較する段階を備える。
【0114】
例72は、プロセッサと、プロセッサによって実行された場合にコンピューティングデバイスに例58から71のいずれかの方法を実行させる、格納された複数の命令を持つメモリとを持つコンピューティングデバイスを含む。
【0115】
例73は、実行されることに応答して、例58から71のいずれかの方法を実行するコンピューティングデバイスをもたらす、格納された複数の命令を備える1又は複数の機械可読ストレージ媒体を含む。