2日前のことです。異常な数のメールが特定のディレクトリから送信されているとサーバー監視システムから警告がありました。ログを見ると確かにその通りで、これはもうスパムです。もっとも、あまり大量のメールは一時に送信できないようにサーバー設定をしているので、それほどえげつない量ではありませんでした。それでも、一息で100通ぐらいは出してます。はい、深刻度は低いですが、クラッキングされてますね。お客さん2社のアカウントでした。
 
hacker10ちょっと待て。RDシステムズのサーバーは異常に堅牢で安定しているはずなのに、どうしてこんなことが起こるのか?弊社は「堅い堅い詐欺」なのではないか?…などと慌てないで下さいね。こういうことがあるのです。このクラッキングの原因は何だと思われますか?
 
1) サーバーにセキュリティホールがあった
2) Linuxにセキュリティホールがあった
3) サーバーにアカウントを持つお客さんが使うプログラムに穴があった
 
正解は3)です。1)も2)も全く無問題でも、3)が問題であれば、そのウェブサイトには穴が開くことになるのです。サーバー内にアカウントを持ってサイトを運営するお客さんが、独自に導入したシステム/プログラムの上に何らかのセキュリティの穴があれば、そこをハッカーたちが突いてしまう、ということです。
 
さらに言うと、そのお客さんのアカウントだけがクラックされるならまだましで、OSの設定いかんでは、そこから他のお客さんのアカウントへも広がり、問題のないウェブサイトを持つお客さんのホームページが書き換えられる…なんてこともある。これはOSのファイル・プロセス管理のチューニングでかなり防げますけど。
 
実は、こういうケースが多々あるため、何百もの顧客のアカウントを1サーバーに詰め込む激安系のホスティングは不安なのです。だって、どれほどホスティング業者が気をつけてサーバーを管理しOSをアップデートしても、1人のユーザーの不注意で穴が開き、それが他へと広がる可能性があるのですから。要するに、サーバー内のユーザーの数が増えれば増えるほど、単純にリスクが「掛け算」で高まることになります。
 
今回のケースでは、2社とも共通して、人気の高いCMS(コンテンツ管理システム)のJoomlaを用いていました。さて、ここで再度尋ねましょう。
 
1) Joomlaにセキュリティホールがあった
2) Joomlaの設定が甘かった
3) ユーザーが入れた機能拡張のプログラムにセキュリティホールがあった
 
ここでも正解は3)です。1)ですが、Joomlaは非常に優れたシステムであり、高度なセキュリティ技術を持つ開発者がチームにうようよいるのみならず、セキュリティパッチの更新なども迅速です。よって、他のCMSと比較して甘いなどということは全くありません。2)ですが、デフォルト設定でシステムを使っていても特に問題になることはないでしょう。変な設定をするよりは遥かに。やはりここでも、ユーザーが独自に判断して導入した機能拡張のための部品が、穴を作ったことになります。
 
実際、今回の2ケースでも、Joomla本体が最新版ではなかったですが、特にセキュリティホールに問題のあるバージョンでもありませんでした。もちろん、すぐに最新版にアップデートしておきましたけどね、神経質なので。それにしても、CMSの特徴でもある、好みに応じて柔軟に機能拡張ができるという点が、皮肉にも脆弱性を引き起こしているのですね。もう少し詳しく書きましょう。
 
この機能拡張は、extension/エクステンションやtemplate/テンプレートと呼ばれるファイル群によって行われます。細かく言えばextensionも、module/モジュール、plug-in/プラグイン、component/コンポーネントと分かれますが、それらはどれもプログラムの一種です。特定の便利な作業を行うための命令がぎっしりと詰ったファイルで、その多くはネット上で無料でダウンロードして利用することができます。この仕組みは、WordPressだろうが、いま世界中で使われている他のCMS系システムでも事情は全く同じです。
 
極めて素晴らしい仕組みなのですが、それらのいくつかには、セキュリティ的に若干問題のあるプログラムが存在します。いま利用されているCMSは基本的にPHPという言語を用いてデータベースを操作するものがほとんどです。このPHP、実行速度も速いし書きやすいのですが、その分、にわかプログラマーでも、ある程度までプログラムを作れてしまうという問題が。この点がさらされると、クラッカーたちの格好の餌食になってしまいます。
 
ですので、あまり慎重にならずにほいほいと「便利だから」と導入していると、思わぬ穴が開いてしまうのですね。で、今回はどうやら、ファイルをアップロードする機能プログラムの書き方に問題が潜んでいるextensionがあったようです。
 
怖いですね。これは、個人サイトを持っている方で、便利な「無料CGI」などを深く考えずに使っている人たちも、大いに注意して欲しいですね。だって、ホスティング会社からすると、せっかく堅牢なマンションを作っているのに、住人が裏口を勝手に作り(しかも意識せずに!)、あろうことか施錠をせずに放置しているのですから!でも、クラックされて問題が発生したら、「あのマンションはゆるい!」になってしまいますからね。くわばらくわばら。
 
ここからはマニアック技術情報ですが…。ちなみに、私が今回発見したmalware/マルウェア(悪意を持って作成された実行権を持つファイル)の1つは、名前が「.vx5tvp.php」でした。「.」を先頭につけて、いかにもUNIX系OSの設定ファイルのように偽装しています。安全な環境でファイルを開いて中身を見ても、「Base64」でエンコーディングされているため、ちんぷんかんぷんです。なのに、コメント行として「//system file do not delete」なんてご丁寧に書いてあります。騙されないように。
 
インジェクション系のこのマルウェア、亜種も含めて最初の文字列が共通しています。それは、
 
<?php //cb6f82f3e4007bdaccf419abafab94c8
 
というもの。このコードがあったら、まずはスパム系マルウェア。即刻削除してね!
 
暇ならば、上記の文字列でGoogleって下さいな。海外のハッカー的な怪しげな掲示板などで多くリストアップされます。こいつが、上手い具合にスパムメールを送信しまくっていた訳ですね。このファイルがアップされた日付を見ても、ちょうど2日前ぐらいであり、「スパム可能性」を告げる監視システムの警告メールを受け始めたときと時が同じです。こいつを削除したら、もう警告は送られて来なくなりました。
 
最後に、システム管理者の方に1つ注意点です。この手のマルウェアは最近巧妙に作られているので、当該ファイルを削除するだけでは不十分なことも。その後には再度、サーバー全体にフルスキャンをかけて、そこで指摘されたファイルは基本的に全部除去するのがベストです。その上で、万が一、お客さんが管理パネルにアクセスするユーザーネームやパスワードなどもクラッカーに入手されている可能性を考えて、それらを全て変更しておきます。面倒でもね。加えて、他のお客さんが用いているプログラムでも、やばそうなものがないかどうかを確認しましょう。
 
と、ここまでやっておけば、お客さんの不注意でマルウェアをサーバーに仕込まれても、速やかに除去し、さらにサーバー状態を堅牢にすることができるのですが、ここまでやっているホスティング業者は少ないのです。特に、1サーバーに何百人も載せてしまっては。故に、業者によっては、CMSをそもそも使えなくしたり、CGIを指定のものしか許可しなかったり、CMSを許可してもたくさん制限をかけたものだけを強制したり…と、不自由なサイト運営になってしまいます。
 
便利さとセキュリティとは相反することも多いので、仕方ないのですが。ただ、これでは「自由なサーバー利用を!」という目的は達せられず、なんと言うか、UNIXワールドに恩義を感じる身としてはちょっと申し訳ない。時代はオープンソースと自由な才能の交流。やはりできるだけオープンに行きたいものです。
 
よって弊社では、サーバー利用の自由度と堅牢なセキュリティ、そこに十分なケアを考えて、1サーバーに載せるお客さんのアカウント数を、通常の1/10ぐらいにぐっと絞り込むことになります。規模はその分小さくなってしまいますが、顧客中心に手厚いサービスを考えればそれで十分ではないかなと思います。
 
長くなりましたが、この辺で。
ブログトップへ
「security audits」と言います。

よく使われる0-1024までのportは無論のこと、そこに脆弱性の多い1500以上のportをチェック。
それだけならただの「free port scan」なので、PC向け。

で、「standard」テストの場合、実に32,169の脆弱性についてテストしてくれます。
実際、わずか直近の30日間の間に709 new tests in the last 30 days

加えて嬉しいのが、DOS(Denial of Service)テストまで付加すること。これは、ご存知のようにサーバーに高負荷をかけるため、外すことも。

無料なのだが、ポイントは「サーフできるportからし

 blog update calendar

October 2018
MoTuWeThFrSaSu
1234567
891011121314
15161718192021
22232425262728
2930311234