さて、それではそろそろ、冒頭で予告した本連載のテーマである、DNS、Android、Twitterのうち、DNSの統計についてお話を始めたいと思います。まずは下のグラフを見てください。
これは、世界中のDNSサーバにバージョン番号を問い合わせたときに返ってくるメッセージ(バナー)を内容別に分け、それぞれの出現頻度を集計したグラフです。まさに先ほどお伝えしたロングテールの形になっているのがお分かりいただけるでしょう。
と、データの分析に入る前に、DNSの背景知識について簡単に説明しておきましょう。DNSは、Domain Name Serviceの略で、例えば「www.google.com」を「x.x.x.x」のようなIPアドレスに変換する「名前解決」の機能を持っています。そのため、DNSはインターネットの「基幹サーバ」といわれることもあります。また、「ある銀行のサイトにアクセスしようとしたら攻撃者のサイトに行ってしまった」といういわゆる「フィッシング」において、このDNSが悪用されることもあります。
ここまでは定本的な説明ですが、筆者は過去、Open Resolver Project関連の調査などに関わるうちに、全世界には少なくとも3000万台程度のDNSサーバがあることを突き止めました。そして調査研究の一環として、このDNSサーバ群にソフトウェアのバージョンを問い合わせた(「クエリを送る」といいます)結果のリストを作成した経験があります。上のグラフも同様の方法で作成したものです。詳しくは、筆者の名義で論文なども発表していますので、興味のある方はご参照ください。
さて、脱線が長くなりましたが、次に、先ほどのAmazonのお話で言うところの「ベストセラー」に当たる、返答メッセージのトップ20を見てみましょう。
| 順位 | メッセージ内容 | 出現回数 | 
|---|---|---|
| 1 | メッセージなし | 1247556 | 
| 2 | 9.3.6-P1-RedHat-9.3.6-20.P1.el5_8.6 | 691751 | 
| 3 | 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.4 | 485749 | 
| 4 | skbroadband | 420070 | 
| 5 | None of your business | 396461 | 
| 6 | N/A | 386215 | 
| 7 | dnsmasq-2.52 | 373710 | 
| 8 | 9.7.3 | 334493 | 
| 9 | dnsmasq-2.40 | 307141 | 
| 10 | Nominum Vantio 5.3.2.2 | 279730 | 
| 11 | DNS server | 257417 | 
| 12 | 220697 | |
| 13 | Go away! | 219481 | 
| 14 | TelecomItaliaDNS | 190405 | 
| 15 | none | 189512 | 
| 16 | Cyber World Leader Kornet! | 187606 | 
| 17 | Nominum Vantio 5.3.0.0 | 183930 | 
| 18 | 9.8.1-P1 | 178318 | 
| 19 | yamutech-bind | 176355 | 
| 20 | no version | 170368 | 
なにやら事情のありそうなメッセージもありますが、おおむねサーバのバージョンを返すものが多いようです。
ちなみに、バナーのリストから出現頻度の高いもの順に並べ替える際、pythonのCounterというcollectionsモジュールのメソッドを使いましたので、ここで併せて紹介しておきます(下記)。6行目から9行目で、データをリストに格納し、集計、並べ替えをしています。そして、11行目と12行目で、並べ替えたデータを順次表示します。
from collections import Counter
import sys
 
list=[]
 
for line in open(sys.argv[2], 'r'):
    list.append(line.rstrip())
 
counter = Counter(list)
 
for word, cnt in counter.most_common():
    print word, cnt
話を戻します。トップ20のメッセージを見るだけでもいろいろと語れそうですが、本稿で問題にしたいのはロングテールの部分です。そこでまずは、出現回数が3回以下のメッセージの数を調べてみました。
| 出現回数 | メッセージ数 | 
|---|---|
| 1回 | 7472 | 
| 2回 | 3649 | 
| 3回 | 1374 | 
1回しか出てこないメッセージを設定している管理者は、少し変わった人なのかもしれません。例えば、1回しか出現しないメッセージの中には、「Heren..」(管理者の恋人でしょうか?)とか、「it’s me」(管理しているサーバと自分を同一視している?)といったものがありました。
また、2回しか出てこないメッセージには以下のようなものがありました。
| メッセージの内容 | 出現回数 | 
|---|---|
| root@blasc.pl | 2 | 
| SierraDNS 2 | 2 | 
| Hmm.. | 2 | 
これらの場合、同一の管理者が2つのサーバを運用しているケースが多そうです。こうした管理者の方は”訳あり”で忙しい方(Hmm..)なのかもしれません。
この関連している2つのバナーを見て筆者の頭には、「こうした『珍しい』バナーを設定している人は、凝り性で、セキュリティへの意識も高い場合が多いのかもしれない」という仮説が浮かびました。反対に、ロングテールの左側にある頻度の高いバナーを設定している人(特に第2位)に、バージョン番号をそのまま設定してしまっている例が多いのは、忙しくて設定をおろそかにしているか、セキュリティ的な意識が低い場合が多いのかもしれません。
このように、ロングテールに着目すると、面白い傾向がいろいろと見えてきます。その一例として今回は最後に、「世界で1つだけのバナー(!?)」を設定しているサーバの国別統計を紹介しましょう。下記は唯一のバナーを設定しているDNSサーバの台数トップ15を国別に集計したものです。
| 順位 | 国名 | DNSサーバ数 | 
|---|---|---|
| 1 | アメリカ US | 525 | 
| 2 | ルーマニア RO | 307 | 
| 3 | ロシア RU | 293 | 
| 4 | 日本 JP | 236 | 
| 5 | ドイツ DE | 230 | 
| 6 | フランス FR | 164 | 
| 7 | ポーランド PL | 155 | 
| 8 | イギリス GB | 153 | 
| 9 | ブラジル BR | 118 | 
| 10 | ウクライナ UA | 108 | 
| 11 | 韓国 KR | 107 | 
| 12 | ニュージーランド NL | 104 | 
| 13 | 中国 CN | 75 | 
| 14 | カナダ CA | 62 | 
| 15 | スエーデン SE | 60 | 
日本はロシアに次いで4番目にランクインしています。サーバの設定にこだわりのある人が多いのかもしれません。どことなく国民性が感じられます。
しかしながら、一概に言うことはできませんが、バナーの設定という細部にまで「凝る」からといって、セキュリティ関連の設定もしっかりと行われているのかというと、そうでもないのかもしれません。例えば、下図を見てください。
日本をはじめとして、ウクライナ、韓国など、バナーに“凝っている”管理者の多い国が、同時にスパム配信国ランキングの上位にも登場しています。もちろん、単にメールの利用者が多いか少ないかということもあるでしょうし、DNSの設定とスパムメールの統計は単純には比較できないので、実際にはもっといろいろなデータを細かく見ていく必要があります。さまざまなデータを組み合わせて分析することで、さらに興味深い事実が透けて見えてくるのです。
というわけで今回は、DNSのバナー情報から見える管理者の傾向の一端を紹介しました。こうしたデータを他の情報とひも付けるなど、さらにマニアックに見ていくと、背後にある国家や管理者固有の「顔」が浮かび上がってきます。次回もDNS関連の公開情報を基に、より掘り下げたお話をしたいと思います。
Copyright © ITmedia, Inc. All Rights Reserved.