====== sshサーバへの不正アクセスユーザ名の傾向と対策(2015年11月) ======
sshサーバ(sshd)への総当たり攻撃(Brute-force attack)は2015年の今では,珍しいものでもないが,総当り攻撃を仕掛けてくる側(クラッカー)が,どの様なユーザー名で総当りをしているのか少し調べてみることにしてみた.
私はインターネット上に2015年11月現在で4台サーバを設置していて,その 4台の sshd サーバのログから,どの様なユーザ名でアクセスを仕掛けてくるかを調べてみた.
===== 何種類のユーザー名でsshdに接続してきているか =====
$ cat *.log | grep sshd | grep "Invalid user" | awk '{print $8;}' | sort | uniq -c | sort -nr | wc -l
2464
2464種類のユーザー名でsshdへアクセスを仕掛けてきているようだ.
===== sshdへの不正アクセスユーザ名上位20位 =====
「sshd への不正アクセス」は,当初は上記と同じ方法で調べたが,その場合は root 等の様な存在するユーザ名に対しての情報は得られなかったので,「パスワード認証に失敗したユーザ」として調べる.上記の何種類のユーザ名かの調べ方とは少し異なるので注意.
$ cat *.log | grep sshd | grep "Failed password for " | sed -e 's/ invalid user / /' | awk '{print $9;}' | more | sort | uniq -c | sort -nr | head -20
485 root
150 admin
106 ubnt
47 test
28 user
26 support
20 pi
18 wordpress
13 oracle
11 guest
11 aaron
11 a
8 nmis
7 agsadmin
6 ftpuser
6 D-Link
5 vagrant
5 cisco
5 PlcmSpIp
4 postgres
表にしてみる
^順位^sshd不正アクセスユーザ名^件数^
|1|root|485|
|2|admin|150|
|3|ubnt|106|
|4|test|47|
|5|user|28|
|6|support|26|
|7|pi|20|
|8|wordpress|18|
|9|oracle|13|
|10|guest|11|
|11|aaron|11|
|12|a|11|
|13|nmis|8|
|14|agsadmin|7|
|15|ftpuser|6|
|16|D-Link|6|
|17|vagrant|5|
|18|cisco|5|
|19|PlcmSpIp|5|
|20|postgres|4|
root は UNIX系OSの管理者アカウント名で,数としてはダントツといえる.
admin ユーザ,いわゆる管理者ユーザ名として "admin" と言う名称を用いるのは想像に難しくない.
興味深い点としては,第3位の "ubnt" ユーザ名である.
私はてっきり Linux ディストリビューションの ubuntu の略かと思ったのだが,“ubnt ssh server” で検索すると,どうも異なるようだ.
7位にあるユーザ名 "pi" は,Raspberry pi 向け Linux ディストリビューションの一つである Raspbian の標準ユーザ名が "pi" であり,それが狙われていると思える.
Raspbian の "pi" ユーザ名は,標準のパスワードは "raspberry" なので,特に何もケアせずに Raspberry pi で Raspbian イメージを動かしてインターネットから見える所に置くと,即不正アクセスされるだろう.
"D-Link" や "cisco" はネットワーク機器への進入を試みようとしていると思える.
19位の "PlcmSpIp" は,何のユーザ名なのかは分からなかったが,どうも Polycom 製品で使われているユーザ名のようだ.
====== 対策 ======
まず,当然のこととして,インターネットから見える所で sshd を動かしているならば,sshd への認証は公開鍵暗号方式のみとするのが良いだろう.
とは言うものの,公開鍵がない場合のバックアップ手段としてパスワード認証を使いたい場合や,私のようにズボラな人間(!!)がパスワード認証を使いたい場合がある.
その様な場合は,あまり安直なユーザ名を用いないほうが良いだろう.
root は,とにかくリモートからの ssh は出来ないようにしておいたほうが良い.
ソフト名をユーザ名にするのは,そのソフトの標準の設定もあるかも知れないが,変更可能ならば変更しておいたほうが良いだろう.
また,昨今は Raspberry pi の様な小型 Linux-BOX を IoT 機器として運用するケースもある.その様な場合は,ディストリビューション標準のユーザ名は基本的に使わないほうが良いだろうし,いっそ,そのユーザ名は削除したほうが良いかもしれない.
ネットワーク機器は,標準出荷時設定のユーザ名のまま使うのは避けたほうが良いだろう.
「サーバが狙われる」のではなく,IoT機器でも何でも,ssh でリモートログインできそうな機械は,なんでも狙われると考えたほうが良いだろう.
~~DISCUSSION:off~~