p e n g u i n - b o x . j p
since 2001.5.1

Top Page > SQA Memo > This Page.

2017.11.11 NaITE #25「欠陥モデリングワークショップ&解説」に参加しました

NaITE #25「欠陥モデリングワークショップ&解説」 (タグ:#NaITE25)に参加しました。

Project Fabre欠陥モデリングを解説とワークショップで学びます。

目次

  1. 定義
  2. 特徴
  3. 手順
  4. 参考
  5. 感想

1. 定義

欠陥モデリングは欠陥が混入するメカニズムを「表出現象」「欠陥」「過失因子」「誘発因子」「増幅因子」の5つの要素でモデル化します。


(出典:過失に着目した欠陥のモデリング ~バグ分析はなぜうまく行かないのか?~)

2. 特徴

1. 誘発因子&増幅因子
・誘発因子は誤りを誘発する直接原因
・増幅因子は誤りの発生確率を増幅する間接原因
・なければ誤りが発生しないなら誘発因子、なくても誤りが発生するなら増幅因子
2. 軽量
・欠陥モデリングは現象をそのまま記述するため故障モードで抽象化するFMEAと比べて気軽に書ける
・1件のモデリングにかかる工数は30分程度
3. 非技術的な要素を除外しない
・欠陥モデリングは非技術的な要素も扱う
・FMEAが非技術的な要素を対象外とし技術的な観点で分析するのと対照的(参考文献参照)

以下の事例演習では欠陥モデリングで導出した要素の一つに「"no-cacheはキャッシュしない"と誤解しやすい」という非技術的な増幅因子を得て、 「似ているものは間違いやすい」というリスクを高く設定できることが分かりました。
現象:Webサービスで個人情報を第三者が閲覧できるようになっていた
欠陥:キャッシュ制御パラメータをprivateと設定すべきところでno-cacheと設定していた

3. 手順

手順
1. 現象から原因に向かって書き出す
2. 表出現象は事実をそのまま書く
3. 過失因子は頭の中の誤りをヒヤリングするなどして書く
コツ
・どの因子か迷ったらひとまず書ききって後で因子を割り振る
・「なぜなぜ(理由)」ではなく「なになに(事実)」をたどる
・時系列を因果関係に置き換えて整理、表現する(○○なので△△になった)

4. 参考

1. 欠陥情報の再利用は論文を読んでくださいとのことでした。

2. Project Fabreの欠陥エンジニアリング

3. 欠陥モデリングを根本原因分析に取入れた事例

4. ソフトウェアFMEAの事例

5. キャッシュ制御のprivate、no-cache

Cache-Control: private
Webサーバから返されるコンテンツがただ一人のユーザのためのものであることを示す。 このコンテンツは、複数のユーザが共有されるキャッシュに記録されるべきではないことを表している。 ただし、これは、一人のユーザのみが利用するキャッシュ(ブラウザのキャッシュ等)への記録を禁じるものではない。 Cache-Control: private のみが指定されている場合、何らかのキャッシュへの記録が行われるおそれがある。

Cache-Control: no-cache
一見「キャッシュを使うな」のように見えるこのヘッダが実際に意味するところは少々ニュアンスが異なる。 このヘッダの意味は、いちどキャッシュに記録されたコンテンツは、現在でも有効か否かを本来のWebサーバに 問い合わせて確認がとれない限り再利用してはならない、という意味である。

(出典: IPA ISEC セキュア・プログラミング講座:Webアプリケーション編 第5章 暴露対策:プロキシキャッシュ対策)

5. 感想

更新履歴

  1. 2017.11.21


penguin-box.jp by ka's