サイトおよび1日サイトのクローンの検索を自動化する

攻撃者は、ユーザーのコンピューターに感染するために、ユーザーが興味のあるサイトのアドレスをブラウザーバーに入力してユーザーをだまそうとする方法を使用することが非常に多いです。 たとえば、タイポスクワッティング(別名URLのハイジャック)、つまりユーザーエラーの使用です。これは、キーボードでドメインを記述する際に誤っている可能性があります。 たとえば、cisco.ruのスペルを間違えて、最初の文字「c」の代わりにキーボードの横に文字「v」を入力すると、シスコのWebサイトではなく、現在販売中のドメインにアクセスします。

画像



また、たとえば、「sberbank.ru」の代わりにドメイン「sbrrbank.ru」を入力すると(「e」と「r」が隣り合って混同される)、そのようなリソースに到達します。







最後に、ロシア語の無知と、Sberbankの代わりにSberbankを使用すると、オンラインカジノにつながります。



画像



これらはすべて無害ですが、ユーザーの不満または他のあまり知られていない会社を豊かにするためにブランドが使用されている組織の評判への打撃(広告の表示など)で終わる可能性がある不快なケースです。 しかし、攻撃者がユーザーエラーを使用して、同様の名前のサイトにある悪意のあるコードをコンピューターに感染させることにより、明示的に害を及ぼす場合はどうでしょうか たとえば、悪意のあるコードと偽のSpySheriffアンチウイルスを配布するサイトgoggle.com、またはユーザーを悪意のあるサイトにリダイレクトするyuube.comドメインの長い存在例はよく知られています。 サイバー犯罪者は、キーボードで入力するときのユーザー自身のエラーに加えて、メーリングリストやさまざまなインターネットリソースへのリンクでvkontakte.ruとvkolakte.ru(実際の例)の違いをすぐに見ないユーザーの不注意にも頼ることができます。 しかし、それらに対処する方法は?



そのようなドメインとの戦いは、一方では簡単です。 ドメインレジストラまたはwhoisサービスを通じてインターネット上の新しいドメインの出現を追跡するだけで十分です。 しかし、これは困難でもあります。そのような新しいドメインの数は膨大で、毎日(実際には毎分)表示される可能性があります。 手動モードでは、このような変更を追跡することは困難です。 たとえば、ロシアで人気のあるがまだ禁止されていないFacebookソーシャルネットワークへのリンクを含むドメインの一般的な検索は次のようになります。



画像



そのようなドメインは数百あります。 また、たとえば、名前に「microsoft」を使用しているドメインを見てください。 それらの多くはありませんが、それらは常に作成されています(スクリーンショットは3月10日に撮影されました)。



画像



攻撃者は、ドメインが被害者として選択されている企業では通常使用されないさまざまな文字の組み合わせを使用してドメインを作成できるため、検索が複雑になることに注意してください。 たとえば、攻撃者は、文字「o」を数字「0」に、文字「A」を数字「4」に、大文字の「i」を小文字の「L」に、「s」を「5」、「z」、「es」に置き換えることができますまたは「2」など Facebookの場合、次のようになります。



画像



最後に、攻撃者は文字の繰り返しを使用できます。 同じ「facebook」は「faceboook」に置き換えることができ、これは気付かない場合があります。



画像



ブルジョアの例を無視してルネットを見て、ロシアで最も人気のある銀行を例にとると、次の図が得られます。



画像



多数のドメイン(明らかに問題を引き起こす場合があります)では、「sberbank」という言葉を基礎として使用しています。 興味深いことに、複数の調査によると、何らかの理由でユーザーはそのようなドメインを信頼する傾向があり、会社(または人気のある製品/サービス)の名前が記載されているドメインは他の誰かではなくこの会社に属していると考えられています。 したがって、そのようなリンクをクリックする可能性は、被害企業の名前を使用しないリンクよりもはるかに高くなります。



記載された攻撃に苦しんでいるのはSberbankだけではないことは明らかです。 たとえば、RuNetでは、Ciscoに関連するドメインを見つけることができます。



画像



またはロシア連邦大統領のウェブサイトで:



画像



同時に、この記事では、このような攻撃を調査するために特別に設計されたCisco OpenDNS Investigateサービスを使用して検出される明らかに悪意のあるドメインを選択しました。 毎日800億のDNSクエリを通過するCisco OpenDNSサービス(調査用の調査とブロック用の傘)は、膨大な数のドメインとそのアクティビティを分析し、データベースに分類して配置し、さまざまなツールを使用してアクセスできます。 たとえば、上記のスクリーンショットは、Cisco OpenDNS Investigateを使用して撮影されたもので、通常のブラウザを使用して、関心のあるドメイン(およびドメイン所有者のIPアドレス、自律システム、または電子メール)を調査できます。



このタスクを自動化し、目的のドメインをオンザフライでチェックする機能(たとえば、ファイアウォール、インターネットアクセス制御システム、SIEM、SOCなど)を自動化するには、当社が開発したInvestigate APIを使用できます。 たとえば、次のコードを使用すると、最終日に作成されたドメインで目的の文字列を検索できます。



inv = investigate.Investigate('12345678-1234-1234-1234-1234567890ab') inv.search('searchregex', start=datetime.timedelta(days=1), limit=100, include_category=False)
      
      





目的の文字列は事前に作成でき、対象のドメインで発生する可能性のあるすべての文字の組み合わせを含めることができます。 監視したいブランドがいくつかある場合は、個別のスクリプトを使用することをお勧めします。出力では、特定のキャラクターの一連の可能な置換を提供します。



 self.word = word self.a=['a','4'] self.b=['b','8','6'] self.c=['c','k'] self.d=['d','0'] self.e=['e','3'] self.f=['f'] self.g=['g','6','9'] self.h=['h'] self.i=['i','!','1','|','l'] self.j=['j'] self.k=['k','x'] self.l=['l','1','7'] self.m=['m','nn'] self.n=['n'] self.o=['o','0'] self.p=['p','9','q'] self.q=['q','9'] self.r=['r'] self.s=['s','5','z','es','2'] self.t=['t','7','1'] self.u=['u','m'] self.v=['v'] self.w=['w','vv'] self.x=['x','ex'] self.y=['y','j'] self.z=['z','2'] self.zero=['0','o'] self.one=['1','l'] self.two=['two','2','z'] self.three=['e','3','three'] self.four=['4','four','for','fore','a'] self.five=['5','five','s'] self.six=['6','six','g'] self.seven=['7','seven','t','l'] self.eight=['8','eight','b'] self.nine=['9','nine','g'] self.alphabet={ 'a':self.a, 'b':self.b, 'c':self.c, 'd':self.d, 'e':self.e, 'f':self.f, 'g':self.g, 'h':self.h, 'i':self.i, 'j':self.j, 'k':self.k, 'l':self.l, 'm':self.m, 'n':self.n, 'o':self.o, 'p':self.p, 'q':self.q, 'r':self.r, 's':self.s, 't':self.t, 'u':self.u, 'v':self.v, 'w':self.w, 'x':self.x, 'y':self.y, 'z':self.z, '0':self.zero, '1':self.one,'2':self.two,'3':self.three,'4':self.four, '5':self.five,'6':self.six,'7':self.seven,'8':self.eight, '9':self.nine } def get_permutations(self, letter): try: permutations = self.alphabet[letter] except KeyError: permutations = letter regex = '[' for p in permutations[:-1]: regex += '{0}|'.format(p) regex += '{0}]'.format(permutations[-1]) return regex
      
      





その後、定期的に(たとえば、1日に1回)のみ、インターネットを監視して、私たちが興味を持っているブランド(会社、製品、サービスなど)の名前を使用して、表示される新しいドメインを探します。 Pythonのbarnd_watchスクリプトの形式でこのタスクを自動化しました。これはGitHubにあります 。 操作は簡単です。興味のある検索文字列を指定するだけです:



画像



一部のドメインを検索から除外する場合(検索結果にそれらの多くが含まれると想定される場合)、このためには、例外ドメインを含む準備済みファイルを含むスクリプトを指定するだけで十分です。



画像



このような簡単な方法で、Cisco OpenDNSは、企業やユーザーを攻撃するために攻撃者が使用するクローンサイトやその他のドメインを検索するプロセスを自動化するのに役立ちます。 Cisco OpenDNS InvestigateまたはCisco OpenDNS Umbrellaのサービスの利点は、検索を自動化するだけでなく、分類アルゴリズムを使用して、特定のドメインの有害性について即座に結論を出すことができることです。 たとえば、Gazprombankブランドを使用するドメインを検索する方法は次のとおりです。



画像



さらに、同じCisco OpenDNS Investigateサービスを使用して適切な調査を実行することはすでに可能であり、このドメインを作成したユーザーと作成場所、場所、同じIPアドレスまたは自律システムにある他のドメイン、およびその他の関連情報(悪意のあるコード、この所有者に属する他のドメインなど)を配布しました。 しかし、Cisco OpenDNS Investigateのこれらの機能についてはまた別の機会に。



結論として、このような攻撃は、ユーザーを偽のサイトに誘導するためだけに使用されるわけではないことに注意してください。 被害者の会社のサイトに類似した偽のドメインを作成することにより、ユーザーに感染する可能性を高めるフィッシングメールを送信することができます。 Cisco OpenDNSソリューションが機能するこの特定の攻撃方法に基づく攻撃を示す特別なビデオクリップ(実際にはいくつか )も作成しました。





脅威。 4月4〜5日にモスクワで開催されるCisco Connectでこのソリューションを確認し、「感じる」ことができます。ここでは、サイバーセキュリティに関する豊富なプログラムを計画しています。



All Articles