チャンネルの防衛方法

05077, Today: 003, Yesterday: 001 Hits


まず最初に、この項目で書いた内容は、攻撃及び乗っ取りの方法も簡単に書いてありますが、攻撃及び乗っ取りを助長する物ではありません。あくまでも、自分たちのチャンネルを守る為にはどのような攻撃や乗っ取りの手段を知った上で守るという物です。その為、攻撃や乗っ取り方法を知った上で守るための手助けをする目的の文章ですので、決して悪用しないようお願いします。

また、IRC上でのチャンネル及びニックネームは誰の物でも有りません。元々自分らで使用していたチャンネルを守るというのは、守る立場ですが、乗っ取られた後、取り返すというのは、自分らが攻撃する立場になると言うことを忘れては行けません。これはIRCでの大原則となります。また、チャンネルオペレータを持っている人が独裁者でもあります。RFC1459 1.3.1 チャンネルオペレータより。

チャンネルを狙われにくくするには、誰もが思いつくような、ありきたりのチャンネル名を使用しない、秘密チャンネルにする等の工夫を行うことで、このような守る/取り返すという自体を避けることが出来ます。

さらに詳しい情報を求めておられる方は、fubuki氏の書いた ゲーマーのためのIRCチャンネル防衛についてという文章をご覧下さい。長年の経験が書かれていることでしょう(笑)

どのようなチャンネルが狙われやすいのだろうか?

狙われやすいチャンネルの主なパターン
  1. ユーザ数の多いチャンネルを乗っ取り喜ぶ愉快犯

    -s/-p の様なチャンネルは list コマンドを使用することにより、チャンネル一覧及び参加者数を知ることが出来ます。そのようなチャンネルを乗っ取ろうと試みる愉快犯がいます。

  2. ゲームなどの製品名やキャラクターの名前を使ったチャンネルで取り合いになるケース
  3. fake しているチャンネルを狙ってくるケース
乗っ取りにあう主なパターン
  1. サーバスプリットを利用し、op権限を持ち込む方法
    手法
    1番目は、現在 IRCNet で利用されているIRCサーバのバージョンには hemp というパッチが当たっており、以前よりはサーバスプリットを利用してop権限を持ち込むのが難しくなっています。しかし、海外の遠く離れたサーバを利用し、op権限を持ち込むことが実質可能となっているケースがあります。この hemp patch の詳細については、hemp patchの項目を参照して下さい。
    防衛方法
    IRCサーバ同士のリンクは何時切れるか分かりません。また、ネットワーク状況によりますから、常に全てのサーバが繋がっている理由でもありません。その為、不正にopを取得されないようにするため、一個所のサーバだけではなく、世界中のIRCサーバに分散して接続をする必要があります。常に各々のサーバに繋いでおくと言う手段により、攻撃側に不正にopが渡らないようにするという方法があります。
    しかし、現実的に全てのサーバに接続をするのは非常に難しいので、海外に在住の友達を作り、JOINして貰うことが重要でしょう。
  2. 自動でチャンネルオペレータ権限を受け取っているユーザになりすまし、不正にopを取得し乗っ取る方法
    手法
    自動でOP権限を貰っているAさんがいたとします。そのAさんのマスクは、
    A_example!~example@dhcp123.example.ne.jp
    
    だとします。勿論、Aさんは固定IPではありませんし、不定期にIPアドレスが変わります。
    また、OP権限を配っているBさんは、次のようなマスクで自動OPしていたとします。
    A*!*example@*.example.ne.jp
    
    このとき、攻撃側は、同じISPの近隣のホストをクラック等行い、Aさんになりすますと言う方法でチャンネルにJOINをしてop権限を取得すると言う方法があります。
    防衛手段
    この場合は、本物のAさんなのか、偽物なのかは判断できませんから、自動でOPを配る場合は、固定IPの人にしましょう。固定IPの人の大半は常時IRCに繋いでいますから、チャンネルオペレータ権限消滅と言うことはあまり発生しないかと思います。後は適度に手動でチャンネルオペレータ権限を配るという方法で対応します。
  3. 密かにチャンネルオペレータをもらえるように、ずっと居座る方法
    手法
    2番目の「自動でop権限を受け取っているユーザになりすまし、不正にopを取得し乗っ取る方法」によく似ています。しかし、自動でopのもらえない場合です。そのような攻撃者側は、だれかの Nickname に真似てひっそりと待っています。また、2の防衛手段にも書きましたが、メンバーだと思い、手動でopを配ってくれるのを待っているという事です。
    防衛手段
    whoisの情報、ユーザの情報、会話内容等から判断するしか有りません。
    怪しいなと思う場合は、配らない方が無難です。
    また、明らかに偽物だと判明している場合は、構わずチャンネルから追い出すと言う事も検討しなければなりません。

ボットの使ったチャンネル管理方法の一例

基本的には狙われやすいチャンネルは、上記の防御だけでは不充分です。また、乗っ取られるまでの防衛手段ですから、op が渡ってしまえば、実質乗っ取られてしまったと言うことになります。

不正に op が渡らないことには越したことがないのですが、渡ろうとしてしまったとき、どのように対処するかが重要です。 攻撃側は基本的にボットを使用し、有る程度自動化しているため、それに対抗するにも手では間に合いません。その為、防衛側も程度ボットを使用し自動化しないと守りきれない場合も有ります。

では、どういう風にして防衛するのでしょうか?

とある方の経験から聞いた話です。
大規模チャンネル、且つ一般的なISPを使用しているユーザが大半の場合は、opを渡しても無反応にするマスクをボットに書き、それ以外は全てdeopをするというのが無難だということです。 攻撃側の大半は外人でしょうから、海外のドメインやマスクになります。ですから、数も多いですし、全て把握するのは難しい為、簡単で確実な方法といえるでしょう。

gTLDな独自ドメインを逆引きに設定しているユーザが多いチャンネルの場合、根気よくWhiteListとなる安全なマスク一覧を作成しましょう。逆に独自ドメインを指定しているユーザは固定IPであるため、管理はしやすくなります。また、afraidといったFreeDNSを使用している場合は、危険ですのでこの場合は辞めましょう。第三者がそのドメインを自由に使用出来てしまうためです。 手っ取り早く行うには、先ほどの「大規模チャンネル且つ一般的なISPを使用しているユーザが大半の場合」の方法をベースとし、IRCサーバのI-Lineに有るgTLDなドメインを全てopしても無反応にするという設定をする方法、または、海外のドメインを全てdeop対象ということでボットに設定する方法があります。

次に、ボットの基本的な動作を挙げましょう。
op を持っていても問題ないマスクのユーザが、不正なマスクのユーザに op を配った場合配った側も配られた側も deop するというのが一番無難です。
何故か理由を挙げると、2番目及び3番目の項目が該当しますが、ユーザになりすまし op を取得した後、自分自身のボットを大量にチャンネルにJOINさせ、自分自身のボットに op すると言う動作が次に行われます。それを防ぐという目的です。なので、ボットから見て攻撃者に op を配る人は全て攻撃者側一味だと判断をします。この段階で防げないとチャンネルは奪われてしまいます。

※サーバスプリット:IRCサーバはツリー上に繋がっているが、そのサーバ同士の接続(リンク)が切れた状態のことを指します。

fake mode とは何か?

fake mode とは、サーバスプリットから復帰した直後に発生することが稀に有ります。原因は、サーバスプリットから復帰した直後は一時的に、IRCサーバの負荷が高くなってしまい、その直後に、kick や deop 等を行ったとき、相手のサーバに伝わらない事があります。厳密に言えば、復帰した直後、IRC 自体に遅延が発生しており、情報が伝わる前に各々のサーバにて kick や deop 等を行った場合、チャンネルに参加しているユーザ情報に不一致が発生するというです。動作例として、スプリット復帰後、njoin してきたユーザに対して、Aのサーバ側でも kick を行い、Bのサーバ側kickを行い、両者のサーバで不一致のおっている状態のことを言います。

実際にチャンネルを乗っ取る時のケースでは、「サーバスプリットを利用し、op権限を持ち込む方法」に該当しますが、具体的な方法は、サーバがスプリットしている状態の場合、AとBのサーバでは別々の独立したチャンネルとして見えます。しかし、サーバのリンクが復帰したとき、各々のチャンネルに居た人は、復帰した時点で一緒になります。そして、この瞬間を乗っ取る側/防衛する側は利用するのです。
また、乗っ取る側は、予めスプリットしているときに攻撃態勢を整え、復帰したときに一斉にkick/deop等を行います。先ほど述べましたように、復帰した瞬間はサーバの負荷が高く、片方にのみ情報が伝わって(もう片方は遅れて情報がやってくる)くるケースがあり、そのときに、kick等を行うと、情報の不一致が発生しやすくなります。

その他で fake が起こりうる可能性としては、ボット等が大量に且つ素早い動作を行った場合、情報が伝わりにくくなり、fake を起こす可能性も有ります。

※ njoin とは、サーバ間で使用されるものであり、スプリット復帰時などに mode 付で JOIN してくる状態のことを言います。(厳密には違うのだが…)詳細は、RFC 2813 4.2.2 NJOINメッセージをご覧下さい。

Copyright (C) 1998-2004 tomocha
Last update: 2004-07-08
tomo@gyojya.jp