====== 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~~