现代软件系统不断遭受来自对手的攻击,如果攻击得逞,系统可能无法按预期运行,或导致机密信息泄露。新闻中几乎每天都会出现信用卡盗窃和其他类型的安全漏洞,这些漏洞涉及广泛的网络物理系统、交通系统、自动驾驶汽车等。构建任何面向公众的系统显然都需要采用系统的方法来分析安全需求并记录缓解要求。安全的挑战在于对手会巧妙地试图破坏系统利益相关者的意图,而不一定怀有恶意。例如,许多极其严重的安全违规行为都是由辛勤工作的员工造成的,他们将高度敏感的数据放在 USB 驱动器上,以便在家工作。虽然可以在网络和代码级别分析安全性以防止缓冲区溢出、SQL 注入攻击等,但在需求工程过程的早期建立防御性思维模式是有价值的。防御性思维意味着,对于每一个新需求或新特性,我们都需要考虑它可能如何被对手滥用或击败。
主要关键词