ユーザ用ツール

サイト用ツール


sshd_invaliduser_201511

文書の過去の版を表示しています。


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位

$ cat *.log | grep sshd | grep "Invalid user" | awk '{print $8;}' | sort | uniq -c | sort -nr | head -20
 373 admin
 183 oracle
 176 ubnt
 147 test
 121 teamspeak
 112 git
  98 minecraft
  92 teamspeak3
  90 ftp
  82 nagios
  81 user
  70 deploy
  62 jenkins
  61 support
  58 wordpress
  58 hadoop
  56 pi
  55 guest
  55 demo
  54 ts

表にしてみる

順位sshd不正アクセスユーザ名件数
1admin373
2oracle183
3ubnt176
4test147
5teamspeak121
6git112
7minecraft98
8teamspeak392
9ftp90
10nagios82
11user81
12deploy70
13jenkins62
14support61
15wordpress58
16hadoop58
17pi56
18guest55
19demo55
20ts54
-合計2084

上位20位の合計件数で,全体の約84%にあたる.

admin ユーザ,いわゆる管理者ユーザ名として “admin” と言う名称を用いるのは想像に難しくない.

興味深い点としては,第3位の “ubnt” ユーザ名である.

私はてっきり Linux ディストリビューションの ubuntu の略かと思ったのだが,“ubnt ssh server” で検索すると,どうも異なるようだ.

他,目立つものとしては,“oracle”,“teamspeak”,“git”,“minecraft”,“wordpress” と言うように,ソフトの名前がそのままユーザ名として扱われている.

これも,これらのサーバを稼働させる時に,非rootで稼働させたいが,良いユーザ名が思いつかない時に,安易にソフト名をユーザ名にするのは想像に難しくないので,そのようなユーザ名が狙われているのだろう. あるいは,何らかの設定テンプレートにあるユーザ名をそのまま使っているのかも知れない.

17位にあるユーザ名 “pi” は,Raspberry pi 向け Linux ディストリビューションの一つである Raspbian の標準ユーザ名が “pi” であり,それが狙われていると思える. Raspbian の “pi” ユーザ名は,標準のパスワードは “raspberry” なので,特に何もケアせずに Raspberry pi で Raspbian イメージを動かしてインターネットから見える所に置くと,即不正アクセスされるだろう.

対策

まず,当然のこととして,インターネットから見える所で sshd を動かしているならば,sshd への認証は公開鍵暗号方式のみとするのが良いだろう.

管理者アカウント(それこそ admin)を複数名でログインして作業する必要がある場合は,作業者ごとに ssh 鍵ペアを作成し,公開鍵を authorized_keys に登録すればよいだろう.

そうすれば,もし誰かの作業者の秘密鍵が流出したとしても,その作業者の公開鍵のみを authorized_keys から消してしまえば,他の作業者の鍵はそのまま使える.パスワードを変える必要もない.

とは言うものの,公開鍵がない場合のバックアップ手段としてパスワード認証を使いたい場合や,私のようにズボラな人間(!!)がパスワード認証を使いたい場合がある.

また,ssh クライアントを搭載した IoT 機器が,どこかの ssh サーバにトンネル等を張りに行くような場合,その IoT 機器に ssh の秘密鍵を置くと,その IoT 機器自身が盗まれて中身を見られると,ssh 秘密鍵そのものが抜き取られるリスクが考えられる.

IoT 機器自身が ssh クライアントになる時は,その IoT 機器には秘密鍵を置かずにパスワード認証の方が良いかもしれない. 当然,秘密鍵にはパスワードを設定できるが,IoT 機器の場合,自動接続したいので秘密鍵にパスワードを入れない運用も考えられるし,秘密鍵が抜き取られたら,理屈ではネットに繋ぐこと無く,その秘密鍵に対して総当り攻撃が仕掛けられてしまうかもしれない.

sshd_invaliduser_201511.1447515326.txt.gz · 最終更新: 2015-11-15 00:35 by tosihisa@netfort.gr.jp