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

カテゴリー「Wordpress」の記事

マルウェア感染が止まらない理由-(WORDPRESS)

 / Wordpress, wordpressセキュリティ, セキュリティ日記


WORDPRESSがマルウェアに感染するとよくやる対処は、テーマファイルを一つ一つ開けてチェックするケース、あるいはプラグインセキュリティを入れて駆除するパターンがオーソドックスな対処方法だと思う。ではこのやり方は本当に特効薬になりえるか?答えはNOだ。駆除をやったことの安心感だけかもしれない。見えない感染が実際には潜んでいることも知らずに。


感染に気付けない恐怖

前回の記事でも説明したがこのやり方では大概マルウェアは駆除できていない。見かけ上駆除できたように勘違いしてしまうのだ。一度駆除すると落ち着いたように見えるケースもあるし、すぐさま新しい改竄や挿入ファイルを差し込んでくるケースも有りパターンは様々だ。兎に角マルウェア感染への第一歩は、新しいサイトを構築する際にどれだけきちんとセキュリティ対策を講じて作るかが鍵である。つまり最初良ければ終わりよしとなる。逆に最初適当にサイトを作り、全くセキュリティ対策を講じないで公開すると何れマルウェアの巣窟になってしまう。直しても直しても感染する。あるいは、安心させて実際は感染しており攻撃ステーションとして乗っ取られている場合もある。これはひとつ間違えれば顧客の信用を落としてしまうことになるだろう。

どこを中継して改竄が起こっているのか?

これはざっくり6パターンある。

  • uploadsフォルダーへ改竄プログラムを設置(phpファイル、画像ファイルの拡張子にして設置)
  • システムファイルの脆弱性を利用して外部から差し込む。
  • プラグインの脆弱性を利用して外部から差し込む。
  • テーマファイルの脆弱性を利用して外部から差し込む。
  • テーマ、プラグイン作者が意図して脆弱性、スパイウェアを仕込んで差し込む。
  • パソコン、ブラウザに既に仕込まれたマルウェアが動き出して差し込む。

何故プラグインセキュリティ、総合セキュリティソフトではみつけられないのか?

改竄プログラムをエンコードしたり、そのコードを分割したりして判別付けにくくしている。更にプラグインセキュリティの想定以上に複雑で正規表現フィルターにひっかかりもしないものが存在する。また感染パターンや感染ファイルもダイナミックに生成されるものもあり判別を更に難しくしている。兎に角想像以上に進んだ仕組みで感染させていると感じるケースが少なからずある。私自身も片っ端からプラグインセキュリティソフトを試したが、一部は判定してくれるが、大部分がすり抜けてしまうケースが多かった。意外にもWindowsDefenderが検知してくれるものも結構あったのは驚いた。

高いマルウェアの検出はできるのか?

結論は最先端のAIと従来のヒューリスティックエンジンを搭載したPHP言語を理解できるマルウェアスキャナーでなければ検知は難しい。弊社ではいくつかのこのようなマルウェアスキャナーと目見でのチェックも合わせて高い検出を達成しています。一般的なセキュリティソフトでは検知は難しく見つかっても目立つ旧来の単純な感染パターンだけだと思います。ある意味マルウェア製作者はこういった見せ玉の感染とサイレントに見つかりにくいものを両方用意しているのかもしれない。

WORDPRESSのマルウェア対策

 / Security Tips, Wordpress, wordpressセキュリティ, セキュリティ日記, テクニカル, ノウハウ


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


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

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

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

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

  • pluginsフォルダー内の感染は元々プラグイン自体に仕込まれている事が多い。

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

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

高次元の感染はタイムスタンプを過去の日付時間にする場合があり、感染がドキュメントルート全体に及ぶこともあります。つまりドキュメントルート直下、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で管理画面へのアクセスを縛ること。

GSで「404 Not Found」が消えない場合の対処。410を使う。

 / SEO関連, Wordpress, wordpressテクニカル, トピックス, ノウハウ


Google Search Consoleでクローラのクローラエラーの箇所を見ると「404 Not Found」が出ていることがある。これは文字通りファイルがありませんという意味のもので、ファイルが無かったからGoogleがペナルティを与えるという類のものではありません。しかし放置すると確実に順位に影響が出てきます。



通常は、「修正済み報告」ボタンでエラーが出た箇所をポチポチやってGoogleに認識させるのですが、エラーが消えたものが頻繁に先祖返りする傾向があります。少ない場合は無視するのですが、大量にあるお客様の場合は間違いなくGoogleの誤検知なのですが直す手立てが無いものかと実験を行っていました。



404エラーは通常放置すると、その状態が長く続くとGoogle側がファイルが存在しなくなったのでインデックス情報から消去するというプロセスになっています。企業や商売している者にとっては1ヶ月単位で消去する記事は当然存在します。キャンペーンや売出し情報、季節の商品だったら短いタームで終える記事(ページ)はあるのは当然です。そうすると大量にクローラーエラーのところに404 not found情報が堆積します。そこで無くなったのが正しい場合どうするかですが、通常静的ページだとWEBサーバが404のhttpコードを返却しスムーズにクローラが認識しエラーは収まります。



一方、プログラミング言語で作った仕組みの場合、ソフトウェア「404 Not Found」を出力するページを生成して配置します。しかし、この仕組みが欠如してる確率が多く、ユーザビリティを考えて他のページに転送したり、そのページで検索できるようにしているケースが多いです。ユーザビリティ考慮だけではなくGoogleのクローラ考慮も実際には必要であることに気づいていません。



つまり、ソフトウェア「404 Not Found」の場合、大多数がhttpコードの404を吐き出していないケースがあります。この場合httpコードの404ヘッダーを返すようにソフトウェア「404 Not Found」を作ります。

WORDPRESSやPHPのプログラムでできている場合の404コード返却

phpの場合、ヘッダ関数を使用します。

これをWORDPRESSなら404.phpの先頭に挿入すればOKです。オリジナルでPHPや他言語で作っているならNot Found処理用のページテンプレートに該当言語のヘッダ関数を使用して「http 404 not found」含めてください。これでGoogleが認識してくれる確率があがります。

それでも404エラーが消えない場合

このケースは実際のところ多いです! 解消するためにはどうするかなのですが410を返却するという方法があります。調べてみると過去に鈴木謙一さんのブログでGoogleは404と410を区別するというのがあり、実験してみると410を返すようにしたところ404 エラーの先祖返りがなくなりました。

410と404の違い

鈴木謙一さんのブログを抜粋すると

404と410はどちらもページが表示されないことに変わりはないのですが、厳密に言うと意味が違います。


404は“Not found”でファイルが「見つからなかった」ことを表します。
たいして410は“Gone”でファイルが「なくなった」ことを表します。


404はURLの打ち間違いやファイルのうっかり削除で意図しないエラーかもしれません。
一方410はサイト管理者が意図してページを削除したときに返すエラーになります。

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になるようフラグを立ててください。

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

AMP関連:AMPを使うとGoogle Search Consoleのインデックス、クローラが活性化される!

 / SEO関連, Wordpress, テクニカル, トピックス, ノウハウ


最近、ampを使い始めましたが改めてGoogle Search Consoleを確認すると活発にクローラが動作するようになることがわかります。

特に驚くことが、Google Search Consoleのamp関係の警告やエラーレポートが迅速に出たり、修復を検知したりする速度が速いことに気が付きます。ampはルールに大変センシティブですが対応をきちんと素早く行えば安定してアクセスボリュームが伸びてゆくことは間違いなさそうです。

今回の記事では、このamp登録した後のGoogle Search Consoleの動きで気になった点があったのでレポートしたいと思います。


sitemap.xmlの記述はインデックスさせるURLだけに絞りましょう。

ノーインデックスさせるページや、認証が入っているようなページがsitemap.xmlにあると警告がAMPの検出メニューで頻繁に出てきます。その場合はsitemap.xmlからエラーが出たURLのブロックを削除してください。

ロゴやタイトルイメージも忘れずに登録

AMP登録するとよく出てくる警告に属性で登録されていないものがあるという類のレポートがあります。殆どはロゴやタイトルイメージの指定が無いというものです。あくまで警告なのでAMP登録されないということではありません。ただ、目を引くという意味ではあったほうが読んでくれたりクリックする確率は増えるかもしれません。

最近のWORDPRESSバージョンでは管理画面>外観>カスタマイズ>サイト基本情報>サイトアイコンの中で登録したアイコンがAMPのアイコンでデフォルト採用されます。

タイトルイメージは事前にfunctions.phpで登録しておくと良いでしょう。下記はドキュメントルート直下にlogo-title.pngをおいた場合の記述です。

AMPに相応しいページかどうかの検討

ampページは滅多に内容が変化しないページは相応しくないと思います。その時々のトピックスやイベント等のフレッシュな情報が出るべきだと思います。また頻繁にアクセスのある記事やコンテンツが相応しいと思います。お使いのプラグイン設定やオリジナルのプログラムの中でampするべきページのみamp化するように制御してください。改造は面倒なので場合によってはカスタムポストタイプで投稿したい種類のものだけAMP化する等の工夫が必要かもしれません。よくあるプラグインはページ単位でのAMPのON/OFFができないので使い方に工夫が必要です。

TOPへ戻る

AGA 成長因子