近年、本来であれば脆弱性診断を行うべきケースなのに、なぜか目的に沿わず費用も高額であることが多いペネトレーションテストを依頼するユーザー企業が増えているという。
サービスのミスマッチが発生する状況について、セキュリティ診断サービスの標準化に取り組む企業、株式会社SHIFT SECURITY 執行役員 松尾 雄一郎(文中敬称略)に話を聞いた。
株式会社SHIFT SECURITY
https://www.shiftsecurity.jp/
●脆弱性診断が必要なのにペネトレーションテストを発注
2019年のある日、松尾のもとにこんな依頼があったという。
「新しく作った Web サービスをリリースする前に脆弱性が存在しないかどうか、Web サービスとして一般的水準のセキュリティ担保できているかどうかを確認したいので、ホワイトハッカーにペネトレーションテストを実施して欲しい」
話を聞いた限りでは、ペネトレーションテストではなく脆弱性診断をやるべきと松尾は思い、そう進言したが、テスト対象は問い合わせをしてきた企業のクライアント、いわば「お客さんのお客さん」だった。エンドユーザー企業はホワイトハッカーによるペネトレーションテスト実施を固く決意、動かすことは難しかったという。
「新規 Web サービスに対してペンテストをやって脆弱性診断をやらない。それで大丈夫なのか。クロスサイトスクリプティングの脆弱性がたくさんあったらどうしたらいいだろうと思いました(松尾)」
●ペネトレーションテスターに脆弱性診断を発注
また、とある脆弱性診断の依頼で、松尾はこんな不可解な RFP を受けとったという。
RFP いわく、
・診断を実施する技術者の技術経歴書を提出すること
・当該技術者が過去発見して JVN に報告した脆弱性の件数と、その脆弱性の重要度を記載すること
・当該技術者のセキュリティコンテスト等の入賞経験を記載すること
・全ての検査工程を当該技術者の手動により実施すること
診断員の基準はいくつも記載されていたが、脆弱性診断にも関わらずどこにも OWASP TOP10 に基づけばいいのか ASVS まで見るのか「準拠すべき基準」については何も書かれていなかったという。
「ペネトレーションテストと脆弱性診断がきちんと整理されておらず、ユーザー企業は必要なサービスを正しく選ぶことができていない。加えて、どうやらペネトレーションテストが脆弱性診断の上位互換サービスと誤解されている」そう松尾は指摘する。
●脆弱性診断とペネトレーションテストの違い
そもそも脆弱性診断とは、国際 NPO 団体 OWASP( Open Web Application Security Project )が、アプリケーションに必要とされるセキュリティ要件をまとめた「アプリケーションセキュリティ検証標準( Application Security Verification Standard:ASVS )」や、脆弱性を重要度に基づき優先順位をつけた「 OWASP Top10 」などの特定の基準をベースラインとして、そのベースに対しギャップがないかどうかを確認することが目的であり、基準が明確であるため、満たしているかどうか、100点かどうか判断することが可能だという。
かたやペネトレーションテストは、たとえば「外部からサイバー攻撃が行われた場合」「内部犯行者がいた場合」などのシナリオを想定し、その企業の組織体制や業務の手順なども考慮し、特定条件下での攻撃において0点になること(管理者権限をとられたり重要情報にアクセスされること等)がないかどうかを検証するサービスだ。そのためペネトレーションテストでは、たとえばクロスサイトスクリプティングなど直接「侵入」につながらないポイントはチェックされることが少ない。
同様に、たとえば Heartbleed の脆弱性があるような、一般的に「非推奨」とされている暗号の使用なども、直接侵入につながる脆弱性ではないため、ペネトレーションテスト実施企業が発見して指摘することはあまりないが、脆弱性診断では重要なチェックポイントとなる。
●本当にゼロイチを求めるのならペネトレーションテストだけは有り
「侵入につながるもの以外はどうでもいい」サービスの特性をきちんと理解して本当にユーザー企業がそう思っているのであればそれで構わないという。
「とにかく侵入さえできなければOK」
「クロスサイトスクリプティングの2件や3件、そんなの問題じゃない」
「要は侵入できるの? どうなの?」
ゼロかイチか。海外にはそういった振り切った考えの企業が少なからず存在するという。
しかし、品質に厳しい日本企業の多くはリスクに対してそんな考え方をしないはずだという。
●各サービスに優劣や善し悪しは存在しない
目的とサービスにミスマッチがあるように見える企業のほとんどが松尾の目には、脆弱性診断とペネトレーションテストの目的や手法の違いを理解していないように見える。正しい知識に基づく理解がない状態で「手動検査」「ペネトレーションテスト」「ホワイトハッカー」「脆弱性報告件数」「 CTF 出場」などの言葉が先行している。
冒頭に挙げた、新規 Web サービスを対象にホワイトハッカーによるペネトレーションテストを実施して欲しいという依頼は、顧客の要望通りペネトレーションテストを実施したという・・・
本来ペネトレーションテストと脆弱性診断は、そのときの目的に合わせて選ぶものだ。それが、ペネトレーションテストが脆弱性診断の上位互換のように誤解されているとしたら、損をするのは高い費用を払うユーザー企業と、それをセキュリティが担保されたものと信じて使う利用者になる。
「それぞれのサービスに優劣や善し悪しは存在しない。脆弱性診断もペネトレーションテストも目的に合わせて選ぶ必要がある。サービス提供側からの言語化はされているが、最も大事なユーザー企業に向けた整理がされておらず、これは提供側の責任でもある。どんなサービスがあって、どういう時にそれを選ぶのかということを踏み込んで説明するタイミングと思っている(松尾)」
その思いをなんとか可視化するため、例外や誤解や語弊を恐れずに図にしたのが以下のふたつの図「各サービスの要件と目的」および「各サービスと担保されるセキュリティのイメージ」だ。
●セキュリティ診断サービスに技術以外の2軸を追加
図表「各サービスの要件と目的」では、代表的セキュリティ診断サービスである「脆弱性診断(ツールと手動に分かれる)」「ペネトレーションテスト」「バグバウンティ」が挙げられ、それぞれのサービスの目的が示される。そして各サービスの選定基準として、技術水準を表す「専門性」以外に「網羅性」「安定性」の2つが追加された3軸で、サービスが整理され、相場価格や納期、クレジットカードのセキュリティ基準である PCI DSS における対応要件も記載した。

それによれば脆弱性診断は、セキュリティのベースラインを満たしているか確認するという、いわば「品質保証」として実施するものであり、技術力は当然推奨されるものの、手動検査のマニュアル化とツールによる自動化によって、ASVS や OWASP TOP10 のような基準をまんべんなくカバーする「網羅性」と、実施毎のサービスにバラツキがなく、待ち時間が短く必要なときにサービスを利用できる「安定性」をこそ重視すべきだという。また、網羅性が担保されていることを証明する「テスト仕様書」に該当する成果物を入手すべきでもあるという。
一方、特定のシナリオにおいて侵入できるかどうかを問うペネトレーションテストは、脆弱性診断と異なり人間の判断が多いため「専門性」が重要となり、一方で「網羅性」や「安定性」の優先順位は相対的に減少する。
バグバウンティは比較例として表に記載された。たとえば、何度も定期的に脆弱性診断を実施してベースラインを確認しながら、ペネトレーションテストも実施して運用上の穴も探し尽くしたような、とあるWebサービスを提供する企業があった場合、それでも最後に何かを見つけて欲しい場合に実施するのがバグバウンティで、懸賞金(バウンティ)をかけて世界の猛者に脆弱性(バグ)を見つけてもらう。極めて高い独創的な技術力が必要とされ、独自視点によるため網羅性はゼロ、属人性マックスで安定性もゼロだが、世界でその人物だけにしか見つけられないような脆弱性が見つかることがある。いわゆる、本誌が8月に配信した記事で「診断会社ソムリエ」こと濱本常義が語った「最大リスク回避」だ。
●攻撃される想定によって必要なサービスは異なる
もうひとつの図表「各サービスと担保されるセキュリティのイメージ」では、上のサービスにいくほどサイバー攻撃の標的として狙われるリスクが増し、それに対応し必要となるセキュリティ診断サービスが変化する。ただし当該図表の記載事項は、理解を促すために思い切って単純化されている。そもそも横軸のパーセンテージ表示は「パーセンテージ」にもかかわらず最大値が 100 ですらない。そういう図表と理解してほしいという。

個人情報を持たず、キャンペーンを単に告知するだけの一定期間のみ開設されるようなサイトであれば、最低限のベースラインである三大脆弱性の確認で充分である。また、大手企業や中央官公庁でもない限り、一般のコーポレートサイトは三大脆弱性と OWASP Top10 への目配りで充分である(くり返すが記載事項は、理解を促すために思い切って単純化されている。数々の例外等はケアされていない)。
一方で、三大脆弱性から OWASP Top10 、ASVS をすべて満たして、さらにペネトレーションテストを行っていても、いざ標的型攻撃を受け何らかの未知の脆弱性があったらそれで全てが0点になってしまうような仮想通貨取引所や決済システムだとしたら、100点をさらに120点まで引き上げるため、バグバウンティのようなアプローチが必要になるかもしれない。
なお、図表「各サービスと担保されるセキュリティのイメージ」に記載された80%、90%などの値はデータに基づくものではなく、あくまで主観的・感覚的なもので理解を促すための目安に過ぎないという。また、たとえキャンペーンサイトでも決済機能があったり、個人情報を扱ったり、データベースを持つようなサイトなら APT 攻撃を受けることもあり、例外は無限に存在する。
インタビュー中に少なくとも 5 回は「それぞれのサービスに優劣や善し悪しは存在しない」と口にされた。取材のまとめとなる最後にも同じ言葉が出た。そのうえで、ふたつの図表「各サービスの要件と目的」「各サービスと担保されるセキュリティのイメージ」を用いて、どんなサービスに対して、どのレベルのセキュリティ担保を目指して、どんな診断サービスが必要であるかの目安として活用してもらいたいと語った。
●技術以外の判断基準がなかったこれまでのセキュリティ業界
図表「各サービスの要件と目的」に、技術レベルを示す「専門性」以外に、「網羅性」「安定性」の2つを追加することができたのは、株式会社SHIFT SECURITY がセキュリティ診断サービスの「標準化」を積極的に進めてきたことと無関係ではない。
親会社のソフトウェアテスト標準化のプラットフォームと方法論を用いた徹底的な診断サービス標準化のプロセスや、その標準化されたプラットフォームによって脆弱性診断員採用の裾野をかつてない範囲にまで広げた成果は過去の記事に譲るが、標準化の結果、数百に及ぶ診断項目を可視化し、診断サービス水準を維持しながら設立3年で診断員100名規模まで成長、安定した品質の、待ち時間の短いセキュリティ診断サービスを提供することに成功した。
とりわけこれまで多くのセキュリティ企業が人材不足のために謳いたくても謳えなかった「サービスの安定性」、すなわち「属人性脱却による一定品質」と、人材採用幅拡大による豊富な診断員数を背景とした「需要に合わせたデリバリー」を、定常的に提供可能な「品質」のひとつとして打ち出すことができるようになった。
「脆弱性診断とペネトレーションテスト、それぞれのサービスに優劣や善し悪しは存在しない。脆弱性診断もペネトレーションテストも目的に合わせて選ぶ必要がある(松尾)」

株式会社SHIFT SECURITY 執行役員 松尾 雄一郎
株式会社SHIFT SECURITY
https://www.shiftsecurity.jp/