ソフトウェア工学2 ディペンダビリティ

前回

 

issunno-koin.hateblo.jp

 

可用性と信頼性

・可用性

ーある一時点において、システムが正常にサービスを提供できる確率(使いたいときに使えたか MTTR平均修復時間)

・信頼性

指定した環境で、一定期間にシステムが正常に稼働し続ける確率(正常稼働の平均時間、MTBF平均故障間隔

→信頼性は可用性を含む概念

 可用性がより求められるシステムもある。障害が頻発しても良いが、使いたいときに使えるほうが優先、あるいは障害からの回復が優先など。

 

・障害(Failure)

システムが予期されている通りに利用者へサービスを提供できていない状態

・エラー(Error)

予期されないシステムの振る舞いを招く可能性のある異常な状態。

・故障(Fault)(欠陥、バグということもある)

システムをエラーに導く可能性のあるソフトウェアの性質

・心的エラー・誤操作(Human error ,Nitake)

システムの故障個所を顕在化させるようなユーザー・人間の誤った振る舞い(こちらをエラーと呼ぶ場合もある)

故障→→エラー→→障害

  結果  結果

※故障から必ずエラーが起きるわけではない

※エラーから必ず障害が起きるわけではない。

 

信頼性の感じ方

・エラーを招く入力をする利用者としない利用者がいる。そういったエラーを踏まない人にとってはシステムの信頼性は高い。

・エラーを招く入力を回避する方法が分かっていることも信頼感につながる。

 

安全性

障害が起きても人間や環境へ危害を及ぼさずに動作できるシステムの性質。

信頼性や可用性のように定量化できない。

・一時的にクリティカルなソフトウェア

 障害はシステムのハードウェアの故障・破壊を招き、それが人間・環境への脅威につながる。

・副次的にクリティカルなソフトウェア

他のシステムの障害を招く。

※副次的なものを考えるとキリがないので、どこまでを一つのシステムとみなすか規定する。

 

安全性と信頼性の類似点

 信頼性はシステムが仕様へどれだけ適合しているかに関わる。

 安全性は仕様への適合如何に関わらず、人間・環境への被害の有無を問題にする。

 

安全性に関する用語

・事故(accident)
– 人間や環境への被害を生じさせる事態・事象
・危険(hazard)
– 事故につながりかねないシステムの状態
・被害(damage)
– 事故の結果生じる損失の程度
・危険の深刻度(hazard severity)
-特定の危険が招く最悪の状況の見積もり
・ 危険の確率(hazard probability)
-危険を生じる事象の確率
・ リスク(risk)
– システムが事故を起こす確率

 

通常、事故は単一の原因では生じない。(単一の事象であれば、起こっても事故にならないように対策がしてあるため)
逆に言うと、すべての故障の組み合わせを網羅することはできないため、完全に安全なシステムを作ることは困難。

 

セキュリティ

セキュリティー外部からの攻撃に耐えることができる性質。攻撃には意図的なものも偶発的なものもある。

ネットワーク接続されたシステムにおいては セキュアでなければ,可用性,信頼性,安全性の議論は無意味
なぜならば、可用性,信頼性,安全性は、動作しているシステムがその設計・仕様と一致していることが前提だが、 セキュアでないシステムでは…
• システムのデータが改ざんされる
• システム自身が改ざんされる

 となり、可用性、信頼性、安全性を担保できない。

 

・ 暴露(exposure)
– システムが何らかの損害や危険にさらされること
脆弱性vulnerability
– システムの弱点.ここをつかれるとシステムの暴露につながる
・ 攻撃(attack)
– システムの脆弱点をつくような試み.多くの場合外部から故意に行わ
れる
・脅威(threats)
– システムが暴露されるかも知れない状況
・ 制御(control)
– システムの脆弱性を削減できる程度や手段
– アクセス「制御」,暗号の利用など

 

セキュアでないことによる被害


・サービス不能DoS
・プログラムやデータの破壊
・l機密情報の漏えい

 

まとめ

・信頼性(含可用性)が損なわれる状況
– 障害・エラー・故障
・安全性が損なわれる状況
– 事故・危険・被害
・セキュリティが損なわれる状況
– 暴露・脆弱性・攻撃

 

信頼性の達成

人の誤り→ 故障→ エラー→ 障害

    ①  ②③  ③

①故障回避 

②故障検出・除去

③耐故障性

 

安全性の達成

→ 危険→ 事故→被害

①  ②  ③

①危険回避 

②危険検出・除去

③被害限定

 

セキュリティの達成

脆弱性→攻撃→暴露

①   ②  ③

脆弱性回避 

②攻撃検出・除去

③暴露限定

 

ディペンダビリティとコスト

達成すべきディペンダビリティの高さに応じ、指数的にコストが高くなる。

高いディペンダビリティではなく、障害の対策にコストをかける方が良いシステムもある。しかし、社会的な信頼感を損ねないか考慮は必要。