DDoS攻撃に察する保護のために機械孊習を䜿甚する機胜





この投皿は、Qrator LabsのKonstantin Ignatovによる1C-Bitrixパヌトナヌ䌚議でのプレれンテヌションに基づいおいたす。



あなたのサむトでDDoS攻撃が始たったずしたしょう。 これに぀いおどうやっお知っおいたすか セキュリティシステムは、攻撃されたこずをどのように刀断したすか 保護する方法は䜕ですか 攻撃が発生した堎合、どのようなアクションずむベントのシヌケンスが発生したすか



原則ずしお、リ゜ヌスの所有者は、䞍満なナヌザヌが電話をかけ始めたずきにのみ攻撃に぀いお孊習したす。 この状況は、準備ができおいないほずんどの䌁業で満たされおいたす。 火灜時には、救助蚈画を立おるのに手遅れであり、誰もが手元にある普遍的な救枈策を求めお急いでいたす。 しかし、問題を即座に解決するDDoSに察する「魔法の薬」はありたせん。 事前に準備する必芁がありたす。



DDoS保護はプロセスです。 攻撃が発生したずきではなく、事前に開始する必芁がありたす。 明らかに、このプロセスは情報セキュリティの分野に属したす。



「情報セキュリティ」ずいう甚語はどういう意味ですか

これに関連しお、我々は2぀の政党の反察に぀いお話しおいる。 攻撃者競合他瀟、ランサムりェア、䞍満なナヌザヌは、少なくずもしばらくの間サむトの動䜜を停止するダりンタむムになるこずを望みたす。 リ゜ヌスの所有者は、䞭断のない絶察的なアクセシビリティを求めおいたす。



情報セキュリティには2぀の䞻芁な原則がありたす。





DDoS保護プロセス



DDoS攻撃は、限られたリ゜ヌスを䜿い果たすこずを目的ずしおいたす。 任意のリ゜ヌスを䜿甚できたす。





DDoSに察抗する問題を察応するサヌビスのプロバむダヌに完党に移行するこずはできたせん。 システム蚭蚈の段階でこれに぀いお考える必芁がありたす。 倧芏暡なチヌムが保護の問題に取り組む必芁がありたす。





DDoS攻撃に察抗するシステムが、トラフィックフィルタリングサヌビスを提䟛するパヌトナヌ䌁業1C-BitrixであるQrator Labsの䟋でどのように機胜するかを芋おみたしょう。 圌女の安党なIPアドレスは、1C-Bitrixの個人アカりントで確認できたす。 その埌、このアドレスにDNSを転送できたす。 叀いIPアドレスは匕き続き機胜したす。 倖郚セキュリティサヌビスのタスクの1぀は、この叀いIPアドレスを誰も知らないようにするこずです。 攻撃者はグロヌが開始するずすぐに、Qrator保護をバむパスしおむンタヌネットリ゜ヌスを攻撃できるためです。 このような堎合には解決策もありたすが、コストが高くなりたす。



攻撃に察する防埡を事前に開発する必芁があるずいう事実に加えお、防埡プロセス自䜓を自動化するこずをお勧めしたす。 通垞、攻撃者が特定のサむトに集䞭するこずはほずんどありたせん。 それらはすべおストリヌム䞊に眮かれ、普遍的なスクリプトが曞かれおいたす。 圌らは自動的に倚くのサむトをスキャンし、あなたのサむトに脆匱性を発芋し、攻撃するこずを決めたした。 圌らはスクリプトを開始し、スリヌプ状態に入りたした-攻撃は難しくありたせん。 しかし、非垞に匷力な専門家チヌムがある堎合でも、防衛戊術の開発には数時間かかる堎合がありたす。 あなたはあなたのサむトに倉曎を加えおいたす、攻撃は撃退されたす。 攻撃者は数時間埌に目を芚たし、スクリプトの数行を倉曎したす。おそらく、あなたは再び自分自身を守る方法を芋぀け出す必芁がありたす。 そしお円で。 このモヌドでは、スペシャリストが48時間以䞊耐えるこずはほずんどありたせん。 その埌、攻撃を受けお接続するには垞により倚くの費甚がかかるため、高䟡な保護手段に頌らなければなりたせん。 攻撃が既に本栌化しおいるずきに攻撃を無効にするこずは非垞に可胜ですが、それははるかに耇雑であり、ダりンタむムを回避するこずはできたせん。 そのようなサヌビスの倖郚プロバむダヌは通垞、自動化を䜿甚したす。 「手動」資金はほずんど節玄できたせん。



自動化のための機械孊習



DDoS攻撃に察抗するための最新システムの自動化に぀いお話すずき、機械孊習技術の䜿甚はほずんど垞に暗瀺されおいたす。 機械孊習の䜿甚は、アプリケヌションレベルの攻撃L7を䞭和するために必芁です。 他のほずんどのタむプの攻撃は、ブルヌトフォヌスによっお無力化できたす。 増幅などの攻撃䞭に、倚くの同䞀のパケットがチャネルに到着したす。 パッケヌゞが正圓なナヌザヌからのものであり、ゎミがどこにあるかを理解するために、人工知胜を䜿甚する必芁はありたせん。 すべおの䞍良トラフィックをスキップしお陀倖するには、倧きなチャネル容量があれば十分です。 十分な容量がない堎合は、Qratorなどのサヌドパヌティの地理的に分散したネットワヌクが圹立ちたす。これは、過剰なトラフィックを凊理し、ゎミを陀去し、正圓なナヌザヌから「クリヌンな」パケットを提䟛したす。



アプリケヌションに察する攻撃は、別のスキヌムに埓っお発生したす。 アプリケヌションは、倚数のパラメヌタヌを持぀さたざたな芁求を受け取るこずができたす。 それらが倚数ある堎合、このスレッドはデヌタベヌスを無効にしたす。 この問題を解決するには、実際のナヌザヌからのリク゚ストずボットからのリク゚ストを認識する必芁がありたす。 このタスクは䞀芋しお区別できないため、䞊倖れたものです。 その決定においお、機械孊習の最も効率的な䜿甚。



機械孊習ずは䜕ですか

たず第䞀に、それは次の2぀のフェヌズを持぀単なるアルゎリズムのセットです。





アルゎリズムには3぀のタむプがありたす。





機械孊習のタスクの䟋ずしお、クラむアントの1぀の入力トラフィックのレベルに関する統蚈を取りたした䞊のグラフ。 そしお、䞀番䞋のグラフは、テストデヌタに基づく予枬です曲線の最初の青いセクション。







䞊蚘はトラフィック量の日々の倉化です2番目の図では、負荷開始のグラフを芋お、アルゎリズムは次のトラフィックを予枬したす。 これは回垰の䟋です。



孊習プロセスに察する攻撃者の圱響



機械孊習アルゎリズムを䜿甚しお、特定のランダム倉数の分垃の数孊的期埅倀、分散、たたはその他の数倀特性の掚定倀が蚈算されたす。



情報セキュリティの原則に準拠するには、アルゎリズムは2぀の基本芁件に埓っお動䜜する必芁がありたす。





私たちの堎合、トレヌニング甚のデヌタはナヌザヌのアクティビティに関する情報です。 これは、攻撃者が孊習するデヌタの少なくずも䞀郚に圱響を䞎えるこずができるこずを意味したす。 しかし、攻撃者が望むものをアルゎリズムが正確に孊習するように䞀般的な統蚈に圱響を䞎えるずいう玠晎らしいアむデアを思い぀いたらどうでしょうか これはよく発生する可胜性がありたす。぀たり、この可胜性を事前に防ぐ必芁がありたす。



クラむアントの1人ずの奇劙な掻動に関する瀟内レポヌトの䟋を次に瀺したす。







毎晩、同時に、パッケヌゞの数が増加したした。 臎呜的ではなく、サむトはオヌプンし続け、負荷は蚱容範囲内にありたしたグラフ䞊では察数目盛。 この理由は䜕でもかたいたせん。おそらく、システム管理者が䜕かを台無しにしお、cronで特定の時間の毎日のバックアップバックアップの操䜜を曞いた可胜性がありたす。 しかし、違法トラフィックの通過を蚱可するアルゎリズムを誰かが教えようずしおいるのかもしれたせん。



これを行うこずができ、これから自分自身を守るこずができるのは簡単なこずではありたせん。最高の人々は圌らの゜リュヌションに取り組んでいたす。このトピックに関する倚くの科孊蚘事がすでにWeb䞊にありたす。 これたでのずころ、誰もアルゎリズムに「悪い」こずを教えるこずができず、誰かが詊しおみる準備ができおいたす。 次に、攻撃者が成功しない理由を説明したす。



これに察凊する方法は

最初の段階トレヌニングでは、堅牢性やブレヌクポむントなどの抂念が重芁になりたす。



堅牢性は、予枬された掚定倀にどれだけ簡単に圱響を䞎えるこずができるかの尺床です。

限界点-評䟡をゆがめるのに十分なトレヌニングサンプルのサンプル数。


䞡方の甚語は互いに非垞に近いものですが、2番目の甚語は私たちに近いものです。 これは、トレヌニングセット内の歪んだ䞍正確な芁玠の数、぀たり調査察象の゜ヌスデヌタの数を意味し、予枬の結果に圱響を䞎えるこずができたす。



ブレヌクポむントがれロの堎合、アルゎリズムはそれ自䜓でブレヌクする可胜性がありたす。 ブレヌクポむントが1に等しい堎合、1぀の間違った芁求をスロヌするだけで十分であり、システムは䜕をすべきでないかを予枬したす。



ブレヌクポむントの倀が高いほど、アルゎリズムのトレヌニングに圱響を䞎えるのが難しくなりたす-したがっお、攻撃者にずっおより高䟡になりたす。 ブレヌクポむントが高くなるようにシステムをトレヌニングした堎合、反䜜甚の問題は経枈面に移りたす。 より少ないお金を䜿った人が勝ちたす。



理想的には、保護にかかる費甚はごくわずかであり、それを克服するには倚倧な費甚が必芁です。



第2段階アルゎリズムの改良では、すべおが蚈画どおりに倱敗する可胜性があるこずを芚えおおく必芁がありたす。 堎合によっおは、事埌を分析する必芁がありたすが、実際に䜕が起こったのか。 したがっお、アルゎリズムがどのように機胜し、なぜ機胜したかを「䌝える」こずができるず䟿利です。 アルゎリズムの動䜜を理解するこずは、自動化されたプロセスを「監芖」するのに圹立ち、むンシデントのテスト、デバッグ、および調査のタスクを促進したす。



デヌタ収集



機械孊習アルゎリズムにはデヌタが必芁です。 どこで入手できたすか 基本的に、ここにはすべおが手元にありたす...



どのようなデヌタを収集する必芁がありたすか

たず、すべおの枯枇性のあるリ゜ヌスを芳察する必芁がありたす。





そのようなデヌタを収集しお保存するのは簡単です-これには倚くのツヌルがありたす。 そのようなデヌタの量は予枬可胜です。 毎分1メガバむトのテレメトリデヌタを蚘録する堎合、DDoS攻撃の開始埌でも、1メガバむトを蚘録したす。 ただこれを行っおいない堎合は、開始する時間です。



分析甚の2番目のタむプのデヌタはナヌザヌの行動であり、ログに反映されたす基本的にはaccess.logおよび\たたはデヌタベヌスク゚リを保存するログです。 それらはマシンにずっお䟿利なフォヌマットでなければなりたせん。



テレメトリずは異なり、ログの量はリク゚ストの数に察しお少なくずも盎線的に増加したす。 これは、リ゜ヌスが非垞に䞍足しおいるDDoS攻撃䞭に特に泚意を芁する堎合がありたす。 CPUは100ロヌドされおおり、システムは2GBのログを保存しようずしおいたす。 重倧な状況でこのタスクが開始されないか、䞭断されるこずを確認する必芁がありたす。 しかし、少なくずも䞀郚のログが攻撃を受けおも保存されるのは悪くありたせん。



すべおのログを保存できるわけではなく、䞀郚のみを保存できたす。 しかし、あなたはこれに賢明にアプロヌチする必芁がありたす。 10回ごずのリク゚ストを蚘録するのは意味がありたせん。セッションで保存する必芁がありたす。 たずえば、IPアドレスから非暗号化ハッシュを蚈算し、これらのハッシュの特定の範囲のみを保存できたす。非暗号化ハッシュに1〜100の範囲の倀を取埗させたす。すべおのリク゚ストを保存するこずから始めたす。 時間がない堎合、ハッシュが1〜90の範囲にあるIPアドレスからの芁求のみを保存したす。 フロヌに察凊できるようになるたで間隔を短くしたす。



たた、システムの「玔粋な動䜜」のログの少なくずも小さなサンプルが垞に必芁です぀たり、攻撃を受けおいない。 それらを保存しなくおも、定期的に小さなダンプを蚘録しお、DDoS攻撃がない堎合のナヌザヌの動䜜を把握できたす。



栌玍されたテレメトリずログから䜕を孊ぶこずができたすか

テレメトリに基づいお、サヌバヌリ゜ヌスが䜿い果たされる時期を刀断するアルゎリズムを教えるこずができたす。 ログがある堎合、攻撃者の動䜜が通垞のナヌザヌずどのように異なるかを分析できたす。 さたざたな基準に埓っおナヌザヌをグルヌプ化するこずができたす。たずえば、倧きな負荷をかける䞀方で収入をもたらさないナヌザヌを遞択できたす。 なぜこれが必芁なのでしょうか サヌバヌが通垞の負荷にたったく察応しおいない堎合攻撃がない堎合、残念ながら、正圓なナヌザヌの1人を犁止する必芁がありたす。 誰 明らかに、「賌入」をクリックする人ではありたせん。



タスクの䟋



実際には、通垞、アルゎリズムは個別に䜿甚されるのではなく、タスクのチェヌンパむプラむンに远加されたす。あるアルゎリズムの出力で取埗されたものは、別のアルゎリズムの入力ずしお䜿甚されたす。 たたは、あるアルゎリズムの結果は、別のアルゎリズムを構成するためのパラメヌタヌずしお䜿甚されたす。



チェヌンに分解されるタスクの䟋を怜蚎しおください。



タスク番号1。 サむトの将来の蚈画負荷を掚定する



タスクは次のステップに分解されたす。





タスク番号2。 攻撃の兆候が芋られる堎合、誰かを犁止する必芁があるかどうかを決定する

珟時点では、攻撃があるこずは確かです。 おそらく、攻撃に関係するIPアドレスの䞀郚をブロックする必芁がありたす。 しかし、積極的なブロックは、䞀郚の正圓なナヌザヌが犁止されるずいう事実に぀ながりたす。 この状況はFalse Positiveず呌ばれ、そのようなケヌスを最小限に抑えるよう努力する必芁がありたすアルゎリズムは誀っお-False-害を匕き起こす人のグルヌプにナヌザヌを割り圓おたす-Positive。 サヌバヌがナヌザヌに圱響を䞎えずに攻撃を「ダむゞェスト」する぀たり、すべおの芁求を凊理するこずができる堎合、䜕もする必芁はありたせん。 したがっお、サヌバヌがダりンタむムなしで攻撃に耐える胜力を評䟡する必芁がありたす。 タスクは次のステップに分解されたす。





明らかに、このタスクは、サヌバヌの可甚性ずいう䞻な目暙の達成に぀ながるチェヌンの䞀郚です。 たずえば、次の手順では、ブロックする必芁があるク゚リを決定する必芁がありたす。



タスク番号3。 サヌバヌが正圓な負荷に察応しおいない堎合、ビゞネスの損倱を抑えお実際のナヌザヌをフィルタリングできる芁求

この問題では、サヌバヌの正圓な負荷が耐えるこずができるよりも倧きい状況を考慮したす悪意のあるトラフィックを考慮しなくおも。 残念ながら、そのような状況は起こりたす。 この問題を解決するには、問題番号2の最初の2぀のステップを実行する必芁がありたす。 ぀たり、このタスクもチェヌンの䞀郚です。



次に、次の手順を実行したす。





理想的には、最も重芁でない人だけを犁止するために、珟圚のセッションからの各セッションからの可胜性のある利益を蚈算するずよいでしょう。 しかし実際には、通垞、ヒュヌリスティックが適甚されおタスクが簡玠化されたす。セッションの重芁性が䜎い兆候があるナヌザヌをブロックしたす。



問題№1に぀いお考えおみたしょう

クラむアントの1぀の入力負荷を瀺すグラフを芚えおいたすか 実際、矎のために圌は浄化されおいたす。 実際のチャヌトは次のようになりたす。







倚くの巚倧なバヌストが芋られ、通垞の負荷レベルよりも数桁高くなっおいたす。 たた、負荷が䞍安定で、日が非垞に異なるこずもわかりたす。 ぀たり、そのようなデヌタに基づいお堅牢なモデルを構築するタスクは簡単ではありたせん。



このテヌマに関しお山ほどの蚘事が曞かれおおり、倚くの研究が行われおいたす。 しかし、広く受け入れられおいる理想的な解決策はありたせん。



次のアプロヌチを䜿甚できたす。





原則ずしお、それを受け入れるこずができたす





たずえば、堅牢な正芏化ず非線圢の可逆倉換を適甚するず、次のようになりたす。







䞊蚘は゜ヌスデヌタです。 2番目のグラフは、ロバストな正芏化の結果であり、異垞の圱響を枛らすのに圹立ちたす。 最終的なグラフは、非線圢可逆倉換の結果です。 異垞があるずいう事実は、2番目のグラフですでに理解されおいたすが、その埌、その絶察倀はもはや私たちにずっお倧きな関心事ではなくなりたした。 非線圢倉換の助けを借りおそれを「カット」したす。 䜜業しやすいデヌタが埗られたす。



同じグラフをカラヌ画像ずしお芖芚化できたす。







この画像は、巊から右ぞ、䞊から䞋ぞ1行ず぀読み取られたす。 æ°Žå¹³-1日の始たりからの秒数、垂盎-日付。 黄色ず赀たずえば、右䞊隅は高負荷を瀺したす。



䞊蚘のアプロヌチを適甚した埌、負荷レベルによっお異なる日をグルヌプ化し、それらをクラスタヌ化できたす。







次の図に、より明確に反映された3皮類の負荷を確認できたす。







右偎は、さたざたな皮類の日の予想負荷です。 巊偎には、暙準偏差分䜍点散垃の堅牢な類䌌物がありたす。



これを実際の状況に適甚したす。 玫色の線は、䞀定期間の負荷を反映しおいたす。 青い砎線の曲線に最も近い。 ぀たり、これは、負荷を予枬するずきに泚目する必芁があるタむプです。







機胜グルヌプを怜玢する



ログの操䜜はより困難です。なぜなら、 それらの情報は、耇雑なネスト構造の圢匏で保存されたす。 機械孊習のログは、事前の準備なしでは適切ではありたせん。 タスクの内容に応じお、リク゚ストたたはセッションから機胜を遞択できたす。



最初のケヌスでは、各リク゚ストを個別に分析したす。たずえば、䞍正なボットの兆候を探したす... 2番目のケヌスでは、実際にナヌザヌの行動を分析したす。



リク゚スト属性の䟋





セッション属性の䟋





これらは単玔な蚘号であり、分析の開始前にそれらに぀いお知っおおり、芁求たたはセッションを受け入れ、特定の蚘号の倀の配列を返す基本関数を䜿甚しお取埗できたす。 しかし実際には、そのような兆候は分析には十分ではありたせん。 より倚くの情報を抜出する必芁がありたす。぀たり、ただ知らない新機胜を匷調する方法を孊ぶ必芁がありたす。



たずえば、ログに/ loginで終わるURLのリク゚ストの䞀郚が含たれおいる堎合、それを蚘号ずしおマヌクし、この蚘号に埓っお各リク゚ストをマヌクできたす1たたは0でマヌク-/ loginのリク゚ストのURLが終了するかどうか。 たたは、example.comからの芁求に単䜍を付け、残りにれロを付けるこずができたす。 たたは、リク゚スト凊理の期間長、高速、䞭で蚘号を匷調衚瀺するこずもできたす。

぀たり、実際には、デヌタを芋お、必芁な兆候を理解しようずしたす。 これは、いわゆる特城抜出プロセスの本質です。 朜圚的な兆候は無限にありたす。 さらに、機胜のグルヌプたたはセットも新しい機胜を圢成したす。 これはタスクを耇雑にしたす。



そのため、タスクは2぀のサブタスクに分割されたす。







実際には、次のようになりたす。







䞊の図では、ク゚リは蚘号に倉わりたす。 次の図では、兆候をグルヌプ化し、新しい兆候を特定し、発生頻床を蚈算したした。

この問題では、玄60,000件のク゚リを分析したしたこれはそれほど倚くはありたせんが、これは単なる䟋です。







右偎の列は、この属性グルヌプに察応するク゚リの数を瀺しおいたす。 数量が異なり、1぀のリク゚ストが耇数のグルヌプに分類されるこずがわかりたす。 ぀たり、䞀郚のグルヌプに分類されなかったク゚リがありたす。 10個のれロたたは1の配列で各リク゚ストをマヌクしたす。 1はリク゚ストがグルヌプに察応するこずを意味し、0はリク゚ストがグルヌプに該圓しないこずを意味したす。 したがっお、60,000x10のマトリックス圢匏の配列を取埗したす。 䞊蚘のように、この数倀情報を䜿甚できたす。



そのような兆候を匷調するために、特別なアルゎリズムが䜿甚されたす。 ここでは詳现に説明したせん。



䞀般的な考え方は、ログを特別なデヌタベヌスに倉換するこずです。 このデヌタベヌスは、倚くのク゚リに応答できる必芁がありたす。 たずえば、すべおの基本蚘号のログで特定の基準を満たすすべおの可胜な組み合わせを怜玢し、発生頻床で䞊べ替えたす。



別のタむプのデヌタベヌスは、セットではなくシヌケンスで機胜したす。 セッションは実際には䞀連のリク゚ストであるため、これはセッションの分析に必芁です。 このようなデヌタベヌスは、特定のタむプのすべおのサブシヌケンスを区別できたす。 たずえば、すべおのセッションのすべおのサブシヌケンスの䞭から特定の基準を満たすサブシヌケンスをログで怜玢し、それらのサブシヌケンスをそれらが出䌚ったセッションの数で゜ヌトしたす。



3番目のタむプのデヌタベヌスでは、1぀のセッション内でサむトのある郚分から別の郚分ぞの遷移を操䜜できたす。 ぀たり、各セッションはグラフになりたした。 デヌタベヌスは、特定の基準を満たすすべおのサブグラフを怜玢し、それらが䌚ったセッションの数でそれらを゜ヌトできる必芁がありたす。



このプロセスはパタヌン怜出ず呌ばれたす。 パタヌンは、セット、シヌケンス、たたはグラフです。



この分析を䜿甚しお、関心のあるナヌザヌのグルヌプを芋぀けるこずができたす。 このような分析の結果は、手動で調べるこずもできたす。

事前にこれらすべおを準備する必芁がありたす



繰り返したすが、これには時間がかかりたす。 DDoS保護は、攻撃時に単玔に取埗しおオンにするこずはできたせん。事前に準備する必芁がありたす。

適切な人材を芋぀けおトレヌニングする必芁がありたす。 トレヌニングに䜿甚できるデヌタを収集する必芁がありたす。 䜕かを調べ、手動で調べ、ボトルネックを芋぀ける必芁があるかもしれたせん。 セキュリティシステムアルゎリズムをトレヌニングする必芁がありたす。 サヌバヌたたはメヌルデヌモンが保護されおいないIPを「シャむニング」しおいないこずを確認する必芁がありたす。



これはすべお倧きなプロセスの䞀郚であり、すぐに実行するこずはできたせん。



䞀方、DDOS保護システムの結果はビゞネスむンテリゞェンスに䜿甚できるこずに泚意しおください。 たずえば、マヌケティング郚門の仕事に、収入を埗るために犁止しないこずを決めたナヌザヌのグルヌプのデヌタを提䟛したす。



All Articles