いわゆるSEOを謡うスパム業者と格闘した三日間に体験した事

はじめまして。

この記事は私が2023年4月25日にアクセス解析を作り、
解析を用いてスパム業者と戦った4月28日までの話になります。

事の発端は私がバカなのでいわゆるSEO業者のサイトチェッカー的なものをまわしまくったのが原因です。
サイトに一括登録してくれる～みたいな謳い文句のやつです。

そしたらワラワラやってくるBOT達、2桁UUの私のサイトがいっきに3桁UUのサイトに大変貌！

#やったー！露出増えたー？

と思ってはいけません。

そのほとんどが悪質業者によるBOTさんなのです。

私が作ったアクセス解析の大本はこれです。
[アクセス解析CGI](https://shinobit.net/archives/720 "アクセス解析")

見る人が見ればいかに穴だらけなのかは丸わかりだと思います。

私はこれを利用してBOT達と戦う事を決めました。

ほんとうにしつこい。。。しつこすぎる。

彼らのBOTの目的はなんでしょうか？
私には完璧でないにしろそれを知る必要があります。

彼らはステルススクリプトを仕込む事を目的にしているように感じました。
おそらく位置情報や端末情報等を監視し、隙あらばメールサーバをのっとる算段だったのでしょう。
（ここは妄想かもね）

彼らはやり口を全く知らない状態からのスタートです。
私は全てをブロックするのではなく出来る限り泳がせる戦略をとりました。
そしたら色々な技を駆使してスクリプトを仕込みにやってきました。

IPが空になっていたり、
```
//IPアドレスが空
if (empty($user_ip) || !isset($user_ip)) {
	header("Location: https://example.com/", true, 301);
	exit();	
}
```
ユーザーホストが空になっていたり
```
//ユーザーホストが空
if (empty($user_host) || !isset($user_host)) {
	header("Location: https://example.com/", true, 301);
	exit();	
}
```
IPやホスト情報にコマンドを仕込んだり
```
//$user_hostが数字だらけの偽装やろう（この数字にコマンドが含まれてると思われる）
preg_match_all('/[0-9]/', $user_host, $matches);
if(count($matches[0]) > 20){
	header("Location: https://example.com/", true, 301);
	exit();	
}
preg_match_all('/[0-9]/', $user_ip, $matches);
if(count($matches[0]) > 14){
	header("Location: https://example.com/", true, 301);
	exit();	
}
```
IPがIPでない、逆にホストがIPになっていたり
```
// 正規表現パターン　IPかどうか
$pattern = '/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/';
  // 正規表現でマッチするかどうか判定
  if (preg_match($pattern, $user_ip)) {
  } else {
	header("Location: https://example.com/", true, 301);
	exit();	
}
// ホストがIPに偽装しているか？
$pattern = '/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/';
  // 正規表現でマッチするかどうか判定
  if (preg_match($pattern, $user_host)) {
	header("Location: https://example.com/", true, 301);
	exit();	
  } else {
}

```

色々な必殺技を駆使してくださいました。

おそらく本来の目的はステルスでスクリプトを仕込む事なので放置していてはセキュリティ的恐ろしい状態になるのは目に見えていました。

とにかくあの手この手で私のサイトを壊しにかかってきていました。

例えばIP情報を監視してみると
```
35.86.246.21544.229.148.21735.92.161.19144.212.112.143.20.166.553.208.146.243
```
これが・・・IP???
こういう事をしてきます。

一体何をしてるのでしょうか？

私は業者との格闘のさなか、少し用事があり大阪にいきました。
そしたらすっごい不思議な経験をしたのです。

駅の改札で降りる時に私の時だけ切符いれても閉まるのです・・・２度ありました。

は？なんだ？　故障？

いや、待てよ。。。次の電車に乗る時は携帯電話の電源を落としてから乗ろう。。。


鳴らない。。。　　もしかして、こいつらじゃ・・・・

こわい・・・（信じてもらえないかもしれませんがマジ話です）



えーと、まとまりのない話ですいません。
とりあえず、ほとんどの駆逐は出来たので、ブロックすべきIP一覧を載せておきますね。
```
deny from 192.99.0.0/22
deny from 194.36.
deny from 194.147.
deny from 173.252.
deny from 42.194.
deny from 42.83.
deny from 193.235.141.
deny from 5.9.0.0/16
deny from 124.220.0.0/14
deny from 51.77.38.
deny from 195.154.128.0/17
deny from 195.201.
deny from 216.41.232.0/22
deny from 104.144.0.0/16
deny from 108.174.48.0/20
deny from 194.247.172.0/23
deny from 216.244.64.0/19
deny from 193.235.141.0/24
deny from 168.80.168.0/21
deny from 65.108.0.0/15
deny from 51.77.0.0/16
deny from 42.194.128.0/17
deny from 192.95.0.0/18
deny from 144.76.0.0/16
deny from 104.227.0.0/16
deny from 38.0.0.0/8
deny from 18.32.0.0/11
deny from 137.226.0.0/16
deny from 144.76.0.0/16
deny from 158.69.0.0/16
deny from 95.214.234.0/23
deny from 162.55.0.0/16
deny from 188.165.0.0/16
deny from 3.128.0.0/9
deny from 44.192.0.0/10
deny from 195.201.0.0/16
deny from 130.61.0.0/16
deny from 216.41.232.0/22
deny from 216.244.64.0/19
deny from 173.208.128.0/17
deny from 167.248.133.0/24
deny from 164.132.0.0/16
deny from 52.64.0.0/12
deny from 54.222.0.0/15
deny from 194.247.172.0/23
deny from 100.20.0.0/14
deny from 110.240.0.0/12
deny from 94.23.0.0/16
deny from 185.27.96.0/22
deny from 138.199.36.0/23
deny from 217.182.0.0/16
deny from 136.243.0.0/16
deny from 34.145.164.0/22
deny from 51.158.0.0/15
deny from 144.91.106.0/23
deny from 66.220.149.0/28
deny from 51.79.228.0/22
deny from 168.119.76.0/22
deny from 149.202.84.0/22
deny from 109.200.224.0/19
```

そして、生まれたばかりの私のサイト
[ごみ箱](https://gomibako.xyz/ "GomiBako")
に遊びに来て頂けれたら幸いです。



宣伝乙！