Pingback機能を悪用したDDOS攻撃対策

20140313101236現在、『 ​WordPress ​』の一部機能を悪用し第三者のサイトへの
DDoS攻撃が行われるという、結果的にお客様のサイトが
攻撃に悪用されてしまうケースが発生しております。
ヘテムルでも、『 ​WordPress ​』をご利用のお客様が多いため
ご対応をいただきたくご案内いたします。

▼Pingback機能を悪用しDDoS攻撃
​http://www.atmarkit.co.jp/ait/articles/1403/13/news133.html

————————————————————–
■お客様にご対応頂きたいこと
————————————————————–

本現象は、『 ​WordPress ​』をご利用でかつPingback機能という
『 ​WordPress ​』の機能が有効な場合に確認されております。

※DDoS攻撃は『 ​WordPress ​』の ​Pingback機能を悪用し
第三者のサイトに対して行われます。

※Pingbackとは記事にサイトのURLを書くと、『 ​WordPress ​』が自動的に
リンクが張られたことを該当のサイトへ通知をする機能です。

下記の【1】〜【3】のご対応をお願いたします。
なお、今後本現象が発生した場合、被害を最小限に抑えるためにも
末尾記載の、『 ​■DDoS攻撃に悪用された場合 ​』のような対応を行う場合が
ございます。

【1】最新版のバージョンへアップグレードを行う

【2】Pingback機能を利用しない設定にする

Pingback機能は、Wordpress3.5から初期設定で有効の状態です。
機能を利用しない場合は、下記手順で設定変更ください。

『 ​WordPress ​』のダッシュボードへログイン≫設定
≫ディスカッション≫投稿のデフォルト設定≫
他のブログからの通知 ​(ピンバック・トラックバック) ​を受け付ける ​の
チェックをはずす≫変更を保存ボタンを押下

また、既に投稿している記事については下記手順で
Pingbackを許可しない設定をお願いします。

『 ​WordPress ​』のダッシュボードへログイン≫投稿
≫投稿一覧≫タイトルの横にあるボックスに全てにチェックを入れる≫
プルダウンで編集を選択≫適用≫トラックバック/ピンバックの項目の
プルダウンを許可しないで選択≫更新
【3】Pingback機能自体を無効化する

無効化する方法は、2つご案内いたします。下記どちらかのご対応を
お願いたします。

・プラグインをインストールしてPingback機能を無効化する

『 ​WordPress ​』のダッシュボードへログイン≫プラグイン
≫新規追加≫Disable ​XML-RPC ​Pingbackを検索≫
いますぐインストール≫プラグインを有効化

▼プラグイン:Disable ​XML-RPC ​Pingback
http://goo.gl/AcJEvg

・xmlrpc.phpへアクセス可能なIPアドレスを制限する

Pingback機能以外(リモート投稿など)でAPIを利用する場合は
.htaccess ​でxmlrpc.phpファイルへアクセス可能な
IPアドレスを制限してください。

xmlrpc.phpは、WordPressをインストールした公開フォルダ ​にあります。
WordPressをインストールした公開フォルダで、.htaccessに下記の記述
(もしくは追記)をお願いたします。

—————
<Files ​xmlrpc.php>
Order ​Deny,Allow
Deny ​from ​all
Allow ​from ​XXX.XXX.XXX.XXX
</Files>
—————
※XXX.XXX.XXX.XXX ​はxmlrpc.phpへのアクセスを許可するIPアドレスを
適宜記述ください。

————————————————————–
■DDoS攻撃に悪用された場合
————————————————————–
WEBサーバーから攻撃されているとみなされ
該当のWEBサーバー自体がブラックリストへ登録されます。
それにより、そのサーバーから配信されたメールが
送信先で受け付けられない場合がございます。

phpのバージョンアップに伴う不具合の件

水曜日になごちゃんがphpのバージョンを5.3にアップしたのがきっかけで御茶ノ水スタジオのHPが表示が出来なくなっていることが土曜日に確認されました。
調べたところ、
http://www.wordpress-fr.net/support/sujet-46705-version-dev-partir-site-existant
と同じ症状でした。
この解説によるとevent-calendarというプラグインがPHP 5.3との相性が悪いとのことでした。
このプラグインを解除したところ表示は戻りました。

もしウィジットなどでevent-calendarを使っている場合は同様の症状が予想されます。
その時はこのメッセージを覚えておいて下さい。

パーミッションの設定

パーミッションの設定を正しく行ってください

ヘテムルではディレクトリ、ファイルのパーミッションを 以下の値での設定を推奨しております。

HTML・画像ファイル 604 rw—-r–
CGIの実行ファイル 700 rwx——
CGIのデータファイル 600 rw——-
.htaccessファイル 604 rw—-r–
ディレクトリ 705 rwx—r-x

パーミッションの設定を「777 (rwxrwxrwx)」や「666 (rw-rw-rw-)」などに設定されている場合は、「誰でも書き込める」設定となっているため、改ざんが行われる可能性がございます。ご確認の上、上記の値に変更してください。

また、特に下記の点につきましてご注意くださいますよう、お願いいたします。

「.htaccess」ファイルが書き換えられる事例が多発いたしております。
パーミッションが「604 (rw—-r–)」であるかご確認ください。
WordPressをご利用の場合「wp-config.php」のパーミッションは「404 (r—–r–)」であるかご確認ください。

WordPress、htaccessの改竄対策

タイトル : WordPress、htaccessの改竄対策?
記事No : No.1263
投稿日 : 2011-12-06 21:17:21
投稿者 : kucklu

WordPressを使っている自分のサイトでは
一回も改竄を受けたはとがないのでですが………

これがあるからなのかな?と思ったので投稿してみました。

.htaccessの「# BEGIN WordPress」より前に
「= ここから =」から「= ここまで =」の間の文字列を追記する。

====== ここから =========================
AddType image/x-icon .ico


SetOutputFilter DEFLATE
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png|ico)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI _\.utxt$ no-gzip
#DeflateCompressionLevel 4
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/atom_xml
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/x-httpd-php


ExpiresActive On
ExpiresDefault “access plus 1 seconds”
ExpiresByType text/html “access plus 1 seconds”
ExpiresByType image/gif “access plus 2592000 seconds”
ExpiresByType image/jpeg “access plus 2592000 seconds”
ExpiresByType image/png “access plus 2592000 seconds”
ExpiresByType image/x-icon “access plus 2592000 seconds”
ExpiresByType text/css “access plus 604800 seconds”
ExpiresByType text/javascript “access plus 216000 seconds”
ExpiresByType application/x-javascript “access plus 216000 seconds”
ExpiresByType application/x-shockwave-flash “access plus 216000 seconds”

FileETag none


order allow,deny
deny from all


SetEnvIf Referer “http://example.com/” Ref1
Order Deny,Allow
Deny from all
Allow from env=Ref1

====== ここまで =========================

これが有効化どうかは正直分からないのですが………(;´Д`)
あとは、htaccessとwp-config.phpのパーミッションをheteml指定のものにしておけば大丈夫なのかな?とか。

ついでなので、wp-content/plugins/直下に空の.htaccessを作成して
「= ここから =」から「= ここまで =」の間の文字列を追記する。

====== ここから =========================
SetEnvIf Referer “http://example.com/” Ref1
Order Deny,Allow
Deny from all
Allow from env=Ref1

====== ここまで =========================
※最後の「Allow from env=Ref1」の後は改行1つ必須。

これで、pluginディレクトリに直接アクセスされることはなくなると思う。
効果の程は分からないです(;´Д`)

AndroidとiOSでのシミュレータ

http://developer.android.com/sdk/index.html
https://developer.apple.com/devcenter/ios/index.action
主要なブラウザのcssやhtml5サポート比較http://caniuse.com/

メディアクエリの例

@media screen and (max-width: 800px) {
/* この場合のみ適用されるスタイル */
}

最後に記述するメディアクエリにはスマートフォンを想定した幅を指定します。
@media screen and (max-width: 479px) {
/* この場合のみ適用されるスタイル */

viewport メタ タグ
デフォルトのビューポート幅 Android ブラウザでは 800px、iOS では980px。

最新のスマートフォン用ブラウザの多くは現在、320px ほどの標準的な device-width 。
viewport を指定するメタ タグで width = device-width を設定する利点は、ユーザーがスマートフォンやタブレットの向きを変えたときに表示を更新してくれる点。これをメディアクエリと組み合わせて用いることで、ユーザーが端末を回転させた時のレイアウトを微調整できる。

@media screen and (min-width:480px) and (max-width:800px) {
/* ランドスケープモードのスマートフォン、ポートレートモードのタブレットまたはウィンドウ幅の狭いデスクトップ向けのスタイル
*/
}

@media screen and (max-width:479px) {
/* ポートレートモードのスマートフォン向けのスタイル */
}
実際には、サイトの流れや各種端末上での表示に応じて、異なるブレークポイントを使用する必要があるかもしれません。また、メディアクエリの orientation を使って、ピクセルで幅などのサイズを指定することなしに特定の向きに対応させることも可能ですが、ブラウザが対応している場合 (英語) に限ります。

@media all and (orientation: landscape) {
/*ランドスケープモード向けのスタイル */
}

@media all and (orientation: portrait) {
/*ポートレートモード向けのスタイル */
}

@media screen and (min-width:480px) and (max-width:800px) {
/* Target landscape smartphones, portrait tablets, narrow desktops

*/
}

@media screen and (max-width:479px) {
/* Target portrait smartphones */
}

In reality you may find you need to use different breakpoints depending on how your site flows and looks on various devices. You can also use the orientation media query to target specific orientations without referencing pixel dimensions, where supported.

@media all and (orientation: landscape) {
/* Target device in landscape mode */
}

@media all and (orientation: portrait) {
/* Target device in portrait mode */
}

1 2