不正ログインの攻撃はどこからきて、どんなパスワードを試しているか

このときに設置した Crazy Bone ですが

あっという間に何万という不正アクセスの試みが記録されていました。
これはおそろしい。

放置してみた

ただ、
「これはおそろしい」より
「これはおもしろい」の方が大きかったので、
特に防止策はとらずに放置してログを積み重ねてみました。

それを集計してみたら、いろいろ面白いものが見えたので書いてみます。

不正ログインのアクセス元

アクセス元の国と地域上位10件です。

Russian Federation 57.79%
Taiwan; Republic of China (ROC) 4.08%
Japan 3.76%
Ukraine 2.64%
Turkey 2.13%
Seychelles 1.99%
Thailand 1.76%
India 1.61%
United States 1.54%
Mexico 1.42%

もう圧倒的にロシア。全体の57.79%。おそロ(自粛)

日本も3位に入ってました。
これは日本のサーバに置かれた日本語のブログだからなのか
日本にある多くのサーバが攻撃者の手に堕ちているのか。

6位の Seychelles というのはセーシェル共和国ですね。

セーシェル – Wikipedia

アフリカ大陸から1,300kmほど離れたインド洋に浮かぶ115の島々からなる国家

ここです。


大きな地図で見る

地図をズームアウトしてみたんだけど、引いても引いても海。
ズームアウトボタンを7回押したらやっとソマリアの一部が見えてきました。
この島国でいったい何が起きているのか。

ユーザーエージェント

不正アクセスに使われたユーザーエージェントの上位5件。

Mozilla/5.0 (Windows NT 6.1; rv:19.0) Gecko/20100101 Firefox/19.0 43.35%
Mozilla/5.0 (Linux; U; Android 2.2) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 39.74%
Mozilla/5.0 (Windows NT 5.1; rv:11.0) Gecko Firefox/11.0 13.54%
Mozilla/3.0 (compatible; Indy Library) 1.13%
Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.8.131 Version/11.10 0.39%

なんと2位までで83%、3位まで入れたら97%。

もうこの3つをブロックしておけば大半の攻撃は防げるんじゃないかな。

  • Mozilla/5.0 (Windows NT 6.1; rv:19.0) Gecko/20100101 Firefox/19.0
  • Mozilla/5.0 (Linux; U; Android 2.2) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
  • Mozilla/5.0 (Windows NT 5.1; rv:11.0) Gecko Firefox/11.0

狙われたユーザー名

不正ログインの試みに使われたユーザー名上位5件。

admin 71.36%
administrator 10.48%
support 5.53%
msng 3.95%
adminadmin 3.76

やっぱり admin が圧倒的だったけど、他のものも狙われてますね。
msng があるのは、ドメイン名を見ているのか、
かつて使われていたユーザー名だからなのか。

狙われたパスワード

これは多岐にわたるので、順位や割合より
どんな型のものがあるか、を見た方がおもしろいと思います。

たくさん狙われているということは
攻撃者の辞書に載っているということで、
もちろん危険であると同時に
使われがちであると思われるものですね。

  • そのまんま型

    もうそのまんまじゃないか、というやつ。

    • admin
    • password
    • pass
    • test

    など。

    仮にテストのつもりであっても、
    ユーザー名が admin でパスワードが password
    なんてことにしちゃってるサイトがあったら即死です。

  • そのまんま型(亜種)

    そのまんま型から、ちょっとだけ工夫したやつ。

    • password1
    • adminadmin
    • passw0rd

    こんな小細工は通用しない、ということですね。

  • alphanumeric 型

    アルファベット順とか数字順とか同じ英数字の繰り返しとか。

    • 12345
    • abcdefg
    • 7777777
    • abcd1234

    まあもってのほかです。

  • qwerty 型

    キーボードの並び順をつかったやつ。
    よく使われているキーボードの配列はこうなってますよね。

    1234567890
     QWERTYUIOP
      ASDFGHJKL
       ZXCVBNM

    この並びをパスワードとしてつかっているやつ。

    • qwerty
    • 1qaz2wsx
    • fghjm
  • 2つめのは縦並びのキー。

    1234567890
     QWERTYUIOP
      ASDFGHJKL
       ZXCVBNM

    3つめのはちょっと工夫してて
    最後に1段ずらしてるんだけど、

    1234567890
     QWERTYUIOP
      ASDFGHJKL
       ZXCVBNM

    そんなことしても無駄だということがわかります。

  • 一般名詞型

    だから辞書に載ってる言葉はダメだとあれほど。

    • monkey
    • soccer
    • shadow
    • falcon

    6文字の単語が多いのは
    「パスワードは6文字以上で」と指定してるサービスが多いからかな。

  • ここには書けない型

    • (アルファベット4文字)
    • (アルファベット4文字)you

    お察しください。

  • ちょいひねり型

    少し捻った文字列になってるのもよく狙われてました。

    • letmein
      Let me in ですね。
    • trustno1
      Trust No.1 だと思いますけど、このパスワードで何を信頼 (trust) しろというのか。
      これ “Trust no one” (誰も信じるな) だそうです。The X-Files に出てきたそうで。
    • 4815162342
      LOST というドラマに出てきた謎の数字だそうです。知らんけど。

まあ何にしても、
短いのや推測可能な文字列やそれをちょっとひねったようなやつでは
突破される可能性が高いということですね。

そして栄えある第1位は

  • batman

なぜかバットマン。しかも断トツ。
何かそういうエピソードあったかなあ。
これ理由わかる人いたら教えてください。

集計につかったやつ

WordPress のデータを使うんだから本当はプラグインにした方がよさそうだし
そもそも Crazy Bone のデータ集計なんだから
Crazy Bone の プロジェクトにまぜていただけるといいんだけど、
これ PHPMatsuri というハッカソンで書いたやつで
その後発表が控えていたので単体のアプリケーションとして作りました。

サンプルはこちら。

GitHub に置いてるので、
自分のとこでもやってみよう、という方は
ご自身の責任に基づいてご自由にお使いください。

いやそんなことより、何かマズいとこあったら教えてください。

対策するなら

不正アクセスを防止するプラグインもありますし、
WordPress やウェブサーバの設定である程度防ぐこともできますし、
それについては @wokamoto さんのブログが参考になるのでこちらへ。

いや「対策するなら」じゃなくて、ぜひとも対策してください。

このブログは興味本位でログ取ってみましたけど、よい子はマネしないでね。

  • このエントリーをはてなブックマークに追加