本番環境におけるWeb脆弱性診断を考えるポイント(2023/03/31)
2023年03月31日 13:23 (JST)
こんにちは、アセスメントサービス部の篠宮です。
セキュリティへの重要性が高まる中、Web脆弱性診断を受けたいとおっしゃる企業様がますます増えてきていることを感じています。一方で、Web脆弱性診断を受ける上でのお客様側のコツや注意点については、まだまだ普及活動が足りていないことも感じています。
そのため、本記事では、お客様側のコツ、注意点の一つとして、「本番環境におけるWeb脆弱性診断を考えるポイント」をご紹介していきます。本番環境でのWeb脆弱性診断で得られるメリットもありますが、「実際のユーザにも影響を与えてしまう可能性がある」など、デメリットもあります。
本記事でご紹介するメリットやデメリット、そして、本番環境で受ける際のポイントを参考に、お客様のニーズにあったWeb脆弱性診断を実施いただければ幸いです。
※なお、本記事での本番環境とは、既にユーザに公開している環境であり、公開前の本番環境は検証環境として読み替えてください。
1 本番環境におけるWeb脆弱性診断のメリット/デメリット
まずは、「本番環境で診断するべきか否か」を決めるうえでの指標であるメリット/デメリットについて、いくつかご紹介していきます。
1.1 本番環境におけるWeb脆弱性診断のメリット
代表例として、下記についてそれぞれご紹介してきます。
・ユーザが実際に触れるWebアプリを診断できる
・動作することが保障されている
・防御機構全体で、脆弱性を評価することができる
1.1.1 ユーザが実際に触れるWebアプリを診断できる
現在のWebアプリ開発では、様々な開発メンバーが様々な環境を用いて開発を行っています。そのため、開発プロジェクトによっては、「検証環境と本番環境とでWebアプリに差異が発生してしまう」といったこともあります。この場合、せっかく検証環境で診断をしても、本番環境で稼働するWebアプリの中に、診断していない機能が存在する可能性があります。
一方で、本番環境では、ユーザが実際に触れるWebアプリを対象としているため、開発プロジェクトメンバーが想定しているすべての機能を対象に含めることができます。そのため、抜け漏れなく診断候補を選定することができます。
1.1.2 動作することが保障されている
現在のWebアプリは複雑になる一方で、早期リリースが求められてきています。そのため、不測の事態が発生しやすく、脆弱性診断も開発と並行して行うお客様もいます。この場合、開発中であることから、「脆弱性診断期間に動作しない」といったことが起こりえます。「なるべくご希望の箇所は診断したい」というのが脆弱性診断ベンダではあるのですが、期間や契約の関係上、「すべてのご要望にはお答えできない」というのが実際のところです。
一方で、本番環境は、実稼働しており、動作が保証されているものであるため、「診断対象としたが動かなかった」といったことは基本的にはありません。
1.1.3 防御機構全体で、脆弱性を評価することができる
現在のセキュリティ対策は、Webアプリ単独のセキュリティ対策だけでなく、WAFなども含めた多層防御の考え方が主流です。しかし、検証環境においては、コスト面等も考慮し、ネットワーク側の防御としては、IP制限等に留めることが多くあります。そのため、検証環境における脆弱性診断では、防御機構全体を通して、セキュリティ対策がなされているかの診断は難しくなります。
一方で、本番環境では、プロジェクトが想定するすべてのセキュリティ製品が稼働した状態となっているため、実際の攻撃がなされたときの検証を行うことができます。
1.2 本番環境におけるWeb脆弱性診断のデメリット
代表例として、下記についてそれぞれご紹介しています。
・ユーザに影響が出る可能性がある
・システムが停止する可能性がある
・連携先に影響が出る可能性がある
・上記が発生し、風評被害につながる可能性がある
・網羅的に診断できない可能性がある
・システム運営者に影響が出る可能性がある
※なお、本番環境においては、『常に』、攻撃者により上記リスクを被る可能性があります。そのため、システムを新規作成または更改する際は、リリース前に脆弱性診断を行い、上記リスクが発生しないように脆弱性を見つけ、対策することが重要となります。
1.2.1 ユーザに影響が出る可能性がある
実際のユーザが使用する環境であるため、脆弱性診断を通して下記が発生する可能性があります。
・ユーザのデータが書き換わる/削除される
・ユーザへ疑似攻撃が発生する可能性がある
・ユーザに大量のメールが送信される
・ユーザのデータを診断員が閲覧してしまう可能性がある
もちろん、どの診断ベンダも上記が発生しないように注意はしますが、可能性を0にすることはできません。特に、管理画面を診断対象とする場合は、影響範囲がシステム全体となり、全ユーザに何らかの影響が出る可能性があることに注意が必要です。
1.2.2 システムが停止する可能性がある
原則、脆弱性診断は「非破壊」ということが前提ではありますが、脆弱性診断においては、開発プロジェクトであまり想定されていない値も検査値として送信します。また、そのため、開発メンバーが想定していない動きやサーバへの負荷が増加することで、システムが停止する可能性があります。
1.2.3 連携先に影響が出る可能性がある
現在のシステムでは、複数のシステムが連携して、サービスを提供する構成が多くあります。この場合、例えば、診断対象であるシステムAで登録された診断用データが、連携先のシステムBで利用される可能性があります。システムAで脆弱性がない場合でも、システムBでは脆弱性がある可能性があります。この場合、システムBのユーザへの影響や、システムBが停止する可能性があります。
1.2.4 上記が発生し、風評被害につながる可能性がある
ユーザに影響がでることや、システムが停止することは、システムそのものだけでなくステークホルダー全体への風評被害につながる可能性があります。
1.2.5 網羅的に診断できない可能性がある
本番環境で診断を行う場合は、上記のような影響を極力発生させないために、診断対象を絞り込むことが多くあります。例えば、システム全体に影響を与える機能などは、何か起こった際の影響度が高いため、除外される場合があります。
一方で、システム全体に影響を与える機能は、実際に攻撃された場合にも影響度が高い機能のため、診断した方がよい機能でもあります。このように、本番環境では、重要な機能であっても診断対象外にしなければならない場合があることから、網羅的な診断ができない可能性があります。
1.2.6 システム運営者に影響が出る可能性がある
本番環境では、システム運営者がユーザのアクセスログや操作ログを分析することで、システムやビジネスの改善を行うことが多くあります。そのため、本番環境で診断を行う場合は、システム運営者が通常想定していないログが大量に登録されることで、分析業務に支障を与える可能性があります。
また、システムの中には、システム運営者に何らかの通知をする機能を持つ場合があります。代表例としては、ユーザからの問合せ機能があります。仮にこの機能を診断対象として選定した場合は、システム運営者に大量のメールが送信されることにより、システム運営者の日々の業務に支障を与える可能性があります。
以上のことから、ユーザや連携先への影響を考慮しますと、本番環境ではなく、試験環境(公開前の本番環境含む)にてWeb脆弱性診断をしたほうが、より安全に診断することができると考えられます。
本番環境での診断をご希望のお客様であっても、上記のリスクをお話した結果、新しくWeb脆弱性診断用の検証環境をお客様が構築し、検証環境で診断するようになったケースもございます。
Web脆弱性診断自体は、システムの安全性を高めるためのサービスではありますが、サービスの特性上、デメリットで記載したようなリスクもございますので、本番環境で診断する際は、十分にご検討ください。
2 本番環境におけるWeb脆弱性診断を考えるポイント
それでは、これまで挙げたメリット/デメリットなどを考慮した結果、「本番環境でWeb脆弱診断をする」となった時に考えるポイントをいくつかご紹介していきます。本番環境での診断では「問題が発生する可能性」や「問題が発生した際の影響度」を下げることが重要になります。具体的な例としては、脆弱性診断をする前に下記を検討、対策しておくことがポイントです。
・ユーザへの影響が少ない時期に診断する
・ユーザへの影響が少ない機能やデータを診断対象とする
・SOCチームも含めたステークホルダーとの連携を行う
・バックアップを取得し、リカバリプランを検証する
2.1 ユーザへの影響が少ない時期に診断する
システムがよく利用される時期や時間帯を避けて診断することで、問題が発生した際の影響度を下げることが可能です。システムによっては、特定の時期であれば、ほとんどユーザが利用しないということもあります。この場合は、脆弱性診断を行う時期をシステムメンテナンス期間とし、ユーザはアクセスできない旨を案内することで、ユーザへの影響度を下げることが可能です。
2.2 ユーザへの影響が少ない機能やデータを診断対象とする
いわゆる完了処理と呼ばれる「登録・更新・削除」といった機能は、ユーザやシステムに影響を与える可能性が高いため、対象外とするということが考えられます。
特に、システム全体に影響が出る完了処理や、外部連携している完了処理を対象外とすることで問題が発生する可能性を抑えることができます。
また、脆弱性診断で使用してよいデータを用意しておき、それ以外のデータは禁止操作とすることも対策として考えられます。これは他のユーザへの影響度を下げる効果もありますが、診断後に診断用のデータを識別し、削除するためのマーキングとしての効果もあります。診断で使用した検査値が残っている場合、思わぬところで影響が出る可能性があることから、診断時に使用したデータは削除することをお勧めします。
2.3 SOCチームも含めたステークホルダーとの連携を行う
ステークホルダーとしては、システム運営者だけでなく、攻撃を監視するSOCチーム、システムが外部連携している場合は連携先の関係者などを挙げることができます。
攻撃を監視しているチームには、脆弱性診断期間中は、特定のIPから疑似攻撃が発生する旨を伝え、アラートが発生しても無視するように調整することが重要です。連携していない場合は、実際の攻撃が発生したものとして、お客様内でインシデント対応が発生することや、診断会社のIPアドレスがすべて遮断され、効果的な診断ができない可能性があります。
システムが外部連携している場合は、診断中は外部連携を行わない、または、連携しても問題ないかを、関係者と調整することが重要です。
2.4 バックアップを取得し、リカバリプランを検証する
脆弱性診断前にバックアップを取得し、最悪の事態を想定して、脆弱性診断前の状態に戻せるように準備しておく対策が考えられます。
特に、リカバリプランを実際に検証しておくことが重要です。バックアップを取得し、リカバリプランは作成していたが、実際は戻せなかったというケースがあります。
リカバリできる体制を整えることは、実際に攻撃者に攻撃されたときも有効であるため、脆弱性診断の実施有無に関わらず、検証環境などでリカバリプランに再現性があるかを確認することをお勧めします。
3 本番環境での診断における弊社の取り組み
ここからは、実際に弊社でご提供しているWeb脆弱性診断サービスをご紹介いたします。
弊社では、いわゆる通常診断と呼ばれる「Webアプリケーション診断」とリーズナブル+お手軽な診断ができる「おまかせWebアプリケーション診断」の大きく2つをご提供しています。
・Webアプリケーション診断
・おまかせWebアプリケーション診断
3.1 Webアプリケーション診断(通称:通常診断)
通常診断では、本番環境でも安全に診断するために、診断対象一覧をお客様にご確認いただき、実施の合意をいただいてから、診断を開始しています。もちろんお客様には禁止事項を事前にヒアリングシートに記入いただきますが、ブラックボックスで診断している関係上、画面からだけでは禁止事項に見えない処理も中にはあります。
そのため、お客様の禁止事項に極力触れない形で、弊社側で対象一覧を作成した後、システムのことを一番熟知しているお客様自身に最終確認いただくことで、禁止事項やお客様の懸念事項を避けるように心がけています。
3.2 おまかせWebアプリケーション診断
おまかせWebでは、診断環境に応じて、「試験環境プラン」と「本番環境プラン」の2種類をご提供しています。
3.2.1 試験環境プラン
通常診断の項目をベストエフォートの範囲でお手軽に診断できるプランです。このプランでは、お客様との調整工数を極力下げることにより、お値段もリーズナブルに押さえることができます。試験環境でのみのご提供となりますので、比較的安全に診断することもできます。
そのため、「初めて診断を受けてみたい」というお客様にお勧めのサービスです。一方で、診断対象の網羅性は担保していないサービスとなりますので、このサービスを受けて脆弱性が見つかった場合は、次回以降は通常診断にて、網羅的な診断サービスを受けることをお勧めします。
3.2.2 本番環境プラン
実ユーザへの影響を極力抑えることで、本番環境でもお手軽に安全に診断するプランです。こちらは、本番環境で安全に診断するために、「対象機能を限定」しています。おまかせWebは、スピーディにサービスをご提供するために、診断対象の選定はすべて弊社で行います。
しかし、お客様の確認がない状態で、安全に診断できるかを検証することは、大変危険です。そのため、本番環境プランでは、診断対象機能を「ログイン/ログアウト」、「参照/検索」に限定することで、極力システムやユーザに影響を与えないようにしています。
4 終わりに
今回は「本番環境におけるWeb脆弱性診断を考えるポイント」をご紹介させていただきました。Web脆弱性診断は、お客様のセキュリティを向上させるためのサービスではありますが、サービスの性質上、お客様のリスクとなる可能性もございます。
特に、本番環境においては、ユーザや連携先に影響が出る可能性があるため、Web脆弱性診断では検証環境にて、安全かつ網羅的に診断することをお勧めいたします。
一方で、本番環境にて診断をするとなった場合は、今回ご紹介したポイントをご参考にしていただき、安全に診断することをお勧めいたします。
この記事を通して、お客様が安心・安全なサービスを選定できることを願っております。なお、弊社では、セキュリティに特化した様々なエンジニアが在籍しております。お困りの際は、是非お気軽にご相談ください。