p | e | n | g | u | i | n | - | b | o | x | . | j | p |
since 2001.5.1 |
NaITE #25「欠陥モデリングワークショップ&解説」 (タグ:#NaITE25)に参加しました。
Project Fabreの 欠陥モデリングを解説とワークショップで学びます。
欠陥モデリングは欠陥が混入するメカニズムを「表出現象」「欠陥」「過失因子」「誘発因子」「増幅因子」の5つの要素でモデル化します。
(出典:過失に着目した欠陥のモデリング ~バグ分析はなぜうまく行かないのか?~)
以下の事例演習では欠陥モデリングで導出した要素の一つに「"no-cacheはキャッシュしない"と誤解しやすい」という非技術的な増幅因子を得て、
「似ているものは間違いやすい」というリスクを高く設定できることが分かりました。
現象:Webサービスで個人情報を第三者が閲覧できるようになっていた
欠陥:キャッシュ制御パラメータをprivateと設定すべきところでno-cacheと設定していた
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章 暴露対策:プロキシキャッシュ対策)