(57)【要約】  ブラウザベース・アプリケーション（ブラウザアプリ）のセキュリティ検証のための方法、デバイス及びシステムが開示される。クライアントデバイス（クライアント）はウェブサーバからのブラウザアプリを要求する。クライアントのアプリケーションセキュリティモジュールが介入しアプリケーション検証要求をクラウドサービスシステムに送信する。クラウドサービスシステムはブラウザアプリ及びソースのセキュリティ関連データをクラウドリソース及びクラウドサーバのローカルデータベースから得て、データを用いてソースを認証しアプリケーションのセキュリティを検証し、クライアントにブラウザアプリのセキュリティに係る勧告を提供し、ローカルデータベースを更新する。クライアントはブラウザアプリのダウンロード／実行の判断に勧告を考慮し、フィードバックをクラウドサービスシステムに提供し、又、勧告受信後にローカルセキュリティ解析を行い得る。
2015527685.tif 000002
【特許請求の範囲】
【請求項１】
ブラウザベース・アプリケーションについてセキュリティ勧告を生成するためのクラウドサービスシステムであって、クラウドサーバは、
クライアントコンピューティングデバイスからアプリケーション検証要求を受信する通信モジュールと、
（ｉ）前記ブラウザベース・アプリケーションのソースを特定するアプリケーションソースデータを受信し、（ｉｉ）ソース認証データを取得し、（ｉｉｉ）前記アプリケーションソースデータ及び前記ソース認証データに応じて、前記ソースを認証するソース認証モジュールと、
（ｉ）アプリケーション検証データを取得し、（ｉｉ）前記アプリケーション検証データに応じて前記ブラウザベース・アプリケーションを検証するアプリケーション検証モジュールと、
前記ソース認証モジュールの前記認証及び前記アプリケーション検証モジュールの前記検証に応答して、セキュリティ勧告を生成する勧告エンジンと
を備え、
前記通信モジュールはさらに、前記セキュリティ勧告を前記クライアントコンピューティングデバイスに送信する
クラウドサービスシステム。
【請求項２】
前記ソース認証モジュールは、（ｉ）前記ブラウザベース・アプリケーションのロケーションを特定するロケーションデータを受信し、（ｉｉ）前記特定されたロケーションに位置するウェブサーバから前記ブラウザベース・アプリケーションをダウンロードする
請求項１に記載のクラウドサービスシステム。
【請求項３】
前記ロケーションデータは、前記ブラウザベース・アプリケーションのユニフォームリソースロケータを含む
請求項２に記載のクラウドサービスシステム。
【請求項４】
前記ソース認証モジュールは、
前記クライアントコンピューティングデバイス以外の遠隔ロケーションから前記アプリケーションソースデータを取得し、
前記アプリケーション検証モジュールは、前記遠隔ロケーションから前記ブラウザベース・アプリケーションを取得する
請求項１から３のいずれか１項に記載のクラウドサービスシステム。
【請求項５】
前記セキュリティ勧告は、前記ブラウザベース・アプリケーションの信頼のレベルを特定する
請求項１から４のいずれか１項に記載のクラウドサービスシステム。
【請求項６】
前記勧告エンジンは、前記セキュリティ勧告に応答して前記クライアントコンピューティングデバイスからフィードバックを受信する
請求項１から５のいずれか１項に記載のクラウドサービスシステム。
【請求項７】
前記フィードバックは、前記クライアントコンピューティングデバイスによってなされたセキュリティアクションを示す
請求項６に記載のクラウドサービスシステム。
【請求項８】
前記勧告エンジンは、前記クライアントコンピューティングデバイスからフィードバックを受信したことに応答して前記クラウドサーバのローカルデータベースを更新する
請求項６又は７に記載のクラウドサービスシステム。
【請求項９】
前記アプリケーションソースデータは、前記ブラウザベース・アプリケーションのホストを特定する
請求項１から８のいずれか１項に記載のクラウドサービスシステム。
【請求項１０】
前記アプリケーションソースデータは、前記ブラウザベース・アプリケーションを入手可能なインターネットプロトコルアドレスを示す
請求項１から９のいずれか１項に記載のクラウドサービスシステム。
【請求項１１】
前記ソース認証モジュールは、前記クラウドサーバのローカルデータベースから前記ソース認証データを取得し、
前記アプリケーション検証モジュールは、前記ローカルデータベースから前記アプリケーション検証データを取得する
請求項１から１０のいずれか１項に記載のクラウドサービスシステム。
【請求項１２】
前記ソース認証モジュールは、前記クラウドサーバがアクセス可能な複数のクラウドリソースから前記ソース認証データを取得し、
前記アプリケーション検証モジュールは、前記複数のクラウドリソースから前記アプリケーション検証データを取得する
請求項１から１０のいずれか１項に記載のクラウドサービスシステム。
【請求項１３】
前記ソース認証モジュールは、前記アプリケーションソースデータを前記ソース認証データと比較することによって前記ソースを認証し、
前記ソース認証データは、既知の悪意のあるブラウザベースのアプリケーションの複数のホストのリストを含む
請求項１から１２のいずれか１項に記載のクラウドサービスシステム。
【請求項１４】
前記アプリケーション検証モジュールは、前記ブラウザベース・アプリケーションを、前記ブラウザベース・アプリケーションの信頼されたソースコードと比較することによって、前記ブラウザベース・アプリケーションの前記セキュリティを検証する
請求項１から１３のいずれか１項に記載のクラウドサービスシステム。
【請求項１５】
前記アプリケーション検証モジュールは、前記ブラウザベース・アプリケーションを、前記アプリケーション検証データと比較することによって、前記ブラウザベース・アプリケーションの前記セキュリティを検証し、
前記アプリケーション検証データは、既知の複数のマルウェアシグネチャを含む
請求項１から１０のいずれか１項に記載のクラウドサービスシステム。
【請求項１６】
前記アプリケーション検証モジュールは、前記クラウドサーバがアクセス可能な複数のクラウドリソースから前記アプリケーション検証データを取得する
請求項１５に記載のクラウドサービスシステム。
【請求項１７】
前記アプリケーション検証モジュールは、前記クラウドサーバのローカルデータベースから前記アプリケーション検証データを取得する
請求項１６に記載のクラウドサービスシステム。
【請求項１８】
前記セキュリティ勧告は、前記ブラウザベース・アプリケーションがセキュアであるかを示す
請求項１から１７のいずれか１項に記載のクラウドサービスシステム。
【請求項１９】
前記勧告エンジンは、前記セキュリティ勧告の生成に応答して、前記クラウドサーバのローカルデータベースを更新する
請求項１から１８のいずれか１項に記載のクラウドサービスシステム。
【請求項２０】
前記ブラウザベース・アプリケーションは、Ｈｙｐｅｒｔｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ  ５のアプリケーション又は他のウェブアプリケーションである
請求項１から１９のいずれか１項に記載のクラウドサービスシステム。
【請求項２１】
ブラウザベース・アプリケーションのセキュリティを検証するためのクライアントコンピューティングデバイスであって、前記クライアントコンピューティングデバイスは、
（ｉ）前記クライアントコンピューティングデバイスが前記ブラウザベース・アプリケーションを要求したかを判断し、（ｉｉ）前記ブラウザベース・アプリケーションが要求されたとの判断に応答して、前記ブラウザベース・アプリケーションの前記セキュリティを検証するためのクラウドサービスシステムにアプリケーション検証要求を送信するアプリケーションセキュリティモジュールと、
前記クラウドサービスシステムからセキュリティ勧告を受信する通信モジュールと
を備え、
前記アプリケーションセキュリティモジュールはさらに、前記セキュリティ勧告に応答してセキュリティアクションを実行する
クライアントコンピューティングデバイス。
【請求項２２】
前記ブラウザベース・アプリケーションは、Ｈｙｐｅｒｔｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ  ５のアプリケーション又は他のウェブアプリケーションである
請求項２１に記載のクライアントコンピューティングデバイス。
【請求項２３】
前記クライアントコンピューティングデバイスが前記ブラウザベース・アプリケーションを要求したかを、前記アプリケーションセキュリティモジュールが判断することは、
前記クライアントコンピューティングデバイスが、前記ブラウザベース・アプリケーションに向けられたハイパーリンクを実行したかを判断することを備える
請求項２１又は２２に記載のクライアントコンピューティングデバイス。
【請求項２４】
前記アプリケーションセキュリティモジュールが前記アプリケーション検証要求を送信することは、
前記ブラウザベース・アプリケーションのソースコードの少なくとも一部を、前記クラウドサービスシステムに送信することを備える
請求項２１から２３のいずれか１項に記載のクライアントコンピューティングデバイス。
【請求項２５】
前記アプリケーションセキュリティモジュールが前記アプリケーション検証要求を送信することは、
前記ブラウザベース・アプリケーションを入手可能なロケーションを示すロケーションデータを送信することを備える
請求項２１から２３のいずれか１項に記載のクライアントコンピューティングデバイス。
【請求項２６】
前記ロケーションデータは、前記ブラウザベース・アプリケーションのユニフォームリソースロケータを備える
請求項２５に記載のクライアントコンピューティングデバイス。
【請求項２７】
前記セキュリティアクションは、前記クライアントコンピューティングデバイスのユーザに、前記セキュリティ勧告を通知することを備える
請求項２１から２６のいずれか１項に記載のクライアントコンピューティングデバイス。
【請求項２８】
前記セキュリティアクションは、前記ブラウザベース・アプリケーションのソースコードを、前記クライアントコンピューティングデバイスから削除することを備える
請求項２１から２６のいずれか１項に記載のクライアントコンピューティングデバイス。
【請求項２９】
前記セキュリティアクションは、前記クライアントコンピューティングデバイスのメモリへの、前記ブラウザベース・アプリケーションのダウンロードを妨げることを備える
請求項２１から２６のいずれか１項に記載のクライアントコンピューティングデバイス。
【請求項３０】
前記セキュリティアクションは、前記クライアントコンピューティングデバイスのメモリのセキュアロケーション内に、前記ブラウザベース・アプリケーションを隔離することを備える
請求項２１から２６のいずれか１項に記載のクライアントコンピューティングデバイス。
【請求項３１】
前記アプリケーションセキュリティモジュールは、前記クラウドサービスシステムにフィードバックを送信する
請求項２１から３０のいずれか１項に記載のクライアントコンピューティングデバイス。
【請求項３２】
前記フィードバックは、前記クライアントコンピューティングデバイスによって実行された前記セキュリティアクションを示す
請求項３１に記載のクライアントコンピューティングデバイス。
【請求項３３】
前記クライアントコンピューティングデバイス上で、前記ブラウザベース・アプリケーションのローカルセキュリティ解析を実行するローカルコード解析モジュール
をさらに備える請求項２１から３２のいずれか１項に記載のクライアントコンピューティングデバイス。
【請求項３４】
前記ローカルセキュリティ解析は、前記ブラウザベース・アプリケーションを複数のウイルスシグネチャと比較することを備える
請求項３３に記載のクライアントコンピューティングデバイス。
【請求項３５】
クラウドサービスシステム上でブラウザベース・アプリケーションについてセキュリティ勧告を生成するための方法であって、前記方法は、
前記ブラウザベース・アプリケーション、及び、前記ブラウザベース・アプリケーションのソースを特定するアプリケーションソースデータを受信する段階と、
ソース認証データ及びアプリケーション検証データを取得する段階と、
前記アプリケーションソースデータ及び前記ソース認証データに応じて、前記ソースを認証する段階と、
前記アプリケーション検証データに応じて前記ブラウザベース・アプリケーションの前記セキュリティを検証する段階と、
前記ソースを認証すること及び前記ブラウザベース・アプリケーションを検証することに応じて、セキュリティ勧告を生成する段階と、
前記セキュリティ勧告をクライアントコンピューティングデバイスに送信する段階と
を備える方法。
【請求項３６】
前記ブラウザベース・アプリケーションを受信する段階は、
（ｉ）前記ブラウザベース・アプリケーションのロケーションを特定するロケーションデータを受信する段階と、
（ｉｉ）前記特定されるロケーションに位置するウェブサーバから、前記ブラウザベース・アプリケーションをダウンロードする段階と
を備える請求項３５に記載の方法。
【請求項３７】
前記ブラウザベース・アプリケーションのロケーションを特定するロケーションデータを受信する段階は、
前記ブラウザベース・アプリケーションのユニフォームリソースロケータを受信する段階
を備える請求項３６に記載の方法。
【請求項３８】
前記ブラウザベース・アプリケーションに関するセキュリティ勧告を生成するよう前記クライアントコンピューティングデバイスから要求を受信する段階
をさらに備える請求項３５から３７のいずれか１項に記載の方法。
【請求項３９】
前記ブラウザベース・アプリケーション及びアプリケーションソースデータを、前記クライアントコンピューティングデバイス以外の遠隔ロケーションから受信する
請求項３８に記載の方法。
【請求項４０】
セキュリティ勧告を生成する段階は、
前記ブラウザベース・アプリケーションの信頼のレベルを特定する段階
を備える請求項３８又は３９に記載の方法。
【請求項４１】
前記セキュリティ勧告に応答して、前記クライアントコンピューティングデバイスからフィードバックを受信する段階
をさらに備える請求項３８から４０のいずれか１項に記載の方法。
【請求項４２】
フィードバックを受信する段階は、
前記クライアントコンピューティングデバイスによってなされたアクションを示すフィードバックを受信する段階
を備える請求項４１に記載の方法。
【請求項４３】
前記クライアントコンピューティングデバイスからフィードバックを受信したことに応答して、前記クラウドサービスシステムのローカルデータベースを更新する段階
をさらに備える請求項４１又は４２に記載の方法。
【請求項４４】
アプリケーションソースデータを受信する段階は、
前記ブラウザベース・アプリケーションのホストを特定するソースデータを受信する段階
を備える請求項３５から４３のいずれか１項に記載の方法。
【請求項４５】
前記ソースデータを受信する段階は、
前記ブラウザベース・アプリケーションを入手可能なインターネットプロトコルアドレスを受信する段階
を備える請求項４４に記載の方法。
【請求項４６】
ソース認証データ及びアプリケーション検証データを取得する段階は、
前記クラウドサービスシステムのローカルデータベースから、ソース認証データ及びアプリケーション検証データを取得する段階
を備える請求項３５から４５のいずれか１項に記載の方法。
【請求項４７】
ソース認証データ及びアプリケーション検証データを取得する段階は、
前記クラウドサービスシステムがアクセス可能な複数のクラウドリソースから、ソース認証データ及びアプリケーション検証データを取得する段階
を備える請求項３５から４５のいずれか１項に記載の方法。
【請求項４８】
前記ソースを認証する段階は、
前記アプリケーションソースデータを前記ソース認証データと比較する段階
を備え、
前記ソース認証データは、既知の悪意のあるブラウザベースのアプリケーションの複数のホストのリストを含む
請求項３５から４７のいずれか１項に記載の方法。
【請求項４９】
前記ブラウザベース・アプリケーションの前記セキュリティを検証する段階は、
前記ブラウザベース・アプリケーションを、前記ブラウザベース・アプリケーションの信頼されたソースコードと比較する段階
を備える請求項３５から４８のいずれか１項に記載の方法。
【請求項５０】
前記ブラウザベース・アプリケーションの前記セキュリティを検証する段階は、
前記ブラウザベース・アプリケーションを、前記アプリケーション検証データと比較する段階
を備え、
前記アプリケーション検証データは、既知の複数のマルウェアシグネチャを含む
請求項３５から４５のいずれか１項に記載の方法。
【請求項５１】
アプリケーション検証データを取得する段階は、
前記クラウドサービスシステムがアクセス可能な複数のクラウドリソースからアプリケーション検証データを取得する段階
を備える請求項５０に記載の方法。
【請求項５２】
アプリケーション検証データを取得する段階は、
前記クラウドサービスシステムのローカルデータベースからアプリケーション検証を取得する段階
を備える請求項５１に記載の方法。
【請求項５３】
セキュリティ勧告を生成する段階は、
前記ブラウザベース・アプリケーションがセキュアであるかを知らせる段階
を備える請求項３５から５２のいずれか１項に記載の方法。
【請求項５４】
前記セキュリティ勧告の生成に応答して、前記クラウドサービスシステムのローカルデータベースを更新する段階
をさらに備える請求項３５から５３のいずれか１項に記載の方法。
【請求項５５】
前記ブラウザベース・アプリケーションは、Ｈｙｐｅｒｔｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ  ５のアプリケーション又は他のウェブアプリケーションである
請求項３５から５４のいずれか１項に記載の方法。
【請求項５６】
コンピューティングデバイスであって、
プロセッサと、
前記プロセッサによって実行された場合に、請求項３５から５５のいずれか１項に記載の前記方法を前記コンピューティングデバイスに実行させる複数の命令が格納されたメモリと
を備えるコンピューティングデバイス。
【請求項５７】
請求項３５から５５のいずれか１項に記載の前記方法をコンピュータに実行させるためのプログラム。
【請求項５８】
ブラウザベース・アプリケーションのセキュリティを検証するための方法であって、前記方法は、
クライアントコンピューティングデバイス用いて、前記クライアントコンピューティングデバイスが前記ブラウザベース・アプリケーションを要求したかを判断する段階と、
前記ブラウザベース・アプリケーションが要求されたとの判断に応答して、前記ブラウザベース・アプリケーションの前記セキュリティを検証するためのクラウドサービスシステムにアプリケーション検証要求を送信する段階と、
前記アプリケーション検証要求の送信に応答して、前記クライアントコンピューティングデバイスで、前記クラウドサービスシステムからセキュリティ勧告を受信する段階と、
前記クライアントコンピューティングデバイス上で、前記クラウドサービスシステムから受信した前記セキュリティ勧告に応答して、セキュリティアクションを実行する段階と
を備える方法。
【請求項５９】
前記ブラウザベース・アプリケーションは、Ｈｙｐｅｒｔｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ  ５のアプリケーション又は他のウェブアプリケーションである
請求項５８に記載の方法。
【請求項６０】
前記クライアントコンピューティングデバイスが前記ブラウザベース・アプリケーションを要求したかを判断する段階は、
前記クライアントコンピューティングデバイスが、前記ブラウザベース・アプリケーションに向けられたハイパーリンクを実行したかを判断する段階
を備える請求項５８又は５９に記載の方法。
【請求項６１】
前記アプリケーション検証要求を送信する段階は、
前記ブラウザベース・アプリケーションのソースコードの少なくとも一部を、前記クラウドサービスシステムに送信する段階
を備える請求項５８から６０のいずれか１項に記載の方法。
【請求項６２】
前記アプリケーション検証要求を送信する段階は、
前記ブラウザベース・アプリケーションを入手可能なロケーションを示すロケーションデータを送信する段階
を備える請求項５８から６０のいずれか１項に記載の方法。
【請求項６３】
前記ロケーションデータを送信する段階は、
前記ブラウザベース・アプリケーションのユニフォームリソースロケータを送信する段階
を備える請求項６２に記載の方法。
【請求項６４】
前記セキュリティアクションを実行する段階は、
前記クライアントコンピューティングデバイスのユーザに、前記セキュリティ勧告を通知する段階
を備える請求項５８から６３のいずれか１項に記載の方法。
【請求項６５】
前記セキュリティアクションを実行する段階は、
前記ブラウザベース・アプリケーションのソースコードを、前記クライアントコンピューティングデバイスから削除する段階
を備える請求項５８から６３のいずれか１項に記載の方法。
【請求項６６】
前記セキュリティアクションを実行する段階は、
前記クライアントコンピューティングデバイスのメモリへの、前記ブラウザベース・アプリケーションのダウンロードを妨げる段階
を備える請求項５８から６３のいずれか１項に記載の方法。
【請求項６７】
前記セキュリティアクションを実行する段階は、
前記クライアントコンピューティングデバイスのメモリのセキュアロケーション内に、前記ブラウザベース・アプリケーションを隔離する段階
を備える請求項５８から６３のいずれか１項に記載の方法。
【請求項６８】
前記クラウドサービスシステムにフィードバックを送信する段階
をさらに備える請求項５８から６７のいずれか１項に記載の方法。
【請求項６９】
前記クラウドサービスシステムにフィードバックを送信する段階は、
前記クライアントコンピューティングデバイスによって実行された前記セキュリティアクションを示すフィードバックを送信する段階
を備える請求項６８に記載の方法。
【請求項７０】
前記クライアントコンピューティングデバイス上で、前記ブラウザベース・アプリケーションのローカルセキュリティ解析を実行する段階
をさらに備える請求項５８から６９のいずれか１項に記載の方法。
【請求項７１】
前記ブラウザベース・アプリケーションの前記ローカルセキュリティ解析を実行する段階は、
前記ブラウザベース・アプリケーションを、複数のウイルスシグネチャと比較する段階
を備える請求項７０に記載の方法。
【請求項７２】
コンピューティングデバイスであって、
プロセッサと、
前記プロセッサによって実行された場合に、請求項５８から７１のいずれか１項に記載の前記方法を、前記コンピューティングデバイスに実行させる複数の命令が格納されたメモリと
を備えるコンピューティングデバイス。
【請求項７３】
請求項５８から７１のいずれか１項に記載の前記方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【背景技術】
【０００１】
ウェブコミュニティへのＨＴＭＬ５のプログラミングプラットフォームの出現は、対話するユーザに高速で動的なエクスペリエンスを可能にした。プログラミングプラットフォームは、複数のアプリケーションプログラミングインタフェース（ＡＰＩ）を動的コンテンツの生成及びプレゼンテーションと組み合わせて、したがって、向上した複数の特徴及び複数の機能を複数の開発者が複数のブラウザベース・アプリケーションに組み込むことが可能になる。例えば、ＨＴＭＬ５は、複数の開発者が、クライアントデバイスのブラウザ内で実行可能なアクティブコードをウェブページに実装することを可能にする。
【０００２】
残念ながら、ＨＴＭＬ５の動的な性質はまた、多数のセキュリティリスクをユーザにもたらした。プログラミングプラットフォームは、複数の開発者がアクティブコードをウェブページに組み込むことを可能にするので、コードに関するユーザの認識なしに頻繁にコードが実行され得る。いくつかの既存のソリューションは、クライアントデバイスがアプリケーションの信頼性を検証することを可能にする。例えば、いくつかの開発者は、クライアントデバイスがダウンロードするとコードを検証し得ることを可能にするべく、彼らの開発したソフトウェアを署名するためにデジタルシグネチャを使用してよい。しかし、それらのソリューションは、単一ソース及び１回の様式での、特定の複数の開発者又は複数の発行者によって供されたソフトウェアの信頼性の検証しか提供しない。その上、そのような複数のソリューションは、特定のソフトウェアベンダ又はサービスプロバイダから独立した複数のウェブサービス・アプリケーション（例えば、ＨＴＭＬ５ベースの動的なコンテンツ生成及び複数のブラウザプラグイン）の動的な検証を提供しない。従って、ブラウザベース・アプリケーションがセキュアであることをそのアプリケーションをダウンロード又は実行する前に保証するために、複数のユーザには利用可能な限られた複数の選択肢しかない。
【図面の簡単な説明】
【０００３】
ここで記載される概念は、複数の添付図面において、限定のためでなく例として示される。説明の簡潔さかつ明確さのために、複数の図面に示される複数の要素は、必ずしも縮尺通りに描かれていない。適切であると考えられる場合、複数の参照符号は、対応する又は類似の複数の要素を示すために、図面の中で繰り返される。
【図１】ブラウザベース・アプリケーションのセキュリティ検証のためのシステムの少なくとも１つの実施形態の簡略化されたブロック図である。
【図２】図１のシステムのクラウドサービスサーバの環境の少なくとも１つの実施形態の簡略化されたブロック図である。
【図３】図１のシステムのクライアントコンピューティングデバイスの環境の少なくとも１つの実施形態の簡略化されたブロック図である。
【図４】図１のクラウドサービスサーバを用いてブラウザベース・アプリケーションのためのセキュリティ勧告を生成するための方法の少なくとも１つの実施形態の簡略化したフロー図である。
【図５】図１のクライアントコンピューティングデバイスによってアクセスされるブラウザベース・アプリケーションのセキュリティを検証するための方法の少なくとも１つの実施形態の簡略化したフロー図である。
【発明を実施するための形態】
【０００４】
本開示の複数の概念は様々な変形及び複数の代替形式が可能であるものの、それらの特定の複数の実施形態が複数の図面に例として表され、ここで詳細に述べられる。しかし、当然のことながら、本開示の複数の概念を、開示された特定の複数の形式に限定する意図はない。しかし、反対に、その意図は、本開示及び添付の特許請求の範囲と整合性のある複数の変形、複数の等価物及び複数の代替物の全てをカバーする。
【０００５】
明細書における「一実施形態」、「実施形態」、「例示の実施形態」等の言及は、説明される実施形態が、特定の機能、構造又は特性を含み得ることを示す。しかし、各実施形態は、特定の機能、構造又は特性を含んでよい又は必ずしも含まなくてよい。さらに、そのような複数の文言は、必ずしも同一の実施形態を参照していない。さらに、実施形態に関連して特定の機能、構造又は特性が説明された場合、明示的に説明されているか否かにかかわらず、他の複数の実施形態に関連してそのような特徴、構造又は特性を達成することは当業者の知識の内であるとされる。
【０００６】
開示された複数の実施形態は、場合によっては、ハードウェア、ファームウェア、ソフトウェア又はそれらの任意の組み合わせで実装されてよい。開示された複数の実施形態は、１又は複数のプロセッサによって読み取られて実行され得る、一時的又は非一時的機械可読（例えば、コンピュータ可読）記憶媒体によって搬送される、又は、一時的又は非一時的機械可読記憶媒体に格納される、複数の命令として実装されてもよい。機械可読記憶媒体は、機械（例えば、揮発性又は不揮発性メモリ、媒体ディスク又は他の媒体デバイス）によって可読な形で情報を格納又は送信するための、任意のストレージデバイス、メカニズム又は他の物理構造として具現化されてよい。
【０００７】
複数の図面において、いくつかの構造的又は方法の特徴が、特定の複数の配置及び／又は複数の順序で表され得る。しかし、そのような特定の複数の配置及び／又は複数の順序が必要とされなくてよいことが認識されるべきである。むしろ、いくつかの実施形態では、そのような複数の特徴は、例示の図面に表されるものとは異なるやり方及び／又は順序で構成されてよい。更に、特定の図面に構造的又は方法の複数の特徴を含めることは、そのような特徴が、全ての複数の実施形態で必要とされることを暗示するものでもなく、また、いくつかの実施形態では、含まれなくてよい、又は、他の複数の特徴と組み合されてよい。
【０００８】
ここで図１を参照して、クラウド支援されたブラウザベース・アプリケーションのセキュリティ検証のためのシステム１００は、クライアントコンピューティングデバイス１０２、ネットワーク１０４、ウェブサーバ１０６、クラウドサービスシステム１０８、及び、クラウドサービスシステム１０８の内部又は外部にあってよい複数のクラウドリソース１１０を含む。使用において、以下により詳細に述べられるように、クライアントコンピューティングデバイス１０２は、ブラウザベース・アプリケーション３０４のセキュリティに関するクラウドサービスシステム１０８の肯定の勧告に応答して、ウェブサーバ１０６から要求されたブラウザベース・アプリケーション３０４（図３を参照のこと）をセキュアに起動する。  １つのクライアントコンピューティングデバイス１０２、１つのネットワーク１０４、１つのウェブサーバ１０６、１つのクラウドサービスシステム１０８、及び１つのクラウドリソース１１０のみが図１に例示的に表されるが、他の複数の実施形態において、システム１００は、任意の数の、クライアントコンピューティングデバイス１０２、ネットワーク１０４、ウェブサーバ１０６、クラウドサービスシステム１０８、及びクラウドリソース１１０を含んでよい。例えば、いくつかの実施形態では、複数のウェブサーバ１０６から要求された複数のブラウザベース・アプリケーション３０４のセキュリティを検証するために、１つのクラウドサービスシステム１０８が、いくつかのクライアントコンピューティングデバイス１０２と、いくつかのネットワーク１０４上で通信してよい。
【０００９】
クライアントコンピューティングデバイス１０２は、ここで説明される複数の機能を実行可能な任意のタイプのコンピューティングデバイスとして具現されてよい。例えば、クライアントコンピューティングデバイス１０２は、企業レベルのサーバ、デスクトップ型コンピュータ、ラップトップコンピュータ、モバイルインターネットデバイス、ハンドヘルドコンピュータ、スマートフォン、携帯情報端末、テレフォニーデバイス、又は他のコンピューティングデバイスとして具現されてよい。図１の例示の実施形態において、クライアントコンピューティングデバイス１０２は、プロセッサ１１２、Ｉ／Ｏサブシステム１１４、メモリ１１６、通信回路１１８、データストレージデバイス１２０、及び１又は複数の周辺機器１２２を含む。いくつかの実施形態では、いくつかの前述のコンポーネントは、クライアントコンピューティングデバイス１０２のマザーボードに組み込まれてよい。他方、他の複数のコンポーネントは、例えば周辺ポートを介してマザーボードに通信可能に結合されてよい。その上、クライアントコンピューティングデバイス１０２は、コンピュータ及び／又はコンピューティングデバイスに通常備えられる他の複数のコンポーネント、サブコンポーネント及び複数のデバイスを含んでよいことが理解されるべきであり、それらは記載の明確さのために図１に示されていない。
【００１０】
クライアントコンピューティングデバイス１０２のプロセッサ１１２は、マイクロプロセッサ、デジタルシグナルプロセッサ、マイクロコントローラ等のような、ソフトウェア／ファームウェアを実行可能な任意のタイプのプロセッサとして具現されてよい。いくつかの実施形態では、プロセッサ１１２は、プロセッサコアを持つシングルコアプロセッサであってよい。しかし、他の複数の実施形態において、プロセッサ１１２は、複数のプロセッサコアを持つマルチコアプロセッサとして具現されてよい。更に、クライアントコンピューティングデバイス１０２は、１又は複数のプロセッサコアを持つ追加の複数のプロセッサ１１２を含んでよい。
【００１１】
クライアントコンピューティングデバイス１０２のＩ／Ｏサブシステム１１４は、プロセッサ１１２及び／又はクライアントコンピューティングデバイス１０２の他の複数のコンポーネントとの複数の入出力動作を促進する回路及び／又は複数のコンポーネントとして具現されてよい。いくつかの実施形態では、Ｉ／Ｏサブシステム１１４は、メモリコントローラハブ（ＭＣＨ又は「ノースブリッジ」）、入出力コントローラハブ（ＩＣＨ又は「サウスブリッジ」）、及びファームウェアデバイスとして具現されてよい。そのような複数の実施形態において、Ｉ／Ｏサブシステム１１４のファームウェアデバイスは、基本入出力システム（ＢＩＯＳ）データ及び／又は複数の命令及び／又は他の情報（例えば、クライアントコンピューティングデバイス１０２を起動する間に用いられるＢＩＯＳドライバ）を格納するメモリデバイスとして具現されてよい。しかし、他の複数の実施形態において、他の複数の構成を持つＩ／Ｏサブシステムが用られてよい。例えば、いくつかの実施形態ではＩ／Ｏサブシステム１１４は、プラットフォームコントローラハブ（ＰＣＨ）として具現されてよい。そのような複数の実施形態において、メモリコントローラハブ（ＭＣＨ）は、プロセッサ１１２に組み込まれてよいか、さもなくばプロセッサ１１２に関連してよく、プロセッサ１１２は、（図１のハッシュラインによって示されるように）メモリ１１６と直接に通信してよい。更に、他の複数の実施形態において、Ｉ／Ｏサブシステム１１４は、システムオンチップ（ＳｏＣ）の一部を形成してよく、プロセッサ１１２及びクライアントコンピューティングデバイス１０２の他の複数のコンポーネントと共に、単一の集積回路チップに組み込まれてよい。
【００１２】
プロセッサ１１２は、Ｉ／Ｏサブシステム１１０に、いくつかの信号経路を介して通信可能に結合されている。これらの信号経路（及び、図１に示される他の複数の信号経路）は、クライアントコンピューティングデバイス１０２の複数のコンポーネントの間の通信を促進可能な任意のタイプの複数の信号経路として具現されてよい。例えば、複数の信号経路は、任意の数のワイヤ、ケーブル、ライトガイド、プリント回路基板トレース、ビア、バス、仲介デバイス等として具現されてよい。
【００１３】
クライアントコンピューティングデバイス１０２のメモリ１１６は、例えば複数のダイナミックランダムアクセスメモリデバイス（ＤＲＡＭ）、複数のシンクロナスダイナミックランダムアクセスメモリデバイス（ＳＤＲＡＭ）、ダブルデータレートシンクロナスダイナミックランダムアクセスメモリデバイス（ＤＤＲ  ＳＤＲＡＭ）、複数のマスクリードオンリメモリ（ＲＯＭ）デバイス、消去可能プログラマブルＲＯＭ（ＥＰＲＯＭ）、複数の電気的消去可能プログラマブルＲＯＭ（ＥＥＰＲＯＭ）デバイス、複数のフラッシュメモリデバイス、並びに／若しくは、他の揮発性及び／又は不揮発性の複数のメモリデバイスを含む、１又は複数のメモリデバイス又はデータストレージロケーションとして具現されてよいか、さもなくば含んでよい。メモリ１１６は、いくつかの信号経路を介してＩ／Ｏサブシステム１１４に通信可能に結合される。図１には単一のメモリデバイス１１６だけが示されているが、他の複数の実施形態において、クライアントコンピューティングデバイス１０２は、追加の複数のメモリデバイスを含んでよい。様々なデータ及びソフトウェアが、メモリデバイス１１６に格納されてよい。例えば、プロセッサ１１２によって実行されるソフトウェアスタックを構成する１又は複数のオペレーティングシステム、アプリケーション、プログラム、ライブラリ、及びドライバが、実行中にメモリ１１６に存在してよい。さらに、メモリ１１６に格納されているソフトウェア及びデータは、複数のメモリ管理動作の一部としてメモリ１１６とデータストレージ１２０との間でスワップされてよい。
【００１４】
クライアントコンピューティングデバイス１０２の通信回路１１８は、ネットワーク１０４上でクライアントコンピューティングデバイス１０２と複数のリモートコンピューティングデバイス（例えば、ウェブサーバ１０６及びクラウドサービスシステム１０８）との間の複数の通信を可能にするために任意の数のデバイス及び回路として具現されてよい。ネットワーク１０４は、任意の数の様々な有線及び／又は無線通信ネットワークとして具現されてよい。例えば、ネットワーク１０４は、ローカルエリアネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）、又はインターネットなどの公衆アクセス可能なグローバルネットワークとして具現されてよいか、さもなくば含んでよい。更に、ネットワーク１０４は、クライアントコンピューティングデバイス１０２、ウェブサーバ１０６、及びクラウドサービスシステム１０８の間の通信を促進するための任意の数の追加のデバイスを含んでよい。クライアントコンピューティングデバイス１０２、ウェブサーバ１０６及びクラウドサービスシステム１０８は、例えば特定のタイプの１又は複数のネットワーク１０４に応じて１又は複数のネットワーク１０４上で互いに通信するために適切な通信プロトコルを用いてよい。図１の例示の実施形態において、クラウドサービスシステム１０８は、１又は複数のネットワーク１０４上でクラウドリソース１１０と通信してもよい。いくつかの実施形態では、クラウドリソース１１０は、クラウドサービスシステム１０８によってアクセス可能であるが、クライアントコンピューティングデバイス１０２及び／又はウェブサーバ１０６によってアクセス不可能である。
【００１５】
１又は複数のデータストレージデバイス１２０は、例えば、複数のメモリデバイス及び複数の回路、複数のメモリカード、複数のハードディスクドライブ、複数のソリッドステートドライブ、又は他の複数のデータストレージデバイスなど、データの短期又は長期ストレージのために設定された任意のタイプのデバイス又は複数のデバイスとして具現されてよい。例えば、以下により詳細に述べられるように、ブラウザベース・アプリケーション３０４（すなわち、実行可能コード）の一部は、いくつかの実施形態ではローカルコード解析モジュール３０８によってアクセスされることになる（図３を参照すること）１又は複数のデータストレージデバイス１２０のセキュアロケーションに格納されてよい。
【００１６】
クライアントコンピューティングデバイス１０２の複数の周辺機器１２２は、任意の数の周辺又はインターフェース機器を含んでよい。例えば、複数の周辺機器１２２は、ディスプレイ、キーボード、マウス、外部スピーカ及び／又は他の複数の周辺機器を含んでよい。複数の周辺機器１２２に含まれる特定の複数のデバイスは、例えばクライアントコンピューティングデバイス１０２の意図された使用に依存してよい。複数の周辺機器１２２は、いくつかの信号経路を介してＩ／Ｏサブシステム１１４に通信可能に結合され、それにより、Ｉ／Ｏサブシステム１１４及び／又はプロセッサ１１２が、複数の周辺機器１２２から複数の入力を受信し、複数の周辺機器１２２に複数の出力を送信することが可能になる。
【００１７】
ウェブサーバ１０６は、ここで説明される複数の機能を実行することが可能な任意のタイプの１又は複数のデータサーバ又は他の１又は複数のコンピューティングデバイスとして具現されてよい。例えば、図１の例示の実施形態においてウェブサーバ１０６は、ブラウザベース・アプリケーション３０４を生成して、ネットワーク１０４上でクライアントコンピューティングデバイス１０２に送信することが可能である。いくつかの実施形態では、ウェブサーバ１０６は、上述したようなクライアントコンピューティングデバイス１０２の複数のコンポーネントと同様の複数のコンポーネントを含んでよい。記載の明確さのために図１には示されていない、サーバ及び／又はコンピューティングデバイスに通常備えられる他の複数のコンポーネント、複数のサブコンポーネント、及び複数のデバイスを、ウェブサーバ１０６が含んでよいことが理解されるべきである。更に、ウェブサーバ１０６が単一の単体のウェブサーバとして図１に示されるが、ウェブサーバ１０６は、上述したようなブラウザベース・アプリケーション３０４を生成及び送信することが可能な複数のウェブサーバ及び／又は同様の複数のデバイスの集合として具現されてよい。
【００１８】
図１の例示の実施形態において、クラウドサービスシステム１０８は、プロセッサ１２４、Ｉ／Ｏサブシステム１２６、メモリ１２８、通信回路１３０、データストレージデバイス１３２、ローカルデータベース１３４、並びに１又は複数の周辺機器１３６を含むクラウドサービスサーバとして具現される。いくつかの実施形態では、複数の前述のコンポーネントのいくつかは、クラウドサービスシステム１０８のマザーボードに組み込まれてよい。他方、他の複数のコンポーネントは、例えば周辺ポートを介してマザーボードに通信可能に結合されてよい。さらに、クラウドサービスシステム１０８が、記載の明確さのために図１に示されていない、サーバ及び／又はコンピューティングデバイスに通常備えられる他の複数のコンポーネント、複数のサブコンポーネント及び複数のデバイスを含んでよいことが理解されるべきである。更に、クラウドサービスシステム１０８が、単一の単体のクラウドサービスサーバとして図１に示され、及び以下に述べられているが、クラウドサービスシステム１０８は、複数のクラウドサーバ、及び／又は、以下に述べられるような１又は複数のクラウドサービスを協働して提供する同様の複数のデバイスの集合として具現されてよい。
【００１９】
クラウドサービスシステム１０８のプロセッサ１２４、Ｉ／Ｏサブシステム１２６、メモリ１２８、通信回路１３０、データストレージデバイス１３２、及び１又は複数の周辺機器１３６は、上述のようなクライアントコンピューティングデバイス１０２の対応する複数のコンポーネントと同様であってよい。従って、クライアントコンピューティングデバイス１０２のそのような同様の複数のコンポーネントの説明は、クラウドサービスシステム１０８の同様の複数のコンポーネントに等しく適用でき、説明の明確さのためにここでは繰り返されない。更に、クラウドサービスシステム１０８のローカルデータベース１３４は、１又は複数のブラウザベース・アプリケーション３０４及び１又は複数のブラウザベース・アプリケーション３０４の複数のソースのセキュリティに向けられたデータの格納に適した、任意の電子装置又は構造として具現されてよい。
【００２０】
図１の例示の実施形態において、複数のクラウドリソース１１０は、ブラウザベース・アプリケーション３０４のソースを認証する及び／又はブラウザベース・アプリケーション３０４の整合性を検証するためにクラウドサービスシステム１０８によって用いられてよいデータ及び他の複数の電子的リソースを含む。いくつかの実施形態では、クラウドリソース１１０は、クラウドサービスシステム１０８と同一のクラウドコンピューティング環境に属する他の複数のサーバ及び／又は複数のコンピューティングデバイスを含んでよい。他の複数の実施形態において、クラウドリソース１１０は、ブラウザベース・アプリケーションの検証データ及び／又はソース認証データを格納するための１又は複数のデータベース又は他の複数のデータ構造を含んでよい。
【００２１】
使用において、図２に示されるように、クラウドサービスシステム１０８は、ブラウザベース・アプリケーション３０４のためのセキュリティ勧告を生成するための環境２００をクラウドサービスシステム１０８上に確立してよい。例示の実施形態において、環境２００は、それぞれソフトウェア、ファームウェア、ハードウェア又はそれらの組み合わせとして具現され得る、ソース認証モジュール２０２、アプリケーション検証モジュール２０４、勧告エンジン２０６、及び通信モジュール２０８を含む。
【００２２】
ソース認証モジュール２０２は、ブラウザベース・アプリケーション３０４（例えば、ブラウザベース・アプリケーション３０４がダウンロードされたウェブサイト）のソースを認証するよう構成される。そうするために、ソース認証モジュール２０２は、クラウドサービスシステム１０８及び／又は複数のクラウドリソース１１０のローカルデータベース１１８から、ソース認証データを取得してよい。ソース認証データは、ソース認証モジュール２０２によって、ブラウザベース・アプリケーション３０４のソースの信頼性を判断するために使用可能な任意のタイプのデータとして具現されてよい。例えば、ソース認証データは、既知の信頼された及び／又は悪意のあるブラウザベース・アプリケーション３０４の複数のディストリビュータ又は複数のホスト（例えば、ウェブサイト）を特定する情報として具現されてよいか、さもなくば含んでよい。
【００２３】
ソース認証モジュール２０２はまた、クライアントコンピューティングデバイス１０２又はウェブサーバ１０６から、ブラウザベース・アプリケーション３０４の特定のソースを特定するアプリケーションソースデータを受信してよい。そのような複数の実施形態において、ソース認証モジュール２０２は、ブラウザベース・アプリケーション３０４の特定されたソースがセキュアで信頼されたホスト又はエンティティであるかを判断するべく、アプリケーションソースデータをソース認証データと比較することによって、ブラウザベース・アプリケーション３０４のソースを認証してよい。
【００２４】
アプリケーション検証モジュール２０４は、ブラウザベース・アプリケーション３０４自体のセキュリティを検証するよう構成される。そうするために、いくつかの実施形態では、アプリケーション検証モジュール２０４は、クラウドサービスシステム１０８のローカルデータベース１１８からアプリケーション検証データを取得してよい、及び／又は、複数のクラウドリソース１１０からアプリケーション検証データを取得してよい。アプリケーション検証データは、アプリケーション検証モジュール２０４がブラウザベース・アプリケーション３０４のコードと比較し得る信頼されたソースコードとして具現されてよい。そのような複数の実施形態において、アプリケーション検証モジュール２０４は、ブラウザベース・アプリケーション３０４のセキュリティを検証するために、信頼されたソースコードを、ブラウザベース・アプリケーションのコードと比較してよい。更に又は代替的に、アプリケーション検証データは、ブラウザベース・アプリケーション３０４のコードを解析するためにアプリケーション検証モジュール２０４によって使用可能な既知の複数のウイルスシグネチャ又は複数のパターンを含んでよい。すなわち、アプリケーション検証モジュール２０４は、ブラウザベース・アプリケーション３０４が、悪意のあるコードを含むか、さもなくば不正であるかを判断するために、ブラウザベース・アプリケーション３０４のコード解析を実行してよい。更に、いくつかの実施形態では、アプリケーション検証モジュール２０４は、ブラウザベース・アプリケーション３０４の開発者／発行者の身元を判断してよい。例えば、ソース認証データと同様、アプリケーション検証データは、ブラウザベース・アプリケーション３０４のセキュリティを検証する場合にアプリケーション検証モジュール２０４によって用いられ得る、既知の信頼された及び悪意のあるブラウザベース・アプリケーション３０４の複数の開発者及び複数の発行者に関する情報を含んでよい。
【００２５】
勧告エンジン２０６は、ソース認証モジュール２０２及び／又はアプリケーション検証モジュール２０４によって実行された解析に基づき、ブラウザベース・アプリケーション３０４のセキュリティに関して、クライアントコンピューティングデバイス１０２に勧告を提供するよう構成される。上述したように、ソース認証モジュール２０２がブラウザベース・アプリケーション３０４のソースを解析し、アプリケーション検証モジュール２０４がブラウザベース・アプリケーション３０４自体を解析する。いくつかの実施形態では、勧告エンジン２０６は、ブラウザベース・アプリケーション３０４がセキュアであるかを判断するため、及び、クライアントコンピューティングデバイス１０２に勧告するために、ソース認証モジュール２０２の解析及びアプリケーション検証モジュール２０４の解析を相関させてよい。勧告エンジン２０６のセキュリティ勧告は、多くの異なる形式を取り得る。例えば、いくつかの実施形態では、勧告エンジン２０６は、ブラウザベース・アプリケーション３０４のソースが信頼されたソースであるとソース認証モジュール２０２が判断し、及び／又は、信頼された当事者によってブラウザベース・アプリケーション３０４が開発又は発行されたとアプリケーション検証モジュール２０４が判断した場合にのみ、クライアントコンピューティングデバイス１０２がブラウザベース・アプリケーション３０４を実行することを勧告してよい。他の複数の実施形態において、勧告エンジン２０６は、クライアントコンピューティングデバイス１０２に、ブラウザベース・アプリケーション３０４がセキュアであるパーセント確率か、さもなくば、勧告がある閾値に基づいているパーセント確率を提供してよい。もちろん、他の複数の実施形態において、勧告の他の複数の形態が用いられてよい。勧告エンジン２０６は、クラウドサービスシステム１０８とシステム１００の他の複数のデバイスとの間の通信を処理する通信モジュール２０８を用いて、勧告をクライアントに送信してよい。
【００２６】
ここで図３を参照して、使用される場合、クライアントコンピューティングデバイス１０２は、クライアントコンピューティングデバイス１０２によって要求されたブラウザベース・アプリケーション３０４のセキュリティを検証するための環境３００を確立してよい。例示の実施形態における環境３００は、それぞれソフトウェア、ハードウェア、ファームウェア及び／又はそれらの組み合わせとして具現され得る、ブラウザ３０２、ブラウザベース・アプリケーション３０４、アプリケーションセキュリティモジュール３０６、ローカルコード解析モジュール３０８、及び通信モジュール３１０を含む。
【００２７】
クライアントコンピューティングデバイス１０２のブラウザ３０２は、ウェブサーバ１０６からのブラウザベース・アプリケーション３０４を要求及び解釈するために用いられてよい。いくつかの実施形態では、ブラウザベース・アプリケーション３０４は、Ｈｙｐｅｒｔｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ５（ＨＴＭＬ５）のアプリケーションとして具現されてよい。他の複数の実施形態において、ブラウザベース・アプリケーション３０４は、クライアントコンピューティングデバイス１０２のブラウザ３０２によって実行及び／又は解釈されることが可能な任意のソフトウェアアプリケーションとして具現されてよい。
【００２８】
アプリケーションセキュリティモジュール３０６は、クライアントコンピューティングデバイス１０２上のブラウザベース・アプリケーション３０４のセキュリティ検証を実行するよう構成される。アプリケーションセキュリティモジュール３０６は、独立したモジュールとして具現されてよい、又は、いくつかの実施形態では、ブラウザプラグインとして具現されてよい。以下に述べられるように、ブラウザ３０２がブラウザベース・アプリケーション３０４を要求した場合、アプリケーションセキュリティモジュール３０６は、要求されたブラウザベース・アプリケーション３０４のセキュリティを検証するよう、クラウドサービスシステム１０８から検証の複数の結果を受信する通信モジュール３１０を用いて、クラウドサービスシステム１０８に要求してよい。いくつかの実施形態では、アプリケーションセキュリティモジュール３０６は、ブラウザ３０２がブラウザベース・アプリケーション３０４を実行すること又はブラウザベース・アプリケーション３０４の任意の部分をダウンロードすることを許可する前に解析のためにクラウドサービスシステム１０８に要求を転送してよい。更に、いくつかの実施形態では、クラウドサービスシステム１０８による検証の複数の結果は、クライアントコンピューティングデバイス１０２によって実行されることになる複数の命令又は複数の指示を含んでよい。そのような複数の実施形態において、アプリケーションセキュリティモジュール３０６は、例えばブラウザベース・アプリケーション３０４を削除する又は隔離するなどの任意のタイプのセキュリティアクションを含み得る、そのような追加の複数の命令又は複数の動作を実行するよう構成される。
【００２９】
いくつかの実施形態では、クライアントコンピューティングデバイス１０２は、ローカルコード解析モジュール３０８を含んでもよい。そのような複数の実施形態において、ローカルコード解析モジュール３０８は、クラウドサービスシステム１０８のアプリケーション検証モジュール２０４と同様、ブラウザベース・アプリケーション３０４が悪意のあるコードを含むか、さもなくば不正であるかを判断するよう構成されてよい。例えば、いくつかの実施形態では、ローカルコード解析モジュール３０８は、クラウドサービスシステム１０８から勧告を受信した後にブラウザベース・アプリケーション３０４をさらに解析してよい、及び／又は、ブラウザベース・アプリケーション３０４に関連する追加の複数のセキュリティ対策を実行してよい。
【００３０】
ここで図４を参照して、ブラウザベース・アプリケーション３０４に関するセキュリティ勧告を生成するための、クラウドサービスシステム１０８によって実行され得る方法４００の例示の実施形態は、ブロック４０２で始まる。ブロック４０２において、クラウドサービスシステム１０８は、クライアントコンピューティングデバイス１０２から、ブラウザベース・アプリケーション３０４のセキュリティを検証するためのアプリケーション検証要求が受信されたかを判断する。そうである場合、ブロック４０４において、クラウドサービスシステム１０８は、ブラウザベース・アプリケーション３０４又はブラウザベース・アプリケーション３０４のコードの一部を受信する。いくつかの実施形態では、ブロック４０４において、クラウドサービスシステム１０８は、クライアントコンピューティングデバイス１０２から、ブラウザベース・アプリケーション３０４のロケーションを示すメタデータを受信し、指定されたロケーションでウェブサーバ１０６からブラウザベース・アプリケーション３０４をダウンロードしてよい。例えば、クライアントコンピューティングデバイス１０２は、ブラウザベース・アプリケーション３０４のユニフォームリソースロケータ（ＵＲＬ）をクラウドサービスシステム１０８に提供してよい。クラウドサービスシステム１０８は、解析のためにブラウザベース・アプリケーション３０４を取得するべく、クライアントコンピューティングデバイス１０２から提供されたロケーション情報を使用してよい。
【００３１】
ブロック４０６において、クラウドサービスシステム１０８は、ブラウザベース・アプリケーション３０４のソースを認証する。そうすべく、ブロック４０８において、クラウドサービスシステム１０８は更に、クライアントコンピューティングデバイス１０２からアプリケーションソースデータを受信してよい。上述したように、アプリケーションソースデータは、ブラウザベース・アプリケーション３０４のソースを特定する任意のタイプのデータとして具現されてよい。例えば、アプリケーションソースデータは、ブラウザベース・アプリケーション３０４に関連付けられたトップレベルドメイン、サブドメイン、又はインターネットプロトコル（ＩＰ）アドレスを特定してよい。代替的に、アプリケーションソースデータが明確に特定されない複数の実施形態において、クラウドサービスシステム１０８は、ブラウザベース・アプリケーション３０４のソースを決定するために、ブロック４０４でクライアントコンピューティングデバイス１０２から提供されたロケーションデータを使用してよい。
【００３２】
いくつかの実施形態では、クラウドサービスシステム１０８は、ブラウザベース・アプリケーション３０４及び／又はアプリケーションソースデータを、クライアントコンピューティングデバイス１０２又はウェブサーバ１０６とは異なるリモートサーバからダウンロードしてよい。いくつかの実施形態では、ブロック４１０において、クラウドサービスシステム１０８のソース認証モジュール２０２は、クラウドサービスシステム１０８のローカルデータベース１１８から、及び／又は複数のクラウドリソース１１０から、ソース認証データを取得してもよい。上述したように、ソース認証データは、ブラウザベース・アプリケーション３０４のソースの信頼性を判断するためにクラウドサービスシステム１０８が使用可能な任意のタイプのデータとして具現されてよいか、さもなくば含んでよい。例えば、ソース認証データは、悪意のあるブラウザベース・アプリケーション３０４の既知の複数のホストを特定するデータを含んでよい。他の複数の実施形態において、ソース認証データは、ブラウザベース・アプリケーション３０４の信頼された複数のホストを特定するデータを含んでよい。さらに他の複数の実施形態において、ソース認証データは、ブラウザベース・アプリケーション３０４のソースの信頼性に向けられた、前述した情報及び／又は他の情報の組み合わせを含んでよい。従って、いくつかの実施形態では、ブロック４０６において、クラウドサービスシステム１０８は、特定されたソースの信頼性（又はその欠如）を判断するために、特定されたアプリケーションソースデータを、取得されたソース認証データと比較することによって、ブラウザベース・アプリケーションのソースを認証してよい。
【００３３】
ブロック４１２において、クラウドサービスシステム１０８は、ブラウザベース・アプリケーション３０４自体のセキュリティを検証する。そうすべく、クラウドサービスシステム１０８は、ブロック４１２において、アプリケーション検証データを取得してよい。ブロック４１０で取得されたソース認証データと同様、クラウドサービスシステム１０８は、ブロック４１４において、クラウドサービスシステム１０８のローカルデータベース１１８から及び／又は複数のクラウドリソース１１０から、アプリケーション検証データを取得してよい。アプリケーション検証データは、ブラウザベース・アプリケーション３０４のセキュリティ（例えば、信頼性、悪意性など）を検証するためにクラウドサービスシステム１０８によって使用可能な任意のタイプのデータとして具現されてよい。例えば、上述したように、アプリケーション検証データは、既知の信頼されたソースコードとして具現されてよい。更に又は代替的に、アプリケーション検証データは、既知の複数のウイルス及び他のマルウェアの複数のシグネチャ及び複数のパターンとして具現されてよいか、さもなくば含んでよい。さらに、アプリケーション検証データは、既知のブラウザベース・アプリケーション３０４の開発者及び複数の発行者の信頼性に関する情報を含んでよい。
【００３４】
ブロック４１２において、クラウドサービスシステム１０８は、ブロック４０４で取得されたブラウザベース・アプリケーション３０４を、ブロック４１４で取得されたアプリケーション検証データと比較することによって、ブラウザベース・アプリケーション３０４のセキュリティ及び整合性を検証してよい。例えば、クラウドサービスシステム１０８は、ブラウザベース・アプリケーション３０４が悪意のあるコードを含む、さもなくば不正であるかを判断するために、ブラウザベース・アプリケーション３０４のコード解析を実行し、ブラウザベース・アプリケーション３０４を複数のマルウェアシグネチャと比較してよい。更に又は代替的に、クラウドサービスシステム１０８は、コードが安定しクライアントコンピューティングデバイス１０２上で安全に動作可能であることを検証するために、ブラウザベース・アプリケーション３０４のコードを解析してよい。そのような複数の実施形態において、勧告エンジン２０６は、クライアントコンピューティングデバイス１０２に、ブラウザベース・アプリケーション３０４の最も安定な現在のリリースのロケーションを通知してよい。
【００３５】
方法４００のブロック４０６及び４１２は、任意の順序で行われてよく、又は、同時に行われてよいことが理解されるべきである。更に、いくつかの実施形態では、ブロック４０６及び４１２のいずれかが、ブラウザベース・アプリケーション３０４又はそのソースが非セキュアであるという指標を提供した場合、クラウドサービスシステム１０８は他のブロックを実行してよく、又はしなくてよい。むしろ、以下に述べるように、クラウドサービスシステム１０８は単純に、クライアントコンピューティングデバイス１０２がブラウザベース・アプリケーション３０４をダウンロード又は実行することを避けるよう勧告してよい。
【００３６】
ブロック４１６において、クラウドサービスシステム１０８は、ブロック４０６のソース認証及びブロック４１２のブラウザベース・アプリケーションの検証に応じて、クライアントコンピューティングデバイス１０２に対してセキュリティ勧告を生成してよい。上述したように、セキュリティ勧告は、ブラウザベース・アプリケーション３０４がセキュアであるかに関するいくつかの指標をクライアントコンピューティングデバイス１０２に提供する。例えば、ソース及びブラウザベース・アプリケーション３０４の両方がセキュアであると判断された場合、クラウドサービスシステム１０８は、クライアントコンピューティングデバイス１０２がブラウザベース・アプリケーション３０４を実行することを勧告してよい。さもなくば、クラウドサービスシステム１０８は、クライアントコンピューティングデバイス１０２がブラウザベース・アプリケーション３０４をダウンロード又は実行することを避けて、ブラウザベース・アプリケーションのコードの任意のダウンロードされた複数の部分を削除することを勧告してよい。他の複数の実施形態において、クラウドサービスシステム１０８は、ブラウザベース・アプリケーション３０４がセキュアである確率（例えばパーセンテージ又は他の数値表現で表される）を生成してよい。クライアントコンピューティングデバイス１０２は、ブラウザベース・アプリケーション３０４を実行するかを判断するために、そのような確率を利用してよい。すなわち、クラウドサービスシステム１０８は、ブラウザベース・アプリケーション３０４の信頼のレベルを特定してよい。例えば、ブラウザベース・アプリケーション３０４は、ブラウザベース・アプリケーション３０４及びそのソースの両方がセキュアであると判断された場合に、セキュアと特定され、ブラウザベース・アプリケーション及びそのソースの１つのみがセキュアと判断された場合に、場合によっては非セキュアと判断され、ブラウザベース・アプリケーション及びそのソースのどちらもセキュアと判断されなかった場合に、非セキュアと判断されてよい。ブロック４１８において、クラウドサービスシステム１０８は、その勧告及び／又はクラウドリソース１１０から受信したセキュリティ情報でローカルデータベース１１８を更新してよい。
【００３７】
ブロック４２０において、クラウドサービスシステム１０８は、ブロック４１６で生成されたセキュリティ勧告を、クライアントコンピューティングデバイス１０２に送信してよい。その後、ブロック４２２において、クラウドサービスシステム１０８は、クライアントコンピューティングデバイス１０２からフィードバックを受信してよい。いくつかの実施形態では、フィードバックは、セキュリティ勧告に応答してクライアントコンピューティングデバイス１０２によってなされるセキュリティアクションを含んでよい。例えば、フィードバックは、クライアントコンピューティングデバイス１０２がブラウザベース・アプリケーション３０４を実行したかを示してよい。更に、フィードバックは、クライアントコンピューティングデバイス１０２が、例えば、ユーザにセキュリティ勧告を通知した、ブラウザベース・アプリケーションを削除した又はブラウザベース・アプリケーションをダウンロードすることを避けた、若しくはブラウザベース・アプリケーション３０４を隔離したことを示してよい。クライアントコンピューティングデバイス１０２がブラウザベース・アプリケーション３０４のローカルセキュリティ解析を実行する（図５のブロック５１２を参照すること）複数の実施形態において、フィードバックは、ローカルセキュリティ解析の複数の結果を含んでもよい。ブロック４２４において、クラウドサービスシステム１０８は、ローカルデータベース１１８を、クライアントコンピューティングデバイス１０２からのフィードバックで更新してよい。
【００３８】
ここで図５を参照して、クライアントコンピューティングデバイス１０２によって実行され得る、ブラウザベース・アプリケーション３０４のセキュリティを検証するための方法５００の例示の実施形態は、ブロック５０２で始まる。ブロック５０２において、クライアントコンピューティングデバイス１０２は、ブラウザベース・アプリケーション３０４が要求されたかを判断する。例えば、いくつかの実施形態では、クライアントコンピューティングデバイス１０２のセキュリティモジュール３０６は、クライアントコンピューティングデバイス１０２のユーザが、ブラウザベース・アプリケーション３０４に割り当てられたハイパーリンクを実行したときを判断するために、ブラウザ３０２をモニタリングしてよい。クライアントコンピューティングデバイス１０２が、ブラウザベース・アプリケーション３０４が要求されたと判断した場合、ブロック５０４において、クライアントコンピューティングデバイス１０２は、ブラウザベース・アプリケーション３０４のセキュリティを検証するために、クラウドサービスシステム１０８に要求を送信する。上述したように、その際、ブロック５０６において、クライアントコンピューティングデバイス１０２は、ブラウザベース・アプリケーション３０４、若しくは、ブラウザベース・アプリケーション３０４の任意のダウンロードされた複数の部分又はそのソースコードを、クラウドサービスシステム１０８に送信してよい。代替的に、クライアントコンピューティングデバイス１０２は、ブロック５０８において、ブラウザベース・アプリケーション３０４が入手可能なロケーションを特定するデータを、クラウドサービスシステム１０８に送信してよい。例えば、クライアントコンピューティングデバイス１０２は、クラウドサービスシステム１０８に、ブラウザベース・アプリケーション３０４のＵＲＬを送信してよい。図５の例示の実施形態において、クライアントコンピューティングデバイス１０２は、（図５における二重チルダ記号によって示されるように）クラウドサービスシステム１０８がブラウザベース・アプリケーション３０４のセキュリティを検証するまで、ブラウザベース・アプリケーション３０４を実行しない。
【００３９】
ブロック５１０において、クライアントコンピューティングデバイス１０２は、クラウドサービスシステム１０８からセキュリティ勧告を受信する。上述したように、セキュリティ勧告は、例えば、ブラウザベース・アプリケーション３０４がセキュア及び／又はブラウザベース・アプリケーション３０４のセキュリティレベルにあるかを示してよい。いくつかの実施形態では、ブロック５１２において、クラウドサービスシステム１０８上でブラウザベース・アプリケーション３０４のセキュリティを検証することと同様に、クライアントコンピューティングデバイス１０２は、ブラウザベース・アプリケーション３０４をダウンロードし、そのローカルセキュリティ解析を実行してよい。クライアントコンピューティングデバイス１０２のローカルコード解析モジュール３０８は、ブラウザベース・アプリケーション３０４が悪意のあるコードを含むかを判断するために、ブラウザベース・アプリケーション３０４を、ウイルス又はマルウェアの複数のシグネチャ及び複数のパターンと比較してよい。他の複数の実施形態において、クライアントコンピューティングデバイス１０２は、ブラウザベース・アプリケーション３０４のセキュリティをローカルに検証するために、追加の又は代替のコード解析を実行してよい。更に、いくつかの実施形態では、ブロック５１２で実行されるローカルセキュリティ解析は、クライアントコンピューティングデバイス１０２がブラウザベース・アプリケーション３０４をクラウドサービスシステム１０８に送信する前に、実行されてよい。そのような実施形態において、ブラウザベース・アプリケーション３０４がセキュリティリスクを持つ（例えば、マルウェアを含む）とクライアントコンピューティングデバイス１０２がローカルに判断した場合、クライアントコンピューティングデバイス１０２は、クラウドサービスシステム１０８にそれを送信することなく、単純にブラウザベース・アプリケーション３０４をその時に破棄してよい。他の複数の実施形態において、クライアントコンピューティングデバイス１０２は、ローカルセキュリティ解析の結果にかかわらず、クラウドサービスシステム１０８にブラウザベース・アプリケーション３０４を送信してよい。
【００４０】
ブロック５１４において、クライアントコンピューティングデバイス１０２は、ブロック５１０でクラウドサーバから受信したセキュリティ勧告に基づいて、セキュリティアクションを実行してよい。いくつかの実施形態では、（例えば、セキュリティ勧告が、ブラウザベース・アプリケーション３０４をダウンロード／実行しないことである場合、）クライアントコンピューティングデバイス１０２は、セキュリティ勧告をユーザに通知してよい。例えば、ブロック５１６において、クライアントコンピューティングデバイス１０２のユーザは、ブラウザ３０２又は他のグラフィカルユーザインタフェースを介して通知されてよい。他の複数の実施形態では、ブロック５１８において、クライアントコンピューティングデバイス１０２は、ブラウザベース・アプリケーション３０４のソースコード又はそれらのダウンロードされた任意の一部を、クライアントコンピューティングデバイス１０２のメモリ１１６から削除してよい。クライアントコンピューティングデバイス１０２がブラウザベース・アプリケーション３０４のいずれの部分もダウンロードしない複数の実施形態において、クライアントコンピューティングデバイス１０２は、ユーザがブラウザベース・アプリケーション３０４をダウンロードすることを妨げてよい。他の複数の実施形態では、ブロック５２０において、クライアントコンピューティングデバイス１０２は、ブラウザベース・アプリケーション３０４又はその任意のダウンロードされた複数の部分を、クライアントコンピューティングデバイス１０２のメモリ１１６のセキュアロケーション内に隔離してよい。クラウドサービスシステム１０８が、ブラウザベース・アプリケーション３０４がセキュアであると判断した場合、しかし、クライアントコンピューティングデバイス１０２は、ブラウザベース・アプリケーション３０４をダウンロード及び実行してよい。クライアントコンピューティングデバイス１０２がブロック５１２でローカルセキュリティ解析を実行する複数の実施形態において、クライアントコンピューティングデバイス１０２は、クラウドサービスシステム１０８のセキュリティ勧告に加えて、ローカルセキュリティ解析を更に考慮してよい。
【００４１】
ブロック５２２において、クライアントコンピューティングデバイス１０２は、クラウドサービスシステム１０８にフィードバックを送信してよい。上述したように、フィードバックは、セキュリティ勧告に応答してクライアントコンピューティングデバイス１０２によってなされるセキュリティアクションを含んでよい。更に、フィードバックは、クライアントコンピューティングデバイス１０２によってブラウザベース・アプリケーション３０４上で実行される任意のローカルセキュリティ解析の結果を含んでよい。クラウドサービスシステム１０８は、クラウドサービスシステム１０８のローカルデータベース１１８を、関連するブラウザベース・アプリケーションのセキュリティ情報で更新するためにフィードバックを用いてよい。
【００４２】
複数の例  ここで開示される複数のデバイス、複数のシステム、及び複数の方法の例示の複数の例が以下に提供される。複数のデバイス、複数のシステム、及び複数の方法の実施形態は、後述される複数の例のうちの１又は複数のいずれか及び任意の組み合わせを含んでよい。
【００４３】
例１は、ブラウザベース・アプリケーションについてセキュリティ勧告を生成するためのクラウドサービスシステムを含む。クラウドサーバは、クライアントコンピューティングデバイスからアプリケーション検証要求を受信する通信モジュールと、（ｉ）ブラウザベース・アプリケーションのソースを特定するアプリケーションソースデータを受信し、（ｉｉ）ソース認証データを取得し、（ｉｉｉ）アプリケーションソースデータ及びソース認証データに応じて、ソースを認証するソース認証モジュールと、（ｉ）アプリケーション検証データを取得し、（ｉｉ）アプリケーション検証データに応じてブラウザベース・アプリケーションを検証するアプリケーション検証モジュールと、ソース認証モジュールの認証及びアプリケーション検証モジュールの検証に応答して、セキュリティ勧告を生成する勧告エンジンとを含み、通信モジュールはさらに、セキュリティ勧告をクライアントコンピューティングデバイスに送信する。
【００４４】
例２は、例１の主題を含み、ソース認証モジュールは、（ｉ）ブラウザベース・アプリケーションのロケーションを特定するロケーションデータを受信し、（ｉｉ）特定されたロケーションに位置するウェブサーバからブラウザベース・アプリケーションをダウンロードする。
【００４５】
例３は、例１及び２のいずれかの主題を含み、ロケーションデータは、ブラウザベース・アプリケーションのユニフォームリソースロケータを含む。
【００４６】
例４は、例１から３のいずれかの主題を含み、ソース認証モジュールは、クライアントコンピューティングデバイス以外の遠隔ロケーションからアプリケーションソースデータを取得し、アプリケーション検証モジュールは、遠隔ロケーションからブラウザベース・アプリケーションを取得する。
【００４７】
例５は、例１から４のいずれかの主題を含み、セキュリティ勧告は、ブラウザベース・アプリケーションの信頼のレベルを特定する。
【００４８】
例６は、例１から５のいずれかの主題を含み、勧告エンジンは、セキュリティ勧告に応答してクライアントコンピューティングデバイスからフィードバックを受信する。
【００４９】
例７は、例１から６のいずれかの主題を含み、フィードバックは、クライアントコンピューティングデバイスによってなされたセキュリティアクションを示す。
【００５０】
例８は、例１から７のいずれかの主題を含み、勧告エンジンは、クライアントコンピューティングデバイスからフィードバックを受信したことに応答してクラウドサーバのローカルデータベースを更新する。
【００５１】
例９は、例１から８のいずれかの主題を含み、アプリケーションソースデータは、ブラウザベース・アプリケーションのホストを特定する。
【００５２】
例１０は、例１から９のいずれかの主題を含み、アプリケーションソースデータは、ブラウザベース・アプリケーションを入手可能なインターネットプロトコルアドレスを示す。
【００５３】
例１１は、例１から１０のいずれかの主題を含み、ソース認証モジュールは、クラウドサーバのローカルデータベースからソース認証データを取得し、アプリケーション検証モジュールは、ローカルデータベースからアプリケーション検証データを取得する。
【００５４】
例１２は、例１から１１のいずれかの主題を含み、ソース認証モジュールは、クラウドサーバがアクセス可能な複数のクラウドリソースからソース認証データを取得し、アプリケーション検証モジュールは、複数のクラウドリソースからアプリケーション検証データを取得する。
【００５５】
例１３は、例１から１２のいずれかの主題を含み、ソース認証モジュールは、アプリケーションソースデータをソース認証データと比較することによってソースを認証し、ソース認証データは、既知の悪意のあるブラウザベースのアプリケーションの複数のホストのリストを含む。
【００５６】
例１４は、例１から１３のいずれかの主題を含み、アプリケーション検証モジュールは、ブラウザベース・アプリケーションを、ブラウザベース・アプリケーションの信頼されたソースコードと比較することによって、ブラウザベース・アプリケーションのセキュリティを検証する。
【００５７】
例１５は、例１から１４のいずれかの主題を含み、アプリケーション検証モジュールは、ブラウザベース・アプリケーションを、アプリケーション検証データと比較することによって、ブラウザベース・アプリケーションのセキュリティを検証し、アプリケーション検証データは、既知の複数のマルウェアシグネチャを含む。
【００５８】
例１６は、例１から１５のいずれかの主題を含み、アプリケーション検証モジュールは、クラウドサーバがアクセス可能な複数のクラウドリソースからアプリケーション検証データを取得する。
【００５９】
例１７は、例１から１６のいずれかの主題を含み、アプリケーション検証モジュールは、クラウドサーバのローカルデータベースからアプリケーション検証データを取得する。
【００６０】
例１８は、例１から１７のいずれかの主題を含み、セキュリティ勧告は、ブラウザベース・アプリケーションがセキュアであるかを示す。
【００６１】
例１９は、例１から１８のいずれかの主題を含み、勧告エンジンは、セキュリティ勧告の生成に応答して、クラウドサーバのローカルデータベースを更新する。
【００６２】
例２０は、例１から１９のいずれかの主題を含み、ブラウザベース・アプリケーションは、Ｈｙｐｅｒｔｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ  ５のアプリケーション又は他のウェブアプリケーションである。
【００６３】
例２１は、ブラウザベース・アプリケーションのセキュリティを検証するためのクライアントコンピューティングデバイスを含む。クライアントコンピューティングデバイスは、（ｉ）クライアントコンピューティングデバイスがブラウザベース・アプリケーションを要求したかを判断し、（ｉｉ）ブラウザベース・アプリケーションが要求されたとの判断に応答して、ブラウザベース・アプリケーションのセキュリティを検証するためのクラウドサービスシステムにアプリケーション検証要求を送信するアプリケーションセキュリティモジュールと、クラウドサービスシステムからセキュリティ勧告を受信する通信モジュールとを含み、アプリケーションセキュリティモジュールはさらに、セキュリティ勧告に応答してセキュリティアクションを実行する。
【００６４】
例２２は、例２１の主題を含み、ブラウザベース・アプリケーションは、Ｈｙｐｅｒｔｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ  ５のアプリケーション又は他のウェブアプリケーションである。
【００６５】
例２３は、例２１及び２２のいずれかの主題を含み、クライアントコンピューティングデバイスがブラウザベース・アプリケーションを要求したかを、アプリケーションセキュリティモジュールが判断することは、クライアントコンピューティングデバイスが、ブラウザベース・アプリケーションに向けられたハイパーリンクを実行したかを判断することを備える。
【００６６】
例２４は、例２１から２３のいずれかの主題を含み、アプリケーションセキュリティモジュールがアプリケーション検証要求を送信することは、ブラウザベース・アプリケーションのソースコードの少なくとも一部を、クラウドサービスシステムに送信することを備える。
【００６７】
例２５は、例２１から２４のいずれかの主題を含み、アプリケーションセキュリティモジュールがアプリケーション検証要求を送信することは、ブラウザベース・アプリケーションを入手可能なロケーションを示すロケーションデータを送信することを備える。
【００６８】
例２６は、例２１から２５のいずれかの主題を含み、ロケーションデータは、ブラウザベース・アプリケーションのユニフォームリソースロケータを備える。
【００６９】
例２７は、例２１から２６のいずれかの主題を含み、セキュリティアクションは、クライアントコンピューティングデバイスのユーザに、セキュリティ勧告を通知することを備える。
【００７０】
例２８は、例２１から２７のいずれかの主題を含み、セキュリティアクションは、ブラウザベース・アプリケーションのソースコードを、クライアントコンピューティングデバイスから削除することを備える。
【００７１】
例２９は、例２１から２８のいずれかの主題を含み、セキュリティアクションは、クライアントコンピューティングデバイスのメモリへの、ブラウザベース・アプリケーションのダウンロードを妨げることを備える。
【００７２】
例３０は、例２１から２９のいずれかの主題を含み、セキュリティアクションは、クライアントコンピューティングデバイスのメモリのセキュアロケーション内に、ブラウザベース・アプリケーションを隔離することを備える。
【００７３】
例３１は、例２１から３０のいずれかの主題を含み、アプリケーションセキュリティモジュールは、クラウドサービスシステムにフィードバックを送信する。
【００７４】
例３２は、例２１から３１のいずれかの主題を含み、フィードバックが、クライアントコンピューティングデバイスによって実行されたセキュリティアクションを示すことをさらに含む。
【００７５】
例３３は、例２１から３２のいずれかの主題を含み、クライアントコンピューティングデバイス上で、ブラウザベース・アプリケーションのローカルセキュリティ解析を実行するローカルコード解析モジュールをさらに含む。
【００７６】
例３４は、例２１から３３のいずれかの主題を含み、ローカルセキュリティ解析は、ブラウザベース・アプリケーションを複数のウイルスシグネチャと比較することを備える。
【００７７】
例３５は、クラウドサービスシステム上でブラウザベース・アプリケーションのためのセキュリティ勧告を生成するための方法を含む。方法は、ブラウザベース・アプリケーション、及び、ブラウザベース・アプリケーションのソースを特定するアプリケーションソースデータを受信する段階と、ソース認証データ及びアプリケーション検証データを取得する段階と、アプリケーションソースデータ及びソース認証データに応じて、ソースを認証する段階と、アプリケーション検証データに応じてブラウザベース・アプリケーションのセキュリティを検証する段階と、ソースを認証すること及びブラウザベース・アプリケーションを検証することに応じて、セキュリティ勧告を生成する段階と、セキュリティ勧告をクライアントコンピューティングデバイスに送信する段階とを含む。
【００７８】
例３６は、例３５の主題を含み、ブラウザベース・アプリケーションを受信する段階は、（ｉ）ブラウザベース・アプリケーションのロケーションを特定するロケーションデータを受信する段階と、（ｉｉ）特定されるロケーションに位置するウェブサーバから、ブラウザベース・アプリケーションをダウンロードする段階とを備える。
【００７９】
例３７は、例３５及び３６のいずれかの主題を含み、ブラウザベース・アプリケーションのロケーションを特定するロケーションデータを受信する段階は、ブラウザベース・アプリケーションのユニフォームリソースロケータを受信する段階を備える。
【００８０】
例３８は、例３５から３７のいずれかの主題を含み、ブラウザベース・アプリケーションに関するセキュリティ勧告を生成するようクライアントコンピューティングデバイスから要求を受信する段階さらに含む。
【００８１】
例３９は、例３５から３８のいずれかの主題を含み、ブラウザベース・アプリケーション及びアプリケーションソースデータを、クライアントコンピューティングデバイス以外の遠隔ロケーションから受信する。
【００８２】
例４０は、例３５から３９のいずれかの主題を含み、セキュリティ勧告を生成する段階は、ブラウザベース・アプリケーションの信頼のレベルを特定する段階を備える。
【００８３】
例４１は、例３５から４０のいずれかの主題を含み、セキュリティ勧告に応答して、クライアントコンピューティングデバイスからフィードバックを受信する段階をさらに含む。
【００８４】
例４２は、例３５から４１のいずれかの主題を含み、フィードバックを受信する段階は、クライアントコンピューティングデバイスによってなされたアクションを示すフィードバックを受信する段階を備える。
【００８５】
例４３は、例３５から４２のいずれかの主題を含み、クライアントコンピューティングデバイスからフィードバックを受信したことに応答して、クラウドサービスシステムのローカルデータベースを更新する段階をさらに含む。
【００８６】
例４４は、例３５から４３のいずれかの主題を含み、アプリケーションソースデータを受信する段階は、ブラウザベース・アプリケーションのホストを特定するソースデータを受信する段階を備える。
【００８７】
例４５は、例３５から４４のいずれかの主題を含み、ソースデータを受信する段階は、ブラウザベース・アプリケーションを入手可能なインターネットプロトコルアドレスを受信する段階を備える。
【００８８】
例４６は、例３５から４５のいずれかの主題を含み、ソース認証データ及びアプリケーション検証データを取得する段階は、クラウドサービスシステムのローカルデータベースから、ソース認証データ及びアプリケーション検証データを取得する段階を備える。
【００８９】
例４７は、例３５から４６のいずれかの主題を含み、ソース認証データ及びアプリケーション検証データを取得する段階は、クラウドサービスシステムがアクセス可能な複数のクラウドリソースから、ソース認証データ及びアプリケーション検証データを取得する段階を備える。
【００９０】
例４８は、例３５から４７のいずれかの主題を含み、ソースを認証する段階は、アプリケーションソースデータをソース認証データと比較する段階を備え、ソース認証データは、既知の悪意のあるブラウザベースのアプリケーションの複数のホストのリストを含む。
【００９１】
例４９は、例３５から４８のいずれかの主題を含み、ブラウザベース・アプリケーションのセキュリティを検証する段階は、ブラウザベース・アプリケーションを、ブラウザベース・アプリケーションの信頼されたソースコードと比較する段階を備える。
【００９２】
例５０は、例３５から４９のいずれかの主題を含み、ブラウザベース・アプリケーションのセキュリティを検証する段階は、ブラウザベース・アプリケーションを、アプリケーション検証データと比較する段階を備え、アプリケーション検証データは、既知の複数のマルウェアシグネチャを含む。
【００９３】
例５１は、例３５から５０のいずれかの主題を含み、アプリケーション検証データを取得する段階は、クラウドサービスシステムがアクセス可能な複数のクラウドリソースからアプリケーション検証データを取得する段階を備える。
【００９４】
例５２は、例３５から５１のいずれかの主題を含み、アプリケーション検証データを取得する段階は、クラウドサービスシステムのローカルデータベースからアプリケーション検証を取得する段階を備える。
【００９５】
例５３は、例３５から５２のいずれかの主題を含み、セキュリティ勧告を生成する段階は、ブラウザベース・アプリケーションがセキュアであるかを知らせる段階を備える。
【００９６】
例５４は、例３５から５３のいずれかの主題を含み、セキュリティ勧告の生成に応答して、クラウドサービスシステムのローカルデータベースを更新する段階をさらに含む。
【００９７】
例５５は、例３５から５４のいずれかの主題を含み、ブラウザベース・アプリケーションは、Ｈｙｐｅｒｔｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ  ５のアプリケーション又は他のウェブアプリケーションである。
【００９８】
例５６は、プロセッサと、プロセッサによって実行された場合にコンピューティングデバイスに例３５から５５のいずれかの方法を実行させる、格納された複数の命令を持つメモリとを持つコンピューティングデバイスを含む。
【００９９】
例５７は、実行されることに応答して、例３５から５５のいずれかの方法を実行するコンピューティングデバイスをもたらす、格納された複数の命令を備える１又は複数の機械可読ストレージ媒体を含む。
【０１００】
例５８は、ブラウザベース・アプリケーションのセキュリティを検証するための方法を含む。方法は、クライアントコンピューティングデバイス用いて、クライアントコンピューティングデバイスがブラウザベース・アプリケーションを要求したかを判断する段階と、ブラウザベース・アプリケーションが要求されたとの判断に応答して、ブラウザベース・アプリケーションのセキュリティを検証するためのクラウドサービスシステムにアプリケーション検証要求を送信する段階と、アプリケーション検証要求の送信に応答して、クライアントコンピューティングデバイスで、クラウドサービスシステムからセキュリティ勧告を受信する段階と、クライアントコンピューティングデバイス上で、クラウドサービスシステムから受信したセキュリティ勧告に応答して、セキュリティアクションを実行する段階とを含む。
【０１０１】
例５９は、例５８の主題を含み、ブラウザベース・アプリケーションは、Ｈｙｐｅｒｔｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ  ５のアプリケーション又は他のウェブアプリケーションである。
【０１０２】
例６０は、例５８及び５９のいずれかの主題を含み、クライアントコンピューティングデバイスがブラウザベース・アプリケーションを要求したかを判断する段階は、クライアントコンピューティングデバイスが、ブラウザベース・アプリケーションに向けられたハイパーリンクを実行したかを判断する段階を備える。
【０１０３】
例６１は、例５８から６０のいずれかの主題を含み、アプリケーション検証要求を送信する段階は、ブラウザベース・アプリケーションのソースコードの少なくとも一部を、クラウドサービスシステムに送信する段階を備える。
【０１０４】
例６２は、例５８から６１のいずれかの主題を含み、アプリケーション検証要求を送信する段階は、ブラウザベース・アプリケーションを入手可能なロケーションを示すロケーションデータを送信する段階を備える。
【０１０５】
例６３は、例５８から６２のいずれかの主題を含み、ロケーションデータを送信する段階は、ブラウザベース・アプリケーションのユニフォームリソースロケータを送信する段階を備える。
【０１０６】
例６４は、例５８から６３のいずれかの主題を含み、セキュリティアクションを実行する段階は、クライアントコンピューティングデバイスのユーザに、セキュリティ勧告を通知する段階を備える。
【０１０７】
例６５は、例５８から６４のいずれかの主題を含み、セキュリティアクションを実行する段階は、ブラウザベース・アプリケーションのソースコードを、クライアントコンピューティングデバイスから削除する段階を備える。
【０１０８】
例６６は、例５８から６５のいずれかの主題を含み、セキュリティアクションを実行する段階は、クライアントコンピューティングデバイスのメモリへの、ブラウザベース・アプリケーションのダウンロードを妨げる段階を備える。
【０１０９】
例６７は、例５８から６６のいずれかの主題を含み、セキュリティアクションを実行する段階は、クライアントコンピューティングデバイスのメモリのセキュアロケーション内に、ブラウザベース・アプリケーションを隔離する段階を備える。
【０１１０】
例６８は、例５８から６７のいずれかの主題を含み、クラウドサービスシステムにフィードバックを送信する段階をさらに含む。
【０１１１】
例６９は、例５８から６８のいずれかの主題を含み、クラウドサービスシステムにフィードバックを送信する段階は、クライアントコンピューティングデバイスによって実行されたセキュリティアクションを示すフィードバックを送信する段階を備える。
【０１１２】
例７０は、例５８から６９のいずれかの主題を含み、クライアントコンピューティングデバイス上で、ブラウザベース・アプリケーションのローカルセキュリティ解析を実行する段階をさらに含む。
【０１１３】
例７１は、例５８から７０のいずれかの主題を含み、ブラウザベース・アプリケーションのローカルセキュリティ解析を実行する段階は、ブラウザベース・アプリケーションを、複数のウイルスシグネチャと比較する段階を備える。
【０１１４】
例７２は、プロセッサと、プロセッサによって実行された場合にコンピューティングデバイスに例５８から７１のいずれかの方法を実行させる、格納された複数の命令を持つメモリとを持つコンピューティングデバイスを含む。
【０１１５】
例７３は、実行されることに応答して、例５８から７１のいずれかの方法を実行するコンピューティングデバイスをもたらす、格納された複数の命令を備える１又は複数の機械可読ストレージ媒体を含む。
【図１】
2015527685.tif 000003
【図２】
2015527685.tif 000004
【図３】
2015527685.tif 000005
【図４】
2015527685.tif 000006
【図５】
2015527685.tif 000007
【国際調査報告】
2015527685.tif 000008
2015527685.tif 000009