ページ更新: 2005-10-14 (金) (4810日前)

2004-10-16

WikiSPAM について。

2004-10-15 〜 2004-10-16 にコンテンツに宣伝(VOIPの)を書き込まれ、元のコンテンツが文字化けしたので、その対策。

[編集]

目次 #

[編集]

最初の対処 #

まずは、これ以上書き換えられないように、編集に認証を必要にした。 これは pukiwiki.ini.php に設定がある。

[編集]

凍結とページ構成の変更 #

次のことから、SEO が目的だと思う:

  • FrontPage にリンクがあるページが書き換えられていた。
  • 特定のURL(ドメインが同一で、ホスト名が異なる物)が大量に貼り付けられていた。

よって、次の作業を行った:

  • 目次のページ (Linux, eclipse,...) をすべて凍結した。 また、目次でないページは目次を作成した。
  • FrontPage に最終更新ページ一覧を載せていたが、これを別のページに移動した。
[編集]

IP範囲の特定 #

で、2004-10-15 〜 2004-10-16 のSPAM の特徴を調べた。 残念ながら、User-Agent はまちまち。インターネットカフェなんかで 書き込んでいるのかも。

Apacheのaccess.logを 'pukiwiki.php' 'POST' 'cmd=edit' で検索すると、 ここらあたりか。

1) iprism.cox-sd.net

日時
2004/10/15 11:53:38 〜 12:01 で 5ページ
書き換えたページのリスト
未整理, eclipse/plugin/その他のplugin, 規格, Windows, Windows/PostgreSQL, 未整理

Apacheのaccess_log(ウチはaccess.logって名前に変えてある) を見る:

$ grep iprism.cox-sd.net access.log | wc -l
    117

$ grep iprism.cox-sd.net access.log | grep -v png | wc -l
     54

$ grep iprism.cox-sd.net access.log | grep POST | wc -l
     11

POSTアクセス:

iprism.cox-sd.net - - [15/Oct/2004:12:01:15 +0900] "POST /pukiwiki/pukiwiki.php 
HTTP/1.0" 200 20402 "http://discypus.jp/pukiwiki/pukiwiki.php?cmd=edit&
page=%CC%A4%C0%B0%CD%FD" 
"Mozilla/4.0 (compatible; MSIE 5.5; Windows 98; Win 9x 4.90)"

引いてみる。(Windows + Cygwin なのでhostコマンドがない。tracerouteはLinuxの方でやったけど)

$ nslookup iprism.cox-sd.net
Non-authoritative answer:
Name:    iprism.cox-sd.net
Address:  209.242.128.10
$ whois 209.242.128.10
Cox Communications Inc. COX-SD (NET-209-242-128-0-1)
                                  209.242.128.0 - 209.242.175.255
Cox Communications COXSD-01 (NET-209-242-128-0-2)
                                  209.242.128.0 - 209.242.128.255
$ traceroute iprism.cox-sd.net
traceroute to iprism.cox-sd.net (209.242.128.10), 30 hops max, 38 byte packets
(中略)
 8  xe-0-0-0.r21.tokyjp01.jp.bb.verio.net (61.213.162.225)  47.599 ms  45.698 ms 47.843 ms
 9  p16-0-0-2.r82.mlpsca01.us.bb.verio.net (129.250.2.177)  172.636 ms  144.531 ms   145.925 ms
10  xe-0-3-0.r21.mlpsca01.us.bb.verio.net (129.250.2.55)  153.486 ms  145.172 ms 144.560 ms
11  p64-0-0-0.r21.plalca01.us.bb.verio.net (129.250.5.48)  159.217 ms  159.220 ms 161.029 ms
12  p16-0-0-0.r06.plalca01.us.bb.verio.net (129.250.3.83)  158.956 ms  170.862 ms  161.770 ms
13  PALTBBRJ01GEX0201A001.R2.PT.COX.NET (198.32.176.144)  157.785 ms  146.773 ms 162.124 ms
14  paltbbrj01-pos000000.r2.pt.cox.net (68.1.0.192)  158.205 ms  163.503 ms  158.2 26 ms
15  fed1dsrc01-pos0901.rd.sd.cox.net (68.1.0.205)  176.888 ms  158.011 ms  180.607 ms
16  fed1cbsc01-gex0601.sd.sd.cox.net (68.6.8.101)  157.811 ms  160.158 ms  158.600  ms
17  iprism.cox-sd.net (209.242.128.10)  159.187 ms  172.271 ms  172.506 ms

ブラウザでアクセスして、レスポンスヘッダを見てみる:

HTTP/1.0 200 OK
Date: Sat, 16 Oct 2004 16:58:12 GMT
Server: iPrism-httpd/v3 (Unix) ssl_enabled ossl
Last-Modified: Wed, 21 Apr 2004 17:14:50 GMT
Etag: "321e-790-4086ac0a"
Accept-Ranges: bytes
Content-Length: 1936
Content-Type: text/html
Proxy-Connection: keep-alive

★IPの範囲は 209.242.128.0/24 あたりでいいや。

2) 219.134.14.244

日時
2004/10/15 07:49:38、1ページ
書き換えたページ
eclipse/plugin/その他のplugin
$ fgrep 219.134.14.244 access.log | wc -l
     40

$ fgrep 219.134.14.244 access.log | grep -v 'png' | wc -l
      8

$ fgrep 219.134.14.244 access.log | grep POST | wc -l
      1
219.134.14.244 - - [15/Oct/2004:07:49:38 +0900] "POST /pukiwiki/pukiwiki.php HTTP/1.1" 
200 60506 "http://discypus.jp/pukiwiki/pukiwiki.php?plugin=paraedit&parnum=7&
page=eclipse%2Fplugin%2F%A4%BD%A4%CE%C2%BE%A4%CEplugin&
refer=eclipse%2Fplugin%2F%A4%BD%A4%CE%C2%BE%A4%CEplugin" 
"Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; Win 9x 4.90; .NET CLR 1.1.4322)"
$ whois 219.134.14.244
% [whois.apnic.net node-2]
% Whois data copyright terms    http://www.apnic.net/db/dbcopyright.html

inetnum:      219.128.0.0 - 219.137.255.255
netname:      CHINANET-GD
descr:        CHINANET Guangdong province network
(略)
$ traceroute 219.134.14.244
traceroute to 219.134.14.244 (219.134.14.244), 30 hops max, 38 byte packets
(略)
 8  ge-7-1-2.a21.tokyjp01.jp.ra.verio.net (61.200.92.23)  43.804 ms  47.531 ms  43.748 ms
 9  61.120.146.54 (61.120.146.54)  103.013 ms  105.959 ms  106.349 ms
10  202.97.33.42 (202.97.33.42)  112.068 ms  113.480 ms  111.470 ms
11  202.97.33.169 (202.97.33.169)  1218.453 ms  1235.087 ms  1223.341 ms
12  202.97.33.93 (202.97.33.93)  1216.395 ms  1218.538 ms  1216.550 ms
13  202.97.35.46 (202.97.35.46)  1202.458 ms  1229.407 ms  1220.746 ms
14  202.97.36.65 (202.97.36.65)  1241.094 ms  1204.898 ms  1205.040 ms
15  61.140.0.30 (61.140.0.30)  1298.475 ms  1324.728 ms  1307.404 ms
16  61.140.1.206 (61.140.1.206)  1302.093 ms  1310.543 ms  1309.692 ms
17  61.144.236.42 (61.144.236.42)  1325.390 ms  1305.027 ms  1323.357 ms
18  218.17.201.10 (218.17.201.10)  1315.664 ms  1291.139 ms  1290.493 ms
19  218.17.201.38 (218.17.201.38)  1305.446 ms  1315.001 ms  1307.057 ms
20  * * *
21  * * *

★ 219.128.0.0/13 (128〜135), 219.136.0.0/15 (136〜137)

3) 61.144.184.27

日時
2004/10/16 10:25:51〜11:16:51、12ページ
書き換えたページ
eclipse/plugin/その他のplugin, Delphi/メモ, Cygwin/PostgreSQL/情報源, Bike/メモ, Cygwin/wget, Cygwin/perl, Cygwin/init, C++/メモ , C++/Boost, Cygwin/apache/php, ソフト/PukiWiki/更新履歴, Cygwin/cygcheck,
$ fgrep 61.144.184.27 access.log | wc -l
    272

$ fgrep 61.144.184.27 access.log | grep -v 'png' | wc -l
    114

$ fgrep 61.144.184.27 access.log | grep POST | wc -l
     15
61.144.184.27 - - [16/Oct/2004:10:25:51 +0900] "POST /pukiwiki/pukiwiki.php HTTP/1.1" 
200 66459 "http://discypus.jp/pukiwiki/pukiwiki.php?plugin=paraedit&parnum=22&
page=eclipse%2Fplugin%2F%A4%BD%A4%CE%C2%BE%A4%CEplugin&
refer=eclipse%2Fplugin%2F%A4%BD%A4%CE%C2%BE%A4%CEplugin" 
"Mozilla/4.0 (compatible; MSIE 5.5; Windows 98; Win 9x 4.90)"
$ whois 61.144.184.27
% [whois.apnic.net node-2]
% Whois data copyright terms    http://www.apnic.net/db/dbcopyright.html

inetnum:      61.140.0.0 - 61.146.255.255
netname:      CHINANET-GD
descr:        CHINANET Guangdong province network
$ traceroute 61.144.184.27
traceroute to 61.144.184.27 (61.144.184.27), 30 hops max, 38 byte packets
(略)
 8  ge-1-0-0.8.a00.tokyjp01.jp.ra.verio.net (61.200.92.66)  43.897 ms  47.069 ms
43.716 ms
 9  61.213.145.154 (61.213.145.154)  1067.632 ms  1069.719 ms 61.213.145.158 (61.2
13.145.158)  1071.198 ms
10  202.97.53.29 (202.97.53.29)  1069.115 ms  1068.062 ms  1065.646 ms
11  202.97.34.110 (202.97.34.110)  1065.065 ms  1064.023 ms  1171.679 ms
12  61.140.0.30 (61.140.0.30)  1174.179 ms  1160.220 ms  1163.537 ms
13  202.97.26.130 (202.97.26.130)  1163.085 ms  1166.284 ms  1166.023 ms
14  61.140.1.6 (61.140.1.6)  1179.296 ms  1168.235 ms  1165.803 ms
15  61.144.236.29 (61.144.236.29)  1175.736 ms  1167.508 ms  1171.117 ms
16  218.17.201.2 (218.17.201.2)  1166.363 ms *  1169.131 ms
17  218.17.201.66 (218.17.201.66)  1173.048 ms  1166.623 ms  1163.369 ms
18  * * *
19  * * *

★ 61.140.0.0/14 61.144.0.0.0/15 61.146.0.0.0/16

[編集]

対処 #

アクセス元の国が違っているようなので、ウィルスかも。

とはいえ、確信が持てないので、とりあえず編集の認証はそのままにしておき、 (PukiWiki と PHP には慣れていないので)、 Apache側で IP で制限することにする。

mod_access - Apache HTTP サーバ
http://httpd.apache.org/docs-2.0/ja/mod/mod_access.html#allow

core - Apache HTTP サーバ
http://httpd.apache.org/docs-2.0/ja/mod/core.html#limit

特定のIPから、POST できないようにする。pukiwikiのコンテンツに対して、 アクセス制限を掛ける。こんな感じか?

<Limit POST>
    Order Deny,Allow
    Deny from 209.242.128.0/24 219.128.0.0/14 219.136.0.0/15 61.140.0.0/14  61.144.0.0/15 61.146.0.0/16
</Limit>

本番サイトではなく、テスト用にコンテンツを用意して(ローカルと本番ホストの テストサイト)で試して、OK(禁止するIPに自分自身のを使ってみて)

[編集]

関連(するかもしれない)情報 #

[memo] DNS ブラックリストによる SPAM フィルタリング (2) - まちゅダイアリー (2005-10-03) (&new{date?};)~

http://www.machu.jp/diary/20051003.html#p01

[memo] DNS ブラックリストによる SPAM フィルタリング - まちゅダイアリー (2005-09-20) (&new{date?};)~

http://www.machu.jp/diary/20050920.html#p01

[SPAM] Wiki SPAMming - BugTrack/772 - PukiWiki-dev
http://pukiwiki.sourceforge.jp/dev/index.php?BugTrack%2F772

  • 自分はSPAMの内容(ひたすらURLを書き込むが、途中で化けてる)は 消しちゃったので、同一かどうか分からず。よって、未報告。