問題解説:TOM

皆さんこんにちは!工学院大学大学院の増本奉之です。ICTSC7のTOM問題について解説をしたいと思います。

問題文

どうやら攻撃者が内部ネットワークに侵入しているらしい。内部向けサービスであるサイトhttp://aipo.tom.ictsc/aipo が正常に見られない時があるみたいだ。この原因を突き止めてほしい。

トラブルの原因

この問題はhttp://aipo.tom.ictsc/aipoにブラウザでアクセスすると怪しい入力フォームのサイトに誘導されます。
原因はVyOSを標的に行われたarpスプーフィングです。攻撃者は内部にいるという想定です。

VyOSはDHCPサーバ,DNSサーバとしても機能しています。クライアントはVyOSへ名前解決を行うよう要求しますが、VyOSは社内DNSへとその要求をフォワーディングしています。
このフォワーディング先のDNSサーバのIPアドレスとMACアドレスの対応が書き換えられてしまっているため、悪意あるDNSサーバに名前解決をフォワーディングしてしまっています。

解説

操作対象はVyOSのみです。よって攻撃者の排除は行えないので、ARPスプーフィング対策を行い、正しいDNSサーバへ名前解決をフォワーディングすることがゴールです。

VyOSでtcpdumpを行うと周期的にarp replyが送られてきていることが分かります。このarp replyによってVyOSのarpテーブルが書き換えられてしまっています。これを防ぐ方法は2種類あります。

1つ目の方法

1つ目の方法は、静的にarpテーブルを記述する方法です。arpingコマンドでDNSサーバのMACアドレスを確認すると、2種類のMACアドレスが確認できます。2つのMACアドレスのうち、どちらかが周期的に送られてくるarp replyの送信元MACアドレスと一致します。こちらが攻撃者のMACアドレスです。よって、もう片方のMACアドレスとDNSサーバのIPアドレスの対応付けを静的に記述すれば、arpテーブルを書き換えられることはありません。
:~# arp -s [IPアドレス] [MACアドレス]

2つ目の方法

2つ目の方法は、arptablesパッケージをインストールし、MACアドレスのフィルタリングを行う方法です。リポジトリの登録例からインストールまでは以下。

# set system package repository squeeze components main
# set system package repository squeeze distribution squeeze
# set system package repository squeeze url http://archive.debian.org/debian
:~# apt-get install arptables

インストールが終わったら以下のコマンドでMACアドレスフィルタリングを行います。

:~# arptables -A INPUT --source-mac [MACアドレス] -j DROP

ちなみにVyOSのfirewall機能(iptables)ではarpテーブルの書き換えは防げません。

最後に

TOM問題を回答するにはTAB問題・URA問題を解かなければいけません。この2つが難しくてTOM問題はあまり解かれませんでした。なのでTOM問題の難易度がどの程度なのかはわかりませんが、上記の2つよりは解きやすいかなと思います(1番最初の問題でもよかったかも)。
次回以降もICTSCには何らかの形で関わって行きたい思っています。
参加者及び関係者の皆様、本当にありがとうございました。