DHCPのDDoS攻撃
DHCP(Dynamic Host Configuration Protocol)でのちょっと困ったお話しを紹介してみましょう。ProDHCPは回線事業者をはじめとして、大企業や大学などでも使っていただいています。ProDHCPはDHCPサーバ製品ですので、様々なDHCPクライアントからのリクエストを処理します。DHCPクライアントは、WindowsやMacOS,LinuxなどPCはもちろん、iPhoneやAndroid,WindowsPhoneなどのスマホ、ゲーム機、プリンターなど、様々なもので動いています。今どきのネットワークにつながる機器はほとんど全てDHCPクライアント機能を持っていると言えるくらいでしょう。それら端末もDHCPクライアントの実装によって様々な癖があり、インターネット向けのような幅広い端末を相手にした運用ではそれなりにノウハウが必要なのですが、一般ユーザがあまり意識しない機器としてルーターもDHCPクライアントにもなり、DHCPリレーエージェントという仲介機能も持ちます。このルーターがまた実に癖があります。
そもそも、DHCPの仕組みに関してはRFC2131を中心に、標準化の資料が公開されていますが、多くの記述は曖昧で、「**すべき」は良いとしても「**してもよい」など、実装に選択を持たせてしまう部分も多く、さらに基本的には文章で説明しているので、解釈にバラツキが出やすいのです。これはDHCPに限ったことではありません。その結果、DHCPクライアントやDHCPリレーエージェントは様々な癖を持ったものが存在してしまっています。さらに、ISCのフリーソフトがスタンダードとして広く使われているので標準かと思えば、シスコなどケーブルネットワークのインフラを構築するための機材を提供するベンダーが独自の規格を構築し、実に難解なしようになってしまっています。
癖くらいならまだ良いのですが、中には迷惑な機器も存在します。あるベンダーのルーターは、DHCPリクエストをサーバに送信し、想定時間内に応答が得られないと、あり得ないほどの頻度で再送を投げ続けるものがあります。DoS(Denial of Service attack)攻撃と言えるでしょう。社内や個人宅など、閉じた環境であれば大した問題にはなりませんが、回線事業者がDHCPサービスを提供しているケースでは、ある一台が暴走状態になり、リクエストを休みなく投げ続ける状態になると、DHCPサービス全体の流れが悪くなります。すると、他の同じベンダーのルーターが想定時間内に応答を得られなくなり暴走、さらに他のルーターが・・・と、連鎖的に暴走状態になり、DDoS(Distributed Denial of Service attack)攻撃のような状態になりDHCPサービス全体が停止するという障害が実際に起きているのです。そもそもルーターベンダーはそんなひどい機器を市場に出さないで欲しいということもありますが、修正ファームが提供されているかどうかも知りませんが、一般家庭ではファームアップデートなどまずしないでしょうし、回線事業者はとても困っているようです。
ProDHCPでは、数年前にDOS攻撃対策機能を回線事業者さんからのリクエストにより追加し、上記のような暴走ルーターを自動で検知して一定期間無視するような仕組みを持っています。この機能により回線事業者でDHCPサービス停止という状態にならずに運用できているところもあります。
ソフトウェアにバグはつきものかもしれませんが、インターネットにつながる機器であれば、自動ファームアップデート機能を持たせて、ユーザのITスキルに関係なく障害を解消できるような仕組みを持たせるなど、何らかの配慮が欲しいものですね。