ネット上のアクセスボリュームをUPさせ効率の良い集客をご提案します。

カテゴリー「wordpressセキュリティ」の記事

WORDPRESSのマルウェア対策

 / Security Tips, Wordpress, wordpressセキュリティ, テクニカル, トピックス, ノウハウ

WORDPRESSはCMS界の中ではユーザ数が最も多いオープンソースパッケージですが、オープンソースであるがゆえに、悪い人たち(クラッカー)に研究されてマルウェアを混入されてしまう危険性も高いのが難点。サイトを構築する段階から注意を払って作成すれば問題はないのですが、感染したあとからだと困難が待ち受けているのも事実です。


WORDPRESSの感染をチェックする方法

  • 使用しているテーマのテーマフォルダ内にあるphpやjavascriptファイルでタイムスタンプが怪しいものを見つける。

  • ファイルサイズが変わっている?あるいは増えていると思うものを開いてコードをチェックする。感染コードは見ればすぐに分かります。
  • セキュリティプラグインを導入してマルウェアの検出。50%から70%位は検出可能です。ドキュメントルート、WORDPRESSシステム配下のチェックは概ねプラグインソフトは弱いです。
  • uploadsフォルダー配下にphpファイルが存在しないかチェックする。
  • テーマ感染は既存ファイルに感染しているのがほとんど。新規ファイルのケースは少ない。
  • ドキュメントルート直下、システムフォルダ(wp-admin,wp-includes)は既存ファイルよりも新規ファイルで感染ファイルを置くケースが多い。

  • ドキュメントルート直下、システムフォルダで既存ファイルが感染している場合はワンランク上の感染と思ったほうが良い。つまりプラグイン程度で見つけたり駆除できない

セキュリティプラグインで合格だったから大丈夫と思わないほうが良いです。私は高度な感染を検知できるプラグインは未だに見たことありません。

ハイレベルなマルウェア感染

高次元の感染はタイムスタンプを過去の日付時間にする場合があり、感染がドキュメントルート全体に及ぶこともあります。つまりドキュメントルート直下、wp-admin,wp-includesあたりを改ざんする手口をやっているクラッカーはそこそこ詳しい人がやっているケースが多く簡単には見つからない手法で感染させているケースがあります。

手口と対処

  • 感染中継ファイルの拡張子を任意のイメージファイル拡張子に変えて設置
  • 感染中継ファイルで圧倒的に多いのは/wp-content/uploadsの配下に設置されている。
  • ドキュメントルート、wp-admin,wp-includes配下の感染は例えばサイトからWindowsにファイルをコピーして持ってきた上でWindows Defenderでスキャンしても見つけられる場合が結構ある。
  • ドキュメントルート、wp-admin,wp-includes配下の感染は有料ウィルススキャンソフトでWindowsにファイルをコピーして持ってきた上でスキャン実施すると高い検知率で発見、駆除ができる。
  • ドキュメントルート、wp-admin,wp-includes配下の感染はphp専用のマルウェアスキャナーで更にスキャンするとほぼ完璧に近いレベルで発見、駆除ができる。

予防策、防御策

  • ディレクトリレベルでmd5でハッシュ値を取り、コンテンツ更新する度にハッシュ値の更新を取る。
  • 毎日、定時間にバッチを走らせ前回のハッシュ値と現在のハッシュ値に相違があるか調べる。相違があった場合は感染の疑いあり。
  • 総合セキュリティプラグインの導入。最初から導入すると効果が抜群です。
  • 編集者はできるだけ固定IPで管理画面へのアクセスを縛ること。

WEBからメール送信(SMTP)する際に「permission denied」が出たときの対処

 / Linux Tips, Security Tips, Wordpress, wordpressセキュリティ, wordpressテクニカル, テクニカル, トピックス, ノウハウ

ホームページからメールを送信する仕組みを作る場合、専用サーバで構築するとよくありがちなissueは、「permission denied」が出ること。つまりsmtp送信非許可ということなのですが、通常このようなエラーはsmtpプロトコルでは発生しません。これがでたらセキュリティの何かに引っかかる問題があるということが推測できたら正解です。ずばりインストール直後のLinuxはSELINUXが有効になっているはずで、望ましいのはこれを有効にしたまま許可を出す設定をする事です。SELINUXではWEBサーバからメールを送信する処理に制限がデフォルト値OFFで入っています。

例えばWORDPRESSやフレームワークで送信用プラグインを導入しコンタクトフォームを作ろうと思った時に直接のローカルサーバのSMTPではなく外部のメール送信サーバを使うような場合はこの問題に遭遇するかもしれません。


エラーの例

ターミナルからrootで下記を実行しOFF設定になっていたらONになるようフラグを立ててください。

以上で再度試行して頂ければ動作するはずです。めでたしめでたし!

WORDPRESS nav-menu.phpが書き換えられるケース

 / Wordpress, wordpressセキュリティ, トピックス

このnav-menu.phpを書き換える攻撃は国内では昨年くらいから多く報告されIPAにも多数報告があるものです。私自身も幾つかのお客様で確認したことがある攻撃です。

この攻撃コードは幾つものパターンがあり、例えばフォーム処理の内容を攻撃者へ転送したり、直接サイトをブックマークでアクセスする分には、正常に思った通りのサイトへアクセスできるのですがグーグルやヤフーの検索エンジンからクリックして飛ぶと全く他のサイトへ転送されるというものです。

index.phpの内部で呼び出されている間接ファイル(wp-load.php,wp-blog-header.phpのあたり)が改ざんされているケースが多いです。また合わせて.htaccessファイルも書き換えられているケースが有りました。



この攻撃への対策は基本は管理画面を固定IPで縛ると殆どは安全です。でもスパイウェアを仕掛けられたら絶対とは言えません。一番良いのはある程度重要なWORDPRESSファイルをroot権限でreadonlyにしておくことをお勧めします。WORDPRESSのアップデート時には自動アップデートの障害になりますが安全を考えるなら良いと思います。

もしやり方がわからない場合は、別途弊社までご相談ください。

ご自分で対策される方はこちらの記事を参考にしてください。かなり対策のヒントになると思います。WORDPRESSマルウェア対策について

下記はアクセス権限をreadonlyにしたほうが良いファイル

  • .htaccess
  • index.php
  • wp-config.php
  • wp-load.php
  • wp-blog-header.php
  • /wp-includes/nav-menu.php
  • /wp-admin/includes/nav-menu.php

WORDPRESSのプラグインで予防を常に行って起きましょう。 「iThemes Security」「SiteGuard」のあたりがお薦めです。管理画面のプラグイン新規追加で導入しましょう。

WORDPRESS ブルートフォースアタックから守る

 / Wordpress, wordpressセキュリティ

ブルートフォースアタックって何!?と思う方もいるかと思いますがこの攻撃が一番緩くて多い攻撃なのです。おそらくこの攻撃を受けていないサイトは無いのではないでしょうか?
ログインの機能を持ったサイトなら必ず受けているはずです。WORDPRESSの場合もちろんこの攻撃は受けています。それは当然のことで世界で最も使われているCMSだから、攻撃する方も事前に調査しています。

ログインページはURIパスがどうなっているか?あるいはソースコードを呼んで弱点は無いのか。など当然考えていると思います。

この攻撃をあまり軽んじていると痛い目に会います。その理由はDoS攻撃に使われていることもあるからです。つまりこのようになるからです。

WORDPRESSの場合はこのようにログインやxmlrpc.phpに対しDoS攻撃を相乗りして相乗的に仕掛けてくるものもあり対策をしたのに、いまいち効果が出ていないケースが有ったりします。その場合はDoS攻撃を相乗りで仕掛けているケースを疑って見ましょう。 中にはパスワードを複雑にするとかadminユーザをなくすという方法を目にしますが、DoS攻撃には効果はありません。

この場合の対策はどうしたら良いのでしょうか?

  • wp-login.phpのURLパスファイル名を変更する。
  • /wp-admin/で直接ログインへ飛ばさないようにする
  • 管理画面に入れるユーザのIPを制限する
  • xmlrpc.phpを実行できるユーザのIPを制限する

サーバの知識を持っている方なら上記の方法を処置するのは簡単だと思います。この処理をすることで意外にも多くのサイトのレスポンス反応が良くなるケースが多いです。遅いのがまさか緩いDoS攻撃を受けているなんて気づかないものです。


もしやり方がわからない場合は、別途弊社までご相談ください。

PHPでセキュリティ上非推奨の関数

 / Wordpress, wordpressセキュリティ

PHPでセキュリティ上非推奨の関数配下のものですが、できるだけ使わないほうが安全です。使ったから直ちにまずいというものではありませんが、仕組みを理解して使うなら問題ないものもあります。ある一定のセキュリティ保護をかけた上で使う、もしくは限定用途の範囲で使うのであれば全く駄目というわけではありませんが注意することに越したことはありません。

call_user_method() かわりに call_user_func() を使用します
call_user_method_array() かわりに call_user_func_array() を使用します
define_syslog_variables()
dl()
ereg() かわりに preg_match() を使用します
ereg_replace() かわりに preg_replace() を使用します
eregi() かわりに preg_match() で ‘i’ 修正子を使用します
eregi_replace() かわりに preg_replace() で ‘i’ 修正子を使用します
set_magic_quotes_runtime() およびそのエイリアスである magic_quotes_runtime()
session_register() かわりにスーパーグローバル $_SESSION を使用します
session_unregister() かわりにスーパーグローバル $_SESSION を使用します
session_is_registered() かわりにスーパーグローバル $_SESSION を使用します
set_socket_blocking() かわりに stream_set_blocking() を使用します
split() かわりに preg_split() を使用します
spliti() かわりに preg_split() で ‘i’ 修正子を使用します
sql_regcase()
mysql_db_query() かわりに mysql_select_db() および mysql_query() を使用します
mysql_escape_string() かわりに mysql_real_escape_string() を使用します
ロケールカテゴリ名を文字列で渡すこと。 かわりに LC_* 系の定数を使用します
is_dst を mktime() に渡すこと。 かわりにタイムゾーン処理用の新しい関数を使用します

タグ: ,

TOPへ戻る