防止你的 WordPress 博客参与全球 DDoS 攻击

安全公司 Sucuri 在前不久表示,黑客利用了超过 162000 家 WordPress 网站,向目标网站进行了 DDoS 攻击,所有请求都是随机值(比如?4137049=643182?),因而绕过了缓存,迫使每回页面重新加载,于是目标服务器很快就挂了,并且宕机了好几个小时。

XML-RPC 和其 pingbacks 端口

这次攻击者是使用的 WordPress 的 XML-RPC 的 pingbacks 端口进行攻击的,XML-RPC 是 WordPress 用于第三方客户端(如 WordPress iPhone 和安卓客户客户端,Windows Writer 等)的 API 接口,XML-RPC 还可以用于 pingbacks 和 trackbacks 端口,这个都款可以用于站点之间的通讯,但是被误用,就可能被攻击者用来进行 DDoS 攻击。

Sucuri 已经开发了 DDoS 扫描工具让你检测是否你的站点也被攻击者利用了,在输入框中输入你的域名,扫描工具会在他们的 log 文件中找是否你的站点是否在这次攻击的 log 文件中,如果你的域名没有出现,那么恭喜你,你的站点没有去攻击别人。

如何防止被攻击者利用

目前 WordPress 官方已经在想办法是否可以使用 Akismet 插件解决这个问题,但是我们还是可以使用下面两个方法解决问题:

直接关闭 XML-RPC

最简单的方法是直接关闭 XML-RPC 接口,在 WordPress 3.5 之前,XML-RPC 服务一直默认是的被禁用的,因为它会造成安全漏洞,比如垃圾留言和 Trackback Spam 等。但是 WordPress 后续版本的安全隐患已被修正,所以 WordPress 索性默认将其开启,并且不在后台提供关闭选项。

并且 WordPress 更新到 3.5 之后,数据库中的 “enable_xmlrpc” 选项字段也将被删除,这样即使你在之前把 XML-RPC 设置为关闭,到了 WordPress 3.5 之后,也将开启。

如果我们只是在 WordPress 后台写写博客,也用不到类似于 WLW 这样的客户端,其实 XML-RPC 这个服务真的没有必要,如果你还是想关闭的话,怎么办呢?在当前主题的 functions.php文件添加如下一行代码即可:

add_filter('xmlrpc_enabled', '__return_false');

仅仅关闭 Pingbacks 端口

下面这段代码可以让你仅仅关闭 XML-RPC 的 pingback 端口:

add_filter( 'xmlrpc_methods', 'remove_xmlrpc_pingback_ping' );
function remove_xmlrpc_pingback_ping( $methods ) {
   unset( $methods['pingback.ping'] );
   return $methods;
}

再分享一个震撼视觉的卡巴斯基全球网络攻击实时图网站:the Cyberthreat map ;另外 Norse 也很Cool

展开评论