マンションのLAN内のゲートウェイが中間者攻撃してくるお話

  • 154
    Like
  • 7
    Comment

来歴

私は去年、とある賃貸マンションへ入居した。
インターネットは無料で利用可能、壁の端子にLANケーブルを挿すだけ。

ただ、この物件のインターネット回線がおかしい。1日に1回くらい、Webサイトを閲覧しようとしたときに、マンションの管理会社のホームページへリダイレクトされる現象が起きる。

イメージとしてはこんな感じ。

redirect.png

東京の天気が表示されるべきなのに、入居者用Webページのログイン画面へリダイレクトされる。

腹が立ったので今年の5月くらいに現象を調べ、原因がわかったことで満足していたが、重い腰を上げて結果を以下の記事にして公開する。改めてGoogle先生に聞いたら、同じことで悩んでいる人がいた。

自動リダイレクトの回避方法について。
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q10165027165

 
 

なお、後述の図には、いらすとやさんの素材を使用させていただきました。
http://www.irasutoya.com/

何が起きている?

宅内からインターネット側へのHTTPリクエストに対して、 稀に どこかのルータ、L3スイッチ or ゲートウェイがマンションの管理会社のHPへ飛ばすようなHTTPレスポンスを返してくる。なお、レスポンスを返している箇所は特定できなかった。

※稀に:
  ブラウザでの画面遷移100回に1回くらい。正確に計った訳ではない。
 

もうちょい詳しく

パケットキャプチャで分かった流れを書く。
今回のリダイレクトは、財務省のHP http://www.mof.go.jp へアクセス時に発生した。

(1) http://www.mof.go.jp へアクセスしようとしたところ、成りすましレスポンスにより http://172.254.99.231:10080 へリダイレクトされた。

(2) http://172.254.99.231:10080/ へアクセスすると、今度は http://myd-room.jp/users/home へリダイレクトされた。

(3) http://myd-room.jp/users/home では、 https://nyukyo.myd-room.jp/users/home へリダイレクトされる

(4) 冒頭の入居者用ホームページが表示される。

(2), (3), (4) は特に問題無い。
今回、問題なのは (1) だ。私のリクエストに対して財務省のホームページではなく、通信経路上の何かが成りすましてHTTPレスポンスをしている。

図示するとこんな感じ。

access_redirected.png

 

通常のレスポンスを見てみる

まずは http://www.mof.go.jp/ へアクセスした際の通常のレスポンスを見てみ
よう。

response:
HTTP/1.1 200 OK
Date: Sat, 21 May 2016 17:38:42 GMT
Server: Apache
Last-Modified: Sat, 21 May 2016 15:01:04 GMT
ETag: "6886-5335b79f910f5"
Accept-Ranges: bytes
Connection: close
Content-Type: text/html
Content-Language: ja
X-Pad: avoid browser bug
X-Iinfo: 8-78509226-78604082 NNNN CT(17 -1 0) RT(1463852029081 293431)
q(0 0 0 -1) r(0 0) U5
X-CDN: Incapsula
Content-Encoding: gzip
Transfer-Encoding: chunked

(HTMLはgzip圧縮されている)

AkamaiかどこかのCDN使ってるはず。特に言うことはない。

図示してもこんな感じ。フツーのHTTPリクエストとレスポンスである。
access_normal.png

成りすましされた際のレスポンスを見てみる

次に、(2) のレスポンスを見てみよう。http://172.254.99.231:10080/ にリダイレクトされる。

response:
HTTP/1.1 200 OK
Cache-Control: no-store, no-cache, must-revalidate
Pragma: no-cache
Cache-Control: post-check=0, pre-check=0
Content-Length: 828
Connection: close
Content-Type: text/html; charset=EUC-JP

<?xml version="1.0" encoding="EUC-JP" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-JP" />
<meta http-equiv="refresh" content="0;
URL='http://172.254.99.231:10080/'" />
<title>
</title>
</head>
<body>
<form id="redirect" method="post" action="http://172.254.99.231:10080/">
<script type="text/javascript">
.document.getElementById("redirect").submit();.</script>
<noscript>
<div style="text-align:center">
<br /><br />
<input type='submit' name="button" value='' />
</div>
</noscript>
</form>
</body>
</html>

HTTPレスポンスヘッダからして明らかに違う。そして 172.254.99.231:10080 には何が居るのか?

 

172.254.99.231:10080 で動いているサービス

172.254.99.231は、恐らくLANからインターネット側へ出る際のゲートウェイであるが、HTTPサーバが動いている。単純に、HTTPレスポンス 302を返してくるので、アクセスした者は http://myd-room.jp/users/home へ遷移させられる。特殊なプロトコルを使っている訳でもないし、これ自体は問題無いので、リクエストとレスポンスだけ載せる。

request:
GET / HTTP/1.1
Host: 172.254.99.231:10080
User-Agent: Mozilla/5.0 (Windows NT 5.1; WOW64; rv:46.0) Gecko/20100101
Firefox/46.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ja,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: keep-alive

response:
HTTP/1.1 302 Found
Cache-Control: no-store, no-cache, must-revalidate
Content-Length: 0
Pragma: no-cache
Location: http://myd-room.jp/users/home
Connection: close
Content-Type: text/html; charset=EUC-JP

後は入居者用ホームページに遷移するだけなので省略する。

何故、中間者攻撃を行う?

これは立派な中間者攻撃です。リダイレクト先がまだ入居者用Webサイトなのでいいけど、マルウェアの配布サイトにリダイレクトさせることもできる。こっそり広告を突っ込むこともできる。

D.U‐NETさん、何でこんなことするんだろうか。さっぱり理解できない。

 

平文で通信する私が悪い?
全くその通りなので、もう全部HTTPSで通信しますうー。

公衆Wi-Fiでもよくある手法だと思う。都バスの車内Wi-Fiで体験した。DNSリゾルバーに細工して別のアドレスに誘導する。

この場合は、不特定多数に開放しているため、メールアドレスを登録させることで犯罪抑止や追跡できるようにすることを目的としていると思う。(ザルだけど)

そのマンションの場合の目的は広告でないだろうか。広告を見るならタダ(あるいは廉価)でサービスを提供するというビジネスモデルはもはや珍しくないし、デジタルサイネージ付きの冷蔵庫がタダなんていう話題もあったくらいだし。

それから、HTTPSで通信しても解決しない。暗号通信に入る前のDNSが原因だから。むしろChromeなどのブラウザーは、誘導された先のサーバーの署名が違うことに気づいて大騒ぎして厄介なことになってしまう。だから、最初は大人しくHTTPでマンションの広告?に付き合ってあげるのがよいと思う。

67contribution

しかもこの回線、下り数MBで上がり数十MBという明らかに規制か検閲してる感じがするので私はWiMaxを買いました。

85contribution

考えをあたかも常識のように書いて押し付けてくるコメントがあって怖いインターネットですね

157contribution

Captive portalは存じてますし、プロバイダ側の対応も電気通信事業法上の問題はないでしょう。(これが問題だと空港とか全部アウトになっちゃう。入居者に対してやってることのマナーが良い悪いは別のお話。)

この投稿は、まさかマンションの中でやられるとは思いませんでした、というお話です。

問い合わせたところ、入居者用サイトを定期的に案内することで、入居者サービスの充実を目標としたものだそうです。既に物件からは退去してしまったので、これ以上申し上げることはありません。

LAN内のDHCPサーバーから指定されたDNSサーバはGoogle public DNS(8.8.8.8)、セカンダリはNTTのpublic DNSサーバだったかな。

通信経路でHTTPに介入してくるので、DNSサーバーをどうこうでは対処できません。介入をさせたくなければ、HTTPS、VPN等の暗号通信を使わないといけません。

いや、VPNはともかくとして、HTTPSで介入が防げるならその方法が知りたい。

364contribution

DNSサーバを内部に建てるしかないね。

0contribution

そもそも172.254.99.231ってプライベートIPアドレスじゃないよね。