こんにちは。インフラストラクチャーディビジョンでプレイングマネージャーをしている奥村(@arumuko) です。
私の所属しているチームが取り組んでいるセキュリティ施策の価値の定量化について紹介します。
価値の定量化に取り組んだ背景
私の所属しているチームは1年ほど前からパブリッククラウド環境のセキュリティの強化に取り組んでいます。
具体的には、セキュリティガードレールの敷設、ガイドラインの更改、検知されたリスクの是正などを行っています。
セキュリティ強化施策を行う上で以下の課題が生まれました。
- 効果が分かりにくい
- 取り組む施策の優先順位を決めにくい
この課題を解決するために、セキュリティ施策の価値の定量化に取り組みました。
価値の定量化について
1つのセキュリティ強化施策がどの程度の価値があるのかを知るために定量化を行いました。 価値は「金銭的メリット」として考えています。 なので、「1つのセキュリティ強化施策がどの程度の金銭的メリットを生み出すか」を算出することによって価値の定量化を実現しています。
上記のような定量化を行った事で以下のようなメリットが生まれました。
- 施策の種類に関係なく、価値の大小比較ができる
- 費用対効果を算出できる
価値の定量化方法の概要
フォルトツリー解析とALEの計算を用いて、インシデントを発生させる原因となる事象(リスク)から施策の価値を算出します。
ざっくりとした方法は以下の通りです。 イメージし辛いと思うので、次章で架空のシステムを対象にしたセキュリティ施策の価値算出を行います。
- フォルトツリー解析によってインシデントが発生する要因を解析する
- インシデントをトップ事象とする
- フォルトツリー解析によって洗い出された基本事象の発生確率を検討する
- インシデント(トップ事象)の発生確率を算出する
- インシデントの発生確率をAROとする
- システムでのALEを算出する
- ALE = SLE * ARO (リスクが失われる事で失われる収益 = 単一損失予想 * インシデントの発生確率)
- SLE = 資産価値 * 損失になる割合(EF)
- ALEの金額を元に各基本事象の金額を決定する
- フォルトツリーの発生頻度を元にALEの金額を分解する
- 基本事象の発生を防ぐセキュリティ強化施策を検討する
- セキュリティ強化施策の価値を算出する
架空のシステムで計算してみる
題材は以下です。
- 架空のシステム
- Webアプリケーション
- インターネットに公開している
- DB・データを持つ
- インシデント
- 情報漏えい
また以下の前提で計算します。
- フォルトツリー解析は簡略化する
- フォルトツリー解析にはホワイトボードツールを用いる
フォルトツリー解析によってインシデントが発生する要因を解析する
フォルトツリー解析の概要は以下の通りです。
フォルトツリー解析とは、故障や事故、失敗などの要因を分析する手法の一つで、ある事象の要因となる事象を列挙し、さらに各要因について要因を列挙し…という手順を何段階も繰り返し、全体を樹形図(ツリー)の形に図示して整理する手法。
事象の発生要因を細分化し整理する手法です。
事象の親子関係は論理ゲート用いて表現します。
- ORゲート
- 子の事象の内一つでも発生すると親の事象が成立するという関係
- ANDゲート
- 複数の子の事象が同時に発生したときに親の事象が成立するという関係
情報漏えいをフォルトツリー解析結果は以下の画像の通りです。 前述しましたが、かなり簡略化しています。本来はもっと細分化された事象が洗い出されます。
フォルトツリー解析によって洗い出された事象は階層によって呼び分けられます。 根になる事象が「トップ事象」、葉になる事象が「基本事象」、その中間のノードになる事象が「中間事象」と呼ばれます。
フォルトツリー解析によって洗い出された基本事象の発生確率を検討する
基本事象の発生確率を検討します。
期間を1年とし、その1年の間に発生する回数を各事象に対して検討します。
以下の前提があります。
- 1年間の内に1回発生する基本事象は「1」にする
- 1年に2回以上発生する場合も「1」にする
- 1回発生するのに、1年より時間が掛かる場合は少数にする
- 10年間の内に1回発生する基本事象は「0.1」
発生確率は過去の事象やインターネットの事例などを参考にして決めます。
正解は無いのでおおよその数値になると思われます。
発生確率を検討した後の図が以下です。
インシデント(トップ事象)の発生確率を算出する
基本事象の発生回数を元に、中間事象の発生確率を算出し、中間事象の発生確率を元に、トップ事象の発生確率を算出します。
下位の事象から順に計算を行います。 この時通る論理ゲートによって計算が異なります。
- ORゲート
- 子事象の発生確率の和
- ANDゲート
- 子事象の発生確率の積
ですので、ORだと事象の発生確率が高くなり、ANDだと子事象と同じかそれ以下になります。
中間事象、トップ事象の発生確率を計算した図が以下です。
情報漏えいが1年間に2回発生するという結果になっています。
システムでのALEを算出する
先にALEの簡単な説明をします。
構成要素は以下があります。
- ALE
- Annual Loss Exposure
- 年間予想損失額
- ALE = SLE * ARO
- SLE
- Single Loss Expectancy
- 単一損失予想
- SLE = AV * EF
- AV
- Asset Value
- 資産価値
- EF
- Exposure Factor
- 暴露係数
- インシデントが発生したときに資産に与える損失の割合
- ARO
- Annualized Rate of Occurrence
- 年間発生率
- フォルトツリー解説で算出したトップ事象の発生確率
ALEを算出するには以下の式を使います
ALE = (AV * EF) * ARO
参考: 年間予想損失額(Annual Loss Exposure) - PIEDPIN
今回計算する架空のサービスではそれぞれの数値を以下の通りとしました。
- AV
- 10万
- EF
- 5割
フォルトツリー解析により、トップ事象の発生確率が「2」となっていましたので、AROは「2」となります。
ですので、式は以下のようになります。
100,000 = 100,000 * 0.5 * 2
このシステムで情報漏えいが発生した時のALEは 10万円 となります。
補足1:資産価値について
資産価値(AV)の算出方法は様々あるようです。システムの特性や提供しているもの、ことによって変化すると思われます。
単純にするなら、
- 年間売上
- 年間利益
などを使うのも良いかと思います。
補足2:EFについて
インシデントが発生したときに、資産価値にどの程度の影響を与えるかを考えます。
実際にどの程度の影響があるかは分からないと思います。
単純にするなら、
- 影響大
- 7割
- 影響中
- 5割
- 影響性
- 1割
などとして計算してもよいと思います。
ALEの金額を元に各基本事象の価値を決定する
次はフォルトツリーを使ってALEの金額を元に基本事象毎の金額を算出します。
トップ事象から計算を行います。
子事象の発生確率の割合で金額を分けていきます。
以下の図のようになります。
この時点で、基本事象毎の価値の金額が算出されたので、どの事象から対応するべきかが分かるようになります。
基本事象の発生を防ぐセキュリティ強化施策を検討する
基本事象の価値が分かったので、次は基本事象の発生を防ぐセキュリティ強化施策を検討します。
セキュリティ強化施策には事象の発生を完全に無くす施策や事象の発生確率を低減する施策などがも様々な種類があります。
「このセキュリティ対策によって、この事象がどの程度発生しなくなるだろう?」と考えながら施策を考えるのが良いと思います。
セキュリティ強化施策の価値を算出する
検討されたセキュリティ強化施策の価値を算出します。
完全に事象の発生をなくせている場合は、基本事象の価値をそのまま流用します。
事象の発生確率を低減している施策の場合は、その施策に応じた係数を掛けています。
「セキュリティホール」の事象を例に説明すると、
- セキュリティホールの発生を完全に防ぐ仕組みを導入
- 完全に防げているので価値は 5万
- セキュリティホールの発生を検知し通知する仕組みの導入
- セキュリティホール自体は発生はするものの、すばやく対処できる状態になっているので、リスクは低減できている。5万の5割の2.5万とする
低減の場合は、どの程度低減できているかは実際のところ不明になると思いますので、
単純にすらなら、「低減の場合の価値は5割とする」などのルールを決めておくと良いと思います。
セキュリティ強化施策の価値を算出した図が以下です。
価値の定量化による収穫
価値の定量化によって概ね以下の収穫がありました。
- 定量的な指標を用いて施策の優先順位を決められうようになった
- コスパの低い施策を後回しにする判断を取れるようになった
- それなりに説得力のある数字をつくれたので施策実施のモチベーションが上がった
- 施策の価値の共通認識が生まれた
課題として挙げていた
- 効果が分かりにくい
- 取り組む施策の優先順位を決めにくい
は解決することができました。
また、KPIやOKRで用いる指標にも使えるので、目標設定も容易になりました。
課題
現在は運用上の課題を抱えています。大きめの課題は以下の2点です。
- 事象の追加や再計算がしんどい
- 随時事象の網羅率を上げる必要がある
事象の追加や再計算がしんどい
継続的に価値を計算するためにはフォルトツリーの管理が必要になります。
新たに発見したリスクを発見した際はフォルトツリーに事象を追加することになります。
フォルトツリーの作成にはホワイトボードツールのmiroを用いています。
事象を追加する時にはホワイトボードツールで作成した木構造の図を更新しています。
末尾の事象を追加するだけなら単純なのですが、中間事象を追加する事になった場合は、既存のフォルトツリー全体を見直す必要があるので手間が掛かります。
フォルトツリーを更新した後に、各事象の価値の計算を行います。 フォルトツリーの性質上、基本事象を追加するとトップ事象にまで影響を与えるので全体の再計算が必須になります。
この辺りの課題をスマートに解決する自動化の仕組みを検討中です。
随時事象の網羅率を上げる必要がある
1回のフォルトツリー作成ですべての事象を洗い出すのは難しいです。
日々の運用の中で新たに事象見つけたり、世間の情報をインプットしたりして、更新し続ける必要があります。
フォルトツリーを構成する事象が増え、リスクを発見することによって取るべき対策を検討できるので、より強固な環境になることは間違い無いです。 メリットはあるので手間と向き合って効率的に運用していくのが良いと思います。
まとめ
今回はセキュリティ強化施策の価値を定量化する方法について書きました。
リソースには限りがあるので効率的に費用対効果の高い施策を実施していきましょう。
最後までご覧頂きありがとうございました。