第2章:診断士に求められるスキル、心構え
本章では、Webアプリ診断の業務フローを説明しながら、診断士に必要なスキルを説明します。
診断業務の実際 — 診断業務の流れと求められるスキル —
診断はお客様との契約に基づいて実施されます。また、診断士が一方的に診断して終了するわけではなく、診断対象範囲の策定や診断結果の報告など、診断士とお客様双方で密にコミュニケーションを取る必要があります。
診断の業務の進め方は以下の通りとなります。
- プリセールス
- 診断の実施
- 診断結果の分析、リスク評価
- 診断結果レポートの作成
- 診断結果の報告、フォローアップ
以下では各業務について説明をします。
-
プリセールス
診断ベンダーとお客様が初めて接触する場になります。
営業担当と共に、自社の診断サービスをお客様に提案するフェーズです。
提案書を基に、診断サービスの説明とその重要性を訴求します。お客様が診断に興味を持った場合、見積を作成するために必要な情報をヒアリングします。例えば、お客様の予算、お客様が抱いている(または、顕在化している)セキュリティ上の問題、診断対象の範囲、納期などをヒアリングします。
診断の有効性を左右する大事なフェーズになりますので、お客様と密にコミュニケーションを取り、限られた予算・納期の中で最大の診断効果が得られるよう、診断設計を行う必要があります。必須スキル:交渉力、コミュニケーション力
-
診断の実施
診断行為を行うフェーズです。(実施内容の詳細は、本稿第一章 「Webアプリ診断の業務内容」の「Webアプリ診断の手法 — 自動検査と手動検査 —」を参照)
診断契約を締結した後、予め合意した診断対象範囲に対して診断を行います。
契約未締結または診断対象範囲外に対して診断を実施した場合、不正アクセス禁止法に抵触する可能性があるため、契約内容と診断対象範囲には細心の注意が必要です。
また、診断の漏れ(本来検出すべき脆弱性を発見できないこと)が発生した場合、お客様のシステムにリスクが残存し続けることになるため、システムの特性を理解した上で慎重に診断を進める必要があります。必須スキル:診断力、システム構造の理解力(SEの方には備わっていると思います)
-
診断結果の分析、リスク評価
診断結果を分析し、脆弱性のリスクを評価するフェーズです。
脆弱性の種類や脆弱性が存在する箇所、お客様が置かれた立場や業種によってリスクは異なります。例えば、ニュースサイトのような誰でもアクセスできる情報を扱っているWebアプリと、銀行や保険会社、ECサイトを運営する企業のように利用者の機密情報を扱っているWebアプリでは、同じ脆弱性であってもリスクは異なります(後者の方が高くなります)。
また、お客様は診断士のリスク評価に基づいて対策の優先順位を決めるため、お客様の立場や社会情勢を踏まえた上で慎重にリスク評価を行います。必須スキル:お客様業務の理解力、最新情報のキャッチアップ力
-
診断結果レポートの作成
診断結果を踏まえた上で、お客様に報告するためのレポートを作成するフェーズです。
お客様はセキュリティの専門家ではないため、問題の内容やリスク、要点が伝わるように平易な文章を記述する必要があります。また、レポートを基に脆弱性の改修を行うため、具体的な対策方法や、代替策を提案する能力が必要です。なお、診断ベンダーによって異なりますが、基本的にレポートは「総合評価」と「結果詳細」に分けて書きます。「総合評価」は、経営者やゼネラルマネジャーなど、技術者ではない方でも一目でWebアプリが安全か否かを判断できる内容にするため、Webアプリ全体のセキュリティレベルを簡潔に記載します。一方「結果詳細」は、レポートを基に対策を行う技術者向けに、検出された個々の脆弱性に対し、危険度や問題の解説(脆弱性を検出するための手順)、リスク、対策を記載します。
必須スキル:レポーティング力、提案力
-
診断結果の報告、フォローアップ
お客様への診断結果報告、ならびに、報告後のQ&A対応などを行うフェーズです。
お客様先を訪問し、対面で診断結果を報告します。その際、結果について質疑応答をすることもあります。また、診断結果報告後のフォローアップも行います。診断結果報告や報告後のフォローアップを懇切丁寧、かつ適切に行うことで、お客様と末長くお付き合い頂ける良きパートナーになる事が出来ます。なお、過去に私が顧客から受けた質問事項の一例を以下に挙げます。
- 直ぐに対策ができないが、対策するまでの間にリスクを低減させる方法は無いか?
- 危険な脆弱性が複数報告されているが、対策の優先順位を提案して欲しい。
- 当社のセキュリティレベルは、他社と比べて高いのか?
- (現場担当者から)この内容では上司に報告できないため(上司に言えないほどのセキュリティレベルであったため)、報告内容を変えて欲しい。
上記以外にも様々な種類の質問があり、ある程度準備はしておくものの、準備していない質問に関しては、その場に応じて適切な回答を行う必要があります。また、即答できない場合は適当にごまかすのではなく、一旦、自社に持ち帰って別途回答するなど、顧客にとって最適な回答となるように心がけます。なお、上記4つ目の「報告内容を変えて欲しい」については、原則その場でお断りしています。診断ベンダーは「客観的な立場」から脆弱性の有無を「エビデンスに基づいて」報告しているため、いかなる要望があっても報告内容を曲げることはできません。
必須スキル:コミュニケーション力
診断士の心構え — 高い倫理観と使命感が必要 —
診断士として働くための心構えについて説明します。
診断士は高い倫理観と道徳心を兼ね備える必要があります。1章でも説明した通り、診断は「疑似」攻撃とはいえ、Webアプリケーションを攻撃する行為です。また、診断では極力Webアプリケーションを破壊しないよう、検査手法をより安全に調整していますが、裏を返せば破壊や情報搾取、なりすましといった重大な行為も行うこともできてしまいます。
診断士として手に入れたスキルを悪用し、業務外で世の中のWebアプリケーションに対して攻撃を仕掛けることもできます。その気になれば、官公庁や企業のWebアプリケーションを攻撃し、機密情報の搾取やシステムダウンなどのサービス提供妨害を行うことも可能です。しかし、これは明確な犯罪行為であり、非倫理的な行為です。
診断士、または診断士を志す人には、自身のスキルを絶対に悪用しない自制心と、スキルは世の中のシステムをセキュアにする為だけに使用するという、高い倫理観と使命感が必要になります。
以上、本章では、Webアプリ診断で必要なスキルと心構えについて紹介しました。幅広いスキルや高い倫理観・使命感が必要になるため、ハードルが高く感じられた方も多いかと思います。しかし、上記で紹介した全てのスキルを最初から高いレベルで保持している必要はありません。現に私も、1年間は技術を経験した後から顧客折衝する経験を積み、上記全工程を行えるようになりました。(未だ十分ではありませんが…)。
また、私の経験上、一部のスキルを有する診断士が大多数ですし、スキルの幅は経験を積みながら徐々に広げていけば良いと思います。
ただし、倫理観と使命感については必須になりますので、これだけは十分に覚えていただければと思います。
次章では、診断士のキャリアパスについて説明いたします。