好きとか嫌いとか投票してるあれなサイトの投票スクリプト[対策されました]

2/22追記: コメント欄をご確認ください。現状、Lambdaからのアクセスで大量に投票する手法は事実的に無効化されています。また、コードについても、名前を書いていないあのサイトに通用しないなら害悪でしかないため非公開としました。この記事は既に跡地です。

好きとか嫌いとか投票してる治安の悪い海外サーバーのサイトがありますよね?
ああいうの本当に不毛だと思っていて、存在意義なくなっちゃえばいいのにと思っているんですよ。

何が気に入らないって、好きな人からも嫌いな人からもヘイトを巻き上げて広告で稼ぐビジネスモデルなんですよね。しかもユニーク数が増えるように設計されている。よくできていると思います。

そういうサイトで一番しらけるのって何かって言うと自動投票のスクリプトなんですね。
でも、このサイトはよくできていて、IPアドレスを見つつtorのような公開されているプロキシーサーバのIPは事前に弾いてきます。
なので普通は携帯の電波を切り替えまくるとか、一生懸命プロキシーを探すとかが限度かと思います。

AWSつかいませんか?

このサイト、ロボット検知が優れているわけではありません。所詮、みているのはIPアドレスです。
ならば、AWSやGCPの環境をうまく借りることで無数のIPアドレスを得ることができます。

ロボットのコードは文末に置いておきます。このコードを1行変更し、lambdaで起動すればあいつに定期的に投票できるでしょう。

AWS Lambdaはおおよそ10分間に1回の起動であれば高確率で別のIPアドレスからアクセスを実行してくれます。そのため、1日に複数回の投票が可能になります。
複数リージョンを使うなど、使用するipを分散すれば1日数千票を投票可能と思います。

(ただ、Lambdaをたくさん起動するほどAWSの無料枠を食い潰すのでどこかで有料になります)

※投票回数について補足します。上記では10分に1回と書いていますが、これは並列可能です。つまり、10関数並べた場合の理論最大投票回数は10分あたり10投票です。つまり1時間で60票であり、24時間では1440票です。
ただし、常にユニークなIPを引けるわけではないので、実際にはその7-8割になるのではと考えます。(Lambdaを動作させるネットワークを分散させればさせるほど、理論最大に近づくでしょう)
金額の見積もりに興味がある人向けに有料エリアに見積もりを置いておきます。ご参考にしてください。

AWSの初期登録などは自分で調べられる方が行ってください。あまりに無茶な設定をすると高額課金の要因になります。
普通に動かす分には一ヶ月あたりの無料枠に収まるはずです。
コンピュータに疎い人は痛い目を見る可能性が高いためこの記事は具体的な方法を詳細には解説しません。ChatGPTに聞きながら、調べながら、などで実行できる人を対象にしています。

プログラム

DOS攻撃レベルの運用をしてしまった方がいる可能性があるので非公開とします。

手順

  1. 上記のDockerFileを、lambdaを登録する環境のAWS ECRにdocker pushしてください。

  2. lambdaを作成してください。このとき、コンテナイメージを選択し、1で登録したイメージを使用するようにします。
    なお、関数名Aを10分より短い間隔で起動するとIPアドレスが重複しやすいですが、関数名A,Bを同時に起動する場合異なるIPアドレスで起動するようです。

  3. lambdaの設定を変更してください。使用するメモリは512MB、タイムアウトは1分30秒とします

  4. テストを実行してください。テストデータは必要としないので、何を投げても大丈夫です。成功したら次に進みます

  5. EventBridgeをlambdaの画面から設定してください。これについては詳細を後に書きます。

設定完了の状態

EventBridge

lambdaの画面からトリガーを追加、を選択して具体的な項目を入力していきます。
EventBridgeは決められたスケジュールに基づいてlambdaを起動するトリガーを担います。例えば、下記は5,15,25,35…のようにx5分ごとに実行されるcronと呼ばれるスケジュールマネージャの設定を行っています。

注意事項

  1. どれくらいの頻度でアクセスすることになるかについてはよく留意してください。秒間アクセスを上げすぎるとDDoSのような攻撃とみなされても仕方がありません
    また、このような自動投票自体褒められるものではありませんが、個人的にはそれ以上にあんなサイトは存在意義を失えばいいのにと思っている次第です。

  2. コードの動作確認、lambdaにおけるIPアドレスの振る舞いなどは確認済みです。

  3. コードの保守自体は行う予定はありません

  4. 実行するリージョンはどこでも良いです。リージョンをまたぐほど引けるIPは増えます。ただ、アメリカとかになるとアクセスに時間がかかってくるとかはあります

投票のための設定が難しいんだけど?

トラブルを防ぐためにも、あきらめてください。(知識のある人向けには、そこまで難しいことはしていないのです)
またはプログラミングとクラウド技術を少し勉強してみましょう。

もし、質問があればコメントしてもらっても大丈夫です。

金額の見積もり

Lambdaの料金はAWSに公開されているので計算可能ですが、この手の構築に慣れていない人は不安だと思うので試算を有料エリアに置いておきます。
AWS lambdaの料金は下記を見てください。

抑えるべきポイントは下記です。

  • だいたいx86(intel, amd cpu)の料金をみればOK 

    • もし、持っているPCがAppleのM1Mac等のArmなら、Arm向けイメージをビルドしたらx86より安くはなる

  • リージョンごとに料金体系が微妙に違う場合があるよ

  • Lambdaの料金はリクエスト回数、実行時間、使用メモリの3つで定まるよ

ここから先は

947字

¥ 300

この記事が気に入ったらサポートをしてみませんか?