2013年8月30日金曜日

オラ的「Wordpressとセキュリティ」(注意:オラはWordpressやセキュリティの専門家ではありません)

なんでかしんねぇけど、しょっちゅう「Wordpressとセキュリティ」というテーマで
読書感想文文章を書く機会が多い。いつもいつ作ったか分からない手元のメモをベースに、その時点での最新の情報を反映しつつ書きなおしているんだけども、何度も書き直すのがメンドクサイので晒しておこうかな、と。間違ってれば誰かがつっこんでくれるでしょう。たぶん。

タイトルにも入れたけど、別にWordpressに詳しいわけでもなければセキュリティの専門家って訳でもないので、内容には不適切なものが含まれている可能性は否定しません。参考にするのは勝手だけど、真に受けた結果何が起こってもオラはしらねぇんでヨロピク☆



Wordpress本体、プラグイン、テーマ等は常に最新のものを使用する

「最新のバージョンがリリースされている」ってことは、「古いバージョンにはなんらかの問題(たとえば脆弱性)がある」ということとほぼ同じことだよね~。まあ、単に機能が追加されたりするだけの場合もないわけじゃないけど。

で、忘れちゃ行けないのはWordpressはオープンソースのプロダクトだって事。しかもメジャーなプロダクト。インターネット上でソースコードは簡単に入手できるし、Wordpressに関する脆弱性の情報なんても溢れてるから、いざ悪い事しようと思ったら比較的簡単にできるんじゃないかな、って。そういう意味で、最新版を維持しておけば、攻撃されるリスクを低減させる事が可能なんじゃないだろうか。

ただ、これ、簡単なようで難しい。特に業務利用だと。なぜかって、「最新版に更新したら、今まで動いていたものが動かなくなりますた_ノ乙(、ン、)_」ってことがありえるから。そしてそうならないことを確認するための時間も人もお金もないから。いやそれじゃダメなんだけど。

だからといって「最新版にしないのはしょうがないよね」っていう結論に持ってくんじゃなくて、「じゃあ、最新版にして問題ないかしっかり検証するようにしようね」って形に持って行ければいいんだけどね……。

Wordpress、プラグイン、テーマ等をインターネット上から入手する場合は、信頼できるサイトから入手する

よく「ただより高いものはない!」なんて言われてるけど、無料で提供されているということはなんらかの理由がある場合が多いと思う。ネット上をちょっと彷徨えば、Wordpressのテーマやプラグインなどが沢山、無料で提供されてたりする。

じゃあ、Wordpressの公式サイト以外でそれらを配布しているサイトってのは何が目的なんだろう。もちろん善意の理由で公開しているサイトも沢山あるんだけど、中には悪意を持って悪さするために配布している場合もあるかもしれない。

だからこそ、プラグインやテーマをチョイスする時は、その配布元が信頼できるのかってのをある程度時間をかけて調べる方が安心。理想論を述べれば、Wordpressの公式サイトに掲載されているものを使うのがいいよね。ただ「Wordpressの公式サイトに載ってた!」って言っても、不特定多数が自由に書き込める場所(掲示板とかBBSとか)は別ね。なんでって、そこら辺には「誰でも自由に書き込める」からね。

ひとつ前のトピックに書いた内容と矛盾するけど、最新版がリリースされた直後に間髪入れず採用(新規にしろ更新にしろ)するんじゃなくて、少し時間がたったものをチョイスするのもいいかも。っていうのも、万が一問題があったら、世の中のエロイ人たちがそういった情報を流してくれてるかもしれないし。

Wordpressの公式サイト以外のものを使いたいことも多いと思うけど、その場合はプラグインやテーマを配布しているサイトの情報(掲示板とかBBSとか)と、別途ググった結果得られた情報(レビュー等)を比較してみるのもいいかも。上手いこと出来るなら。ググったときはネガティブな情報が目に付くのに、配布サイトではポジティブな情報しか見当たらない……なんて状況なら、何か裏があるのかもしれないし。

あと、定期的に「ここは今でも信用して大丈夫なサイトなのかな?」ってのは疑った方がいいかも。時間経過で乗っ取られたりするかもしれないし。ともかく少しでも「アレ?」って思ったら注意する癖つけとくくらいがちょうどいいかもしれない。もしかしたら、小難しい方法をつかって別な悪意あるサイトに誘導されているかもしれないしね。

ログインユーザ「Admin」は使用しない

もうビックリするくらい「Wordpressの特権ユーザはadminですよ!」って話はよく知られている。これ、Wordpressに限った話じゃないんだけど、デフォルトで指定される値ってのは、そこら辺歩いてる人に聞いても答えられるくらい周知の事実。

だから、何かを狙おうとするならここを狙った方が効率いいよね。特権ユーザだしユーザ名が分かるって事は、あとはパスワードを当てればログインできちゃうわけだし。

ただ、だからといって自分が所属している組織名を使ったり、「root」とか「user」とか誰もが予想できちゃうようなものに変更するのは意味が無いはず。いや、意味が無いってのは言い過ぎだとしても、効果が薄れちゃう。かといってランダムな文字列だとちょっとね……。

個人的には担当者名とかチームで管理するならそのチーム名とか、そう言ったのがベターなのかなーとか思うけど、まあいろいろ加味して考えるといいんじゃないかな(適当)。

テーブルのプリフィックスをデフォルトの「wp_」から変更する

特権ユーザ名と同じで、テーブルのプリフィックスである「wp_」ってのもよく知られているよね。ついでにWordpressにはどんなテーブルがどんな用途で使われてるかってのも広く知られている。そりゃそうだソースが公開されてるんだもん。

もし、悪意ある人が攻撃しようと考え、その過程でデータベースに何かをしようと思ったら、とりあえず「wp_」から始まるテーブルだってのを前提に考えるんじゃないかなって。自分に置き換えて考えて見ると分かるけど、デフォルトの値って意識しないと変えないでしょ?とすると、この想定は間違ってないと思うんだ。

まあ、気休めレベルなのかもしれないけど、少なくとも「デフォルトと違う!」って要素があるってのは、リスクを少なく出来るんじゃないかな……と思ってみたりする今日この頃、皆様いかがお過ごしでしょうか。

パスワードは出来るだけ複雑にする

「複雑にする」というと語弊があるかもしれないんだけど、要は「英字・数字・記号を織り交ぜたできるだけ長いもの」を使いましょうねということ。

なんせ、パスワードってやつは短ければ短いほど、使用している文字種が少なければ少ないほど少ないほど簡単に特定できちゃう。あと、辞書に載ってる言葉(「love」とか「peace」とか)なんか使ってる場合も簡単に特定できちゃう。みんな考えることは一緒なのよ。

変な話、銀行の暗証番号と同じ数字4桁だと「0000」~「9999」までの1万通り(であってるよね?)しかないから状況によっては数秒~数分で特定できちゃったりするらしい。

特定する方法ってのはいろいろあるらしいんだけど、力業(片っ端からログインできるか試してみる)っていう方法だってあるし、パスワードが入ってる場所から丸ごと抜き出しておうちでゆっくり解析……なんて方法もあるらしい。

「じゃあどういうパスワードがいいの?」ってことについては、余白が少ないのでここには書けないけど、いろいろと考えて見るといいかも。

セキュリティを高めるプラグインを導入する


いくつかあるみたいだから、適当に目に飛び込んできたものを紹介してみるテスト。ここに紹介したからといって、これらが本当に使っても大丈夫かどうかは保障しないよ?自分でちゃんと調べてね?

あ、あと、プラグインそのものは健全でも、現状の構成(Wordpressのバージョンとか、テーマやプラグインとか)によっては上手く動かなかったりするかもしれないから、そう言ったのも気を付けてね!

結局の所、貴方のWordpressに責任をもてるのは貴方しかいないのです。どうがんばってもそれは変わらないのです。顔も見たことのないどこの馬の骨が書いたものか分からないようなものを、盲目的に信じちゃいけないのです。

All In One WP Security & Firewall



ファイルやデータベースのバックアップやリストアができたり、「Admin」アカウントのアカウント名やテーブルプリフィックス「wp_」を変更したりできるらしい。その他にログインの制限を厳格にしたり、ファイルのパーミッションをどうすればいいか教えてくれてさらにそのように変更する機能があったり、IPアドレス等によるアクセス排除設定ができたりするみたい。

Secure WordPress



エラーメッセージやバージョン情報を隠したり、一般ユーザにはアップデート情報を表示させなくしたり出来るっぽい。

AntiVirus



平たく言えばセキュリティスキャンをしてくれるプラグイン。使ってるテーマファイルに対して、手動および自動で不正なコードが含まれていないか検査することができるらしい。

この手のブツに共通していえることだけど、機械的に検出するだけなので誤検出があることに注意すること。警告が出たからといってそれが全てアレなわけじゃないからね。

Anti-Malware (Get Off Malicious Scripts)



前述の「AntiVirus」と同じくセキュリティスキャンをしてくれるプラグイン。こっちの方が「AntiVirus」よりも高機能っぽい。Wordpress全体に対して、手動および自動で不正なコードが含まれていないか検査することができるらしい。

この手のブツに共通していえることだけど、機械的に検出するだけなので誤検出があることに注意すること。警告が出たからといってそれが全てアレなわけじゃないからね(大事なことなので2回言いました)。

余計なファイルは置かない/使わないテーマやプラグインは削除する

悪い人が悪いことしようとするときに、なにが使われるか分からない。だから、そこに存在する必要性がないものは消してしまおう!テーマやプラグインなんかはデフォルトでいろいろ入ってるけど、使ってないテーマやプラグインなんかも消しちゃおう!プラグインに関して言えば、「停止」だけで終わらせないで消してしまおう!どうせ必要になったら後で簡単に入手できるんだ!

使用していなくてもファイルが存在してさえいれば外部からアクセス可能なことって多いよね。で、そういったのって存在を忘れてしまいがちだよね。放置プレイされちゃうよね。でも、それが悪いことしようとする人にとって有益なら、活用されちゃうよね。だったら、そういう心配事を減らすようにした方が夜ぐっすり眠れるようになるよね(*゜∀゜*)

テーマやプラグイン以外にも、readme.htmlとかlicense.txtとかそのまま外部からアクセス可能な形で放置してない?そういったファイルがWordpressの配布パッケージに含まれていることは、みんな知ってるよ?そこにバージョン情報とかが書いてあれば、脆弱性探すのが捗っちゃうかもよ?どうせWordpressの動作には影響しないんだから消しちゃいなよ(´・ω・`)ディスク領域のムダだよ?(´・ω・`)

とはいっても、「これほんとに削除しても大丈夫?」って思うこともあるよね。そういうときは、削除する代わりにパーミッションを「000」にするなどして確認するってのもアリじゃないかしら。問題があれば元のパーミッションに戻すだけだし。

ファイルの権限を適切に設定する

パーミッションで思い出した。例えばwp-config.phpは、セットアップが終わった後に書き込み可能である必要はあるのだろうか。ないよね。先ほど紹介したプラグインで、一部のファイルについては推奨のパーミッション設定を教えてくれるようなので、そういったのを活用したりしてパーミッション等の権限を「あるべき形に」するのが良いのではないかと。プラグインに頼らなくても、ちょっとググればそう言った情報は見つかると思うので、少しだけ手間をかけてみると幸せになれると思う。

バックアップを取得する

セキュリティのためって話じゃなくて、広い意味で「万が一の事があったときのため」ってお話。例えば、「操作ミスって消しちゃった」的な時の備え……ってことで。

例えば構築直後や何か修正した直後などに定期的にバックアップとっておけば何かあったときにその時点には戻せる。それだけでいろいろ安心できるんじゃないかと。共有サーバなんかだとちょっと難しかったりするかもしれないけど、バックアップ用のプラグインとかもいろいろ出てるみたいだから、それらを活用すると少しは楽かもしれないけど。

使っているパソコンのOSやソフトのセキュリティパッチ(アップデート)を適用する

Wordpressだけじゃなくて自分が普段使ってるパソコンとかもチェックしておきなYO!ってお話。OSや使っているソフトのアップデートがある場合は、適用しておくといろいろな意味で安心だよ?

常に勉強、そして最新の情報を得る努力を怠らない

今日の常識は明日の非常識。今持ってる知識に満足せず、常に最新の知識にアップデートしよう。そのための努力は怠らないようにしよう。必要なら必要な分だけ勉強しよう。

……って思いだけはいつも胸に抱いてる(〃・ω・〃)



とまあこんな感じかな。長いから誰も読まねぇだろうけど(;´Д`)

大事なことなので何回も言いますが、私はWordpressに詳しいわけでもなければセキュリティの専門家でもありません。上記の内容には不適切なものが含まれている可能性があります。上記の内容を信じるのは勝手ですけど、自分の責任でね!

0 件のコメント:

コメントを投稿