アプリケーションセキュリティに関わる多くの経験者は、WAF(Webアプリケーションファイアウォール)というセキュリティツールがしばしばそれが持つ可能性を最大限に活用されていないという事実に同意するでしょう。
これには様々な理由がありますが、残念ながら事実としてWAFはあまり評判が良くないという点が挙げられます。多いのは、WAFの使用に対する懸念で、それは潜在的なパフォーマンス問題への懸念、アプリケーションの処理を邪魔される恐れ、管理の取り扱いが複雑すぎ、微調整のためにかかる手数についての懸念などが挙げられます。
これらの懸念事項のすべてに根拠があります。もちろん分析する必要もありますが、この記事の前提条件であるIT組織内の内部組織構造も実際にWAFの使用如何を決定する重要な要素の一つであるということを忘れてはいけません。
そこで「DevOps」という動きが登場します。DevOpsは、アプリケーションの開発チームと運用チームの間の組織的な欠陥を改善させる新しいIT現場での動きで、製品開発の効率性をアップさせます。一見すると、WAFとDevOpsは無関係のトピックのように思えますが、DevOpsの新しい考えがWAFの新しい使用方法に大きな改善をもたらすと期待できます。
さて、ここで全く異なる角度から簡単な質問を挙げたいと思います。「誰が実際にWAFを使用するべきでしょうか?」この質問に対する答えはWAFの基本的な使用方法によると考えています。
誰が実際にWAFを使用するべきでしょうか?
WAFはアプリケーション開発者が手に入れるべきツールなのしょうか?結局のところ、アプリケーションの開発者はアプリケーションについて、そして実際にどのように動作するのかを一番知っているはずです。そこで、困難なセキュリティ機能を開発するより、WAF上で再利用すれば効率も上がるし、そのWAFをアプリケーションのセキュリティアーキテクチャの一部として使用できるようになります。
これに対して、WAFの使用はネットワークやセキュリティのインフラの運用チームに限ったものなのでしょうか?結局のところ、WAFはアプリケーションのコードの中でアプリケーションの開発者のミスを把握し、その脆弱性をインフラストラクチャーレベルで修正するため、必要不可欠なセキュリティフィルタリングの機器とみなされています。
コンベンショナルWAFの問題点
開発者が開発中にWAF機能を使用しなければいけない場合、彼らの開発環境上とテスト環境上にもそのWAF機能が使用できるように実装する必要があります。しかし、WAFは、多くの場合、本番環境にのみ存在するインフラストラクチャとして認識されています。アプリケーションの開発中にWAFの機能を使用・追加および変更し、アプリケーションと一緒にテストし、WAFの潜在的な可能性を探るチャンスをフル活用している開発者はほんのわずかです。
それが少々矛盾点であるように思えますが、開発(Dev)チームと運用(Ops)チームがお互いに協力し話し合えば、この問題が簡単に乗り越えられ、セキュリティ技術としてのWAFを最大限に活用させることができます。
しかし、本当の問題は「DevとOpsはIT現場組織の伝統的なサイロ化において完全に分離されているということです」。こういった分離は、IT業界のベストプラクティスとしてみなされているために、DevチームとOpsチームは実際に互いのコミュニケーションをうまくできない状況に陥ってしまいます。
WAF技術への懸念:アプリケーション層なのか?インフラ層なのか?どちらに属すのか?捉えにくい正体…
この技術において大きな問題点は、WAFそのものが多くのステークホルダーの視点からみて勘違いやすい技術ということです。WAFがアプリケーション層なのか?インフラ層なのか?どちらに属すのか?捉えにくい正体なので、技術としての評判は良くないです。
WAFは、他のツールやソリューションとは異なり、通常はIT組織の様々なチームによってカバーされる多数のレイヤーの機能を提供します。しかし、組織的なサイロ化という欠陥によって、関わるDevとOpsのチームは十分なコミュニケーションができず、組織内外へのサービス提供が犠牲になる能性があります。
WAFの目標はアプリケーション層で動作することです。しかし、その本質による認識の誤解と組織的なサイロ化のせいで、多くの場合、WAF技術への期待が十分果たされていません。結果としてWAFは、アプリケーション層の詳細をカバーできない(もしくはカバーしたくない)ネットワークセキュリティやインフラストラクチャの運用チームによって運用されることになります。
インフラの運用チームにとって、アプリケーションセキュリティはかなり複雑になる場合があるので、WAFはアプリケーションレイヤーのオペレーショナルリスクをもたらす恐れがあるため、リスクの高いツールとして認識されてしまいます。DevとOpsの間の組織的な壁は、WAFが持つ可能性を最大限に活用させることに対して望ましくない影響を及ぼします。
「DevSecOps WAF」のシナリオで付加価値を
これらの問題点とDevOpsの背景は新しいシナリオのヒントとなります:DevとOpsのチームが協力体制を取ることにより、アプリケーション開発におけるWAFの使用が普及し、さらに改善するでしょう。
IT業界でDevOpsは新しい方法です。運動自体は確立されたもので、IT組織内のサイロ化のような従来の悪い習慣を打ち破ります。したがって、DevOpsはテストおよび展開のパイプラインを自動化し、アプリケーション開発の効率を向上させます。
また、Webアプリケーションを構築するときにDevOpsの開発コンテキストにWAFを持たせることで、DevOpsパイプラインにWAFを組み込むこともできます。このようなIT環境上で、開発者がアプリケーションのセキュリティのためにWAFの機能を使用すると、「DevSecOps WAF」というものになります。
「DevSecOps」は、セキュリティをDevOpsにもたらすために使用される概念です。したがって、より良い用語がないので、”DevSecOps WAF”を通常の”コンベンショナルWAF”のアプローチと区別するために、ここでも使用します。
DevOpsとDevSecOpsの動きはDevとOpsのチームが高度なセキュリティWAF機能をよりよく使用してもらえるきっかけになると信じています。この動きは、WAFをどのように使用したらいいのかという新たな視点を持つ機会を提供し、Webアプリケーションセキュリティの効率性をアップさせるとともに改善するという新しい可能性をもたらします。
ディパオロ・ロベルト (Author: Roberto Di Paolo)
2018/07/24, last update 2018/07/27 ©ACROSEC Inc.