21 ポイント 投稿者 xguru 2023-11-15 | 5件のコメント | WhatsAppで共有
  • WAFの使用に反対する人があまり多くないので、この記事を書く。WAFに関する検索結果の大半はWAFベンダーによって書かれている
  • WAFはインターネット初期に作られ、すべてのHTTPリクエストを横取りして何百もの正規表現を評価し、SQLやシェルコードなどに類似したリクエストを遮断する
  • サイバーセキュリティの初期にはWAFは良いアイデアのように見えたが、今日のWAFはそうではない
  • WAFには性能上の問題、回避可能性、攻撃ベクトルとしての危険性、高い誤検知率などがあり、現在ではより優れたセキュリティ技術が存在する

WAFの性能はひどい

  • WAFはすべてのリクエストに対して何百もの正規表現を実行するため、性能低下が発生する
  • WAFの使用時にはかなり多くの追加RAMが必要になり、平均アップロード時間、リクエスト処理速度、CPU使用率が悪化し、誤った遮断も発生する

WAFは簡単に回避される

  • WAFと攻撃者の絶え間ない競争の中で、攻撃者が優位に立っている
  • 複雑な文法やエンコーディング技法を使ってWAFのルールを回避することが可能
  • 例えば、Log4shell攻撃は単純な文字列検査では遮断できず、攻撃者はさまざまな回避技法を使うことができる(Log4J Lookup)
  • また、攻撃文字列に8KBほどの不要だが無害な文字を詰め込むと、WAFはRAMに継続してバッファリングできずカットオフされるため、役に立たなくなる

WAFは攻撃ベクトルである

  • 2019年、CapitalOneではWAFの設定ミスにより1億件の信用申請が流出する事件が発生した
    • 攻撃者はWAFをだましてEC2メタデータサービスにリクエストを送らせ、S3から機密ファイルを読み取れる認証情報を取得したとされる
  • つまり、WAFの誤設定によりセキュリティ事故が発生する可能性がある
  • ほとんどのWAFは複雑で、しばしばクローズドソースで書かれており、攻撃面が広がる
    • 高価な「エンタープライズ」製品であるため、企業は競合より目立つよう不要な機能を詰め込みがちである
  • セキュリティ製品に対する基本的なセキュリティ原則がしばしば無視される

WAFの高い誤検知率

  • 過去20年間で、オープンソースのWAFルールセットは最新の種類の攻撃を検知するために大幅に拡張されてきた。独自WAFも同じことをしているはずだ
  • これは、WAFを動かしてリクエストを遮断できる文字列がますます増えていることを意味する
  • このように新しいルールが出るたびに、WAFルールの拡張によって誤検知率は上昇する
  • 「次世代」WAFは、複数のリクエストを確認したりIPレピュテーションシステムを使ったりしてこの問題を解決すると主張する
    • 偽陽性率(false positive rates)を改善できるかもしれないが、誤検知の問題を完全に解決することはできない
  • 誤検知により、ユーザーやサポートチームが明確な解決手順を持てない場合がある

WAFの代替手段

  • 分離(Isolation): システムの一部が侵害されても他の部分に影響しないようにする技術
    • ブラウザは、Cookie、保存済みパスワード、他のタブなどへの任意アクセス権を持たない特別なサンドボックスプロセス内ですべてのコードを実行することでこれを実現している
    • マイクロサービスは分離を念頭に設計されているが、さまざまなライブラリや言語を使ってモノリスとして実現することもできる
  • 不変性(Immutability): 読み取り専用ファイルシステム、再起動が必要なパッケージマネージャー、追記のみ可能なバックアップなどを通じて攻撃のカテゴリを除去する
  • 静的解析(Static Analysis): SQLインジェクションを防ぐためのプリペアドステートメントの使用と、CIパイプラインでの静的解析によるコード検査
  • ケイパビリティベースのセキュリティ(Capability-based Security): すべてのAPIエンドポイントがデータベースやファイルシステムに無制限のアクセス権を持つ必要はなく、必要な権限だけを付与する方式を導入する

5件のコメント

 
[このコメントは非表示になっています。]
 
roxie 2023-11-18

:+1:

 
devpain 2023-11-16

nginx + naxsi の組み合わせであれば、上記のいくつかには当てはまらないように思います。
WAF のルールセットは、サービス開発者が担う形で持っていくべきです。
セキュリティ専門家はサービスへの理解なしに汎用的な設定を行うことになり、その結果高い誤検知率を発生させ、要請に応じてルールセットを1つずつ削除していくことで、WAF 本来の機能を失うことになります。

 
nosookja 2023-11-15

バイパスや誤検知の部分については一部同意しますが、全体的には確実ではない情報が事実であるかのように並べられている印象が強いです。時間があれば原文の内容も見てみないといけませんね。特にCapitalOneの事例をWAFの問題として挙げているのは、原文の筆者がWAFに対する理解がかなり不足しているように見えます。WAFは脆弱性を根本的にMitigationしてくれるソリューションではありません。コードで発生した脆弱性はコードで解決するのが正しい解決です。しかし現実はそうはいかないため、疑わしい、あるいは悪意のあるインプットを手前で検査する適切な何かが必要なのです。これをうまく運用すれば本当に良い刃物になりますし、うまく運用できなければ自分を傷つける刃物にもなります。ツールの両面性は常にあるものですが、あまりにも悪い面だけを強調しているテーマのように思えます。

 
xguru 2023-11-15

Hacker Newsのコメントには、これに関するさまざまな意見や反論があります。あわせて参考にしてください
https://news.ycombinator.com/item?id=38255004