セキュリティコンサルタントの日誌から

セキュリティに関するエッセイなど

良いペネトレーション・テスターはどう見極めるべきか?

日本企業がセキュリティ診断をする場合、ベンダーに依頼することが一般的だと思います。

ベンダー選定時には、コスト・品質・評判など色々な判断基準はあるかと思いますが、特に品質は難しい問題です。「高品質なのか?」、「値段に見合う品質なのか?」という疑問は常に付きまとう疑問だと思います。先日参加したSecurity BSides Bostonの講演の一つに"Pentesting for Fun and Profit"という内容のスピーチがあり、ベンダー側と顧客側の両方を経験した人が、ベンダー選定に関する議論を紹介していました。私も、現在両方の立場を経験できていることから、この講演をもとにベンダー選定理論に関する意見をまとめてみたいと思います。 

情報の経済学

経済学の一つに、情報の経済学で言われるレモン市場(「情報の非対称性」の問題)というのがあります。詳しくはWikipediaに譲りますが、簡単にうと財やサービスの品質が買い手にとって未知であることにより、買い手が不利になってしまう経済学上の問題のことです。

ベンダー選定問題も、この立場で考えることができると思います。ちなみに、情報の経済学ではこの問題を解決するため、シグナリングとスクリーニングという解決策が用意されており、今回提示する観点もこの方法に基づいています。

このような問題が起こる背景とは?

品質に対する懸念が付きまとい、情報の非対称性があることはわかりますが、よりブレイクダウンすると以下のような問題があるかと思います。

問題1:セキュリティ診断の検査技術について吟味できる知識がユーザ側にないこと

ほとんどの場合、セキュリティ診断の検査手法に精通している担当者がユーザ側にいることは少ないと思います。そのため、検査手法の詳細をもらって、技術的に検証していくことは非常に難しいと思います。

問題2:サービス品質を検証するすべがないこと

次に、サービス品質を検証することが難しい点が挙げられます。プロダクトであれば、事前に試用期間で検証するなどができます。しかしながら、セキュリティ診断サービスの場合、試用期間は存在せず、サービス品質を検証するすべがないことがありません。お金に余裕があれば、脆弱なサイトを用意して複数ベンダーに同じ条件でテストさせるなどの手法が可能になるかと思います。しかしながら、そこまで余裕のある企業はなく、普通は無理です。(たまに、こういう試験を無償で依頼する担当者の方がいますが、やめることをお勧めします。)

また、セキュリティ診断の場合、顧客Aと顧客Bが同じ環境・条件でテストしているわけではないので、品質の比較が難しく、ましてや口コミという手段もなかなか有効ではないでしょう。 

問題3:セキュリティ診断 = 「悪魔の証明

悪魔の証明とは、「ある事実・現象が全くなかった」など証明困難な命題のことです。あるシステムを診断して、脆弱性がなかったと言い切ることは非常に難しい判断です。本当に脆弱性がない場合もありますが、「システムの仕組みへの理解が足りなかった」、「技術力が不足していた」、「テストの網羅性が足りなかった」など様々な可能性も否定できません。正直、報告された脆弱性の中には、偶然見つかったという類のものもありえると考えられます。

「では大量に時間をかけてやればよいか」というと、それも違います。診断もある程度の期間で完了しないと、コストが著しく増大する、もしくはサービスとして成り立たなくなりますので、どこかしらの範囲で終わらせるという決定が必要になります。そのため、どこまでやればよいかという非常に難しく、何を持って品質が高いとみなすか難しい問題が存在します。

ベンダー選定時に考えるべき観点とは?

とはいえ、顧客側の担当者としては、「情報の非対称性」があろうがなかろうが品質の高いベンダーを選定する必要がでてきます。上記を踏まえたうえで、どのようにベンダーの品質を見分けるべきでしょうか。私が考える観点を以下4点にまとめ考えてみたいとおもいます。

  1. 利用しているツール・方法論
  2. 技術的な研究成果を発表有無
  3. 資格の取得
  4. レポートの内容
その前に...

その前に一点注意事項があります。ベンダー選定を担当する担当者に理解いただきたい大前提があります。

それは、品質と価格は比例関係にあります。資格を多数保有していたり、技術調査をしている会社はそれだけコストも高くなりますし、サービス提供価格も一般的には高くなります。レポートについても、安価なサービスではツールの結果をそのまま提出するケースが多く、価格を踏まえれば妥当だということは多々あります。

今回の議論の前に理解いただきたのは、高品質・低価格ということは実現が難しいという前提です。もちろん、そういうベンダーも存在するかも知れませんが、経験上品質と価格の比例関係が正しいことのほうが多いです。(もし、品質に対して低価格ということであれば、運がよいか、ベンダー側としてより入り込みたいため戦略的価格として提示していると考えるべきでしょう。)

なお、今回の評価観点は、ある程度のサービスに対価を払っても品質の高いサービスを高いケースを想定していますので、その前提でお読みください。逆に、コストだけということであれば余計なことを考える必要はなく、価格だけ聞いて決定をすることが望ましいです。

観点1:利用しているツール・方法論

第一の観点として、利用しているツール・方法論が挙げられます。もちろん専門家でないとわからない部分があるかと思いますが、ある程度メジャーなツールを使っているベンダーを選ぶことが望ましいと思います。

ベンダーによっては、独自スクリプト・ツールのアピールを利用する企業も多いです。独自スクリプトはノウハウを蓄積しているという聞こえのよい宣伝文句で紹介されますが、個人的には品質面や最新動向の反映状況など、図りづらい部分も存在します。そのため、独自スクリプトだけに頼らず、メジャーなツールと組み合わせて使っているベンダーを選ぶのがよいと思います。(独自ツールの意義はありますが、ペネトレーション・テストという最先端の知見が常に求められる環境で、独自ツールのメンテナンスは想像以上に負荷が高いと考えられます。)

観点2:技術的な研究成果を発表有無

第二に、技術的な研究成果の発表有無が挙げられます。具体的には、新しい攻撃手法、ソフトウェア脆弱性の発見・報告、最新の攻撃トレンドに関する技術的な分析です。

技術的な研究成果を発表しているということは、言い換えればその問題を指摘・検証するまでの技術力があると考えられます。「最先端の技術をもって脆弱性を網羅的に発見します」と行っている会社(ほとんどの会社がそうです)が、一度も公開アプリの脆弱性の報告をしたことがないと、若干信用していいか疑いたくなりますよね。それと同じです。

但し、これも罠と思うべき点があります。個人として色々発見している技術者のいる会社が、必ずしもベンダーとしての品質が優れていることにはならないので注意が必要です。(個人としてすごい技術を持った人がいても、趣味の範囲でやっていればそれは会社のサービスの品質には直結しません。)

理想的には、企業として研究・調査セクションを持ち、企業として発表している会社を選ぶことが望ましいと考えられます。米国はこの点をよく踏まえており、有名な会社の人がカンファレンスでよく技術の発表を行っていますが、そういう背景があるからだと思います。

観点3:資格

第三に、資格が挙げられます。米国の資格事情については別エントリーで詳しく書きますので、そちらを参照いただきたいと思います。 

www.scientia-security.org

BSides Bostonの発表では、OSCP*1が実践的であるため、選定のときに重宝する基準と述べていました。OSCPの仔細については、先にご紹介した別エントリーをご参照ください。

日本では、OSCP・CEHはポピュラーではないですが、資格取得者が多いということはそれだけ知識を学ぶことに力を入れている証拠ですので、一つの基準として考えることはよいかと思います。

観点4:レポート

最後にレポートサンプルの検証です。レポートは、ベンダーの品質を定義づける一つの結果になります。顧客側からみれば、どんなに高度な診断をしたとしても、その様子は見えていないことが多いので、ベンダーの仕事として評価できるのは、この成果物だけだったりします。私がベンダー側にいた際、新人教育時にこの点は強く強調していました。また、品質を意識するベンダーであれば、このことを理解しているはずなので、レポートは重要な評価情報となります。

特に、ツールの結果をそのまま貼り付けているようなレポートなどはあまり品質等は期待できないでしょう。(但し、先ほど議論した通り、安価なサービスの場合は妥当だと考えられます。)

確認のポイントとしては、その後のアクションに有益な情報が記載されているかということになります。たとえば、そのままマネジメント層への報告するための情報がそろっているかどうか、修正を検討するにあたり必要な情報はきちんと盛り込まれているか、レポートを受領した後適切に関係者に修正を促せるかなどがポイントとなります。レポートが自動生成でない場合は、必要に応じて提示してもらう形式を相談するという手も一つの手段となります。(たとえば、○○といった分析がしたいので、EXCEL形式で報告書がほしいなどです)

まとめ

ペネトレーション・テスターのベンダー選定の理論について、いろいろと考えてみました。

ペネトレーション・テストにおいて、担当者が一番大変なのは、実施前でなく実施後の「脆弱性対策の推進」です。私個人としては、コストは高くてもできる限り高品質で誠実に対応してもらえるベンダーを選定することを推奨します。それにより、その後の対策推進に大きく影響を与えるからです。今回のエントリーがベンダー選定の役に立てば幸いです。

*1:Offensive Security Certified Professional