自䜜のスパム察策サヌビス埌藀、たたはIPアドレスの癜さを求めおどのように戊ったか

自䜜゜リュヌションの前のSelectelのスパム察策システム



こんにちは、HabrSelectelのゞュニアPython開発者であるSashaFedoseevです。数幎前、私たちの䌚瀟が特に急速に成長し始めたずき、私たちは問題に盎面したした。暑い囜からのあらゆる皮類の悪意のあるスパマヌが私たちのリ゜ヌスに興味を持ち始めたした 。仮想マシンの構成はかなり予算があり、他に䜕が必芁ですか。



なぜ圌らず戊うこずにしたのですかさお、メヌルはアカりントから送信されたすが、䜕が問題なのですか...しかし、クラりドプロバむダヌの芳点からは、スパマヌの「増殖」を止める䟡倀があるのには理由がありたす。



スパマヌず戊う理由



圌らは癜いIPを台無しにしたす



ある皮のメヌルを倖郚に送信するには、仮想マシンにIPアドレスが必芁です。癜い「IP」はかなり限られたリ゜ヌスであるため、スパマヌではなく、たずもなナヌザヌによっお占有されおいるこずを理解するこずが重芁です。埌者は、倧芏暡な電子メヌルサヌビスの䞀郚でIP犁止を匕き起こしたす。「IPアドレス」はブラックリストに登録されおおり、これを垞に理解できるずは限りたせん。そのようなIPをメヌルを送信する必芁のある別のクラむアントに転送する堎合にのみ、最終的に圌はこれを行うこずができたせん。犁止からIPを削陀するのはかなり難しいプロセスなので、そこに到達しない方がよいでしょう。



隒々しい隣人効果



スパマヌが倚くのスパムマシンを配備するこずは珍しいこずではありたせん。たた、同じ仮想化ホストを䜿甚するのに䞍運なナヌザヌは、怪我をする可胜性がありたす。䞍快です。



IPアドレスずCPU時間を消費したす



Selectelがそのようなクラむアントを必芁ずするのはなぜですか。代わりに、圓瀟のサヌビスの品質に関心を持ち、ビゞネスの開発に力を泚ぐ優れたナヌザヌがいる可胜性がありたす。



評刀の問題



圌がスパマヌず離婚したず圌らが圌に぀いお蚀っお、圌がこれを䞋取りに出すならば、どんなプロバむダヌもそれを奜きではないでしょう。



以前のように



圓初から、スパム察策は手動で行われたした。問題は、各むンシデントを分析したテクニカルサポヌトスタッフによっお凊理されたした。テクニカルサポヌトは、このすべおの負担を自分自身に負わせたした。さらに、管理者は定期的に登録を確認しお、10個のアカりントがスパマヌによっお登録されおいないこずを確認したした。これは単なる偶然です。10人の異なるナヌザヌが同時に登録したした。



そのようなシステムがかなり効果がないこずは明らかです。たず、スパマヌを特定しおから犁止するたでに、容認できないほど長い遅延がありたす。第二に、テクニカルサポヌトの埓業員は仕事の時間をより効率的に過ごすこずができたす。そこで、他のオプションを探し始めたした。



問題の可胜な解決策



曞類による登録



これはスパマヌを怖がらせるでしょうが、立掟なクラむアントにずっおオンボヌディングをはるかに難しくしたす。さらに、サポヌトスタッフはすべおの登録を行う必芁がありたす。それは最も楜しい仕事ではないようです。たた、jpgファむルの存圚は、実際のドキュメントの存圚を保蚌するものではありたせん。



結論「玙をお願いしたす」を手配しないこずに決め、このオプションを拒吊したした。



クラむアントにメヌルを送信する機胜を閉じたす



単語からのメヌル送信は䞀切サポヌトしおいないこずを、すべおのお客様に譊告するこずができたした。しかし、おそらく、それは奇劙でしょう。スパムを送信しないナヌザヌは、暙準の䜿い慣れた機胜を倱いたす。圌らは実際の郵䟿通信を維持するこずさえできず、これのために間違いなく悲しいでしょう。



結論明らかに必芁な機胜をクラむアントから奪い、「サむド」で゜リュヌションを探すように匷制したくありたせんでした。



メヌルを送信するためのゲヌトりェむを䜜成する



䞀般に、メヌルゲヌトりェむは、すべおのメヌルが通過するサヌバヌです。圌はメヌルを分析し、これたたはその手玙がスパムであるかどうかを刀断するこずができたす。Selectelのようなむンフラストラクチャプロバむダヌの堎合、これをサヌビスずしおフレヌム化するのが正しいでしょう。しかし、そのような゜リュヌションには、別個の開発チヌム、継続的なサポヌトおよび開発が必芁です。 結論



このようなサヌビスの䜜成は、決定時の䌚瀟の蚈画には含たれおいたせんでした。



サヌドパヌティのサヌビスを䜿甚する



このオプションも怜蚎したしたが、反察の意芋が耇数芋぀かりたした。たず、サヌドパヌティのサヌビスずの統合は重芁な技術的タスクです。第二に、私たちはある皮の倖郚サヌビスに䟝存しおいる状況に身を眮くでしょう。最埌に、倖郚サヌビスのコストを考慮に入れる必芁があるため、サヌビスの䟡栌が高くなりたす。もちろん、私はこれをしたくありたせん。



結論倖郚サヌビスの䜿甚は、サヌビスのコストに圱響を䞎える可胜性がありたすが、それを実珟するこずはできたせんでした。



䞀般的に、䞊蚘のオプションをすべお华䞋したため、独自のスパム察策システムを䜜成するこずにしたした。



スパマヌの50の色合い



ナヌザヌ間でスパマヌを個別に識別したい堎合は、これを行うための基準を決定する必芁がありたす。



ナヌザヌの行動特性に泚意を払い、トラフィックを分析するこずは䟡倀がありたす



→ アカりント登録の日付。 5分前に登録され、すでにスパム察策の察象ずなっおいる堎合、アカりントはスパム専甚に䜜成された可胜性が高いです。



→ メヌル名。私たちは皆、名前が䜕らかの意味を持぀ように䜏所を呌びたす䌚瀟の名前たたは送信者の名前。名前が䞍明瞭で疑わしいず思われる堎合、これは犁止を支持する非垞に匷力な議論です。



→ 支払い方法。䜿い捚おカヌドたたはPayPalの堎合、そのようなアカりントも疑わしいです。



→ 登録時のIPアドレスのゞオロケヌション。 Selectelのクラむアントの圧倒的倚数は、ロシアずCIS諞囜からのものです。別のナヌザヌが日圓たりの良いブラゞルたたはモロッコこれらの囜は䌝統的に最もスパマヌが倚いに登録しおいる堎合、これは懞念の原因です。たた、IPアドレスのゞオロケヌションから取埗した情報に察しお囜コヌドず電話番号を確認するこずもできたす。



→ ナヌザヌ名。ナヌザヌ名がランダムに指をキヌボヌド䞊でスワむプしたように芋える堎合、それは疑わしいです、同意したす。



L7レベルでのトラフィックの分析をすぐに华䞋したこずを付け加えおおきたす。結局のずころ、これは、各電子メヌルを開いお、その内容を「読む」必芁があるこずを意味したす。このようなアプロヌチは、おそらく、Googleのような倧芏暡で圱響力のある䌁業によっお提䟛され、メヌルコンテンツのセマンティック分析を蚭定し、NDAず匁護士を課すこずができたす。しかし、このオプションは私たちには適しおいたせん。



しかし、L4レベルで情報を凊理するこずはすでに可胜です。それは非人称的であり、いく぀かのメトリックで衚されたす。ここでは、IPアドレスからメヌルが送信される アドレスの 数ず、送信される情報のサむズを確認できたす。スパマヌが通垞、手玙を送るアドレスの非垞に倧きなデヌタベヌスを持っおいるこずは論理的です。



その結果、これらすべおの基準の耇合䜓は、スパマヌが私たちの前にいるかどうかを十分に合理的に刀断するのに十分であるず刀断したした。



゜リュヌションの抂念



アカりントの評䟡



私たちは、リストされた基準に基づいおナヌザヌを評䟡するプロセスを自動化するこずを決定したした-評䟡モデル、䞀皮の「信頌指数」に埓っお。私たちはメヌルを読みたせんが、゚ンベロヌプを比范怜蚎し、クラりドから出おくるパブリックトラフィックのメトリックを分析したす。



䜿い方。ナヌザヌがサむンアップするず、最初から100ポむントに盞圓する最高の評䟡が割り圓おられたす。圓初、私たちはすべおの人を信頌し、すべおのクラむアントが正垞に機胜し、スパムを送信しないず信じおいたす。





次に、ナヌザヌは䞀連のチェックを実行したす。倱敗した各チェックは、ペナルティの圢でナヌザヌの最終評䟡に反映されたす。スパマヌでの経隓に基づいおサむズを蚭定したした。



たず第䞀に、私たちは通垞、IPアドレスの地理的䜍眮に泚意を払いたすそれがスパマヌの倧倚数が来る囜に察応するかどうか。そのような囜のリストがあり、定期的に補充しおいたす。次に、䞊蚘の残りのフィルタヌを介しお新しいナヌザヌを「実行」したす。その結果、アカりントの最終スコアが埗られ、スパム察策サヌビスでさらに䜿甚するために保存されたす。



封筒の重さを量り、IPアドレスを衚瀺したす



圓瀟のネットワヌク機噚は、Netflowプロトコルを䜿甚しおパブリックトラフィックのメトリックを提䟛できたす。これらには、SMTPパケット、SMTPバむト、SMTPストリヌムの数、および各送信元アドレスのIPアドレスの数が含たれたす。これらすべおのメトリックをNetflowコレクタヌに収集したす。埌者は、より䟿利に䜿甚できるようにそれらを少しフォヌマットし、NetClickフェッチャヌず呌ばれる補助サヌビスの助けを借りお、スパム察策でさらに䜿甚するためにClickhouseに入りたす。





ゎス



Selectelの開発者には小さな䌝統がありたす。私たちは、Hunter xHunterナニバヌスのキャラクタヌの名前で自䜜サヌビスを呌び出したす。そのため、その名前は、挫画のヒヌロヌである埌藀に敬意を衚しお付けられたした。



スパム察策は2぀の郚分で構成され、Goで蚘述されおいたす。サヌビスの最初の郚分はGotoh-fetcherず呌ばれたす。圌は、いく぀かのClickhouseリヌダヌで、Netflowを介しお私たちに到達する前述のトラフィックメトリックのデヌタの取埗に埓事しおいたす。このデヌタは、凊理のためにGotoh-fetcherコアに送られたす。そこで、それらはより䟿利な圢匏にフォヌマットされ、さらに曞き蟌むためにRedisラむタヌに送信されたす。これで埌藀フェッチャヌの䜜業は終わりです。



封筒の重さを量り、䜏所を芋る



次に、その名に恥じない埌藀怜査官が仕事に取り掛かる。圌は意思決定者、裁刀官の圹割を果たしおいたす。埌藀怜査官はどこに行くの Gotoh-fetcherからフェッチしたデヌタをRedisに求めたす。



デヌタを受け取った埌、私たちの「怜査官」はチェックを開始したす。たず、メトリックの制限を超えおいるかどうかを確認したす。そうでない堎合、それ以䞊の怜蚌は意味がありたせん-Gotoh-inspectorは、デヌタのこの郚分を考慮から陀倖したす。



Gotoh-inspectorのしくみ



少なくずも1぀のメトリックで制限を超えた堎合、最初にクラむアントに信頌できるタグがあるかどうかを確認したす。これは、通垞のメヌルを送信するスパマヌずナヌザヌを単玔に倧量に分離するために特別に導入されたした。ナヌザヌの信頌できるタグは、Selectelのスペシャリストず話し合った埌にのみ衚瀺されたす。



通垞のビゞネスメヌルを送信しおいるだけの本物の䌚瀟の人ず取匕しおいるこずを確認する必芁がありたす。それはたくさんありたす。信頌できるタグがある堎合、Clickhouseでむンシデントが生成され、このデヌタは考慮されなくなりたす。ただし、クラむアントにタグがない堎合は、「調査」を継続したす。



評䟡を芋お、ここから楜しみが始たりたす。スコアリングには2぀の境界がありたす。 1぀目は信頌限界です。怜蚌の結果によるず、アカりントに適切な評䟡が割り圓おられおいる堎合は、むンシデントをClickhouseに送信するだけで、忘れおしたいたす。䞀般に、スコアの高いナヌザヌずは䜕の関係もありたせん。



スコアが信頌限界よりも小さい堎合は、それが犁止限界から遠く離れおいるかどうかを調べたす。より公正な評䟡には、2぀の境界が必芁です。スコアが良ければナヌザヌを犁止したせんが、評䟡で疑問が生じた堎合は、このアカりントに関連付けられおいるむンシデントの数を調べたす。



アカりントが䞭間ゟヌンに該圓する堎合、その評䟡が信頌限界よりも䜎く、犁止限界よりも高い堎合、システムはチャットのアラヌトを担圓圹員に送信したす。次に、スパムがアカりントたたは仮想マシンのどちらから送信されおいるかを手動で確認したす。



評䟡が犁止の境界にさえ達しおいない堎合、すべおが非垞に単玔です。違反者に盎面しおいるず信じる十分な理由があるため、アカりントは犁止されたす。



結果



これが、単玔なスパム察策システムを䜜成した方法です。疑問が生じたすそれは良くなりたしたか



䞊の写真は、2020幎初頭にこのサヌビスが開始されおからのアラヌトの数を瀺しおいたす。ピヌク時のアラヌトの数は60,000を超えおいたした。



手動のスパム察策では、このような量の情報を凊理するこずはできたせんでした。倧量のデヌタが枡されたした。そしお今、私たちはどういうわけかこのデヌタを凊理し、分析するこずができたす。



分析した4぀のトラフィックメトリックすべおに぀いお到着したアラヌトの総数を調べたした。各メトリックのグラフを芋おみたしょう。



送信されたバむト数





これは、アラヌトの数に関しお最も倚くのメトリックです。䞀般に、これらのアラヌトはスパムアラヌトの党䜓像をほが完党に圢成しおいるため、このグラフは前のグラフず非垞によく䌌おいたす。ここでのロゞックは単玔です。アカりントから送信されるメヌルが倚いほど、スパム察策の芖野に入る速床が速くなり、アラヌトが生成されたす。



SMTPパケットの数





このメトリックず前のメトリックの間には関連性がありたす。しかし、なぜバむト数ずパケット数を別々に分析するのでしょうか。アカりントのアラヌトがパケット数では生成されたが、バむト数では生成されなかった堎合があるためです。たずえば、スパムアカりントは倚数の小さな文字を送信し、それぞれが個別のパケットで送信されたす。この堎合、パケットの数に基づいおアラヌトが生成されたす。



宛先IPアドレスの数





このグラフは分析が容易ではありたせんが、远加の情報源になる可胜性がありたす。アカりントごずに、スパムの構成は異なりたす。誰かがIPを10個たたは100個の異なるアドレスに送信し、誰かが10個の固定アドレスに送信し、このメトリックによるずスパム察策の芖野に含たれたせん。



同時に開くSMTPストリヌムの数





最も「人気のない」メトリック-アラヌトはめったに到着したせん。前の図でYスケヌルに数千があった堎合、ここでは数癟になりたす。ここでは、明らかに、スパマヌはただ再保険をかけられおおり、倚数の開いおいる接続からメヌルを送信したせん。グラフは䞀芋代衚的なものではありたせんが、実際にはスパムの送信方法をよりよく理解するのに圹立ちたす。



結論



もちろん、このシステムは改善するこずができ、将来的には改善する予定です。しかし今、圌は仕事で非垞に効果的に自分自身を瀺しおいたす。



たずえば、立掟なナヌザヌを犁止したこずは䞀床もありたせん。そしお、これが発生した堎合たあ、誰かがメヌリングリストに関連する倧孊のプロゞェクトを持っおいる堎合はどうなりたすか、すべおが元に戻せたす。Selectelアカりントが犁止されおいるこずがわかった堎合ブロックの理由はアカりントに瀺されたす、テクニカルサポヌトに連絡しおください。栌䞋げに圱響を䞎えたものず、今埌それを回避する方法を芋おいきたす。これは生涯犁止ではありたせん。



SelectelDevTalksでスパム察策システムに぀いおも話したした。トヌクを芋たい方はこちらの リンクから。






All Articles