こんばんわ!
Advent Calendar 2024に参加してまして、11日目の記事を書いていこうと思います。
題材は「過去の自分に教えたい、ソフトウェア品質の心得を投稿しよう by QualityForward Advent Calendar 2024」ということで、ソフトウェア品質とセキュリティの関連性について調べていきたいと思います。
品質ってセキュリティやない?と考えていたうぶな自分へ
少しでもITをかじっている人はソフトウェア品質と考えるとシステムテストやバグ関連を思い浮かべると思います。ただ、当時の私は、品質ということはセキュリティのことなのかなと思っていました!
なので今回はそんな過去の私に100%間違ってはないよと教えてあげたいと思います。
ソフトウェア品質とは?
ソフトウェア品質は、ソフトウェアがどれだけユーザーの期待や要求を満たしているかを示す指標です。
機能性: ソフトウェアが要求された機能を正確に提供できるか。
信頼性: ソフトウェアがエラーを最小限に抑え、安定して動作するか。
効率性: ソフトウェアがリソース(CPU、メモリなど)を効率的に使用するか。
保守性: ソフトウェアがどれだけ簡単に修正や改善ができるか。
移植性: ソフトウェアが異なる環境でどれだけ問題なく動作するか。
セキュリティとは?
セキュリティは、ソフトウェアやシステムが不正なアクセスや改ざん、データの漏洩を防ぐ能力を指します。
機密性: データが許可されていない人に見られないようにする。
完全性: データが不正に変更されないようにする。
可用性: 必要なときにシステムやデータにアクセスできるようにする。
ソフトウェア品質とセキュリティの関係
ソフトウェア品質とセキュリティは、共通する目標を持っています。それは、ユーザーにとって信頼性が高く、安全に使用できるソフトウェアを提供することです。
1. 信頼性とセキュリティ
信頼性の高いソフトウェアは、バグや障害が少ないため、セキュリティリスクも低減されます。一方、信頼性が低いソフトウェアでは、バグが攻撃者に利用される可能性があります。
2. 保守性とセキュリティ
保守性が高いソフトウェアは、セキュリティ脆弱性を迅速に修正できます。コードが複雑で読みにくい場合、脆弱性が発見されても修正が遅れる可能性があります。
3. 機能性とセキュリティ
要求された機能を正しく実装できていない場合、不正な動作がセキュリティ上の脆弱性を生む可能性があります。例えば、認証システムの誤実装は、不正アクセスを許す原因になります。
品質が低いとセキュリティも危険に
品質が低いソフトウェアは、セキュリティリスクが高まる傾向があります。
バグ: バグはセキュリティ脆弱性の原因になる。
設計の問題: 初期の設計段階でセキュリティが考慮されていない場合、脆弱性が生じる。
アップデートの難しさ: 保守性が低いと、セキュリティアップデートが遅れる。
以上です。ソフトウェア品質をおこたるとセキュリティ問題につながるという関係性ですね!
ここまで読んでいただきありがとうございます