BOTを使う場合、自分の家の環境でIPBANになったら不便になるので、ProxyIPを使うか、VPSを使う選択をする場合も多いと思う。
最近、ユーザからインストーラが動かないという連絡があった。以前もこの問い合わせがあったときは、ITリテラシーが無いのだろうと決めつけてしまい、BOT利用自体をお断りすることがあったが、今回は詳細な事象を話してもらえたため、原因追及のために私自身が調査を行った。
当社のインストーラは2種類存在しており、インストーラ内に全てのモジュールを詰め込んであるものと、インストーラを起動すると、インターネットからモジュールをダウンロードするものがある。今回の事象は後者の方で、モジュールがダウンロードできないので、インストーラを動かすことができなかった。
最初は、ファイヤーウォールや受信の規則を弄れば良いのではと考えていたのだが、そこらを弄っても全然改善されない。
まず何が原因なのかを調べるため、VPSにWiresharkを入れて、通信の状況を監視したところ、そもそもデータがサーバに届いていないことが分かった。具体的には、サーバには送っているが、KAGOYAのLAN内で戻されていた。恐らくルータにブロックフィルターを仕掛けているのだろうと思い、問題の切り分けをするために、HTTP POSTデータ送信を行うだけのアプリを作り、暗号化ライブラリを変えて通信できるか確かめた。
当社が使っている暗号化ライブラリはOpenSSLを採用しており、インストーラもOpenSSLを使用している。これはOpenSourceであり且つアップデートが頻繁に行われているため、信頼性の高いものである。こちらを使った場合は、サーバとの通信が行えなかった。
もう一つはEdgeの暗号化ライブラリを使ったHTTP POSTデータ送信を使用したところ、問題無くサーバとの通信ができた。
暗号化ライブラリが関係しているのは、下記の第5層に位置している。恐らくKAGOYA VPSでは、LAN内のルータにて第5層のペイロードを見て、OpenSSLだと分かる何かで判断して、ブロックしているのだと思う。
BOTが扱っているのは第7層だが、ここは暗号化ライブラリによりデータが暗号化されているのでチェックすることが出来ない。そこでBOTが使用している暗号化ライブラリに着目して、BOT利用者を弾き出そうとしたという訳だ。
いつから使えなくなっているのかは分からない。少なくとも1回目の使えない報告があったのが2023/3/25なので、それより前から使えなくなっていたということだろう。
この対処の仕方が、一般的に考えてあり得ない対応だと思ったので、当方からKAGOYAに以下のように問い合わせてみた。
土日祝を除いた3営業日と考えると、18時は営業時間外なので11/14(火)までに連絡があるのか待ってみようと思う。
今回発覚した暗号化ライブラリ特有のペイロードでブロックしているということが分かり、こういう技術は、BOT対策として他でも行っているに違いない。
ブラウザと同じデータを送っているのに、処理でHTTP通信を行うとサーバ側で弾かれる理由の1つにこの件が該当するのだと思うと、もっと早く調べておけば良かったと少し後悔した。
当社BOTは全てOpenSSLを使用しているため、他の暗号化ライブラリに変更しようと実際に動き始めている。
サーバ運営側はBOT利用者を追い払いたいと思うだろうが、私はBOT利用者を推進する側なので、今回のことは正直むかついた。