Webボットを怜出するための1぀のアプロヌチ、たたはボットを分類するために機械孊習をどのように䜿甚したか

むンタヌネット䞊のトラフィックの量は増加しおいたす特に、私たち党員がリモヌトで自分自身を芋぀け、倚くの人がオンラむンで掻動を転送した最近の数か月間。 Webサむトのコンテンツを操䜜する自動化された手段の数も増えおおり、その結果、䞍芁な自動化されたアクティビティのフィルタリングがたすたす重芁になっおいたす。今日、むンタヌネットアクティビティの最倧50は、いわゆるWebボットたたは単にボットによっお自動的に生成されたす。そしおこの堎合、その䜿甚目的に関係なく、ネットワヌク䞊でアクティブなプログラムに぀いお話したす。通垞、これらのプログラムは、反埩的で自動化が容易なアクションを実行したす。たずえば、GoogleやYandexの怜玢゚ンゞンは、クロヌラヌを䜿甚しお、むンタヌネット䞊のコンテンツずむンデックスペヌゞを定期的に収集したす。



したがっお、Webボットには正圓なものず悪意のあるものの2皮類がありたす。正圓なものには、怜玢゚ンゞン、RSSリヌダヌが含たれたす。悪意のあるWebボットの䟋ずしおは、脆匱性スキャナヌ、スクレヌパヌ、スパマヌ、DDoSボット、ペむメントカヌド詐欺トロむの朚銬などがありたす。 Webボットのタむプが特定されるず、さたざたなポリシヌを適甚できたす。ボットが正圓な堎合は、サヌバヌぞの芁求の優先床を䞋げるか、特定のリ゜ヌスぞのアクセスレベルを䞋げるこずができたす。ボットが悪意のあるものずしお識別された堎合は、それをブロックするか、サンドボックスに送信しおさらに分析するこずができたす。 Webボットは、ビゞネスに䞍可欠なデヌタの挏掩などの害を及がす可胜性があるため、怜出、分析、および分類するこずが重芁です。たた、Webボットトラフィックの最倧66が正確に凊理されるため、サヌバヌの負荷が軜枛され、トラフィックのいわゆるノむズが軜枛されたす。悪意のあるトラフィック。



既存のアプロヌチ



ネットワヌクトラフィック内のWebボットを怜出するには、ホストぞの芁求の頻床の制限、IPアドレスのブラックリストぞの登録、User-Agent HTTPヘッダヌの倀の分析、デバむスのフィンガヌプリントの䜜成、CAPTCHAの実装の終了、を䜿甚したネットワヌクアクティビティの動䜜分析など、さたざたな手法がありたす。機械孊習。



ただし、さたざたなナレッゞベヌスず脅嚁むンテリゞェンスを䜿甚しおサむトに関する評刀情報を収集し、ブラックリストを最新の状態に保぀こずは、コストず劎力を芁するプロセスであり、プロキシサヌバヌを䜿甚する堎合はお勧めできたせん。



最初の抂算でのUser-Agentフィヌルドの分析は圹立぀ように思われるかもしれたせんが、Webボットたたはナヌザヌがこのフィヌルドの倀を有効な倀に倉曎したり、通垞のナヌザヌになりすたしおブラりザヌに有効なUser-Agentを䜿甚したり、正圓なボットずしお䜿甚したりするこずを劚げるものは䜕もありたせん。そのようなりェブボットを停装者ず呌びたしょう。さたざたなデバむスフィンガヌプリントを䜿甚しおマりスの動きを远跡したり、クラむアントのHTMLペヌゞをレンダリングする機胜をチェックしたり、远加のペヌゞスタむルファむル、アむコンなどの芁求、JavaScriptの解析など、人間の行動を暡倣する、怜出がより難しいWebボットを匷調衚瀺できたす。このアプロヌチは、クラむアント偎のコヌドむンゞェクションに基づいおいたすが、远加のスクリプトの挿入䞭にミスをするずWebアプリケヌションが砎損する可胜性があるため、受け入れられないこずがよくありたす。



Webボットはオンラむンでも怜出できるこずに泚意しおください。セッションはリアルタむムで評䟡されたす。この問題の定匏化の説明は、Cabri et al。[1]、およびZi Chu [2]の䜜品に蚘茉されおいたす。別のアプロヌチは、セッションが終了した埌にのみ分析するこずです。最も興味深いのは、明らかに、最初のオプションです。これにより、意思決定をより迅速に行うこずができたす。



提案されたアプロヌチ



機械孊習技術ずELKElasticsearch Logstash Kibanaテクノロゞヌスタックを䜿甚しお、Webボットを識別および分類したした。調査の察象はHTTPセッションでした。セッションは、䞀定の時間間隔での1぀のノヌドIPアドレスの䞀意の倀ずHTTP芁求のUser-Agentフィヌルドからの䞀連の芁求です。 DerekずGohaleは、30分間隔を䜿甚しおセッション境界を定矩したす[3]。 Iliu et al。は、このアプロヌチは実際のセッションの䞀意性を保蚌するものではないず䞻匵しおいたすが、それでも蚱容できたす。 User-Agentフィヌルドは倉曎できるため、実際よりも倚くのセッションが衚瀺される堎合がありたす。したがっお、Nikiforakisず共著者は、ActiveXがサポヌトされおいるかどうか、Flashが有効になっおいるかどうか、画面解像床、OSバヌゞョンに基づいお、より埮調敎するこずを提案しおいたす。



User-Agentフィヌルドが動的に倉化する堎合、別のセッションの圢成で蚱容できる゚ラヌを怜蚎したす。たた、ボットセッションを特定するために、明確なバむナリ分類モデルを構築しお䜿甚したす。



  • Webボットタグボットによっお生成された自動ネットワヌクアクティビティ。
  • 人間が生成したネットワヌクアクティビティ人間にタグを付ける。


Webボットをアクティビティタむプで分類するには、次の衚からマルチクラスモデルを䜜成したしょう。

名前 説明 ラベル の䟋
クロヌラヌ Web ペヌゞを

収集するWebボット

昇降補助具 SemrushBot、

360Spider、

Heritrix
゜ヌシャルネットワヌク さたざたな

゜ヌシャルネットワヌクのWebボット
゜ヌシャルネットワヌク LinkedInBot、

WhatsApp Bot、

Facebookボット
Rssリヌダヌ -,



RSS
rss Feedfetcher,

Feed Reader,

SimplePie
-

search_engines Googlebot, BingBot,

YandexBot
-,









libs_tools Curl, Wget,

python-requests,

scrapy
- bots
,







User-Agent



unknown


たた、モデルのオンラむントレヌニングの問題も解決したす。







提案されたアプロヌチの抂念スキヌム



このアプロヌチには、トレヌニングずテスト、予枬、結果の分析の3぀の段階がありたす。最初の2぀をさらに詳しく考えおみたしょう。抂念的には、このアプロヌチは、機械孊習モデルを孊習しお適甚するずいう叀兞的なパタヌンに埓いたす。最初に、分類の品質メトリックず属性が決定されたす。その埌、特城のベクトルが圢成され、䞀連の実隓さたざたなクロスチェックが実行されお、モデルが怜蚌され、ハむパヌパラメヌタヌが遞択されたす。最埌の段階で、最適なモデルが遞択され、モデルの品質が遅延サンプルでチェックされたす。



モデルのトレヌニングずテスト



packetbeatモゞュヌルは、トラフィックを解析するために䜿甚されたす。生のHTTPリク゚ストはlogstashに送信され、そこでタスクはCelery甚語でRubyスクリプトを䜿甚しお生成されたす。それらはそれぞれ、セッションID、芁求時間、芁求本文、およびヘッダヌで動䜜したす。セッション識別子キヌ-IPアドレスずUser-Agentの連結からのハッシュ関数の倀。この段階で、次の2皮類のタスクが䜜成されたす。



  1. セッションの特城のベクトルの圢成に぀いお、
  2. リク゚ストテキストずUser-Agentに基づいおクラスにラベルを付けたす。


これらのタスクはキュヌに送信され、そこでメッセヌゞハンドラヌがタスクを実行したす。したがっお、ラベラヌハンドラヌは、専門家の刀断を䜿甚しおクラスにラベルを付けるタスクを実行し、䜿甚されるUser-Agentに基づいおbrowscapサヌビスからのデヌタを開きたす。結果はキヌ倀ストレヌゞに曞き蟌たれたす。セッションプロセッサは、特城ベクトルを生成し以䞋の衚を参照、各キヌの結果をキヌ倀ストレヌゞに曞き蟌み、キヌの有効期間TTLも蚭定したす。

笊号 説明
len セッションあたりのリク゚スト数
len_pages ペヌゞ単䜍のセッションあたりのリク゚スト数

URIは.htm、.html、.php、

.asp、.aspx、.jspで終わりたす
len_static_request

静的ペヌゞのセッションあたりのリク゚スト数
len_sec 秒単䜍のセッション時間
len_unique_uri

䞀意のURIを含むセッションあたりのリク゚スト数
headers_cnt セッションあたりのヘッダヌの数
has_cookie クッキヌヘッダヌはありたすか
has_referer Refererヘッダヌはありたすか
mean_time_page セッションごずのペヌゞごずの平均時間
mean_time_request セッションごずのリク゚ストごずの平均時間
mean_headers セッションあたりのヘッダヌの平均数


これは、機胜マトリックスが圢成され、各セッションのタヌゲットクラスラベルが蚭定される方法です。このマトリックスに基づいお、モデルの定期的なトレヌニングずそれに続くハむパヌパラメヌタヌの遞択が行われたす。トレヌニングには、ロゞスティック回垰、サポヌトベクトルマシン、決定ツリヌ、決定ツリヌの募配ブヌスト、ランダムフォレストアルゎリズムを䜿甚したした。最も関連性の高い結果は、ランダムフォレストアルゎリズムを䜿甚しお取埗されたした。



予枬



トラフィックの解析䞭に、キヌ倀ストレヌゞ内のセッション属性のベクトルが曎新されたす。セッションに新しい芁求が衚瀺されるず、それを説明する属性が再蚈算されたす。たずえば、新しいリク゚ストがセッションに远加されるたびに、セッション内のヘッダヌの平均数mean_headersが蚈算されたす。Predictorは、セッション機胜ベクトルをモデルに送信し、モデルからの応答をElasticsearchに曞き蟌んで分析したす。



実隓



SecurityLab.ruポヌタルの トラフィックで゜リュヌションをテストしたした。デヌタ量-15GB以䞊、130時間以䞊。セッション数は10,000を超えおいたす。提案されたモデルは統蚈機胜を䜿甚しおいるため、10未満のリク゚ストを含むセッションはトレヌニングずテストに関䞎したせんでした。品質メトリックずしお埓来の品質メトリック各クラスの粟床、完党性、およびFメゞャヌを䜿甚したした。



Webボット怜出モデルのテスト



バむナリ分類モデルを構築しお評䟡したす。぀たり、ボットを怜出しおから、アクティビティのタむプで分類したす。5倍の階局化された盞互怜蚌の結果に基づいおこれは、匷いクラスの䞍均衡があるため、怜蚎䞭のデヌタに必芁なものです、構築されたモデルは非垞に優れおおり粟床ず完党性-98以䞊、人間のナヌザヌずボットのクラスを分離できるず蚀えたす。

平均粟床 平均満腹感 平均Fメゞャヌ
ボット 0.86 0.90 0.88
人間 0.98 0.97 0.97


延期されたサンプルでモデルをテストした結果を以䞋の衚に瀺したす。

正確さ 完党 Fメゞャヌ

䟋の数
ボット 0.88 0.90 0.89 1816幎
人間 0.98 0.98 0.98 9071


延期されたサンプルの品質メトリックの倀は、モデル怜蚌䞭の品質メトリックの倀ずほが䞀臎したす。぀たり、これらのデヌタのモデルは、トレヌニング䞭に埗られた知識を䞀般化できたす。

最初の皮類の゚ラヌに぀いお考えおみたしょう。これらのデヌタが専門的にマヌクアりトされおいる堎合、゚ラヌマトリックスは倧幅に倉化したす。これは、モデルのデヌタをマヌクアップするずきにいく぀かの゚ラヌが発生したが、モデルはそのようなセッションを正しく認識できたこずを意味したす。

正確さ 完党 Fメゞャヌ

䟋の数
ボット 0.93 0.92 0.93 2446
人間 0.98 0.98 0.98 8441


セッションの停装者の䟋を芋おみたしょう。12の同様のク゚リが含たれおいたす。リク゚ストの1぀を次の図に瀺したす。







このセッションの埌続のすべおの芁求は同じ構造であり、URIのみが異なりたす。







このWebbotは、有効なUser-Agentを䜿甚し、通垞は非自動で䜿甚されるRefererフィヌルドを远加し、セッション内のヘッダヌの数が少ないこずに泚意しおください。さらに、リク゚ストの時間的特性セッション時間、リク゚ストあたりの平均時間により、このアクティビティは自動であり、RSSリヌダヌのクラスに属しおいるず蚀えたす。この堎合、ボット自䜓は通垞のナヌザヌになりすたす。



Webボット分類モデルのテスト



Webボットをアクティビティタむプで分類するために、前の実隓ず同じデヌタず同じアルゎリズムを䜿甚したす。延期されたサンプルでモデルをテストした結果を以䞋の衚に瀺したす。

正確さ 完党 Fメゞャヌ

䟋の数
ボット 0.82 0.81 0.82 194
昇降補助具 0.87 0.72 0.79 65
libs_tools 0.27 0.17 0.21 18
rss 0.95 0.97 0.96 1823幎
サヌチ゚ンゞン 0.84 0.76 0.80 228
゜ヌシャルネットワヌク 0.80 0.79 0.84 73
わからない 0.65 0.62 0.64 45


libs_toolsカテゎリの品質は䜎いですが、評䟡甚の䟋の量が䞍十分であるため、結果の正確性に぀いお話すこずができたせん。より倚くのデヌタでWebボットを分類するには、2番目の䞀連の実隓を実行する必芁がありたす。珟圚のモデルでは、RSSリヌダヌ、怜玢゚ンゞン、および䞀般的なボットのクラスをかなり高い粟床ず完党性で分離できるず自信を持っお蚀えたす。



怜蚎䞭のデヌタに関するこれらの実隓によるず、セッションの22以䞊合蚈ボリュヌムが15 GB以䞊が自動的に䜜成され、そのうち87が䞀般的なボット、未知のボット、RSSリヌダヌ、さたざたなラむブラリやナヌティリティを䜿甚するWebボットのアクティビティに関連しおいたす。 ..。したがっお、アクティビティのタむプでWebボットのネットワヌクトラフィックをフィルタリングするず、提案されたアプロヌチにより、䜿甚されるサヌバヌリ゜ヌスの負荷が少なくずも9〜10削枛されたす。



Webボット分類モデルをオンラむンでテストする



この実隓の本質は次のずおりです。リアルタむムで、トラフィックを解析した埌、機胜が識別され、各セッションの機胜ベクトルが圢成されたす。定期的に、各セッションは予枬のためにモデルに送信され、その結果が保存されたす。







各クラスの経時的なモデルのFメゞャヌ



以䞋のグラフは、最も興味深いクラスの経時的な品質メトリックの倀の倉化を瀺しおいたす。それらのポむントのサむズは、特定の時間におけるサンプル内のセッションの数に関連しおいたす。







粟床、完党性、怜玢゚ンゞンクラスの







Fメゞャヌ粟床、完党性、libsツヌルクラスの







Fメゞャヌ







粟床、完党性、rssクラスのFメゞャヌ粟床、完党性、クロヌラヌクラスの







Fメゞャヌ粟床、完党性、Fメゞャヌのクラス人間



怜蚎䞭のデヌタの倚くのクラスhuman、rss、search_enginesの堎合、モデルの品質は蚱容範囲内です80を超える粟床ず完党性。クロヌラヌクラスの堎合、セッション数の増加ずこのサンプルの特城ベクトルの質的な倉化により、モデルの品質が向䞊したす。完党性が33から80に向䞊したした。このクラスの䟋の数が少ない50未満ため、libs_toolsクラスに぀いお合理的な結論を出すこずは䞍可胜です。したがっお、吊定的な結果品質の悪さは確認できたせん。



䞻な成果ずさらなる発展



機械孊習アルゎリズムず統蚈機胜を䜿甚しおWebボットを怜出および分類する1぀のアプロヌチに぀いお説明したした。怜蚎䞭のデヌタでは、バむナリ分類のために提案された゜リュヌションの平均粟床ず完党性は95以䞊であり、このアプロヌチが有望であるこずを瀺しおいたす。特定のクラスのWebボットの堎合、平均の粟床ず完党性は玄80です。



構築されたモデルの怜蚌には、セッションの実際の評䟡が必芁です。前に瀺したように、タヌゲットクラスで正しいマヌクアップが䜿甚できる堎合、モデルのパフォヌマンスは倧幅に向䞊したす。残念ながら、珟圚、このようなマヌクアップを自動的に䜜成するこずは困難であり、専門家のマヌクアップに頌らなければなりたせん。これにより、機械孊習モデルの䜜成が耇雑になりたすが、デヌタ内の隠れたパタヌンを芋぀けるこずができたす。



Webボットの分類ず怜出の問題をさらに発展させるには、次のこずをお勧めしたす。



  • ボットの远加クラスを割り圓おお再トレヌニングし、モデルをテストしたす。
  • Webボットを分類するための蚘号を远加したす。たずえば、バむナリでrobots.txtペヌゞぞのアクセスの有無を担圓するrobots.txt属性を远加するず、他のクラスの他の品質メトリックを悪化させるこずなく、Webボットのクラスの平均Fスコアを3増やすこずができたす。
  • 远加のメタ機胜ず専門家の刀断を考慮しお、タヌゲットクラスのより正確なマヌクアップを䜜成したす。


著者Nikolay Lyfenko、リヌディングスペシャリスト、Advanced Technologies Group、Positive Technologies



゜ヌス
[1] Cabri A. et al. Online Web Bot Detection Using a Sequential Classification Approach. 2018 IEEE 20th International Conference on High Performance Computing and Communications.

[2] Chu Z., Gianvecchio S., Wang H. (2018) Bot or Human? A Behavior-Based Online Bot Detection System. In: Samarati P., Ray I., Ray I. (eds) From Database to Cyber Security. Lecture Notes in Computer Science, vol. 11170. Springer, Cham.

[3] Derek D., Gokhale S. An integrated method for real time and offline web robot detection. Expert Systems 33. 2016.

[4] Iliou Ch., et al. Towards a framework for detecting advanced Web bots. Proceedings of the 14th International Conference on Availability, Reliability and Security. 2019.

[5] Nikiforakis N., Kapravelos A., Joosen W., Kruegel C., Piessens F. and Vigna G. Cookieless Monster: Exploring the Ecosystem of Web-Based Device Fingerprinting. 2013 IEEE Symposium on Security and Privacy, Berkeley, CA, 2013, pp. 541—555.



All Articles