ホームページをブルートフォース攻撃から守りましょ
最終更新日: 2017/08/08 9:33am
こんにちは。経理の小高です。
川越も夏の休日。先日、日テレのZIPで「浴衣の町」として紹介されていました。川越の観光に携わる方々が以前から「着物」をキーワードとして頑張ってこられたのが、全国放送で流れるのは本当にすごいことだと感動しました。
ホームページもうれしい悲鳴。とくにゴールデンウイークと夏はアクセスが伸びます。
今日も朝からサーバーの調子を見ましたが、このホームページのサーバーは攻撃で「悲しい悲鳴」。
お客様にいろいろご提案する都合がありますので、Amazon Web Servicesで単独サイト(お客様のサイトとは分けたサイト)として運用しています。
最近、データベースからデータを盗み出そうとするアクセスがやたら多いなぁと感じます。やり方は単純に「手当たり次第にありそうなURLでアクセスしてくる」というやり方(URLを狙ったブルートフォース攻撃)です。
例えば、以下はログの一例です。なんとまぁ、同じアドレスから103回も「ありそうな(データベース管理ソフトの)URL」へアクセスしてはねられています。
[text]
[Fri Aug 04 07:42:00 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/mysql
[Fri Aug 04 07:42:01 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/mysql
[Fri Aug 04 07:42:01 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/mysql
[Fri Aug 04 07:42:01 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/phpmyadmin
[Fri Aug 04 07:42:02 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/phpMyadmin
[Fri Aug 04 07:42:02 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/phpmyAdmin
[Fri Aug 04 07:42:03 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/phpmyadmin2
[Fri Aug 04 07:42:03 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/phpmyadmin3
[Fri Aug 04 07:42:03 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/phpmyadmin4
[Fri Aug 04 07:42:04 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/2phpmyadmin
[Fri Aug 04 07:42:04 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/phpmy
[Fri Aug 04 07:42:05 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/phppma
[Fri Aug 04 07:42:05 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/myadmin
[Fri Aug 04 07:42:05 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/shopdb
[Fri Aug 04 07:42:06 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/MyAdmin
[Fri Aug 04 07:42:06 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/program
[Fri Aug 04 07:42:06 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/PMA
[Fri Aug 04 07:42:07 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/dbadmin
[Fri Aug 04 07:42:07 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/pma
[Fri Aug 04 07:42:07 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/db
[Fri Aug 04 07:42:08 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/admin
[Fri Aug 04 07:42:08 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/mysql
[Fri Aug 04 07:42:08 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/database
[Fri Aug 04 07:42:09 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/db
[Fri Aug 04 07:42:09 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/db
[Fri Aug 04 07:42:10 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/sqlmanager
[Fri Aug 04 07:42:10 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/mysqlmanager
[Fri Aug 04 07:42:10 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/php-myadmin
[Fri Aug 04 07:42:11 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/phpmy-admin
[Fri Aug 04 07:42:11 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/mysqladmin
[Fri Aug 04 07:42:11 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/mysql-admin
[Fri Aug 04 07:42:12 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/admin
[Fri Aug 04 07:42:12 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/admin
[Fri Aug 04 07:42:12 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/admin
[Fri Aug 04 07:42:13 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/admin
[Fri Aug 04 07:42:13 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/admin
[Fri Aug 04 07:42:13 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/admin
[Fri Aug 04 07:42:14 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/admin
[Fri Aug 04 07:42:14 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/mysql
[Fri Aug 04 07:42:15 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/mysql
[Fri Aug 04 07:42:15 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/mysql
[Fri Aug 04 07:42:15 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/mysql
[Fri Aug 04 07:42:16 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/sql
[Fri Aug 04 07:42:16 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/sql
[Fri Aug 04 07:42:16 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/sql
[Fri Aug 04 07:42:17 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/sql
[Fri Aug 04 07:42:17 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/sql
[Fri Aug 04 07:42:17 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/sql
[Fri Aug 04 07:42:18 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/sql
[Fri Aug 04 07:42:18 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/sql
[Fri Aug 04 07:42:18 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/sql
[Fri Aug 04 07:42:19 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/sql
[Fri Aug 04 07:42:19 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/sql
[Fri Aug 04 07:42:20 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/sql
[Fri Aug 04 07:42:20 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/sql
[Fri Aug 04 07:42:20 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/sql
[Fri Aug 04 07:42:21 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/db
[Fri Aug 04 07:42:21 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/db
[Fri Aug 04 07:42:21 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/db
[Fri Aug 04 07:42:22 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/db
[Fri Aug 04 07:42:22 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/db
[Fri Aug 04 07:42:22 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/db
[Fri Aug 04 07:42:23 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/db
[Fri Aug 04 07:42:23 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/db
[Fri Aug 04 07:42:24 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/db
[Fri Aug 04 07:42:24 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/db
[Fri Aug 04 07:42:24 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/administrator
[Fri Aug 04 07:42:25 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/administrator
[Fri Aug 04 07:42:25 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/administrator
[Fri Aug 04 07:42:25 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/administrator
[Fri Aug 04 07:42:26 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/administrator
[Fri Aug 04 07:42:26 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/administrator
[Fri Aug 04 07:42:26 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/administrator
[Fri Aug 04 07:42:27 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/phpMyAdmin2
[Fri Aug 04 07:42:27 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/phpMyAdmin3
[Fri Aug 04 07:42:27 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/phpMyAdmin4
[Fri Aug 04 07:42:28 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/phpMyAdmin-3
[Fri Aug 04 07:42:28 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/php-my-admin
[Fri Aug 04 07:42:29 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/PMA2011
[Fri Aug 04 07:42:29 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/PMA2012
[Fri Aug 04 07:42:29 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/PMA2013
[Fri Aug 04 07:42:30 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/PMA2014
[Fri Aug 04 07:42:30 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/PMA2015
[Fri Aug 04 07:42:30 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/PMA2016
[Fri Aug 04 07:42:31 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/PMA2017
[Fri Aug 04 07:42:31 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/PMA2018
[Fri Aug 04 07:42:31 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/pma2011
[Fri Aug 04 07:42:32 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/pma2012
[Fri Aug 04 07:42:32 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/pma2013
[Fri Aug 04 07:42:33 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/pma2014
[Fri Aug 04 07:42:33 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/pma2015
[Fri Aug 04 07:42:33 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/pma2016
[Fri Aug 04 07:42:34 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/pma2017
[Fri Aug 04 07:42:34 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/pma2018
[Fri Aug 04 07:42:34 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/phpmyadmin2011
[Fri Aug 04 07:42:35 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/phpmyadmin2012
[Fri Aug 04 07:42:35 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/phpmyadmin2013
[Fri Aug 04 07:42:35 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/phpmyadmin2014
[Fri Aug 04 07:42:36 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/phpmyadmin2015
[Fri Aug 04 07:42:36 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/phpmyadmin2016
[Fri Aug 04 07:42:36 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/phpmyadmin2017
[Fri Aug 04 07:42:37 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/phpmyadmin2018
[Fri Aug 04 07:42:37 2017] [error] [client 100.1.160.76] File does not exist: /var/www/html/phpmanager
[/text]
WordPressで制作しているサイト(こういうことは隠してもわかってしまいますので隠すだけ無駄です)ですから、裏にデータベース(普通ならMySQL、MariaDB)がいます。そのWeb管理ツールphpMyAdminの「ありえそうなURL」に来てるんですよね。
こういう「悪いアクセス」が昨日だけで、約13,000件ありました。このホームページのサーバーだけで、です。海外だけでみると最終的に経由したサーバー(アドレス)は23。上のアドレスはアメリカです。これらはすでに「ファイヤーウォール送り」になっていて、(弊社が管理するホームページ全部に対しても)二度とアクセスできません。
ブラジル | 4IPs |
アメリカ | 3IPs |
中国 | 2IPs |
ポルトガル | 2IPs |
フランス | 2IPs |
イタリア | 2IPs |
イギリス | 1IP |
ポーランド | 1IP |
トルコ | 1IP |
スペイン | 1IP |
カザフスタン | 1IP |
シンガポール | 1IP |
ドイツ | 1IP |
攻撃する人はここに住んでいるわけではなくて、ここを経由してきたことを表しています。
メンテナンスをしていると、共用サーバーの方がたくさんこのようなアクセスがあります。当然、他の種類の攻撃トラフィックも多いはずですね。(探知できない攻撃トラフィックもあります)
共用サーバーにはいろいろな会社のホームページが入っていますから、1回破ってしまえば美味しいと考えるのでしょうか?
それと、こういう攻撃は正確には「ホームページのアドレス」を狙ってくるわけではないんです。そういうケースもありますが、見ている限り「共用サーバーそのもののURL」を狙ってきます。たとえば、レンタルサーバーを契約すると「あなたの使っているサーバーはxxxxx.xxxxx.ne.jpです」とか契約画面にでますよね。この「xxxxx.xxxxx.ne.jp」を狙ってやってきて、そこにぶら下がっているサイトの情報を盗んだり、壊したりしようとします。
なんでかというと、ちょっと専門的な話になります。
サーバーというのは、「世界でただ1つの名前(ホスト名)」を持っています。サーバーには1つ以上のネットワークカードがくっついていて、そのカードにIPアドレスが割り当てられます。
DNS(ドメインネームサーバー、サービス)という言葉をご存じの方がいらっしゃるかもしれませんが、DNSはホームページで使われるようなURL(ホスト名、ドメイン名)からIPアドレスを回答してくれるサービスです。これを正引きといいます。逆に、IPアドレスからドメイン名を教えてくれるサービスをrDNSといいます。(逆引きといいます)
大抵の場合、rDNSは「サーバーそのものの名前(ホスト名)」で登録されています。これは、(実用的には)そのサーバーからスパムメールが送られないような仕組みにrDNSが利用されているからです。
難しいですけど、あと少しです。
手元にパソコンからあったら、コマンドプロンプトで「ping www.eranger.co.jp」とうってみてください。IPアドレスは「54.92.98.105」と出るはずです。
今度は「nslookup 54.92.98.105」と打ってみてください。
名前: www17.erangerltd.net
Address: 54.92.98.105
と出ますね。このwww17.erangerltd.netというのが、このホームページのサーバーの「世界で1つの名前」です。このサーバーにはうちのホームページしか入っていませんが、共有サーバーの場合には、この下にたくさんのサイトが入っているわけです。
上のような攻撃は、www.eranger.co.jpではなくて、www17.erangerltd.netに向けてやってきます。これも(専門的には)合理的なやりかたです。サーバーをつくるとき、サーバーのホスト名でもアクセスするルートを作っておく(デフォルトのルート)と便利なことが多いからです。たとえば、(攻撃者が狙っている)データベース管理ツールなどは、このデフォルトのルート、もしくはそのエイリアス(別名)でアクセスすることが多いだろうと思われます。
レンタルサーバーもこういったことを考慮して運営されているわけですが、(自分のような専門の人間から見ると)ちょいと怖い、と思ったりします。
←「Raspberry Pi3 Model Bを初期設定する」前の記事へ 次の記事へ「Spam spam spam - そのメール、差出人は大丈夫ですか?」→