今回はWeb AI ファイアウォール Anubis の紹介です。
Anubisは、WebにアクセスしたクライアントにProof-of-Workを課します。単独のアクセスでは大した負荷ではありませんが、分散して大量のアクセスを行うBotに無視できない負荷を与えます。Anubis 曰く、コネクションの魂を評価すると言っています。
動作
具体的な動作としては
Webにアクセスすると、Proof-of-Workのページが表示されます。自動で計算処理が始まり、その後、1秒もせず本来のページに遷移します。

Anubisを導入している下記のURLにアクセスすることで体験できます (結果はCookieに保存されるため、2回目は表示されません)
構成
AnubisはただのWeb Proxyですので、間に挟む事で動作します

Proof-of-Workの流れ
https://anubis.techaro.lol/docs/design/how-anubis-works で説明されている通り
- サーバは、User-Agentや時刻を元に、チャレンジを送ります
- クライアントは、チャレンジを元に条件を満たすHashを探します (指定された個数0が並ぶhashを、nonceを弄りながら探す)。それらの情報をJWTにし、Cookieに付与して送信する
もちろん、IPやUser-Agentなどで設定は細かく変えられるようになってます