• ポートフォリオ機能


ポートフォリオを新規に作成して保存
既存のポートフォリオに追加保存

  • この表をプリントする
PDF PDFをダウンロード
審決分類 審判 査定不服 2項進歩性 取り消して特許、登録 G06F
審判 査定不服 特36条6項1、2号及び3号 請求の範囲の記載不備 取り消して特許、登録 G06F
管理番号 1339001
審判番号 不服2016-15690  
総通号数 221 
発行国 日本国特許庁(JP) 
公報種別 特許審決公報 
発行日 2018-05-25 
種別 拒絶査定不服の審決 
審判請求日 2016-10-20 
確定日 2018-04-24 
事件の表示 特願2014-502804「機械挙動の決定」拒絶査定不服審判事件〔平成24年10月 4日国際公開、WO2012/135519、平成26年 5月 1日国内公表、特表2014-510979、請求項の数(20)〕について、次のとおり審決する。 
結論 原査定を取り消す。 本願の発明は、特許すべきものとする。 
理由 第1 手続の経緯

本願は,平成24年3月29日(パリ条約による優先権主張2011年3月31日(以下,「優先日」という。);中国)を国際出願日とする出願であって,平成25年9月11日付けで特許法第184条の5第1項の規定による書面が提出されるとともに特許法第184条の4第1項の規定による明細書,請求の範囲,及び,図面(図面の中の説明に限る。)の日本語による翻訳文が提出され,平成28年3月3日付けで拒絶理由通知(同年同月8日発送)がされ,同年5月26日付けで意見書が提出されるとともに手続補正がされ,同年6月16日付けで拒絶査定(同年同月21日謄本送達,以下,「原査定」という。)がされ,これに対し,同年10月20日に拒絶査定不服審判の請求がされると同時に手続補正がされ,同年11月30日付けで前置報告がなされ,平成29年2月3日付けで上申書の提出がされ,同年11月15日付けで拒絶理由通知(同年同月21日発送。以下,「当審拒絶理由」という。)がされ,平成30年2月6日付けで意見書が提出されるとともに手続補正がされたものである。


第2 本願発明

本願請求項1-20に係る発明(以下,それぞれ「本願発明1」-「本願発明20」という。)は,平成30年2月6日付けの手続補正で補正された特許請求の範囲の請求項1-20に記載された事項により特定される発明であり,以下のとおりの発明である。

「 【請求項1】
コンピュータ実行可能命令を用いて1つ以上のプロセッサによって実行される方法であって,
ユーザがウェブブラウザを介してウェブページを訪問することをリクエストするとき,前記ウェブページのウェブアドレス情報を含む,前記ウェブページを訪問するリクエストを前記ウェブブラウザから受信することと,
前記ウェブページ上でのユーザの操作挙動の情報を受信することであって,前記ユーザの操作挙動の情報は,機械挙動識別および分析モデルの確立のために学習され,かつ訓練される,ことと,
前記確立された機械挙動識別および分析モデルを使用することによって後続のユーザの操作挙動の情報を分析することと,
前記後続のユーザの操作挙動の前記情報の分析結果に基づいて,前記後続のユーザの操作挙動に対する加重値を計算することと,
計算された前記加重値が規定の閾値以上である場合,前記後続のユーザの操作挙動が機械挙動であると決定することと,
を含む,方法。
【請求項2】
前記ウェブページ上での前記ユーザの操作挙動の情報を前記受信することは,
前記ウェブアドレス情報に基づいて,前記ウェブページに対応するウェブページコードを検索することと,
挙動収集命令を前記ウェブページコードに挿入することと,
前記挙動収集命令を含む前記ウェブページコードを前記ウェブブラウザに送信することと,
前記挙動収集命令に基づいて,前記ウェブブラウザによって収集される前記ウェブページ上での前記ユーザの操作挙動の前記情報を受信することと,
を含む,請求項1に記載の方法。
【請求項3】
前記ウェブページ上での前記ユーザの操作挙動の情報を前記受信することは,
前記ウェブアドレス情報に基づいて,前記ウェブページに対応するウェブページコードを検索することと,
挙動収集命令をウェブサーバから読み出すために,読み出し命令を前記ウェブページコードに挿入することと,
前記読み出し命令を含む前記ウェブページコードを前記ウェブブラウザに送信することと,
前記読み出し命令に基づいて,前記挙動収集命令を読み出すために,読み出しリクエストを前記ウェブブラウザから受信した後に,前記挙動収集命令を前記ウェブブラウザに送信することと,
前記挙動収集命令に基づいて,前記ウェブブラウザによって収集される前記ウェブページ上での前記ユーザの操作挙動の前記情報を受信することと,
を含む,請求項1に記載の方法。
【請求項4】
前記挙動収集命令を前記ウェブブラウザに前記送信することは,
予め設定された難読化アルゴリズムに基づいて,前記挙動収集命令の難読化演算を実行することと,
前記難読化された挙動収集命令を前記ウェブブラウザに送信することと,
を含む,請求項3に記載の方法。
【請求項5】
前記予め設定された難読化アルゴリズムに基づいて,前記挙動収集命令の前記難読化演算を前記実行することは,
前記ウェブサーバが,異なる期間と1つ以上の難読化アルゴリズムとの間の対応関係に基づいて前記読み出しリクエストを前記ウェブブラウザから受信する期間に対応する前記1つ以上の難読化アルゴリズムから,前記予め設定された難読化アルゴリズムを検索することと,
前記予め設定された難読化アルゴリズムに基づいて,前記挙動収集命令の難読化演算を実行することと,
を含む,請求項4に記載の方法。
【請求項6】
前記操作挙動は,マウス操作情報と,キーボード操作情報と,操作フロー情報と,を含む,請求項1に記載の方法。
【請求項7】
前記後続のユーザの操作挙動に対する前記加重値を前記計算することは,
前記マウス操作情報に基づいて,マウス操作に対する加重値を決定することと,
前記キーボード操作情報に基づいて,キーボード操作に対する加重値を決定することと,
前記操作フロー情報に基づいて,操作フローに対する加重値を決定することと,
前記マウス操作に対する前記加重値,前記キーボード操作に対する前記加重値,および前記操作フローに対する前記加重値に基づいて,前記後続のユーザの操作挙動に対する前記加重値を決定することと,
を含む,請求項6に記載の方法。
【請求項8】
前記後続のユーザの操作挙動に対する前記加重値を前記決定することは,以下の式を用いて前記後続のユーザの操作挙動に対する前記加重値を計算することを含み,
W=W1×Q1+W2×Q2+W3×Q3,
式中,
W1は,マウス操作に対する前記加重値を表し,
Q1は,マウス操作に対する加重係数を表し,
W2は,キーボード操作に対する前記加重値を表し,
Q2は,キーボード操作に対する加重係数を表し,
W3は,操作フローに対する前記加重値を表し,
Q3は,操作フローに対する加重係数を表す,
請求項7に記載の方法。
【請求項9】
前記後続のユーザの操作挙動が機械挙動であると決定される場合,前記ユーザのユーザ識別情報を悪意のあるユーザリストに追加することをさらに含む,請求項1に記載の方法。
【請求項10】
前記リクエストは,前記ユーザのユーザ識別情報をさらに含み,前記方法が,
前記ユーザ識別情報が悪意のあるユーザリストに含まれているかを決定することと,
前記ユーザ識別情報が前記悪意のあるユーザリストに含まれている場合,前記リクエストを処理することを拒否することと,
をさらに含む,請求項1に記載の方法。
【請求項11】
前記リクエストは,前記ユーザのユーザ識別情報をさらに含み,前記方法は,
前記ユーザ識別情報が悪意のあるユーザリストに含まれているかを決定することと,
前記ユーザ識別情報が前記悪意のあるユーザリストに含まれていると決定することに応答して,前記ユーザが前記ウェブページを訪問することを禁止することと,
をさらに含む,請求項1に記載の方法。
【請求項12】
コンピュータ実行可能命令を用いて1つ以上のプロセッサによって実行される方法であって,
ウェブページ上でのユーザの操作挙動の情報を取得することと,
前記ユーザの操作挙動の前記取得された情報をウェブサーバに送信することであって,
前記ユーザの操作挙動の情報は,前記ウェブサーバによって機械挙動識別および分析モデルの確立のために学習され,かつ訓練され,後続のユーザの操作挙動の情報は,前記ウェブサーバによって前記確立された機械挙動識別および分析モデルを使用して分析され,前記後続のユーザの操作挙動の情報の分析結果に基づいて,ウェブページ上での前記後続のユーザの操作挙動に対する加重値が前記ウェブサーバによって決定され,決定された加重値が規定の閾値以上である場合,前記後続のユーザの操作挙動が機械挙動であると前記ウェブサーバによって決定される,ことと,
前記後続のユーザの操作挙動が機械挙動であると決定した結果を前記ウェブサーバから受信することと,
を含む,方法。
【請求項13】
前記ウェブページ上での前記ユーザの操作挙動の情報を前記取得することは,
前記ユーザが前記ウェブページを訪問することをリクエストするとき,前記ウェブサーバから挙動収集命令を取得することと,
前記挙動収集命令に基づいて,前記ユーザが前記ウェブページを訪問するとき,前記ウェブページ上での前記ユーザの操作挙動を収集することと,
を含む,請求項12に記載の方法。
【請求項14】
前記ユーザが前記ウェブページを訪問することをリクエストするとき,前記ウェブサーバから前記挙動収集命令を取得することは,
前記ユーザが前記ウェブページを訪問することをリクエストするとき,前記ウェブページのウェブアドレス情報を含む,訪問リクエストを前記ウェブサーバに送信することと,
前記ウェブアドレス情報に基づいて,前記ウェブサーバから取得された前記挙動収集命令を含む,前記ウェブサーバによって検出されたウェブページコードを受信することと,
を含む,請求項13に記載の方法。
【請求項15】
前記ユーザが前記ウェブページを訪問することをリクエストするとき,前記ウェブサーバから前記挙動収集命令を取得することは,
前記ユーザが前記ウェブページを訪問することをリクエストするとき,前記ウェブページのウェブアドレス情報を含む,訪問リクエストを前記ウェブサーバに送信することと,
前記ウェブアドレス情報に基づいて,前記ウェブサーバから挙動収集命令を読み出すために,前記ウェブサーバによって挿入される読み出し命令を含む,前記ウェブサーバによって検出されるウェブページコードを受信することと,
前記ユーザが前記ウェブページを訪問するとき,前記読み出し命令に基づいて前記挙動収集命令を読み出すリクエストを送信することと,
前記ウェブサーバによって送信された前記挙動収集命令を受信することと,
を含む,請求項13に記載の方法。
【請求項16】
前記ユーザが前記ウェブページを訪問することをリクエストするとき,前記ウェブサーバから挙動収集命令を前記取得することは,
前記ウェブサーバから難読化された挙動収集命令を受信することと,
予め設定された解読化アルゴリズムに基づいて,前記難読化された挙動収集命令の解読化演算を実行することと,
前記挙動収集命令を取得することと,
を含む,請求項13に記載の方法。
【請求項17】
予め設定された解読化アルゴリズムに基づいて,前記難読化された挙動収集命令の解読化演算を前記実行することは,
ウェブブラウザが,異なる期間と1つ以上の解読化アルゴリズムとの間の対応関係に基づいて,読み出しリクエストを前記ウェブサーバに送信する期間に対応する前記1つ以上の解読化アルゴリズムから,前記予め設定された解読化アルゴリズムを検索することと,
前記予め設定された解読化アルゴリズムに基づいて,前記難読化された挙動収集命令の解読化演算を実行することと,
を含む,請求項16に記載の方法。
【請求項18】
前記ユーザの操作挙動の前記取得された情報を前記ウェブサーバに前記送信することは,予め設定された時点に到達すると,その前の規定の時点から前記予め設定された時点までの範囲の期間中の前記ウェブページ上での操作挙動の前記取得された情報を送信することを含む,請求項12に記載の方法。
【請求項19】
前記ウェブページ上での前記ユーザの操作挙動の情報を取得する前に,前記ユーザからの前記ウェブページを訪問するリクエストは,指定操作リクエストであると決定することをさらに含む,請求項12に記載の方法。
【請求項20】
1つ以上のプロセッサと,
前記1つ以上のプロセッサによって実行されると,前記1つ以上のプロセッサに,
ユーザがウェブブラウザを介してウェブページを訪問することをリクエストするとき,前記ウェブページのウェブアドレス情報を含む,前記ウェブページにアクセスするリクエストを前記ウェブブラウザから受信することと,
前記ウェブアドレス情報に基づいて,前記ウェブページに対応するウェブページコードを検索することと,
挙動収集命令を読み出すための読み出し命令を前記ウェブページコードに挿入することと,
前記読み出し命令を含む前記ウェブページコードを前記ウェブブラウザに送信することと,
前記読み出し命令に基づいて,前記挙動収集命令を読み出すために,前記ウェブブラウザから読み出しリクエストを受信した後に,前記挙動収集命令を前記ウェブブラウザに送信することであって,
予め設定された難読化アルゴリズムに基づいて,前記挙動収集命令の難読化演算を実行することと,
前記難読化された挙動収集命令をウェブブラウザに送信することと,を含む,送信することと,
前記挙動収集命令に基づいて,前記ウェブブラウザによって収集される前記ウェブページ上でのユーザの操作挙動の情報を受信することであって,前記ユーザの操作挙動の情報は,機械挙動識別および分析モデルの確立のために学習され,かつ訓練され,後続のユーザの操作挙動の情報は,確立された機械挙動識別および分析モデルを使用して分析される,ことと,
前記後続のユーザの操作挙動の前記情報の分析結果に基づいて,前記後続のユーザの操作挙動に対する加重値を計算することと,
計算された前記加重値が規定の閾値以上である場合,前記後続のユーザの操作挙動が機械挙動であると決定することと,
を含むアクションを実行させる複数のコンピュータ実行可能命令が記憶された1つ以上のコンピュータ記憶媒体と,
を備える,システム。」


第3 引用文献,引用発明等

1.引用文献1について
原査定の拒絶理由に引用された,米国特許出願公開第2010/0070620号明細書(以下,これを「引用文献1」という。)には,図面とともに次の事項が記載されている。(下線は当審により付与。以下同じ。)

ア.「TECHNICAL FIELD
[0001] The present disclosure relates to detecting Internet bots in network communications.
BACKGROUND
[0002] Internet bots are software applications that perform automated tasks over the Internet. They are also known as web robots or bots and have been used in a variety of Internet applications. Web crawlers use bots to automatically fetch and index web pages from various web sites so that search engines can perform queries on the indexed web pages. Bots have been used in online auction sites to discover bargains. In online gaming sites, bots have been used where a response speed faster than that of a human is desirable. In instant messenger applications, bots have been used to answer routine questions such as questions related to weather conditions, sporting event scores, and currency conversions.
[0003] Bots, however, may be used for malicious purposes. Bots have been used in automated operations to attack networked computers. For example, in a “denial of service” attack, a large number of bots, which may be geographically distributed, may saturate the target server with external communication requests so that the target server cannot respond to legitimate requests. Bots may also be used to influence ranking of search engine results. Search engines may use click data on search results to improve search results ranking. Bots may be used to repeatedly access certain search results from a large number of web sites to influence the ranking of the accessed search results.
[0004] Malicious bots may also be created in order to repeatedly access advertising-supported links to intentionally create the false appearance of many web site visits by human viewers. Advertising-supported links are generally short segments of text that are linked to an advertiser's web site. When a human viewer clicks on an advertising-supported link, the viewer “clicks through” the text link to visit the advertiser's web site. Many advertising-supported web sites have offered to sell advertising on a pay-per-click basis wherein the advertising-supported web site is only paid when a viewer “clicks through” on an advertising-supported link. When malicious bots are used to repeatedly click on advertising-supported links on a web site, web site advertisers are erroneously charged. Such attempts to create fictitious clicks on advertising-supported links are known as “click fraud”.
[0005] In these and other contexts, a key factor to combat malicious bots is the ability to detect whether a communication request to a web site comes from an Internet bot or a human viewer. However, since a large number of requests from bots may not be malicious, and the volume of communication requests to a web site may be extremely high, it is a challenging task to find a scalable method to detect malicious bots.
SUMMARY
[0006] The present invention provides apparatuses, methods, and systems directed to detecting Internet bots in network communication. Some embodiments of the present invention allow an agent of a server to periodically record interaction events generated by interactions with an input device attached to a client system; the agent sends the recorded interaction events to the server to validate that the interaction events are a result of human interaction with the input device attached to the client system. Some embodiments of the present invention may be used to detect bots using server logs. In other embodiments, an agent of a server is able to detect and validate interaction events on a client system and the server periodically polls the agent to determine whether bots are detected on the client system.」
(当審訳:「技術分野
[0001] 本開示は,ネットワークコミュニケーションにおけるボットの探索に関する。
背景
[0002] インターネットボットは,インターネット上の自動タスクを実行するソフトウェアアプリケーションである。それらはウェブロボットやボットとしても知られており,様々なインターネットアプリケーションで利用されてきている。ウェブクローラは,様々なウェブサイトからウェブページを自動的にフェッチし索引付けするためにボットを利用し,そしてサーチエンジンは索引付けされたウェブページへのクエリーを実行することができる。ボットは,オンラインオークションサイトにおいて,バーゲンを見つけるために利用されてきた。オンラインゲームサイトにおいては,ボットは,応答速度が人間のそれよりも速いことが望まれている状況において利用されてきた。インスタントメッセンジャーアプリケーションにおいては,ボットは,決まった質問,例えば,天気の状況,スポーツイベントの得点結果,通貨の両替,に関する質問に答えるために利用されてきた。
[0003] ボットは,しかしながら,悪質な目的で利用されるかもしれない。ボットは,ネットワークコンピュータを攻撃するために自動で動作するよう利用されてきた。例えば,“Dos”攻撃では,地理的に分布しているであろう,多くのボットが,永続的なコミニュケーションリクエストによって,ターゲットとなるサーバを飽和させるかもしれず,それにより,ターゲットとなるサーバは,正当なリクエストに応答することができない。ボットはまた,サーチエンジン結果のランキングに影響を与えるよう利用されるかもしれない。サーチエンジンは,サーチ結果におけるクリックデータをサーチ結果のランキングを改善するために利用するだろう。ボットは,アクセスされたサーチ結果のランキングに影響を与えるために,極めて多くのウェブサイトから,所定のサーチ結果に繰り返しアクセスするよう利用されるだろう。
[0004] 悪意のあるボットはまた,人である閲覧者がウェブサイトを多く訪問したという偽の状態を意図的に作り出すために,自動的に広告を表示するリンクに繰り返しアクセスするよう作られるかもしれない。自動的に広告を表示するリンクは,一般的にテキストの短い区切であり,それは,広告主のウェブサイトにリンクされている。人である閲覧者が自動的に広告を表示するリンクをクリックすると,その閲覧者はその広告主のウェブサイトを訪問するためにそのテキストリンクを“クリックスルー”することになる。多くの自動的に広告を表示するリンクは,ペイパークリック基盤の上で広告を販売するよう提供されており,そこでは,自動的に広告を表示するリンクは,閲覧者が自動的に広告を表示するリンクを“クリックスルー”した時だけ支払いがなされる。悪意のあるボットが,ウェブサイト上の自動的に広告を表示するリンクを繰り返しクリックするよう利用されると,ウェブサイトの広告主には誤ったチャージがなされる。そのような自動的に広告を表示するリンク上を架空のクリックを作り出そうとすることは,“クリックフラウド”として知られている。
[0005] これらの,かつ他の文脈において,悪意のあるボットと戦うキーとなる要因は,ウェブサイトへのコミニュケーションリクエストが,インターネットボットによるものか,あるいは人である閲覧者によるものかを探る能力である。しかしながら,ボットからの多くのリクエストが悪意のあるものではないかもしれず,また,ウェブサイトへのコミニュケーションリクエストの量が極端に高くないかもしれないため,悪意あるボットを見つける拡張性のある方法を見つけることは,大変な作業である。
概要
[0006] 本発明は,ネットワークコミニュケーションにおけるインターネットボットの探索に向けられている,装置,方法,及び,システムを提供するものである。本発明のいくつかの実施例では,クライアントシステムに付加された入力デバイスを用いた相互作用によって生成された相互作用イベントを,サーバのエージェントが定期的に記録することができるものであり;そのエージェントは,その相互作用イベントがクライアントシステムに付加された入力デバイスを用いた人間による相互作用の結果であることを検証するよう,記録された相互作用イベントをサーバに送信する。本発明のいくつかの実施例は,サーバログを利用してボットを探索するために用いられるだろう。他の実施例では,サーバのエージェントは,クライアントシステムにおける相互作用イベントを探索し検証することができ,また,サーバは,クライアントシステム上でボットが探索できたか否かを決定するために,定期的にエージェントをポーリングする。」)

イ.「[0023] FIG. 2 illustrates, for didactic purposes, a hardware system 200 , which may be used to implement a client system or a server. In one embodiment, hardware system 200 comprises a processor 202 , a cache memory 204 , and one or more software applications and drivers directed to the functions described herein. Additionally, hardware system 200 includes a high performance input (I/O) bus 206 and a standard I/O bus 208 . A host bridge 210 couples processor 202 to high performance I/O bus 206 , whereas I/O bus bridge 212 couples the two buses 206 and 208 to each other. A system memory 214 and a network/communication interface 216 couple to bus 206 . Hardware system 200 may further include video memory (not shown) and a display device coupled to the video memory. Mass storage 218 and I/O ports 220 couple to bus 208 . In one embodiment, hardware system 200 may also include a keyboard and pointing device 222 and a display 224 coupled to bus 208 . ・・・」
(当審訳:「[0023] 図2は,説明を目的として,ハードウェアシステム200を示しており,それは,クライアントシステムや,サーバに実装されるだろう。ある実施例では,ハードウェア200は,プロセッサ202,キャッシュメモリ204,そして1つまたは複数のソフトウェアアプリケーションや以下に記述する機能に直結するドライバーを含むだろう。加えて,ハードウェアシステム200は,高パフォーマンスの入出力バス206や標準的入出力バス208を含むだろう。ホストブリッジ210は,プロセッサ202を高パフォーマンスの入出力バス206に接続し,そこでは入出力バスブリッジ212は2つのバス206,208を互いに接続している。システムメモリ200はさらに,ビデオメモリ(図示しない)とビデオメモリに接続されたディスプレイデバイスを含むだろう。マスストレージ218と入出力ポート220はバス208に接続されている。ある実施例では,ハードウェアシステム200はまた,キーボード及びポインティングデバイス222,バス208に接続されたディスプレイ224を含む。・・・」

ウ.「C. Detection of Internet Bots
[0029] FIG. 3 illustrates an example process used for detecting and recording interaction events on a host. In the first step 300 , an agent on the host is initialized. In some embodiments, initialization comprises activating an agent downloaded to a client system from a server. For example, the agent may comprise a script or other executable code object that is transmitted in connection with a web page to a browser client. For example, the web page may include a the script or code object, or include a call or request to the script or code object. The web page may further include one or more advertisements, such as sponsored hypertext links or banner ads, that a user may click on. When the user clicks on the advertisement, the browser may transmit a request for an advertisement to the server. In many pay-per-click models, activation of the sponsored ad creates a monitization event. As discussed in more detail below, the data gathered by the agent may be used to validate that the event is associated with an actual human being as opposed to an Internet bot executing on a remote host.
[0030] The agent may be a program written in a variety of programming or scripting languages such as C, C++, Java, Visual Basic, Perl, PHP, JavaScript, or ActionScript of Macromedia Flash. The agent may be running as a background process on the client system. For example, the agent may be running as a daemon on a UNIX or a Mac OS X system, or as a service on a Windows system. In some embodiments, the agent may be downloaded from the server and operate within the context of a user agent, such as a browser client. For example, the agent may comprise Javascript code embedded in a web page and executable within the context of the user agent that monitors interaction events with one or more input devices attached to the client system. In other embodiments, the agent may be a Java Applet or program that operates in connection with a Java Virtual Machine, which itself can be a plug-in to a user agent, such as a browser client.
[0031] The initialization step 300 is typically triggered when one of the running applications on the client system gets focus. The focus indicates the component of the graphical user interface which is currently selected to receive input. Text entered at the keyboard or pasted from a clipboard is sent to the component which currently has the focus. Focus may be moved to an application through a mouse click or by pressing a keyboard combination such as the combination of the ALT and the TAB keys. Typically, an embodiment of the present invention is initialized on at least one running application on the client system. For example, there may be multiple Internet browser applications running on the client system. An embodiment of the present invention may be a JavaScript program embedded in a web page and executed when a browser application gets focus. An embodiment of the present invention may also be a Macromedia Flash component such as an ActionScript which may execute when a browser application gets focus.
[0032] Upon initialization, the agent registers as a listener for mouse movement or other interaction events. After initialization, the agent waits for a period of time in step 302 before it checks for any interaction events in step 304 . In some embodiments, the waiting period in step 302 is a fixed time interval such as 128 milliseconds or 256 milliseconds. In other embodiments, the waiting period may be a randomly chosen time interval.
[0033] In step 304 , the agent checks for interaction events. In some embodiments, interaction with an input device attached to a client system results in data being accumulated in a buffer, which is then processed by the operating system. Application programming interfaces allow the agent to register as a subscriber or consumer of the interaction events passed to the browser or other user application. For example, the agent may register as a subscriber to the packetized data stream transmitted by a mouse that characterizes its movements and button state. In other implementations, the agent registers as a listener for interaction events using application programming interfaces provided by the operating system that provide interaction event data, such as the screen coordinates of the mouse. The agent periodically wakes up and waits for subscribed events such as a mouse movement notification event passed to it. If the agent receives any subscribed events while it is in step 304 checking for interaction events, the agent records the event data such as the last mouse coordinates or the last key stroke. If there are no subscribed events passed to the agent while the agent is awake, the agent goes to sleep and waits for another time period in step 302 before waking up again to check for interaction events.
[0034] If the agent detects an interaction event in step 304 , the agent records one or more parameters of the interaction event in step 306 . In some embodiments, coordinates of mouse pointers on a display screen may be recorded. In other embodiments, letters or symbols entered on a keyboard, a touch screen, a pen input device, or a speech recognition device may be recorded. In some other embodiments, types of motion such as a swipe or a shaking motion, directions of motion, and length or magnitude of motion may be recorded. In some embodiments, the parameters of the interaction event may be recorded in a cache file controlled by the agent. In other embodiments, the parameters may be recorded in an in-memory buffer controlled by the agent.
[0035] In step 308 , the agent counts the number of recorded interaction events and checks whether the number reaches a threshold. In some embodiments, three mouse movement events are collected before data is transmitted to a remote system. FIG. 4 illustrates an example of three recorded mouse coordinates. Coordinate 400 {P0, T0} is the first mouse coordinate recorded at time T0, where P0 is the coordinate on a display screen, which typically consists of an x-axis value and a y-axis value. Similarly, coordinate 402 {P1, T0+△t} is the second mouse coordinate recorded at time T0+△t, where △t is a time interval, and coordinate 404 {P2, T0+2△t} is the third mouse coordinate recorded at time T0+2△t. In some embodiments, the time interval△t may be set as a fixed value such as 128 milliseconds or 256 milliseconds. In other embodiments, △t may be set as an arbitrary value by the agent. The three mouse coordinates may form a triangle as illustrated in FIG. 4 . In some embodiments, the height of the triangle 406 X may be derived for multiple mouse coordinate sets, and used as a signature to detect bots. When the interaction events are generated by bots, the distribution of 406 X may be different from the distribution when the interaction events are generated by human. In other embodiments, other values may be derived and used as signatures to detect bots. For example, the distribution of the area of the triangle formed by the three mouse coordinates in FIG. 4 may be used as a signature to detect bots. In other embodiments, various bot types may be profiled by using a variety of signature values. The various types of profiles may be used to detect the various types of bots.」
(当審訳:「C.インターネット・ボットの探索
[0029] 図3は,ホストにおける相互作用イベントの探索及び記録のために用いられるプロセスの例を示している。最初のステップ300では,ホスト上のエージェントが初期化される。ある実施例では,初期化は,サーバからクライアントシステムへダウンロードされるエージェントを有効化することを含む。例えば,エージェントは,ウェブページと接続してブラウザクライアントに転送されるスクリプトや他の実行可能コードオブジェクトを含むだろう。例えば,ウェブページは,スクリプトやコードオブジェクトを含むであろうし,または,スクリプトやコードオブジェクトへの呼び出しやリクエストを含むであろう。ウェブページは,さらに1つまたは複数の広告を含むであろうし,例えば,ハイパーテキストリンクやバナーアドが提供されており,それらをユーザはクリックするであろう。ユーザが広告をクリックしたとき,ブラウザーはサーバに広告のリクエストを転送するだろう。多くのペイパークリックモデルにおいて,提供された広告の有効化は,監視イベントを生成する。下記でより詳細に検討されるとおり,エージェントによって収集されるデータは,そのイベントが,リモートホスト上で実行されるインターネットボットではなく,実際の人間に関連するものであることを検証するために用いられるだろう。
[0030] そのエージェントは,C,C++,Java,Visual Basic,Perl,PHP,JavaScript,または,ActionScript of Macromedia Flashのような多くのプログラミングまたはスクリプト言語で記述されたプログラムであるだろう。そのエージェントは,クライアントシステム上のバックグラウンドプロセスとして実行するだろう。例えば,そのエージェントは,UNIXまたはMac OS Xシステムのデーモン,またはWindowsシステム上のサービスとして,実行するだろう。ある実施例では,そのエージェントは,サーバからダウンロードされ,ブラウザクライアントのように,ユーザエージェントのコンテキストの範囲で動作するだろう。例えば,そのエージェントは,ウェブページに埋め込まれ,クライアントシステムに付加された1つまたは複数の入力デバイスにおける相互作用イベントを監視するユーザイベントのコンテキストの範囲内で実行可能なJavaスクリプトのコードを含むだろう。ある実施例では,そのエージェントは,Javaバーチャルマシンとの接続において動作するJavaアプレットやプログラムであろうし,それ自身は,ブラウザクライアントのように,ユーザエージェントへのプラグインとなり得る。
[0031] 初期化ステップ300は,全般的に,クライアントシステムで実行する1つのアプリケーションがフォーカスされたときにトリガーされる。そのフォーカスは,グラフィカルユーザインターフェースのコンポーネントを示し,それは,入力を受信するために選択されている。キーボードによる入力やクリップボードを介してのテキストが,現在フォーカスを有するコンポーネントに送信される。フォーカスは,マウスクリックを通したり,例えばALTとTABキーの組み合わせのようなキーボードの組み合わせを押すことにより,アプリケーションに移動するだろう。一般的には,本発明のある実施例は,クライアントシステム上で実行する少なくとも1つのアプリケーションにおいて初期化される。例えば,クライアントシステム上で実行される複数のインターネットブラウザアプリケーションがあるだろう。本発明のある実施例では,ウェブページに埋め込まれ,ブラウザアプリケーションがフォーカスされたときに実行される,Javaスクリプトプログラムであるだろう。本発明のある実施例はまた,ブラウザアプリケーションがフォーカスされたときに実行されるだろうActionScriptのようなMacromedia Flash componentだろう。
[0032] 初期化において,そのエージェントは,マウスムーブメントやその他の相互作用イベントのリスナーとして登録される。初期化の後,そのエージェントは,ステップ304でどのような相互作用イベントをチェックする前にも,ステップ302の期間の間待ち状態となる。ある実施例では,ステップ302の待ち時間は,128ミリ秒または256ミリ秒のように,固定された時間間隔である。その他の実施例では,待ち期間はランダムに選ばれた時間間隔であろう。
[0033] ステップ304において,そのエージェントは,相互作用イベントをチェックする。ある実施例では,クライアントシステムに付加された入力デバイスとの相互作用は,結果として,バッファに蓄積されるデータとなり,そしてそれは,オペレーティングシステムによって処理される。アプリケーションプログラミングインターフェースは,そのエージェントに,ブラウザやその他のユーザアプリケーションへと繋がる相互作用イベントのサブスクライバーやコンジューマーとして登録されることを許可する。例えば,そのエージェントは,その動作やボタンステートを特徴付けるマウスによって転送される,パケット化されたデータストリームのサブスクライバーとして登録されるだろう。その他の実施例では,そのエージェントは,例えばマウスの表示座標のような,相互作用イベントデータを提供するオペレーティングシステムによって提供されるアプリケーションプログラミングインターフェースを用いる相互作用イベントのリスナーとして登録される。そのエージェントは,定期的に起動し,そして,例えばマウス動作識別イベントが到達するサブスクライブイベントを待機する。もし,そのエージェントが,相互作用イベントをチェックするステップ304にいる間に,いかなるサブスクライブイベントを受信しても,そのエージェントは,最後のマウス座標や最後のキーストロークのようなイベントデータを記録する。もし,そのエージェントが起動している間にエージェントが到達するサブスクライブイベントがなければ,そのエージェントはスリープとなり,相互作用イベントを再びチェックするために起動する前のステップ302の別の期間の間を待機する。
[0034] もしそのエージェントがステップ304において相互作用イベントを探索すると,そのエージェントは,ステップ306において相互作用イベントの1つまたは複数のパラメータを記録する。ある実施例では,ディスプレイスクリーン上のマウスポインタの座標が記録されるだろう。他の実施例では,キーボード,タッチスクリーン,ペン入力デバイス,または,会話認識デバイスから入力される文字やシンボルが記録されるだろう。ある他の実施例では,スワイプやシェイク動作,動作方向,動作の長さや大きさのような動作のタイプが記録されるだろう。ある実施例では,相互作用イベントのパラメータがエージェントによって操作されたキャッシュファイルに記録されるだろう。他の実施例では,そのパラメータは,そのエージェントによって操作された内部メモリバッファに記録されるだろう。
[0035] ステップ308において,そのエージェントは記録した相互作用イベントの数をカウントし,その数が閾値に到達したかを否かをチェックする。ある実施例では,3つのマウス動作イベントが,データがリモートシステムに転送される前に,収集される。図4は,記録された3つのマウス座標の例を示している。座標400{P0,T0}は,時間T0に記録された最初のマウス座標であり,P0はディスプレイスクリーン上での座標であり,これは一般的にX軸値とY軸値とからなる。同様に,座標402{P1,T0+△t}は,時間T0+△tに記録された2番目のマウス座標であり,ここで△tは時間間隔で,座標404{P2,T0+2△t}は,時間T0+2△tに記録された3番目のマウス座標である。ある実施例では,時間間隔△tは,128ミリ秒または256ミリ秒のように,固定された値に設定されるだろう。他の実施例では,時間間隔△tは,そのエージェントにより任意に設定に設定されるだろう。3つのマウス座標は図4に示されるように,三角形を形成するだろう。ある実施例では,三角形406の高さXは,複数のマウス座標セットにより導出され,そして,探索ボットの特徴として用いられるだろう。相互作用イベントがボットによって生成される時には,406Xの分布は,その相互作用イベントが人間によって生成された場合の分布と異なるだろう。他の実施例では,他の値が探索ボットの特徴量として導出され用いられるだろう。例えば,図4における3つのマウス座標により形成される三角形のエリアの分布が,探索ボットの特徴量として導出され用いられるだろう。他の実施例では,様々なボットのタイプが,様々な特徴値を用いることによって概ね特定されるだろう。様々な側面のタイプは,様々なボットのタイプを探索するために用いられるだろう。」)

エ.「[0040] FIG. 5 illustrates an example process used for validating whether a session related interaction event, such as clicking on a link in a web page, is a result of human interaction with an input device attached to a client system, which process may be used by an embodiment of the present invention. In the first step 500 , the process receives one or more interaction events recorded by an agent. In one embodiment, the interaction events entail three mouse coordinates recorded at regular intervals of time as illustrated in FIG. 4 . The values of the three positional mouse coordinates may be encoded in the interaction event data recorded by the agent. In some embodiments, the agent monitors the coordinates and computes a signature value based on the coordinates and transmits the signature value to the server. In step 502 , the process decodes the data encoded in the interaction events such as the three mouse ordinates 400 {P0,T0}, 402 {P1,T0+△t}, and 404 {P2,T0+2△t} as illustrated in FIG. 4 . In step 504 , a signature value is derived using the decoded data. In one embodiment, the signature value is the height of a triangle formed by three mouse coordinates as illustrated by 406 X in FIG. 4 . Once the signature value is derived, the process runs a statistical test in step 506 to test the hypothesis that the interaction events are a result of human interaction with an input device attached to the client system. In one embodiment, a likelihood ratio test is used and the test is performed on the height of the triangle formed by the three mouse coordinates as illustrated by 406 X in FIG. 4 . When the mouse movements are generated by bots, the distribution of 406 X may be different from that resulting from mouse movements generated by humans.
・・・(中略)・・・
In step 508 , the process checks whether the computed statistic λ(X) is over a threshold value θ. If λ(X) is greater than θ, the process may determine that the interaction events are indeed generated by a human in step 510 . Otherwise, the process may determine that the interaction events are generated by a bot in step 512 .
[0041] The threshold value θ may be determined by historical data, i.e., by analyzing distributions of the height of the triangle when it is known that the mouse coordinates are generated by bots and by human. For example, bot and human interaction models, i.e., probability distribution function for 406 X in FIG. 4 may be a heuristic process of developing the profiles against which the agent-gathered data is compared. There may be several profiles for different types of bots. A normal distribution may be assumed for the distribution of X and histograms of X may be obtained over a period of time. When X is from a known bot, either through simulation or through an identification process such as a human editorial review, a probability distribution function may be established for X. Multiple Xs may be analyzed to develop a score that may be used as a signature to detect bots. Other attributes of the triangle geometry may also be analyzed in combination to establish a signature. For example, a weighted sum of attributes of the triangle may be used as a signature for bots.」
(当審訳:「[0040] 図5は,相互作用イベントに関連するセッション,例えば,ウェブページのリンクをクリックするなどが,人間によるクライアントシステムに付加された入力デバイスを用いた相互作用での結果であるのかを検証するために用いられるプロセスの例を示しており,そのプロセスは,本発明の実施例によって用いられるだろう。最初のステップ500において,プロセスはエージェントによって記録された1つまたは複数の相互作用イベントを受信する。ある実施例では,相互作用イベントは,図4に示されているような規則的な時間間隔で記録された3つのマウス座標を伴う。3つのマウスの位置座標の値は,エージェントによって記録された相互作用イベントデータにエンコードされるだろう。ある実施例では,そのエージェントは,座標を監視し,座標に基づいた特徴値を計算し,サーバに特徴値を転送する。ステップ502において,その処理は,例えば,図4に示された3つのマウス座標400{P0,T0},402{P1,T0+△t},及び,404{P2,T0+2△t}のような,相互作用イベントにエンコードされたデータをデコードする。ステップ504において,特徴値は,デコードされたデータを使って導出される。ある実施例では,特徴値は図4の406Xとして示された3つのマウス座標によって形成された三角形の高さである。一旦,特徴値が導き出されると,プロセスは,その相互作用イベントが,クライアントシステムに付加された入力デバイスを用いた人間による相互作用の結果であるとの仮説をテストするための,ステップ506における統計的テストを実行する。ある実施例では,類似比テストが用いられ,そのテストは,図4の406Xとして示された3つのマウス座標によって形成された三角形の高さに対して実施される。マウス動作がボットによって生成される時には,406Xの分布は,人間によって生成されたマウス動作からの結果と異なっているだろう。
・・・(中略)・・・
ステップ508において,計算された統計値λ(X)がプロセスは閾値θを超えているか否かをチェックする。もしλ(X)がθより大きい場合は,そのプロセスは,ステップ510において,その相互作用イベントが当然に人間によって生成されたものであると判断するだろう。そうでなければ,そのプロセスは,ステップ512において,その相互作用イベントがボットによって生成されたものであると判断するだろう。
[0041] 閾値θは履歴データによって,すなわち,マウス座標がボットと人間によって生成されていることが分かっている時に,三角形の高さの分布を分析することによって,決定されるだろう。例えば,ボットと人間の相互作用モデル,例として,図4に示された406Xのための蓋然的分布関数は,エージェントが収集したデータを比較するプロファイルを改善するためのヒューリステックなプロセスであろう。異なるタイプのボットには様々なプロフィールがあるかもしれない。通常の分布は,Xの分布として仮定されるかもしれず,また,Xのヒストグラムは,一定の時間で得られるかもしれない。Xが既知のボットによるものである場合,シミュレーションまたは人間による社説レビューのような認識プロセスを通して,蓋然的分布関数がXのために確立されるだろう。多くのXが,スコアを開発するために分析され,それは,ボットを探索するための特徴として利用されるだろう。三角形の配列の他の属性は,また,特徴を確立するための関連において分析されるだろう。例えば,三角形の属性の加重合計が,ボットの特徴として利用されるだろう。」)

上記ア.?エ.の記載から,上記引用文献1には次の発明(以下,「引用発明」という。)が記載されていると認められる。

「ネットワークコミニュケーションにおけるインターネットボットの探索に向けられている方法であって,
クライアントシステムに付加された入力デバイスを用いた相互作用によって生成された相互作用イベントを,サーバのエージェントが定期的に記録することができるものであり,当該エージェントは,その相互作用イベントがクライアントシステムに付加された入力デバイスを用いた人間による相互作用の結果であることを検証するよう,記録された相互作用イベントをサーバに送信するものであって,
上記クライアントシステムや上記サーバに実装されるハードウェアシステムは,プロセッサ,キャッシュメモリ,1つまたは複数のソフトウェアアプリケーションやドライバーを含むものであり,
ホストにおける相互作用イベントの探索及び記録のために用いられるプロセスとして,
上記ホスト上の上記エージェントが初期化されることであって,当該初期化は,上記サーバから上記クライアントシステムへダウンロードされる上記エージェントを有効化することを含み,ウェブページは,さらに1つまたは複数の広告を含み,例えば,ハイパーテキストリンクやバナーアドが提供されており,それらをユーザはクリックしたとき,ブラウザーはサーバに広告のリクエストを転送するものであり,上記エージェントは,ウェブページに埋め込まれ,クライアントシステムに付加された1つまたは複数の入力デバイスにおける相互作用イベントを監視するユーザイベントのコンテキストの範囲内で実行可能なJavaスクリプトのコードを含む,初期化されることと,
上記エージェントが,相互作用イベントをチェックすることと,
上記エージェントが相互作用イベントを探索すると,上記エージェントが,相互作用イベントの1つまたは複数のパラメータを記録することであって,ディスプレイスクリーン上のマウスポインタの座標を記録すること,または,キーボード,タッチスクリーン,ペン入力デバイス,会話認識デバイスから入力される文字やシンボルを記録すること,または,スワイプやシェイク動作,動作方向,動作の長さや大きさのような動作のタイプを記録することである,記録することと,
上記エージェントが,記録した相互作用イベントの数をカウントし,その数が閾値に到達したかを否かをチェックすることであって,データがリモートシステムに転送される前に,収集され,記録された3つのマウス座標の例としては,座標400{P0,T0},座標402{P1,T0+△t},座標404{P2,T0+2△t}であって,3つのマウス座標が三角形を形成し,三角形の高さXは複数のマウス座標セットにより導出され探索ボットの特徴として用いられ,相互作用イベントがボットによって生成される時のXの分布は,相互作用イベントが人間によって生成された場合の分布と異なるものである,チェックすること,
を含み,
相互作用イベントに関連するセッション,例えば,ウェブページのリンクをクリックすることなどが,人間によるクライアントシステムに付加された入力デバイスを用いた相互作用であるのか否かを検証するために用いられるプロセスとして,
上記エージェントによって記録された1つまたは複数の相互作用イベントを受信することであって,相互作用イベントは,規則的な時間間隔で記録された3つのマウス座標を伴うものである,受信することと,
上記エージェントが,座標を監視し,座標に基づいた特徴値を計算し,サーバに特徴値を転送することであって,特徴値はXとして示された3つのマウス座標によって形成された三角形の高さである,転送することと,
特徴値が導き出されると,その相互作用イベントが,クライアントシステムに付加された入力デバイスを用いた人間による相互作用の結果であるとの仮説をテストするため,統計的テストを実行することであって,マウス動作がボットによって生成される時には,Xの分布は,人間によって生成されたマウス動作からの結果と異なっている,実行することと,
計算された統計値λ(X)が閾値θを超えているか否かをチェックすることであって,λ(X)がθより大きい場合は,その相互作用イベントが人間によって生成されたものであると判断し,そうでない場合には,その相互作用イベントがボットによって生成されたものであると判断する,チェックすること,
を含むものであり,
閾値θは履歴データによって,すなわち,マウス座標がボットと人間によって生成されていることが分かっている時に,三角形の高さの分布を分析することによって,決定される,
方法。」

2.引用文献2について
原査定の拒絶理由に引用された,米国特許出願公開第2005/0278253号明細書(以下,これを「引用文献2」という。)には,図面とともに次の事項が記載されている。

オ.「[0026] In the present invention, a method and architecture are provided to implement a Human Interactive Proof that verifies that a human is involved in a computing transaction, whereby the human is sending an item to a recipient. In the Proof, and in general, the sent item is accompanied by a send attestation stating to the effect that a sufficient human effort was in fact detected in connection with the sent item, and correspondingly that the computer did not simply send the item based on a program or application that does not require any significant human effort on a per send item basis. The sufficient human effort detected may for example include a keystroke, a mouse click, a minimum number of keystrokes or mouse clicks, a minimum composition time, a selection of a maximum number of recipients, a maximum number of send items delivered per unit time, etc. In the invention, the human interaction is detected passively so that the human need not exert any active effort in connection with the send attestation. Thus, the human interaction is detected based on activities that a human would normally undertake in the course of constructing and sending a send item to a recipient thereof. 」
(ファミリである特開2006-5921号の対応する記載:「【0021】
・・・(中略)・・・
本発明では,コンピューティングトランザクションに人間が関与しており,それによって人間が受信者にアイテムを送信していることを検証するHIP技術を実施するための方法およびアーキテクチャを提供する。一般的に,証明において,送信されるアイテムは,その送信されるアイテムに関連して実際に十分な人間の取組みが検出され,従ってコンピュータは,送信アイテムごとに意味のある人間の取組みをまったく必要としないプログラムやアプリケーションに基づいて単にアイテムを送信したのではないという旨を示す送信証明を伴う。検出される十分な人間の取組みは,例えば,キーストローク,マウスクリック,最小回数のキーストロークまたはマウスクリック,最小の構成時間,最大数の受信者の選択,単位時間あたりに送達される最大数の送信アイテムなどを含むことができる。本発明では,人間の対話は受動的に検出されるため,人間は送信証明に関連して能動的な取組みを行う必要はまったくない。従って人間の対話は,送信アイテムを作成してその受信者へ送信する過程で人間なら通常行うであろう行動に基づいて検出される。」)

カ.「[0045] Significantly, the constructed send attestation 18 also includes a statement describing the send item 14 , and also relevant information relating to the send item 14 . Notably, such statement may be from the attestation unit 24 or the application 26 . In the latter case, the statement from the attestation unit 24 describing the application 26 at least implicitly states that the application 26 can be trusted to issue the statement describing the send item 14 . Here, the relevant information relating to the send item 14 in the statement from the attestation unit 24 or application 26 likely includes monitored data such as a number of keyboard taps and/or a number of mouse clicks in connection with construction of the send item 14 by the user, a length of time to construct, a number of recipients 16 , etc. As may be appreciated, and again, such relevant information may be employed by the recipient 16 in deciding whether to accept and honor the send attestation 18 and/or in deciding whether to accept and process the send item 14 . Note again that while the constructed send attestation 18 may also include a statement to the effect that the send item 14 is indeed trustworthy, such statement is not believed to be absolutely necessary, especially inasmuch as such a statement is implicit in the fact that the attestation unit 24 or application 26 chose to issue the statement describing the send item 14 . 」
(「【0040】
注目すべきことに,構築された送信証明18は,送信アイテム14について記述するステートメントと送信アイテム14に関する関連情報も含む。とりわけ,そうしたステートメントは,証明ユニット24またはアプリケーション26から生じることができる。後者の場合,アプリケーション26について記述する証明ユニット24からのステートメントは,送信アイテム14について記述するステートメントを発行するものとしてアプリケーション26が信用できることを少なくとも暗に示す。ここで,証明ユニット24またはアプリケーション26からのステートメント内の送信アイテム14に関する関連情報は,おそらく送信アイテム14の構築に関連してユーザがキーボードのキーを複数回押したことおよび/またはマウスを複数回クリックしたこと,構築に要した時間,複数の受信者16などのモニタされたデータを含む。理解できることであろうが,そうした関連情報は,送信証明18を受け入れて承認するかどうかを決定する際に,および/または送信アイテム14を受け入れて処理するかどうかを決定する際に,受信者16によって使用することができる。やはり,構築された送信証明18は,送信アイテム14が確かに信用できる旨のステートメントを含むこともできるが,そうしたステートメントは,特に証明ユニット24またはアプリケーション26が,送信アイテム14について記述するステートメントの発行を選択したという事実から暗に見て取れるため,絶対に必要とはみなされない点に留意されたい。」)

3.引用文献3について
原査定の拒絶理由に引用された,米国特許出願公開第2010/0281539号明細書(以下,これを「引用文献3」という。)には,図面とともに次の事項が記載されている。

キ.「[0005] Malicious users have recently developed network attacks at layer seven (application layer) of the OSI model. As one example, DoS attacks at the application layer may continually issue requests that consume a large amount of a web server's resources. For example, layer seven DoS attacks include repetitive issuing of database queries to the server. Other malicious network sessions at the application layer include “click fraud,” where an automated device or script repeatedly selects a particular ad-based link of a web page. Owners of web pages that display ad-based links receive revenue for each instance that the link is selected, thus automating selection of the link may be fraudulent. Another malicious network session at the application layer relates to e-mailing scripts that send spam e-mails to as many recipients as possible.
[0006] To implement these attacks, some malicious users write programs (i.e., malicious software agents) that are intended to be executed on one or more other users' computers. Malicious users may write viruses, trojans, worms, or other malicious programs that implement these various attacks and that spread to many different computers. A malicious program may act as a “bot” that executes a script or other automated program to execute a network attack or perform other malicious activity at the application layer. A group of computing devices infected with the same malicious program, referred to as a “bot net,” may coordinate a network attack or malicious action against a common target at the application layer. Conventional IDS devices are not able to detect or react to software agents that implement these application-layer attacks.
SUMMARY
[0007] In general, this disclosure describes techniques for detecting automated software agents that perform malicious attacks or other actions. The techniques generally include analyzing protocols utilized within a network session (e.g., layer three through layer seven protocols) to compute metrics for the particular network session and determining whether the session is representative of to a normal user's behavior or a malicious automated software agent. For example, an intrusion detection system (IDS) or an intrusion detection and prevention (IDP) device examines traffic of a particular network session and calculates scores for a plurality of different metrics. The metrics may, for example, relate to a characteristic typically indicative of a malicious network session. Various combinations of the metrics are used to determine a probability that the network session is originated by a malicious network software agent. The IDP device may therefore calculate an aggregate score for the metrics and determine that a network session is malicious when the aggregate score exceeds a threshold.」
(当審訳:「[0005] 悪意のあるユーザは,近年,OSIモデルのレイヤー7(アプリケーション層)におけるネットワーク攻撃を開発してきている。一例として,アプリケーション層におけるDos攻撃は,かなりの量のウェブサーバ資源を消費するリクエストを継続的に発行するだろう。例えば,レイヤー7Dos攻撃は,サーバに対しデータベースクエリーを繰り返し発行することを含む。アプリケーション層での他の悪意のあるネットワークセッションは,“クリックフラウド”を含み,そこでは,自動化されたデバイスやスクリプトが,ウェブページの特別な広告ベースのリンクを繰り返し選択する。広告ベースのリンクを表示したウェブページのオーナーは,そのリンクが選択されたという事項によって収入を得るので,そのリンクの自動的な選択は詐欺行為となる。アプリケーション層における別の悪意のあるネットワークセッションは,可能な限り沢山の受信者にeメールを送信するeメールスクリプトに関連する。
[0006] これらの攻撃を実装するため,悪意あるユーザには,1つまたは複数の他のユーザのコンピュータにおいて実行されることを意図したプログラム(例えば,悪意あるソフトウェアエージェント)を書くものもいる。悪意あるユーザは,ウィルス,トロージャン,ワーム,または他の悪意あるプログラムを書くだろうし,それらは,様々な攻撃を実装し,多くの異なるコンピュータに拡散する。悪意あるプログラムは,“ボット”として活動し,それは,ネットワーク攻撃を実行したり,アプリケーション層において他の悪意ある行動を実行したりする,スクリプトや他の自動プログラムを実行させるものである。ある悪意のあるプログラムに感染したコンピューティングデバイスのグループが,いわゆる“ボットネット”として,ネットワーク攻撃やアプリケーション層での通常のターゲットに対する悪意ある行動を連携して行うかもしれない。従来のIDSデバイスは,このようなアプリケーション層の攻撃を実装するソフトウェアエージェントを探索したり反応したりすることができない。
概要
[0007] 一般的に,本開示は,悪意ある攻撃や他の行動を実行する自動化されたソフトウェアエージェントを探索するための技術を示している。その技術は一般に,特定のネットワークセッションのためのメトリックを計算するために,ネットワークセッションで用いられるプロトコル(例えば,レイヤー3からレイヤー7へのプロトコル)を分析したり,そのセッションが普通のユーザの行動によるものか,あるいは,悪意ある自動化されたソフトウェアエージェントによるものか,を判断することを含む。例えば,侵入探索システム(IDS)または侵入探索防止(IDP)デバイスは,特定のネットワークセッションの通信を検査し,複数の異なるメトリックのスコアを計算する。そのメトリックは,例えば,悪意あるネットワークセッションを典型的に示す特徴に関連する。メトリックの様々な組み合わせは,悪意あるネットワークソフトウェアエージェントによってそのネットワークセッションが発生されることの蓋然性を判断するために用いられる。IDPデバイスは,それゆえ,メトリックの集計スコアを計算し,その集計スコアが閾値を超えた場合には,そのネットワークセッションが悪意のあるものであると判断する。」)

ク.「[0055] FIG. 4 is a block diagram illustrating an example bot detection module 58 . In the example of FIG. 4 , bot detection module 58 includes metric calculators 60 A- 60 N (metric calculators 60 ), weighting modules 62 A- 62 N (weighting modules 62 ), averager 64 , threshold store 66 , and comparator 68 . Each of metric calculators 60 calculates a score for a corresponding metric regarding a network session based on data of received traffic of the network session. The data may include application-layer data, such as transaction data 34 and application-layer elements 36 . The data may also include data from flow table 35 , such as open communication sessions between each server and client, packet flows, connections, transactions for each connection, times for each transaction request, and times for each reply to a transaction request. Metric calculators 60 provide the scores to a corresponding one of weighting modules 62 . Each of metric calculators 60 output a scalable score that indicates whether the network session is more “normal-user-like” or more “bot-like.” For example, each of metric calculators 60 may output a score between 0 and 100, where a score of “0” represents that the network session exhibits properties that are more like that of a normal user for that particular metric, and where a score of “100” represents that the network session exhibits properties that are more like that of a bot for that particular metric.
[0056] Weighting modules 62 weight the corresponding score by scaling the score up or down by a particular amount. For example, one of weighting modules 62 , e.g., weighting module 62 A, may scale the corresponding score, in this case the score calculated by metric calculator 60 A, by a particular weighting factor. Weighting module 62 A may scale the output of metric calculator 60 A by a factor of “1.0” to not change the score at all. Weighting module 62 A may scale the output of metric calculator 60 A by a factor greater than one, e.g., “1.5,” to increase the value of the score calculated, resulting in the score from metric calculator 60 A factoring into the aggregate score more heavily. Weighting module 62 A may also scale the output of metric calculator 60 A by a factor less than one, e.g., “0.5,” to decrease the value of the score calculated, resulting in the score from metric calculator 60 A factoring into the aggregate score less heavily. Each of weighting modules 62 may apply a different weighting factor to output of the respective one of metric calculators 60 . Weighting modules 62 send respective weighted scores to averager 64 .
[0057] Averager 64 calculates an average score from the weighted scores from output of weighting modules 62 . In examples that do not include weighting modules 62 , averager 64 calculates an average score from the scores calculated by metric calculators 60 . In one example, averager 64 calculates an aggregate score as the average of the weighted scores, e.g., according to the formula:
Aggregate score =・・・(中略)・・・
where the function weightedMetricScore(i) corresponds to the output of the ith one of weighting modules 62 . Although the example formula represents calculating the score serially on the output of weighting modules 62 , it should be understood that in some examples, each of weighting modules 62 calculates the weighted scores in parallel, e.g., with dedicated hardware or a plurality of different sets of programmable hardware.
[0058] Threshold store 66 generally stores a threshold value for determining whether the aggregate score calculated by averager 64 represents normal user behavior or bot-like behavior. Comparator 68 compares the aggregate score calculated by averager 64 to the threshold of threshold store 66 and, when the aggregate score exceeds the threshold, comparator 68 determines that the network session being analyzed is being performed by a bot or a bot-like system or program.」
(当審訳:「[0055] 図4は,ボット探索モジュール58の例を示したブロック図である。図4の例として,ボット探索モジュール58は,メトリックカリキュレータ60A-60N(メトリックカリキュレータ60),加重モジュール62A-62N(加重モジュール62),アベレージャ64,閾値ストア66,及び,比較器68を含む。各メトリックカリキュレータ60は,ネットワークセッションに関する該当するメトリックのスコアを,受信されたネットワークセッションの通信のデータに基づいて計算する。そのデータはアプリケーションレイヤーデータを含むことがあり,例えば,通信データ34やアプリケーションエレメント36である。そのデータはまたフローテーブル35からのデータを含むことがあり,例えば,各サーバとクライアントとの間のオープンコミニュケーションセッション,パケットフロー,接続,各接続の転送,各転送リクエストのための時間,及び,転送リクエストに対する各応答のための時間,である。メトリックカリキュレータ60は,加重モジュール62のうち該当する1つに対してそのスコアを渡す。各メトリックカリキュレータ60は,そのネットワークセッションがより“普通のユーザらしい”か,あるいは,より“ボットらしい”か,を示す,拡張性のあるスコアを出力する。例えば,各メトリックカリキュレータ60は,0から100の間のスコアを出力するであろうし,その際に,スコア“0”は,そのネットワークセッションが,特定のメトリックから,より普通のユーザのものらしい特性を示している,ことを表しており,また,スコア“100”は,そのネットワークセッションが,特定のメトリックから,よりボットのものらしい特性を示している,ことを表している。
[0056] 加重モジュール62は,特定の量によってスコアを上げたり下げたり調整することで該当するスコアを重み付けするものである。例えば,加重モジュール62の一つ,例えば加重モジュール62A,は,メトリックカリキュレータ60Aによって計算されたスコアの場合には,該当するスコアを,特定の重み付けファクターによって調整するであろう。加重モジュール62Aは,ファクター“1.0”によって,メトリックカリキュレータ60Aの出力を全く変えることのないよう調整するかもしれない。加重モジュール62Aは,ファクターとしてより大きい,例えば“1.5”によって,スコアの計算結果が増加するようにし,結果として,メトリックカリキュレータ60Aからのスコアが,より重い集計スコアとなるようファクター付けされるように,メトリックカリキュレータ60Aの出力を調整するかもしれない。加重モジュール62Aはまた,ファクターとしてより小さい,例えば“0.5”によって,スコアの計算結果が減少するようにし,結果として,メトリックカリキュレータ60Aからのスコアが,より重くない集計スコアとなるようファクター付けされるように,メトリックカリキュレータ60Aの出力を調整するかもしれない。各加重モジュール62Aは,メトリックカリキュレータ60のそれぞれの出力に,異なった重み付けファクターを適用するかもしれない。各加重モジュール62は,それぞれの重み付けされたスコアをアベレージャー64に送信する。
[0057] アベレージャー64は,加重モジュール62の出力から,重み付けされたスコアからの平均スコアを計算する。加重モジュール62を含まない例として,アベレージャー64は,メトリックカリキュレータ60によって計算されたスコアから平均スコアを計算する。ある例では,アベレージャー64は,例えば,次の式によって重み付けされたスコアの平均スコアを計算する。
集計スコア=・・・(中略)・・・
ここで,関数weightedMetricScore(i)は,i番目の加重モジュール62の出力に該当する。事例の関数は,加重モジュール62の出力において直列的になるようスコアを計算することを表しているが,ある例では,各加重モジュール62が,並列に,例えば,特定のハードウェアまたはプログラム可能なハードウェアの複数の異なるセットによって,重み付けされたスコアを計算するものと理解されるべきである。
[0058] 閾値ストア66は,一般に,アベレージャー64によって計算された集計スコアが,普通のユーザの行動を表しているか,あるいは,ボットのような行動を表しているか,を判断するための閾値を記憶する。比較器68は,分析されるネットワークセッションがボットかまたはボットのようなシステムまたはプログラムのよって実行されるものか,を判断する。」)

4.引用文献4について
原査定の拒絶理由に引用された,特開平11-353172号公報(以下,これを「引用文献4」という。)には,図面とともに次の事項が記載されている。

ケ.「【0036】図2は,CD-ROM2に記録されているアプリケーションプログラムのファイル構成を概念的に示す図である。このアプリケーションプログラムは,Perlに代表されるインタプリタ言語で記述されたテキスト形式のプログラム(以下「スクリプト」という。)に相当する非テキストスクリプトおよびこの非テキストスクリプトを実行するためのバイナリ形式の実行プログラムをそれぞれ別のプログラムとして有するとともに,スクリプトを逐一解釈して実行するためのインタプリタを有している。
【0037】なお,Perlなどの汎用的なインタプリタ言語でスクリプトが記述され,かつ,ユーザが汎用インタプリタを既に所有している確率が高い場合,および,有償無償にかかわらず汎用インタプリタを簡単に入手できる環境にある場合には,インタプリタをCD-ROM2に記録しておく必要は必ずしもない。ただし,専用のインタプリタでなければ実行できないようなスクリプトであれば,専用インタプリタをCD-ROM2に記録しておく必要がある。
【0038】非テキストスクリプトおよび実行プログラムは,符号化プログラムにより作成される。この作成手順をより詳述すれば,図3に示すように,作成されたスクリプトは,符号化プログラムに入力される。符号化プログラムは,入力されたスクリプトに対して所定の符号化処理を施し,非テキスト形式のプログラムである非テキストスクリプトを作成する。
【0039】符号化処理は,一種の暗号化処理であり,たとえば図4に示すように,ASCII(American standard code for information interchange)コードの最上位ビットの「0」を「1」に反転する処理である。スクリプトは,通常,ASCIIコードで記述される。ASCIIコードは,図4(a) に示すように,最上位ビットを「0」とし,残余の7ビットでアルファベットおよび数字を表現しているものであるから,実質的に,最上位ビットを除く7ビットで情報が表現されている。一方,コンピュータでは,8ビットを1単位として情報を認識するから,図4(b) に示すように,最上位ビットの「0」を「1」に反転するだけで,その1バイトの情報は,もはやASCIIコードとは認識されなくなる。しかも,情報表現に用いていない最上位ビットを反転しているだけであるから,情報破壊のおそれもまったくない。
【0040】図2および図3に戻って,符号化プログラムは,また,このようにして作成された非テキストスクリプトを実行するための実行プログラムをバイナリ形式で作成する。より具体的には,符号化プログラムは,非テキストスクリプトを復号化するための復号化プログラムおよび復号化プログラムによって復号化された結果復元されたスクリプトをインタプリタに渡すためのスクリプト提供プログラムを作成する。この場合,復号化プログラムおよびスクリプト提供プログラムは,機械語で記述される。
【0041】復号化プログラムにおける復号化処理としては,上述の符号化方式の反対の処理に相当するものが適用される。具体的には,ASCIIコードの最上位ビットを「1」から「0」に反転する処理である。したがって,この復号化処理が行われた後の1バイトの情報は,ASCIIコードとして認識されることになる。
【0042】なお,スクリプトの符号化処理としては,たとえばASCIIコードの最上位ビット以外の1または複数のビットを反転させる処理が考えられる。この構成によっても,符号化後の情報をASCIIコードと認識させないようにすることができるから,良好な符号化を達成できる。また,この場合における復号化処理は,反転された1または複数のビットをさらに反転させて元に戻す処理が用いられることは言うまでもない。
【0043】符号化プログラムは,上述のようにして作成された非テキストスクリプトおよび実行プログラムをそれぞれ別のプログラムとして出力する。
【0044】次に,このコンピュータによりスクリプトが実行される処理について簡単に説明する。CD-ROM2に記録されているアプリケーションプログラムがハードディスク4にインストールされた後,当該アプリケーションプログラムの実行がキーボードなどから指示されると,バイナリ形式の実行プログラムが起動する。具体的には,実行プログラムの一部である復号化プログラムが非テキストスクリプトを呼び出し,この非テキストスクリプトに対して復号化処理を施す。その結果,スクリプトが復元される。
【0045】その後,復号化プログラムは,復元されたスクリプトをスクリプト提供プログラムに渡す。スクリプト提供プログラムは,受け取ったスクリプトをインタプリタに渡す。この場合,スクリプト提供プログラムからインタプリタへのスクリプトの渡し方としては,たとえば,スクリプト提供プログラムが制御部1内に備えられているRAM6にスクリプトを保持させ,この保持されているスクリプトをスクリプト提供プログラムが読み出してインタプリタに渡すということが考えられる。また,スクリプト提供プログラムとインタプリタとのプログラム間(プロセス間)通信を利用してスクリプトをインタプリタに渡したり,一時ファイルを介してスクリプトをインタプリタに渡したりすることが考えられる。」

コ.「【0064】さらにまた,ハフマン符号化方式を用いてスクリプトを符号化するようにしてもよい。この場合であっても,各1バイトの情報はASCIIコードではなくなる。また,復号化処理が軽くなるという利点もある。さらに,DES(Data encryption standard)またはRSAなどの暗号方式を用いてスクリプトを符号化するようにしてもよい。この構成によれば,スクリプトが暗号化されるから,解読が一層困難になり,プログラムの改造や類似ソフトの開発を確実に防ぐことができる。
【0065】さらにまた,回転および区分分割方式の処理を施すことによりスクリプトを符号化するようにしてもよい。この構成によっても,スクリプトを良好に符号化することができるから,プログラムの改造や類似ソフトの開発を確実に防ぐことができる。
【0066】さらに,上記実施形態では,この発明をCD-ROM2に適用する場合を例にとって説明しているが,この発明は,DVD(Digital video disk),MO(Magneto optical) ディスクなどの携帯型記録媒体に対しても容易に適用することができる。また,ハードディスク4などの固定型記録媒体に対しても容易に適用することができる。
【0067】この発明を固定型記録媒体に適用する場合の代表的な利用例としては,たとえばインターネットのプロバイダおよび企業が保有しているWWW(world wide web)サーバおよびFTP(file transfer protcol )サーバなどにアプリケーションプログラムを記録しておき,このサーバにアクセスしてきたクライアントとしてのパーソナルコンピュータなどにアプリケーションプログラムを有料でダウンロードできるようにしておくことが考えられる。」

5.引用文献5について
原査定の拒絶理由に引用された,特開平1-212041号公報(以下,これを「引用文献5」という。)には,図面とともに次の事項が記載されている。

サ.「第2図を参照しつつ,第3図のフローチャートにより処理動作を説明する。暗号化処理を行う送信側システムの端末機では,まず,送信要求が端末側に発生したとき,ステップ51において,時計機構11から,その時の時刻である例えば9時30分の時刻情報(T=9:30)を番地生成テーブル2に送出すると共に,当該時刻情報を受信システムのホスト計算機側に転送する。なお,このとき,ホスト計算機側に転送する時刻情報は,この時まで使用されている変換アルゴリズムと鍵を保持している暗号化処理部5と復号化処理部6とを介して,通信回線上を暗号文の形式で転送する。次にステップ52において,与えられた時刻情報から番地生成テーブル2で時間帯情報2aを参照して,当該時刻情報が入る時間帯から暗号化アルゴリズムアドレス2bのアルゴリズムアドレス(2)と,暗号鍵アドレス2cの鍵アドレス(1)とを読出す。すなわち,番地生成テーブル2において時刻情報T=9:30を参照キーとして時間帯情報2aの参照を行い,当該する時間帯の欄から暗号化アルゴリズムテーブル3に対するアルゴリズムアドレス(2)と暗号鍵テーブル4に対する鍵アドレス(1)とを読出す。次にステップ53で,得られたアルゴリズムアドレス(2)を参照キーとして暗号化アルゴリズムテーブル3から,暗号化アルゴリズム3bのアルゴリズムbを読出す。続いてステップ54で,得られた鍵アドレス(1)を参照キーとして暗号鍵テーブル4から,暗号鍵4bの鍵Aを読出す。次にステップ55において,読出した暗号化アルゴリズムbと鍵Aとを暗号化処理部5に供給する。これにより,暗号化処理部5では暗号化アルゴリズムbと鍵Aにより,暗号化プログラムが設定され,機密通信を行うための暗号化処理の準備が完了する。次に,ステップ56において,送信データ保持部16から送信データを暗号化処理部5に送り,送信データを暗号化して通信回線を介して送信する。このようにして暗号化通信を開始する。」(第4頁左下欄17行?第5頁左上欄13行)

6.引用文献6について
原査定の拒絶理由に引用された,国際公開第2010/105249号(以下,これを「引用文献6」という。)には,図面とともに次の事項が記載されている。

シ.「[0058] A Use Scenario in Client-Server Architecture
・・・(中略)・・・
[0063] Step (c): Once a sufficient number of samples have been collected, the authentication server 200 processes the user's input event data by training a support vector machine, the details of which are presented in Section 3.
[0064] Triggering events: The user's malware detection tool (e.g., BotHunter) detects a suspicious bot-like pattern in the network traffic (e.g., scanning machines on the local network for known network exploits). Such suspicious pattern activity may be termed a trigger event. A trigger event can be generated by any applicable, existing botnet detection tools, or it can be caused by simple events that are generated by analyzing the correlation between the user's activities and network traffic (e.g., sending email while being idle, or suspicious HTTP traffic without mouse activities). The trigger event may cause an authentication test to be launched. More detailed description and a list of suspicious events are given in Section 2.3.
[0065] The user-based analyzer 18, 218 challenge: The user-based analyzer 18, 218 prompts the user with a window in which to provide a chosen form of user input, such as by typing a chosen string S 1 . Based on this user's input event data (e.g., keystroke timing data) and the classification model built during the training phrase(当審注:「phase」の誤記), the user-based analyzer 18, 218 predicts whether the user is the legitimate owner or not.」
(当審訳:「[0058] クライアント-サーバアーキテクチャにおける利用シナリオ
・・・(中略)・・・
[0063] ステップ(c):一旦十分な数のサンプルが収集されたら,認証サーバ200は,ユーザ入力イベントデータを,サポートベクターマシンを訓練することによって処理し,その詳細は,セクション3に表されている。
[0064] トリガーイベント:ユーザのマルウェア探索ツール(例えば,ボットハンター)は,ネットワークトラフィックの中の疑わしいボットのようなパターンを探索する(例えば,既知のネットワークを探索することで,ローカルネットワーク上のマシンをスキャニングして)。そのような疑わしいパターン活動は,トリガーイベントと呼ばれるだろう。トリガーイベントは,どのような応用可能な現在のボットネット探索ツールによっても生成可能であろうし,ユーザアクティビティとネットワークトラフィックの相互関係(例えば,休止中にメールを送信することや,マウスアクティビティを伴わない疑わしいHTTPトラフィック)を分析することで生成される単純なイベントによって引き起こされるかもしれない。そのトリガーイベントは,実装される認証テストを誘起するかもしれない。より詳細な記述と疑わしいイベントのリストは,セクション2.3に示される。
[0065] ユーザベース分析器18,218のチャレンジ:ユーザベース分析器18,218は,ウィンドウによってユーザを励起し,そこでは,例えば,選択された文字列S1のタイピングによって,ユーザ入力の選択されたフォームを提供するものである。このユーザ入力イベントデータ(例えば,キーストロークのタイミングデータ)とトレーニングフェーズの期間に築かれた分類モデルに基づいて,ユーザベース分析器18,218は,そのユーザが,正当なオーナーなのかそうでないのかを予測する。」)

7.引用文献7について
原査定の拒絶理由に引用された,米国特許出願公開第2007/0073579号明細書(以下,これを「引用文献7」という。)には,図面とともに次の事項が記載されている。

ス.「[0037] A variety of proposals for reducing click fraud have surfaced. Most service providers currently approach the problem of click fraud by attempting to automatically recognize fraudulent clicks and discount them. Fraudulent clicks are recognized by machine learning algorithms which use information regarding the navigational behavior of users to try and distinguish between human and robot-generated clicks. Such techniques require large datasets to train the learning methods, have high classification error, and are at the mercy of the “wisdom” of the scammers. Recent tricks, like using inexpensive labor to generate these fraudulent clicks (see, N. Vidyasagar, India's secret army of online ad “clickers,” The Times of India, May 3, 2004), make it virtually impossible to use these machine learning algorithms. 」
(当審訳:「[0037] クリックフラウドを減少させる様々な提案が出てきている。多くのサービスプロバイダーは,現在,不正なクリックを自動的に認識しそれらを信用外に置くという試みによって,クリックフラウドの問題にアプローチしている。不正なクリックは,機械学習アルゴリズムによって認識され,それは,試行する人間とロボット生成によるクリックを区別する,ユーザの誘導的な行動に関する情報を利用するものである。そのような技術は,学習メソッドを訓練し,高い分類エラーを保持し,そして不正者の“知恵”に脅かされている,大量のデータセットを必要とする。これらの不正なクリックを安価な負担を用いて生成することのような,最近の手口(N. Vidyasagar, India's secret army of online ad “clickers,” The Times of India, May 3, 2004を参照。)が,これら機械学習アルゴリズムの利用を,ほぼ不可能にしている。」)

8.引用文献8について
原査定の拒絶理由に引用された,Park, K. et al., Securing Web Service by Automatic Robot Detection, 2006 USENIX Annual Technical Conference, [online], 2006年, p.255-260, [retrieved on 2016.06.16]. Retrieved from the Internet (以下,これを「引用文献8」という。)には,図面とともに次の事項が記載されている。

セ.「4.2 Detection by Machine Learnig
From the above discussion, the following question naturally follows:“How effective is a machine learning-based technique, and what is the trade-off?” The main forte of machine learning is that if we can characterize the typical features of human browsing, we can easily detect unwanted traffic by robots. Conceivably, it is very hard to make a bot that behaves exactly like a human.
To test the effectiveness of a detection algorithm using machine learning, we collected data by running CAPTCHA tests on CoDeeN for two weeks, and classified 42,975 human sessions and 124,271 robot sessions using 12 attributes shown in Table 2. We then divided each set into a training set and a test set, using equal numbers of sessions drawn at random. We built eight classifiers at multiples of 20 requests, using the training set. For example, the classifier at the request number 20 means that the classifier is built calculating the attributes of the first 20 requests, and the 40-request classifier uses the first 40 requests, etc. We used AdaBoost [5] with 200 rounds.
Figure 4 shows the accuracy of classification with respect to the number of requests. The result shows the classification accuracy ranges from 91% to 95% with the test set, and it improves as the classifier sees more requests. From our experiment, RESPCODE 3XX%, REFERRER % and UNSEEN REFERRER % turned out to be the most contributing attributes. Basically, robots do not frequently make requests that result in redirection; many bot requests do not have a valid referrer header field; and finally, referrer spam bots frequently trip the unseen referrer trigger.
Although this approach is promising, it has a few drawbacks. First, it requires significant amount of computation and memory, which may make the server susceptible to DoS attacks. Second, in order to make accurate decisions, it needs a relatively large number of requests, making it difficult to apply in a real-time scenario (in our experiment, it takes 160 requests to achieve 95% accuracy). Third, the human browsing pattern may change with the introduction of a new browser with novel features. Finally, attribute selection must be done carefully. In theory, the learning algorithm can automatically determine the most effective attributes, but in practice, bad choices can decrease the effectiveness of the classifier. 」
(当審訳:「4.2機械学習による検出
上記の議論から,次の質問が自然に続く;“機械学習ベースの技術はどれくらい効果的で,トレードオフは何か?”機械学習の主な特長は,人間の典型的な特徴ロボットによる不要なトラフィックを簡単に検出できることである。おそらく,人間と全く同じように動作するボットを作ることは非常に難しいだろう。
機械学習による検出アルゴリズムの有効性を検証するために,我々はCoDeeNで2週間のCAPDCHAテストを実行してデータを収集し,表2に示す12の属性を使用して42,975人のセッションと124,271のロボットセッションを分類した。ランダムに描画された同数のセッションを使用してテストセットを作成する。トレーニングセットを使用して,20件のリクエストの倍数で8つの分類器を構築した。例えば,要求番号20の分類器は,分類器が最初の20個の要求の属性を計算するように構築され,40個の要求分類器が最初の40個の要求などを使用することを意味する。我々は200ラウンドのAdaBoost [5]を使用した。
図4は,要求数に対する分類の精度を示している。結果は,テストセットで91%?95%の分類精度の範囲を示し,分類器がより多くの要求を見るにつれて改善することを示す。我々の実験から,RESPCODE 3XX%,REFERRER%およびUNSEEN REFERRER%が最も貢献している属性であることが判明した。基本的に,ロボットは頻繁にリダイレクトする要求を出すことはない。多くのボットリクエストには有効なリファラーヘッダーフィールドがない。最後に,参照元のスパムボットは,目に見えない参照元のトリガーを頻繁にトリップする。
このアプローチは有望であるが,それにはいくつかの欠点がある。第一に,大量の計算とメモリが必要となり,サーバがDoS攻撃を受けやすくなる。第二に,正確な意思決定を行うためには,比較的多くのリクエストが必要であり,リアルタイムシナリオでは適用が困難である(実験では,95%の精度を達成するために160回のリクエストが必要である)。第三に,人間のブラウジングパターンは,新しい機能を備えた新しいブラウザの導入によって変化する可能性がある。最後に,属性の選択は慎重に行う必要がある。理論的には,学習アルゴリズムは自動的に最も効果的な属性を決定することができるが,実際には,悪い選択は分類器の有効性を低下させる可能性がある。」)


第4 対比・判断

1.本願発明1について
(1)対比
本願発明1と引用発明とを対比する。

ア.引用発明は,「ネットワークコミニュケーションにおけるインターネットボットの探索に向けられている方法」であり,「当該エージェントは,その相互作用イベントがクライアントシステムに付加された入力デバイスを用いた人間による相互作用の結果であることを検証するよう,記録された相互作用イベントをサーバに送信する」ことから,「クライアントシステム」において行われた「相互作用イベント」が,エージェントによって「サーバ」に送信され,「人間による相互作用の結果である」か否かの「検証」が行われることから,「サーバ」において「検証」を実行する方法,が示されているといえる。
そして,引用発明における「サーバ」は「ハードウェアシステム」として実装され,「プロセッサ」や「1つまたは複数のソフトウェアアプリケーションやドライバー」を含むのであるから,引用発明である方法を,「コンピュータ実行可能命令」を用いて「プロセッサ」によって実行しているものであるといえる。
そうすると,引用発明は,本願発明1であるところの,「コンピュータ実行可能命令を用いて1つ以上のプロセッサによって実行される方法」であるといえる。

イ.引用発明において「初期化」される「ホスト上の上記エージェント」は,「クライアントシステムに付加された1つまたは複数の入力デバイスにおける相互作用イベントを監視するユーザイベントのコンテキストの範囲内で実行可能なJavaスクリプトのコードを含む」ものであり,それによって,「1つまたは複数の広告を含み,例えば,ハイパーテキストリンクやバナーアドが提供されて」いる「ウェブページ」を「ユーザはクリックしたとき,ブラウザーはサーバに広告のリクエストを転送する」ものであり,上記「クリック」は「ウェブページ」中の「広告」へ移動するためのリクエストの転送を当然に含み,また,「ウェブページ」中の「広告」への上記リクエストにはそのためのウェブアドレスを当然に含むといえ,その際に,転送されたリクエストは,「サーバ」に受信されることになる。
そうすると,引用発明の,「初期化」される「上記エージェント」について,「ウェブページは,さらに1つまたは複数の広告を含み,例えば,ハイパーテキストリンクやバナーアドが提供されており,それらをユーザはクリックしたとき,ブラウザーはサーバに広告のリクエストを転送するものであり」,「エージェントは,ウェブページに埋め込まれ,クライアントシステムに付加された1つまたは複数の入力デバイスにおける相互作用イベントを監視するユーザイベントのコンテキストの範囲内で実行可能なJavaスクリプトのコードを含む」とともに,上記「リクエスト」が「サーバ」に受信されることは,本願発明1の「ユーザがウェブブラウザを介してウェブページを訪問することをリクエストするとき,前記ウェブページのウェブアドレス情報を含む,前記ウェブページを訪問するリクエストを前記ウェブブラウザから受信すること」に相当するといえる。

ウ.引用発明において,「エージェント」が記録する「相互作用イベントの1つまたは複数のパラメータ」とは,「ディスプレイスクリーン上のマウスポインタの座標」や,「キーボード,タッチスクリーン,ペン入力デバイス,会話認識デバイスから入力される文字やシンボル」,「スワイプやシェイク動作,動作方向,動作の長さや大きさのような動作のタイプ」であって,いずれもユーザの挙動を示すものであるから,本願発明1の「ユーザの操作挙動の情報」に相当し,また,引用発明における上記「相互作用イベントの1つまたは複数のパラメータ」も,当然に「サーバ」に転送されることになる。
そうすると,後記する点で相違するものの,本願発明1の「前記ウェブページ上でのユーザの操作挙動の情報を受信することであって,前記ユーザの操作挙動の情報は,機械挙動識別および分析モデルの確立のために学習され,かつ訓練される,こと」と,引用発明の「上記エージェントが相互作用イベントを探索すると,上記エージェントが,相互作用イベントの1つまたは複数のパラメータを記録することであって,ディスプレイスクリーン上のマウスポインタの座標を記録すること,または,キーボード,タッチスクリーン,ペン入力デバイス,会話認識デバイスから入力される文字やシンボルを記録すること,または,スワイプやシェイク動作,動作方向,動作の長さや大きさのような動作のタイプを記録することである,記録する」ことであり,記録された上記「相互作用イベントの1つまたは複数のパラメータ」が,「サーバ」に転送されることは,“前記ウェブページ上でのユーザの操作挙動の情報を受信すること”である点で共通している。

エ.引用発明の「相互作用イベントに関連するセッション,例えば,ウェブページのリンクをクリックすることなどが,人間によるクライアントシステムに付加された入力デバイスを用いた相互作用であるのか否かを検証するために用いられるプロセス」における,「計算された統計値λ(X)が閾値θを超えているか否かをチェックすることであって,λ(X)がθより大きい場合は,その相互作用イベントが人間によって生成されたものであると判断し,そうでない場合には,その相互作用イベントがボットによって生成されたものであると判断する,チェックすること」は,「相互作用イベントの探索及び記録」が行われた後の処理であるから,この場合の「人間によるクライアントシステムに付加された入力デバイスを用いた相互作用」は,本願発明1の「後続のユーザの操作挙動」に相当するといえ,また,引用発明でも,上記「人間によるクライアントシステムに付加された入力デバイスを用いた相互作用」が,「ボットによって生成されたものである」か否かの「判断」を,「統計値λ(X)が閾値θを超えているか否かをチェックすること」で行っており,この場合の引用発明の「統計値λ(X)」は,本願発明1の「計算」される「加重値」と,“計算値”である点で共通するといえる。
そうすると,後記する点で相違するものの,本願発明1の「前記後続のユーザの操作挙動の前記情報の分析結果に基づいて,前記後続のユーザの操作挙動に対する加重値を計算すること」と,引用発明の「計算された統計値λ(X)が閾値θを超えているか否かをチェックする」ことは,“後続のユーザの操作挙動に対する計算値を計算すること”である点で共通している。

オ.上記エ.のとおり,引用発明でも,上記「人間によるクライアントシステムに付加された入力デバイスを用いた相互作用」が,「ボットによって生成されたものである」か否かの「判断」を,「統計値λ(X)が閾値θを超えているか否かをチェックすること」で行っており,この場合の引用発明の「閾値θ」,「ボットによって生成され」た「相互作用イベント」が,本願発明1の「規定の閾値」,「機械挙動」にそれぞれ相当する。
そうすると,後記する点で相違するものの,本願発明1の「計算された前記加重値が規定の閾値以上である場合,前記後続のユーザの操作挙動が機械挙動であると決定すること」と,引用発明の「計算された統計値λ(X)が閾値θを超えているか否かをチェックすることであって,λ(X)がθより大きい場合は,その相互作用イベントが人間によって生成されたものであると判断し,そうでない場合には,その相互作用イベントがボットによって生成されたものであると判断する,チェックする」ことは,“前記計算値が規定の閾値以上である場合,前記後続のユーザの操作挙動が機械挙動であると決定すること”である点で共通している。

カ.上記ア.ないしオ.の対比によれば,本願発明1と引用発明とは次の点で一致し,そして相違する。

[一致点]
コンピュータ実行可能命令を用いて1つ以上のプロセッサによって実行される方法であって,
ユーザがウェブブラウザを介してウェブページを訪問することをリクエストするとき,前記ウェブページのウェブアドレス情報を含む,前記ウェブページを訪問するリクエストを前記ウェブブラウザから受信することと,
前記ウェブページ上でのユーザの操作挙動の情報を受信することと,
後続のユーザの操作挙動に対する計算値を計算することと,
前記計算値が規定の閾値以上である場合,前記後続のユーザの操作挙動が機械挙動であると決定することと,
を含む,方法。

〈相違点1〉
ウェブページ上でのユーザの操作挙動の情報を受信することに関し,
本願発明1は,「前記ユーザの操作挙動の情報は,機械挙動識別および分析モデルの確立のために学習され,かつ訓練される」ものであるに対し,
引用発明では,そのような特定はされていない点。

〈相違点2〉
本願発明1は,「前記確立された機械挙動識別および分析モデルを使用することによって後続のユーザの操作挙動の情報を分析すること」を含むのに対して,
引用発明では,そのようなステップについて特定されていない点。

〈相違点3〉
後続のユーザの操作挙動に対する計算値を計算することに関し,
本願発明1では,「前記後続のユーザの操作挙動の前記情報の分析結果に基づいて」,前記後続のユーザの操作挙動に対する「加重値」を計算しているのに対して,
引用発明では,そのような特定は行われていない点。

〈相違点4〉
計算値が規定の閾値以上である場合,前記後続のユーザの操作挙動が機械挙動であると決定することに関し,
本願発明1では,「加重値」を規定の閾値との比較対象としているのに対して,
引用発明では,そのような特定は行われていない点。

(2)相違点についての判断
事案に鑑みて,上記相違点1ないし3について先に検討する。

相違点1ないし3に係る構成によれば,本願発明1は,受信した「ユーザの操作挙動の情報」が,「機械挙動識別および分析モデルの確立のために学習され,かつ訓練され」て,「前記確立された機械挙動識別および分析モデル」を使用して「後続のユーザの操作挙動の情報を分析」し,「前記後続のユーザの操作挙動の前記情報の分析結果」に基づいて,前記後続のユーザの操作挙動に対する「加重値」を計算するものであることから,最初に受信した「ユーザの操作挙動の情報」が「学習」及び「訓練」されることで「確立」された「機械挙動識別および分析モデル」が,「後続のユーザの操作挙動」のための「加重値」の「計算」,すなわち,加算の際に「ユーザの操作挙動」に対応する値を重み付ける各加重計数を決定し「計算」するための,「後続のユーザの操作挙動の情報」の分析に用いられる構成となっている。
この点に関し,引用発明は,上記第3の1.のとおりであって,後続のユーザのための「複数の相互作用イベント」を受信すると,それにより「特徴値」を計算し,それに基づく「統計値λ(X)」と「閾値θ」との比較判断を行うにとどまり,上記後続のユーザのための「複数の相互作用イベント」に係る計算のために,「機械挙動識別および分析モデル」を「学習」及び「訓練」によって「確立」したり,「加重値」の「計算」のための「分析」に用いることは,開示も示唆もされていない。
そして,上記相違点1ないし3に係る本願発明1の構成は,上記引用文献2ないし8にも記載されておらず,また,本願優先日前において周知技術であるともいえない。
そうすると,引用発明に基づいて,相違点1ないし3に係る本願発明1の構成とすることは,当業者が容易になし得ることであるとはいえない。

したがって,本願発明1は,相違点4を検討するまでもなく,当業者であっても引用発明,引用文献2ないし8に記載された技術的事項,及び,周知技術に基づいて容易に発明できたものであるとはいえない。

2.本願発明2-20について
本願発明2-11は,本願発明1を更に限定したものであるので,同様に,当業者であっても引用発明,引用文献2ないし8に記載された技術的事項,及び,周知技術に基づいて容易に発明できたものであるとはいえない。
また,本願発明12は,上記相違点1ないし3に係る本願発明1の構成と同様の構成を有するものであり,同様に,当業者であっても引用発明,引用文献2ないし8に記載された技術的事項,及び,周知技術に基づいて容易に発明できたものであるとはいえない。
また,本願発明13-19は,本願発明12を更に限定したものであるので,同様に,当業者であっても引用発明,引用文献2ないし8に記載された技術的事項,及び,周知技術に基づいて容易に発明できたものであるとはいえない。
また,本願発明20は,本願発明1を別のカテゴリーで表現するものであり,同様に,当業者であっても引用発明,引用文献2ないし8に記載された技術的事項,及び,周知技術に基づいて容易に発明できたものであるとはいえない。


第5 原査定の概要及び原査定についての判断

原査定は,請求項1-20について上記引用文献1に記載された発明並びに引用文献2ないし5に記載の技術及び引用文献6ないし8に記載の周知技術に基づいて,当業者が容易に発明できたものであるから,特許法第29条第2項の規定により特許を受けることができないというものである。しかしながら,平成30年2月6日付け手続補正により補正された請求項1,12,20は,それぞれ「前記ウェブページ上でのユーザの操作挙動の情報を受信することであって,前記ユーザの操作挙動の情報は,機械挙動識別および分析モデルの確立のために学習され,かつ訓練される,ことと,前記確立された機械挙動識別および分析モデルを使用することによって後続のユーザの操作挙動の情報を分析することと,前記後続のユーザの操作挙動の前記情報の分析結果に基づいて,前記後続のユーザの操作挙動に対する加重値を計算すること」という事項,又は,「前記ウェブページ上でのユーザの操作挙動の情報を受信することであって,前記ユーザの操作挙動の情報は,機械挙動識別および分析モデルの確立のために学習され,かつ訓練される,ことと,前記確立された機械挙動識別および分析モデルを使用することによって後続のユーザの操作挙動の情報を分析することと,前記後続のユーザの操作挙動の前記情報の分析結果に基づいて,前記後続のユーザの操作挙動に対する加重値を計算すること」に対応する構成を有するものとなっており,上記のとおり,本願発明1-20は,上記引用発明,引用文献2ないし8に記載された技術的事項,及び,周知技術に基づいて,当業者が容易に発明できたものではない。したがって,原査定を維持することはできない。


第6 当審拒絶理由について

1.特許法第36条第6項第2号について

(1)当審では,請求項1,12の「コンピュータ実行可能命令を用いて構成される1つ以上のプロセッサによって実行される方法」との記載は,日本語として不明確である,との拒絶の理由を通知しているが,平成30年2月6日付けの補正において,「コンピュータ実行可能命令を用いて1つ以上のプロセッサによって実行される方法」と補正された結果,この拒絶の理由は解消した。

(2)当審では,請求項1の「前記後続のユーザの操作挙動の前記情報の分析結果に基づいて,機械挙動の加重値を計算することと,機械挙動の前記加重値に基づいて,前記後続のユーザの操作挙動が機械挙動であるかを決定することと,機械挙動の前記加重値が規定の閾値以上である場合,前記後続のユーザの操作挙動が機械挙動であると決定すること」との記載は,どのような「加重値」によりどのようにして「後続のユーザの操作挙動が機械挙動であるかを決定する」のか不明確である,との拒絶の理由を通知しているが,上記補正において,「前記後続のユーザの操作挙動の前記情報の分析結果に基づいて,前記後続のユーザの操作挙動に対する加重値を計算することと,計算された前記加重値が規定の閾値以上である場合,前記後続のユーザの操作挙動が機械挙動であると決定すること」と補正された結果,この拒絶の理由は解消した。同様の趣旨の拒絶理由を通知した,請求項7の「前記機械挙動の前記加重値」,請求項8の「前記機械挙動の前記加重値」,請求項12の「機械挙動の加重値」,及び,請求項20の「機械挙動の加重値」及び「機械挙動の前記加重値」についても,上記補正において,いずれも,「後続のユーザの操作挙動に対する加重値」,「後続のユーザの操作挙動に対する前記加重値」などと補正された結果,拒絶の理由は解消した。

(3)当審では,請求項12の「前記ユーザの操作挙動の情報は,機械挙動識別および分析モデルの確立のために学習され,かつ訓練され,後続のユーザの操作挙動の情報は,前記確立された機械挙動識別および分析モデルを使用して分析され,前記後続のユーザの操作挙動の情報の分析結果に基づいて,ウェブページ上での前記後続のユーザの操作挙動に対する機械挙動の加重値が決定され,前記機械挙動の加重値が規定の閾値以上である場合,前記後続のユーザの操作挙動が機械挙動であると決定される,こと」が,「ウェブブラウザ」と「ウェブサーバ」のいずれによって実行されるのか規定されておらず,不明確である,との拒絶の理由を通知しているが,上記補正において,「前記ユーザの操作挙動の情報は,前記ウェブサーバによって機械挙動識別および分析モデルの確立のために学習され,かつ訓練され,後続のユーザの操作挙動の情報は,前記ウェブサーバによって前記確立された機械挙動識別および分析モデルを使用して分析され,前記後続のユーザの操作挙動の情報の分析結果に基づいて,ウェブページ上での前記後続のユーザの操作挙動に対する加重値が前記ウェブサーバによって決定され,決定された加重値が規定の閾値以上である場合,前記後続のユーザの操作挙動が機械挙動であると前記ウェブサーバによって決定される,ことと」と補正された結果,この拒絶の理由は解消した。

(4)当審では,請求項20の「1つ以上のプロセッサと,前記1つ以上のプロセッサによって実行されると,前記1つ以上のプロセッサに,・・・を含むアクションを実行させる,その上に記憶された複数のコンピュータ実行可能命令を有する1つ以上のコンピュータ記憶媒体と,を備える,システム。」との記載は,「システム」としての発明の構成が日本語として不明確である,との拒絶の理由を通知しているが,上記補正において,「1つ以上のプロセッサと,前記1つ以上のプロセッサによって実行されると,前記1つ以上のプロセッサに,・・・を含むアクションを実行させる複数のコンピュータ実行可能命令が記憶された1つ以上のコンピュータ記憶媒体と,を備える,システム。」と補正された結果,この拒絶の理由は解消した。

2.特許法第36条第6項第1号について

(1)当審では,請求項1における「前記後続のユーザの操作挙動の前記情報の分析結果に基づいて,機械挙動の加重値を計算することと,機械挙動の前記加重値に基づいて,前記後続のユーザの操作挙動が機械挙動であるかを決定することと,機械挙動の前記加重値が規定の閾値以上である場合,前記後続のユーザの操作挙動が機械挙動であると決定することと」との記載が,仮に,「機械挙動の前記加重値に基づいて,前記後続のユーザの操作挙動が機械挙動であるかを決定すること」と,「機械挙動の前記加重値が規定の閾値以上である場合,前記後続のユーザの操作挙動が機械挙動であると決定すること」とが,異なる「決定する」処理を意味する場合,そのような点は,発明の詳細な説明に記載されたものとはいえない,との拒絶の理由を通知しているが,上記1.の(2)における補正により,上記の意味とはならないことが明確となったことから,この拒絶の理由は解消した。

(2)当審では,仮に,請求項12における「前記ユーザの操作挙動の情報は,機械挙動識別および分析モデルの確立のために学習され,かつ訓練され,後続のユーザの操作挙動の情報は,前記確立された機械挙動識別および分析モデルを使用して分析され,前記後続のユーザの操作挙動の情報の分析結果に基づいて,ウェブページ上での前記後続のユーザの操作挙動に対する機械挙動の加重値が決定され,前記機械挙動の加重値が規定の閾値以上である場合,前記後続のユーザの操作挙動が機械挙動であると決定される,こと」が,「ウェブブラウザ」によって実行されるものと解する場合には,そのような点は,発明の詳細な説明に記載されたものとはいえない,との拒絶の理由を通知しているが,上記1.の(3)における補正により,上記の理解とはならないことが明確となったことから,この拒絶の理由は解消した。


第7 むすび

以上のとおり,本願発明1-20は,当業者が引用発明,引用文献2ないし8に記載された技術的事項,及び,周知技術に基づいて容易に発明をすることができたものではない。
したがって,原査定の理由によっては,本願を拒絶することはできない。
また,他に本願を拒絶すべき理由を発見しない。
よって,結論のとおり審決する。
 
審決日 2018-04-09 
出願番号 特願2014-502804(P2014-502804)
審決分類 P 1 8・ 121- WY (G06F)
P 1 8・ 537- WY (G06F)
最終処分 成立  
前審関与審査官 中里 裕正  
特許庁審判長 辻本 泰隆
特許庁審判官 仲間 晃
山崎 慎一
発明の名称 機械挙動の決定  
代理人 特許業務法人 谷・阿部特許事務所  
  • この表をプリントする

プライバシーポリシー   セキュリティーポリシー   運営会社概要   サービスに関しての問い合わせ