チャンネルの乗っ取りの防衛

1.留意事項

このページはIRCチャンネルの乗っ取りに対する防衛を目的として公開しているものであり、チャンネルの乗っ取りを助長する目的で公開している訳ではありません。
チャンネルの乗っ取りを行う際にオペレータ権限を持っているユーザへのサービス拒否攻撃(DoS)やウイルスなどの悪質なプログラムを利用した分散DoS(DDoS攻撃)などを行うと違法となる可能性がありますのでご注意下さい。

2.乗っ取りの手順

チャンネルの乗っ取りは一般的に次のような手順で行われます。

  1. 何らかの方法でオペレータ権限を取得する。
  2. チャンネルから他のオペレータを追い出す。
  3. 今までチャンネルを利用していたユーザを入れなくする。

3.チャンネルの防衛

このセクションではIRCチャンネルの乗っ取りに対する防衛方法を解説します。

3-1.防衛の基本

オペレータ権限を持ったユーザはチャンネルを管理する権限を持ち、他のオペレータを排除すれば完全にチャンネル支配することができます。
チャンネルの防衛の際に最も重要なのは、信頼できる人物にしかオペレータ権限を配布しないことです。

3-2.ニックネームを信用しない

何度かチャットをした事があり信頼している人物が入ってきた時にニックネームを見てオペレータ権限を配布していませんか?
誰でも入れるチャンネルではログを眺めるとオペレータ権限が配られているユーザを知ることができます。
また、IRCのログイン名やニックネームはクライアントの設定で簡単に偽ることが出来てしまいます。
その為、特定の人物のログイン名やニックネームを偽ってオペレータ権限を奪う方法が頻繁に使われています。
この攻撃に対する防衛としては、IPアドレスだけでは無くリモートホストを確認することが重要です。
また、その作業を簡単に行うためには LimeChat の自動オペレータ機能やChocoaのスクリプトなどを利用すると良いでしょう。

3-3.自動オペレータ設定のリモートホストの範囲を限定する

IRCクライアントの自動オペレータ設定のマスク設定を行う際にはリモートホスト(またはIPアドレス)の範囲を限定して指定することが大切です。
例えば、LimeChatの自動オペレータ機能の自動マスク設定を利用した場合には次のようなマスクが設定されます。

*!~username@*.bbtec.net

しかし、これではログイン名を偽る事で Yahoo! BB の利用者ならば誰でも自動オペレータ設定の対象となってしまいます。
従って、次のようなマスクを利用してリモートホストの範囲を限定すると良いでしょう。

*!~username@YahooBB123123123*.bbtec.net

また、Yahoo! BB などのリモートホストが変動しにくいプロバイダの場合には次のようにワイルドカードを使用せず完全なリモートホストを指定したマスクにすると更に安全になります。

*!~username@YahooBB123123123123.bbtec.net

3-4.クライアントは最新のものを使う

IRCクライアントの脆弱性を利用して他のチャンネルオペレータを追い出したりすることが行われています。
JOINしている人数が少ない場合にはクライアントの脆弱性を利用して全員を追い出してオペレータ権限が奪われることもあります。
IRCクライアントの配布元のページを定期的に確認して最新のものを利用すると良いでしょう。

3-5.不要な機能は無効にする

IRCクライアントの機能を悪用しサーバから切断させる攻撃が行われる可能性があるので不要な機能は無効にすると良いでしょう。
例えば、もしCTCPを利用しない場合には無効にする事で、ソフトの種類の取得(Version)しての攻撃先の選別や連続的にCTCPを送信するDoS攻撃を阻止する事が出来ます。
ちなみに、LimeChat や Chocoa では CTCPを利用したDoSにはある程度耐性があります。

3-6.攻撃している人がいたらオペレータ権限を奪う

オペレータ権限の破棄(-o)コマンドはIRCNETでは同時に3人に対して行うことができ、一度コマンドを送信すると一定時間(数秒間)は再度コマンドを実行しても受け付けてくれません。
オペレータ権限を大勢の人から奪って乗っ取りを試みている人を発見した場合には、すぐにその人物からオペレータ権限を奪うようにしましょう。
また、オペレータ権限が奪われた人に対してオペレータ権限の発行(+o)を行うことも大切です。
ただし、リアルタイムで攻撃を目撃している人が居ない場合は防衛できない可能性が高いので、知識がある方は管理用ボットを常駐させる事もお勧めです。
しかし、攻撃者がオペレータ権限を保持した時点で手遅れになる場合も多いので、攻撃者にオペレータ権限が渡る前の段階で阻止するのが良いでしょう。

3-7.サーバスプリットに注意する

IRCサーバ間のリンク切れ現象であるサーバスプリットを利用して攻撃者がオペレータ権限を確保することがあります。
昔に比べてサーバソフトの改良によりサーバスプリット時には1人になってもオペレータ権限が配布されないスプリットモードになる仕様となっているのですが完全とは言えない状況です。
サーバスプリット回復時に不信な人物がオペレータ権限を持ってきた場合にはすぐにオペレータ権限の廃棄(-o)をすると良いでしょう。