技術者ブログ
クラウド型WAF「Scutum(スキュータム)」の開発者/エンジニアによるブログです。
金床“Kanatoko”をはじめとする株式会社ビットフォレストの技術チームが、“WAFを支える技術”をテーマに幅広く、不定期に更新中!

二分探索による高速なIPアドレスマッチングのアルゴリズム
はじめに
Scutumには他の多くのWAFと同じようにIPアドレスを使ったアクセス制御の仕組みが備わっています。例えば特定のネットワークからのアクセスを拒否したり、逆に特定のネットワークやアドレスからのみアクセスを許可する、という設定が可能です。
このとき、例えば「日本の国内のIPアドレスからのみアクセスを許可したい」のような要求がある場合など、数千〜数万くらいの大量のネットワークアドレスのエントリが列挙されて設定されることがあります。
実際にアクセスを制御する場面では、そのとき接続してきたある1つのIPアドレスが、上記の大量のネットワークアドレスの中の「いずれかにマッチするか、あるいはまったくマッチしないか」を高速に判定する必要があります。
Scutumではこの処理に二分探索を使うことで高速なマッチングを実現しました。今回はこのアルゴリズムを紹介します。
高度なコマンドインジェクション攻撃とその対策
はじめに
ScutumはフルマネージドなWAFサービスなので、利用しているユーザさんが気づかない間にどんどん変化し、防御能力を強化しています。これらの強化された点について、これまではあまり宣伝や周知を行っていなかったのですが、今後は少しずつ、このブログでお知らせしていこうと思っています。
防御を強化しているポイントはマニアックな細かなものから重要なものまで多岐に渡ります。今回紹介するのは、我々としてはかなりインパクトがあると考えているものです。
2019年の秋に、コマンドインジェクションに対する防御能力を強化しました。コマンドインジェクションといっても普通のものではなく、比較的最近になって知られるようになった、「WAFを回避する」種類のコマンドインジェクションです。