ハニーポッター
インターネットはたいへんこわいところです。せかいじゅうのハッカー(パソコンをわるいことにつかうひと)がみんなのパソコンにいやがらせをしたり、ウィルスをおくってきたりします。
というわけで、今回はハニーポットの話と、少々。
何の対策もしないPCを放置すると、たちどころにヤられてしまうのは周知の事。itmediaだった気がするけれど、WindowsPCを放置したらどうなるか実験をやってましたね。ものの1時間でやられてたと記憶しています。
で、こういうのはWindowsの事がよく言われていますが、UNIX相手でも実はよくある話なのです。
近頃目立って多いのが、sshでアクセスし、あらかじめ用意されたユーザIDとパスワードの組でのログインを試すアタック。sshの接続元制限がなく、よくあるユーザ名にありがちなパスワードをつけていると、簡単にログインされてしまいます。
ファイアウォールやらIDSなんていうセキュリティ技術だけでなく、ソフトウェアの作りそのものがセキュリティ面を考慮した作りになっている昨今、rootのパスワードにrootと付けたばっかりに…なんて事例が本当にあります。(ちょっと話がそれるけれど、OpenSSHの標準設定が、あるバージョン以降 root でのログインを許すようになっている気がする。良い子は PermitRootLogin no にしましょう。)
そういうログインを試す輩はログインできたら何をするんだろう?
と、言うわけで試したよ。
結論から言うと、「さらなるダメサーバを探すプログラムを動かし始めた」でした。結果自身はつまんなかったけど、ログインを試行するためのユーザID・パスワードの組が面白かったので、記載。内容の重複を除いて全部で8526パターンあった。(約2500件は重複データ。sort | uniq ぐらいやればいいのに。)
- ユーザ名と同じパスワード(これは最低だね)
- ユーザ名+数字または数字+ユーザ名
このほか、そういう規則性のないものも一部。どこかで実際に使われていたパスワード、ということでしょうか。だいたいこんな傾向。
次に、どのアカウントが多く試されているかを調べたよ。上位から適当にコピペ。
3540 root 225 admin 24 uucp 24 bin 21 test 20 wwwrun 19 news 19 daemon 17 postgres 15 webmaster 15 man 15 apache
圧倒的にrootログインを試みる物が多いことがわかる。やっぱりSSHでrootログインを許可してはいけない。
root のパスワード試行パターンは3540個もあるだけに、その内容は様々。
root michael root michael. root Michael root michel root michele root michell root michelle
世界中のマイケルをターゲットにしたこんなものまで。コレはほんとにごく一部ですよ。
ずいぶん前に書いたパスワード生成スクリプトが出てきたので貼ります。
- 最初の文字に記号って嫌だなぁ(なんとなく)
- 1 と l と I , 0 と O はわかりにくくて嫌だなぁ
- @ とか # とか ( とか ) とか、そういう記号は嫌だなぁ
という仕様で書いたもの。これで作ったパスワードで何があっても責任は持ちませんよ(念のため)。
#! /usr/bin/perl # Create a password $passwd = &getpasswd; print "$passwd\n"; exit; sub getpasswd { my $retc=""; my @card1 = ( 'a'..'k', 'm'..'z', 'A'..'H', 'J'..'N', 'P'..'Z', '2'..'9', '2'..'9'); my @card2 = ( 'a'..'k', 'm'..'z', 'A'..'H', 'J'..'N', 'P'..'Z', '2'..'9', '2'..'9', '!', '?', '-', '_'); $retc = splice(@card1, rand @card1, 1); for ($i = 1; $i < 8; $i ++) { $retc .= splice(@card2, rand @card2, 1); } return "$retc"; }